1. 程式人生 > >Android 遮蔽/禁止ListView,GridView的滑動/滾動功能

Android 遮蔽/禁止ListView,GridView的滑動/滾動功能

一、簡介

在某些情況下,由於專案的需求(比如說九宮格、六宮格、用listview代替一個Linearlayout),可能需要用到禁止Listview或者Gridview的滾動功能,這裡能給出兩種解決的方案:
(1)自定義view,重寫dispatchTouchEven方法(網上沒人提到,其實這樣用會有一個弊端,就是MotionEvent.ACTION_MOVE被禁止後,移動觸控的事件將會失效,事實上,所有的button和item的點選事件都能通過觸控後移動來取消這個事件。也就是說,這麼寫後,這個隱性的功能就沒了,點選事件將無法取消。手感和使用者體驗將會下降。)

	public boolean dispatchTouchEvent(MotionEvent ev) {
		if (ev.getAction() == MotionEvent.ACTION_MOVE) {
			return true; // 禁止GridView滑動
		}
		return super.dispatchTouchEvent(ev);

	}


(2)不需要自定義view,但是需要固定item的數量和高度,然後設定gridview.setOverScrollMode(View.OVER_SCROLL_NEVER)就可以了(不得不說,固定item的數量和高度是非常有必要的,畢竟已經不能滾動了,超出的螢幕的item將毫無意義