要实现安卓Youtube WebView全屏时按返回键退出应用的功能,可以按照以下步骤进行:
private boolean isWebViewFullscreen = false;
@Override
public void onBackPressed() {
if (isWebViewFullscreen) {
// 如果WebView处于全屏状态,则退出全屏
WebChromeClient.CustomViewCallback customViewCallback = mWebView.getCustomViewCallback();
if (customViewCallback != null) {
customViewCallback.onCustomViewHidden();
}
mWebView.setFullscreen(false);
isWebViewFullscreen = false;
} else {
// 如果WebView不处于全屏状态,则正常处理返回键事件
super.onBackPressed();
}
}
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
// 进入全屏状态时,设置isWebViewFullscreen为true
isWebViewFullscreen = true;
super.onShowCustomView(view, callback);
}
@Override
public void onHideCustomView() {
// 退出全屏状态时,设置isWebViewFullscreen为false
isWebViewFullscreen = false;
super.onHideCustomView();
}
public void setFullscreen(boolean fullscreen) {
WindowManager.LayoutParams attrs = getWindow().getAttributes();
if (fullscreen) {
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
} else {
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
}
这样,当WebView处于全屏状态时,按返回键会退出全屏并返回上一个页面;当WebView不处于全屏状态时,按返回键会正常退出应用。
上一篇:安卓永久服务