Создайте кнопку, которая создает виджет во флаттере

Я хочу определить функцию или что-то в этом роде, чтобы создать новый виджет при нажатии моей кнопки. Кроме того, я хочу создать этот виджет в определенном столбце. Кто-нибудь может помочь?

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, когда кнопка нажата, виджет становится видимым, и вы передаете ему функцию или значение.

Другие вопросы по тегам