-1

WebViews을 포함 할 수있는 ScrollView이 있습니다. 스크롤 할 수있는 뷰를 다른 뷰 내부에 유지하는 것이 올바른 방법이 아니라는 것을 알지만 이것이 내 앱의 기본 요구 사항입니다. 내 WebViews에서 수직 스크롤을 사용 중지했습니다 (setVerticalScrollBarEnabled() 사용). 또한 focusability에서 ScrollView의 자식을 사용하여 descendantFocusability=blocksDescendants.을 사용하고 있습니다. ScrollView 만 스크롤하려고합니다.Android WebView에서 마우스 휠 스크롤을 사용 중지하는 방법은 무엇입니까?

터치하면 스크롤을 시도 할 때 Android 기기에 문제가 없습니다. 그러나 문제는 Chromebook 안에 APK을 실행하고 WebView 위로 마우스 휠 스크롤을 시도하면 ScrollView이 스크롤되지 않습니다. Chromebook 트랙 패드가 제대로 작동하지만 WebView 이상으로 스크롤하면 스크롤됩니다. 문제는 마우스 휠 스크롤에만 있습니다. WebView이 스크롤 이벤트를 소비하고 최대 거품이 발생하지 않는 것 같습니다 (ScrollView).

누군가가이 문제에 대한 해결책을 제안 할 수 있습니까?

+0

NestedScrollView를 사용하면 문제가 해결됩니까? – Juan

+0

NestedScrollView와 동일한 동작입니다. – Vivek

답변

0

이 문제를 해결했습니다. WebView를 하위 클래스로 만들고 onGenericMotionEvent 메서드를 재정의하기 만하면됩니다.

public class PreviewWebView extends WebView { 

    public PreviewWebView(Context context) { 
     super(context); 
    } 

    public PreviewWebView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public PreviewWebView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public boolean onGenericMotionEvent(MotionEvent event) { 
     return false; 
    } 
} 
관련 문제