在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;
}
好了,这样我们想要的效果就出来了