Android自定义胶囊按钮,微信小程序自定义导航栏 胶囊菜单按钮高度适配 原理简单 赛过一些大厂的完美适配 妈妈再也不用担心我强迫症啦...

本文介绍了如何解决微信小程序自定义导航栏中胶囊按钮高度适配问题。通过分析原生导航栏高度和胶囊信息,利用wx.getSystemInfo()和wx.getMenuButtonBoundingClientRect() API动态计算高度差,实现完美适配,确保在不同手机上胶囊按钮位置准确无误。
摘要由CSDN通过智能技术生成

在自定义小程序导航栏时,右上角的胶囊(MenuButton)在不同机型测试,会发现很难适配。

实测中 不同的手机,胶囊高度不一样、状态栏高度不一样。与模拟器显示的情况是不一样的。

完全需要根据手机,动态的计算高度。

先看一些小程序顶部导航栏适配的情况

040501c581917ee957c0009f3cd03445.png

图一 某团     图二 某乎    图三 某东    图四 某拉

上图适配做的最好的是某东,但仔细看仍会有一点错位,但输入框的颜色,淡化了这种不和谐感。

为解决这个问题就要搞清楚原理

7209dd862655215a4c71e5c56c18cb8b.png

这是在没有设置自定义时的原生导航栏,我们发现整体的高度就是 (状态栏高度 + 导航栏高度)

而状态栏高度可以通过 wx.getSystemInfo()获取,现在就只用解决导航栏高度了

观察发现,胶囊顶部高度距导航栏顶部高度的高度差 和 胶囊底部高度距导航栏底部高度的高度差,是一样的

也就是说 导航栏高度 = 胶囊高度 +(高度差)x  2

而胶囊信息可以通过 wx.getMenuButtonBoundingClientRect()获取,现在就只用解决高度差了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值