我构建了一个应用程序,我想创建一个页面,允许用户更改"showModalBottomSheet"小部件中的"CheckboxListTile"小部件的值. 在用户点击按钮之后,应该会出现"showModalBottomSheet"小部件.
以下是我的代码:
class showModalBottomSheetTester extends StatefulWidget {
const showModalBottomSheetTester({super.key});
@override
State<showModalBottomSheetTester> createState() =>
_showModalBottomSheetTesterState();
}
class _showModalBottomSheetTesterState
extends State<showModalBottomSheetTester> {
bool? _isChecked = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('showModalBottomSheetTester'),
),
body: ElevatedButton(
onPressed: () {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return SizedBox(
height: 500,
child: Column(
children: [
const Padding(
padding: EdgeInsets.only(top: 30.0),
child: Text('Head'),
),
CheckboxListTile(
title: const Text('data'),
value: _isChecked,
activeColor: Colors.red,
checkColor: Colors.blue,
tileColor: Colors.green,
subtitle: const Text('data'),
controlAffinity: ListTileControlAffinity.leading,
tristate: true,
onChanged: (bool? newValue) {
setState(() {
_isChecked = newValue;
});
})
],
),
);
});
},
child: const Text('press')),
);
}
}
这段代码的用户界面很棒,但当我单击复选框以更改值时,屏幕上没有显示任何更改.如何解决这个问题?