dart - onTap 不适用于 ListWheelScrollView 子项 - Flutter
问题描述
我正在尝试列出使用的项目,ListWheelScrollView
并且我想拥有tapping
对项目的能力,但它似乎onTap
不起作用。
这是一个简单的代码
List<int> numbers = [
1,
2,
3,
4,
5
];
...
Container(
height: 200,
child: ListWheelScrollView(
controller: fixedExtentScrollController,
physics: FixedExtentScrollPhysics(),
children: numbers.map((month) {
return Card(
child: GestureDetector(
onTap: () {
print(123);
},
child: Row(
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
month.toString(),
style: TextStyle(fontSize: 18.0),
),
)),
],
),
));
}).toList(),
itemExtent: 60.0,
),
)
这段代码有问题吗?我很确定这样的事情会在一个ListView
或其他滚动小部件上工作。
解决方案
我解决了这个问题。我希望是有帮助的。
- 在 State 类中创建一个 int 变量。
类 _MenuWheelState 扩展状态 { int _vIndiceWheel;
在 ListWheelScrollView 的函数 onSelectedItemChanged 中设置变量:
onSelectedItemChanged: (ValueChanged) { setState(() { _vIndiceWheel = ValueChanged; }); },
创建一个 GestureDetecture 并将 ListWheelScrollView 放在里面:
GestureDetector(孩子:ListWheelScrollView(...
在 GestureDetecture 创建 onTap 函数,如下代码:
// 这是必要的 if (_vIndiceWheel == null) { _vIndiceWheel = 0; }
switch (_vIndiceWheel) { case 0: { Navigator.push( context, MaterialPageRoute( builder: (context) { return YourSecondScreen(); }, ...
推荐阅读
- sql-server - 如何在 Power Bi 中逐行减去?
- spring-boot-test - 在@SpringBootTest 中,有没有办法让 SpringRunner.class 和 Theories.class 共存?
- python-3.x - 切出点云的一部分
- html - 为什么我的 SPAN CLASS= 与 _several_ 参数不起作用?
- android - 将应用程序置于后台后,Kotlin 通道未准备好发送事件
- laravel-5 - 使用 JSON 的嵌套请求
- flutter - 更新 listview.builder 子中的视图
- go - 人们无法使用 gomodules 使用我的 v2+ 语义版本控制版本
- css - 缩放时使用 justify-content space-between 显示 flex 不起作用
- angular - 错误类型错误:无法读取未定义角度 8 的属性“长度”