Флаттер - Как я могу отключить NestedScrollVIew для конкретной вкладки c? - PullRequest
0 голосов
/ 02 апреля 2020

Это мой код: я искал ответы в Интернете, но ничего не получалось. Я был бы рад, если бы вы могли помочь мне с этой проблемой.

Цель:

Будет прокручиваться только одна указанная c вкладка, а остальные вкладки останутся не прокручиваемыми или если мне понадобится для прокрутки.

Я бы с радостью нашел решение ... Я попробую все.

 class Menu extends StatelessWidget {
      final User user;
      Menu({this.user});

      @override
      Widget build(BuildContext context) {
        ScrollController scrollViewController;
        TabController _tabController;
        return Scaffold(
          body: DefaultTabController(
            length: 3,
            child: NestedScrollView(
              controller: scrollViewController,
              headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
                return <Widget>[
                  new SliverAppBar(
                    snap: true,
                    pinned: true,
                    floating: true,
                    forceElevated: innerBoxIsScrolled,
                    expandedHeight: 150,
                    elevation: 10,
                    automaticallyImplyLeading: true,
                    backgroundColor: Colors.blueAccent.withOpacity(0.8),
                    flexibleSpace: FlexibleSpaceBar(
                        centerTitle: true,
                        titlePadding: EdgeInsets.only(bottom: 55),
                        title: Row(
                          mainAxisAlignment: MainAxisAlignment.center,
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: <Widget>[
                            user.profilePicture?.filePath != null
                                ? Container(
                                    margin: EdgeInsets.only(left: 8),
                                    child: ClipOval(
                                        child: FadeInImage.assetNetwork(
                                      placeholder: strings.loadingGif,
                                      image: user.profilePicture.filePath,
                                      width: 32,
                                      height: 32,
                                      fit: BoxFit.contain,
                                    )),
                                  )
                                : Text(''),
                            Text('good morning',
                                style: TextStyle(
                                    color: Colors.white,
                                    fontSize: 16.0,
                                    fontWeight: FontWeight.w600)),
                          ],
                        ),
                        background: Image.asset(
                          strings.menuBackgroundImage,
                          fit: BoxFit.cover,
                        )),
                    bottom: TabBar(
                      labelColor: Colors.white,
                      indicatorColor: Colors.white,
                      unselectedLabelColor: Colors.white54,
                      tabs: <Tab>[
                        Tab(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              Text('Home',
                                  style: TextStyle(
                                      fontSize: 14, fontWeight: FontWeight.bold)),
                              Icon(
                                Icons.home,
                              ),
                            ],
                          ),
                        ),
                        Tab(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              Text('profile',
                                  style: TextStyle(
                                      fontSize: 14, fontWeight: FontWeight.bold)),
                              Icon(
                                Icons.face,
                              ),
                            ],
                          ),
                        ),
                        Tab(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              Text('settings',
                                  style: TextStyle(
                                      fontSize: 14, fontWeight: FontWeight.bold)),
                              Icon(
                                Icons.settings,
                              ),
                            ],
                          ),
                        ),
                      ],
                      controller: _tabController,
                    ),
                  ),
                ];
              },
              body: TabBarView(
                controller: _tabController,
                children: <Widget>[
                  Home(user),
                  Profile(),
                  Settings(),
                ],
              ),
            ),
          ),
        );
      }
    }
...