onSelectedItemChanged在库比提克/库比蒂诺数据选择器上运行得很好
但是,当用户单击该值时,我也希望选择值。
目前,用户必须滚动以选择值,据我所知,CupertinoPicker/CupertinoDatePicker没有onTap、onPressed函数
我如何解决这个问题?

发布于 2021-02-09 13:49:15
不幸的是,目前还不支持CupertinoPicker/CupertinoDatePicker内部的手势检测。当您跟踪CupertinoPicker中的代码时,它会导致在最后使用ListWheelScrollView,并且它不会响应tap事件。
关于GitHub的讨论线程:
发布于 2022-08-09 22:09:32
我通过使用flutter_portal找到了一个解决办法。
final ScrollController scrollController = FixedExtentScrollController();
@override
Widget build(BuildContext context) {
return Container(
height: 100,
child: Portal(
child: CupertinoPicker.builder(
scrollController: scrollController,
childCount: itemCount,
itemBuilder: (context, index) {
return PortalTarget(
anchor: Aligned(
follower: Alignment.center,
target: Alignment.center,
),
portalFollower: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
scrollController.animateToItem(index,
duration: Duration(milliseconds: 250),
curve: Curves.decelerate);
},
),
child: Text(index.toString()),
);
},
),
)
);
}发布于 2022-08-24 14:38:59
GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () => // write what you want to do,
child: CupertinoPicker(),
),https://stackoverflow.com/questions/65914264
复制相似问题