这是我的屏幕,上面有TextField
和Button
。当有人单击“显示”按钮时,我希望它在按钮下方显示名称,如下图所示。
以下代码:
class Demo extends StatefulWidget {
@override
_DemoState createState() => _DemoState();
}
class _DemoState extends State<Demo> {
final name = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
Row(
children: [
Text(
'Name'
),
TextField(
controller: name,
)
],
),
RaisedButton(
onPressed: (){
},
child: Text('Show'),
)
],
),
),
);
}
}
答案 0 :(得分:1)
初始化两个变量。一个用于JOIN
,另一个用于文本值。
GROUP BY
给TextField一个控制器。
TextEditingController
在按钮中,将onPressed设置为将显示文本更改为控制器文本。
TextEditingController controller = TextEditingController();
String display = '';
然后在要显示文本的位置,设置要显示的文本字符串。
TextField(controller:controller);
答案 1 :(得分:1)
这可能是您问题的基本示例。用户界面与上面显示的不完全一样
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()
],
);
}
}
希望这会有所帮助。
答案 2 :(得分:1)
在建议这类问题之前,我建议您先学习颤振的基础知识。通过使用TextEditingController
和setState()
可以简单地实现这一点。只需为您的TextField
定义一个控制器,然后在按下按钮时调用setState()
。请注意,您必须在StatefulWidget
上,因为调用setState()
会重建UI。
在@override窗口小部件构建上方创建一个TextEditingController
和字符串:
String displayName="";
final myController = TextEditingController();
创建一个TextField
并添加为其分配控制器:
TextField(
controller: myController,
);
在按下的按钮上呼叫setState()
:
MaterialButton(
child: Text("Show"),
onPressed: (){
setState(() {
displayName=myController.text;
});
})
使用Text
小部件显示它:
Text(displayName);
祝你好运!
您可以在此处找到如何使用TextEditingController
:https://flutter.dev/docs/cookbook/forms/retrieve-input
更多有关小部件的信息:https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG