마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 WebView 좌우로 슬라이드하면 페이지 넘어가게 하려고 해요

+1 추천
wv = (WebView) findViewById(R.id.webView1);  
OnGestureListener mGestureListener = new OnGestureListener() {          
 @Override        
 public boolean onSingleTapUp(MotionEvent e) {             
  return false;         
  }          
 @Override        
 public void onShowPress(MotionEvent e) {          
  
 }         
 @Override        
 public boolean onScroll(MotionEvent e1, MotionEvent e2,                 
   float distanceX, float distanceY) {              
  if (e1.getX() - e1.getY() > 0) {                
   wv.loadUrl("file:///android_asset/test2.html");             
   } else if (e1.getX() - e1.getY() < 0) {                 
    wv.loadUrl("file:///android_asset/test.html");             
    }             return false;         }          
 @Override        
 public void onLongPress(MotionEvent e) {          
  
 }          
 @Override        
 public boolean onFling(MotionEvent e1, MotionEvent e2,                 
   float velocityX, float velocityY) {              
  return false;         
  }         
 @Override        
 public boolean onDown(MotionEvent e) {             
  return false;        
  }     
 };  
 mDetector = new GestureDetector(this, mGestureListener);    
 wv.setOnTouchListener(new OnTouchListener() {         
  float LastY = 0.0f;         
  
  @Override        
  public boolean onTouch(View v, MotionEvent event) {            
   // TODO Auto-generated method stub            
   float y = event.getY();              
   if (LastY != 0.0f && (Math.abs(LastY - y) > 15.0f)) {                 
    LastY = y;                 
    Log.v("dd", "세로");                 
    return onTouchEvent(event);              
    } else {                 
     LastY = y;                 
     Log.v("dd", "가로");                 
     mDetector.onTouchEvent(event);            
     }              
   return true;         
   }     
  }); 
  }
 }

웹뷰에 터치 리스너를 걸어봤더니

스크롤이 되면 좌우 슬라이드가 안되버리네요ㅠㅠ

아예 먹히질 않으니...

*제스쳐 리스너를 통해서 해도 먹히지 않아요

터끼터끼 (210 포인트) 님이 2014년 7월 17일 질문

2개의 답변

0 추천
페이지 페이지를 웹뷰로 하고 그 웹뷰 페이지를 뷰페이져로 나타내시면 원하시는거 될것 같은데요.
쭈쭈총각 (17,750 포인트) 님이 2014년 7월 17일 답변
0 추천
위 코드가 잘못되어 있네요. 좌우로 스크롤하려면 X 좌표만 비교해야죠.

즉, e1.getX() - e2.getX() ... 이런 식으로 비교해야 될 거 같네요.

그리고, onScroll() 보다는 onFling() 에 구현하는 게 좋을 거 같네요.
매발톱 (1,460 포인트) 님이 2014년 7월 17일 답변
...