Как вызвать setState из дочернего виджета * - PullRequest
0 голосов
/ 25 февраля 2020

У меня DefaultTabController с 3 вкладками. Одна из вкладок - это список. Мне нужно, чтобы при нажатии на элемент списка текущий список менялся на другом виджете. Как мне это сделать? Спасибо. Вкладка State Class

class StationState extends State<Stations> {
  Widget secondWidget;
  @override
  Widget build(BuildContext context) {
    secondWidget = Styles(this);
    return DefaultTabController(
      length: 3,
      child: Scaffold(
        backgroundColor: Color(0xFF000000),
        appBar: AppBar(
          title: HeaderLogo(),
          backgroundColor: Color(0xFF000000),
          bottom: TabBar(
            indicatorColor: Colors.white,
            tabs: [
              Tab(
                text: 'Favorites',
              ),
              Tab(
                text: 'Genres',
              ),
              Tab(
                text: 'Networks',
              ),
            ],
          ),
        ),
        body: TabBarView(children: [
          Favorites(),
          secondWidget,
          Networks(),
        ]),
      ),
    );

    ;
  }
}

1 Ответ

1 голос
/ 25 февраля 2020

Пожалуйста, добавьте свой код, чтобы помочь вам лучше.

Но вы можете передать обратный вызов элементу списка, и когда элемент списка щелкается, обратный вызов срабатывает.

Что-то вроде это

return ListItem(
    onPressed: () {
        setState((){
            //Do what you need on the parent
        });
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...