【发布时间】:2021-01-21 07:38:58
【问题描述】:
我的这段代码有问题,收音机内的变量发生了变化,但收音机可能不会重建,因为当我点击它时点不会移动。但在那之后,如果我再次点击语言选择,最后选择的语言会有一个点。这可能是一些状态问题,但我不知道如何解决它。尝试了另一种方法,如在西班牙语行中,也不起作用。
import 'package:flutter/material.dart';
import 'package:rflutter_alert/rflutter_alert.dart';
import 'package:settings_ui/settings_ui.dart';
class SettingsPR extends StatefulWidget {
@override
_SettingsPRState createState() => _SettingsPRState();
}
class _SettingsPRState extends State<SettingsPR> {
int _radioValue = 1;
int _radioHandler(int value) {
setState(() {
_radioValue = value;
switch (_radioValue) {
case 0:
return _radioValue;
break;
case 1:
return _radioValue;
break;
case 2:
return _radioValue;
break;
}
});
}
@override
Widget build(BuildContext context) {
return Container(
child: SettingsList(
sections: [
SettingsSection(title: 'Common', tiles: [
SettingsTile(
title: 'Language',
subtitle: 'English',
leading: Icon(Icons.language),
onTap: () {
Alert(
context: context,
title: 'Edit',
content: Column(children: <Widget>[
Row(
children: [
Container(
child: new Radio(
value: 0,
groupValue: _radioValue,
onChanged: _radioHandler,
),
),
Text(
'English',
),
],
),
Row(
children: [
Container(
child: new Radio(
value: 1,
groupValue: _radioValue,
onChanged: (value) =>
setState(() => _radioValue = value),
),
),
Text(
'Spanish',
),
],
),
Row(
children: [
Container(
child: new Radio(
value: 2,
groupValue: _radioValue,
onChanged: _radioHandler,
),
),
Text(
'Polish',
),
],
),
]),
buttons: [
DialogButton(
onPressed: () =>
Navigator.of(context, rootNavigator: true)
.pop(true),
child: Text(
"OK",
style: TextStyle(),
))
]).show();
},
),
]),
],
));
}
}
【问题讨论】:
标签: flutter radio-button