事件冲突常见解决方案

Posted on 2016-02-26 14:09  小小蜗牛灬  阅读(293)  评论(0)    收藏  举报

1.scrollview中的edittext的滑动冲突 ,在edittext的触摸监听中添加代码如下

etContent.getParent().requestDisallowInterceptTouchEvent(true);
2.ListView的Item中有TextView,TextView中的部分文字有ClikableSpan,ListView有OnItemClick事件,这样ClickableSpan会把OnItemClick事件给屏蔽掉了;
  OnItemClick不能用的原因是 textview设置clickablespan后会获取焦点,故OnItemClick不能用了,解决方案
  重写TextView的hasFocusable()和onTouchEvent();
    @Override
    public boolean hasFocusable() {
        return false;
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
         return true;  
    }

  这样OnItemClick()能用了 但是ClickableSpan却不能用了,解决方案:重写LinkMovementMethod的onTouchEvent();在onTouchEvent方法中把ClikableSpan点击事件触发。弊端:TextView的onTouchEvent返回true后,在listview滚动的时候OnLongClick()事件就会被触发。

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3