断点适配逻辑更新时间:2026-02-06 20:10:00
一、断点逻辑是什么
断点是基于窗口宽度特征设定的特定阈值,在不同阈值区间内应用不同的布局样式,以实现界面自适应。
二、开发者为什么需要断点逻辑
随着终端设备形态多样化,适配需兼顾屏幕尺寸、方向、分辨率等因素。通过断点,开发者可将不同屏幕归类为有限类型,并为每类设计布局。应用只需一套适配逻辑即可在不同尺寸屏幕上获得良好体验;迭代中遇到新设备时,仅需调整断点规则即可快速响应。
三、基础断点设计思路
窗口宽度规则:应用多为纵向布局,内容上下滚动为主,因此宽度变化对布局影响更大。以应用窗口宽度为参照(如全屏、分屏、小窗模式)更具通用性。
适配便捷原则:为兼容多厂商及海外发行,建议采用与 Material Design 一致的断点值,将屏幕分为小、中、大三种类型。
| 断点类型 | 小屏 (Compact) | 中屏 (Medium) | 大屏 (Expanded) |
| 宽度断点 | Width < 600dp | 600dp ≤ Width < 840dp | Width ≥ 840dp |
代码示例:
/**
* 根据窗口宽度计算当前窗口的大小类别
* @return 自定义enum
* Compact(紧凑):典型手机竖屏(宽度 < 600dp)
* Medium(中等):平板竖屏或折叠屏半展开(600dp ≤ 宽度 < 840dp)
* Expanded(展开):平板横屏或折叠屏全展开(宽度 ≥ 840dp)
*/
fun computeBreakpointWithWidth(context: Context): enum {
val windowMetrics = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(context)
val bounds = windowMetrics.bounds
val widthDp = bounds.width() / context.resources.displayMetrics.density
return when {
widthDp >= 840 -> EXPANDED
widthDp >= 600 -> MEDIUM
else -> COMPACT
}
}四、小米全设备断点
小米推荐开发者针对全生态设备(如手机、汽车、家居等)进行定制化体验。除窗口宽度外,引入宽高比纵向断点,以适配特殊场景,通过结合“设备类型”与“窗口宽度”,构建覆盖“人车家”全生态的断点体系,帮助开发者更精准地适配多场景需求。

以方折叠和平板竖屏为例,随着设备高度增加,使用分栏、左右布局、推挤式面板会导致左右窗格比例不佳,因此推荐在特殊场景引入宽高比纵向断点,保障良好的显示效果。
笔记详情页场景:

直播间查看商品列表场景:

上一篇:Jetpack Compose适配指导
下一篇:行业多端适配最佳实践
文档内容是否有帮助?
有帮助
无帮助