我正在开发一个视频播放器应用程序,我遇到了一个问题.我有一个自定义视频控制器,其中包含一个全屏按钮,我想在用户进入全屏模式时隐藏系统UI(导航和状态栏).我试着做一些像这样,但它不能正常工作.我的应用程序如下面的截图:
当我单击全屏按钮时,我将方向更改为横向,我隐藏了系统UI,但我的播放器没有全屏显示.它看起来像下面的屏幕:
此外,当我点击屏幕时,我想显示我的视频控制器,但系统UI显示以下内容,而不是:
那么,我该如何实现这种行为呢?以下是我的全屏和隐藏/显示系统UI的方法:
@Override
public void toggleFullscreen() {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mVideoContainer.getLayoutParams();
if (!mFullscreen) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
hideSystemUI();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
params.width = metrics.widthPixels;
params.height = metrics.heightPixels;
params.setMargins(0, 0, 0, 0);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
showSystemUI();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
params.width = metrics.widthPixels;
params.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 300, metrics);
params.setMargins(0, 0, 0, 0);
}
mVideoContainer.setLayoutParams(params);
mFullscreen = !mFullscreen;
}
private void hideSystemUI() {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
if …Run Code Online (Sandbox Code Playgroud)