gpt4 book ai didi

flutter - 如何改变复选框的状态?

转载 作者:IT王子 更新时间:2023-10-29 07:02:19 27 4
gpt4 key购买 nike

我正在为移动应用程序设计 UI。我如何实现一个复选框,将其状态从 false 更改为 true 或反之亦然?

bool _value1 = false;
new CheckboxListTile(
value: _value1,
onChanged: (bool val) => setState(() => _value1 = val),
title: new Text('Remember me'),
controlAffinity: ListTileControlAffinity.leading,
activeColor: Colors.black,
),

我没有收到任何错误,但是当我点击复选框时,它的状态没有改变。

编辑:完整的代码是这样的——

bool _value1 = false;
return Scaffold(
backgroundColor: Colors.white,
body: Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("assets/background.jpg"),
fit: BoxFit.fill,
),
),
child: Column(
children: <Widget>[
SizedBox(height: 258.0),
username,
SizedBox(height: 22.0),
password,
SizedBox(height: 4.0),
new CheckboxListTile(
value: _value1,
onChanged: (bool val) => setState(() => _value1 = val),
title: new Text('Remember me'),
controlAffinity: ListTileControlAffinity.leading,
activeColor: Colors.black,
),
SizedBox(height: 8.0),
loginButton,
SizedBox(height: 58.0),
new Text(' Version 1.1'),
],
) ,
),
);

返回脚手架在里面

class LoginPage extends StatefulWidget {
static String tag = 'login-page';
@override
_LoginPageState createState() => new _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
@override
Widget build(BuildContext context) {.....}

用户名和密码以及登录按钮是其他小部件。

最佳答案

我看到了问题,你必须把它放在外面:bool _value1 = false; 每次你调用 setState 时,你都在告诉框架重建,所以再次调用 build 方法,这就是 setState 所做的,就像您再次调用 build 方法一样。所以解决方案将 bool _value1 = false; 放在构建方法之外,因此 var 可以更改,现在它始终为 false。

关于flutter - 如何改变复选框的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57061665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com