0

我当前的 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)
    }
}

我需要重构什么才能让工具栏在横向模式下隐藏?

我需要重构什么才能让三星平板电脑按预期工作?

为什么相同的代码不适用于任何/多个设备制造商?

4

0 回答 0