Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add padding around a WebView

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> 
like image 972
Dan J Avatar asked Feb 07 '12 01:02

Dan J


People also ask

What is padding in XML?

This Attribute is used to specify extra space on Bottom Side inside the view as shown in the below output.

How do I display HTML content in Webview?

Android App Development for BeginnersStep 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml. In the above code, we have taken web view to show html content.

What can I use instead of Webview?

Alternatives to WebView If you want to send users to a mobile site, build a progressive web app (PWA). If you want to display third-party web content, send an intent to installed web browsers. If you want to avoid leaving your app to open the browser, or if you want to customize the browser's UI, use Custom Tabs.

Is Android Webview deprecated?

This interface was deprecated in API level 12. This interface is now obsolete.


1 Answers

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.

like image 111
zrgiu Avatar answered Sep 21 '22 19:09

zrgiu