bin*_*112 13 android mobile-application dart flutter
我RadioListTile在我的应用程序中使用该小部件,并且我想在满足某些条件后禁用更改该值。并且没有isButtonDisabled像Radiowidget 中那样的 prop。我怎样才能禁用这个小部件(阻止值改变)?
当我写下上面的陈述时,我已经弄清楚了,这很容易。所以我会发布这个问题并在下面回答。
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',
),
),
),
)
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
Thi*_*iro 16
每当onChange为空时,组件将被禁用。您应该可以做一些链接:
onChanged: evaluate ? null : (value) => value = 0,
Run Code Online (Sandbox Code Playgroud)
我还会重命名evaluate以使其更易于理解,例如alreadyProvided、notAllowed或disabled任何有意义的内容,最重要的是真正代表为什么它不能更改。
最后它可能看起来像:
onChanged: alreadyProvided ? null : (value) => value = 0,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6943 次 |
| 最近记录: |