如何禁用由 Flutter 中的 InkWell 包装的 CheckBox 中的点击检测
How to disable clicks detection in a CheckBox that's wrapped by an InkWell in Flutter
我有那4个Inkwell()
,每个里面都有一个CheckBox()
,
在 InkWell()
的 onTap:
属性 中,我分配了一个执行某些逻辑的未命名函数。
当我单击复选框时,不会调用父 InkWell
的 'onTap' 属性。
我想做的是,当我点击 CheckBox
时,父小部件 InkWell
的 onTap
被调用,所以这就像禁用 CheckBox
onChanged 属性,让它就像一个不可点击的小部件。
注意:通过将 null
分配给 CheckBox
的 onChanged
属性,小部件仍然吸收点击,因此 onTap
属性 of InkWell
没有被调用。
这是我的代码:
InkWell(
onTap: () { /* DO SOMETHING */},
child: Row(
children: [
SizedBox( /* The flag icon */ ),
Text( /* The language name */ ),
Checkbox(
onChanged: null,
value: (selectedLanguage == widget.id) ? true : false,
)
],
),
)
您可以将 Checkbox
小部件包装在 IgnorePointer
中
IgnorePointer(
child: Checkbox(
value: selectedLanguage == widget.id,
onChanged: (v) {
// This won't get called
},
),
)
我有那4个Inkwell()
,每个里面都有一个CheckBox()
,
在 InkWell()
的 onTap:
属性 中,我分配了一个执行某些逻辑的未命名函数。
当我单击复选框时,不会调用父 InkWell
的 'onTap' 属性。
我想做的是,当我点击 CheckBox
时,父小部件 InkWell
的 onTap
被调用,所以这就像禁用 CheckBox
onChanged 属性,让它就像一个不可点击的小部件。
注意:通过将 null
分配给 CheckBox
的 onChanged
属性,小部件仍然吸收点击,因此 onTap
属性 of InkWell
没有被调用。
这是我的代码:
InkWell(
onTap: () { /* DO SOMETHING */},
child: Row(
children: [
SizedBox( /* The flag icon */ ),
Text( /* The language name */ ),
Checkbox(
onChanged: null,
value: (selectedLanguage == widget.id) ? true : false,
)
],
),
)
您可以将 Checkbox
小部件包装在 IgnorePointer
IgnorePointer(
child: Checkbox(
value: selectedLanguage == widget.id,
onChanged: (v) {
// This won't get called
},
),
)