我正在使用全屏Dialog
以全屏模式显示ExoPlayer
视频。我已经在托管Dialog
的Activity
的onCreate
方法中使用以下代码来隐藏Navigation Bar
。
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Hide the navigation bar in the beginning
final View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
//Set a system bar visibility change listener
decorView.setOnSystemUiVisibilityChangeListener(
new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
}
);
}
}
问题是对话框一打开,导航栏就出现了,我无法隐藏它。
private void openFullScreenDialog() {
((ViewGroup) mExoPlayerView.getParent()).removeView(mExoPlayerView);
mFullScreenDialog.addContentView(mExoPlayerView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
mFullScreenIcon.setImageDrawable(ContextCompat.getDrawable(PlaybackActivity.this, R.drawable.ic_fullscreen_exit));
mExoPlayerFullScreen = true;
mFullScreenDialog.show();
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
无论我为对话框或setSystemUiVisibility()
使用什么选项,导航栏都会出现。
4条答案
按热度按时间hmae6n7t1#
请执行以下操作:
也重写此方法:
afdcj2ne2#
隐藏系统栏
onWindowFocus
并在dismiss
对话框时显示}
cedebl8k3#
试试这个
最佳解决方案是使用DialogFragment
显示对话框
全屏
风格
jckbn6z74#
试试这个: