【发布时间】:2018-12-13 17:05:59
【问题描述】:
我有一个支持智能手机和平板电脑的演示应用。
它还支持方向更改。
平板电脑有一个窗格和两个窗格模式。两种窗格模式仅适用于横向模式。所有 UI 都暴露在片段中。
两个窗格模式下的 UI 是常见的主从模式:左侧的列表和右侧的详细信息屏幕。
在横向模式下,其余的都与平板电脑有关。
场景:
- 在平板电脑上以横向模式运行应用
- 选择左侧的文章(在第二个窗格中,默认片段将被带有文章详细信息的片段替换)
- 改变方向
- 出现异常
我面临的问题是当方向改变发生时我收到一个异常。错误消息报告没有带有 id 详细信息的 FrameLayout - 这与布局有关,应该只为layout-sw600dp-land 显示。对于纵向模式,还有另一种布局layout-sw600dp-port
业务逻辑明确检查当前模式,FragmentManagerR.id.detailsFragmentManager内没有操作
public void show() {
if (isTwoPaneMode()) {
showMain();
showDetailed();
} else {
showMain();
}
}
这让我想到这个 R.id.details 上是否有任何隐藏事务在这个用例中不存在?
【问题讨论】:
标签: android screen-orientation