小程序学习08—— 系统参数获取和navBar组件样式动态设置
一 系统信息的概念
uni-app提供了异步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2个API获取系统信息。
success 返回参数说明:
| 参数分类 | 说明 |
|---|---|
| statusBarHeight | 手机状态栏的高度 |
| system | 操作系统名称及版本 |
| 。。。 |
二 自定义navbar
2.1 获取系统参数

代码展示:
<template><view class="nav"> <!-- 我是子组件 --><view></view> <!-- 状态栏 --><view class="navbar"></view> <!-- 内容区域 --></view>
</template><script setup>import { onBeforeMount } from 'vue'onBeforeMount(() => { //生命周期-页面渲染(加载)之前setNavSize()})//系统计算状态栏高度--单一逻辑封装成方法/单一功能封装成组件const setNavSize = () => {const res = uni.getSystemInfoSync()console.log(res)}</script><style>.nav {position: fixed;width: 100%;top: 0;left: 0;z-index: 2; }
</style>
返回结果:

2.2 尺寸单位
uni-app 支持的通用 css 单位包括 px、rpx
-
px 即屏幕像素
-
rpx 即响应式 px,一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准,750rpx 恰好为屏幕宽度。一般默认将按照 375px 的屏幕宽度进行计算。
2.3 完整代码
<template><view class="nav"> <!-- 我是子组件 --><view :style="'height:' + status + 'rpx;' + containerStyle"></view> <!-- 状态栏 动态样式v-bind style --><view class="navbar" :style="'height:' + navHeight + 'rpx;' + containerStyle"></view> <!-- 内容区域 --></view>
</template><script setup>import { ref, onBeforeMount, defineProps } from 'vue'const props = defineProps({background: {type: String,default: 'rgba(120, 60, 30, 1)'},color: {type: String,default: 'rgba(111, 111, 111, 1)'},fontSize: {type: String,default: 32},iconWidth: {type: String,default: 116},iconHeight: {type: String,default: 38},})onBeforeMount(() => { //生命周期-页面渲染(加载)之前setNavSize()setStyle()})//利用ref,创建响应式变量//状态栏高度(默认值为0)const status = ref(0)//内容高度const navHeight = ref(0)//背景颜色const containerStyle = ref('')//字体样式const textStyle = ref('')//图标样式const iconStyle = ref('')//系统计算状态栏高度--单一逻辑封装成方法/单一功能封装成组件//创建方法const setNavSize = () => {const { system, statusBarHeight } = uni.getSystemInfoSync()status.value = statusBarHeight * 2 //系统给到的数值以px为单位,转换为rpx需*2const isiOS = system.indexOf('iOS') //判断是否iOS系统if (!isiOS) {navHeight.value = 96} else {navHeight.value = 88 //如果iOS,考虑顶部刘海}//console.log(res)}//样式设置(使用数组方式写出->数组转字符串->.join进行拼接)const setStyle = () => {containerStyle.value = ['background:' + props.background].join(';')textStyle.value = ['color:' + props.color, 'font-size:' + props.fontSize + 'rpx'].join(';')iconStyle.value = ['width:' + props.iconWidth + 'rpx', 'height:' + props.iconHeight + 'rpx'].join(';')}</script><style>.nav {position: fixed; //固定定位(注释需删除,以防报错)width: 100%;top: 0;left: 0;z-index: 2; //层级(避免遮挡)}
</style>
运行结果:

三 报错
在使用XHbuilder X运行微信小程序的时候可能会遇到一个问题:请注意游客模式下,调用 wx.operateWXData 是受限的, API 的返回是工具的模拟返回,这是因为我们忘记在程序中配置AppID了才会出现这样的警告。


解决
(a) 打开微信小程序助手
在左边的侧边栏选择开发-->开发管理-->开发设置选中AppID(小程序ID) 注意这里要是正式的AppID不要使用测试号的

(b)粘贴
选中复制后打开XHbuilder X将AppID黏贴进去就可以了

相关文章:
小程序学习08—— 系统参数获取和navBar组件样式动态设置
一 系统信息的概念 uni-app提供了异步(uni.getSystemInfo)和同步(uni.getSystemInfoSync)的2个API获取系统信息。 success 返回参数说明: 参数分类说明statusBarHeight手机状态栏的高度system操作系统名称及版本。。。 二 自定义navbar 2.1 获取系统参数 代码展示…...
数据库环境安装(day1)
网址:MySQL 下载(环境准备): (2-5点击此处,然后选择合适的版本) 1.linux在线YUM仓库 下载/安装: wget https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm rpm -i https://r…...
网络安全-web渗透环境搭建-BWAPP(基础篇)
01--所需系统环境: 虚拟主机系统部署(vmware,虚拟主机创建、虚拟主机网络配置(桥接,便于网络中多个主机都能访问虚拟主机)、虚拟软件功能,快照、克隆、镜像文件加载,ova文件制作&am…...
当算法遇到线性代数(三):实对称矩阵
实对称矩阵的理论与应用 线性代数系列相关文章(置顶) 1.当算法遇到线性代数(一):二次型和矩阵正定的意义 2.当算法遇到线性代数(二):矩阵特征值的意义 3.当算法遇到线性代数&#x…...
WayLand的架构和协议
WayLand的架构和协议 1. Wayland简介 1.1 Wayland是啥?为啥它这么重要? 嘿,你知道吗?有时候咱们用电脑的时候,是不是觉得图形界面有点慢、有点卡?那是因为我们还在用一个叫X Window System (X11)的老伙计…...
STM32学习(十)
I2C模块内部结构 I2C(Inter-Integrated Circuit)模块是一种由Philips公司开发的二线式串行总线协议,用于短距离通信,允许多个设备共享相同的总线。 硬件连接简单:I2C通信仅需要两条总线,即SCL&…...
进阶篇-Day17:JAVA的日志、枚举、类加载器、反射等介绍】
目录 1、日志1.1 日志概念1.2 日志框架(1) Logback框架:(2)配置文件介绍: 2、枚举3、类加载器3.1 类加载器的介绍3.2 类加载器的加载过程:加载、链接、初始化3.3 类加载器的分类3.4 双亲委派模式…...
Java设计模式 —— 【行为型模式】责任链模式(Chain-of-responsibility Pattern) 详解
文章目录 模式介绍优缺点适用场景模式结构案例实现 模式介绍 责任链模式又名职责链模式,它是一种对象行为的设计模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链&…...
C++和Python中负数取余结果的区别
C中的负数取余规则(取模%)规则 在C中,取余运算( % )的结果符号与被除数相同。从数学定义角度看,C遵循的是尽量让商向零取整的规则。例如计算 -7/3,商是 -2 (向零取整)&a…...
rust学习——环境搭建
rust安装:https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html 1、vscode装插件: toml语法支持 依赖管理 rust语法支持 2、创建demo 3、查看目录 4、执行文件的几种方式: rust安装:https://www.rust-lang.org/z…...
Linux系统中解决端口占用问题
在日常的 Linux 系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在 Linux 系统中如何识别和解决端口占用问题…...
现代软件架构设计:14个质量属性的定义、权衡与最佳实践
1. 引言 1.1 技术架构的重要性 技术架构是指导软件系统设计和开发的核心,它定义了系统的高层结构及关键技术选型。一个优秀的技术架构可以提高开发效率、系统稳定性和扩展能力,确保项目成功落地。面对复杂业务场景,技术架构的设计至关重要&…...
【UE5 C++课程系列笔记】25——多线程基础——FGraphEventRef的简单使用
目录 概念 使用示例1 使用示例2 概念 FGraphEventRef 本质上是对一个异步任务或者一组相关异步任务在虚幻引擎任务图系统中的一种引用(reference)。虚幻引擎的任务图系统用于高效地调度和管理各种异步任务,协调它们的执行顺序以及处理任务…...
计算机网络之---信号与编码
信号 在物理层,信号是用来传输比特流的物理量,它可以是电压、电流、光强度等形式,通常通过电缆、光纤或者无线信道等媒介传播。 信号主要分为以下两种类型: 模拟信号(Analog Signal):信号在时间…...
linux下用命令行给串口写数据和读数据
在 Linux 系统中,串口设备(如 /dev/ttyS3)可以通过命令行进行读写操作。您遇到的问题是因为 Bash 解释了命令行中的字符串 “dis vlan\n”,但并没有按预期向串口设备发送数据。你应该将数据通过重定向发送到串口设备。 下面是如何…...
【生物信息】如何使用 h5py 读取 HDF5 格式文件中的数据并将其转换为 NumPy 数组
data_mat h5py.File(args.data_file) x1 np.array(data_mat[X1]) x2 np.array(data_mat[X2]) if not args.no_labels: y np.array(data_mat[Y]) data_mat.close() 这段代码展示了如何使用 h5py 读取 HDF5 格式文件中的数据并将其转换为 NumPy 数组。以下是代码的详细解释&a…...
纯手工(不基于maven的pom.xml、Web容器)连接MySQL数据库的详细过程(Java Web学习笔记)
1 引言 最近读一些Java Web开发类的书籍时,发现书中的连接数据库的过程缺少了一些关键性的过程,这对初学者非常不友好。为此,本文将给出详细的连接MySQL数据库的过程,并且是纯手工,不依赖于pom.xml和Web容器ÿ…...
thingsboard通过mqtt设备连接及数据交互---记录一次问题--1883端口没开,到服务器控制面板中打开安全组1883端口
1,链接不上:原因是1883端口没开,到服务器控制面板中打开安全组1883端口 2,参考链接: https://blog.csdn.net/bujingyun8/article/details/120024788...
联邦学习中的LoRA:FedLoRA
联邦学习中的LoRA:FedLoRA 联邦学习中的LoRA(Low-Rank Adaptation of Large Language Models)是一种用于在联邦学习场景下对大型语言模型进行低秩适应和高效微调的方法。以下是其原理及示例说明: 原理 低秩矩阵分解:在联邦学习中,通常会涉及到对预训练的大型模型进行微…...
PyTorch reshape函数介绍
torch.reshape 是 PyTorch 用于改变张量形状的函数之一。它不会改变张量的数据,而是重新组织其元素以适应新的形状。 reshape 的使用 torch.reshape(input, shape) → Tensorinput:输入张量。shape:新形状,使用整数或 -1 指定各维…...
HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载雷
一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...
iOS 15-16设备iCloud锁绕过技术全解析:从原理到实战应用
iOS 15-16设备iCloud锁绕过技术全解析:从原理到实战应用 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n iCloud激活锁作为苹果生态的重要安全机制,在保护用户数据安全的同时&am…...
DeepSpeed 学习指南
DeepSpeed 代码库学习指南 适合希望深入理解 DeepSpeed 内部机制的工程师与研究者。 目录 项目定位与核心价值整体架构分层目录结构详解核心模块深度导览 4.1 入口与初始化4.2 DeepSpeedEngine — 训练引擎4.3 ZeRO — 显存优化系列4.4 混合精度优化器4.5 流水线并行4.6 序列并…...
2025届毕业生推荐的十大AI写作平台实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 被称作DeepSeek的论文,系统地阐述了大规模语言模型的技术架构,以及训…...
数据主权时代:WeChatMsg如何让你的聊天记录真正属于你
数据主权时代:WeChatMsg如何让你的聊天记录真正属于你 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCha…...
5个维度解析Bebas Neue:设计师与开发者的开源字体解决方案
5个维度解析Bebas Neue:设计师与开发者的开源字体解决方案 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue 副标题:破解标题设计痛点——从视觉疲劳到品牌识别的全链路优化 在数字设计领域…...
FanControl智能调控指南:从噪音优化到硬件保护的全方位解决方案
FanControl智能调控指南:从噪音优化到硬件保护的全方位解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tr…...
STM32F407 RTC实战:从CubeMX配置到低功耗日历应用
1. STM32F407 RTC模块入门指南 第一次接触STM32的RTC功能时,我完全被它强大的低功耗特性震惊了。记得当时做一个环境监测项目,需要设备在断电后依然能保持准确计时,RTC完美解决了这个问题。STM32F407的RTC模块不仅提供精准的日历时钟功能&…...
若依3.8.6项目里,@RateLimiter注解报‘服务器限流异常’?别慌,手把手教你修复这个Redis坑
若依3.8.6项目中RateLimiter注解的Redis限流异常深度解析与修复实战 当你正在使用若依框架开发一个需要接口限流的功能时,突然在测试环境遇到RateLimiter注解抛出"服务器限流异常"的错误,而Redis服务明明运行正常——这种看似矛盾的场景往往让…...
DoL游戏整合包终极指南:三步打造完美中文美化体验
DoL游戏整合包终极指南:三步打造完美中文美化体验 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 你是否曾经为英文游戏界面而烦恼?是否觉得原版游戏画风不够精致?…...
