flutter - Flutter:如何在 Web 和 Windows 上启用触摸手势(自更新 2.5 起)
问题描述
自 Flutter 2.5 发布以来,触摸手势不再起作用(例如使用 ScrollViwes 或 Tabs)。我没有在 Android / IOS 上进行测试,因为我当时没有为这些平台开发,但我认为默认情况下它只是对 PC 平台禁用,但我找不到任何关于此的资源并且不知道如何打开它!(在调试和发布中,我在具有多个独立项目的两个独立工作站上遇到了同样的问题)
编辑
例子:
void main() {
runApp(
MaterialApp(
home: Scaffold(
body: ListView.builder(
itemBuilder: (buildContext, index) => ListTile(
title: Text("test " + index.toString()),
),
),
),
),
);
}
解决方案
这是 Flutter 2.5 中的一项重大更改,但如果您仍然想要这种行为,则有来自 Flutter 的迁移指南:https ://flutter.dev/docs/release/break-changes/default-scroll-behavior-drag#migration-指导。
您必须编写自己的 ScrollBehavior:
class MyScrollBehavior extends MaterialScrollBehavior {
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
...
};
}
MaterialApp(
scrollBehavior: MyScrollBehavior(),
...
);
推荐阅读
- javascript - 以编程方式填充`
- c - C中的2x2矩阵运算
- javascript - 将属性或函数添加到类的方法
- python - 解包类定义以在对象之间共享变量名
- c# - 使用 XML Serializer 和 TextWriter 将节点附加到 XML 根节点
- function - Scilab:我想绘制一个有两个变量的函数
- csv - awk FPAT 忽略 csv 中的逗号
- python - Pyqt5 QLabel,顶部是图像,底部是文本
- wpf - 如何以编程方式禁用 DatePicker?
- raspberry-pi - bitbake-layers add-layer meta-python meta-raspberrypi 失败