保留视图ID范围

时间:2017-08-08 15:21:53

标签: android onsaveinstancestate onrestoreinstancestate

是否可以在Android中保留ID范围(不是单个ID)?

如果我可以在特定名称下保留给定数量的ID,那么根据我自己的标准,我可以生成可预测的动态ID,它不会与android可能分配给视图的任何其他ID冲突。

例如,如果我可以为我的自定义视图CustomerView保留10,000的范围(假设最多可以滚动10,000个项目),那么基于保留的id前缀,我可以产生一个保证独特的&可预测的id,与我的完整视图层次结构中的任何其他视图ID不冲突。

这样,我的保存&无论视图层次结构中可能存在其他视图,还原都可以正常工作,因为保存还原与视图ID完全相关。

为了让它更好理解,我们假设我有一个名为custom_view_id_bag的自定义视图&我在名称custom_view_id_bag下保留了总共100个ID。

如果Android允许此预订,我的收藏中索引为10的客户将始终获得10 + View.generateViewId()的ID,而不管视图重新创建的次数(这是一个问题) onSaveInstance)&这个ID保证在我的自定义视图所在的任何视图层次结构中的所有视图中都是唯一的。

这样,我确信我的onRestoreInstance& View.generateViewId()正常运行,无论Android分配给哪个ID

ids.xml的问题在于它会生成新的唯一ID但不可重复的ID。但是恢复实例仅适用于可重复的ID。

此外,onDestroyView的问题在于,您只能保留已知数量的项目。

用例:您拥有动态数量的观看次数&amp;想要为同一视图设置相同的ID,而不管onCreateView&amp;的次数。 <{1}}被调用。

0 个答案:

没有答案