uniapp 模仿 Android的Menu菜单栏
下面这张图就是我们要模拟的菜单功能

一、模拟的逻辑
1. 我们使用uni-popup组件(记得要用hbuilder X导入该组件)
uni-app官网2. 将组件内的菜单自定义样式
二、uniapp代码 写法vue3
<template><view><uni-popup ref="showMenu" type="right" mask-background-color="rgba(0,0,0,0.1)"><view class="popup-content"><view @click="doAction(1)">哈哈哈哈</view><view @click="doAction(2)">嘻嘻嘻嘻</view><view @click="doAction(3)">呜呜呜呜</view></view></uni-popup></view>
</template><script setup>import {ref,onMounted} from "vue";let showMenu = ref(null);onMounted({showPopup(); });//显示菜单const showPopup = () => {showMenu.value.open();}//处理菜单选项的动作const doAction = (index) => {console.log(index);showMenu.value.close();}</script><style scoped lang="scss">.popup-content {width: 300rpx;background-color: #F8f8f8;border-radius: 8px;padding: 16px;color: #e5e5e5;margin-top: 100rpx;margin-right: 16rpx;view{padding: 20rpx;}}
</style>
目前存在的问题:使用uni-popup是无法遮挡tabBar,因为tabBar是原生组件,这里的解决方案是subNVue(pages.json 页面路由 | uni-app官网)
三、subNVue改进版
1. subNVue 是 vue 页面的原生子窗体。用于解决App中 vue 页面中的层级覆盖和原生界面灵活自定义用的。
2. 它不是全屏页面,也不是组件,就是一个原生子窗体。它是一个 nvue 页面,使用 weex 引擎渲染。
=》翻译一下就是,它不能用文件去定义,而是用配置,就像JavaScript中用代码创建一个div标签一样,我们在page.json文件中配置它的宽度、高度、背景色。
使用subNVue逻辑
1. 在page.json中在一个页面下,定义一个subNVue子窗体。
=》解释:也就是该窗体属于当前页面,在当前页面上层出现。
2. 定义一个nvue文件,让它的内容,在subNVue子窗体内显示
3. 在index.vue野蛮,获取到子窗体,调用它的显示方法,显示子窗体和它的内容
具体使用方法要看文档uni-app subNVue 原生子窗体开发指南 - DCloud问答,我直接就将我的代码粘贴出来
1.在page.json配置subNVue子窗体
项目结构
pages
index
index.vue
subNVue
menu-sub.nvue
{"pages": [{"path": "pages/index/index","style": {"navigationStyle": "custom", //禁用原生导航栏,也可以使用titleNView为false"app-plus": {"bounce": "none", //关闭页面回弹效果"subNVues": [{"id": "custome-menu", //subNVue 的 id,可通过 uni.getSubNVueById('drawer') 获取"path": "pages/index/subNVue/menu-sub", // nvue 路径"type": "popup", //只有设置为popup类型,mask才管用"style": { "position": "absolute", "dock": "bottom", "width": "40%", "height": "40%", "background":"transparent","mask":"rgba(0,0,0,0)","zindex": 999,"right": "16rpx"}}]}}}]
}
2.子窗体显示的内容
<!-- 子窗体显示的内容 -->
<template><view class="popup-content"><view class="t1" @click="doAction(1)">长歌行</view><view class="t1" @click="doAction(2)">落日圆</view><view class="t1" @click="doAction(3)">我欲封天</view><view class="t1" @click="doAction(4)">万古长夜</view><view class="t1" @click="doAction(5)">清晨</view></view>
</template><script setup>import {ref} from "vue";//处理菜单选项的动作const doAction = (index) => {uni.showToast({title: index});//关闭菜单栏const subNVue = uni.getSubNVueById('custome-menu');subNVue.hide('fade-out',300);}
</script><style scoped lang="scss">.popup-content {width: 300rpx;background-color: #F8f8f8;border-radius: 8px;padding: 16px;color: $normal-font-color;margin-top: 100rpx;margin-right: 16rpx;.t1{padding: 20rpx;}}
</style>
3. 在index.vue页面触发显示子窗体和它的内容
<template></template><script setup>import {onMounted} from "vue";onMounted(() => {showMenu(); });//1. 显示菜单const showMenu = () => {const subNVue = uni.getSubNVueById('custome-menu'); //通过 id 获取 nvue 子窗体subNVue.show('slide-in-right', 300, function() {// console.log("打开了菜单栏");});}</script><style scoped lang="scss"></style>
相关文章:
uniapp 模仿 Android的Menu菜单栏
下面这张图就是我们要模拟的菜单功能 一、模拟的逻辑 1. 我们使用uni-popup组件(记得要用hbuilder X导入该组件)uni-app官网 2. 将组件内的菜单自定义样式 二、uniapp代码 写法vue3 <template><view><uni-popup ref"showMenu"…...
wordcloud Python中的词云库
Python中的词云库是一个非常流行的文本可视化工具,可以将文本中的关键词以词云形式呈现。本篇文章将详细讲解Python中的词云库的使用和API以及代码注释。 安装词云库 安装词云库的方式很简单,只需要在命令行中使用pip命令即可。具体命令如下所示&#…...
直播间讨论区需要WebSocket,简单了解下
由于 http 存在一个明显的弊端(消息只能有客户端推送到服务器端,而服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使用轮询,而轮询效率过低,并不适合。于是 WebSocket…...
2024年天津高职升本科考试将于11月开始报名
2024年天津高职升本科考试文化课网上报名及其现场确认将于11月下旬开始 2023年11月1日,天津招考资讯官方网站发布了本月(11月)报名事项安排,将进行下列考试项目网上报名工作,2024年备考天津专升本的考生可以看到2024年…...
linux mysql 创建数据库并配置用户远程管理
要在Linux上创建MySQL数据库并配置用户以实现远程管理,您可以执行以下步骤: 1. 登录到MySQL服务器: 在您的Linux终端中,使用以下命令登录到MySQL服务器。您需要提供MySQL服务器的用户名和密码。 mysql -u root -p 输入密码后&a…...
pppoe拨号案例
R3服务端 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 aaa local-user test password cipher admin local-user test service-type ppp ip pool test network 100.0.0.0 mask 255.255.255.0 interface Virtual-Template0 ppp authentication-mode chap remote …...
基于STM32C8T6的智能蓝牙小车控制设计
**单片机设计介绍,1655基于STM32C8T6的智能蓝牙小车控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计五、 程序文档 六、 结论七、 文章目录 一 概要 基于STM32C8T6的智能蓝牙小车控制设计是基于STM32微控制器和蓝牙模块开发的一种小型智能车辆控制系统…...
P3983 赛斯石(赛后强化版),背包
题目背景 白露横江,水光接天,纵一苇之所如,凌万顷之茫然。——苏轼真程海洋近来需要进购大批赛斯石,你或许会问,什么是赛斯石? 首先我们来了解一下赛斯,赛斯是一个重量单位,我们用…...
系统架构设计师历年真题案例知识点汇总
常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用…...
缓存击穿只会逻辑过期 OR 互斥锁?深入思考 == 鹤立鸡群
网上但凡看得见的文章,大部分在说缓存穿透时都是无脑分布式锁 / 逻辑过期,分布式锁一点问题都没有么?逻辑过期一点问题都没有么?还能不能再进一步优化? 在聊聊缓存击穿的双重判定锁之前,我们将按照循循渐进…...
从 Seq2Seq 到 Attention:彻底改变序列建模
探究Attention机制和意力的起源。 简介 在这篇博文[1]中,将讨论注意力机制的起源,然后介绍第一篇将注意力用于神经机器翻译的论文。由于上下文压缩、短期记忆限制和偏差,具有 2 个 RNN 的 Seq2Seq 模型失败了。该模型的 BLEU 分数随着序列长度…...
手机通讯类、ip查询、智能核验、生活常用API接口推荐
手机通讯类 手机号码归属地:提供三大运营商的手机号码归属地查询。 空号检测:通过手机号码查询其在网活跃度,返回包括空号、停机等状态。 手机在网状态:支持传入三大运营商的号码,查询手机号在网状态,返…...
1.6 基本安全设计准则
思维导图: 1.6 基本安全设计准则笔记 目标:理解和遵循一套广泛认可的安全设计准则,以指导保护机制的开发。 主要准则: 机制的经济性:安全机制应设计得简单、短小,便于测试和验证,减少漏洞和降…...
图扑 HT for Web 手机端运维管理系统
随着信息技术的快速发展,网络技术的应用涉及到人们生活的方方面面。其中,手机运维管理系统可提供数字化、智能化的方式,帮助企业和组织管理监控企业的 IT 环境,提高运维效率、降低维护成本、增强安全性、提升服务质量,…...
LiveGBS流媒体平台GB/T28181常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办?
LiveGBS常见问题-国标级联海康国标级联大华国标级联华为等,配置了国标级联, 上级看不到通道该怎么办? 1、如何配置国标级联2、上级看不到通道排查2.1、是否共享通道2.3、通道编号是否满足上级要求 3、如何抓包分析4、搭建GB28181视频直播平台 1、如何配置国标级联 …...
数字频带传输——二进制数字调制及MATLAB仿真
文章目录 前言一、OOK1、表达式2、功率谱密度3、调制框图 二、2PSK1、表达式2、功率谱密度 三、2FSK1、表达式 四、MATLAB 仿真1、MATLAB 源码2、仿真及结果①、输入信号及频谱图②、2ASK 调制③、2PSK 调制④、2FSK 调制⑤、随机相位 2FSK 调制 五、资源自取 前言 数字频带信…...
Bitdu 150万美元投资MSG:Web3合作典范催动极致交易体验
在Web3时代,如何一键把握DEX领域的机遇,是摆在一众中心化交易所面前的难题。 近期,新锐加密资产交易所Bitdu向MsgSender(MSG)投资150万美元,引起了专业的交易者们的关注。大家普遍认为,这一事件…...
CentOS一键部署Docker
Docker官网:https://www.docker.com/ CentOS(7.6) Docker(18.06.1)一键安装脚本 #!/bin/bash echo "1、安装依赖..." yum -y install gcc yum -y install gcc-c##验证gcc版本 gcc -vecho "2、卸载老…...
Centos虚拟机安装配置与MobaXterm工具及Linux常用命令
目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 查看网络配置 …...
springboot医院绩效考核系统源码
医院绩效考核系统是一种以人力资源管理为基础,选用适合医院组织机构属性的绩效理论和方法,基于医院战略目标,构建全方位的绩效考评体系,在科学、合理的绩效管理体系基础上,采用科学管理的方法,如平衡计分卡…...
为什么大家都说嘎嘎降AI好用?深度解读降AI率工具好坏的本质
为什么大家都说嘎嘎降AI好用?深度解读降AI率工具好坏的本质 一、一个口碑现象:嘎嘎降AI是怎么火起来的? 2026年毕业季,有个明显的趋势:在知乎、小红书、B站等平台上,嘎嘎降AI被提到的频率越来越高。不是自吹自擂的广告帖,而是真实用户在分享"终于过了"…...
AGI与量子计算融合的7个致命断层:2026奇点大会未公开技术白皮书首曝
第一章:AGI与量子计算融合的范式危机与奇点临界态 2026奇点智能技术大会(https://ml-summit.org) 当通用人工智能(AGI)的推理架构遭遇量子叠加态的本征坍缩机制,传统冯诺依曼—图灵范式正经历不可逆的结构性失稳。实验表明&#…...
FPGA实战:手把手教你用CORDIC Translate IP核搞定复数转极坐标(附定点数归一化避坑指南)
FPGA实战:CORDIC Translate IP核实现复数转极坐标的工程化解决方案 在数字信号处理领域,复数到极坐标的转换是一个基础但关键的操作。无论是通信系统中的载波同步、雷达信号处理中的目标检测,还是电机控制中的矢量变换,都需要高效…...
别再折腾环境了!手把手教你用TexLive 2024和TeXstudio搞定LaTeX中文排版(附配置避坑点)
零失败LaTeX中文环境配置指南:TexLive 2024与TeXstudio终极方案 第一次打开TeXstudio时,看到满屏的红色报错提示和乱码中文,我的硕士论文开题报告差点因此延期——这可能是许多LaTeX初学者的共同记忆。不同于Word的"安装即用"&…...
GB35114视频加密全解析:从VEK生成到OFB模式流加密,如何保障监控视频防篡改?
GB35114视频加密技术深度剖析:从密钥管理到流加密实战 在视频监控领域,数据安全已成为系统设计的核心考量。GB35114标准作为我国视频监控领域的重要安全规范,其加密机制设计既考虑了实时性要求,又确保了数据完整性和机密性。本文将…...
Vector-CANoe实战:CAPL编程与NetWork Node节点深度配置指南
1. 初识NetWork Node:从Client到Server的角色转变 第一次接触CANoe时,大多数人都会把它当作一个简单的Client端工具,用来收发CAN报文、解析信号。但当我真正参与到一个整车网络测试项目时,才发现NetWork Node的强大之处。那次我们…...
别再让网络环路卡死你的业务!华为eNSP实战:手把手配置STP与RSTP(附根保护、边缘端口避坑指南)
华为eNSP实战:STP/RSTP配置与环路故障排查全指南 凌晨三点,机房告警灯突然亮起,核心业务区流量激增到90%——这可能是每个网络工程师最不愿面对的噩梦场景之一。当广播风暴席卷整个网络时,冗余链路从"救命稻草"变成了&q…...
【限时解密】SITS2026未发布数据集曝光:AGI在代数几何中发现2个新猜想,准确率92.7%
第一章:SITS2026演讲:AGI与数学发现 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场,DeepMath团队首次公开展示了AGI驱动的全自动定理发现系统「ProofSynth」——该系统在未接触任何人类证明的前提下,于72小时内…...
LaTeX表格总是不听话?用[h]参数让它乖乖待在原地(附完整代码示例)
LaTeX表格浮动问题终极指南:精准控制表格位置的7种实战技巧 第一次用LaTeX写论文时,我盯着那个莫名其妙跑到页面顶端的表格整整发呆了十分钟——明明代码里它乖乖待在文字下方,编译后却像长了腿一样自己跑到了前面。这种"表格不听话&quo…...
AGI信任崩塌后如何重建公众信心:从ChatGPT幻觉事件到GPT-5发布前的危机预演手册
第一章:AGI信任崩塌的本质与公众认知断层 2026奇点智能技术大会(https://ml-summit.org) 当AGI系统在医疗诊断中给出高置信度但致命错误的治疗建议,或在司法辅助场景中隐性放大历史偏见时,公众的信任并非瞬间瓦解,而是经历一场缓…...
