作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想通过添加带有一些单选按钮和其他小部件的表单来对搜索结果添加更多过滤器。文档指出 Radio
不保持状态,应该调用父级的 setState
onChange
方法来重建小部件。调用 showModalBottomSheet
后将显示表单。查看 search.dart
看起来 setState 仅在查询更改时在内部调用
我做了什么假设没有这样的方法,setState
,我重新显示对话,调用 Navigation.pop(context)
,然后调用 showModalBottomSheet
。单选按钮现在可以在 onChanged 上更新值,但是重新显示对话框的转换看起来很难看(每次值更改时都会滑动动画)。
是否可以在 searchDelegate 中使用 setState 以及如何使用?
最佳答案
@George 已经提供了解决方案,但这里是使用 SearchDelegate 时的完整示例:
class DataSearch extends SearchDelegate<String> {
bool _isItemSelected = true;
//...rest of the @override methods
@override
Widget buildSuggestions(BuildContext context) {
return StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return CheckboxListTile(
title: const Text('Item'),
value: _isItemSelected,
onChanged: (bool newValue) {
setState(() {
_isItemSelected = newValue;
});
},
);
});
}
}
关于flutter - 如何在 SearchDelegate 中使用 setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56321440/
我是一名优秀的程序员,十分优秀!