赞
踩
基础库 2.5.0 开始支持,低版本需做兼容处理。
自定义 tabBar 可以让开发者更加灵活地设置 tabBar 样式,以满足更多个性化的场景。
在自定义 tabBar 模式下
getTabBar
接口,获取当前页面的自定义 tabBar 组件实例。注意:如需实现 tab 选中态,要在当前页面下,通过 getTabBar 接口获取组件实例,并调用 setData 更新选中态。可参考底部的代码示例。
app.json
中的 tabBar
项指定 custom
字段,同时其余 tabBar
相关配置也补充完整。usingComponents
项,也可以在 app.json
全局开启。示例:
- {
- "tabBar": {
- "custom": true,
- "color": "#000000",
- "selectedColor": "#000000",
- "backgroundColor": "#000000",
- "list": [{
- "pagePath": "page/component/index",
- "text": "组件"
- }, {
- "pagePath": "page/API/index",
- "text": "接口"
- }]
- },
- "usingComponents": {}
- }
在代码根目录下添加入口文件:
- custom-tab-bar/index.js
- custom-tab-bar/index.json
- custom-tab-bar/index.wxml
- custom-tab-bar/index.wxss
用自定义组件的方式编写即可,该自定义组件完全接管 tabBar 的渲染。另外,自定义组件新增 getTabBar
接口,可获取当前页面下的自定义 tabBar 组件实例。
使用 skyline 渲染模式的时候,需要进行如下适配:
pointer-events: auto
position: absolute
- <view class="tab-bar">
- <!-- tabbar item-->
- </view>
- .tab-bar {
- pointer-events: auto;
- position: absolute;
- }
skyline 模式下,页面/组件上的 getTabBar
接口为异步回调的方式获取 tabBar 实例
- Page({
- getInstance() {
- if (typeof this.getTabBar === 'function' ) {
- this.getTabBar((tabBar) => {
- tabBar.setData({
- selected: 0
- })
- })
- }
- }
- })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。