导航栏
(1) 全局导航栏样式设置: 在pages.json的globalStyle
里进行各个参数配置
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "Hello uniapp",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"backgroundColorTop": "#F4F5F6",
"backgroundColorBottom": "#F4F5F6",
"mp-alipay": {
"titleBarColor": "#FFFFFF"
}
},
(2) 单页面导航栏样式设置:在每个page下面的
style
配置中添加navigationBar来配置各个参数
{
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",//设置页面标题文字
"enablePullDownRefresh":true//开启下拉刷新
}
},
...
]
}
transparentTitle(透明):always 一直透明 / auto 滑动自适应 / none 不透明【支付宝小程序、H5、APP】
titleImage(图片导航栏):导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址【支付宝小程序、H5】
(3) 全局取消原生导航栏(小程序端胶囊仍存在)
"globalStyle": {
"navigationStyle": "custom",
},
(4)单页面去除原生导航栏(小程序端胶囊仍存在) ·方法1 直接隐藏导航栏
{
"path" : "pages/index/index",
"style" : {
"navigationStyle":"custom"
}
}
·方法2 去除app端导航栏
原生导航栏在App侧的扩展
- 微信小程序的设计里,没有给原生导航提供太多自定义能力,在开发App时是不够用的。
- 在App下,每个page下面的style下面还有一个子扩展节点:app-plus(这个节点定义了在5+App环境下,也即iOS、Android环境下,增强的配置)。app-plus下可以设置titleNView等更多参数,可以得到比微信小程序更丰富的扩展性。另外,开发者也可以在必要时取消原生导航栏,使用view自行绘制导航栏。
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "主页",
// "navigationStyle":"custom",
"app-plus":{
"titleView":false//不启用系统导航
}
}
}
状态栏 (1)解决去除原生导航栏之后页面通顶的问题 ·方法1 在
app-plus -> statusbar 下添加immersed节点并设为false
"app-plus" : {
"statusbar": {
"immersed": false
},
}
·方法2 顶部状态栏占位
【uniapp|【自用整理】Uniapp导航栏&状态栏】当设置 "navigationStyle":"custom" 取消原生导航栏后,由于窗体为沉浸式,占据了状态栏位置。此时可以使用一个高度为 var(--status-bar-height) 的 view 放在页面顶部,同时需使用-viewplus.navigator.getStatusbarHeight()
来动态计算系统状态栏的高度barHeight,然后设置页面主view的样式:style="{'margin-top':barHeight+'px'}",
来避免页面内容出现在状态栏。
-script
var _self;
export default {
components: {
uniPopup,
},
data() {
return {
barHeight:25,
}
},
methods: {
//获取系统状态栏高度
getSystemStatusBarHeight:function(){
// #ifdef APP-PLUS
var height = plus.navigator.getStatusbarHeight();
_self.barHeight = height;
// #endif
// #ifdef H5
_self.barHeight = 0;
// #endif
},
},
onLoad:function(){
_self = this;
_self.getSystemStatusBarHeight();
}
}
·方法3 隐藏状态栏
-单个页面隐藏
onLoad(){
// #ifdef APP-PLUS
plus.navigator.setFullscreen(true);
// #endif
},
onUnload(){
/ #ifdef APP-PLUS
plus.navigator.setFullscreen(false);
// #endif
}
备注:若在页面unLoad() 时未调用-所有页面隐藏plus.navigator.setFullscreen(false);
,将导致退出当前页面后其他所有页面的状态栏也都被隐藏了。
// #ifdef APP-PLUS
plus.navigator.setFullscreen(true);
// #endif
备注:只能隐藏状态栏,标题栏和虚拟返回键都还可以显示(2) 改变导航栏颜色
{
"pages": [
"path" : "pages/tabBar/user/user",
"style" : {
"app-plus":{
"titleNView":false //不启用系统导航
},
"navigationBarTextStyle":"white"//设置页面导航和状态栏文字颜色
}
],"globalStyle": {
"navigationBarTextStyle": "white",//全局设置导航和状态栏文字颜色
"navigationBarTitleText": "标题",
"navigationBarBackgroundColor": "#000000",
"backgroundColor": "#FFFFFF"
},
}
备注:部分安卓手机不支持(3)改变状态栏背景颜色 无法直接更改,可以去掉原生状态栏 使用一个占位
var(--status-bar-height) :此变量在微信小程序环境为固定 25px,在 5+App 里为手机实际状态栏高度。
推荐阅读
- uniapp|uniapp和小程序如何分包,详细步骤手把手(图解)
- 学习笔记|uni-app开发小程序
- uni-app开发(四)(项目实战之仿糗百搜索页)
- uni-app开发(二)(基础组件及样式)
- uni-app开发(三)(项目实战之仿糗百首页)
- uni-app开发(一)(准备工作及环境配置)
- view里面内容左对齐或者右对齐
- uniapp 输入对话框 漂亮
- 小程序|关于uniapp回到顶部-支持小程序与H5