MyWebView[] webview =new MyWebView[2];?
? ? flipper = (ViewFlipper) findViewById(R.id.ViewFlipper);?
?
?webview[i] = new MyWebView(this);?
?webview[i].setWebViewClient(new HelloWebViewClient());?
?webview[i].getSettings().setJavaScriptEnabled(false);?
?webview[i].setInitialScale(60); ?
?webview[i].getSettings().setBuiltInZoomControls(true);?
?
? ? flipper.addView(webview[0]);?
? ? flipper.addView(webview[1]);?
public class MyWebView extends WebView { 
  public MyWebView(Context context) { 
   super(context); 
  } 
 
 
 
@Override  
     public boolean onTouchEvent(MotionEvent evt) {    
 
         boolean consumed = super.onTouchEvent(evt);  
     if (isClickable()) {  
         switch (evt.getAction()) {  
     case MotionEvent.ACTION_DOWN:  
         lastTouchX = evt.getX();  
         lastTouchY = evt.getY(); 
         downXValue = evt.getX(); 
         downTime = evt.getEventTime(); 
         hasMoved = false;  
         break;  
     case MotionEvent.ACTION_MOVE:  
         hasMoved = moved(evt);  
         break;  
     case MotionEvent.ACTION_UP:  
        float currentX = evt.getX(); 
           long currentTime = evt.getEventTime(); 
           float difference = Math.abs(downXValue - currentX); 
           long time = currentTime - downTime; 
 
           Log.i("Touch Event:",  "Distance: " + difference + "px Time: " + time + "ms"); 
 
           if ( (downXValue < currentX) && (time < 220) && (difference > 100) ) { 
               go_back(); 
           } 
 
 
 
             if ( (downXValue > currentX) && (time < 220) && (difference > 100) ) { 
                   go_forward(); 
 
 
                  } 
 
                 //if (!moved(evt)) performClick();  
                 break;  
             }  
         }  
         return consumed || isClickable();  
     }  
  float downXValue; 
  long downTime; 
     private float lastTouchX, lastTouchY;  
     private boolean hasMoved = false;  
     private boolean moved(MotionEvent evt) {  
         return hasMoved ||  
             Math.abs(evt.getX() - lastTouchX) > 10.0 ||  
             Math.abs(evt.getY() - lastTouchY) > 10.0;  
     } 
 
 } 
?
    1 楼
    maniunet
    2011-07-25  
    
    
  
  这样webview左右滑动有了,但是如果webview内容较长的时候,上下的手势不能滚动查看内容了,请问如何能既可以左右滑动,但是不影响webview手势的上下滚动