Skip to content
官方QQ交流群
pc端ui:468705115   点此加入
移动端ui:468217742   点此加入
技术交流1:87208295   点此加入
技术交流2:787747122   点此加入
官网
云控制台
开放平台
关注微信公众号
代码仓库: 码云

此组件一般用于在特殊情况下,需要自定义导航栏的时候用到,一般建议使用uni-app带的导航栏。

提示

右侧的演示中,导航栏上方有圆角,也有顶部的手机模型状态栏内容,以及返回图标和文字不对齐的情况。
这是因为网页演示导致,实际中无此情况,请通过右上角的“演示”扫码查看实际效果。

平台差异说明

App(vue)App(nvue)H5小程序

基本使用

默认情况下,该组件只有向左的箭头,点击可以返回上一页,如果您想将自定义导航栏用在tabbar(不存在要返回的逻辑)页面, 这样会隐藏左边的返回图标区域。

  • 如果想在返回箭头的右边自定义类似"返回"字样,可以将left-text设置为"返回"
  • 通过title参数传入需要显示的标题,通过title-width(rpx)设置标题区域的宽度,文字超出会通过省略号隐藏
  • 通过fixed配置是否将导航栏固定在顶部

说明

  • 在小程序中,导航栏会自动适配导航栏右侧的胶囊位置,避开该区域
  • 组件底部默认有一条下边框,如您不需要,可以设置borderfalse即可
html
<template>
	<view>
		<!-- 2.0.19支持autoBack,默认为false -->
        <up-navbar
            title="个人中心"
            @rightClick="rightClick"
            :autoBack="true"
        >
        </up-navbar>
	</view>
</template>

<script>
    methods:{
        rightClick() {
            console.log('rightClick');
        },
        leftClick() {
            console.log('leftClick');
        }
    }
</script>

注意事项

既然是要自定义导航栏,那么首先就要取消系统自带的导航栏,需要在uni-app目的根目录的"pages.json"中设置,同时在此设置状态栏字体的颜色(H5无效), 自定义导航栏后,如果想通过"uni.setNavigationBarColor"动态设置导航栏颜色相关参数,是可能会出问题的,请勿使用此方式。

js
// pages.json

"pages": [
	// navbar-自定义导航栏
	{
		"path": "/pages/navbar/index",
		"style": {
			"navigationStyle": "custom" ,// 隐藏系统导航栏
			"navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
		}
	}
]

导航栏高度

可以通过height(单位px,默认44,和uni-app统导航栏高度一致)配置导航栏的高度,此高度为导航栏内容的高度,不含状态栏的高度,组件内部会自动 加上状态栏的高度,并填充状态栏的占位区域。

自定义导航栏内容

通过自定义slot传入的内容

html
<template>
	<view>
        <up-navbar
            leftText="返回"
            title="个人中心"
            :safeAreaInsetTop="false"
        >
            <view
                class="u-nav-slot"
                slot="left"
            >
                <up-icon
                    name="arrow-left"
                    size="19"
                ></up-icon>
                <up-line
                    direction="column"
                    :hairline="false"
                    length="16"
                    margin="0 8px"
                ></up-line>
                <up-icon
                    name="home"
                    size="20"
                ></up-icon>
            </view>
        </up-navbar>
	</view>
</template>

自定义导航栏背景颜色

uView提供了一个bgColor参数,可以自定义导航栏的背景颜色:

html
<template>
	<view>
		<up-navbar title="" :bgColor="bgColor">
			
		</up-navbar>
		<view class="content">
			<!-- 正文内容 -->
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				bgColor: '#001f3f',
			}
		}
	}
</script>

此页面源代码地址

页面源码地址


 github  gitee

API

Props

参数说明类型默认值可选值
safeAreaInsetTop是否开启顶部安全区适配Booleantruefalse
placeholder固定在顶部时,是否生成一个等高元素,以防止塌陷Booleanfalsetrue
fixed导航栏是否固定在顶部Booleantruefalse
border导航栏底部是否显示下边框Booleanfalsetrue
leftIcon左边返回图标的名称,只能为uView自带的图标Stringarrow-left-
leftText左边的提示文字String--
rightText右边的提示文字String--
rightIcon右边返回图标的名称,只能为uView自带的图标String--
title导航栏标题,如设置为空字符,将会隐藏标题占位区域String--
bgColor导航栏背景设置String#ffffff-
titleWidth导航栏标题的最大宽度,内容超出会以省略号隐藏,单位rpxString/Number400rpx-
height导航栏高度(不包括状态栏高度在内,内部自动加上),单位pxString/Number44px-
leftIconSize左侧返回图标的大小String/Number20px-
leftIconColor左侧返回图标的颜色String#303133-
autoBack 2.0.19点击左侧区域(返回图标),是否自动返回上一页Booleanfalsetrue
titleStyle 2.0.23标题的样式,对象或字符串形式String/Object--

Event

名称说明类型
leftClick点击左侧区域Handler
rightClick点击右侧区域Handler

注意

App端不存在$slots,插槽slot使用前,需要满足rightIcon或者rightText不为空。


Slot

名称说明
left自定义左侧部分内容
right自定义右侧部分内容
center 2.0.17自定义中部内容

Copyright © 2017 10yun.com | 十云提供计算服务-IPV6 | ctocode组开发