鸿蒙next软件开发:tabContent/tabBar上显示并响应滑动事件案例

介绍

本示例实现了tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。

效果图预览

使用说明

  • 点击播放按钮进行视频播放,按住进度条按钮和进度条下方区域可以拖动进度条,更改视频播放进度。

实现思路

原生的Tabs组件,tabContent内容无法在tabBar上显示。本案例实现tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能 主要是通过将Tabs组件的barHeight设置为0,重新自定义tabBar。 将TabContent的内容分为上下两部分,上半部高度为100% - 60vp,存放video组件, 下部分高度为60vp,存放进度条。将Tabs组件的zIndex属性设置为2,tabContent的视图就可以堆叠在自定义tabBar之上。再设置hitTestBehavior属性 使被覆盖的tabBar可以响应点击事件。这样就实现tabBar可以响应滑动事件并且tabBar可以响应点击事件的效果。

Tabs({ index: this.index, controller: this.tabsController }) {
   ...
}
// TODO: 知识点:将zIndex设置为2,TabContent将在tabBar之上,显示的效果就是TabContent外溢的部分在tabBar上。
.zIndex(CONFIGURATION.TABCONTENTOVERFLOWZINDEX)
.scrollable(false)
.barHeight($r('app.integer.tabcontentoverflow_tabs_barheight'))
.animationDuration(CONFIGURATION.T
{ // "pages": [ // // 主包保留核心页面 // { "path": "pages/tabbar/login/login" }, // { "path": "pages/tabbar/index/index" }, // { "path": "pages/tabbar/userInfo/user-info" } // ], // "subPackages": [ // { // "root": "subpackage/storage", // "pages": [ // { "path": "new-order" }, // { "path": "select-order-list" }, // { "path": "select-goods-order" }, // { "path": "order-list" }, // { "path": "order-info" }, // { "path": "outBound-operation" } // ] // }, // { // "root": "subpackage/authority", // "pages": [ // { "path": "authority-management" }, // { "path": "menu-management" }, // { "path": "role-management" }, // { "path": "user-management" } // ] // } // ] "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { "path": "pages/tabbar/login/login", "style": { } }, { "path": "pages/tabbar/index/index", "style": { } }, { "path": "pages/tabbar/userInfo/user-info", "style": { } }, // { // "path": "pages/tabbar/storageManagement/new-order", // "style": { // } // }, // { // "path": "pages/tabbar/storageManagement/select-order-list", // "style": { // } // }, // { // "path": "pages/tabbar/storageManagement/select-goods-order", // "style": { // } // }, { "path": "pages/tabbar/login/account-binding", "style": { } }, { "path": "pages/tabbar/storageManagement/order-list", "style": { } }, { "path": "pages/tabbar/storageManagement/order-info", "style": { } }, {"path": "pages/tabbar/authorityManagement/authority-management", "style": { } }, {"path": "pages/tabbar/authorityManagement/menu-management", "style": { } }, {"path": "pages/tabbar/authorityManagement/role-management", "style": { } }, {"path": "pages/tabbar/authorityManagement/user-management", "style": { } }, {"path": "pages/tabbar/storageManagement/outBound-operation", "style": { } }, { "path": "pages/tabbar/login/weixin-get-userinfo", "style": { "navigationBarTitleText": "" } }], "subPackages": [ { "root": "pages/tabbar/storageManagement", "pages": [ { "path": "new-order", "style": {} }, { "path": "select-goods-order", "style": {} }, { "path": "select-order-list", "style": {} } ] } ], "preloadRule": { "pages/tabbar/index/index": { "network": "all", "packages": ["pages/tabbar/storageManagement"] } }, ], //全局样式 "globalStyle": { "navigationBarTextStyle": "black", //导航栏样式 "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "app-plus":{ "titleNView": false, "scrollIndicator":"none" //取消滚动条 } } } app.json: ["pages"][4]: "pages/tabbar/storageManagement/order-list" Should not exist in ["subPackages"][0] ["pages"][5]: "pages/tabbar/storageManagement/order-info" Should not exist in ["subPackages"][0] ["pages"][10]: "pages/tabbar/storageManagement/outBound-operation" Should not exist in ["subPackages"][0]
最新发布
12-31
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值