如何启用在颤振上点击文本的复选框?



我有一个复选框旁边的文本我想当用户点击文本复选框是启用/禁用,我怎么能做到这一点?

Widget buildRememberCb() {
return Container(
height: 200,
child: Row(
textDirection: TextDirection.rtl,
children: [
Theme(
data: ThemeData(unselectedWidgetColor: Colors.white),
child: Checkbox(
value: isRememberMe,
checkColor: Color(0xfff44336),
activeColor: Colors.white,
onChanged: (value) {
setState(() {
isRememberMe = value!;
});
},
),
),
Text(
"Remember Me",
style: TextStyle(
fontWeight: FontWeight.w900, fontSize: 18, color: Colors.white),
),
],
),
);
}

GestureDetector包裹Text,改变onTapisRememberMe的值,

Widget buildRememberCb() {
return Container(
height: 200,
child: Row(
textDirection: TextDirection.rtl,
children: [
Theme(
data: ThemeData(unselectedWidgetColor: Colors.white),
child: Checkbox(
value: isRememberMe,
checkColor: Color(0xfff44336),
activeColor: Colors.white,
onChanged: (value) {
setState(() {
isRememberMe = value!;
});
},
),
),
GestureDetector(
onTap: (){
setState((){
isRememberMe = isRememberMe ? false : true;
});
},
child: Text(
"Remember Me",
style: TextStyle(
fontWeight: FontWeight.w900, fontSize: 18, color: Colors.white),
),
),
],
),
);
}

如果你想要墨水飞溅,你可以用InkWell代替GestureDetector,但更好的方法是使用TextButton

TextButton(
onPressed: () {
setState((){
isRememberMe = isRememberMe ? false : true;
});
},
child: Text(
"Remember Me",
style: TextStyle(
fontWeight: FontWeight.w900, 
fontSize: 18, 
color: Colors.white,
),
),
),

最新更新