我的活动在线性布局中有一些片段(R.id.liste,在滚动视图内),需要一些时间才能显示。我将数组的大小减小到 50,但它首先是 350。每个片段都是独立的,因为我需要它们响应点击并弹出一个对话框。
这是代码:
long start= System.currentTimeMillis();
for (Item item : dao.getList(triKey, start, end)) {
ItemFragment fragment = ItemFragment.newInstance(item);
FragmentTransaction fragTransaction = fragMan.beginTransaction();
fragTransaction.add(R.id.liste, fragment);
fragTransaction.commit();
}
long time = System.currentTimeMillis()-start;
真正的问题:
我想显示一个圆形进度条并在显示所有片段时将其设置为 Gone,但 Activity 没有 onViewCreated() 方法,有什么解决方法吗?
更深层次的理论问题:
如果我重写 Activity.onCreateView() 并使用 System.currentTimeMillis(),我发现在我的 Nexus 4 上显示 50 个片段需要 7.5 秒(350 个片段需要 20 秒)。由于每个片段只包含 5 个 TextViews 和 1 个 ProgressBar 并且需要 10-15 毫秒来创建它的视图,我很惊讶它需要这么长时间,为什么添加片段比绘制它需要近 6 倍的时间?
我不知道您需要回答哪一段代码,当然可以随意询问!
非常感谢您的帮助!