안드로이드 개발 질문/답변
(글 수 45,052)
젤리빈에서 웹뷰 사용시 롱클릭이 기본적으로 들어가 있는데 빼는방법이 있나요?
롱클릭 때문에 setOnTouchListener가 죽어버리는 현상이 있는데 롱클릭이 안먹게 할수 잇는 방법이 있을까요?
2012.12.14 12:58:37
1.
이 방법은 소스를 뒤지다 나온건데 webview에 setlongclickable 을 false로 주세요
기본은 init 시에 true를 줍니다.
1634 mWebView.setLongClickable(true);
2.
등록한 터치 이벤트 리스너에서 이벤트를 웹뷰에게 전달하지 않는 방법도 있습니다.
터치 이벤트를 처리한 후 return true 하세요.
3.
그것도 아니면 longclick리스너를 달고 마찬가지로 웹뷰에게 롱클릭 리스너를 전달해주지 않는 방법이 있습니다.
이 방법은 webview의 longclick() 과 조건을 잘 맞춰야겠죠.
4.
요것도 아니다, 그러면
@Override
public boolean onTouchEvent(MotionEvent event) {
return mProvider.getViewDelegate().onTouchEvent(event);
}
웹뷰는 요런 구조로 되어 있으니까
onTouchEvent를 override 하셔도 됩니다. webview를 extends 받고 onTouchEvent를 override 하신 뒤에
평소에는 super.ontouchevent를 콜하다가 longclick 의 조건 만족 시점에 잠시 간격을 주는 방법.
그럼 good luck
setOnLongClickListener( null ) 안되나요?