在listview中颤动Custompaint:忽略两个手指滚动

Posted

技术标签:

【中文标题】在listview中颤动Custompaint:忽略两个手指滚动【英文标题】:flutter Custompaint inside listview : ignore two fingers scroll 【发布时间】:2022-01-22 21:06:10 【问题描述】:

我在列表视图中有一个带有 custompaint 的堆栈。问题是有时我无法绘制,因为 listView 正在用一根手指(由 custompaint 使用)拦截手势并且我得到垂直滚动......

如何忽略两指滚动?

【问题讨论】:

【参考方案1】:

其中一种方法是在GestureDetector() 中使用behaviour 属性并将ListView()physics 设置为PageScrollPhysics() 即可。

行为取值HitTestBehavior.opaqueHitTestBehavior.deferToChildHitTestBehavior.translucent

【讨论】:

感谢您的评论。但是 GestureDetector 存在问题。当您在 ListView 之类的滚动小部件内绘制 CustomPaint 时,它会产生 Junck,并且在 listView 获得焦点之前检测到 CustomPaint 上的移动太慢。解决方案是用更高效的 Listener 替换 GestureDetector。

以上是关于在listview中颤动Custompaint:忽略两个手指滚动的主要内容,如果未能解决你的问题,请参考以下文章

在 ListView 中,向下滚动时,在颤动中丢失数据

Listview在颤动中强制滚动到顶部

如何在颤动/飞镖的 ListView 项目中更改背景颜色

在颤动中使用 ListView 进行分页

如何在颤动中为 listview.builder 制作列表视图?

无法在颤动中过滤 listview.builder 的列表