Flutter:使用固定的tabBar折叠应用程序栏

时间:2019-09-03 12:30:29

标签: flutter flutter-layout

如何在Flutter中添加带有固定的tabBar的构建折叠应用程序栏,如此GIF GIF

3 个答案:

答案 0 :(得分:2)

您可以使用SilverAppBar

SliverAppBar(
  expandedHeight: 150.0,
  floating:true,
  pinned: true,
  flexibleSpace: const FlexibleSpaceBar(
    title: Text('Available seats'),
  ),
  actions: <Widget>[
    IconButton(
      icon: const Icon(Icons.add_circle),
      tooltip: 'Add new entry',
      onPressed: () { /* ... */ },
        ),
      ]
    )

参考

答案 1 :(得分:2)

我设法如此构建

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: DefaultTabController(
        length: 2,
        child: NestedScrollView(
          headerSliverBuilder: (context, value) {
            return [
              SliverAppBar(
                floating: true,
                pinned: true,
                title: Text('Test'),
                bottom: TabBar(
                  tabs: [
                    Tab( text: "Call"),
                    Tab( text: "Message"),
                  ],
                ),
              ),
            ];
          },
          body: TabBarView(
            children: [
              Container(child: ListView.builder(
                  itemCount: 100,
                  itemBuilder: (context,index){
                return Text("Item $index");
              })),
              Container(child: ListView.builder(
                  itemCount: 100,
                  itemBuilder: (context,index){
                    return Text("Item $index");
                  })),
            ],
          ),
        ),
      ),
    );

  }
}

答案 2 :(得分:0)

TabBarViewSliverAppBar分开。

通过将SliverAppBar的{​​{1}}设置为0,并使elevation使用shadowelevation来使其看起来连续,