android - 如何在 Flutter 中动态改变文本的颜色?

标签 android flutter flutter-layout

这是我的应用程序的一小部分
milestone

我通过对每个细节进行硬编码来做到这一点。但我想动态地实现这一点。

问题是 - 如果我编码一段时间,我将输入我编码的小时数,如果我达到我的里程碑,里程碑文本必须变为红色,下一个里程碑必须变为绿色。

到目前为止,这是我的代码

我的里程碑列表
List milestoneList = [10, 25, 50, 100, 250, 500, 750, 1000];
将列表映射到小部件

Row(
     mainAxisAlignment: MainAxisAlignment.center,
     children: milestoneList.map((item) {
       return Padding(
       padding: const EdgeInsets.all(8.0),
       child: Text(
       item.toString(),
       style: TextStyle(
       fontWeight: FontWeight.bold,),
    ),
   );
 }).toList(),

到目前为止,我能够破解我需要将值传递给 color TextStyle 的论点.我无法超越这一点。

最佳答案

编辑:如果你想要每件商品有不同的颜色,你可以使用这样的功能,

Color getColor(number) {
   if (number > 0 && number < 100) return Colors.red;
   if (number >= 100 && number < 200) return Colors.blue;
   ...
}

并更新颜色属性,
color: getColor(item),

在里程碑列表下面添加这个
Color textColor = Colors.black; // Default color

像这样改变你的文本样式,
TextStyle(
  fontWeight: FontWeight.bold,
  color: textColor,
),

这样做是为了更新颜色,
FlatButton(
  onPressed: () {
    setState(() => textColor =
        Color((Random().nextDouble() * 0xFFFFFF).toInt() << 0)
            .withOpacity(1.0)); // this is generate random color, u can use your own..
  },
  child: Text("change color"),
),

关于android - 如何在 Flutter 中动态改变文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58232078/

相关文章:

android - flutter 应用程序 : Required to terminate screen while navigating to next screen

flutter - 无效的参数:URL文件:///Trousers中未指定主机

dart - 在 Flutter 中创建带有堆叠列表项的 ListView

Android Firebase 库,仪器测试 - 无静态方法 registerDefaultInstance(Ljava/lang/Class;Lcom/google/protobuf/GeneratedMessageLite

安卓 Google+ 登录 "An internal error has occurred"

android - 如何处理来自系统托盘的通知

flutter - auto_route build_runner 未构建 [构造函数不能有返回类型]

java - 除非我的应用程序批准,否则阻止 Android 手机连接到 WiFi 网络?

android - 在位于 Flutter 的 Column 小部件中的 Row 小部件中将 TextField 包裹在 Flexible 中居中

flutter - Flutter 中居中对齐前导图标