gpt4 book ai didi

android - 将 ListView 滚动到顶部没有任何屏幕闪烁

转载 作者:行者123 更新时间:2023-11-30 02:39:24 27 4
gpt4 key购买 nike

我已经实现了一个 ListView,它具有您在许多应用程序中看到的功能,用户滚动到底部并加载更多,OnScrollListener 是这样的:

public class OnScrolledToEndListener implements AbsListView.OnScrollListener
{
private int prevLast;

@Override
public void onScrollStateChanged(AbsListView absListView, int i)
{

}

@Override
public void onScroll(AbsListView absListView, int first, int visible, int total)
{
int last = first + visible;
if (last == total)
{
if (prevLast != last)
{
prevLast = last;
onScrolledToEnd();
}
}
}

public void onScrolledToEnd()
{

}
}

现在的问题是,当用户滚动到列表底部并点击我的应用程序中的刷新按钮时,我希望它从列表顶部重新开始,因为如果它停留在列表底部列表,然后滚动监听器将立即触发。我发现解决此问题的最佳方法是在执行刷新之前执行以下操作:

mListView.setSelection(0);
mListView.post(
new Runnable()
{
@Override
public void run()
{
mListView.setVisibility(View.GONE);
mLoadingLayout.setVisibility(View.VISIBLE); //this is basically a progressbar
// do the refresh
}
}
);

但是当列表滚动到顶部时会有轻微的闪烁。关于如何让它看起来更好的任何想法?

最佳答案

我找到了解决方案。显然将 ListView 设置为 View.GONE 使其不会更新其布局,因此我将其设置为 View.INVISIBLE 并且它起作用了。我什至不必使用 Runnable。

mListView.setSelection(0);
mListView.setVisibility(View.INVISIBLE);
mLoadingLayout.setVisibility(View.VISIBLE);

关于android - 将 ListView 滚动到顶部没有任何屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25982671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com