不会消失的列表视图微调器/加载器

Listview spinner/loader that doesn't disappear

提问人:Kevin 提问时间:11/16/2023 更新时间:11/16/2023 访问量:24

问:

在我的xml中,我有一个列表视图,我用适配器填充了它。

                <ListView
                android:id="@+id/listPartenaires"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="12dp"
                android:layout_marginRight="16dp"
                android:divider="@null" />

当我向下滚动页面时,我去添加更多项目,在列表视图的末尾出现一会儿微调器/加载器,然后在显示行时自行消失。

如果我滚动几次,然后进行搜索,显示的行数比以前显示的要少,微调器将始终保持对我显示。

我想弄清楚如何隐藏它,考虑到我在视图中没有真正的微调器对象/小部件

谢谢

enter image description here

Kotlin Android-Studio Android-ListView

评论

0赞 Kevin 11/17/2023
我解决了这个问题。我多次添加addFooterView,因为在循环中,因此removeFooterView不起作用

答:

1赞 Oyindamola Gideon Olarewaju 11/16/2023 #1

如果使用后台线程或协程(异步)将数据加载到 ListView 中,则加载指示器的生命周期可能会出现问题,因此使其能够感知生命周期非常重要。

以下是您可以注意的几点:

  1. 显示微调器:您可以选择在开始加载数据时(例如添加新项目时)显示加载指示器。可以使用 ProgressBar 或任何其他类型的视觉提示。您可以显示加载微调器。

  2. 隐藏微调器:数据加载完成后,应隐藏加载指示。确保为此使用 UI 线程。

  3. 处理边缘情况:确保即使数据集为空或存在错误,也要调用隐藏函数。

评论

0赞 Kevin 11/16/2023
谢谢。我没有微调器,从列表视图中得出的。我正确地终止了线程。正如我之前所说,如果我直接进行搜索,我没有问题,而如果我首先向下滚动列表并显示 40 行,然后显示搜索中的 18 行,我就剩下加载器了。如何强制停止/隐藏 ListView 加载器?