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>
Alternative approach would be to set the WebView inside of a ScrollView
Then you can add left/right margin to the WebView and it will get the padding effect. The scrolling however will be handled by the ScrollView.
This will cause the scrollbar to be placed outside of the WebView which is the behavior I wanted for my app.