android - 安卓 | 导航图 | 方向改变 | 片段未保留
问题描述
一般: 我的应用程序由活动和几个片段组成。我正在使用导航图来浏览各种片段。我有能力旋转设备,因此有不同的布局。
问题: 我知道从片段 AI 到片段 B 并且我旋转手机,我回到片段 A
第一个部分解决方案:
从文档中,我采取了可能是解决方案的方法,但结果证明这只是部分解决方案。事实上,我读到为了防止旋转过程中出现问题,我可以使用以下参数:
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
这似乎解决了旋转问题,但它创建了一个新问题:横向布局没有更新到它们应该具有的大小。我怎样才能完全解决这个问题?如果您需要在代码中弄脏自己的手或只是在清单中添加另一个参数都没关系,我想了解什么是错的
示例:底部导航 -> TabA(入口点);选项卡 B、选项卡 C。
我单击选项卡 B -> 然后单击内部,我将转到片段 B1(来自正确的选项卡 B)。所以我旋转手机,我将再次转到选项卡 B 而不是片段 B1
解决方案
当手机旋转时,活动被重新创建,所以我想你的活动是从入口点片段重新开始的。您可以使用 ViewModel 来持久化实际的片段引用,并在持有片段的 Activity 的 OnResume 方法上再次对其进行膨胀。
推荐阅读
- javascript - eCharts Canvas 不会在 .resize() 上设置高度动画
- python - 缩放图像后如何获得平滑的直方图?
- jenkins - 防止 Jenkins 在引用 Git 存储库更改时开始构建
- javascript - 每 5 秒切换一次类显示规则
- json - Kotlin Retrofit2 以原始 JSON 形式发出请求
- flutter - Flutter:如何使用 showDatePicker 禁用除我的日期之外的所有日期
- google-apps-script - 存在新值时添加新的 Google 工作表行
- google-sheets - 如果单元格值等于或小于数字,则结果值将位于特定单元格中
- c - Printf in unsigned short int 和 unsigned int 使用 %d
- python - Apache Beam 中的 RuntimeValue 提供程序不适用于 fileIO.Matchfiles()