
因为我们可以在胶囊左侧写标题和其他一些东西。这些东西要跟胶囊中线对齐。
首先我们要撑起statusBar的高度,也就是最顶部的那个bar。这个bar的高度很容易取得。
uni.getMenuButtonBoundingClientRect().top取得的是胶囊距离视口顶部的距离,减掉statusBar的高度,就是胶囊离statusBar下沿的距离。这个距离乘以2,加上胶囊自身高度,就是titleBar的高度。
见红色部分。
开发者工具中会有略微错位,无妨,以真机为准。
我们希望胶囊左侧空白区域与胶囊有间距,而且间距最好是等于胶囊到右边边线的距离。这个前提下,左侧空白区域的宽度怎么算?
写成组件就是这样:
用法:
演示如何使用作用域插槽:
app.json 直接配置:
官方文档: 自定义 tabBar
custom-tab-bar/index
在小程序根目录下新建 custom-tab-bar 文件夹,文件夹下建立相应的组件。
wxml 文件:
推荐使用 cover-view + cover-image 组件渲染样式,以保证 tabBar 层级相对较高。不过现在使用 view 也可以,之前是因为使用 map 组件可能会导致无法覆盖,现在 map 组件已经支持同层渲染,所以使用 view 也是没问题的。
js 文件:
tabbar 的配置主要在这里。
因为每个 tab 页下的自定义 tabBar 组件实例是不同的,在跳转新的tab 后,是一个新的 tabbar 实例,先前那个已经被销毁了,所以要重新设置。
在每个自定义的 tab 页面 onShow 方法中,
可见使用系统提供自定义 tabbar 方式不好的地方在于每个 tabbar 页面都要手动设置一遍选中状态。
为什么说是系统自定义的?
因为我们自定义的组件 custom-tab-bar/index 并没有在每个页面的 json 中进行单独配置进行组件的引用,都是系统默认配置好的。
官方文档 Tabbar 。
通过 useExtendedLib 扩展库 的方式引入 weui 组件库。
app.json 配置:
在 tab 页面的 page.json 中引入 tabbar 组件即可:
wxml 使用:
直接将第二种方式 使用系统自定义的方式 custom-tab-bar/index 文件夹及文件移动到 components 自定义组件文件夹中 ,并将 app.json 中的 tabbar 配置删除即可。
在相应的 tab 页面引入自定义 tabbar 组件即可。
屏幕有效区域高度 windowsHeight,需要手动维护,系统不再维护。使用系统的 tabbar,屏幕的有效区域高度 windowsHeight = 屏幕高-状态栏高度-导航条高度-tabbar高度 ;而自定义的 tabbar 则没有计算 tabbar 高度,即 windowsHeight = 屏幕高-状态栏高度-导航条高度 。
微信小程序——配置 以下就是小编对小程序配置的资料进行的系统的整理,希望能对开发者有帮助。 我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。 以下是一个包含了所有配置选项的简单配置app.json : { "pages": ["pages/index/index","pages/logs/index" ], "window": {"navigationBarTitleText": "Demo" }, "tabBar": {"list": [{ "pagePath": "pages/index/index", "text": "首页"}, { "pagePath": "pages/logs/logs", "text": "日志"}] }, "networkTimeout": {"request": 10000,"downloadFile": 10000 }, "debug": true } app.json 配置项列表 属性类型必填描述pagesArray是设置页面路径windowObject否设置默认页面的窗口表现tabBarObject否设置底部 tab 的表现networkTimeoutObject否设置网络超时时间debugBoolean否设置是否开启 debug 模式 pages 接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。 文件名不需要写文件后缀,因为框架会自动去寻找路径.json,.js,.wxml,.wxss的四个文件进行整合。 如开发目录为: pages/ pages/index/index.wxml pages/index/index.js pages/index/index.wxss pages/logs/logs.wxml pages/logs/logs.js app.js app.json app.wxss 则,我们需要在 app.json 中写 { "pages":["pages/index/index""pages/logs/logs" ] } window 用于设置小程序的状态栏、导航条、标题、窗口背景色。 属性类型默认值描述navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如"#000000"navigationBarTextStyleStringwhite导航栏标题颜色,仅支持 black/whitenavigationBarTitleTextString 导航栏标题文字内容backgroundColorHexColor#ffffff窗口的背景色backgroundTextStyleStringdark下拉背景字体、loading 图的样式,仅支持 dark/light 注:HexColor(十六进制颜色值),如"#ff00ff" 如 app.json : { "window":{"navigationBarBackgroundColor": "#ffffff","navigationBarTextStyle": "black","navigationBarTitleText": "微信接口功能演示","backgroundColor": "#eeeeee","backgroundTextStyle": "light" } } tabBar 如果我们的小程序是一个多 tab 应用(客户端窗口的底部有tab栏可以切换页面),那么我们可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。 tabBar 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。 属性说明: 属性类型必填默认值描述colorHexColor是 tab 上的文字默认颜色selectedColorHexColor是 tab 上的文字选中时的颜色backgroundColorHexColor是 tab 的背景色borderStyleString否blacktabbar上边框的颜色, 仅支持 black/whitelistArray是 tab 的列表,详见 list 属性说明,最少2个、最多5个 tab 其中 list 接受一个数组,数组中的每个项都是一个对象,其属性值如下: 属性类型必填说明pagePathString是页面路径,必须在 pages 中先定义textString是tab 上按钮文字iconPathString是图片路径,icon 大小限制为40kbselectedIconPathString是选中时的图片路径,icon 大小限制为40kb networkTimeout 可以设置各种网络请求的超时时间。 属性说明: 属性类型必填说明requestNumber否wx.request的超时时间,单位毫秒connectSocketNumber否wx.connectSocket的超时时间,单位毫秒uploadFileNumber否wx.uploadFile的超时时间,单位毫秒downloadFileNumber否wx.downloadFile的超时时间,单位毫秒 debug 可以在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有Page的注册,页面路由,数据更新,事件触发 。 可以帮助开发者快速定位一些常见的问题。 page.json 每一个小程序页面也可以使用.json文件来对本页面的窗口表现进行配置。 页面的配置比app.json全局配置简单得多,只是设置 app.json 中的 window 配置项的内容,页面中配置项会覆盖 app.json 的 window 中相同的配置项。 页面的.json只能设置 window 相关的配置项,以决定本页面的窗口表现,所以无需写 window 这个键,如: { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black", "navigationBarTitleText": "微信接口功能演示", "backgroundColor": "#eeeeee", "backgroundTextStyle": "light" } 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)