当前位置:编程学习 > wap >>

Android4.2 scrollview 手势bug问题解决

最近发现了 Android4.2 scrollview 手势bug,先引用下别人测试过程,
测试用机Nexus7,android版本4.2.2
当scrollview中放入的children(也可以是child的children)上设有click和longclick事件的时候,滑动无效
当手放在child以外的属于scrollview的空白地方滑动,滑动有效,并且之后在children上面滑动也有效。

猜测:一开始child的事件处理将事件拦截了,或者说外层容器,但是之后在scrollview上面滑动时激活了
我都语无伦次了。。。。

测试用例可以用DodoWaterFall的瀑布流,

1. scrollview中加入几个child, scrollview.width=match_parent. child.layout_margin=30
2. child.setOnClickListener 或 child.setOnLongClickListener 
3. 先用手指按住child滑动:无效
4. 手指按住scrollview边框空白处滑动:成功
5. 成功之后,手指再放到child上滑动:成功

不知道有多少朋友发现过这个问题。 android 4.2.2  bug  手势bug  Android scrollview android4.2.2 --------------------编程问答-------------------- 解决办法,在自己定义的scrollview中添加方法:
@Override
    public boolean onInterceptTouchEvent(MotionEvent e) {
        if (e.getAction() == MotionEvent.ACTION_MOVE&&Integer.parseInt(Build.VERSION.SDK) > 16) {
    if(getScrollY() == 0){
    System.out.println("ontouch2");
return true;
}
        }
        return super.onInterceptTouchEvent(e);
    }
--------------------编程问答-------------------- 解决办法2,不推荐,这种方式会使得你的scrollview在滑动的时候有偏移,体验不佳

//  @Override  
//     public boolean dispatchTouchEvent(MotionEvent ev) {  
//       waterfall_scroll.onTouchEvent(ev);  
//         return super.dispatchTouchEvent(ev);  
//     } 
--------------------编程问答-------------------- 没人留个言······ --------------------编程问答-------------------- 还需要在初始化的时候添加scrollTo(0, 1); --------------------编程问答-------------------- 好东西啊,谢谢分享,以后也许会碰到~
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,