1

我有一个包含一个包含 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);

    }

`

我看不出是问题所在。

4

3 回答 3

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" />
于 2013-10-30T17:14:30.783 回答
1

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

 <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>
于 2013-10-31T15:35:04.837 回答
0

我如何解题在这一行

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

试试这个

webview.setBackgroundResource(color.blue);
于 2013-10-30T17:17:54.457 回答