【问题标题】:Flutter color of an asset资产的颤振颜色
【发布时间】:2021-09-28 15:04:06
【问题描述】:

有没有办法将 SVG 资源的颜色设置为静态变量? 例如,而不是像 stroke="#0059ee8" stroke="@color/primary"

【问题讨论】:

    标签: android flutter svg colors


    【解决方案1】:

    您可以在lib/constants 下拥有一个enums.dart 文件,您可以在其中维护所有颜色,例如:

    const C_THEME_COLOR = 0xFFF46523;
    

    您可以在任何需要的地方访问颜色:

    backgroundColor: Color(C_THEME_COLOR),
    

    添加导入:

    import 'package:my_project/constants/enums.dart';
    

    【讨论】:

    • 谢谢,但我怎样才能在像 svg 的 xml 文件中使用它?
    【解决方案2】:

    您可以尝试为 SvgPicture 小部件本身添加颜色。使用 flutter_svg 的示例:^0.22.0 包。下面是一个相同的sn-p。

    import 'package:flutter_svg/flutter_svg.dart';
          Container(
            height: 30,
            child: SvgPicture.asset(
            'assets/svg/add_money.svg',
             color:
            Theme.of(context).primaryColor),
         )
    

    【讨论】:

    • 是的,这种方式可行,但不是我想要的。例如,假设我有一个具有 2 种或更多颜色的 svg,此代码将更改每种颜色。我真正想要的是用静态变量替换 svg 代码中的十六进制颜色,就像我们用于原生 android 应用程序的颜色(resources/values/colors.xml -> @color/primary_color)
    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多