在Android的gridview的分页 [英] Gridview pagination in android
本文介绍了在Android的gridview的分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我检索文本+图片来自DB和在一个gridview.ieeach gridview的细胞显示它由一个图像的加一个text.Now我做分页为that.i've以允许其显示每4个细胞page.How我能做到这一点?实例链接或code是多少AP preciated。
i retrieved texts+images from DB and displayed it in a gridview.i.e.each gridview cell consists of one image+one text.Now i've to do pagination for that.i've to allow it to display 4 cells per page.How could i do that?Example link or code is much appreciated.
推荐答案
这是什么亚姆在我的应用程序之一做。希望它帮助。
This is what iam doing in one of my apps. Hope it helps.
public static int currentPage = 0;
private boolean endOfAlbums = false;
private int lastItem = 0;
albumGrid.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
// Pause fetcher to ensure smoother scrolling when flinging // You can ignore this part
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING) {
mImageFetcher.setPauseWork(true);
} else {
mImageFetcher.setPauseWork(false);
}
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
final int _lastItem = firstVisibleItem + visibleItemCount;
if (_lastItem > 0 && totalItemCount > 0)
if (_lastItem == albums.size() && !endOfAlbums && lastItem != _lastItem) {
lastItem = _lastItem;
// Last item is fully visible.
loadAlbums();
}
}
});
return view;
}
private void loadAlbums() {
if (currentPage == 0) {
albums.clear();
endOfAlbums = false;
lastItem = 0;
// get new releases
progressLayout.setVisibility(View.VISIBLE);
} else
progressLoadMore.setVisibility(View.VISIBLE);
if (Utility.isNetworkAvailable(getActivity())) {
new Thread(new Runnable() {
@Override
public void run() {
// get the serverAlbums
ArrayList<Album> serverAlbums = ServerAPI.getAllAlbums(session.getLanguage(), currentPage);
if (serverAlbums.size() > 0)
albums.addAll(serverAlbums);
else
endOfAlbums = true;
currentPage++;
myHandler.post(updateRunnable);
}
}).start();
updateRunnable = new Runnable() {
@Override
public void run() {
if (albums.size() > 0) {
imageAdapter.notifyDataSetChanged();
// get listview current position - used to maintain scroll position
int currentPosition = albumGrid.getFirstVisiblePosition();
// Setting new scroll position
albumGrid.smoothScrollToPosition(currentPosition + 1, 0);
} else
tvNoAlbums.setVisibility(View.VISIBLE);
progressLayout.setVisibility(View.GONE);
progressLoadMore.setVisibility(View.GONE);
}
};
} else {
Toast.makeText(getActivity(), R.string.check_connectivity, Toast.LENGTH_SHORT).show();
progressLayout.setVisibility(View.GONE);
progressLoadMore.setVisibility(View.GONE);
}
}
这篇关于在Android的gridview的分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文