項目中使用PullToRefreshGridView會出現(xiàn)只有一個數(shù)據(jù)時會顯示不出來吠谢,稍微向下移動之后再向上即可看到。經(jīng)下面的方法修改可以解決該問題劳淆。但是因為擔(dān)心其他風(fēng)險凉翻,故項目中還是以listView.smothScrollBy(1, 10);來解決。
項目中用到了PullToRefreshListView, 使用起來非常方便, 功能也非常強大, 但是在使用中發(fā)現(xiàn)了一個BUG:
PS: 只有加載更多的時候服務(wù)器只返回1條數(shù)據(jù)的時候才會出現(xiàn)這個問題
PullToRefreshListView類中的 isLastItemVisible()方法
這個方法是判斷最后一個child是否完全顯示出來, 如果完全顯示出來了上拉就會顯示footer, 修改后代碼為:
privatebooleanisLastItemVisible() {finalAdapter adapter = mListView.getAdapter();if(null== adapter || adapter.isEmpty()) {returntrue;? ? ? ? }finalintlastItemPosition = adapter.getCount() -1;finalintlastVisiblePosition =? ? ? ? ? mListView.getLastVisiblePosition();if(lastVisiblePosition >= lastItemPosition -1) {/**修改前
final int childIndex = lastVisiblePosition - mListView.getFirstVisiblePosition();
final int index = Math.min(childIndex, childCount - 1);
**/finalintchildIndex = lastItemPosition - mListView.getFirstVisiblePosition();finalintchildCount = mListView.getChildCount();finalintindex = Math.max(childIndex, childCount-1);finalView lastVisibleChild = mListView.getChildAt(index);if(lastVisibleChild !=null) {returnlastVisibleChild.getBottom() <= mListView.getBottom();? ? ? ? ? ? }? ? ? ? }returnfalse;? ? }
即可解決問題
原文地址:http://blog.csdn.net/zengyan3658229/article/details/46927437