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

Flutter实现无需点击按钮自动跳转至下一页的方法

实现蓝牙连接后自动延迟跳转页面

解决方案步骤

  • 在对应的State类中添加标记变量,避免重复触发跳转:
bool _hasNavigated = false;
  • 修改StreamBuilder的builder逻辑,检测到蓝牙连接成功后自动触发延迟跳转,同时替换原按钮为状态提示:
initialData: BluetoothDeviceState.disconnected,
builder: (c, snapshot) {
  if (snapshot.data == BluetoothDeviceState.connected) {
    // 仅在未执行过跳转时触发逻辑
    if (!_hasNavigated) {
      _hasNavigated = true;
      // 延迟2秒跳转,可自行调整时长
      Future.delayed(const Duration(seconds: 2), () {
        Navigator.of(context).push(
          MaterialPageRoute(builder: (context) => MainScreen())
        );
      });
    }
    // 返回连接状态提示,替代原按钮
    return const Text('已连接,即将跳转...');
  }
  // 未连接状态的UI(可根据原有需求修改)
  return const Text('未连接');
},

说明

  • _hasNavigated 用来避免StreamBuilder因状态重复更新而多次触发跳转逻辑。
  • Future.delayed 控制跳转延迟时长,可通过Duration调整(比如用milliseconds: 1500实现1.5秒延迟)。
  • 连接状态下返回提示文本,给用户明确的视觉反馈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:15:14