自定义导航栏在异形屏与系统字体缩放下应如何计算安全布局
简答题中等567 次浏览
参考答案与解析
核心结论
自定义导航栏不能依赖固定高度、固定顶部间距或某一款手机截图进行“像素对齐”。可靠方案是以运行时窗口信息、安全区域和右上角胶囊按钮矩形为约束,计算状态栏、内容栏及左右可用空间,并让页面主体显式预留导航栏占位。计算结果应由一个公共布局模块产生,页面和组件只消费统一的尺寸变量。
底层机制与决策依据
开启自定义导航后,原生导航栏不再替页面承担标题避让和内容下移,开发者需要处理状态栏、刘海、圆角屏、横竖屏及胶囊区域。可结合 wx.getWindowInfo 与 wx.getMenuButtonBoundingClientRect 获取窗口和胶囊信息。内容栏高度可根据胶囊上下间距推导,但必须为异常值准备合
