首页 > 解决方案 > 是否可以使用条件语句作为 CupertinoSlidingSegmentedControl 的一部分来控制 Flutter 中显示的选项数量?

问题描述

我希望有 2 个滑动控制选项,除非整数变量 > 0,在这种情况下将有 3 个选项

我正在使用以下代码块

                          child: CupertinoSlidingSegmentedControl(
                              children: {
                                0: Text('Option 1'),
                                1: Text('Option 2'),
                                2: Text('Option 3')

                              },
                              groupValue: _sliding,
                              onValueChanged: (newValue) {
                                   (...)
                              }),

理想情况下,我希望选项 3 仅在myInteger大于 0 时显示,我尝试了以下代码但失败了

                          child: CupertinoSlidingSegmentedControl(
                              children: {
                                0: Text('Option 1'),
                                1: Text('Option 2'),
                                if (myInteger > 0) {
                                  2: Text('Option 3')
                                }

                              },
                              groupValue: _sliding,
                              onValueChanged: (newValue) {
                                   (...)
                              }),

标签: flutter

解决方案


使用集合if-:

child: CupertinoSlidingSegmentedControl(
    children: {
      0: Text('Option 1'),
      1: Text('Option 2'),
      if (myInteger > 0)
        2: Text('Option 3'),
    },
    groupValue: _sliding,
    onValueChanged: (newValue) {
         (...)
    }),

您的尝试没有奏效,因为您在正文周围添加了花括号if,但这仅适用于正文可以包含多个语句的语句if 有关更多详细信息,请参阅https://stackoverflow.com/a/66126532/


推荐阅读