我的LinearLyout的图像背景,包含webview,不会出现

时间:2013-10-30 17:11:05

标签: java android webview

我有一个包含一个包含webview的LinearLayout的片段,当我在webview中更改html字符串时,有时会出现我的LinearLayout的背景。 我的片段:

`

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbarStyle="outsideOverlay"
        tools:context=".NewsFragment" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:background="@drawable/bg_item_single"
            android:orientation="vertical"
            android:padding="@dimen/list_margin" >

            <TextView
                android:id="@+id/text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="16dp"
                android:textColor="#000"
                android:textSize="20sp" />

            <WebView
                android:id="@+id/webview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/transparent" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>

`

如果我在另一个linearLayout中有一个linearLayout只是在我的scrollView底部有一个空格,那不是问题。

我的代码: `

private void populate() {

        textView.setText(grant.getName());
        // Configure w`enter code here`ebview
        webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        webview.getSettings().setJavaScriptEnabled(false);
        webview.setBackgroundColor(Color.argb(1, 0, 0, 0));
        webview.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return (event.getAction() == MotionEvent.ACTION_MOVE);

            }
        });

        webview.loadDataWithBaseURL("file:///android_asset/", createFullHtmlPage("styles.css", grant.getGrantDescription(), 0), "text/html", "UTF-8", null);

    }

`

我没有看到问题是什么。

3 个答案:

答案 0 :(得分:1)

尝试设置android:layout_height="wrap_content",然后删除此视图的透明背景。

<WebView
    android:id="@+id/webview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/transparent" />

答案 1 :(得分:1)

我解决了我的问题。我使用一个形状作为我的LinearLayout的背景,但是如果webview太大,由于未知原因,形状不起作用而且不会出现。因此,现在我使用彩色背景和2个imageview创建一个底角和顶角。

 <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbarStyle="outsideOverlay"
    tools:context=".NewsFragment" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingBottom="50dp" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_item_top" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/bg_item_default"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="16dp"
                    android:textColor="#000"
                    android:textSize="20sp" />

                <WebView
                    android:id="@+id/webview"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="@dimen/list_margin" />
            </LinearLayout>

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/bg_item_bottom" />
        </LinearLayout>
    </LinearLayout>
</ScrollView>

答案 2 :(得分:0)

我如何解决问题就在这一行

webview.setBackgroundColor(Color.argb(1, 0, 0, 0));

试试这个

webview.setBackgroundResource(color.blue);