capdragon
capdragon

Reputation: 14899

android webview taking up full screen

I'm trying to get a header "54dp" and a the rest of the activity be a WebView.

When I preview my activy in the "Graphical Layout" within eclips it looks good. But when run the application on the phone or emulator the webview takes up the entire screen.

This is what the preview looks like and how I want it:

enter image description here

But this is what I see when I run the app:

enter image description here

This is what the layout xml looks like:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/page_background"
    >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/Layout_Header"
        android:layout_width="fill_parent"
        android:layout_height="54dp"
        android:orientation="horizontal" 
        android:background="@drawable/container_header"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"

        >

        <ImageView
            android:id="@+id/imgHeaderLogo"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="46dp"
            android:contentDescription="@string/img_header_logo_description"
            android:src="@drawable/header_logo" 
            android:layout_gravity="center"
            />


    </LinearLayout>


    <WebView android:id="@+id/web_engine"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
            />
</LinearLayout>

SOLUTION:

in the activity java file I had this:

WebView browser = (WebView) findViewById(R.id.web_engine);
WebSettings webSettings = browser.getSettings();
setContentView(browser);

When I should have had this:

setContentView(R.layout.activity_sign_in_web_view);

Upvotes: 4

Views: 8179

Answers (3)

jul
jul

Reputation: 37464

This is because of some redirect, which open the Browser application, you can use

webview.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {         
        view.loadUrl(url);
        return true;
    }
});

to load the redirection in your WebView. I've just had the same issue and found the solution here.

Upvotes: 5

alex
alex

Reputation: 6409

Set the WebView's height to 0dp and its weight to 1.

<WebView android:id="@+id/web_engine"
         android:layout_width="fill_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
        />

Upvotes: 3

Amalan Dhananjayan
Amalan Dhananjayan

Reputation: 2287

change this manually in xml for web view

android:layout_height="fill_parent"

as

    android:layout_height="200dp"

And if it works change the height parameter as you like in the "android:layout_height"

Upvotes: 1

Related Questions