You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 2.5版本后如何开启Web端与Windows端的触摸手势支持?

问题原因

Flutter 2.5及以上版本默认关闭了桌面端(Windows/macOS/Linux)的触摸手势支持,框架为了优化非移动场景的事件处理性能,默认不会将触摸输入事件分配给ScrollView、Tabs等手势组件,所以会出现触摸操作无响应的问题,和项目配置、运行环境无关。

修复方案

在项目入口的main函数中,手动配置手势绑定的支持设备类型,添加触摸设备的支持即可,需要先导入gestures依赖包。
修复后的完整示例代码如下:

import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';

void main() {
  // 配置手势支持的设备类型,添加触摸设备支持
  GestureBinding.instance?.gestureSettings = const GestureSettings(
    supportedDevices: {
      PointerDeviceKind.mouse,
      PointerDeviceKind.touch,
      PointerDeviceKind.stylus,
      PointerDeviceKind.trackpad,
    },
  );
  runApp(
    MaterialApp(
      home: Scaffold(
        body: ListView.builder(
          itemBuilder: (buildContext, index) => ListTile(
            title: Text("test " + index.toString()),
          ),
        ),
      ),
    ),
  );
}
验证说明
  • 修改后重新编译项目即可生效,debug和release模式均支持
  • 所有系统原生手势组件(滑动、拖拽、缩放类)都可以正常响应触摸操作
  • 不需要额外修改安卓、iOS端的配置,不会影响移动端的原有手势逻辑

内容的提问来源于stack exchange,提问作者puaaaal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:54:05