Luego de investigar con especialistas en este tema, programadores de diversas áreas y profesores dimos con la respuesta al problema y la compartimos en esta publicación.
Solución:
Cree un Widget simple para esto, no puede ser más simple:
class ColoredTabBar extends Container implements PreferredSizeWidget
ColoredTabBar(this.color, this.tabBar);
final Color color;
final TabBar tabBar;
@override
Size get preferredSize => tabBar.preferredSize;
@override
Widget build(BuildContext context) => Container(
color: color,
child: tabBar,
);
Puede cambiar el color de la barra de pestañas cambiando el color primario del tema de esa manera:
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),
],
),
),
),
);
Si no lo está utilizando en una barra de aplicaciones, puede envolver la barra de pestañas en un widget de material y establecer el color attribute, como eso:
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: [
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),
],
),
),
],
),
),
),
);
Cambiar el color de fondo de TabBar en Flutter..
Simplemente use TabBar en Body of Scaffold, envuélvalo con Column Widget para que pueda usar ambos sin ningún problema. Envuelva TabBar con el widget Container para cambiar el color de la pestaña. De esta forma, puede cambiar el color de la barra de pestañas en FLutter.
Aquí está el código de muestra…
Scaffold(
appBar: AppBar(
backgroundColor: const Color(0xFF3baee7),
title: Text("Jobs"),
),
body: Column( // Column
children: [
Container(
color: Colors.deepOrangeAccent, // Tab Bar color change
child: TabBar( // TabBar
controller: tabController,
unselectedLabelColor: Colors.lightBlue[100],
labelColor: const Color(0xFF3baee7),
indicatorWeight: 2,
indicatorColor: Colors.blue[100],
tabs: [
Tab(
text: "All Jobs",
),
Tab(
text: "Most Recent",
),
Tab(
text: "Saved Jobs",
)
],
),
),
Expanded(
flex: 3,
child: TabBarView( // Tab Bar View
physics: BouncingScrollPhysics(),
controller: tabController,
children: [AllJobScreen(), AllJobScreen(), AllJobScreen()],
),
),
],
),
);
Si te sientes impulsado, tienes la habilidad dejar un ensayo acerca de qué te ha impresionado de esta división.