方向异常从两窗格模式更改为一窗格模式

时间:2018-12-13 08:43:35

标签: android screen-orientation

我有一个支持智能手机和平板电脑的演示应用程序。

它还支持方向更改。

在平板电脑上,有一个窗格和两个窗格模式。两种窗格模式仅在横向模式下有效。所有UI均显示为片段。

两个窗格模式下的UI是常见的主从模式:左侧列表和右侧详细信息屏幕。

在横向模式下,其余所有与平板电脑有关。

场景:

  1. 以横向模式在平板电脑上运行应用
  2. 选择左侧的文章(在第二个窗格中,默认片段将被片段替换为文章详细信息)
  3. 更改方向
  4. 出现异常

我面临的问题是当方向改变发生时,我会收到一个例外。错误消息报告没有ID详细信息的FrameLayout-这与仅与layout-sw600dp-land显示的布局有关。对于纵向模式,还有另一种布局layout-sw600dp-port

业务逻辑正在专门检查当前模式,并且FragmentManagerR.id.details内没有任何操作

public void show() {
    if (isTwoPaneMode()) {
        showMain();
        showDetailed();
    } else {
        showMain();
    }
}

这使我想到在此用例上R.id.details上是否存在任何隐藏事务?

1 个答案:

答案 0 :(得分:0)

问题出在详细片段的setRetainInstance(true)中(由于重构而遗漏了该问题)。

将其删除后,一切正常运行。