你好,在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),),
),
)
],
),
添加一个TabController,然后绑定tabController.addListener(yourmethod).该方法会在每次用户切换页面时触发。
tabController.addListener(onIndexChanged);
void onIndexChanged() {
setState(() {
activeTabIndex = tabController.index;
});
}
TabBar(
controller: tabController, ....