热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

uniapp如何给搜索框设值_uniapp导航栏和状态栏配置

1.导航栏原生导航优点①原生导航的体验更好,渲染新页面时,原生导航栏的渲染无需等待新页面dom加载,可以在新页面进入动画开始时就渲染。②原

1. 导航栏

原生导航优点

① 原生导航的体验更好,渲染新页面时,原生导航栏的渲染无需等待新页面dom加载,可以在新页面进入动画开始时就渲染。

② 原生导航还可以避免滚动条通顶,并方便的控制原生下拉刷新。通过pages.json的配置,可以简单的、跨端的、高性能的开发业务。

原生导航缺点:原生导航栏的扩展能力有限的。尤其是微信下,没有提供太多导航栏的配置。

1.1 原生导航栏—通用配置

uni-app 自带原生导航栏,在pages.json里配置。参考官网uni-app导航栏开发指南。

(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**节点来配置各个参数(通用配置,小程序、app、h5均生效)。参考style设置每个页面的状态栏、导航条、标题、窗口背景色等

{

"path": "pages/index/index",

"style": {

"navigationBarTitleText": "主页",

}

},

备注:单页面style中配置项会覆盖 globalStyle 中相同的配置项。

1.2 全局取消原生导航栏

备注:一般App里不会使用这个参数配置,建议个别页面单独设置不使用原生导航。

方法:在pages.json的globalStyle里有个navigationStyle设置,默认是default,即带有原生导航栏;将navigationStyle设为custom后,所有页面都没有原生导航。

"globalStyle": {

"navigationStyle": "custom",

},

注意:但在微信小程序里,右上角始终都有一个胶囊按钮。很多微信小游戏界面上也没原生导航栏,但有胶囊按钮。

1.3 单页面去除原生导航栏

(1) 方法1:自微信客户端 7.0.0 起、App端HBuilderX 2.0.3起,可采用将navigationStyle 设为 custom 的方法去除单个页面的原生导航栏(但小程序右上角胶囊按钮仍然去不掉)。

{

"path" : "pages/index/index",

"style" : {

"navigationStyle":"custom"

}

}

(2) 方法2:除了上述方法,也可在app-plus节点下设置titleView为false的方法来去除系统原生导航(在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 //不启用系统导航

}

}

}

问题:HBuilderX创建的应用默认使用沉浸式状态栏样式,去除导航栏后,页面顶部会直通到状态栏的区域。

1.4 解决去除导航栏后,页面顶部直通状态栏区域的问题。

(1) 最简单的解决方式就是配置mainfest.json来关闭沉浸式。即通过打开应用的manifest.json文件,切换到代码视图,在app-plus -> statusbar 下添加immersed节点并设为false。

"app-plus" : {

"statusbar": {

"immersed": false

},

}

(2) 其次可通过顶部状态栏占位的方式来解决页面顶部直通状态栏区域的问题。

当设置 "navigationStyle":"custom" 取消原生导航栏后,由于窗体为沉浸式,占据了状态栏位置。此时可以使用一个高度为 var(--status-bar-height) 的 view 放在页面顶部,同时需使用plus.navigator.getStatusbarHeight()来动态计算系统状态栏的高度barHeight,然后设置页面主view的样式:style="{'margin-top':barHeight+'px'}",来避免页面内容出现在状态栏。

扫码

统计

退出

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();

}

}

备注:此种方式经测试,有时页面打开后页面主视图和状态栏区域会留白(留白的高度其实是状态栏高度)。

留白.png

(3) 若对状态栏没有要求,可直接隐藏状态栏,参考下文隐藏状态栏的方法。

1.5 其他拓展功能样式

(1) 可参考Hello-UniApp的自定义导航栏示例

新建hello uni-app项目.png

自定义导航栏示例.png

(2) 也可参考ColorUI的自定义导航示例

ColorUI-UniApp.png

2. 状态栏

2.1 改变状态栏样式—改变状态栏文字颜色

① 方案一(起效):设置该页面或全局的 navigationBarTextStyle 属性,可取值为 black/white。

{

"path" : "pages/tabBar/user/user",

"style" : {

"app-plus":{

"titleNView":false //不启用系统导航

},

"navigationBarTextStyle":"white"//设置页面导航和状态栏文字颜色

}

}

"globalStyle": {

"navigationBarTextStyle": "white",//全局设置导航和状态栏文字颜色

"navigationBarTitleText": "杰克缝纫机",

"navigationBarBackgroundColor": "#00a9e2",

"backgroundColor": "#FFFFFF"

},

② 方案二(未起效):如果想单独设置颜色,App端可使用plus.navigator.setStatusBarStyle设置,可取值为 dark/light。部分低端Android手机(如Android4.4)自身不支持设置状态栏前景色。

// #ifdef APP-PLUS

//可取值: "dark":深色前景色样式(即状态栏前景文字为黑色),此时background建议设置为浅颜色; "light":浅色前景色样式(即状态栏前景文字为白色),此时background建设设置为深颜色;

plus.setStatusBarStyle("light");

// #endif

2.2 改变状态栏样式—改变状态栏背景颜色

通过绘制一个占位的view固定放在状态栏位置,设置此view的背景颜色,即可达到想要的效果,uni-app提供了一个状态栏高度的css变量,具体参考uni-app内置的CSS变量。

export default {

data() {

return {

}

},

methods: {

}

}

.status_bar {

height: var(--status-bar-height);

width: 100%;

background-color: #F8F8F8;

}

.top_view {

height: var(--status-bar-height);

width: 100%;

position: fixed;

background-color: #F8F8F8;

top: 0;

z-index: 999;

}

var(--status-bar-height) :此变量在微信小程序环境为固定 25px,在 5+App 里为手机实际状态栏高度。

2.3 隐藏状态栏

(1) 单个页面隐藏

页面onLoad() 函数中添加

// #ifdef APP-PLUS

plus.navigator.setFullscreen(true);

// #endif

页面onUnload() 函数中添加

// #ifdef APP-PLUS

plus.navigator.setFullscreen(false);

// #endif

备注:若在页面unLoad() 时未调用plus.navigator.setFullscreen(false);,将导致退出当前页面后其他所有页面的状态栏也都被隐藏了。

(2) 整个应用隐藏

App.vue中 onLaunch() 函数中添加

// #ifdef APP-PLUS

plus.navigator.setFullscreen(true);//隐藏状态栏(应用全屏:只能隐藏状态栏,标题栏和虚拟返回键都还可以显示)

// #endif



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
author-avatar
bakurei_492
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有