1. 程式人生 > >android listview巢狀時,顯示不全和不能滑動的解決

android listview巢狀時,顯示不全和不能滑動的解決

在listview巢狀listview的過程中,如果我們不寫一點特殊的操作的話,可能子listview會顯示不全,並且無法滑動,那麼應該怎麼解決呢

1.子listview繼承listview,然後重寫onmeasure方法,在裡面手動的去計算高度,然後傳給super方法,這樣我們的子listview的item就可以全部顯示出來了

程式碼:

@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		// TODO Auto-generated method stub
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}

當然這只是顯示出來全部而已,如果資料很多的話還是不夠好,那麼我們想要的不必全部顯示,但是子listview可以滑動是怎麼實現的呢

這個時候我們只需要把父listview繼承listview然後重寫onInterceptTouchEvent方法,在這個方法裡面直接返回false就可以了.

這裡面用到的是android 事件的分發機制

程式碼:

//view android 分發機制處理,我們這裡直接返回false,不讓我們的父listview進行處理
	@Override
	public boolean onInterceptTouchEvent(MotionEvent ev) {
		// TODO Auto-generated method stub
		return false;
	}

好了,這樣我們想要的效果就出來了