android - 我正在尝试在显示图像和动画等的系统导航栏上扩展我的自定义视图
问题描述
我正在尝试在系统导航栏上显示图像和动画等的自定义视图...所以问题是我无法将图像设置在导航栏后面,因此它隐藏了小米(android 9,API 28)设备中的系统导航栏(包括软键),我也在honor(android 8.0.0,API 26)设备中进行了测试,它显示了我的自定义视图(包含图像)和系统导航栏完美。
我已经设置了标志和所需的布局参数。下面的一段代码显示了一些重要的代码,因为它可以在前面提到的某些设备中工作。我已经尝试了所有可能的方法,无论我找到但仍然没有找到解决方案。
WindowManager.LayoutParams lpNavView = new WindowManager.LayoutParams();
lpNavView.width = WindowManager.LayoutParams.MATCH_PARENT;
lpNavView.height = navBarSize;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
lpNavView.type =
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
lpNavView.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
lpNavView.format = PixelFormat.TRANSLUCENT;
} else {
lpNavView.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
lpNavView.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS|
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
lpNavView.format = PixelFormat.TRANSLUCENT;
}
mWindowManager.addView(mNavBarView, lpNavView);
是否有任何标志可以在系统导航栏后面设置我的视图?或解决此问题的其他方法。
图片包含小米设备中的自定义导航栏
解决方案
推荐阅读
- amazon-web-services - 如何使用 Godaddy 的默认名称服务器连接 GoDaddy 域
- axios - 将文件和数据从多部分解析到使用 axios 调用的羽毛服务
- r - 如何评估 rlang::syms() 的输出?
- java - Java 虚拟机管理器
- python - 以编程方式组合 wav 文件 - Python
- json - Python 请求:- simplejson.errors.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
- css - 使用 Bootstrap 和 MDBootstrap 时如何选择使用哪个类?
- vba - Web 抓取调试打印 LocationURL 返回意外值
- typescript - 如何在 Vue 3 中添加对全局组件的类型支持?
- javascript - 如何在 VS Code 中启用 mjs 文件的类型检查