Flutter 单击按钮时在同一屏幕上显示文本字段值

Flutter 单击按钮时在同一屏幕上显示文本字段值,flutter,dart,Flutter,Dart,这是我的带有文本字段和按钮的屏幕。当有人单击show按钮时,我希望它在按钮下方显示名称,如下图所示 代码如下: 初始化两个变量。一个用于TextEditingController,一个用于文本值 TextEditingController controller = TextEditingController(); String display = ''; 给你的文本域一个控制器 TextField(controller:controller); 在按钮中,设置On Pressed可将显示文

这是我的带有文本字段和按钮的屏幕。当有人单击show按钮时,我希望它在按钮下方显示名称,如下图所示

代码如下:


初始化两个变量。一个用于TextEditingController,一个用于文本值

TextEditingController controller = TextEditingController();
String display = '';
给你的文本域一个控制器

TextField(controller:controller);
在按钮中,设置On Pressed可将显示文本更改为控制器文本

FlatButton(
child: Text("Show"),
onPressed()=> setState((){display = controller.text;});
),
然后,在要显示文本的位置,设置要显示的文本字符串

Text(display);

初始化两个变量。一个用于TextEditingController,一个用于文本值

TextEditingController controller = TextEditingController();
String display = '';
给你的文本域一个控制器

TextField(controller:controller);
在按钮中,设置On Pressed可将显示文本更改为控制器文本

FlatButton(
child: Text("Show"),
onPressed()=> setState((){display = controller.text;});
),
然后,在要显示文本的位置,设置要显示的文本字符串

Text(display);

这可以作为你问题的一个基本例子。UI与上面显示的不完全相同

class Question extends StatefulWidget {
  Question({Key key}) : super(key: key);

  @override
  _QuestionState createState() => _QuestionState();
}

class _QuestionState extends State<Question> {
  String text = '';
  bool shouldDisplay = false;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Center(
          child: TextField(
            onChanged: (value) {
              setState(() {
                text = value;
              });
            },
          ),
        ),
        FlatButton(onPressed: () {
          setState(() {
            shouldDisplay = !shouldDisplay;
          });
        }, child: Text('Submit')),
        shouldDisplay ? Text(text) : Spacer()
      ],
    );
  }
}

希望这能有所帮助。

这可以作为您问题的基本示例。UI与上面显示的不完全相同

class Question extends StatefulWidget {
  Question({Key key}) : super(key: key);

  @override
  _QuestionState createState() => _QuestionState();
}

class _QuestionState extends State<Question> {
  String text = '';
  bool shouldDisplay = false;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Center(
          child: TextField(
            onChanged: (value) {
              setState(() {
                text = value;
              });
            },
          ),
        ),
        FlatButton(onPressed: () {
          setState(() {
            shouldDisplay = !shouldDisplay;
          });
        }, child: Text('Submit')),
        shouldDisplay ? Text(text) : Spacer()
      ],
    );
  }
}

希望这能有所帮助。

我建议您在提出此类问题之前,先学习颤振的基础知识。这可以通过使用TextEditingController和setState简单地实现。只需为文本字段定义一个控制器,然后在按下按钮时调用setState。请注意,由于调用setState会重建UI,因此必须使用StatefulWidget

在@override小部件构建上方创建TextEditingController和字符串:

  String displayName="";
  final myController = TextEditingController();
创建一个文本字段并添加并为其分配控制器:

TextField(
  controller: myController,
);
按下Call setState on按钮:

MaterialButton(
child: Text("Show"),
onPressed: (){
 setState(() {
  displayName=myController.text;
 });
})
使用文本小部件显示它:

祝你好运! 您可以在此处了解如何使用TextEditingController:


更多关于小部件的信息:

我建议您在提出此类问题之前,先学习颤振的基础知识。这可以通过使用TextEditingController和setState简单地实现。只需为文本字段定义一个控制器,然后在按下按钮时调用setState。请注意,由于调用setState会重建UI,因此必须使用StatefulWidget

在@override小部件构建上方创建TextEditingController和字符串:

  String displayName="";
  final myController = TextEditingController();
创建一个文本字段并添加并为其分配控制器:

TextField(
  controller: myController,
);
按下Call setState on按钮:

MaterialButton(
child: Text("Show"),
onPressed: (){
 setState(() {
  displayName=myController.text;
 });
})
使用文本小部件显示它:

祝你好运! 您可以在此处了解如何使用TextEditingController:


关于widget的更多信息:

你能分享你所做的代码吗?你能分享你所做的代码吗?谢谢,这正是我一直在寻找的。谢谢,这正是我一直在寻找的。