listview中嵌套listview,子listview无法滚动

来源:互联网 发布:自学外语的网站知乎 编辑:程序博客网 时间:2024/04/29 15:37
自定义vlistview,重写
onInterceptTouchEvent()方法
public class InnerListView extends ListView {    public InnerListView(Context context) {        super(context);    }    public InnerListView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public InnerListView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        switch (ev.getAction()) {            // 当手指触摸listview时,让父控件交出ontouch权限,不能滚动            case MotionEvent.ACTION_DOWN:                setParentScrollAble(false);            case MotionEvent.ACTION_MOVE:                break;            case MotionEvent.ACTION_UP:            case MotionEvent.ACTION_CANCEL:                // 当手指松开时,让父控件重新获取onTouch权限                setParentScrollAble(true);                break;        }        return super.onInterceptTouchEvent(ev);    }    // 设置父控件是否可以获取到触摸处理权限    private void setParentScrollAble(boolean flag) {        getParent().requestDisallowInterceptTouchEvent(!flag);    }}

0 0