Search code examples
androidwebviewscrollscrollview

Android WebView inside ScrollView scrolls only scrollview


In my app I have a ScrollView that contains some linearviews, some textviews and One Webview, then other linear layouts etc. The problem is that the WebView does not scroll. The Scroll listens only on ScrollView. Any suggestions??


<ScrollView >
    <TextView />
    <WebView />              <-- this does not scroll
    <TextView />
</ScrollView >

Solution

  • Here is the solution. Found online. I have subclassed WebView and i'm using the requestDisallowInterceptTouchEvent(true); method to allow my webview to handle the scroll event.

    TouchyWebView.java

    package com.mypackage.common.custom.android.widgets
    
    public class TouchyWebView extends WebView {
    
        public TouchyWebView(Context context) {
            super(context);
        }
    
        public TouchyWebView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public TouchyWebView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event){
            requestDisallowInterceptTouchEvent(true);
            return super.onTouchEvent(event);
        }          
    }
    

    And in layout.xml

    <com.mypackage.common.custom.android.widgets.TouchyWebView 
                    android:id="@+id/description_web"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                     />