显示视图后,不再显示启动时隐藏的视图,然后配置更改

时间:2015-04-14 20:29:01

标签: android android-layout android-configchanges

这是对的吗?

  1. 在布局中有一个标记为不可见或已消失的复选框。
  2. 创建后,将复选框标记为可见(即选择按钮后)。
  3. 执行配置更改(例如,旋转设备)。
  4. 之前标记为可见的复选框未显示。
  5. 但是,保留了复选框IS的已检查状态,这让我感到困惑,保存了哪些信息,哪些信息没有?

    在配置更改后确保视图保持可见的最佳方法是什么?

    谢谢, 扎克

2 个答案:

答案 0 :(得分:1)

除非另行指定,否则配置更改将导致您的当前活动被销毁。尝试检查该复选框的可见性是否可见。

在另一种情况下,旋转设备将导致布局更改,使用横向和纵向检查布局文件,检查是否可以看到正确放置的复选框。

答案 1 :(得分:1)

配置更改会强制活动经历整个生命周期。这意味着它将与您的View一起销毁并重新创建。

默认情况下,视图不保留可见性状态。 onSaveInstanceState()的定义是here

"此状态应仅包含非持久性信息或以后无法重建的信息。"

您可以使用保存其可见性状态的自定义CheckBox实现,也可以将此状态保存为活动/片段中的布尔值(buttonPressed = true),并在扩充布局后设置可见性。后者会更容易。