? ?的uniapp学习之? 【tabBar】
2023-02-25 18:16:29 时间
「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」
这是官网描述的:✈️
- 当设置 position 为 top 时,将不会显示 icon
- tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
- tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的onLoad生命周期里先弹出一个等待雪花(hello uni-app使用了此方式)
- tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。
- 顶部的 tabbar 目前仅微信小程序上支持。需要用到顶部选项卡的话,建议不使用 tabbar 的顶部设置,而是自己做顶部选项卡,可参考 hello uni-app->模板->顶部选项卡。 fontSize 修改字体大小 list 其中list是一个数组,数组中又是对象,对象的iconPath属性对应着我们要使用图标的路径。并且对这个图片有如下要求:icon 大小限制为40kb,建议尺寸为 81px * 81px,当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标 midButton
- 这个属性是中间的凸出按钮,因为上面提到过tabBar最少配置两个、最多五个。
- 我们把midButton配置项加到了list后面,它们两个是同级的。
- 当list(list中不需要把midButton的内容再写一遍)中有2或4项的时候(加上midButton是奇数项)的时候,这个中间按钮就会被加到中间。否则不显示。
- tabBar是有默认高度的,我们最好还是给它定义高度,如果想要让midbutton凸出,那就需要midbutton的高度高于tabBar的高度。同时图标大小iconWidth也要大一些
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#007AFF",
"borderStyle": "#f7fcfe",
"spacing":"1px",
"position":"bottom",
"backgroundColor": "#f7fcfe",
// "fontSize": "15px",
"list": [{
"pagePath": "pages/tabBar/Home/Home",
// "iconPath": "static/component.png",
// "selectedIconPath": "static/componentHL.png",
"text": "首页"
},
{
"pagePath": "pages/tabBar/component/component",
"iconPath": "static/component.png",
"selectedIconPath": "static/componentHL.png",
"text": "内置组件"
},
{
"pagePath": "pages/tabBar/extUI/extUI",
"iconPath": "static/extui.png",
"selectedIconPath": "static/extuiHL.png",
"text": "扩展组件"
}, {
"pagePath": "pages/tabBar/template/template",
"iconPath": "static/template.png",
"selectedIconPath": "static/templateHL.png",
"text": "模板"
}
],
"midButton": {
"pagePath": "pages/tabBar/API/API",
"iconPath": "static/icon/record.png",
"width": "70px",
"height": "69px",
"iconWidth": "50px",
"text": "发布"
}
}
图片可以去iconfont中下载✈️ [?]图片大小最好80*80 并且不大于40kb 看一下效果
如果不需要图标,去掉此配置项即可。
midButton跳转
App.vue文件夹中加入监听事件
- 其中onLaunch是初始化的生命周期、
- uni.onTabBarMidButtonTap是MidButton的的监听事件。
- uni.navigateTo是路由跳转(注意路由最前面一定要用 / )
- onShow是进入前端时的生命周期
- onHide是从前端进入后端的生命周期
<script>
export default {
// 初始化生命周期
onLaunch: function() {
// 监听事件
uni.onTabBarMidButtonTap(() => {
// 注意路由带 /
uni.navigateTo({
url: '/pages/publish/publish',
});
})
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
现在点击按钮就会跳转。这个跳转的路由对应的页面一定要在pages.json中的page配置项中注册。
相关文章
- Android Activity Deeplink启动来源获取源码分析
- Android构建工具--AAPT2源码解析(一)
- Android模块化开发实践
- 手把手教你实现Android编译期注解
- 打通“任督二脉”:Android 应用安装优化实战
- Android系统Bitmap内存分配原理与优化
- Android客户端网络预连接优化机制探究
- Android内存泄露检测 LeakCanary2.0(Kotlin版)的实现原理
- 存量用户运营企业微信的“用户端小程序”优化方案
- 一文帮你搞懂 Android 文件描述符
- Android NativeCrash 捕获与解析
- axios的简单使用
- IDEA整合Android
- 羊了个羊逆天改命过关法!PC小程序抓包教程
- AndroidQ兼容性适配指南
- AndroidR兼容性适配指南
- Android代码静态检查(lint、Checkstyle、ktlint、Detekt)
- 开发时遇到监听的事件处理机制和SoundPool播放音效解决方法以及外部类的使用【Android】
- 深入学习Android
- 基于Axios封装HTTP类库