Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”

Posted

技术标签:

【中文标题】Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”【英文标题】:Flutter using ".withOpacity" leads to "the field is initialized with a non constant value" 【发布时间】:2021-12-16 11:26:05 【问题描述】:

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

import 'package:flutter/material.dart';

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

  const AppColors();


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

【问题讨论】:

【参考方案1】:

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

您不需要调用withOpacity 来调整颜色的不透明度,因为颜色中的前两个十六进制数字已经指的是不透明度。您可以通过调整const Color(0x80FFFFFF)这些数字来达到预期的效果。

【讨论】:

以上是关于Flutter 使用“.withOpacity”导致“该字段被初始化为非常数值”的主要内容,如果未能解决你的问题,请参考以下文章

如何在flutter插件中导入外部iOS框架?

iOS现有工程 集成 flutter App.framework 找不到问题

Flutter——路由管理

Flutter——路由管理

Flutter——路由管理

Flutter从入门到进阶实战携程网App 完整版