我在cwac寻呼机上遇到了一个问题,我可以在PagerDemo演示项目中重现这个问题。
复制这一问题的步骤:
EditorFragment
页面)如果此时检查ArrayPagerAdapter中的ArrayPagerAdapter,您将看到它具有正确的PageDescriptor
s数,但有些PageDescriptor
s具有相同的标记,例如"editor9“和"editor10”两次出现。与这些PageDescriptor
对应的片段似乎不加载。
示例项目(以及我的项目中类似的代码)用于构建标记的代码简单地连接一个字符串和正在创建的片段的位置:
private String buildTag(int position) {
return("editor" + String.valueOf(position));
}
作为解决办法,我修改了buildTag
以构建一个随机标记:
private String buildTag(int position) {
return("page" + UUID.randomUUID().toString());
}
我不确定这种解决办法是否会产生意想不到的负面后果?
发布于 2014-04-21 13:18:42
这是演示应用程序中的一个bug,这是正确的,ArrayPagerAdapter
可以在这里使用一些防御性编程来检测这种情况并引发异常。我会努力解决这两个问题。PageDescriptor
需要一个唯一的标签,而我当前的演示应用程序算法无法保证这一点,正如您所发现的。我已经为此申请了问题。
从头顶上看,UUID应该没问题,不过我可能只会使用一个单调递增的整数计数器。
谢谢你指点这个!
https://stackoverflow.com/questions/23198158
复制相似问题