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;});},
),
],
);
}

请先阅读,然后再提出直截了当的问题

您尝试过什么吗?向我们展示您尝试过的代码,以便我们提供帮助!