flutter - 如何使用带有 CupertinoPicker 小部件的通知侦听器?
问题描述
我试图仅在我的 CupertinoPicker 指数稳定时获得它的价值。文档指出“要仅在滚动稳定时获取值,请使用 NotificationListener,侦听ScrollEndNotification
并读取其 FixedExtentMetrics。”</p>
这实际上是如何工作的?目前我只是试图将我的 CupertinoPicker 小部件包装在 a 中NotificationListener
并尝试实现onNotification
回调,但这就是我卡住的地方。
解决方案
听起来你几乎就在那里。这应该可以解决问题。
NotificationListener<ScrollNotification>(
onNotification: (scrollNotification){
if (scrollNotification is ScrollEndNotification) {
//Will only update when user has stopped scrolling in picker.
print(_pickerValue);
return true;
} else {
return false;
}
},
child: CupertinoPicker(
itemExtent: 30,
scrollController: scrollController,
children: <Widget>[
Text('First'),
Text('Second'),
Text('Third'),
],
onSelectedItemChanged: (int value) {
setState(() {
//Will update every time picker value changes.
_pickerValue = scrollController.selectedItem;
});
},
),
),
推荐阅读
- c# - 如何测试任何数据类型的 DBNull?
- google-cloud-platform - 如何获取注册对象来注册 Classroom API 以获取通知?
- shell - 未从另一个脚本执行的 Unix shell 脚本
- javascript - 如何避免/修复 HTMLUnit 中的 ScriptException 错误?
- javascript - 创建任意大小的多维 JavaScript 数组
- heroku - /tmp 大小在 Heroku 上波动
- python - 是否可以在 Windows 中使用 pyAutoGui 和调暗屏幕
- python - 计算连贯性分数时出错 – AttributeError: 'dict' object has no attribute 'id2token'
- mysql - mysql 5.7 使用时的过程语法错误不存在
- javascript - 在 React 中的函数内更新类的状态