block回調在oc中很常見,到了flutter中仍然有block回調
自定義一個StatefulWidget PageTitle
無參數回調VoidCallback
VoidCallback onTap;
PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要點擊的地方傳入參數 比如InkWell的ontap事件
InkWell(
onTap: ()=>widget.onTap;
)
有參數回調ValueSetter 比如我要回調一個int變量
ValueSetter<int> onTap;
PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要點擊的地方傳入參數 比如InkWell的ontap事件
InkWell(
onTap: (){
widget.onTap(index);
//你的其他事件處理
)
自定義block 建議使用這種方法 這樣參數可以設置多個
//注意 typedef 需要放在class外面
typedef IndexCallback = void Function(int index);
IndexCallback<int> onTap;
PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要點擊的地方傳入參數 比如InkWell的ontap事件
InkWell(
onTap: (){
widget.onTap(index);
//你的其他事件處理
)
使用
PageTitle(
onTap:(index){
print('$index');
}
)