Radio &Switch - flutter

import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class GoodsInfo extends StatefulWidget {

  var arguments;

  GoodsInfo({this.arguments});

  @override
  _GoodsInfoState createState() => _GoodsInfoState(arguments:this.arguments);
}

class _GoodsInfoState extends State<GoodsInfo> {

  var arguments;
  bool checkBox;
  var radioGroup;
  var radioListTileGroup;
  var switchValue;

  TextEditingController _userNameController = TextEditingController(); //用于实现表单的默认值, TextField的controller参数需要接收这个类
  String _userName = ""; //如果用userNameController.text 记录onChange的值, 表单会被不停的重置, 光标一直跑到首位, 所以用单个_userName记录onChange的值, 不用setState, 因为不用刷新页面

  _GoodsInfoState({this.arguments});

  @override
  void initState() { //初始化函数, 在构造函数之后执行
    // TODO: implement initState
    super.initState();
    this._userNameController.text = "表单的默认值";
    this.switchValue = true;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("GoodsInfo"),
      ),
      body: Center(
        child: Column(
          children: [
            Row(
              children: [
                Radio(
                  activeColor: Colors.lightBlueAccent,
                  value: 1, //当前这个radio的值
                  groupValue: this.radioGroup, //那个radio被选中就赋值radioGroup, Radio 通过对比groupValue和自己的value参数来决定自己是否被选中
                  onChanged: (value){
                    setState(() {
                      this.radioGroup = value;
                    });
                  }
                ),
                Radio(
                    value: 2,
                    groupValue: this.radioGroup,
                    onChanged: (value){
                      setState(() {
                        this.radioGroup = value;
                      });
                    }
                )
              ],
            ),
            RadioListTile(
              value: 1,
              groupValue: this.radioListTileGroup,
              onChanged: (value){
                setState(() {
                  this.radioListTileGroup = value;
                });
              },
              title: Text("标题"),
              subtitle: Text("子标题"),
              secondary: Icon(Icons.home),
            ),
            RadioListTile(
              value: 2,
              groupValue: this.radioListTileGroup,
              onChanged: (value){
                setState(() {
                  this.radioListTileGroup = value;
                });
              },
              title: Text("标-题"),
              subtitle: Text("子-标-题"),
              secondary: Icon(Icons.anchor),
              selected: this.radioListTileGroup == 2 ? true : false,

            ),
            Switch(
                value: this.switchValue,
                onChanged: (value){
                  setState(() {
                    this.switchValue = value;
                  });
                }
            ),
            SwitchListTile(
              value: this.switchValue,
              onChanged: (value){
                setState(() {
                  this.switchValue = value;
                });
              },
              title: Text("Switch标题"),
              subtitle: Text("Switch副标题"),
              activeThumbImage: NetworkImage("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3747190372,861288348&fm=26&gp=0.jpg"), //滑动按钮激活时的背景图片
              inactiveThumbImage: NetworkImage("https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3747190372,861288348&fm=26&gp=0.jpg"), //滑动按钮非激活时的背景图片
            ),
            //沾满全屏幕
            Container(
                width: double.infinity, //宽度占满
                child: RaisedButton(
                  color: Colors.orange,
                  child: Text("注册"),
                  onPressed: (){
                    print(this._userName);
                  },
                ),
            ),
          ],
        ),
      ),
    );
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值