📅  最后修改于: 2023-12-03 15:15:07.525000             🧑  作者: Mango
在 Flutter 中,ListTile 是一种常用的列表控件,它可以展示一个短文本、一个图标、一个辅助文本以及一个可选的尾部图标。而其中的单选按钮是非常常用的一个功能,它可以让用户在列表中进行单选操作。
然而,默认情况下,Flutter 中的 ListTile 单选按钮颜色是蓝色的。如果想要修改单选按钮的颜色,该如何做呢?本文将为大家介绍如何修改 Flutter 中的 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) {},
),
);
}
}
要修改单选按钮颜色,需要先创建一个 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 方法中,否则可能会出现异常。