我有一个Radio,我想在一个条件下禁用它,比如:

if (enabled == true){
*enable radio button*
} else {
*disable radio button*
}

编辑

我将添加类的完整代码,因为我只添加了其中的一部分.

以下是完整的代码:

import 'package:flutter/material.dart';

class RadioButton extends StatelessWidget {
  final String label;
  final int groupValue;
  final int value;
  final ValueChanged<int> onChanged;

  const RadioButton(
      {super.key,
      required this.label,
      required this.groupValue,
      required this.value,
      required this.onChanged});

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Row(
          children: <Widget>[
            Expanded(
              child: Row(
                children: <Widget>[
                  Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Radio<int>(
                        groupValue: groupValue,
                        value: value,
                        onChanged: (int? newValue) {
                          onChanged(newValue!);
                        }),
                  ),
                  Text(label),
                ],
              ),
            ),
          ],
        ),
      ],
    );
  }
}

推荐答案

要禁用Radio按钮,请将onChanged设置为null:

return Radio(
      value: 1,
      groupValue: 1,
      onChanged: null,
    );
    

Edit:要根据条件禁用它,请执行以下操作:

var isDisabled = true;
    Radio(
      value: 1,
      groupValue: 1,
      onChanged: isDisabled ? null : (value) {},
      

documentationonChanged:

如果为空,则该单选按钮将显示为禁用.


您可以记住这个设置null的诀窍,因为它还会禁用其他Icons/小部件.

Flutter相关问答推荐

无法在Flatter中设计正确的布局

本机调试符号包含无效的目录调试符号.目前仅支持Android ABI

Firebase存储不显示在Flutter 中链接的图像

构建上下文不能跨异步间隙使用

Flutter 使用扩展的 TextField 定位小部件

Flutter - firebase_auth_web 5.4.0 依赖于 intl ^0.17.0 但我必须使用更高版本 (intl ^0.18.0)

启动画面中的淡入淡出图像

如何从sibling ChildWidgetB 触发 ChildWidgetA 中的操作

Freezed+BLoc 如何从 BLoc Listener 查看当前状态和特定状态的变量

如何删除或隐藏覆盖

如何与 PostgreSQL 和外部网站交互 flutter apk?

Flutter 动保存新的变量值

是否有可能减少代码的编写,例如:ref.read(countProvider.notifier) - 在构建方法中?

如何根据应用程序主题(深色和浅色)更改谷歌 map 的主题?

如何在椭圆形图像周围添加边框?Flutter

函数中的变量在 Dart 中应该有什么关键字?

Flutter Web App 未启动:脚本的 MIME 类型不受支持

如何在Flutter 中水平滚动堆叠定位的小部件?

参数类型Future>不能分配给参数类型Future>?

在列表视图Flutter 中 Select 下一个单选按钮时单选按钮更改