ListView에 WebView를 사용하면 해당 WebView에는 클릭 이벤트가 먹지 않습니다. ㅜㅜ

그래서 아래와 같은 방법을 사용하시면 클릭이벤트가 먹습니다.
<WebView android:layout_width="70dp" android:layout_height="wrap_content" 
            android:scrollbars="none"  android:clickable="false" android:focusable="false"
            android:id="@+id/board_item_row_boardwriter_webview" android:layout_marginRight="5dp"/>
헉..
그래도 먹지 않습니다.
focusable이 false로 되어 있으면 되는데.. 실제로는 먹지 않아서 소스에서도 한줄 추가해 주셔야 합니다.
WebView webView = rowHolder.getBoardWriterWebView();
webView.setVisibility(View.VISIBLE);
webView.setFocusable(false);
webView.loadDataWithBaseURL(null, p.getWriter(), "text/html","UTF-8", null);
오.. 이제 되는군요.
이러면 Webview 영역을 클릭하여도 ListView의 클릭이벤트가 먹네요..

요약 : 안드로이드 특징인지 ListView 안에 클릭 가능한 객체(WebView나 버튼 등)가 존재하면
ListView 를 클릭했을때 이벤트를 호출하지 않습니다. Button이나 WebView가 해당 이벤트를 먼저 가로Event를 먹습니다. 그래서 WebView 의 focusable을 false 로 만들어 주면 가능하며 xml에서 설정해도 적용되지 않으므로 코드상에 한번더 설정해줘야 합니다.

저작자 표시 비영리
신고

댓글을 달아 주세요

  1. 다루 2012.03.28 10:11 신고  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ㅠㅠ

    이문제로 몇일간 고생했는데

    정말 좋은 정보 주셔서 감사합니다 ㅎ

  2. Favicon of http://susemi99.tistory.com BlogIcon 쎄미 2012.10.23 11:28 신고  댓글주소  수정/삭제  댓글쓰기

    고맙습니다 ^^

  3. Favicon of http://rainmaker0303.tistory.com BlogIcon 무대포개발자 2013.01.01 20:28 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 자료네요 퍼갈게요 ^^



 

티스토리 툴바