单击按钮颤振后显示列表图块

show List Tile after clicking on button flutter

我有一个 Elevatebutton,当我点击它时,我可以看到显示的 listTile,在我点击另一个按钮后,listTile 将消失。我的代码是这样写的:

ElevatedButton(
                        onPressed: ( ) {
                          setState(() {
                            ListTile(
                              leading: Icon(Icons.add),
                              title: Text('GFG title',textScaleFactor: 1.5,),
                              trailing: Icon(Icons.done),
                            );
                          });
                        },
                        child: Text('button1'),
                        style: ElevatedButton.styleFrom(shape: StadiumBorder()),
                      ),

但即使单击按钮,我也看不到 listTile。我该如何解决?有人可以帮助我吗?

按下按钮时,您不能只编写一个小部件,它就会出现。您可以做的一件事是在视图中已经有 ListTile,但它是不可见的。然后,当您按下按钮时,它就会变得可见。这是一个例子:

bool _isVisible = false;

...
...

Column(
        children: [ElevatedButton(
          onPressed: () {
            setState(() {
              _isVisible = true;
            });
          },
          child: Text('button1'),
          style: ElevatedButton.styleFrom(shape: StadiumBorder()),
        ),

          Visibility(
              visible: _isVisible,
              child: ListTile(
                leading: Icon(Icons.add),
                title: Text('GFG title', textScaleFactor: 1.5,),
                trailing: Icon(Icons.done),
              ))
        ],
      )

试试下面的代码:

声明布尔变量

bool buttonPressed = false;

您的小部件:

Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          buttonPressed
              ? ListTile(
                  leading: Icon(Icons.add),
                  title: Text(
                    'GFG title',
                    textScaleFactor: 1.5,
                  ),
                  trailing: Icon(Icons.done),
                )
              : Container(),
          ElevatedButton(
            child: Text("Show Widget"),
            onPressed: () {
              setState(() {
                buttonPressed = true;
              });
            },
          )
        ],
      ),