• 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
  • 相关阅读:
    Samtec连接器技术前沿 | 全新对准功能确保测试和测量应用中的精确对准
    【无标题】
    芯科蓝牙BG27开发笔记4-SSV5 IDE的使用
    虎扑论坛数据分析
    Vue中的计算属性和侦听器有什么区别?
    StreamSets解析MySQL Binlog写入HBase
    MySQL数据库面试题总结(2022最新版)
    基于python的智慧城市社区服务平台及养老服务子系统的设计与实现
    objectARX 获取指定图层上所有实体ID
    Sentinel配置的blockHandler方法不生效
  • 原文地址:https://blog.csdn.net/u010436867/article/details/125514619