我的 Android 应用程序使用 aViewPager
在每个页面上显示项目列表。每个列表行都由 a 组成TableLayout
,依次由三个TableRows
组成,每个有几个TextViews
,一个有一个ImageView
。
一切都很好,但是随着添加更多页面(以及列表),UI 会陷入困境,尤其是在水平分页时(在垂直列表滚动期间更少)。我正在寻找如何提高 UI 性能。
使用层次视图,只有ViewPager
itef 显示高布局和绘制时间(即红色停止灯图标),每页有 10 页和 4-20 个列表项(行)。布局似乎已经很浅了,但我想知道是否可以进一步改进。
一些伪代码给出布局结构的概念:
每个列表行都使用如下结构的 TableLayout:
<TableLayout>
<TableRow>
<TextView/ >
<TextView/ >
<TextView/ >
</TableRow>
<TableRow>
<ImageView/>
<TextView/ >
<TextView/ >
<TextView/ >
</TableRow>
<TableRow>
<TextView/ >
<TextView/ >
<TextView/ >
</TableRow>
<TableRow>
<TextView/ >
<TextView/ >
</TableRow>
<TableRow >
<TextView/ >
<TextView/ >
<TextView/ >
<TextView/ >
</TableRow>
</TableLayout>
主要活动的布局使 support 膨胀ViewPager
。我ListFragment
在每个ViewPager
页面上都使用,所以当创建一个新页面时,ListFragment
代码会膨胀ListView
布局,这反过来会膨胀TableLayout
上面显示的内容。
我的具体问题:
- 我应该
TableLayout
用 a替换RelativeLayout
并尝试摆脱一个深度层吗?由于我TextViews
以五行显示我的,每行有 2-4 个不同间距的字段,我怀疑这可能会变得棘手。但即使我能完成它,它会给我带来什么,因为层次结构视图只显示每个整个表格布局的“绿灯”图标 - 我正在使用
FragmentPagerAdapter
. 使用它在内存中拥有多达 10 页是不是很疯狂?我知道使用这个(或类似的东西)时建议不超过 3-4 页。我已经尝试过FragmentStatePagerAdapter
,但最终在分页时花费了太多时间/资源/电池来不断地从 Internet 检索数据。(我知道,也许我需要缓存它......)。我需要保留视图的能力,并且一直在玩setOffScreenPageLimit
,将其设置为 10,以便所有视图都保留在内存中。
感谢任何建议,因为我对 Android 还是比较陌生,谢谢。