【发布时间】:2020-09-29 05:35:41
【问题描述】:
我目前正在使用将动态添加到布局中的自定义视图。我了解如何保护和恢复视图状态。
根据文档,只有带有 id 的视图才会被系统持久化。因此建议的解决方案是使用View.getViewId() 为每个动态添加的视图设置一个ID。
问题是,在方向改变时,通过这个方法获得一个 id 的每个视图,将获得一个与方向改变发生之前不同的 id。这会阻止视图状态被恢复,因为 id 不匹配。
尝试此操作的最简单设置:以编程方式将 EditText 添加到活动中,给它一个带有
View.generateViewId()的 ID,然后输入一些文本并旋转。
我错过了什么吗?有没有办法为动态添加的视图提供 id,以便它们在方向更改时恢复自己?
【问题讨论】:
标签: android android-layout android-view android-configchanges