How to add padding around a WebView

android, android-layout, android-webview, padding

Solution

The WebView has a bug in the padding implementation. Setting a padding on a webview won't pad the actual web page, but WILL pad the scrollbars. It's only partially working as expected. Your solution is the best way to achieve 'padding' for a WebView.

Problem

My layout file defines a WebView, underneath which there are some fixed height buttons. ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fadingEdge="none"> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1.0"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="60dp" android:padding="8dp"> <Button android:text="Decline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0"> </Button> <Button android:text="Accept" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0"> </Button> </LinearLayout> </LinearLayout> ``` I'm trying to add padding around the WebView, as at the moment the text runs right up to the edge of the UI. I tried adding `android:padding="8dp"` to the WebView, but no padding was added. I also tried paddingLeft and paddingRight too, but they didn't work either. The WebView API docs confirm it inherits from View, which supports the android:padding attribute, so I'm surprised this didn't work. Does anybody know if this is a known issue, or some interaction of my layout XML that I'm not understanding? FYI, my workaround was to put an extra LinearLayout around the WebView, and add the padding to that instead: ``` <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1.0" android:padding="8dp"> <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout> ```

Original source