首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[小程序]自定义标题栏及胶囊菜单位置确定

[小程序]自定义标题栏及胶囊菜单位置确定

作者头像
master336
发布2026-06-15 19:41:48
发布2026-06-15 19:41:48
1070
举报

实现思路:

微信小程序的默认标题栏只显示页面标题,并由json文件中的navigationBarTitleText参数设定,这里就状态栏、标题栏及胶囊菜单说明一下。

在这里插入图片描述
在这里插入图片描述
  1. 状态栏,这部分由设备决定,不同的设备这部分的布局是不同的
  2. 标题栏,默认就是页面对应json文件中的navigationBarTitleText的直
  3. 胶囊菜单 ,系统默认,不可删除 【划重点】小程序的自定义导航部分实际上是对状态栏及标题栏部分的占用位置不作默认填充,换句话说就是直接由设备顶部(top:0,left:0)开始渲染你的wxml。

设置自定义导航组件

页面的json文件中设置navigationStyle=custom

在这里插入图片描述
在这里插入图片描述

效果:

在这里插入图片描述
在这里插入图片描述

实际上我们设计页面的时候状态栏一般是不需要填充内容的,也就是说保留原状态,这里我们就需要知道状态栏的高度,胶囊菜单的位置布局,以辅助我们实现我们自己的效果。

获取状态栏及胶囊菜单的位置

参考:wx.getSystemInfo getMenuButtonBoundingClientRect 相信看过以上两个参考开发文档就应该有思路了。 相比于在不知道参考文档时,大部分人的思路是通过调试获得状态栏及胶囊的布局信息 (我也这么干过,但是万恶的设备兼容性问题让我不得不回头来看获取设备信息接口) 在iPhone Xs及iphone 6s测试发现,两者获取的数据差异较大,无论是按比例、固定值还是根据设备信息适配都是及其痛苦的。 既然给了接口,就直接用 页面结构

在这里插入图片描述
在这里插入图片描述

js获取参数

在这里插入图片描述
在这里插入图片描述

参数结果

在这里插入图片描述
在这里插入图片描述

得知了胶囊及状态栏的高度,就能行动了(一般来说,如果想跟胶囊菜单一致,仅知道胶囊的布局信息即可)

在这里插入图片描述
在这里插入图片描述

这里不做深入实现,理一下思路:

  1. 胶囊的布局信息里包含胶囊距离设备顶部(y=0)的高度(top)、胶囊高度(height)、距左位置信息
  2. 借助胶囊top信息可以保持胶囊一致的渲染开始位置。
  3. 借助胶囊的距左位置可以避免覆盖胶囊
  4. 胶囊有内边距,如果垂直布局中容易偏上或偏下
  5. 标题展示需要自己实现。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现思路:
  • 设置自定义导航组件
  • 获取状态栏及胶囊菜单的位置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档