Lister问题页脚(高度)

时间:2014-05-10 06:17:46

标签: android android-listview

我正在努力改进我的listview更多的加载器,不太了解它是如何工作但我必须做点什么。但是在我添加的listview的第一个页脚中发生了什么,他在高度上“受损”,如图所示:

班级代码为here

摘录:

 @Override
 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    try {
        if(firstVisibleItem+visibleItemCount == totalItemCount && totalItemCount!=0)
        {
            if(!mIsLoading) {
                if(mListView.getFooterViewsCount() >= 0) {
                    mListView.addFooterView(mFooterView);
                }
                new LoadMore().execute();
                mIsLoading = true;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

错误图片为:screenshot 1,正确的图片为screenshot 2

如果有任何善意的人想要正确解释这种“加载更多”的效果,我感谢。

1 个答案:

答案 0 :(得分:1)

佩德罗,

我和你一样犯了同样的错误。不要在onScrollListner中控制这种东西。 正确的方法是加载数据,并检查是否需要更多数据。

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    if (!loading && hasNext && i > getCount() - 10) {
        page++;
        new NewsAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, page);
    } 
    ... 
}

我还建议你在ListView的页脚中加载一个加载视图,只有当没有更多数据需要加载时,才能将其可见性更改为GONE。

想象一下,如果在一个活动中你需要加载3个不同的数据,那将是一个完全混乱。 这样做会更有效率,你会看到一个干净的代码!

希望它有所帮助。

此致 Joao Paulo Ros