仅供个人参考使用,如果你喜欢,你也可以用。保护网络环境,拒绝喷子。我是无私奉献的,没让喷子拿一分钱,喷子请闭嘴。

0、二话不说,上工具类代码

 

import android.view.MotionEvent;import android.view.View;import android.widget.EditText;/** * 用于解决EditText和ScrollView的触摸滚动冲突 * Created by LiuChaoya on 2018/1/25 09:46. * email  1090969255@qq.com */public class SolveEditTextScrollClash implements View.OnTouchListener {    private EditText editText;    public SolveEditTextScrollClash(EditText editText) {        this.editText = editText;    }    @Override    public boolean onTouch(View view, MotionEvent event) {        //触摸的是EditText而且当前EditText能够滚动则将事件交给EditText处理。否则将事件交由其父类处理        if ((view.getId() == editText.getId() && canVerticalScroll(editText))) {            view.getParent().requestDisallowInterceptTouchEvent(true);            if (event.getAction() == MotionEvent.ACTION_UP) {                view.getParent().requestDisallowInterceptTouchEvent(false);            }        }        return false;    }    /**     * EditText竖直方向能否够滚动     * @param editText  须要推断的EditText     * @return  true:能够滚动   false:不能够滚动     */    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);    }}

1、在需要处理冲突的类中直接调用,举个栗子

 

 

EditText editText = (EditText)findViewById(R.id.editText);
editText.setOnTouchListener(new SolveEditTextScrollClash(editText));

2、结束(代码很少,不提供下载链接,请需要的自行copy)。

 

更多相关文章

  1. LayoutInflater的使用
  2. 赵雅智:Android短信发送器
  3. Android(安卓)两层嵌套tab,Spinner点击出错解决办法
  4. No resource found that matches the given name (at 'xxx' with
  5. android 自定义控件的style
  6. Android(安卓)根据屏幕尺寸适配控件尺寸(按比例缩放)
  7. Android(安卓)Design Support Library使用详解
  8. Android:match_parent,fill_parent,wrap_content的区别
  9. Android(安卓)7.1 设置不支持遥控操作?

随机推荐

  1. php 正则匹配中文 utf8编码/^[\x{4e00}-
  2. Show images from temp directory to end
  3. PHP中的嵌套(多个)字符串插值
  4. ThinkPHP连接主从数据库
  5. PHP中的Xdebug会返回什么?
  6. 在Windows上安装最新的Apache 2.4.12遇到
  7. 使用Sublime Text 3的PHP 100%CPU使用率
  8. 如何使用spl_autoload_register?
  9. centos6.5下使用yum完美搭建LNMP环境(php
  10. 使用javascript将文件输入到php文件