有什么已知的习惯可以有效地加载Android ListViews?

时间:2019-03-02 20:09:02

标签: java android performance android-listview

基本解释这种情况:
我正计划为学生创建一个学校时间表应用程序。我的应用程序当前只是一个基本的MainActivity,它具有一个侧边抽屉,如果您单击某个项目,它将使选定的Fragment膨胀。我的问题涉及我当前正在研究的主题列表。单击“主题片段”片段中的FAB时,它将打开一个活动,您可以在其中添加主题。添加主题后,该主题将显示在“ SubjectsFragment”中-非常简单。我已经关闭了所有数据库逻辑,并创建了一个自定义适配器。但是这些事情甚至都没有引起问题。

由于我的问题:
当我打开Fragment时,它在填充ListView时滞后了非常少的时间。尽管只花费很少的时间,但是肯定会引起注意,这意味着UIThread这次被阻塞了。
我没有找到与当前正在使用的实现不同的实现,并且我想知道是否存在其他填充ListView的方法。使用AsyncTask毫无意义,因为ListView的填充仍然发生在UIThread上。
这是我的实现的一小段代码:

newMail

为了理解我的问题,没有必要知道我的适配器如何工作,因为Android Studio的预加载适配器也会发生这种情况。在此代码段中,将100个项目添加到列表中。但是可悲的是,微滞后现象也只发生在20个项目上。

是否有更好/不同的方法来实现这一目标并且不会使其滞后?抱歉,这听起来很愚蠢,但是我对Android编程还是很陌生,并且仍然在学习。

1 个答案:

答案 0 :(得分:0)

ListView是在Android中创建列表的旧方法。有一种更好/更快的方法,RecyclerViewExample 1example 2