flutter - Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”
问题描述
我有一个自己的应用程序颜色类:
import 'package:flutter/material.dart';
@immutable
class AppColors {
final objectRow=const Color(0xFFFFFFFF).withOpacity(0.5);
const AppColors();
}
如果我不使用.withOpacity
构造函数可以是 const 但如果我使用它我必须删除const
. 我不明白为什么...请向我解释为什么在编译时无法知道不透明度
解决方案
在上面的代码const Color(0xFFFFFFFF)
中是一个常量,但在运行时创建了一个具有不同不透明度withOpacity(0.5)
的新值。Color
您不需要调用withOpacity
来调整颜色的不透明度,因为颜色中的前两个十六进制数字已经引用了不透明度。您可以通过调整这些数字来获得所需的结果const Color(0x80FFFFFF)
。
推荐阅读
- javascript - Javascript:将日期对象增加一年
- java - Spring MVC 3 - 在标准环境和属性源的帮助下重新加载属性文件
- javascript - 脚本中的切换对我不起作用
- asp.net-core - Dotnet Core - 在启动时配置延迟加载
- r - 如何计算R中给定'x'和'y'位置的轨迹半径
- c++ - 如何在信号处理程序和普通函数中对全局变量进行互斥读取或写入操作
- javascript - 如何在选择元素的选项中存储和检索对象作为值?
- ios - UIDocumentInteractionController 更改共享文件名
- c# - 为具有多个触发器的组合框设置样式时出错
- c# - MVC C# 根据条件计数记录