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

Flutter TypeAheadField onSuggestionSelected真机无响应,模拟器正常

解决flutter_typeahead在小米11 Ultra真机上点击无响应的问题

可能的原因及修复方案

1. 处理触摸事件拦截问题

小米部分机型的系统或第三方应用可能存在触摸事件拦截情况,尝试用GestureDetector包裹TypeAheadField,强制捕获触摸事件:

GestureDetector(
  behavior: HitTestBehavior.opaque,
  onTap: () {},
  child: TypeAheadField(
    // 你的原有配置
  ),
)

2. 调整TypeAheadField的交互参数

真机上可能因焦点变化导致弹窗提前隐藏,修改hideOnUnfocus、hideOnKeyboardHide参数:

TypeAheadField(
  hideOnUnfocus: false,
  hideOnKeyboardHide: false,
  // 其他配置项
)

3. 检查选项项的点击绑定逻辑

确认自定义itemBuilder返回的Widget正确绑定了点击回调,确保选中逻辑能触发:

itemBuilder: (context, suggestion) {
  return InkWell(
    onTap: () {
      _controller.close();
      setState(() {
        selectedCountry = suggestion;
        // 执行加载省份列表的逻辑
      });
    },
    child: ListTile(title: Text(suggestion.name)),
  );
},

4. 适配高刷新率机型触控响应

小米11 Ultra为高刷新率机型,可在MaterialApp中配置scrollBehavior优化触控:

MaterialApp(
  scrollBehavior: MaterialScrollBehavior().copyWith(
    dragDevices: {PointerDeviceKind.touch, PointerDeviceKind.mouse},
  ),
  // 其他配置
)

5. 清理缓存并重建项目

  • 执行命令 flutter clean 清理项目缓存
  • 执行 flutter pub get 重新拉取依赖
  • 卸载真机上的旧应用后,重新安装调试包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:18:21