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

viewflipper의 webview click

0 추천
안녕하세요.

현재 webview가 터치이벤트로 슬라이딩되는 viewflipper를 customized linearlayout으로 구현했습니다.

flipper linearlayout을 다른 화면에 넣고 화면에서 webview를 클릭하면 링크된 화면이 출력되도록 하고자합니다.

 

그런데 출력된 webview를 클릭해도 클릭이벤트가 듣질 않네요.

그래서 이것저것 건드려본 결과, custrom linearlayout의

-----------------------------------------------------------------------------

...

webview = setWebview(0, context);

webview.getSetting().setJavaScriptEnable(true);

// webview.setOnTouchListener(this);

viewflipper.addView(webview);

...

-----------------------------------------------------------------------------

에서 터치리슨너를 막고하니 클릭이벤트가 먹습니다.

그런데.. 터치가 안되니  터치 슬라이드가 안됨겠지요...

 

혹시나 해서

webview.setClickable(true);

webview.setFocusable(true);

webview.setLongClickable(true);

webview.setFocusableInTouchMode(true);

위 네가지도 넣어봤지만

webview.setOnTouchListener(this); 가 들어가면 역시 클릭이벤트가 안듣네요.

 

webview.setOnClickListener(this);를 넣으면

The type MyViewFlipper must implement the inherited abstract method View.OnClickListener.onClick(View)

가 뜹니다.

 

webview에 터치와 클릭이 동시에 되도록 할 방법이 없을까요?

조언 부탁드립니다.
익명사용자 님이 2014년 8월 4일 질문
굳이 클릭과 터치를 같이 하려는 의도가 있겠지만, 아마 두개를 동시에 사용하면 안될꺼에요. 그냥 Touch 에다가 click을 재정의 해서 사용 해보심이 어떤지...

1개의 답변

0 추천

webview.setOnTouchListener(this);

위 처럼 webview에 TouchListener를 걸게 되면

onTouch로 event가 먼저 오고 return false로 처리 해줘야 event를 소모하지 않고 webview에 전달합니다.

그래야 webview에 click event가 touch up 이후 발생하죠.

 

public void onTouch(View v, MotionEvent event) {
    if(v.equals(webview)) {
         // 처리하시고
        return false;
    }
    ....
}

 

 

skpkyle (1,280 포인트) 님이 2014년 8월 20일 답변
...