当WebView在4.0.4中很大时,它们的行为非常奇怪

时间:2013-05-28 08:41:13

标签: android android-webview

当我在android 4.1上渲染大型Webview时,webview正确加载,但也弹出布局。这是一个例子: enter image description here

正如你在左上角看到的那样,有一个白色的空间,不应该在那里。如果我用手指点击它,它就会消失......

我试图使& requestLayout这个contentView的顶级容器,但它仍然在发生。

正如我在标题中所说,这只发生在4.0.4设备中(我知道4.1可以。)

你们知道我还能尝试什么吗?

感谢。

修改 那个空白的矩形,在某种程度上超过了菜单栏。也许无效的菜单会解决它吗? 我尝试过:this.invalidateOptionsMenu();但问题仍然存在。

EDIT2: 这是布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/containerTotaApp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:orientation="horizontal" >
<View
    android:id="@+id/rightshadow"
    android:layout_width="10dp"
    android:layout_height="10dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/contentContainer"
    android:background="@drawable/shadow_right" />

<RelativeLayout
    android:id="@+id/bgImageSliderContainer"
    android:layout_width="700dp"
    android:layout_height="fill_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:background="#000000" >

</RelativeLayout>

<ScrollView
    android:id="@+id/scrollView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true" >

    <LinearLayout
        android:id="@+id/containerRightOptional"
        android:layout_width="680dp"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:orientation="vertical"
        android:visibility="gone" >
    </LinearLayout>
</ScrollView>

<RelativeLayout
    android:id="@+id/navigationContainer"
    android:layout_width="320dp"
    android:layout_height="match_parent"
    android:background="#393939" >

    <LinearLayout
        android:id="@+id/containerTopMenu"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:background="@drawable/companybg"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textEntradaMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:text="COMPANY"
            android:textSize="32sp" />

    </LinearLayout>

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_below="@+id/containerTopMenu">

        <LinearLayout
            android:id="@+id/containerEntradesMenu"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

<RelativeLayout
    android:id="@+id/contentContainer"
    android:layout_width="600dp"
    android:layout_height="fill_parent"
    android:layout_toRightOf="@+id/navigationContainer" 
    android:background="#ffffff">

    <LinearLayout
        android:id="@+id/titleContentContainer"
        android:layout_width="fill_parent"
        android:layout_height="70dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical" 
        android:background="#EBEBEB">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:onClick="toggleMenu"
            android:src="@drawable/vista2_cerca" />

        <TextView
            android:id="@+id/description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="TextView"
            android:textColor="#288BA2"
            android:textSize="30sp" />

    </LinearLayout>

    <View
        android:id="@+id/separadortop"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/titleContentContainer"
        android:background="#cecece"
        android:visibility="gone" />

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/separadortop"
        android:visibility="gone" />

    <View
        android:id="@+id/separadortop2"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/spinner1"
        android:background="#cecece" />

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/separadortop2"
        android:background="#ffffff" >

        <LinearLayout
            android:id="@+id/variableContent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

        </LinearLayout>
    </ScrollView>

</RelativeLayout>

将网络视图动态添加到VariableContent

1 个答案:

答案 0 :(得分:1)

当然,我无法准确指出问题的根源,您可以尝试禁用硬件加速:

web.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

您还可以尝试打开和关闭其他“有趣”选项:

webv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

(我知道缓存不应该与你的问题有关,但是关闭缓存修复了我的webview中最奇怪的故障,所以你可能想尝试自己)和

web.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);

开发团队没有冒犯,但Android上的WebViews非常混乱,这里有几个链接可以支持这个声明:

也可能对您有用。

如果您找到了解决方案,请告诉我们

希望这有帮助