您的位置:首页 > 其它

Scollview 和 EditText 滚动冲突

2016-07-18 16:31 357 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: