android 中网页视图内容闪烁?

问题描述 投票:0回答:2

我正在使用 this lib 进行水平滑动。检查以下代码

滑动功能工作正常,但当我直接滑动时,不会在网页视图上显示内容。 显示下面的一些图片以了解更多详细信息:-

enter image description here

在上面的图片之后,当我滑动时,效果很好,但是当我们想直接进入下一张幻灯片时,就会面临如下所示的内容消失问题:-

enter image description here

然后显示如下

enter image description here

代码

PageControl mPageControl = (PageControl) findViewById(R.id.page_control);
    mSwipeView = (SwipeView) findViewById(R.id.swipe_view);

    mSwipeView.setPageControl(mPageControl);

    for (int i = 0; i < 10; i++) {
        mSwipeView.addView(new FrameLayout(this));
    }

    for (int i = 0; i < 10; i++) {

        ((FrameLayout) mSwipeView.getChildContainer().getChildAt(i))
                .addView(setupView());
        count++;
    }

设置视图()

public View setupView() {

    LayoutInflater layoutInflator = getLayoutInflater();
    LinearLayout childlayout = (LinearLayout) layoutInflator.inflate(
            R.layout.webview, Switcher, false);

            // adding all the things in which define in below XML

    return childlayout;

}

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scroll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/main_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

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

                <LinearLayout
                    android:id="@+id/layClick"
                    android:layout_width="43dp"
                    android:layout_height="64dp"
                    android:background="@drawable/queslay"
                    android:gravity="left"
                    android:orientation="vertical" >

                    // some stuff

            </LinearLayout>

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

                <WebView
                    android:id="@+id/ques"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="#ffffff" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/option_main"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical" >
        </LinearLayout>
    </LinearLayout>
</ScrollView>

<LinearLayout
    android:id="@+id/solution_confirm"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="@null"
    android:gravity="center"
    android:orientation="horizontal" >

   // some stuff
</LinearLayout>

还可以使用以下 xml 在 "@+id/option_main" 上扩充 xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<!-- <FL><LL><FL></FL><BTN/></LL></FL> -->

<RelativeLayout
    android:id="@+id/option_relative_a"
    android:layout_width="fill_parent"
    android:layout_margin="10dp"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/option_a"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

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

            <Button
                android:id="@+id/btn_a"
                android:layout_width="47dp"
                android:layout_height="19dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/opgrey"
                android:gravity="center"
                android:text="@string/a"
                android:textColor="#ffffff"
                android:textSize="12sp" />

                <ImageView
                android:id="@+id/ch_a"
                android:layout_width="21dp"
                android:layout_height="18dp"
                android:layout_marginTop="5dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/cross"
                android:gravity="center"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:orientation="vertical" >

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

    <ImageView
        android:id="@+id/option_image_a"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
          android:layout_alignBottom="@+id/option_a"
        android:background="@null" />

</RelativeLayout>


 <RelativeLayout
     android:id="@+id/option_relative_b"
     android:layout_width="fill_parent"
     android:layout_margin="10dp"
     android:layout_height="wrap_content"
     android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/option_b"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

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

            <Button
                android:id="@+id/btn_b"
                android:layout_width="47dp"
                android:layout_height="19dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/opgrey"
                android:gravity="center"
                android:text="@string/b"
                android:textColor="#ffffff"
                android:textSize="12sp" />


            <ImageView
                android:id="@+id/ch_b"
                android:layout_width="21dp"
                android:layout_height="18dp"
                android:layout_marginTop="5dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/cross"
                android:gravity="center"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:orientation="vertical" >

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

    <ImageView
        android:id="@+id/option_image_b"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
          android:layout_alignBottom="@+id/option_b"
        android:background="@null" />

</RelativeLayout>

 <RelativeLayout
     android:id="@+id/option_relative_c"
     android:layout_width="fill_parent"
     android:layout_margin="10dp"
     android:layout_height="wrap_content"
     android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/option_c"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

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

            <Button
                android:id="@+id/btn_c"
                android:layout_width="47dp"
                android:layout_height="19dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/opgrey"
                android:gravity="center"
                android:text="@string/c"
                android:textColor="#ffffff"
                android:textSize="12sp" />


            <ImageView
                android:id="@+id/ch_c"
                android:layout_width="21dp"
                android:layout_marginTop="5dp"
                android:layout_height="18dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/cross"
                android:gravity="center"
                android:textSize="12sp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:orientation="vertical" >

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

    <ImageView
        android:id="@+id/option_image_c"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
          android:layout_alignBottom="@+id/option_c"
        android:background="@null" />

</RelativeLayout>

 <RelativeLayout
     android:id="@+id/option_relative_d"
     android:layout_width="fill_parent"
     android:layout_margin="10dp"
     android:layout_height="wrap_content"
     android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/option_d"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

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

            <Button
                android:id="@+id/btn_d"
                android:layout_width="47dp"
                android:layout_height="19dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/opgrey"
                android:gravity="center"
                android:text="@string/d"
                android:textColor="#ffffff"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/ch_d"
                android:layout_width="21dp"
                android:layout_height="18dp"
                android:layout_marginTop="5dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/greentick"
                android:gravity="center"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:orientation="vertical" >

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

    <ImageView
        android:id="@+id/option_image_d"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
          android:layout_alignBottom="@+id/option_d"
        android:background="@null" />

</RelativeLayout>

 <RelativeLayout
     android:id="@+id/option_relative_e"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_margin="10dp"
     android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/option_e"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

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

            <Button
                android:id="@+id/btn_e"
                android:layout_width="47dp"
                android:layout_height="19dp"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/opgrey"
                android:gravity="center"
                android:text="@string/e"
                android:textColor="#ffffff"
                android:textSize="12sp" />

            <ImageView
                android:id="@+id/ch_e"
                android:layout_width="21dp"
                android:layout_height="18dp"
                android:layout_marginTop="5dp"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/greentick"
                android:gravity="center"
                android:textSize="12sp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="2dp"
            android:orientation="vertical" >

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

    <ImageView
        android:id="@+id/option_image_e"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
          android:layout_alignBottom="@+id/option_e"
        android:background="@null" />

</RelativeLayout>

滑动工作正常,但直接将一张幻灯片转到另一张幻灯片时遇到问题。

如果您过去也遇到过类似的问题,请帮助我。

android android-webview
2个回答
25
投票

这就是上面的闪烁问题,所以我可以阅读很多链接,例如:-

https://code.google.com/p/android/issues/detail?id=20446

硬件加速webview滑入动画在ICS上闪烁

如果启用硬件加速,WebView 将“闪烁”并带有白色背景(Android 3.0+)

代码

webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

上面的代码对我有用。


0
投票

我尝试过这个,它有助于消失 WebView:

webView.setLayerType(View.LAYER_TYPE_HARDWARE, Paint().apply {
    xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)
})
© www.soinside.com 2019 - 2024. All rights reserved.