【问题标题】:How can I disable individual buttons on a flutter togglebutton widget?如何禁用颤振切换按钮小部件上的单个按钮?
【发布时间】:2022-08-19 11:35:55
【问题描述】:

所以...我有一个切换按钮小部件 [1|2|3|4],但是如果选中了另一个小部件,我需要禁用其中一些按钮(例如,如果我连接到 Tile 而不是 Frob ,我需要禁用 2 和 4)。

    标签: flutter


    【解决方案1】:

    您可以使用可见性来隐藏或不隐藏您想要的小部件

    【讨论】:

    • 所以......看起来我需要为每个实际的切换按钮设置 2 个切换按钮(一个禁用/灰色,一个不),并用脚手架中的 if 语句交换它们?
    • 如果 if 条件可以帮助您隐藏两个按钮,那么您可以完美地进行相同的验证,仅此而已
    • 明白了。对于未来的读者,您可以将切换按钮堆叠在一起......
    【解决方案2】:

    我发现最好的方法是使用基于某些输入参数返回 ToggleButtons 小部件的函数。因此,该函数返回 ToggleButton 小部件,无论您想要多少个切换按钮。如果你想要 3 个按钮,你可以传入一个包含 3 个布尔值的列表,获取该列表并构建只有 3 个按钮的 ToggleButtons 小部件......等等。和/或您可以有一个条件,根据某个参数构建不同的 ToggleButtons 小部件:

             ToggleButtons toggleButtons(
                  {required StateSetter setState,
                  required List<bool> isSelected,
                  required String nameOfButtons}) {
                if (nameOfButtons == "shortList") {
                // return ToggleButtons widget that only has 3 Toggle Buttons
                  return ToggleButtons(...);
                } else {
                // return ToggleButtons widget that only has 2 Toggle Buttons
                 return ToggleButtons(...);
                 }});
    

    可见性将简单地隐藏切换按钮的内容,但仍允许用户按下该按钮。此外,如果您的切换按钮上有轮廓,则内部将是空白的。

    【讨论】:

      猜你喜欢
      • 2021-01-31
      • 1970-01-01
      • 2021-06-10
      • 2020-01-25
      • 2011-09-10
      • 2018-07-16
      • 2020-04-24
      • 2020-11-15
      • 2022-06-26
      相关资源
      最近更新 更多