Dan*_*iel 6 android create-view android-activity
我的活动在 linearLayout(R.id.liste,在 scrollView 内)中有一些片段,需要一些时间才能显示。我将数组的大小减少到 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;
Run Code Online (Sandbox Code Playgroud)
我想显示一个圆形进度条并在显示所有片段时将其设置为 Gone,但 Activity 没有 onViewCreated() 方法,有什么解决方法吗?
如果我覆盖 Activity.onCreateView() 并使用 System.currentTimeMillis(),我发现在 Nexus 4 上显示 50 个片段需要 7.5 秒(350 个片段需要 20 秒)。由于每个片段只包含 5 个 TextViews 和 1 个 ProgressBar 并且需要 10-15 毫秒来创建它的视图,我很惊讶它需要这么长时间,为什么添加片段比绘制它花费的时间多近 6 倍?
我不知道您需要回答哪一段代码,当然可以随时提问!
非常感谢您的帮助!
但 Activity 没有 onViewCreated() 方法,有什么解决方法吗?
不。
难道我做错了什么 ?
是的。
您确实需要重新考虑您的设计。ListView您可以通过在您的Activity(不使用ScrollView)中使用 a 或ListView在单个 中使用 a轻松地完成您所描述的操作ListFragment。
AListView在滚动时重复使用其列表项视图 - 如果您使用自定义,Adapter它将按照您想要的方式运行并且非常高效。您可能还想查看“视图持有者”模式,以使滚动更加高效。
| 归档时间: |
|
| 查看次数: |
12719 次 |
| 最近记录: |