下面这个示例是InheritedWidgt的一个简单用法:
class CounterProvider extends InheritedWidget{
//数据之前必须加上final,下面这三个数据都是为其Widget树下的Widget准备的;
final int count;
final VoidCallback increaseCount;
final Widget child;
//这个是数据传递的构造函数:
CounterProvider({this.count,this.increaseCount,this.child}):super(child:child);
//这个静态构造方法为引用提供了方法:
static CounterProvider of(BuildContext context)=>context.inheritFromWidgetOfExactType(CounterProvider);
//判断是否更新Widget:
@override
bool updateShouldNotify(InheritedWidget oldWidget) {
// TODO: implement updateShouldNotify
return true;
}
}
原文:https://www.cnblogs.com/braveheart007/p/10760540.html