[英]How to change color of title of RadioListTile widget on selection?
[英]How to make RadioListTile widget disabled in flutter
我在我的应用程序中使用RadioListTile
小部件,我想在满足某些条件后禁用更改值。 并且没有isButtonDisabled
道具,就像Radio
小部件中一样。 如何禁用此小部件(阻止值更改)?
当我写上面的声明时,我想通了,这很容易。 所以生病发布问题并将在下面回答。
import 'package:flutter/material.dart';
class Body extends StatefulWidget {
@override
_BodyState createState() => _BodyState();
}
class _BodyState extends State<Body> {
bool evaluate = false;
int value;
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
RadioListTile<int>(
value: 0,
isThreeLine: false,
title: Text(
'radio 1',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
groupValue: value,
onChanged: (value) => evaluate ? null : value = 0,
activeColor: Colors.green,
),
RadioListTile<int>(
value: 1,
isThreeLine: false,
title: Text(
'radio 2',
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
groupValue: value,
onChanged: (value) => evaluate ? null : value = 1,
activeColor: Colors.green,
),
InkWell(
onTap: () {
evaluate = true;
},
child: Container(
child: Center(
child: Text(
'Submit answer',
),
),
),
)
],
);
}
}
每当onChange
为 null 时,组件将被禁用。 你应该能够做一些链接这个而不是:
onChanged: evaluate ? null : (value) => value = 0,
我还将重命名evaluate
以使其更易于理解,例如alreadyProvided
、 notAllowed
、 disabled
或任何有意义的东西,最重要的是真正代表它为什么不能更改。
最后它可能看起来像:
onChanged: alreadyProvided ? null : (value) => value = 0,
我想你已经从代码中找到了答案。 解决方案是在我的情况下声明 bool 值evaluate
,然后单击按钮使该值变为 true 并使用该值设置状态,并在RadioListTile
的onChanged
道具上添加以下代码:
onChanged: (value) => evaluate ? null : value = 0,
希望这有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.