ListView的Item嵌套ListView的显示和滑动的问题解决

来源:互联网 发布:org.apache.log jar包 编辑:程序博客网 时间:2024/06/03 22:42

解决显示不全的问题:

Item嵌套的ListView替换成重写的ListView的onMeasure方法:

public class CustomList extends ListView {    public CustomList(Context context) {        super(context);    }    public CustomList(Context context, AttributeSet attrs) {        super(context, attrs);    }        //重写此方法    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,                MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}

解决不能滑动的问题:

Item嵌套的ListView替换成重写的ListView的onInterceptTouchEvent方法:

 @Override    public boolean onInterceptTouchEvent(MotionEvent ev) {        switch (ev.getAction()) {            //父控件交出ontouch权限,不能滚动            case MotionEvent.ACTION_DOWN:                setParentScroll(false);            case MotionEvent.ACTION_MOVE:                break;            case MotionEvent.ACTION_UP:            case MotionEvent.ACTION_CANCEL:                // 父控件重新获取onTouch权限                setParentScroll(true);                break;        }        return super.onInterceptTouchEvent(ev);    }    // 设置父控件是否可以获取到触摸处理权限    private void setParentScroll(boolean flag){        getParent().requestDisallowInterceptTouchEvent(!flag);    }

0 0