uniapp 如何自定义导航栏并自适应机型

如今的移动设备有各种不同的屏幕形状,如刘海屏、水滴屏等。这些异形屏会影响页面的布局,尤其是导航栏和底部栏的显示。通过获取安全区域信息,可以确保页面内容不会被异形屏的特殊区域遮挡。

在设计页面顶部导航栏时,可以根据 **safeAreaInsets.top**的值来调整导航栏的位置,使其在不同设备上都能正确显示,避免被刘海区域遮挡。

例如iPhone14Pro max机型,就被挡住了!!!

解决方法如下:

1、在page.json里面配置**"navigationStyle": "custom"** ------导航栏自定义
javascript 复制代码
 {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        //使用自定义导航栏
        "navigationStyle": "custom",
        "navigationBarTextStyle": "white"
      }
 },
2、设计自定义导航栏布局
TypeScript 复制代码
<template>
  <view class="navbar">
    <!-- logo文字 -->
    <view class="logo">
      <image class="logo-image" src="@/static/images/logo.png"></image>
      <text class="logo-text">新鲜 · 亲民 · 快捷</text>
    </view>
    <!-- 搜索条 -->
    <view class="search">
      <text class="icon-search">搜索商品</text>
      <text class="icon-scan"></text>
    </view>
  </view>
</template>
3、适配不同机型

获取各机型信息

javascript 复制代码
<script setup lang="ts">
//获取屏幕边界到安全区域的距离
const { safeAreaInsets } = uni.getSystemInfoSync()
console.log(safeAreaInsets);
</script>

动态设置样式::style="{ paddingTop: safeAreaInsets?.top + 'px' }"

html 复制代码
<template>
  <view class="navbar" :style="{ paddingTop: safeAreaInsets?.top + 'px' }">
    <!-- logo文字 -->
    <view class="logo">
      <image class="logo-image" src="@/static/images/logo.png"></image>
      <text class="logo-text">新鲜 · 亲民 · 快捷</text>
    </view>
    <!-- 搜索条 -->
    <view class="search">
      <text class="icon-search">搜索商品</text>
      <text class="icon-scan"></text>
    </view>
  </view>
</template>

设置完之后就不会挡住啦!!!!

相关推荐
观无11 分钟前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
愚公搬代码37 分钟前
【愚公系列】《Web应用安全》001-VMware的安装
前端·安全
xiaohaiAIgeo37 分钟前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识
立少→万能汉编40 分钟前
用“立少→超文本”写静态网页,标签<倍>
服务器·前端·javascript
weixin_431600441 小时前
NestJS 入门(7):生命周期钩子——构造函数和 `OnModuleInit` 差在哪?
前端·后端·学习·node.js·nest.js
小强库计算机毕业设计1 小时前
基于 Spring Boot + Vue3 的校园管理系统
java·spring boot·后端·项目实战·管理系统·技术分享·校园管理系统实战
霸道流氓气质1 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
怪奇云呼军1 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
编程令我快乐1 小时前
maven部分构建参数讲解
java·maven
ZC跨境爬虫1 小时前
LeetCode 27. 移除元素(双指针详解 + Java Python 多解法对比)
java·python·leetcode