如何在Flutter中将TabBar添加到SliverAppBar?到目前为止,当我bottom向SliverAppBar 添加a 时,title会固定到这些选项卡,而我希望它位于这些选项卡上方。
有任何想法吗?

我的代码:
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin{
TabController controller;
@override
void initState() {
super.initState();
controller = new TabController(length: 3, vsync: this);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new CustomScrollView(
slivers: <Widget>[
new SliverAppBar(
pinned: true,
flexibleSpace: new FlexibleSpaceBar(
title: new Text("Some title"),
),
expandedHeight: 160.0,
bottom: new TabBar(tabs: [
new Tab(text: 'Tab 1'),
new Tab(text: 'Tab 2'),
new Tab(text: 'Tab 3'),
],
controller: controller,
),
),
new SliverList( …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个个人资料页面,其中用户信息位于顶部。然后在该标签下有一个用于不同视图的选项卡视图。
这是我目前正在使用的代码,当我TabBarView拿出它时不会出现错误,并且如果将它们包装TabBarView进去,则会Expanded出现错误RenderFlex children have non-zero flex but incoming height constraints are unbounded.。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(''),
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.all(10.0),
child: Row(
children: <Widget>[
CircleAvatar(
minRadius: 45.0,
backgroundImage: NetworkImage(
'https://www.ienglishstatus.com/wp-content/uploads/2018/04/Anonymous-Whatsapp-profile-picture.jpg'),
),
Padding(
padding: EdgeInsets.only(left: 10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Testing Name',
style: TextStyle(
fontSize: 22.0,
color: Colors.grey.shade800,
),
),
Text(
'@testing_username',
style: TextStyle(
fontSize: 13.0,
color: …Run Code Online (Sandbox Code Playgroud) 考虑这个图像.你可以看到它有一个appbar,appbar有Tabbed按钮.我试图为appbar设置动画,使其隐藏在scrollup上,只留下Tab Buttons显示并滚动显示appbar apears.请帮帮我.对不起英语不好而不是美国人我也不是英语
我需要在Flutter中实现以下布局。
当用户滚动时,我希望整个布局都滚动(隐藏标题和标签栏)。但是,我不能将TabBarView嵌套在ListView内,因为TabBarView没有限制的高度,并且ListViews没有为其子代提供限制的高度。
我已经看过这些问题,但是对于此用例,所有问题的答案都不能令人满意:
用 SliverFillRemaining 包装 TabBarView(填充剩余的空白空间,如 Expanded)给出以下错误输出。
颤振:RenderPositionedBox 期望 RenderBox 类型的子级,但收到颤振类型的子级:RenderSliverList。
TabController tabContoller;
@override
void initState() {
tabContoller = new TabController(
vsync: this,
length: 3,
);
@override
Widget build(BuildContext context) {
return new Scaffold(
floatingActionButton:floatActionBtn(...),
bottomNavigationBar: bottomNavigationBar(...),
appBar: apBar(),
body: Stack(
children: <Widget>[
CustomScrollView(
slivers: <Widget>[
SliverAppBar(
backgroundColor: Colors.transparent,
automaticallyImplyLeading: false,
expandedHeight: 195.0,
flexibleSpace: FlexibleSpaceBar(
background: new Stack(
children: <Widget>[
...
]),
),
),
new SliverFillRemaining(
child: TabBarView(
controller: tabContoller,
children: <Widget>[
Tab(...),
Tab(...),
Tab(...)
],
),
),
],
),
],
)
Run Code Online (Sandbox Code Playgroud)