Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrated package [radio] to null-safety #62

Merged
merged 7 commits into from
Jan 11, 2022
Merged
14 changes: 6 additions & 8 deletions lib/src/components/radio/brn_checkbox.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// @dart=2.9

import 'package:bruno/bruno.dart';
import 'package:flutter/material.dart';

Expand All @@ -23,10 +21,10 @@ class BrnCheckbox extends StatefulWidget {

/// 选择按钮的padding
/// 默认EdgeInsets.all(5)
final EdgeInsets iconPadding;
final EdgeInsets? iconPadding;

/// 配合使用的控件,比如卡片或者text
final Widget child;
final Widget? child;

/// 控件是否在选择按钮的右边,
/// true时 控件在选择按钮右边
Expand All @@ -43,9 +41,9 @@ class BrnCheckbox extends StatefulWidget {
final MainAxisSize mainAxisSize;

const BrnCheckbox({
Key key,
@required this.radioIndex,
@required this.onValueChangedAtIndex,
Key? key,
required this.radioIndex,
required this.onValueChangedAtIndex,
this.disable = false,
this.isSelected = false,
this.iconPadding,
Expand All @@ -62,7 +60,7 @@ class BrnCheckbox extends StatefulWidget {
}

class BrnCheckboxState extends State<BrnCheckbox> {
bool _isSelected;
late bool _isSelected;

@override
void initState() {
Expand Down
12 changes: 5 additions & 7 deletions lib/src/components/radio/brn_radio_button.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// @dart=2.9

import 'package:bruno/bruno.dart';
import 'package:flutter/material.dart';

Expand All @@ -23,10 +21,10 @@ class BrnRadioButton extends StatelessWidget {

/// 选择按钮的padding
/// 默认EdgeInsets.all(5)
final EdgeInsets iconPadding;
final EdgeInsets? iconPadding;

/// 配合使用的控件,比如卡片或者text
final Widget child;
final Widget? child;

/// 控件是否在选择按钮的右边,
/// true时 控件在选择按钮右边
Expand All @@ -43,9 +41,9 @@ class BrnRadioButton extends StatelessWidget {
final MainAxisSize mainAxisSize;

const BrnRadioButton({
Key key,
@required this.radioIndex,
@required this.onValueChangedAtIndex,
Key? key,
required this.radioIndex,
required this.onValueChangedAtIndex,
this.disable = false,
this.isSelected = false,
this.iconPadding,
Expand Down
35 changes: 17 additions & 18 deletions lib/src/components/radio/brn_radio_core.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
// @dart=2.9

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';

/// 描述: radio组件
/// 1. 支持单选/多选
Expand All @@ -22,10 +19,10 @@ class BrnRadioCore extends StatefulWidget {

/// 选择按钮的padding
/// 默认EdgeInsets.all(5)
final EdgeInsets iconPadding;
final EdgeInsets? iconPadding;

/// 配合使用的控件,比如卡片或者text
final Widget child;
final Widget? child;

/// 控件是否在选择按钮的右边,
/// true时 控件在选择按钮右边
Expand All @@ -41,19 +38,19 @@ class BrnRadioCore extends StatefulWidget {
/// 默认值MainAxisSize.min
final MainAxisSize mainAxisSize;

final Image selectedImage;
final Image? selectedImage;

final Image unselectedImage;
final Image? unselectedImage;

final Image disSelectedImage;
final Image? disSelectedImage;

final Image disUnselectedImage;
final Image? disUnselectedImage;

final VoidCallback onRadioItemClick;
final VoidCallback? onRadioItemClick;

const BrnRadioCore(
{Key key,
@required this.radioIndex,
{Key? key,
required this.radioIndex,
this.disable = false,
this.isSelected = false,
this.iconPadding,
Expand All @@ -73,8 +70,8 @@ class BrnRadioCore extends StatefulWidget {
}

class _BrnRadioCoreState extends State<BrnRadioCore> {
bool _isSelected;
bool _disable;
late bool _isSelected;
late bool _disable;

@override
void initState() {
Expand Down Expand Up @@ -116,12 +113,12 @@ class _BrnRadioCoreState extends State<BrnRadioCore> {
// 没设置左右widget的时候就不返回row
radioWidget = icon;
} else {
List<Widget> list = List();
List<Widget> list = [];
if (widget.childOnRight) {
list.add(icon);
list.add(widget.child);
list.add(widget.child!);
} else {
list.add(widget.child);
list.add(widget.child!);
list.add(icon);
}
radioWidget = Row(
Expand All @@ -136,7 +133,9 @@ class _BrnRadioCoreState extends State<BrnRadioCore> {
behavior: HitTestBehavior.translucent,
onTap: () {
if (widget.disable == true) return;
widget.onRadioItemClick();
if (widget.onRadioItemClick != null) {
widget.onRadioItemClick!();
}
// if (widget.onValueChangedAtIndex != null) {
// if (widget.radioType == BrnRadioType.single) {
// // 单选
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ class _BrnSingleSelectCityPageState extends State<BrnSingleSelectCityPage> {
}

Widget _buildListItem(BrnSelectCityModel model) {
String? susTag = model.getSuspensionTag();
String susTag = model.getSuspensionTag();
return Column(
children: <Widget>[
Offstage(
Expand Down