我正在使用 this lib 进行水平滑动。检查以下代码
滑动功能工作正常,但当我直接滑动时,不会在网页视图上显示内容。 显示下面的一些图片以了解更多详细信息:-
在上面的图片之后,当我滑动时,效果很好,但是当我们想直接进入下一张幻灯片时,就会面临如下所示的内容消失问题:-
然后显示如下
代码
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>
滑动工作正常,但直接将一张幻灯片转到另一张幻灯片时遇到问题。
如果您过去也遇到过类似的问题,请帮助我。
这就是上面的闪烁问题,所以我可以阅读很多链接,例如:-
https://code.google.com/p/android/issues/detail?id=20446
如果启用硬件加速,WebView 将“闪烁”并带有白色背景(Android 3.0+)
和
代码
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
上面的代码对我有用。
我尝试过这个,它有助于消失 WebView:
webView.setLayerType(View.LAYER_TYPE_HARDWARE, Paint().apply {
xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)
})