android listview嵌套时,显示不全和不能滑动的解决

来源:互联网 发布:unity3d资源 百度云 编辑:程序博客网 时间:2024/05/17 07:13

在listview嵌套listview的过程中,如果我们不写一点特殊的操作的话,可能子listview会显示不全,并且无法滑动,那么应该怎么解决呢

1.子listview继承listview,然后重写onmeasure方法,在里面手动的去计算高度,然后传给super方法,这样我们的子listview的item就可以全部显示出来了

代码:

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

当然这只是显示出来全部而已,如果数据很多的话还是不够好,那么我们想要的不必全部显示,但是子listview可以滑动是怎么实现的呢

这个时候我们只需要把父listview继承listview然后重写onInterceptTouchEvent方法,在这个方法里面直接返回false就可以了.

这里面用到的是android 事件的分发机制

代码:

//view android 分发机制处理,我们这里直接返回false,不让我们的父listview进行处理@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {// TODO Auto-generated method stubreturn false;}

好了,这样我们想要的效果就出来了

0 0