方向更改时的Android Webview onHideCustomView

时间:2018-07-26 08:30:18

标签: android webview react-native-android android-8.1-oreo

我遇到一个奇怪的问题。

我有一个具有网络视图的应用程序,可以显示一些文章。这些文章包含文本,图像和视频,并且此Webview支持全屏播放视频。

这是onShowCustomView和onHideCustomView的代码。在Android 8.1之前,它都可以很好地工作。

@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
    if (mVideoView != null) {
        callback.onCustomViewHidden();
        return;
    }
    mVideoView = view;
    mCustomViewCallback = callback;
    view.setBackgroundColor(Color.BLACK);
    getRootView().addView(view, FULLSCREEN_LAYOUT_PARAMS);
    mWebView.setVisibility(View.GONE);
    // enable orientation change 
    setOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}

@Override
public void onHideCustomView() {
    if (mVideoView == null) {
        return;
    }
    mVideoView.setVisibility(View.GONE);
    getRootView().removeView(mVideoView);
    mVideoView = null;
    mCustomViewCallback.onCustomViewHidden();
    mWebView.setVisibility(View.VISIBLE);
    // force portrait
    setOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

在AndroidManifest中,活动如下:

 <activity
        android:name=".component.ArticleActivity"
        android:configChanges="orientation|screenSize"
        android:hardwareAccelerated="true"
        android:screenOrientation="portrait" />

在Android 8.1中,当全屏播放视频时,将方向更改为横向或纵向时,将调用onHideCustomView并退出全屏模式。

我该如何解决?谢谢

0 个答案:

没有答案