news 2026/5/10 5:22:52

Compose 适配 - 全屏显示 EdgeToEdge

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Compose 适配 - 全屏显示 EdgeToEdge

官方页面
参考文章

一、概念

edge-to-edge 就是将APP的内容延伸到系统栏区域(状态栏、导航栏、刘海),提供更沉浸的体验。

二、实现

2.1 设置全屏显示

Android 15(API 35)开始会强制开启,更低版本需要在 Activity 的 onCreate() 中调用 enableEdgeToEdge() 方法(最低支持到 Android 6.0),反正无脑必调用就行。

Activity { onCreate() { enableEdgeToEdge() } }

2.2 处理系统重叠冲突

当内容绘制到系统栏区域时,就需要解决遮挡冲突了(可视问题、点击遮挡、手势冲突)。通过 Modifier 来设置(注意调用的先后问题,如背景色),表中左边包含了右边。

.safeContentPadding()

一个方法全部搞定。

.safeDrawingPadding()

避免内容延伸至系统栏区域造成点击或可视问题。

.statusBarsPadding()

状态栏边距。

.navigationBarsPadding()

导航栏边距。

.safeGesturesPadding()

避免系统全面屏手势与应用手势冲突。

@Composable fun MainScreen() { Box( modifier = Modifier .fillMaxSize() .background(AppColors.green) .safeContentPadding() ) {...} }

三、一些技巧

3.1 状态栏半透明保护

谷歌官方提供的方式,解决可读性。

class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { MyTheme { MyContent() StatusBarProtection() } } } } @Composable private fun StatusBarProtection( color: Color = MaterialTheme.colorScheme.surfaceContainer, heightProvider: () -> Float = calculateGradientHeight(), ) { Canvas(Modifier.fillMaxSize()) { val calculatedHeight = heightProvider() val gradient = Brush.verticalGradient( colors = listOf( color.copy(alpha = 1f), color.copy(alpha = .8f), Color.Transparent ), startY = 0f, endY = calculatedHeight ) drawRect( brush = gradient, size = Size(size.width, calculatedHeight), ) } } @Composable fun calculateGradientHeight(): () -> Float { val statusBars = WindowInsets.statusBars val density = LocalDensity.current return { statusBars.getTop(density).times(1.2f) } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 22:56:27

大模型面试必备04——BERT 论文逐段精读

一、资料整理 bert论文地址:BERT: Pre-training of Deep Bidirectional Transformers (arXiv) 参考视频:【BERT 论文逐段精读【论文精读】】 https://www.bilibili.com/video/BV1PL411M7eQ/?share_sourcecopy_web&vd_source9fe9e3d550891e4a38f66…

作者头像 李华
网站建设 2026/5/5 21:10:09

开题报告不再卡壳!虎贲等考 AI:3 步解锁学术立项 “通关秘籍”

“选题反复被导师打回?”“研究方案逻辑漏洞百出?”“文献综述写得像流水账?” 对于即将开启毕业论文或科研项目的学生而言,开题报告是第一道 “拦路虎”。它既要体现研究价值,又要具备可行性,还要符合严谨…

作者头像 李华
网站建设 2026/5/6 20:06:12

Amazon重组AI部门:27年老将统领AGI组织

在今天的"亚马逊克里姆林宫学"一集中,AWS发布了一份新闻稿,显示其最具传奇色彩的领导人之一发生了重大变动。在AWS re:Invent大会上宣布Nova 2模型两周后,AWS实用计算高级副总裁Peter DeSantis将把他的两个团队从AWS中调出&#xf…

作者头像 李华
网站建设 2026/5/10 4:58:50

思科自研AI模型正式应用于产品,首先赋能身份安全服务

思科宣布其自主研发的AI模型已准备就绪,并开始为其产品提供支持,首个应用是Duo身份智能服务。思科使用的模型名为"Foundation-Sec-1.1-8B-Instruct"。根据Hugging Face模型市场的描述,这是一个开放权重、拥有80亿参数的指令调优自回…

作者头像 李华
网站建设 2026/5/6 20:06:08

用GCNN增强EEG神经疾病诊断:源码数据集背后的探索

DL00507-使用领域引导图卷积神经网络GCNN增强基于脑电图EEG的神经疾病诊断源码数据集 一种基于图卷积神经网络(GCNN)的新方法,用于改进使用头皮脑电图(EEG)进行神经系统疾病诊断。 尽管脑电图是神经系统疾病诊断中主要…

作者头像 李华