zoukankan      html  css  js  c++  java
  • Android 解决Gallery下ScrollView滑动事件冲突

    在Gallery下,里面内容过长超出屏幕,这时我们可以用ScrollView来滚动,但是这样做了以后,会发现一个问题,Gallery的滑动事件和ScrollView的滑动事件起冲突,这时我们可以自定义Gallery控件来避免这个问题:

    下面贴出代码:

    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.KeyEvent;
    import android.view.MotionEvent;
    import android.widget.Gallery;
    
    public class TestGallery extends Gallery {
    	private float gTouchStartX;
    	private float gTouchStartY;
    
    	public TestGallery(Context context, AttributeSet attrs, int defStyle) {
    		super(context, attrs, defStyle);
    	}
    
    	public TestGallery(Context context, AttributeSet attrs) {
    		super(context, attrs);
    	}
    
    	public TestGallery(Context context) {
    		super(context);
    	}
    	
    	@Override
    	public boolean onInterceptTouchEvent(MotionEvent ev) {
    		int action = ev.getAction();
    		switch(action){
    		case MotionEvent.ACTION_DOWN:
    			gTouchStartX = ev.getX();
    			gTouchStartY = ev.getY();
    			super.onTouchEvent(ev);
    			break;
    		case MotionEvent.ACTION_MOVE:
    			final float touchDistancesX = Math.abs(ev.getX()-gTouchStartX);
    			final float touchDistancesY = Math.abs(ev.getY()-gTouchStartY);
    			if(touchDistancesY *2 >= touchDistancesX){
    				return false;
    			}else{
    				return true;
    			}
    		case MotionEvent.ACTION_CANCEL:
    			break;
    		case MotionEvent.ACTION_UP:
    			break;
    		}
    		return false;
    	}
    	
    	@Override
    	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    			float velocityY) {
    		if(e2.getX() > e1.getX()){
    			onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, null);
    		}else{
    			onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
    		}
    		return false;
    	}
    
    }


  • 相关阅读:
    简易四则运算
    对GitHub的认识
    对‘前辈’们的博文有感
    javascript中的JSON序列化与反序列化
    初步体验javascript try catch机制
    JQuery拾遗
    直面Javascript面试题算法思路
    ECMAScript5下Array的方法
    浅谈javascript中的数据类型和引用类型
    ECMAScript 5.1中对属性的操作
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3163042.html
Copyright © 2011-2022 走看看