我有一个支持智能手机和平板电脑的演示应用程序。
它还支持方向更改。
在平板电脑上,有一个窗格和两个窗格模式。两种窗格模式仅在横向模式下有效。所有UI均显示为片段。
两个窗格模式下的UI是常见的主从模式:左侧列表和右侧详细信息屏幕。
在横向模式下,其余所有与平板电脑有关。
场景:
我面临的问题是当方向改变发生时,我会收到一个例外。错误消息报告没有ID详细信息的FrameLayout-这与仅与layout-sw600dp-land
显示的布局有关。对于纵向模式,还有另一种布局layout-sw600dp-port
业务逻辑正在专门检查当前模式,并且FragmentManager
上R.id.details
内没有任何操作
public void show() {
if (isTwoPaneMode()) {
showMain();
showDetailed();
} else {
showMain();
}
}
这使我想到在此用例上R.id.details
上是否存在任何隐藏事务?
答案 0 :(得分:0)
问题出在详细片段的setRetainInstance(true)中(由于重构而遗漏了该问题)。
将其删除后,一切正常运行。