2014-12-30 36 views
3

滚动创建OnSwipeTouchListener类:Android的刷卡左/右pagging和上/下的web视图

public class OnSwipeTouchListener implements OnTouchListener { 
private GestureDetector gestureDetector; 
public OnSwipeTouchListener(Context c) { 
    gestureDetector = new GestureDetector(c, new GestureListener()); 
} 
public boolean onTouch(final View view, final MotionEvent motionEvent) { 
    return gestureDetector.onTouchEvent(motionEvent); 
} 
private final class GestureListener extends SimpleOnGestureListener { 
    private static final int SWIPE_THRESHOLD = 100; 
    private static final int SWIPE_VELOCITY_THRESHOLD = 100; 
    @Override 
    public boolean onDown(MotionEvent e) { 
     return true; 
    } 
    // Determines the fling velocity and then fires the appropriate swipe event accordingly 
    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     boolean result = false; 
     try { 
      float diffY = e2.getY() - e1.getY(); 
      float diffX = e2.getX() - e1.getX(); 
      if (Math.abs(diffX) > Math.abs(diffY)) { 
       if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { 
        if (diffX > 0) { 
         onSwipeRight(); 
        } else { 
         onSwipeLeft(); 
        } 
       } 
      } else { 
       if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { 
        if (diffY > 0) { 
         onSwipeDown(); 
        } else { 
         onSwipeUp(); 
        } 
       } 
      } 
     } catch (Exception exception) { 
      exception.printStackTrace(); 
     } 
     return result; 
    } 
} 
public void onSwipeRight() { 
} 
public void onSwipeLeft() { 
} 
public void onSwipeUp() { 
} 
public void onSwipeDown() { 
} 
} 

而在ItemActivity我有一个web视图(mWebView)并投入从资产HTML文件。从那以后,我穿上它的触摸监听器:

mWebView.setOnTouchListener(new OnSwipeTouchListener(this) { 
     @Override 
     public void onSwipeDown() { 
     } 
     @Override 
     public void onSwipeUp() { 

     } 

我实现onSwipeLeft和onSwipeUp正确,加载其他HTML-S却不在所选HTML工作刷卡向上和向下滑动,以向上和向下滚动,所以我有问题显示完整的HTML。

如何实现SwipeDown和SwipeUp垂直滚动工作?

回答

0

我变成ItemActivity这个覆盖:

mWebView.setOnTouchListener(new OnSwipeTouchListener(this) { 
     @Override 
     public void onSwipeDown() { 
      mWebView.pageUp(false); 
     } 
     @Override 
     public void onSwipeUp() { 
      mWebView.pageDown(false); 
     } 

和正常工作。也许,有人会有所帮助。

它的解决方案是好的,但不能完美工作,我需要一个这样的其他解决方案。

相关问题