Dart 在颤振应用程序中更改滑动条标题颜色

Dart 在颤振应用程序中更改滑动条标题颜色,dart,flutter,appbar,Dart,Flutter,Appbar,我正在使用一个包含背景图像和标题的滑动应用条。 标题文本是白色的,我需要将AppBar上的颜色更改为黑色(因为tabbar也是白色的) 怎么做 NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {; return <Widget>[ SliverAppBar(

我正在使用一个包含背景图像和标题的滑动应用条。 标题文本是白色的,我需要将AppBar上的颜色更改为黑色(因为tabbar也是白色的)

怎么做

NestedScrollView(
          headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {;
            return <Widget>[
              SliverAppBar(
                expandedHeight: 200.0,
                floating: false,
                pinned: true,
                backgroundColor: Colors.white,
                flexibleSpace: FlexibleSpaceBar(
                    centerTitle: true,
                    title: Text(_event.name,
                        style: TextStyle(
                          color: Colors.white,
                          fontSize: 16.0,
                        )),
                    background: CachedNetworkImage(
                      imageUrl: _event?.imageMediumUrl ??
                          'http://preprod.tibib-live.com/medias/cached-media/medium/5bea5964109aa-c827b05facc3781485e584dac2f4dddc.png',
                      fit: BoxFit.cover,
                    )),
              ),
              SliverPersistentHeader(
                delegate: _SliverAppBarDelegate(
                  TabBar(
                    labelColor: Colors.white,
                    indicatorColor: Colors.red,
                    unselectedLabelColor: Colors.grey,
                    tabs: [
                      Tab(icon: Icon(Icons.info), text: "Info"),
                      Tab(icon: Icon(Icons.people), text: "Courses"),
                    ],
                  ),
                ),
                pinned: true,
              ),
            ];
          },
          body: TabBarView(
            children: <Widget>[_buildInfo(), _buildTrials()],
          ),
        ),
NestedScrollView(
headerSliverBuilder:(BuildContext上下文,boolInnerBoxisCrowled){;
返回[
滑杆(
扩展高度:200.0,
浮动:假,
对,,
背景颜色:Colors.white,
flexibleSpace:FlexibleSpaceBar(
标题:对,
标题:文本(_event.name,
样式:TextStyle(
颜色:颜色,白色,
字体大小:16.0,
)),
背景:CachedNetworkImage(
imageUrl:_事件?.imageMediumUrl??
'http://preprod.tibib-live.com/medias/cached-media/medium/5bea5964109aa-c827b05facc3781485e584dac2f4dddc.png',
适合:BoxFit.cover,
)),
),
滑冰机(
代表:_SliverAppBarDelegate(
塔巴(
labelColor:Colors.white,
指示颜色:颜色。红色,
未选择的标签颜色:Colors.grey,
选项卡:[
选项卡(图标:图标(Icons.info),文本:“info”),
选项卡(图标:图标(Icons.people),文本:“课程”),
],
),
),
对,,
),
];
},
正文:选项卡视图(
子项:[[u buildInfo(),[u buildTrials()],
),
),

您可以使用
滚动控制器执行此操作,聆听滚动并将偏移量与工具栏的默认大小进行比较。
我给你举了个例子:

            class TestingNewState extends State<TestingNew> {
              ScrollController _scrollController;

              bool lastStatus = true;

              _scrollListener() {
                if (isShrink != lastStatus) {
                  setState(() {
                    lastStatus = isShrink;
                  });
                }
              }

              bool get isShrink {
                return _scrollController.hasClients &&
                    _scrollController.offset > (200 - kToolbarHeight);
              }

              @override
              void initState() {
                _scrollController = ScrollController();
                _scrollController.addListener(_scrollListener);
                super.initState();
              }

              @override
              void dispose() {
                _scrollController.removeListener(_scrollListener);
                super.dispose();
              }

              @override
              Widget build(BuildContext context) {
                return NestedScrollView(
                  controller: _scrollController,
                  headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
                    return <Widget>[
                      SliverAppBar(
                        expandedHeight: 200.0,
                        floating: false,
                        pinned: true,
                        backgroundColor: Colors.white,
                        flexibleSpace: FlexibleSpaceBar(
                            centerTitle: true,
                            title: Text("text sample",
                                style: TextStyle(
                                  color: isShrink ? Colors.black : Colors.white,
                                  fontSize: 16.0,
                                )),
                            background: CachedNetworkImage(
                              imageUrl:
                                  'http://preprod.tibib-live.com/medias/cached-media/medium/5bea5964109aa-c827b05facc3781485e584dac2f4dddc.png',
                              fit: BoxFit.cover,
                            )),
                      ),
                    ];
                  },
                  body: Center(
                    child: Text("hello world"),
                  ),
                );
              }
            }
类TestingNewState扩展状态{
ScrollController\u ScrollController;
bool lastStatus=true;
_scrollListener(){
如果(isShrink!=lastStatus){
设置状态(){
lastStatus=isShrink;
});
}
}
布尔盖斯林克{
return\u scrollController.hasClients&&
_scrollController.offset>(200-kToolbarHeight);
}
@凌驾
void initState(){
_scrollController=scrollController();
_scrollController.addListener(\u scrollListener);
super.initState();
}
@凌驾
无效处置(){
_scrollController.RemovelListener(_scrollListener);
super.dispose();
}
@凌驾
小部件构建(构建上下文){
返回嵌套滚动视图(
控制器:\ u滚动控制器,
headerSliverBuilder:(BuildContext上下文,boolInnerBoxIsCrolled){
返回[
滑杆(
扩展高度:200.0,
浮动:假,
对,,
背景颜色:Colors.white,
flexibleSpace:FlexibleSpaceBar(
标题:对,
标题:文本(“文本样本”,
样式:TextStyle(
颜色:isShrink?颜色。黑色:颜色。白色,
字体大小:16.0,
)),
背景:CachedNetworkImage(
图像URL:
'http://preprod.tibib-live.com/medias/cached-media/medium/5bea5964109aa-c827b05facc3781485e584dac2f4dddc.png',
适合:BoxFit.cover,
)),
),
];
},
正文:中(
孩子:文本(“你好世界”),
),
);
}
}

在最新的颤振版本上,
ScrollController\u ScrollController
将生成一个函数,该函数在null上被调用,以使用
ScrollController\u ScrollController=new ScrollController()修复此问题