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

Flutter中如何将Text widget的数据从一个屏幕传递到另一个屏幕

Flutter 跨屏传递Text组件内容实现方案

Flutter中静态Text组件的内容跨屏传递比TextField传值更简单,不需要依赖控制器取值,直接通过路由构造函数传参即可完成,操作分两步:

1. 改造目标页面FingerGoalSt,新增参数接收逻辑

给目标页的StatefulWidget添加final类型的字符串属性,用来接收传入的文本,同时调整构造函数要求传入该参数:

class FingerGoalSt extends StatefulWidget {
  // 新增属性存储传入的文本
  final String passedContent;
  // 调整构造函数
  const FingerGoalSt({super.key, required this.passedContent});

  @override
  State<FingerGoalSt> createState() => _FingerGoalStState();
}

class _FingerGoalStState extends State<FingerGoalSt> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Finger Goal')),
      body: Center(
        // 页面内通过widget.passedContent即可拿到传入的'Repetition'
        child: Text(widget.passedContent),
      ),
    );
  }
}

2. 修改当前页跳转逻辑,传入Text对应的文本值

你可以把Text里硬编码的'Repetition'抽成单独的变量,跳转构建目标页实例时直接传入该变量即可,不需要额外做取值操作:

// 把Text里的文本抽成变量,方便维护和传参
const targetText = 'Repetition';

// Text组件直接使用该变量
child: Text(
  targetText,
  style: const TextStyle(fontSize: 18, fontWeight: FontWeight.normal),
),

// 修改跳转逻辑,传入参数
onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => FingerGoalSt(passedContent: targetText)
    )
  );
},

补充:如果你的Text内容是动态变化的,只要把当前显示的文本存在当前页的状态变量中,跳转时直接传入这个状态变量即可,逻辑和传静态文本完全一致,不需要额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:24:31