Создайте кнопку, которая создает виджет во флаттере
Я хочу определить функцию или что-то в этом роде, чтобы создать новый виджет при нажатии моей кнопки. Кроме того, я хочу создать этот виджет в определенном столбце. Кто-нибудь может помочь?
2 ответа
Решение
Вы можете определить переменную bool для управления отображением или скрытием этого виджета, а в методе button onPressed измените эту переменную в setState.
что-то вроде этого кода:
var _showWidget = false;
void changeShow(){
setState(() {
_showWidget = !_showWidget;
});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
RaisedButton(
child: _showWidget? Text('Show'): Text('Hide'),
onPressed: changeShow
),
if (_showWidget)
Container(
width: 150,
height: 50,
color: Colors.green,
child: Center(child: Text('Hello Word')),
),
],
),
);
}
Ну , вы можете в основном использовать невидимое и видимое поля в своем виджете, то есть виджет уже создан, и вы можете назначить ему функцию позже.ex, когда кнопка нажата, виджет становится видимым, и вы передаете ему функцию или значение.