如何在不更改AppBar的情况下更改TabBar的背景色? [英] How to change background color of TabBar without changing the AppBar in flutter?
本文介绍了如何在不更改AppBar的情况下更改TabBar的背景色?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在不更改AppBar的情况下更改TabBar的背景色?
TabBar没有BG属性,是否有解决方法?
How to change background color of TabBar without changing the AppBar in flutter? The TabBar does not have a BG proprety, is there a workaround?
推荐答案
您可以更改通过如下更改主题primaryColor来更改TabBar:
You can change the color of the TabBar by changing the Theme primaryColor like that:
return MaterialApp(
theme: ThemeData(
brightness: Brightness.light,
primaryColor: Colors.pink[800], //Changing this will change the color of the TabBar
accentColor: Colors.cyan[600],
),
home: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
indicatorColor: Colors.lime,
tabs: [
Tab(icon: Icon(Icons.directions_car)),
Tab(icon: Icon(Icons.directions_transit)),
Tab(icon: Icon(Icons.directions_bike)),
],
),
title: Text('Tabs Demo'),
),
body: TabBarView(
children: [
Icon(Icons.directions_car),
Icon(Icons.directions_transit),
Icon(Icons.directions_bike),
],
),
),
),
);
如果未在AppBar中使用它,则可以将TabBar包装在Material小部件中并设置颜色属性,例如:
If you are not using it in an AppBar you could wrap the TabBar in a Material widget and set the color attribute, like that:
class TabBarDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Tabs Demo'),
),
body: DefaultTabController(
length: 3,
child: Column(
children: <Widget>[
Container(
constraints: BoxConstraints(maxHeight: 150.0),
child: Material(
color: Colors.indigo,
child: TabBar(
tabs: [
Tab(icon: Icon(Icons.directions_car)),
Tab(icon: Icon(Icons.directions_transit)),
Tab(icon: Icon(Icons.directions_bike)),
],
),
),
),
Expanded(
child: TabBarView(
children: [
Icon(Icons.directions_car),
Icon(Icons.directions_transit),
Icon(Icons.directions_bike),
],
),
),
],
),
),
),
);
}
}
这篇关于如何在不更改AppBar的情况下更改TabBar的背景色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文