Scollview 和 EditText 滚动冲突

1 其实很好处理 在点击Editview 的时候自己去处理 touch 时间 

EditText ed_more = (EditText) findViewById(R.id.ed_more);
 ed_more.setOnTouchListener(this);

2  处理tonch 事件 

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if ((v.getId() == R.id.ed_more && canVerticalScroll(ed_more))) {
            ed_more.getParent().requestDisallowInterceptTouchEvent(true);
            if (event.getAction() == MotionEvent.ACTION_UP) {
                ed_more.getParent().requestDisallowInterceptTouchEvent(false);
            }
        }
        return false;
    }

3  判断是否可以滚动

  private boolean canVerticalScroll(EditText editText) {
        int scrollY = editText.getScrollY();
        int scrollRange = editText.getLayout().getHeight();
        int scrollExtent = editText.getHeight() - editText.getCompoundPaddingTop() -editText.getCompoundPaddingBottom();
        int scrollDifference = scrollRange - scrollExtent;
        if(scrollDifference == 0) {
            return false;
        }
        return (scrollY > 0) || (scrollY < scrollDifference - 1);
    }

 

转载于:https://www.cnblogs.com/seanzhoutao/p/5681783.html

你可能感兴趣的:(Scollview 和 EditText 滚动冲突)