我正在尝试使用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
或其他滚动小部件上起作用。
答案 0 :(得分:0)
我解决了这个问题。希望对您有所帮助。
class _MenuWheelState扩展了状态{ int _vIndiceWheel;
设置变量:
onSelectedItemChanged :(值更改){ setState((){ _vIndiceWheel = ValueChanged; }); }
创建一个GestureDetecture并将ListWheelScrollView放入其中:
GestureDetector( 子级:ListWheelScrollView(...
在GestureDetecture上创建onTap函数,如下所示:
//这是必需的 如果(_vIndiceWheel == null){ _vIndiceWheel = 0; }
开关(_vIndiceWheel){ 案例0: { Navigator.push( 上下文 MaterialPageRoute( 生成器:(上下文){ 返回YourSecondScreen(); }, ...