最初,颤振开关小部件的值为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,
);
}预期结果:
最初为false,然后切换为true.
I/颤振(20662):以前:假
I/颤振(20662):后:真
切换到假
I/颤振(20662):以前:真
I/颤振(20662):后:假
切换到真
I/颤振(20662):以前:假
I/颤振(20662):后:真
实际结果:
最初为false,现在我切换为true.
I/颤振(20662):以前:假
I/颤振(20662):后:真
到目前为止太棒了!
现在我转到假的..。什么都没发生。=>无onChanged调用
,现在我切换到true,这是输出:
I/颤振(20662):以前:真
I/颤振(20662):后:真
说不通!?
发布于 2019-08-13 21:29:37
我创建了一个对象
Switch switch2;
@override
void initState() {
super.initState();
switch2 = _getSwitch();
}然后,我尝试构建()开关,而只是直接调用build()中的方法_getSwitch。
https://stackoverflow.com/questions/57485335
复制相似问题