我在NestedScrollView
这里使用并尝试将 a放入函数中内置TabBar
的bottom
参数中。工作正常,但看起来已经节省了一些空间,使标签栏看起来很奇怪,上面有大的填充。知道如何删除这个空间吗?提前致谢。SliverAppBar
headerSliverBuilder
TabBar
SliverAppBar
title
@override
Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
double screenHeight = MediaQuery.of(context).size.height;
return Scaffold(
body: SafeArea(
child: NestedScrollView(
headerSliverBuilder: (context, value){
return[
SliverOverlapAbsorber(
handle:NestedScrollView.sliverOverlapAbsorberHandleFor(context),
sliver: SliverAppBar(
pinned: true,
floating: false,
expandedHeight: 500,
title: Text("Space that I don't want"),
centerTitle: true,
flexibleSpace: FlexibleSpaceBar(
collapseMode: CollapseMode.pin,
background: Container(
decoration: BoxDecoration(
color: Colors.white,
image: DecorationImage(
image: AssetImage("assets/images/classroom.png")
)
),
child: Center(child: Text("Today's lesson cancelled", style: GoogleFonts.montserrat(textStyle: TextStyle(color: Colors.white, fontSize:20, fontWeight: FontWeight.w500),)))
),
),
bottom: TabBar(
controller: _controller,
labelColor: Colors.black,
indicatorColor: Colors.black,
unselectedLabelColor: Colors.grey,
tabs: _tabs.map((String name) => Tab(text: name)).toList()
)
)
),
];
},
body: TabBarView(
controller: _controller,
children: (_tabs.map((String name){
return SafeArea(
child:Builder(
builder: (BuildContext context){
return CustomScrollView(
key: PageStorageKey<String>(name),
slivers: <Widget>[
SliverOverlapInjector(
handle:NestedScrollView.sliverOverlapAbsorberHandleFor(context),
),
SliverToBoxAdapter(
child: _buildLeaderBoardTab(screenWidth,screenHeight)
)
],
);
},
)
);
})).toList(),
)
)
)
);
}