flutter - 如何更改 PageView 小部件中 FloatingActionButton 的颜色?
问题描述
我在PageView
我的应用程序正文中使用了一个小部件。每个PageView
孩子都有特定的SliverAppBar
颜色,我希望 的颜色与FloatingActionButton
相同SliverAppBar
,但我不知道如何创建它。因为页面之间的唯一区别是内容和颜色,所以我在不同的文件中创建了一个自定义 Widget。
以下是我的代码的简化版本:
import 'package:flutter/material.dart';
void main() {
Color color;
Scaffold(
body: PageView(
children: [
CustomScrollView(
slivers: [
SliverAppBar(
backgroundColor: Colors.blue,
)
],
),
CustomScrollView(
slivers: [
SliverAppBar(
backgroundColor: Colors.green,
)
],
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: () {},
backgroundColor: color,
),
);
}
解决方案
下面的代码将完成你的工作:享受......!
import 'package:flutter/material.dart';
void main() {
Color color;
Scaffold(
body: PageView(
onPageChanged: (val){
if(val == 0)
{
color = Colors.blue;
setState(() {});
}
else if(val == 1){
color = Colors.green;
setState(() {});
}
}
children: [
CustomScrollView(
slivers: [
SliverAppBar(
backgroundColor: Colors.blue,
)
],
),
CustomScrollView(
slivers: [
SliverAppBar(
backgroundColor: Colors.green,
)
],
),
],
),
floatingActionButton: FloatingActionButton(
onPressed: () {},
backgroundColor: color,
),
);
}
推荐阅读
- docker - 你可以通过 Terraform 在 GCP 中运行 Docker 容器吗?
- sql - 为什么在 AS3 中尝试获取数组的长度属性失败?
- python - 根据另一个查询集的结果过滤查询集
- highcharts - 增加和修复点highcharts
- networking - 源与目标端口
- python-3.x - Jupyter Notebook 中的 Python 3.x folium TraceBack 错误
- ios - 金属着色器中采样器 lod_options (MSL) 的正确用法是什么?
- php - 这种数字格式有什么问题?
- python - 为什么条件嵌套列表推导会返回一个包含已删除元素的列表?
- azure - 天蓝色:VNet 集成 || 网关未收到来自“Microsoft.Web”的响应