gpt4 book ai didi

flutter - 如何使用按钮的onPressed属性将小部件文本的值复制到另一个

转载 作者:行者123 更新时间:2023-12-03 02:50:19 26 4
gpt4 key购买 nike

我需要复制一个文本小部件的值并将其复制到另一个。

我尝试使用键进行此操作,但是在这种情况下,我不知道如何访问文本小部件。

是否可以使用onPressed属性在Flutter中进行操作?

import 'package:flutter/material.dart';

class TextWidget extends StatelessWidget {

@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
"Value to be copied",
key: Key('text1')
),
RaisedButton(
onPressed: (){
// code here
},
child: Text("Copy value"),
),
SizedBox(height: 40),
Text(
"",
key: Key('text2')
)
],
),
),
);
}
}

最佳答案

直接回答您的问题:您可以使用其data属性访问Text小部件内的文本。

Text widget = Text('text value');
String text = widget.data;
print(text); // text value

接下来,您无法通过其键属性访问窗口小部件。至少您不应该这样做,因为它们是为不同目的而设计的:这是有关Flutter中键的 videoarticle

您可以在此处执行的操作是将 TextWidgetStatelessWidget转换为 StatefulWidget,然后根据状态呈现第二个 Text的内容。可以在Flutter官方网站 Start thinking declaratively上找到关于状态是什么以及为什么要使用它的很好的介绍。

然后,您可以将第一个 Text小部件保存在变量中,然后使用 data属性更新直接访问其内容,然后更新整个小部件的状态。

Example 1 on DartPad

更为经典的方法(通常是更可取的方法)是根据状态呈现两个按钮的内容,并从状态变量而不是从小部件本身获取所需的文本,这是Sebastian和MSARKrish提出的。

Example 2 on DartPad

请注意,您不能强制性地更改Text小部件的 data属性,就像使用 innerText在JavaScript DOM API中那样:

_textWidget.data = "New text"; // Doesn't work

因为它的 datafinal。在Flutter中,您必须进行声明式思考,这值得。

关于flutter - 如何使用按钮的onPressed属性将小部件文本的值复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62306745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com