Флаттер - выпадающий в BottomNavigationBarItem? - PullRequest
0 голосов
/ 16 апреля 2020

Можно ли создать раскрывающийся список, нажав одну из кнопок BottomNavigationBarItem?

Я хочу, чтобы список выбора отображался после нажатия на одну из кнопок BottomNavigationBarItem

Что-то вроде список, который появится при нажатии на последнюю кнопку навигации

Мой код:

build(context) {
        return Scaffold(
            appBar: AppBar(
                backgroundColor: Colors.white,
                title: Row(
                    children: <Widget>[
                        Text(titlePage, style: Theme.of(context).textTheme.title)
                    ],
                ),
            ),
            backgroundColor: Colors.white,
            body: ListUic<Pic>(
                controller: _controller,
                emptyProgressText: "",
                emptyDataIcon: Icon(Icons.refresh, size: 72.0, color: Colors.lightBlue),
                emptyErrorIcon: Icon(Icons.error, size: 72.0, color: Colors.redAccent),
                itemBuilder: (pic) {
                    return Card(
                        [...]);
                },
            ),
            bottomNavigationBar: AnimatedContainer(
                duration: Duration(milliseconds: 200),
                height: _isVisible ? 56.0 : 0.0,
                child: Wrap(
                    children: <Widget>[
                        BottomNavigationBar(
                            type: BottomNavigationBarType.fixed,
                            items: <BottomNavigationBarItem>[
                                BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Main')),
                                BottomNavigationBarItem(icon: Icon(Icons.hourglass_empty), title: Text('Waiting')),
                                BottomNavigationBarItem(icon: Icon(Icons.grade), title: Text('Top')),
                                BottomNavigationBarItem(icon: Icon(Icons.account_circle), title: Text('Accont')),
                            ],
                            currentIndex: selectedIndex,
                            fixedColor: Colors.pinkAccent,
                            onTap: onItemTapped,
                        ),
                    ],
                ),
            ),
        );
    }

void onItemTapped(int index) {
        setState(() {
            selectedIndex = index;
            switch(index){
                case 0:
                    mainPage = true;
                        setState(() {
                            _controller = ListUicController<Pic>(
                                onGetItems: (int page) => _getPics(page, 'main'),
                            );
                        });
                    break;
                case 1:
                    titlePage = 'Poczekalnia';
                    mainPage = false;
                    setState(() {
                        _controller = ListUicController<Pic>(
                            onGetItems: (int page) => _getPics(page, 'waiting'),
                        );
                    });
                    break;
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...