Flutter 如何在选择单选按钮时更改RadioListile标题的颜色?
我希望我的输出是这样的。选择该选项时,我希望文本变为粗体。我希望更改选择单选按钮上的Flutter 如何在选择单选按钮时更改RadioListile标题的颜色?,flutter,dart,Flutter,Dart,我希望我的输出是这样的。选择该选项时,我希望文本变为粗体。我希望更改选择单选按钮上的radioistratiletitle的颜色 试试这种方法 import 'package:flutter/material.dart'; void main() { runApp(new MaterialApp( home: new MyApp(), )); } class GroupModel { String text; int index; bool selected;
radioistratile
title的颜色
试试这种方法
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(
home: new MyApp(),
));
}
class GroupModel {
String text;
int index;
bool selected;
GroupModel({this.text, this.index, this.selected});
}
class MyApp extends StatefulWidget {
@override
_State createState() => new _State();
}
class _State extends State<MyApp> {
int _value2 = 0;
List<GroupModel> _group = [
GroupModel(text: "Andorid", index: 1, selected: true),
GroupModel(text: "IOS", index: 2, selected: false),
GroupModel(text: "Flutter", index: 3, selected: false),
];
Widget makeRadioTiles() {
List<Widget> list = new List<Widget>();
for (int i = 0; i < _group.length; i++) {
list.add(new RadioListTile(
value: _group[i].index,
groupValue: _value2,
selected: _group[i].selected,
onChanged: (val) {
setState(() {
for (int i = 0; i < _group.length; i++) {
_group[i].selected = false;
}
_value2 = val;
_group[i].selected = true;
});
},
activeColor: Colors.purple,
controlAffinity: ListTileControlAffinity.trailing,
title: new Text(
' ${_group[i].text}',
style: TextStyle(
color: _group[i].selected ? Colors.black : Colors.grey,
fontWeight:
_group[i].selected ? FontWeight.bold : FontWeight.normal),
),
));
}
Column column = new Column(
children: list,
);
return column;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('RadioListTile Demo'),
),
//hit Ctrl+space in intellij to know what are the options you can use in flutter widgets
body: new Container(
padding: new EdgeInsets.all(32.0),
child: new Center(
child: new Column(
children: <Widget>[makeRadioTiles()],
),
),
),
);
}
}
导入“包装:颤振/材料.省道”;
void main(){
runApp(新材料)PP(
主页:新建MyApp(),
));
}
类组模型{
字符串文本;
整数指数;
选择布尔;
GroupModel({this.text,this.index,this.selected});
}
类MyApp扩展了StatefulWidget{
@凌驾
_State createState()=>new_State();
}
类_状态扩展状态{
int _值2=0;
列表_组=[
GroupModel(文本:“android”,索引:1,所选:true),
GroupModel(文本:“IOS”,索引:2,所选:false),
GroupModel(文本:“颤振”,索引:3,所选:假),
];
Widget makeRadioTiles(){
列表=新列表();
对于(int i=0;i<\u group.length;i++){
列表。添加(新的放射科医生)(
值:_组[i]。索引,
组值:_值2,
已选择:_组[i]。已选择,
一旦更改:(val){
设置状态(){
对于(int i=0;i<\u group.length;i++){
_[i]组。所选为假;
}
_value2=val;
_组[i]。所选=真;
});
},
activeColor:Colors.purple,
controlAffinity:ListTileControlAffinity.training,
标题:新文本(
“${u组[i].text}”,
样式:TextStyle(
颜色:_组[i]。选定?颜色。黑色:颜色。灰色,
容重:
_组[i]。所选?FontWeight.bold:FontWeight.normal),
),
));
}
列=新列(
儿童:名单,
);
返回列;
}
@凌驾
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“RadioListile演示”),
),
//点击intellij中的Ctrl+space,了解可以在颤振小部件中使用哪些选项
主体:新容器(
填充:新边缘设置。全部(32.0),
孩子:新中心(
子:新列(
子项:[makeRadioTiles()],
),
),
),
);
}
}
输出
您可以使用
键
属性来识别选定的放射科医生或
enum SingingCharacter { lafayette, jefferson }
// ...
SingingCharacter _character = SingingCharacter.lafayette;
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RadioListTile<SingingCharacter>(
title: Text('Lafayette',style:TextStyle(color:_character==SingingCharacter.lafayette ? 'SELECTED COLOR': 'NON SELECTED COLOR' ),
value: SingingCharacter.lafayette,
groupValue: _character,
onChanged: (SingingCharacter value) { setState(() { _character = value; }); },
),
RadioListTile<SingingCharacter>(
title: Text('Thomas Jefferson',style:TextStyle(color:_character==SingingCharacter.jefferson? 'SELECTED COLOR': 'NON SELECTED COLOR' ),
value: SingingCharacter.jefferson,
groupValue: _character,
onChanged: (SingingCharacter value) { setState(() { _character = value; }); },
),
],
);
}
enum SingingCharacter{lafayette,jefferson}
// ...
SingingCharacter _character=SingingCharacter.lafayette;
@凌驾
小部件构建(构建上下文){
返回列(
儿童:[
放射科医师(
标题:文本('Lafayette',样式:TextStyle(颜色:_character==SingingCharacter.Lafayette?'SELECTED color':'NON SELECTED color'),
值:SingingCharacter.lafayette,
groupValue:_字符,
onChanged:(SingingCharacter值){setState((){{u character=value;});},
),
放射科医师(
标题:文本('Thomas Jefferson',样式:TextStyle(颜色:_character==SingingCharacter.Jefferson?'SELECTED color':'NON SELECTED color'),
值:SingingCharacter.jefferson,
groupValue:_字符,
onChanged:(SingingCharacter值){setState((){{u character=value;});},
),
],
);
}
请先阅读,然后再提出直截了当的问题您尝试过什么吗?向我们展示您尝试过的代码,以便我们提供帮助!