android - 显示 MediaController 时隐藏 NavigationBar
问题描述
我正在MediaController
使用VideoView
. 我正在使用以下解决方案将应用程序保持在沉浸式模式并且它可以工作。
activity.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_FULLSCREEN |
View.SYSTEM_UI_FLAG_IMMERSIVE);
MediaController
当屏幕上显示时它不起作用。我尝试设置一些监听器,例如在显示媒体控制器时触发隐藏导航栏解决方案。但它不起作用。是否有任何解决方法。
解决方案
试试这个!
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
hideSystemUI();
}
}
private void hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
希望能帮助到你!
推荐阅读
- amazon-ses - 如何将 MailAttachment 转换为 MimeKit 附件
- linux - Bash 脚本 - 无法解决代码“帮助”错误
- server - NVIDIA-SMI 失败,因为它无法与 NVIDIA 驱动程序通信。确保已安装并运行最新的 NVIDIA 驱动程序
- azure - 获取从 Visual Studio 作为 zip 发布的函数应用的 API 定义
- javascript - 未捕获的 RangeError:超过最大调用堆栈大小..禁用并检查不工作
- python - 如何在 django.test.TestCase 类设置函数中使用 pytest `request.config`
- reactjs - 反应最终形式。如何从组件状态设置字段值
- java - Java 后缀运算符优先级
- python - python,通过连接列表动态变量生成列表
- python - 返回我的错误是“用户'root'@'localhost'的访问被拒绝(使用密码:YES)”。即使我使用 `mike`