📜  flutter listtile 单选按钮颜色 (1)

📅  最后修改于: 2023-12-03 15:15:07.525000             🧑  作者: Mango

Flutter ListTile 单选按钮颜色

在 Flutter 中,ListTile 是一种常用的列表控件,它可以展示一个短文本、一个图标、一个辅助文本以及一个可选的尾部图标。而其中的单选按钮是非常常用的一个功能,它可以让用户在列表中进行单选操作。

然而,默认情况下,Flutter 中的 ListTile 单选按钮颜色是蓝色的。如果想要修改单选按钮的颜色,该如何做呢?本文将为大家介绍如何修改 Flutter 中的 ListTile 单选按钮颜色。

步骤
  1. 使用 ListTile 控件

在创建 ListTile 之前,需要先引入 material 包。

import 'package:flutter/material.dart';

class CustomListTile extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListTile(
      title: Text("Title"),
      leading: Icon(Icons.android),
      trailing: Radio(
        value: true,
        groupValue: true,
        onChanged: (value) {},
      ),
    );
  }
}
  1. 修改单选按钮颜色

要修改单选按钮颜色,需要先创建一个 ThemeData 对象并设置 primarySwatch 的值。

ThemeData themeData = ThemeData(primarySwatch: Colors.green);

然后,在 ListTile 控件中添加一个 theme 属性,将上面创建的 themeData 对象传入。同时,设置 RadioListTileThemeData 的 selectedColor 属性为你想要的颜色。

RadioListTile(
  title: Text("Title"),
  value: true,
  groupValue: true,
  onChanged: (value) {},
  activeColor: Colors.red, // 单独设置 Radio 的颜色
  toggleable: true,
  theme: Theme.of(context).copyWith(
        radioTheme:
            RadioThemeData(selectedColor: Colors.red),
      ),
);

这样,就可以修改 ListTile 单选按钮的颜色了。以上为完整代码:

import 'package:flutter/material.dart';

class CustomListTile extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    ThemeData themeData = ThemeData(primarySwatch: Colors.green);

    return RadioListTile(
      title: Text("Title"),
      value: true,
      groupValue: true,
      onChanged: (value) {},
      activeColor: Colors.red, // 单独设置 Radio 的颜色
      toggleable: true,
      theme: Theme.of(context).copyWith(
            radioTheme:
                RadioThemeData(selectedColor: Colors.red),
          ),
    );
  }
}
总结

通过以上步骤,我们可以很容易地修改 Flutter 中的 ListTile 单选按钮颜色了。需要注意的是,修改颜色的代码需要放在 build 方法中,否则可能会出现异常。