首页 > 解决方案 > Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”

问题描述

我有一个自己的应用程序颜色类:

import 'package:flutter/material.dart';

@immutable
class AppColors {
  final objectRow=const Color(0xFFFFFFFF).withOpacity(0.5);

  const AppColors();

}

如果我不使用.withOpacity构造函数可以是 const 但如果我使用它我必须删除const. 我不明白为什么...请向我解释为什么在编译时无法知道不透明度

标签: flutterdartopacity

解决方案


在上面的代码const Color(0xFFFFFFFF)中是一个常量,但在运行时创建了一个具有不同不透明度withOpacity(0.5)的新值。Color

您不需要调用withOpacity来调整颜色的不透明度,因为颜色中的前两个十六进制数字已经引用了不透明度。您可以通过调整这些数字来获得所需的结果const Color(0x80FFFFFF)


推荐阅读