Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 關於android中gridview數據量很大的時候,在加載gridview時會出現卡頓的現象

關於android中gridview數據量很大的時候,在加載gridview時會出現卡頓的現象

編輯:關於Android編程

好的解決辦法就是先加載一定數量的數據,然後在最下方提示正在加載!
動態加載就是把放入adapter中的數據分好幾次加載。在用戶拖動gridview時再加載一定的數據,和sina微博的客戶端類似。
給gridview添加OnScrollListener監聽事件默認會覆蓋下面兩個方法:

下面列舉個列子:


lazyGridView:

/**
 * 滾動到底部自動刷新
 * 
 * @author yinghui.hong
 * 
 */
public class LazyGridView extends GridView implements OnScrollListener {

	public LazyGridView(Context context) {
		super(context);
	}

	public LazyGridView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public LazyGridView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	@Override
	public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

	}

	/**
	 * 列表視圖滾動
	 */
	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		switch (scrollState) {
		case OnScrollListener.SCROLL_STATE_IDLE:
			Log.v("onScrollStateChanged", "已經停止:SCROLL_STATE_IDLE");
			// 判斷滾動到底部
			if (view.getLastVisiblePosition() == (view.getCount() - 1)) {
				Log.v("onScrollStateChanged", "到底部啦。可以請求刷新咯~~~~~~");
				if (listener != null) {
					listener.onScrollBottom();
				}
			}
			break;
		case OnScrollListener.SCROLL_STATE_FLING:
			Log.v("onScrollStateChanged", "開始滾動:SCROLL_STATE_FLING");
			break;
		case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
			Log.v("onScrollStateChanged", "正在滾動:SCROLL_STATE_TOUCH_SCROLL");
			break;
		}

	}

	private OnScrollBottomListener listener;

	public void setOnScrollBottomListener(OnScrollBottomListener listener) {
		this.setOnScrollListener(this);
		this.listener = listener;
	}

	public void removeOnScrollBottomListener() {
		listener = null;
		System.out.println("removeOnScrollBottomListener");
	}

	/**
	 * 列表視圖滾動到底部監聽器
	 * 
	 * @author yinghui.hong
	 * 
	 */
	public interface OnScrollBottomListener {
		/**
		 * 列表視圖滾動到底部時響應
		 */
		public void onScrollBottom();
	}
}


主activity:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_circle);
		getActionBar().setDisplayHomeAsUpEnabled(true);

		mBeans = new ArrayList();
		mAdapter = new CircleAdapter(this, mBeans);
		gridView = (LazyGridView) findViewById(R.id.gridview);
		gridView.setAdapter(mAdapter);

		gridView.setOnScrollBottomListener(this);
		mPageIndex = 0;
		queryJoinedCircles(mPageIndex);
	}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved