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

횡스크롤이 되는 네이티브안에 종으로 스크롤 되는 웹뷰를 컨트롤할수있나요?

0 추천
웹뷰를 스크롤 밖으로 꺼내면 최고의 방법인데요.

기획상 그렇게 할수없습니다 ㅜㅜ.

횡으로 되는 스크롤안에 웹뷰를 박아야 되는 상황입니다.

그런데 웹뷰는 롤링배너로 좌우로 스크롤리 되야 되는 최악의 상황입니다.

그래서 현재.횡스크롤안에 웹뷰를 가둬서 터치감이 최악입니다.

이때 웹뷰일때만 횡스크롤을 막으면 좌우스크롤리 부드러워지지 않을까 생각하는데요.

웹뷰일때 전체를 감싼 스크롤 터치기능 막는 방법이있을까요?
엔조이AD (2,610 포인트) 님이 2016년 3월 3일 질문

1개의 답변

0 추천
 
채택된 답변

자답입니다.

 

http://blog.daum.net/_blog/BlogTypeView.do?blogid=0Xt5i&articleno=15

이분의 블로그가 제 생명을 연장시키셨습니다^^

감사합니다.

아래는 이분께서 올리신 블로그의 소스입니다.

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

 

WebView wv = (WebView)findViewById( R.id.webview );

wv.setOnTouchListener( new View.OnTouchListener() {

    public boolean onTouch( View v, MotionEvent event ) {

        WebView wv = (WebView)v;

    wv.requestDisallowInterceptTouchEvent( true );

    return false;

    }

});

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

여기서 잠깐! 이것을 그냥 copy&paste 하기 보단. 저 함수가 어떤기능을 하는지 알아야. 나중에 스스로 API를

보고 찾아 꺼내 쓸수있으니까요.

이것은 ViewGroup에 있는 추상메소드입니다.WebView도 ViewGroup에서 상속받습니다.

함수명:requestDisallowInterceptTouchEvent(boolean disallowIntercept)

설명:

Called when a child does not want this parent and its ancestors to intercept touch events with onInterceptTouchEvent(MotionEvent).

대략정리하면 : 자식(webview)이 부모(Scrollview)의 터치를 원하지 않을때 호출한다.

즉 부모의 터치를 비활성화 시키는겁니다.

그리고 위에 Disallow 단어는 찾아보니 "인정하지 않는"이라네요.

함수명을 한글로 부르면 "인정하지 않는 인터럽트 터치이벤트를 요청한다"라는 함수.

이것에 파라미터는 true

 

엔조이AD (2,610 포인트) 님이 2016년 3월 3일 답변
엔조이AD님이 2016년 3월 3일 수정
...