XWalkViewを使用してWeb ページを読み込み、 IjkVideoViewを使用してアプリでライブ ビデオを再生します。XwalkView の前で IjkVideoView にビデオを再生させたいので、これら 2 つのビューを相対レイアウトに配置し、IijVideoView を XWalkView の後ろに配置します。
android studio の Component Tree of Design ウィンドウでは、下の画像のようにレイアウトは問題ないように見えます。
デバイスでアプリを実行すると、下の画像のようにレイアウトが乱れます。IjkVideoView の背景が XWalkView の前にあることがわかりますが、ビデオの上部が XWalkView によって覆われているため、IjkVideoView で再生されているビデオは XWalkView の後ろにあります。
レイアウトxml、
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="UselessParent">
<!-- This could be your fragment container, or something -->
<org.xwalk.core.XWalkView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/xWalkView"
android:layout_width="fill_parent"
android:layout_height="160dp"
android:background="@color/blue"
android:isScrollContainer="true">
</org.xwalk.core.XWalkView>
<com.xxxxxx.app.widget.media.IjkVideoView
android:id="@+id/video_view"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="72dp"
android:background="@color/colorAccent" />
<com.roughike.bottombar.BottomBar
android:id="@+id/bottomBar"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
app:bb_tabXmlResource="@xml/web_tabs" />
</RelativeLayout>
</LinearLayout>
アクティビティ Java コード、
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("INFO", "entered");
setContentView(R.layout.activity_web);
mXWalkView = (XWalkView) findViewById(R.id.xWalkView);
XWalkSettings webSettings = mXWalkView.getSettings();
webSettings.setJavaScriptEnabled(true);
mXWalkView.addJavascriptInterface(new JsInterface(), "NativeInterface");
videoView = (IjkVideoView) findViewById(R.id.video_view);
videoView.setAspectRatio(IRenderView.AR_ASPECT_FILL_PARENT);
videoView.setVideoURI(Uri.parse("http://live.xxxxxx.com/live/40xx27.flv"));
videoView.start();
final Bundle extras = getIntent().getExtras();
mXWalkView.load("http://xxxxxxxxxxxxxx", null);
}