这个对吗?
- 在布局中有一个标记为不可见或消失的复选框。
- 创建后,将复选框标记为可见(即选择按钮后)。
- 执行配置更改(例如旋转设备)。
- 先前标记为可见的复选框未显示。
但是,复选框的选中状态保持不变,这让我很困惑,保存了哪些信息,没有保存哪些信息?
确保配置更改后视图保持可见的最佳方法是什么?
谢谢,扎克
这个对吗?
但是,复选框的选中状态保持不变,这让我很困惑,保存了哪些信息,没有保存哪些信息?
确保配置更改后视图保持可见的最佳方法是什么?
谢谢,扎克
除非您另外指定,否则配置更改将导致您当前的活动被破坏。尝试检查该复选框的可见性是否可见。
在另一种情况下,旋转设备会导致布局更改,请检查横向和纵向的布局文件,检查是否可以看到正确放置的复选框。
配置更改迫使活动经历一个完整的生命周期。这意味着它将与您的视图一起被销毁并重新创建。
默认情况下不保留视图的可见性状态。onSaveInstanceState() 的定义在这里。
“这种状态应该只包含不持久或以后无法重建的信息。”
您可以使用自定义 CheckBox 实现来保存其可见性状态,也可以将此状态保存为您的活动/片段中的布尔值 (buttonPressed = true),并在扩展布局后设置可见性。后者会更容易。