android - 在某些设备上不工作时隐藏状态栏
问题描述
隐藏状态栏在Pixel-2-api24 中不起作用。但是它在Pixel-3a-XL-api29 中运行良好。这是代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN)
}
}
Pixel-2-api24截图
Pixel-3a-XL-api29截图
解决方案
您是否尝试过全屏活动的默认可用 UI 标志?
// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
window.decorView.systemUiVisibility =
View.SYSTEM_UI_FLAG_LOW_PROFILE or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
而这个的默认样式:
<style name="FullscreenTheme" parent="AppTheme">
<item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowBackground">@null</item>
<item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
<item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>
<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
<item name="android:background">@color/black_overlay</item>
</style>
您可以通过在您的应用程序或示例项目中创建新的全屏活动来自行检查。它还为您提供了一种延迟隐藏系统栏和切换它们的方法。它的评论也很好。
推荐阅读
- forms - 显示块隐藏/显示 onClick 仅适用于表单之外
- hosting - 新来者的托管计划 answering.how 免费托管网站?
- c# - 通过动态创建的按钮动态创建的按钮不会触发 eventHandler onClick?C#,ASP.NET
- angular - ngx-translate:与接口、*ngFor 和 switch 一起使用
- go - datadog 中的“用户”是什么
- python - 使用 Pyomo 的人员规划优化问题
- c# - 数组 - 找到最常重复的数字
- python - 无法在同一包中导入 Python 模块
- c# - 如何在 main 中调用非静态方法?
- string - scala中是否有fuzzywuzzy smilar库?