Flutter 切换按钮抖动不起作用

Flutter 切换按钮抖动不起作用,flutter,togglebutton,Flutter,Togglebutton,我仍然是颤振的初学者,我正在尝试制作一个小应用程序,允许用户将单位从SI转换为IP单位。。。我使用了ToggleButton,尝试一下ToggleButton切换页面底部的一个小文本必须更改,但是没有发生任何事情,任何人都可以帮助我做错事。。。代码是 class ToggleButtonPage extends StatefulWidget { const ToggleButtonPage({Key key}) : super(key: key); @override _Toggl

我仍然是颤振的初学者,我正在尝试制作一个小应用程序,允许用户将单位从SI转换为IP单位。。。我使用了
ToggleButton
,尝试一下
ToggleButton
切换页面底部的一个小文本必须更改,但是没有发生任何事情,任何人都可以帮助我做错事。。。代码是

class ToggleButtonPage extends StatefulWidget {
  const ToggleButtonPage({Key key}) : super(key: key);

  @override
  _ToggleButtonPageState createState() => _ToggleButtonPageState();
}

class _ToggleButtonPageState extends State<ToggleButtonPage> {
  bool siUnits;
  String siUnitsText;
  String showText;

  List<bool> isSelected2 = [true, false];

  String textShow(String siUnitsText) {
    if (siUnitsText == 'true') {
      showText = 'ooooooo';
    } else {
      showText = 'xxx';
      print('xxx');
    }
    return showText;
  }

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          Container(
            margin: EdgeInsets.only(top: 50.0),
            child: ToggleButtons(
              fillColor: Colors.lightGreen,
              borderWidth: 2,
              borderColor: Colors.blueGrey,
              selectedBorderColor: Colors.black,
              borderRadius: BorderRadius.circular(10),
              children: [
                Text(
                  'SI',
                  style: TextStyle(
                    fontSize: 15,
                  ),
                ),
                Text(
                  'IP',
                  style: TextStyle(
                    fontSize: 15,
                  ),
                ),
              ],
              onPressed: (int newIndex) {
                setState(() {
                  switch (newIndex) {
                    case 0:
                      siUnitsText = 'true';
                      break;
                    case 1:
                      siUnitsText = 'false';
                      break;
                  }

                  for (int index = 0; index < isSelected2.length; index++) {
                    if (index == newIndex) {
                      isSelected2[index] = true;
                    } else {
                      isSelected2[index] = false;
                    }
                  }
                });
                print(siUnitsText);
              },
              isSelected: isSelected2,
            ),
          ),
          Text('Value is equal to  $showText'),
        ],
      ),
    );
  }
}
class ToggleButtonPage扩展StatefulWidget{
const-ToggleButtonPage({Key}):super(Key:Key);
@凌驾
_ToggleButtonPagentate createState()=>_ToggleButtonPagentate();
}
类_ToggleButtonPagentate扩展状态{
布尔单位;
字符串siUnitsText;
字符串显示文本;
List IsSelected 2=[true,false];
字符串文本显示(字符串siUnitsText){
如果(siUnitsText=='true'){
showText='ooooooo';
}否则{
showText='xxx';
印刷品('xxx');
}
返回showText;
}
@凌驾
void initState(){
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:专栏(
mainAxisAlignment:mainAxisAlignment.space,
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
容器(
边距:仅限边缘集(顶部:50.0),
子:切换按钮(
fillColor:Colors.lightGreen,
边界宽度:2,
边框颜色:颜色。蓝灰色,
selectedBorderColor:Colors.black,
边界半径:边界半径。圆形(10),
儿童:[
正文(
"是",,
样式:TextStyle(
尺寸:15,
),
),
正文(
"知识产权",,
样式:TextStyle(
尺寸:15,
),
),
],
onPressed:(int newIndex){
设置状态(){
开关(新索引){
案例0:
siUnitsText=‘真’;
打破
案例1:
siUnitsText=‘假’;
打破
}
对于(int index=0;index
这里还有一张布局图

showText
变量最初为空。在
Text
小部件中显示之前,您没有设置
showText
。如果
textShow
方法用于设置
showText
变量,请在
setState
中调用
textShow
方法