android listview巢狀時,顯示不全和不能滑動的解決
阿新 • • 發佈:2018-12-29
在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; }
好了,這樣我們想要的效果就出來了