Flutter 单选按钮Radio和RadioListTitle

Flutter 单选按钮组件有两种

1、Radio 

单选按钮,一般用来表现一些简单的信息

常用属性:

value:单选的值

groupValue:多个按钮选择组的值

activeColor:点击颜色变化

onChanged:点击事件


2、RadioListTile

包含更多信息的单选项,提供多种配置信息的属性,可以表现更丰富的信息。

value:单选的值

groupValue:多个按钮选择组的值

onChanged:点击事件

activeColor:点击颜色变化

secondary:在里面添加Icon图片

title 标题;

subtitle 副标题;

如图所示: 两种实现方法

代码如下:

import 'package:flutter/material.dart';

class MyRadioPage extends StatefulWidget {

@override

  _MyRadioPageState createState() =>_MyRadioPageState();

}

class _MyRadioPageState extends State {

  int _sex =1;

  int status =1;

  @override

  Widget build(BuildContext context) {

return Scaffold(

appBar:AppBar(

title:Text('单选按钮'),

        ),

        body:Column(

children: [

myRadioSex(),

            Divider(

height:10,

              color: Colors.grey,

            ),

            myRadioListTitle(),

          ],

        ));

  }

myRadioSex() {

return Column(

children: [

Row(

children: [

Radio(

///单选的值

                value:1,

                ///多个按钮选择组的值

                groupValue:_sex,

                ///点击颜色变化

                activeColor: Colors.red,

                ///点击事件

                onChanged: (value) {

setState(() {

_sex = value;

                  });

                }),

            Text('男')

],

        ),

        Row(

children: [

Radio(

value:2,

                groupValue:_sex,

                activeColor: Colors.red,

                onChanged: (value) {

setState(() {

_sex = value;

                  });

                }),

            Text('女')

],

        ),

      ],

    );

  }

myRadioListTitle() {

return Column(

children: [

RadioListTile(

value:1,

          groupValue:status,

          onChanged: (value) {

setState(() {

status = value;

            });

          },

          contentPadding:EdgeInsets.fromLTRB(5, 0, 0, 0),

          activeColor: Colors.red,

          // selectedTileColor: Colors.blue,

          title:Text("标题", style:TextStyle(color: Colors.black)),

          // subtitle:Text("这是二级标题",style: TextStyle(color: Colors.black)),

          secondary:Icon(

Icons.help,

            color: Colors.grey,

          ),

          selected:this.status ==1,

        ),

        RadioListTile(

value:2,

          groupValue:status,

          onChanged: (value) {

setState(() {

status = value;

            });

          },

          contentPadding:EdgeInsets.fromLTRB(5, 0, 0, 0),

          activeColor: Colors.red,

          // selectedTileColor: Colors.blue,

          title:Text("标题", style:TextStyle(color: Colors.black)),

          // subtitle:Text("这是二级标题",style: TextStyle(color: Colors.black)),

          secondary:Icon(

Icons.help,

            color: Colors.grey,

          ),

          selected:this.status ==2,

        ),

      ],

    );

  }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 夜莺2517阅读 127,759评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,954评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,603评论 28 53
  • 兔子虽然是枚小硕 但学校的硕士四人寝不够 就被分到了博士楼里 两人一间 在学校的最西边 靠山 兔子的室友身体不好 ...
    待业的兔子阅读 2,643评论 2 9