在手势检测器中有多个 SetStates()?
Having Multiple SetStates() in a Gesture Detector?
我无法通过 onTap VoidCallback 在多个区域更改设置状态?
我在不同的有状态小部件中有两个 AnimationController。我想要实现的是,如果 controller1.value == 0.0 那么它将确保当 onTap 时 controller2.value == 1.0,反之亦然,如果 controller1.value == 1.0。
StatefulWidget底层(将widget.onTapOpen/closed传递给顶层)
onTap: () {
_toggleExpandingSheetPanelVisibility();
setState(() {
if (_controller1.value == 0.0){
widget.onTapOpen();
}
else if (_controller1.value == 1.0){
widget.onTapClosed();
}
});
},
StatefulWidget顶层
onTapOpen: _ensureVisible,
onTapClosed: _ensureInvisible,
void _ensureVisible() {
setState(() {
if (_controller2.value == 0.0) {
_toggleVisibility();
}
});
}
void _ensureInvisible() {
setState(() {
if (_controller2.value == 1.0) {
_toggleVisibility();
}
});
}
它在 if (_controller2.value >
或 < 0.5)
时起作用,然后它会切换可见性。
我无法通过 onTap VoidCallback 在多个区域更改设置状态?
我在不同的有状态小部件中有两个 AnimationController。我想要实现的是,如果 controller1.value == 0.0 那么它将确保当 onTap 时 controller2.value == 1.0,反之亦然,如果 controller1.value == 1.0。
StatefulWidget底层(将widget.onTapOpen/closed传递给顶层)
onTap: () {
_toggleExpandingSheetPanelVisibility();
setState(() {
if (_controller1.value == 0.0){
widget.onTapOpen();
}
else if (_controller1.value == 1.0){
widget.onTapClosed();
}
});
},
StatefulWidget顶层
onTapOpen: _ensureVisible,
onTapClosed: _ensureInvisible,
void _ensureVisible() {
setState(() {
if (_controller2.value == 0.0) {
_toggleVisibility();
}
});
}
void _ensureInvisible() {
setState(() {
if (_controller2.value == 1.0) {
_toggleVisibility();
}
});
}
它在 if (_controller2.value >
或 < 0.5)
时起作用,然后它会切换可见性。