我有一個提升按鈕,當我單擊它時,我想在其中執行此操作,我可以看到一個 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。我該如何解決?有人能幫我嗎?
uj5u.com熱心網友回復:
按下按鈕時,您不能只撰寫一個小部件,它就會出現。您可以做的一件事是在視圖中已經有 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),
))
],
)
uj5u.com熱心網友回復:
試試下面的代碼:
Decalre bool 變數
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;
});
},
)
],
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/478160.html
