当前位置:   article > 正文

uni-app 自定义导航栏-解决适配问题_uniapp自定义导航栏适配问题

uniapp自定义导航栏适配问题

前言

  • 在实际开发中我们是根据需求,原型图,功能配色来开发,并不是考虑这个组件是不是能实现

  • 首页我们不需要跳转时,会出现标题左移,渐变色,输入框,等等布局,原生导航栏就不满足需求

  • 这时我们需要自定义导航栏,uni-app 确实提供了css变量,告诉我们手机系统栏高度,胶囊按钮高度,但我们写死时会因为不同的机型,导致页面的布局破坏,这是因为不同手机分辨率,缩放有差异,会导致系统栏,胶囊按钮差异,这是如果我们高度全局写死就会乱。

  • 换个角度思考,那为什么微信自己封装的代码,就可以适配这些问题-是因为它把高度写活了。我们只需要调用api,在首次进入页面时候。获取手机系统栏,胶囊按钮,就可以解决这些问题。

代码实现-可以直接复制

  1. <template>
  2. <view class="content">
  3. <!-- 背景导航栏 -->
  4. <view class="background-plate" :style="{ height:titleheight + titletop + 10 + 'px'}">
  5. </view>
  6. <!-- 标题 -->
  7. <view class="status_bar" :style="{ height:titleheight + 'px',top: titletop + 'px'}">
  8. <text>自定义导航栏</text>
  9. </view>
  10. <!-- 内容 -->
  11. <view class="content-statistics" :style="{ paddingTop:titleheight + titletop + 10 + 'px'}">
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. // 胶囊按钮高度
  20. titleheight: 0,
  21. // 胶囊到顶部距离
  22. titletop: 0,
  23. }
  24. },
  25. onLoad() {
  26. // 或许胶囊按钮各种参数
  27. this.getHeight()
  28. },
  29. methods: {
  30. getHeight() {
  31. let res = uni.getMenuButtonBoundingClientRect();
  32. this.titletop = res.top;
  33. this.titleheight = res.height
  34. console.log(res);
  35. console.log("titletop的值", this.titletop);
  36. console.log("titleheight的值", this.titleheight);
  37. console.log("一半的titleheight的值", this.titleheight / 2);
  38. },
  39. }
  40. }
  41. </script>
  42. <style lang="scss">
  43. .content {
  44. .background-plate {
  45. width: 100vw;
  46. background: skyblue;
  47. position: fixed;
  48. left: 0;
  49. z-index: 5;
  50. }
  51. .status_bar {
  52. width: 100vw;
  53. position: fixed;
  54. left: 0;
  55. line-height: 64rpx;
  56. padding-left: 32rpx;
  57. z-index: 10;
  58. text {
  59. font-size: 36rpx;
  60. font-family: PingFang SC-Heavy, PingFang SC;
  61. font-weight: 800;
  62. color: #FFFFFF;
  63. }
  64. }
  65. }
  66. </style>

总结:

经过这一趟流程下来相信你也对 uni-app 自定义导航栏-解决适配问题 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/594909
推荐阅读
相关标签
  

闽ICP备14008679号