Как прокрутить отдельную страницу, когда мы используем панель вкладок в флаттере? - PullRequest
0 голосов
/ 12 марта 2020

Я хочу сделать scrollable страницу в flutter, когда мы используем Tabbar во флаттере. Я пробовал этот код, но это не работает. В этом коде весь мой listview я не вижу. Как отображать целые listview элементы при использовании tabbar.

Итак, как я могу решить эту проблему.

Widget _listofitem() {
    return Container(
      margin: EdgeInsets.only(top: 10.0),
      padding: EdgeInsets.all(8.0),
      child: ListView.builder(
        shrinkWrap: true,
        physics: NeverScrollableScrollPhysics(),
        itemCount: categoryDetail.length,
        itemBuilder: (BuildContext context, int index) {
          return Container(
            padding: EdgeInsets.all(8.0),
            width: MediaQuery.of(context).size.width,
            height: 100.0,
            decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(10.0),
                color: Colors.cyanAccent),
            child: Column(
              mainAxisSize: MainAxisSize.max,
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Center(
                  child: SizedBox(
                    height: 20,
                    width: 20,
                    // child: NetworkImage(categoryDetail[index]),
                  ),
                ),
                SizedBox(
                  height: 10.0,
                ),
                Text(categoryDetail[index]['category_name'].toString()),
              ],
            ),
          );
        },
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          automaticallyImplyLeading: false,
          title: Text(
            'Invitation Card Application',
            style: TextStyle(color: Colors.white),
          ),
          backgroundColor: Colors.cyan,
          centerTitle: true,
          bottom: TabBar(
            tabs: myTabs,
            controller: _tabController,
          )
        ),
        body: TabBarView(
          controller: _tabController,
          children: myTabs.map((Tab tab) {
            return Center(
              child: Stack(
                children: <Widget>[
                  _listofitem(),
                  // _ofitem()
                ],
              ),
            );
          }).toList(), 
        ));
  }

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

1 Ответ

0 голосов
/ 12 марта 2020

В виджете ListView.builder () вы установили свойство,

shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),

Это предотвращает прокрутку в представлении списка. Если вы хотите обернуть представление списка внутри контейнера с указанными выше свойствами, то оберните контейнер в виджет SingleChildScrollView.

SingleChildScrollView(
      child: Container(), 
);

Таким образом, вы можете получить эффект прокрутки, и вы сможете увидеть все элементы списка просмотра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...