我当前的 Android 应用程序支持阅读 PDF 文件。
我的应用支持 Android 版本 26 - 31。
我有一个用例,我的用户可以在全屏和显示状态栏和工具栏之间切换。
此功能在我的 Pixel 测试设备上的 Portrait 中按预期工作。
但是在横向像素中,只有状态栏“隐藏”工具栏始终可见。
然而,在我的三星平板电脑测试设备上,无论是纵向还是横向,只有状态栏隐藏。工具栏始终可见。
我用来显示/隐藏的代码如下:-
private fun hideSystemUI() {
isFullscreen = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.insetsController?.let {
it.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
window.navigationBarColor = getColor(android.R.color.transparent)
it.hide(WindowInsets.Type.systemBars())
}
} else {
@Suppress("DEPRECATION")
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_IMMERSIVE
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
@Suppress("DEPRECATION")
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
}
}
private fun showSystemUI() {
isFullscreen = false
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false)
window.insetsController?.show(WindowInsets.Type.systemBars())
} else {
@Suppress("DEPRECATION")
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
}
}
我需要重构什么才能让工具栏在横向模式下隐藏?
我需要重构什么才能让三星平板电脑按预期工作?
为什么相同的代码不适用于任何/多个设备制造商?