【问题标题】:Populating very long linear layout with custom views, extremely slow使用自定义视图填充非常长的线性布局,非常慢
【发布时间】:2018-09-10 09:11:00
【问题描述】:

我正在尝试使用图片中的自定义视图列表填充线性布局:

为了实现这一点,我将 foo.xml 膨胀到一个新的 View 对象中,然后我使用 .setText 更改 textviews,然后将新 View 添加到线性布局中。

问题是:它非常慢,即使在模拟器之外,在我的 S9 中也需要 10 多秒才能显示。

LinearLayout layout = findViewById(R.id.layout);

while(a<500){
    Person person = new Person();

    View personData = inflater.inflate(R.layout.person, layout, false);
    layout.addView(personData);
    ((TextView) coinData.findViewById(R.id.textView_text_name)).setText(person.name);

    a=a+1
}

编辑:谢谢你们!我现在要试试 RecyclerView

【问题讨论】:

  • 你为什么不用ListView
  • RecyclerView 一起使用会更好
  • 尝试使用有助于提高屏幕性能的 Recyclerview。
  • 你有多少“行”?真的是500?如果是这样,是的,使用RecyclerView
  • 膨胀这么久也没关系。还希望它在大多数设备上因 OutOfMemory 异常而崩溃。永远不要膨胀这么大的视图,将它们分成几部分并改用 RecyclerView。

标签: android android-layout android-linearlayout


【解决方案1】:

使用 RecyclerView 创建列表,它只是传统 ListView 的高级版本

您可以关注 Recycler View Here. 的教程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-04
    • 2020-04-27
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多