繁体   English   中英

没有视图ID的活动onSaveInstanceState

[英]Activity onSaveInstanceState in the absence of view IDs

Activity#onSaveInstanceState的默认实现是:

默认实现通过在具有ID的层次结构中的每个视图上调用onSaveInstanceState()来为您处理大多数UI每个实例状态

Android数据绑定指南以及此视频 -幻灯片9建议我们在使用数据绑定时不再需要视图ID。 我的问题是:缺少View ID如何影响状态保存/还原?

可以说,当使用数据绑定时,不应该依赖默认机制来保存/恢复状态,而应该依赖于绑定到布局的ViewModel来拥有最新状态,但是我仍然很想知道关于影响。

您不需要ID并不意味着您永远不要使用ID。 那是为了更新您的视图。 在许多其他情况下,id很有用,例如RelativeLayout中的规则。

因此,如果状态恢复对于您的用例很重要(例如,您的模型需要一段时间才能恢复),则请务必放置id并禁用绑定,直到数据准备就绪为止。

我的问题是:缺少View ID如何影响状态保存/还原?

为了直接回答您的问题,缺少视图ID将阻止onSaveInstanceState恢复该视图。 对于没有ID的视图,Android的文档仍然适用。

没有ID的所有视图仍将被重新创建,但是它们不会恢复其状态。

我只是在一个简单的应用程序中对此进行了测试,没有ID的视图没有恢复其状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM