当前位置: 首页 > news >正文

uniapp沉浸式导航栏+自定义导航栏组件

在 UniApp 中实现沉浸式导航栏并结合自定义导航栏组件

一、沉浸式导航栏设置

  1. pages.json中配置页面样式

    • 在需要设置沉浸式导航栏的页面的style选项中进行如下配置:
    {"pages": [{"path": "pages/pageName/pageName","style": {"navigationStyle": "custom", // 自定义导航栏样式"app-plus": {"titleNView": false, // 关闭默认导航栏"statusbar": {"background": "#yourColor" // 设置状态栏颜色,与导航栏颜色一致可实现沉浸式效果}}}}]
    }
    
    • yourColor替换为你想要的颜色值,通常与导航栏颜色一致,以实现沉浸式效果。
  2. 在页面中设置导航栏高度

    • 在页面的onLoad生命周期函数中获取设备信息,计算导航栏高度并设置给页面的样式。
    export default {data() {return {navHeight: 0};},onLoad() {const systemInfo = uni.getSystemInfoSync();this.navHeight = systemInfo.statusBarHeight + 44; // 44 为通常情况下导航栏的高度,可根据实际调整}
    };
    
    • 在页面的style中使用计算出的导航栏高度:
    .page-content {padding-top: {{navHeight}}px;}

二、自定义导航栏组件

  1. 创建自定义导航栏组件
    • components目录下创建一个名为customNavbar的文件夹,并在其中创建customNavbar.vue文件。
<template><view class="custom-navbar"><view class="left-icon" @click="goBack"><!-- 左箭头图标 --><icon name="arrow-left" /></view><text class="title">{{title}}</text><view class="right-icon" v-if="showRightIcon"><!-- 右侧图标 --><icon name="more" /></view></view></template><script>export default {props: {title: {type: String,default: ''},showRightIcon: {type: Boolean,default: false}},methods: {goBack() {uni.navigateBack();}}};</script><style scoped>.custom-navbar {display: flex;justify-content: space-between;align-items: center;height: 44px;background-color: #yourColor; // 与沉浸式导航栏颜色一致padding: 0 16px;}.left-icon {width: 44px;height: 44px;display: flex;justify-content: center;align-items: center;}.title {flex: 1;text-align: center;font-size: 18px;color: #fff;}.right-icon {width: 44px;height: 44px;display: flex;justify-content: center;align-items: center;}</style>
  1. 在页面中使用自定义导航栏组件
    • 在需要使用自定义导航栏的页面中引入并注册组件:
    <template><view><customNavbar :title="pageTitle" :showRightIcon="true" /><!-- 页面内容 --></view>
    </template><script>
    import customNavbar from '@/components/customNavbar/customNavbar.vue';export default {components: {customNavbar},data() {return {pageTitle: '页面标题'};}
    };
    </script>
    

通过以上步骤,就可以在 UniApp 中实现沉浸式导航栏和自定义导航栏组件。可以根据实际需求调整导航栏的样式和功能。

http://www.lryc.cn/news/446076.html

相关文章:

  • 光伏仿真:排布设计如何优化用户体验?
  • Vue使用axios二次封装、解决跨域问题
  • 鸿萌数据恢复:如何降低 RAM 故障风险,以避免数据丢失?
  • 使用java实现ffmpeg的各种操作
  • 【ArcGIS微课1000例】0122:经纬网、方里网、参考格网绘制案例教程
  • 电路板上电子元件检测系统源码分享
  • 综合体第三题(DHCP报文分析)
  • 企业级-pdf预览-前后端
  • 为什么 qt 成为 c++ 界面编程的第一选择?
  • Day1-顺序表
  • PostgreSQL - pgvector 插件构建向量数据库并进行相似度查询
  • UR机器人坐标系转化
  • 【每日一题】LeetCode 2306.公司命名(位运算、数组、哈希表、字符串、枚举)
  • 240922-chromadb的基本使用
  • 工厂模式和抽象工厂模式的实验报告
  • C标准库<string.h>-str、strn开头的函数
  • Anaconda/Miniconda的删除和安装
  • 【Harmony】轮播图特效,持续更新中。。。。
  • Go 并发模式:管道的妙用
  • CAN通信详解
  • 52 文本预处理_by《李沐:动手学深度学习v2》pytorch版
  • 【python】字符串扩展-格式化的精度控制
  • C++第一次练习
  • 计算机毕业设计 基于Python的医疗预约与诊断系统 Django+Vue 前后端分离 附源码 讲解 文档
  • JAVA基础:正则表达式,String的intern方法,StringBuilder可变字符串特点与应用,+连接字符串特点
  • 前端接口报错302 [已解决]
  • 【网络安全】利用未授权API接口实现创建Support Ticket
  • 气压高度加误差的两种方法(直接添加 vs 换算到气压误差),附MATLAB程序
  • Word 制作会议名牌教程
  • 浮动静态路由