1
我已经实现了具有您在许多应用程序,在用户滚动至底部,并加载更多看到的功能一个ListView,即OnScrollListener是这样的:滚动一个ListView顶端,没有任何屏幕闪烁
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
}
}
);
但有轻微的闪烁,当列表滚动到顶部。任何想法如何使它看起来更好?