• android 全屏FullScreen的配置


    全屏的设置方式 随着api的升级 设置的api 也改变了

    方式1: 代码的方式

        private fun hideSystemUI() {
        	//这个必须设置 否则不生效
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
            }
            WindowCompat.setDecorFitsSystemWindows(window, false)
            WindowInsetsControllerCompat(window, window.decorView).let { controller ->
                controller.hide(WindowInsetsCompat.Type.systemBars())
                controller.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
            }
            //低于kitkat的方式就没写 需要很低版本的可以谷歌
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    方式2: xml配置方式

    在themes的xml文件写 新建主题

        <style name="ThemeLauncher" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:statusBarColor">@color/co_transport</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowActionBar">false</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:navigationBarColor">@color/co_transport</item>
        </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
        <color name="co_transport">#00000000</color>
    
    • 1

    新建values-v27文件夹 拷贝上一步代码 同时添加 android:windowLayoutInDisplayCutoutMode
    刘海屏的处理。

    官方是这么解释的:

    Android 还允许您控制是否在刘海区域内显示内容。窗口布局属性 layoutInDisplayCutoutMode 控制您的内容如何呈现在刘海区域中。您可以将 layoutInDisplayCutoutMode 设为以下某个值:
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT - 这是默认行为,如上所述。在竖屏模式下,内容会呈现到刘海区域中;但在横屏模式下,内容会显示黑边。
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES - 在竖屏模式和横屏模式下,内容都会呈现到刘海区域中。
    LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER - 内容从不呈现到刘海区域中。
    您可以通过编程或在 Activity 中设置样式来设置刘海模式。以下示例定义了一种样式,您可以使用它将 LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 属性应用到 Activity。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    所以xml配置如下:

        <style name="ThemeLauncher" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:statusBarColor">@color/co_transport</item>
            <item name="android:navigationBarColor">@color/co_transport</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowActionBar">false</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowContentOverlay">@null</item>
            
            <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
        </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    react中在js文件里定义的变量,如何在less文件里去使用该变量
    http客户端Feign(定义和使用Feign客户端)
    抽取泛微和建云的销售合同定时任务(要求记录翻译不成功的字段)
    OSPF协议
    echarts中横向柱状图的数字在条纹上方
    分布式训练 最小化部署docker swarm + docker-compose落地方案
    leetcode 第 364 场周赛
    6.824 lab2
    基于ssm流浪动物救助管理系统
    【Leetcode】150.逆波兰表达式求值
  • 原文地址:https://blog.csdn.net/u010436867/article/details/125514619