【发布时间】:2021-03-16 22:29:33
【问题描述】:
我正在尝试使用 appBar、tabBar 和 3 个tabView 页面构建一个简单的应用程序结构。这些页面中的每一个都将具有不同的背景颜色。我希望这个背景颜色覆盖整个屏幕(也就是 AppBar 占用的空间)。因此,当用户在选项卡之间切换时,我需要改变 AppBar 的颜色。
这是我已经走了多远:
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
Color PrimaryColor = Colors.teal[400];
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
elevation: 0,
backgroundColor: PrimaryColor,
bottom: TabBar(
isScrollable: false,
indicatorColor: Colors.white,
indicatorWeight: 5,
onTap: (index) {
setState(() {
switch (index) {
case 0:
PrimaryColor = Colors.teal[400];
break;
case 1:
PrimaryColor = Colors.orange[500];
break;
case 2:
PrimaryColor = Colors.pink[500];
break;
default:
}
});
},
tabs: [
Tab(text: ''),
Tab(text: ''),
Tab(text: ''),
],
)),
body: TabBarView(
children: [
Container(
color: Colors.teal[400],
),
Container(
color: Colors.orange[500],
),
Container(
color: Colors.pink[500],
),
],
),
),
);
}
}
这几乎实现了我想要的UI,但是背景只有在按下tabBar按钮时才会发生变化,而不是在使用滑动手势在选项卡之间切换时发生变化。
非常感谢您提供有关如何纠正此问题的指导。谢谢。
【问题讨论】:
-
你能给我们看一张你想要达到的目标吗?
-
@yahyaparvar 按要求添加,谢谢
-
我认为我的解决方案符合您的要求!