uniapp 设置安全区域

javascript 复制代码
<!-- 获取安全区域 -->
<script setup lang="ts">
import { computed, ref } from 'vue'

let systemType = ref('1')
// #ifdef APP-PLUS || H5  || APP-PLUS-NVUE
systemType.value = '1'
const { safeAreaInsets } = uni.getSystemInfoSync()
console.log(safeAreaInsets, 'safeAreaInsets')
const prop = defineProps({
  title: {
    type: String,
    default: '消息',
  },
})
// #endif

// #ifdef MP-WEIXIN
systemType.value = '2'
const navbarHeight = ref(0)
//计算刘海状态栏
navbarHeight.value = uni.getSystemInfoSync().statusBarHeight || 0
//计算胶囊区域的高度
let { top, height } = uni.getMenuButtonBoundingClientRect()
const titleBarHeight = computed(() => {
  return (top - navbarHeight.value) * 2 + height
})
// #endif
</script>

<template>
  <view v-if="systemType == '1'" class="navbar" :style="{ paddingTop: safeAreaInsets?.top + 'rpx' }">
    <view class="search">{{ title }}</view>
  </view>
  <view v-if="systemType == '2'">
    <view class="fill" :style="{ height: navbarHeight + 'px' }"></view>
    <view class="title" :style="{ height: titleBarHeight + 'px' }"> 消息 </view>
  </view>
</template>

<style lang="scss">
.navbar {
  background-size: cover;
  position: relative;
  display: flex;
  flex-direction: column;
  padding-top: 20px;
  // .leftBack {
  //   position: absolute;
  //  top: 200rpx;
  // }
  .search {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0rpx 10rpx 0 26rpx;
    height: 64rpx;
    line-break: 64rpx;
    //ui标记距离上面22rpx
    margin: 44rpx 20rpx 0 20rpx;
    color: #1f1f1f;
    font-weight: 600;
    font-size: 28rpx;
    border-radius: 32rpx;
  }
}
.fill {
  width: 100%;
}
.title {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>

uniapp 设置安全区域以及导航栏和胶囊对齐 要注意app没有胶囊没法获取 要另外写样式(已完善)

ps:真就是每个公司总有那么几个表现狗 真他妈的恶心 得拓展一下自己的知识宽度 找下家了

相关推荐
天人合一peng13 分钟前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
会飞的战斗鸡31 分钟前
JS中的链表(含leetcode例题)
javascript·leetcode·链表
方也_arkling1 小时前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
qq_177767371 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos
qq_177767371 小时前
React Native鸿蒙跨平台自定义复选框组件,通过样式数组实现选中/未选中状态的样式切换,使用链式调用替代样式数组,实现状态驱动的样式变化
javascript·react native·react.js·架构·ecmascript·harmonyos·媒体
web打印社区1 小时前
web-print-pdf:突破浏览器限制,实现专业级Web静默打印
前端·javascript·vue.js·electron·html
RFCEO2 小时前
前端编程 课程十三、:CSS核心基础1:CSS选择器
前端·css·css基础选择器详细教程·css类选择器使用方法·css类选择器命名规范·css后代选择器·精准选中嵌套元素
烬头88212 小时前
React Native鸿蒙跨平台采用了函数式组件的形式,通过 props 接收分类数据,使用 TouchableOpacity实现了点击交互效果
javascript·react native·react.js·ecmascript·交互·harmonyos
Amumu121382 小时前
Vuex介绍
前端·javascript·vue.js