android-motionlayout - 在活动之间导航时重置运动布局
问题描述
我在我的主要活动中使用运动布局。它工作正常。但是,当我移动到其他活动并导航回我的主要活动时,有时活动会重置并且布局处于其起始状态。如何防止这种情况发生?除此之外,我还有另一个关于运动布局的问题,我在这里问过
解决方案
我所做的是添加一个字段,一个布尔字段,并使用生命周期来处理它。
private var hasMotionScrolled = false
override fun onResume() {
super.onResume()
if (hasMotionScrolled) motionLayout.progress = MOTION_TRANSITION_COMPLETED
}
override fun onPause() {
super.onPause()
hasMotionScrolled = motionLayout.progress > MOTION_TRANSITION_INITIAL
}
companion object {
private const val MOTION_TRANSITION_COMPLETED = 1F
private const val MOTION_TRANSITION_INITIAL = 0F
}
所以在我的例子中,运动布局正在做一个与滚动相关的动画。如果这不是你的情况,也许你可以直接使用motionLayout.progress
. 我直接使用的问题progress
是中间状态会使其他元素在返回时不可见,这就是实现全有或全无布尔标志的原因。
我不认为这是一个干净的解决方案,一个标志总是意味着其他东西可能会更好,如果你能找到官方的东西,请在评论中告诉我。
推荐阅读
- google-maps - 链接到具有完整地址的谷歌地图方向作为目的地参数丢弃目的地
- javascript - 如何在我的应用程序后台每 X 秒记录一次控制台日志?
- python - 在 Alembic 迁移升级期间是否可以连接到另一个数据库?
- regex - 在 PostgreSQL 中匹配部分反向引用
- java - 如何在指定相对路径的 Netbeans 项目中添加 .jar 文件
- php - 我需要帮助弄清楚为什么 Google reCAPTCHA 无法处理我网站的 .php 联系表
- excel - 如何检查用户是否在 VBA (Excel) 中登录 Cisco NetAccess?
- sql - 如何将共享相同外键的几行合并到列中?
- google-earth-engine - 从 Google 地球引擎导出 Sentinel-2 无云图像集
- python-3.x - 在 Python 中按列分组以获得总计数