dart - 在手势检测器中有多个 SetStates()?
问题描述
我无法通过 onTap VoidCallback 在多个区域更改设置状态?
我在不同的有状态小部件中有两个 AnimationController。我想实现的是,如果controller1.value == 0.0,那么它将确保当onTap 时controller2.value == 1.0,反之亦然,如果controller1.value == 1.0。
StatefulWidget 底层(将 widget.onTapOpen/close 传递给顶层)
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)
推荐阅读
- excel - Project Explorer 中的模块不再分组为模块、类和表单
- javascript - React setState 正确使用
- sql - 如何在最小月份获得 MAX Hike?
- java - OpenSSL 总是无法验证从 Java 中的 Bouncy Castle 生成的签名
- java - 在生菜中,我发现 redis 集群上的 async mget 比流水线慢得多
- excel - Delphi 是否提供 VBA 函数?
- sql - 通过 INFORMATION_SCHEMA.COLUMNS 在数据库范围内搜索对象
- python - 如何在python中将UTF-8列表转换为字符串
- c# - Windows服务等待计时器并且永远不会自行关闭
- python-3.x - python应用程序中的全局变量可能具有多个实例