如何改变翩翩起舞中包裹在标签内的容器的颜色?

问题描述 投票:0回答:1

enter image description here

你好,在flutter中,当我在TabBar里面切换tab时,有什么办法可以改变容器的颜色吗?tabBar不允许我在tab里面放一个子标签,并返回错误,因此我在Tab里面包了一个容器,并使用boxDecoration来做形状。当我切换标签时,我需要改变容器的不透明度,就像文本颜色一样。这是我的代码。

 child: TabBar(
                  labelColor: Color(0xFF000000),
                  unselectedLabelColor: Color(0x4F000000),
                  labelStyle: TextStyle(fontSize: fontSizeXs),
                  unselectedLabelStyle: TextStyle(fontSize: fontSizeXs),
                  indicatorColor: Color(0xFFC32127),
                  tabs: <Widget>[
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: <Widget>[
                        Tab(
                          text: '未结算注单',
                        ),
                        Container(
                          width: 28,
                          height: 15,
                          margin: const EdgeInsets.only(left: 10.0),
                          decoration: BoxDecoration(
                            borderRadius: new BorderRadius.all(Radius.elliptical(100, 80)),
                            color: Color(0xFFc32127),
                          ),
                          child: Center(
                            child: Text('0',
                              style: TextStyle(color: Color(0xFFFFFFFF), fontSize: fontSizeXss),),
                          ),
                        )
                      ],
                    ),
flutter flutter-layout
1个回答
0
投票

添加一个TabController,然后绑定tabController.addListener(yourmethod).该方法会在每次用户切换页面时触发。

 tabController.addListener(onIndexChanged);
 void onIndexChanged() {
    setState(() {
      activeTabIndex = tabController.index;
    });
  }
 TabBar(
    controller: tabController, ....
© www.soinside.com 2019 - 2024. All rights reserved.