如何访问 Flutter 中与其他 Widget 关联的变量? [关闭]
Posted
技术标签:
【中文标题】如何访问 Flutter 中与其他 Widget 关联的变量? [关闭]【英文标题】:How to Access a Variable that is Associated with other Widget in Flutter? [closed] 【发布时间】:2021-07-12 03:56:30 【问题描述】:关于一个让我头疼的问题,我需要您的帮助,这里我有一个材质按钮,里面有一个变量,我想在文本小部件中使用它。
MaterialButton(
onPressed: ()
// My Random Code Goes Here. (Never Mind)
var currentEmoji = ...;
,
如您所见,我有一个 Material Button,里面有一个大代码,我需要向您展示的是“currentEmoji”变量。
我需要在这个文本小部件中使用这个变量,它位于这段代码的正下方,
child: Text(
*currentEmoji*,
textScaleFactor: 2,
),
-
我有一个材质按钮
我有一个 On Pressed 功能。
在该函数中有一个变量
currentEmoji
我想在文本小部件中显示此变量
如何在 onPressed 函数之外使用currentEmoji
变量。
我想在这方面寻求您的帮助。
【问题讨论】:
您已经在这个材料按钮上提出了 3-4 个关于同一主题的问题。不承认任何用户的任何回答。 先生,不,Material 按钮是一样的,我承认,但这是一个不同的场景,我真的很想知道我们如何在 onPressed 之外访问currentEmoji
,之前我没有曾经问过,#admitting Material Buttons 在每种情况下都会被使用。这只是提出问题的一种方式。我希望你明白。并帮助我寻找这个答案的根源。 @ProblematicDude
假设它在同一个类中但在不同的函数中,只需为其创建一个全局变量。如果它在同一个函数(创建小部件的函数)中,则在该函数中创建一个局部变量。示例:void _buildWidget() var emoji = 'default'; ...
@ProCo 只需声明它在 onPressed 方法之外。有什么大不了的
@Shree 我和你一起编辑,但请向 OP 解释原因。他们可能试图通过改进负分问题来摆脱问题禁令,这是个好主意。帮助他们在不使答案无效的情况下实际改进这一点(我认为这是你的原因......)。
【参考方案1】:
看看in dartpad:
您需要在这两个小部件之外声明变量,如下所示:
class _MyWidgetState extends State<MyWidget>
String _currentEmoji = 'my initial emoji';
void _setEmoji()
// My Random Code Goes Here. (Never Mind)
setState(()
_currentEmoji = 'new emoji';
);
@override
Widget build(BuildContext context)
return Column(children: [
ElevatedButton(
onPressed: _setEmoji,
child: Text('press me'),
),
Text(_currentEmoji),
]);
【讨论】:
【参考方案2】:请看下面的代码,
class MyHomeActivity extends StatelessWidget
// elements declared here can be used anywhere in this class
var currentEmoji;
@override
Widget build(BuildContext context)
return Container(
child: MaterialButton(
onPressed: ()
// use currentEmoji here
,
),
);
没有冒犯,但这是全局声明变量的基本概念,通用编程概念。
我鼓励您阅读 dart 语言here 的官方文档。
这肯定会让您的开发之旅变得轻松。
【讨论】:
以上是关于如何访问 Flutter 中与其他 Widget 关联的变量? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Flutter ListView.Builder() 在可滚动列中与其他小部件
如何在 Flutter 中禁用默认的 Widget 飞溅效果
Flutter,按下按钮后如何在Text Widget上粘贴数据?