2

我的 Android 应用程序使用 aViewPager在每个页面上显示项目列表。每个列表行都由 a 组成TableLayout,依次由三个TableRows组成,每个有几个TextViews,一个有一个ImageView

一切都很好,但是随着添加更多页面(以及列表),UI 会陷入困境,尤其是在水平分页时(在垂直列表滚动期间更少)。我正在寻找如何提高 UI 性能。

使用层次视图,只有ViewPageritef 显示高布局和绘制时间(即红色停止灯图标),每页有 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 还是比较陌生,谢谢。

4

0 回答 0