使文本出现在点击中

问题描述 投票:0回答:2

我正在尝试显示一些文本,而以前没有文本。它应该在单击按钮时发生。该按钮也应该更改bool变量true,以便类似if的语句可以验证是否单击了该按钮。该按钮的代码如下所示:

child: GestureDetector(
   onTap: () {
     ButtonPushed = true;
   }
 ...

但是我不知道如何创建一个语句,该语句检查ButtonPushed是否等于true,然后仅执行代码行,以在屏幕按钮上方的某处显示文本。

提前感谢您的回答!

flutter button dart
2个回答
0
投票

创建StatefulWidget。将_clicked状态存储在状态中,并在按下按钮时进行更改。在构建方法上,基于_clicked的值显示或隐藏。

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

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

class _MyHomePageState extends State<MyHomePage> {
  bool _clicked = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: <Widget>[
            if (_clicked) Text('Button is clicked'),
            FlatButton(
              onPressed: () {
                setState(() {
                  _clicked = true;
                });
              },
              child: Text('Click me')
            ),
          ],
        ),
      ),
    );
  }
}

要显示/隐藏文本,我只是使用if (condition) Widget(),。因为窗口小部件放置在窗口小部件列表内(列的children属性接受窗口小部件列表)。您也可以使用类似的内容:

child: _clicked ? Text('clicked') : null,

如果此代码由于小部件不接受空子代而崩溃,则可以尝试以下方法:

child: _clicked ? Text('clicked') : SizedBox(),

检查颤动参考:


0
投票

简单地做:

bool myBool = false;
FlatButton(
  onPressed: () {
    setState(() {
      myBool = !myBool;
    });
  },
  child: Text(
    "Press me",
  ),
),
Visibility(
visible : myBool,
child: Text("Hello"),
    )

这里是codepen,正在运行。

© www.soinside.com 2019 - 2024. All rights reserved.