flutter - TabBar中的Flutter Tab背景颜色(多色标签栏)
问题描述
我正在尝试制作一个多色 TabBar,其中每个选项卡都有不同的背景颜色。
我尝试了一些东西来了解我想要实现的目标(但它只是“文本背景”,我想拥有所有选项卡背景)。
import 'package:flutter/material.dart';
void main() {
runApp(TabBarDemo());
}
class TabBarDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
ColoredBox(
color: Colors.red,
child: Tab(icon: Icon(Icons.directions_car))),
ColoredBox(
color: Colors.green,
child: Tab(icon: Icon(Icons.directions_transit))),
ColoredBox(
color: Colors.purple,
child: 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 背景颜色
//declare color variable
Color color=Colors.blue;
//assign it to app bar background
appBar:AppBar(backgroundColor: color
//assign value on tab index changed
onindexchanged:(index){
if(index==1){
setState(() {
color=Colors.green;
});
}
}
然后在选项卡上更改更改颜色变量的值
推荐阅读
- android - 如何编写扩展函数来在 Kotlin 中实例化 AndroidViewModel?
- python - 有没有办法将多个 excel 文件中的多个 excel 表以相同的格式组合在一起?
- c - 如何在不使用指针的情况下交换整数?
- python - 在 Python Pandas 中,如何创建此表,与前一行在同一列中的新行并从其他列添加同一行?
- hash - Puppet:合并具有相同键的哈希
- java - 用自定义注解继承@PreAuthorize注解,用于spring自定义方法安全表达式
- mongodb - 通过数组映射时将值解析为字段
- ios - MPEG4 视频无法在 iOS14 上播放(AVPlayer 问题)
- html - 无法制作 svg 图像半页
- c# - 在 Xamarin Android 中使用 Refit 发送 PDF 文件