private class InsideWebChromeClient extends WebChromeClient { private View mCustomView; private CustomViewCallback mCustomViewCallback; @Nullable @Override public View getVideoLoadingProgressView() { FrameLayout frameLayout = new FrameLayout(WebActivity.this); frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); return frameLayout; // return super.getVideoLoadingProgressView(); } @Override public void onShowCustomView(View view, CustomViewCallback callback) { super.onShowCustomView(view, callback); titlepart.setVisibility(View.GONE); setStatusBarVisibility(false); if (mCustomView != null) { callback.onCustomViewHidden(); return; } mCustomView = view; web_container.addView(mCustomView); mCustomViewCallback = callback; wv_web.setVisibility(View.GONE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); hideBottomUIMenu(false); //隐藏虚拟导航 } public void onHideCustomView() { setStatusBarVisibility(true); titlepart.setVisibility(View.VISIBLE); wv_web.setVisibility(View.VISIBLE); if (mCustomView == null) { return; } mCustomView.setVisibility(View.GONE); web_container.removeView(mCustomView); mCustomViewCallback.onCustomViewHidden(); mCustomView = null; setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); hideBottomUIMenu(true); //显示虚拟导航 super.onHideCustomView(); } } @Override public void setRequestedOrientation(int requestedOrientation) { super.setRequestedOrientation(requestedOrientation); } /** * 隐藏虚拟导航 */ protected void hideBottomUIMenu(boolean isVis) { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB && Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { titlepart.setVisibility(View.GONE); View v = this.getWindow().getDecorView(); if (isVis) { v.setSystemUiVisibility(View.VISIBLE); // titlepart.setVisibility(View.VISIBLE); titlepart.setVisibility(View.GONE); } else { v.setSystemUiVisibility(View.GONE); titlepart.setVisibility(View.GONE); getTitleBarView().hideTitleBarView(); } } else if (Build.VERSION.SDK_INT >= 19) { //for new api versions. View decorView = getWindow().getDecorView(); int uiOptions = isVis ? View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE : View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(uiOptions); } }
/** * 设置状态栏是否可见 */ private void setStatusBarVisibility(boolean visible) { int i = visible == true ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN; getWindow().setFlags(i, WindowManager.LayoutParams.FLAG_FULLSCREEN); }
主要是
setStatusBarVisibility(false);
去掉后发现展示超级慢,加上则解决!不知道为什么!