我基本上希望在页面中间有一个选项卡式导航。
为此,我在嵌套的滚动视图中使用了一个slivarappbar。
我的SliVerAppBar是由我的TabView组成的,我把我的TabView包装在一个SliVerAppBar中以便使用固定的:真正的礼节。

return Scaffold(
      appBar: AppBar(
        title: Text('Title'),
      ),
      body: NestedScrollView(

        headerSliverBuilder: (BuildContext context, bool boxIsScrolled) {
          return <Widget>[
            SliverToBoxAdapter(
                child: Container(
              height: 500,
              color: Colors.red,
            )),

          SliverAppBar(
              pinned: true,
              bottom: TabBar(
                tabs: <Widget>[
                  Tab(
                    text: "Home",
                    icon: Icon(Icons.home),
                  ),
                  Tab(
                    text: "Example page",
                    icon: Icon(Icons.help),
                  )
                ],
                controller: _tabController,
              )),

          ];
        },
        body: TabBarView(
          children: <Widget>[
            PageExample(),
            PageExample(),
          ],
          controller: _tabController,
        ),
      ),
    );

这是一个技巧,我的问题是我想隐藏/移除这个包裹我的Tabbar的SliVerAppBar:
flutter - 如何仅在SilverAppBar中显示TabView-LMLPHP

最佳答案

我需要将ExpandedHeight设置为0:
返回脚手架(
应用程序栏:应用程序栏(
标题:文本(“标题”),
),
正文:嵌套滚动视图(

    headerSliverBuilder: (BuildContext context, bool boxIsScrolled) {
      return <Widget>[
        SliverToBoxAdapter(
            child: Container(
          height: 500,
          color: Colors.red,
        )),

      SliverAppBar(
          expandedHeight: 0,
          pinned: true,
          bottom: TabBar(
            tabs: <Widget>[
              Tab(
                text: "Home",
                icon: Icon(Icons.home),
              ),
              Tab(
                text: "Example page",
                icon: Icon(Icons.help),
              )
            ],
            controller: _tabController,
          )),

      ];
    },
    body: TabBarView(
      children: <Widget>[
        PageExample(),
        PageExample(),
      ],
      controller: _tabController,
    ),
  ),
);

关于flutter - 如何仅在SilverAppBar中显示TabView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54526161/

10-12 05:13