我正在开发一个具有三选项卡屏幕的 flutter 应用程序。
在第一个选项卡上,我有一个包的自定义视图,其中有一个
ListView
,其中每行都有一个滑动手势回调(从左向右滑动)。 TabView
还具有滑动手势来更改选项卡(带有完整动画)。
我的问题是,
TabView
正在捕获第一个选项卡上从左到右的滑动手势,即使左侧没有选项卡可供导航。这可以防止 ListView
中的 Row 检测到滑动并触发其回调。我想保留选项卡滑动功能,同时允许行滑动回调工作。
这是我的设置:
TabView
带有三个选项卡。ListView
。每个 ListView
项目都旨在检测从左到右的滑动并触发事件。TabView
传递到 ListView
,而不让 TabView
捕获它。这是一个图表:
这是视频链接:
如何防止
TabView
干扰第一个选项卡上的滑动手势,从而允许 ListView
项目正确检测并响应滑动?
为了解决该问题,我尝试通过将
scrollPhysics
设置为 NeverScrollableScrollPhysics
来禁用第一个选项卡上的滑动手势,然后将第一个选项卡的内容包装在 GestureDetector
中以手动处理滑动,但它不起作用。
将手势代码更改为此。
GestureDetector(
onHorizontalDragUpdate: (details) {
// Detecting left swipe
if (details.delta.dx < 0) {
print('Swiped left');
}
// Detecting right swipe
else if (details.delta.dx > 0) {
print('Swiped right');
}
},
child: YourWidget(...),
), // GestureDetector