返回

自 定义Flutter单选控件 | 满足所有场景的Flutter单选控件大全

IOS

前言

在Flutter应用开发中,经常会遇到各种单选效果,虽然官方提供了Radio组件,但是并不能满足我们实际的开发需求,所以往往还需要自定义控件才能满足平时的开发需求。下面就平时开发中用到的单选进行介绍:

1. 常用的单选按钮

1.1 Radio组件

Radio组件是Flutter中提供的一个单选按钮控件,它可以让我们在多个选项中进行单选。Radio组件的用法非常简单,只需要创建一个Radio对象,并指定其value和groupValue属性即可。

Radio<int>(
  value: 1,
  groupValue: _selectedRadioValue,
  onChanged: (value) => setState(() => _selectedRadioValue = value),
);

1.2 Checkbox组件

Checkbox组件也是Flutter中提供的一个单选按钮控件,它可以让我们在多个选项中进行单选。Checkbox组件的用法也和Radio组件类似,只需要创建一个Checkbox对象,并指定其value和groupValue属性即可。

Checkbox(
  value: _selectedCheckboxValue,
  onChanged: (value) => setState(() => _selectedCheckboxValue = value),
);

1.3 RadioButton组件

RadioButton组件是一个自定义的单选按钮控件,它提供了更多丰富的样式和功能。RadioButton组件的用法也和Radio组件类似,只需要创建一个RadioButton对象,并指定其value和groupValue属性即可。

RadioButton(
  value: 1,
  groupValue: _selectedRadioButtonValue,
  onChanged: (value) => setState(() => _selectedRadioButtonValue = value),
);

2. 带有风格的圆形单选按钮

2.1 CupertinoRadioButton组件

CupertinoRadioButton组件是一个带有iOS风格的圆形单选按钮控件。它提供了两种不同的样式:filled和outlined。CupertinoRadioButton组件的用法也和Radio组件类似,只需要创建一个CupertinoRadioButton对象,并指定其value和groupValue属性即可。

CupertinoRadioButton(
  value: 1,
  groupValue: _selectedCupertinoRadioButtonValue,
  onChanged: (value) => setState(() => _selectedCupertinoRadioButtonValue = value),
);

2.2 MaterialRadioButton组件

MaterialRadioButton组件是一个带有Material Design风格的圆形单选按钮控件。它提供了两种不同的样式:filled和outlined。MaterialRadioButton组件的用法也和Radio组件类似,只需要创建一个MaterialRadioButton对象,并指定其value和groupValue属性即可。

MaterialRadioButton(
  value: 1,
  groupValue: _selectedMaterialRadioButtonValue,
  onChanged: (value) => setState(() => _selectedMaterialRadioButtonValue = value),
);

3. RadioGroup组件

RadioGroup组件是一个可以管理多个Radio组件的容器组件。它可以让我们在一个组中创建多个Radio组件,并确保同一时间只能有一个Radio组件处于选中状态。RadioGroup组件的用法也非常简单,只需要创建一个RadioGroup对象,并指定其children属性即可。

RadioGroup(
  children: [
    Radio<int>(
      value: 1,
      groupValue: _selectedRadioGroupValue,
      onChanged: (value) => setState(() => _selectedRadioGroupValue = value),
    ),
    Radio<int>(
      value: 2,
      groupValue: _selectedRadioGroupValue,
      onChanged: (value) => setState(() => _selectedRadioGroupValue = value),
    ),
  ],
);

结语

以上介绍了Flutter中常用的单选按钮控件,包括Radio组件、Checkbox组件、RadioButton组件、CupertinoRadioButton组件、MaterialRadioButton组件和RadioGroup组件。这些控件可以满足我们在不同场景下的单选需求。希望本文能够帮助你更好地理解和使用Flutter单选按钮控件。