Flutter 颤振:如何放置滑动条底部的TabBar?

Flutter 颤振:如何放置滑动条底部的TabBar?,flutter,tabbar,sliverappbar,Flutter,Tabbar,Sliverappbar,我正在尝试在SliveAppBar下面创建两个选项卡,如下所示: 但是,当我将选项卡栏包含在滑动条的底部:中时,它与滑动条重叠如下: 这是我的代码: (我试图尽量减少代码,可能会意外删除一些括号。) class DetailScreen扩展了无状态小部件{ 返回材料PP( 家:脚手架( 正文:DefaultTabController( 长度:2, 子:自定义滚动视图( 物理:弹跳CrollPhysics(), 条子:[ 滑杆( 底部:选项卡栏( 未选择的标签颜色:Colors.white,

我正在尝试在SliveAppBar下面创建两个选项卡,如下所示:

但是,当我将
选项卡栏
包含在
滑动条
底部:
中时,它与
滑动条
重叠如下:

这是我的代码: (我试图尽量减少代码,可能会意外删除一些括号。)

class DetailScreen扩展了无状态小部件{
返回材料PP(
家:脚手架(
正文:DefaultTabController(
长度:2,
子:自定义滚动视图(
物理:弹跳CrollPhysics(),
条子:[
滑杆(
底部:选项卡栏(
未选择的标签颜色:Colors.white,
labelColor:Colors.black,
indicatorSize:TabBarIndicatorSize.label,
指标:盒子装饰(
颜色:颜色,白色,
borderRadius:仅限新的borderRadius(
左上角:常数半径。圆形(20),
右上角:常数半径。圆形(20),
),
),
选项卡:[
标签(
子:容器(
装饰:盒子装饰(
borderRadius:仅限新的borderRadius(
左上角:常数半径。圆形(20.0),
右上角:常数半径。圆形(20.0),
)),
子对象:对齐(
对齐:对齐.center,
子:文本(
“回收”,
),
),
),
),
标签(
子:容器(
宽度:MediaQuery.of(context).size.width*0.5,
装饰:盒子装饰(
borderRadius:仅限新的borderRadius(
左上角:常数半径。圆形(20.0),
右上角:常数半径。圆形(20.0),
)),
子对象:对齐(
对齐:对齐.center,
子项:文本(“向上循环”),
),
))
],
),
扩展高度:250.0,
错,,
浮动:假,
背景颜色:颜色。透明,
onStretchTrigger:(){
//用于拉伸的函数回调
返回;
},
flexibleSpace:FlexibleSpaceBar(
//向下拖动时模糊图像
拉伸模式:[
StretchMode.zoomBackground,
StretchMode.blurBackground,
StretchMode.fadeTitle,
],
标题:对,
//头衔
标题:专栏(
mainAxisAlignment:mainAxisAlignment.end,
儿童:[
正文(
“$imagename”,
样式:TextStyle(
字体大小:40.0,
fontFamily:“Rajdhani”,
fontWeight:fontWeight.w700,
颜色:颜色。白色),
textAlign:textAlign.center,
),
],
),
背景:集装箱(
装饰:mybox装饰(imagename),
),
),
),
银条填充(…),
),
),
],
),
),
),
);
}
}
}
class DetailScreen extends StatelessWidget {
    return MaterialApp(
      home: Scaffold(
        body: DefaultTabController(
          length: 2,
          child: CustomScrollView(
            physics: BouncingScrollPhysics(),
            slivers: <Widget>[
              SliverAppBar(
                bottom: TabBar(
                  unselectedLabelColor: Colors.white,
                  labelColor: Colors.black,
                  indicatorSize: TabBarIndicatorSize.label,
                  indicator: BoxDecoration(
                    color: Colors.white,
                    borderRadius: new BorderRadius.only(
                      topLeft: const Radius.circular(20),
                      topRight: const Radius.circular(20),
                    ),
                  ),
                  tabs: [
                    Tab(
                      child: Container(
                        decoration: BoxDecoration(
                            borderRadius: new BorderRadius.only(
                          topLeft: const Radius.circular(20.0),
                          topRight: const Radius.circular(20.0),
                        )),
                        child: Align(
                          alignment: Alignment.center,
                          child: Text(
                            "Recycle",
                          ),
                        ),
                      ),
                    ),
                    Tab(
                        child: Container(
                      width: MediaQuery.of(context).size.width * 0.5,
                      decoration: BoxDecoration(
                          borderRadius: new BorderRadius.only(
                        topLeft: const Radius.circular(20.0),
                        topRight: const Radius.circular(20.0),
                      )),
                      child: Align(
                        alignment: Alignment.center,
                        child: Text("Upcycle"),
                      ),
                    ))
                  ],
                ),
                expandedHeight: 250.0,
                pinned: false,
                floating: false,
                backgroundColor: Colors.transparent,

                onStretchTrigger: () {
                  // Function callback for stretch
                  return;
                },
                flexibleSpace: FlexibleSpaceBar(
                  //blur image when dragged down
                  stretchModes: <StretchMode>[
                    StretchMode.zoomBackground,
                    StretchMode.blurBackground,
                    StretchMode.fadeTitle,
                  ],
                  centerTitle: true,
                  //title
                  title: Column(
                    mainAxisAlignment: MainAxisAlignment.end,
                    children: [
                      Text(
                        '$imagename',
                        style: TextStyle(
                            fontSize: 40.0,
                            fontFamily: 'Rajdhani',
                            fontWeight: FontWeight.w700,
                            color: Colors.white),
                        textAlign: TextAlign.center,
                      ),
                    ],
                  ),
                  background: Container(
                    decoration: MyBoxDecoration(imagename),
                  ),
                ),
              ),
              SliverPadding(...),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

}