【发布时间】:2019-12-20 11:00:16
【问题描述】:
最初,颤振开关小部件的值为 false。我刷卡后,开关是真的。但是如果我再次刷卡,就不会触发 onChange 方法。
我使用 setState() 将开关的值更改为 onChanged 方法。我试图交出 BuildContext,但没有成功。
bool value = false;
void _setValue(bool value) {
print('before: ' + this.value.toString());
setState(() => this.value = value);
print('after: ' + this.value.toString());
}
Widget _getSwitch() {
return Switch(
value: this.value,
onChanged: _setValue,
);
}
预期结果:
最初为假,然后切换为真。
I/flutter (20662):之前:假
I/flutter (20662):之后:true
切换为假
I/flutter (20662):之前:true
I/flutter (20662): after: false
切换为真
I/flutter (20662):之前:假
I/flutter (20662):之后:true
实际结果:
一开始是假的,现在我改成真了。
I/flutter (20662):之前:假
I/flutter (20662):之后:true
到目前为止一切顺利!
现在我切换到 false... 什么也没发生。 => 没有 onChanged 调用
现在我切换到 true,这是输出:
I/flutter (20662):之前:true
I/flutter (20662):之后:true
毫无意义!?
【问题讨论】:
标签: flutter dart toggle uiswitch selectionchanged