[英]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.