国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。

這篇具有很好參考價值的文章主要介紹了OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

介紹

本示例實現(xiàn)了tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。

效果圖預(yù)覽

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)
使用說明

1.點擊播放按鈕進(jìn)行視頻播放,按住進(jìn)度條按鈕和進(jìn)度條下方區(qū)域可以拖動進(jìn)度條,更改視頻播放進(jìn)度。

實現(xiàn)思路

原生的Tabs組件,tabContent內(nèi)容無法在tabBar上顯示。本案例實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能 主要是通過將Tabs組件的barHeight設(shè)置為0,重新自定義tabBar。 將TabContent的內(nèi)容分為上下兩部分,上半部高度為100% - 60vp,存放video組件, 下部分高度為60vp,存放進(jìn)度條。將Tabs組件的zIndex屬性設(shè)置為2,tabContent的視圖就可以堆疊在自定義tabBar之上。再設(shè)置hitTestBehavior屬性 使被覆蓋的tabBar可以響應(yīng)點擊事件。這樣就實現(xiàn)tabBar可以響應(yīng)滑動事件并且tabBar可以響應(yīng)點擊事件的效果。

1.創(chuàng)建Tabs組件,將barHeight設(shè)置為0。

Tabs({ index: this.index, controller: this.tabsController }) {
   ...
}
// TODO: 知識點:將zIndex設(shè)置為2,TabContent將在tabBar之上,顯示的效果就是TabContent外溢的部分在tabBar上。
.zIndex(CONFIGURATION.TABCONTENTOVERFLOWZINDEX)
.scrollable(false)
.barHeight($r('app.integer.tabcontentoverflow_tabs_barheight'))
.animationDuration(CONFIGURATION.TABCONTENTOVERFLOWTABSDURATION)
.onChange((index: number) => {
   this.index = index;
})
// TODO: 知識點:hitTestBehavior屬性可以實現(xiàn)在復(fù)雜的多層級場景下,一些組件能夠響應(yīng)手勢和事件,而一些組件不能響應(yīng)手勢和事件。HitTestMode.Transparent的效果為,自身響應(yīng)觸摸測試,不會阻塞兄弟節(jié)點的觸摸測試。
.hitTestBehavior(HitTestMode.Transparent)
.id('tabs')
.alignRules({
   top: { anchor: STRINGCONFIGURATION.TABCONTENTOVERFLOWCONTAINER, align: VerticalAlign.Top },
   left: { anchor: STRINGCONFIGURATION.TABCONTENTOVERFLOWCONTAINER, align: HorizontalAlign.Start },
})

2.創(chuàng)建自定義tabBar。

Row() {
   ForEach(this.tabArray, (item: string, index: number) => {
      Column() {
         Image(this.index === index ? $r(this.imageClickArray[index]) : $r(this.imageArray[index]))
            .width($r('app.integer.tabcontentoverflow_row_column_image_width'))
            .height($r('app.integer.tabcontentoverflow_row_column_image_height'))
         Text($r(item))
            .fontSize($r('app.integer.tabcontentoverflow_row_column_text_font_size'))
            .fontColor(this.index === index ? $r('app.color.tabcontentoverflow_click_color') : $r('app.color.tabcontentoverflow_white'))
      }
      .width($r('app.integer.tabcontentoverflow_row_column_width'))
         .margin({ top: $r('app.integer.tabcontentoverflow_margin_samll') })
         // 為將底部視圖擴(kuò)展到非安全區(qū)域,可將原本60vp的高度設(shè)置為100vp。
         .height($r('app.integer.tabcontentoverflow_row_column_height'))
         .onClick(() => {
            this.index = index;
            this.tabsController.changeIndex(this.index);
         })
   })
 }
 .offset({
    y: $r('app.integer.tabcontentoverflow_row_offset')
 })
 .width($r('app.string.tabcontentoverflow_full_size'))
 // 擴(kuò)展至所有非安全區(qū)域
 .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM])
 .backgroundColor($r('app.color.tabcontentoverflow_row_background'))
 .justifyContent(FlexAlign.SpaceAround)
 .id(STRINGCONFIGURATION.TABCONTENT_OVERFLOW_TABBAR)
 .alignRules({
    top: { anchor: STRINGCONFIGURATION.TABCONTENT_OVERFLOW_CONTAINER, align: VerticalAlign.Bottom },
    left: { anchor: STRINGCONFIGURATION.TABCONTENT_OVERFLOW_CONTAINER, align: HorizontalAlign.Start },
 })

3.將TabContent的內(nèi)容分為上下兩部分,上半部高度為100% - 60vp,存放video組件,下部分高度為60vp,存放進(jìn)度條,設(shè)置滑動手勢響應(yīng)事件。

RelativeContainer()
{
   Video({
      ...
   })
   .height($r('app.string.tabcontentoverflow_video_height'))
   ...
   
   RelativeContainer() {
   Text()
      ...
   Text()
      ...
   Text()
      ...
}
.id(STRINGCONFIGURATION.TABCONTENT_OVERFLOW_RELATIVE_CONTAINER)
.alignRules({
   top: { anchor: STRINGCONFIGURATION.TABCONTENT_OVERFLOW_VIDEO, align: VerticalAlign.Bottom },
   left: { anchor: STRINGCONFIGURATION.TABCONTENT_OVERFLOW_CONTAINER, align: HorizontalAlign.Start },
})
.width(this.screenW)
.height($r('app.integer.tabcontentoverflow_tabbar_height'))
// 左右拖動觸發(fā)該手勢事件
.gesture(
   PanGesture(this.panOption)
      .onActionStart(() => {
         ...
      })
      /**
       * TODO: 性能知識點: onActionUpdate是系統(tǒng)高頻回調(diào)函數(shù),避免在函數(shù)中進(jìn)行冗余或耗時操作,例如應(yīng)該減少或避免在函數(shù)打印日志,會有較大的性能損耗。
       * 合理使用系統(tǒng)接口,避免冗余操作:https://gitee.com/harmonyos-cases/cases/blob/master/docs/performance/README.md
       */
      .onActionUpdate((event: GestureEvent) => {
         ...
      })
      .onActionEnd(() => {
         ...
      })
)
}

4.將Tabs組件的zIndex屬性設(shè)置為2,tabContent的視圖就可以堆疊在自定義tabBar之上。

Tabs({ index: this.index, controller: this.tabsController }) {
   TabContent() {
      ...
   }
   ...

   TabContent() {
      this.videoTabContent();
   }

   TabContent() {
      ...
   }
   ...

   TabContent() {
      ...
   }
   ...
}
// TODO: 知識點:將zIndex設(shè)置為2,TabContent將在tabBar之上,顯示的效果就是TabContent外溢的部分在tabBar上。
.zIndex(CONFIGURATION.TABCONTENT_OVERFLOW_ZINDEX)
...

5.再設(shè)置hitTestBehavior屬性使被覆蓋的自定義的tabBar可以響應(yīng)點擊事件。

Tabs({ index: this.index, controller: this.tabsController }) {
   ...
}
// TODO: 知識點:hitTestBehavior屬性可以實現(xiàn)在復(fù)雜的多層級場景下,一些組件能夠響應(yīng)手勢和事件,而一些組件不能響應(yīng)手勢和事件。HitTestMode.Transparent的效果為,自身響應(yīng)觸摸測試,不會阻塞兄弟節(jié)點的觸摸測試。
.hitTestBehavior(HitTestMode.Transparent)

工程結(jié)構(gòu)&模塊類型

   dragtoswitchpictures                             // har包
   |---common
   |   |---Constants.ets                            // 常量類
   |---mainpage
   |   |---TabContentOverFlow.ets                   // 主頁面
   |---view
   |   |---Side.ets                                 // 視頻信息以及頂部視圖

模塊依賴

routermodule

utils

高性能知識點

本例使用了onActionUpdate函數(shù)。該函數(shù)是系統(tǒng)高頻回調(diào)函數(shù),避免在函數(shù)中進(jìn)行冗余或耗時操作,例如應(yīng)該減少或避免在函數(shù)打印日志,會有較大的性能損耗。

界面嵌套帶來了渲染和計算的大量開銷,造成性能的衰退。本例使用扁平化布局優(yōu)化嵌套層級,建議采用相對布局RelativeContainer進(jìn)行扁平化布局,有效減少容器的嵌套層級,減少組件的創(chuàng)建時間。

如果大家還沒有掌握鴻蒙,現(xiàn)在想要在最短的時間里吃透它,我這邊特意整理了《鴻蒙語法ArkTS、TypeScript、ArkUI等…視頻教程》以及《鴻蒙開發(fā)學(xué)習(xí)手冊》(共計890頁),希望對大家有所幫助:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

鴻蒙語法ArkTS、TypeScript、ArkUI等…視頻教程:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)

OpenHarmony APP開發(fā)教程步驟:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)

《鴻蒙開發(fā)學(xué)習(xí)手冊》:

如何快速入門:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.構(gòu)建第一個ArkTS應(yīng)用
3.……

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)

開發(fā)基礎(chǔ)知識:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.應(yīng)用基礎(chǔ)知識
2.配置文件
3.應(yīng)用數(shù)據(jù)管理
4.應(yīng)用安全管理
5.應(yīng)用隱私保護(hù)
6.三方應(yīng)用調(diào)用管控機(jī)制
7.資源分類與訪問
8.學(xué)習(xí)ArkTS語言
9.……

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)

基于ArkTS 開發(fā):https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability開發(fā)
2.UI開發(fā)
3.公共事件與通知
4.窗口管理
5.媒體
6.安全
7.網(wǎng)絡(luò)與鏈接
8.電話服務(wù)
9.數(shù)據(jù)管理
10.后臺任務(wù)(Background Task)管理
11.設(shè)備管理
12.設(shè)備使用信息統(tǒng)計
13.DFX
14.國際化開發(fā)
15.折疊屏系列
16.……

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)

鴻蒙生態(tài)應(yīng)用開發(fā)白皮書V2.0PDF:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。,鴻蒙,OpenHarmony,HarmonyOS,harmonyos,HarmonyOS,OpenHarmony,華為,鴻蒙,鴻蒙開發(fā),鴻蒙應(yīng)用開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-857107.html

到了這里,關(guān)于OpenHarmony實戰(zhàn)開發(fā)-如何實現(xiàn)tabContent內(nèi)容可以在tabBar上顯示并且tabBar可以響應(yīng)滑動事件的功能。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 鴻蒙開發(fā)實戰(zhàn)-OpenHarmony之天氣應(yīng)用

    鴻蒙開發(fā)實戰(zhàn)-OpenHarmony之天氣應(yīng)用

    功能描述: 通過請求免費API獲取指定城市七天內(nèi)相關(guān)天氣信息 開發(fā)環(huán)境: IDE:DEV ECO 4.0.600 SDK:4.0.10.15 開發(fā)板:DAYU200 4.0.10.16 一. 創(chuàng)建項目,調(diào)試環(huán)境 1.創(chuàng)建項目 2.選擇OpenHarmony、API10 3.連網(wǎng)條件下加載依賴 4.在開發(fā)板上簽名,運行HelloWorld測試環(huán)境 直接運行,然后點擊log報錯直

    2024年02月21日
    瀏覽(12)
  • OpenHarmony開發(fā)實戰(zhàn):深入了解開發(fā)版-RK3568

    OpenHarmony開發(fā)實戰(zhàn):深入了解開發(fā)版-RK3568

    RK3568開發(fā)板基于Rockchip RK3568芯片,集成雙核心架構(gòu)GPU以及高效能NPU;搭載四核64位Cortex-A55處理器,采用22nm先進(jìn)工藝,主頻高達(dá)2.0GHz;支持藍(lán)牙、Wi-Fi、音頻、視頻和攝像頭等功能,擁有豐富的擴(kuò)展接口,支持多種視頻輸入輸出接口;配置雙千兆自適應(yīng)RJ45以太網(wǎng)口,可滿足NV

    2024年04月29日
    瀏覽(95)
  • OpenHarmony開發(fā)實戰(zhàn):電子相冊(ArkTS)

    OpenHarmony開發(fā)實戰(zhàn):電子相冊(ArkTS)

    本篇Codelab介紹了如何實現(xiàn)一個簡單的電子相冊應(yīng)用的開發(fā),主要功能包括: 實現(xiàn)首頁頂部的輪播效果。 實現(xiàn)頁面跳轉(zhuǎn)時共享元素的轉(zhuǎn)場動畫效果。 實現(xiàn)通過手勢控制圖片的放大、縮小、左右滑動查看細(xì)節(jié)等效果。 相關(guān)概念 Swiper:滑塊視圖容器,提供子組件滑動輪播顯示的

    2024年04月28日
    瀏覽(25)
  • OpenHarmony開發(fā)實戰(zhàn):簡易計算器(ArkTS)

    OpenHarmony開發(fā)實戰(zhàn):簡易計算器(ArkTS)

    本篇Codelab基于基礎(chǔ)組件、容器組件,實現(xiàn)一個支持加減乘除混合運算的計算器。 ? 說明: ?由于數(shù)字都是雙精度浮點數(shù),在計算機(jī)中是二進(jìn)制存儲數(shù)據(jù)的,因此小數(shù)和非安全整數(shù)(超過整數(shù)的安全范圍[-Math.pow(2, 53),Math.pow(2, 53)]的數(shù)據(jù))在計算過程中會存在精度丟失的情況

    2024年04月29日
    瀏覽(30)
  • OpenHarmony實戰(zhàn)開發(fā)-List組件的使用之設(shè)置項

    OpenHarmony實戰(zhàn)開發(fā)-List組件的使用之設(shè)置項

    在本篇CodeLab中,我們將使用List組件、Toggle組件以及Router接口,實現(xiàn)一個簡單的設(shè)置頁,點擊將跳轉(zhuǎn)到對應(yīng)的詳細(xì)設(shè)置頁面。效果圖如下: @CustomDialog:@CustomDialog裝飾器用于裝飾自定義彈窗。 List:List是常用的滾動類容器組件之一,它按照水平或者豎直方向線性排列子組件,

    2024年04月14日
    瀏覽(22)
  • OpenHarmony開發(fā)實戰(zhàn):為應(yīng)用添加運行時權(quán)限(ArkTS)

    OpenHarmony開發(fā)實戰(zhàn):為應(yīng)用添加運行時權(quán)限(ArkTS)

    通過AbilityAccessCtrl動態(tài)向用戶申請“允許不同設(shè)備間的數(shù)據(jù)交換”的權(quán)限,使用設(shè)備管理實例獲取周邊不可信設(shè)備列表。 說明: ?查詢周邊不可信設(shè)備之前,請確保本設(shè)備與周邊設(shè)備未進(jìn)行配對。如果已配對,則恢復(fù)出廠設(shè)置之后重新查詢。 相關(guān)概念 訪問控制權(quán)限申請:應(yīng)

    2024年04月23日
    瀏覽(32)
  • OpenHarmony開發(fā)實戰(zhàn):switch、chart組件的使用(JS)

    OpenHarmony開發(fā)實戰(zhàn):switch、chart組件的使用(JS)

    本篇文章基于switch組件和chart組件,實現(xiàn)線形圖、占比圖、柱狀圖,并通過switch切換chart組件數(shù)據(jù)的動靜態(tài)顯示。要求實現(xiàn)以下功能: 實現(xiàn)靜態(tài)數(shù)據(jù)可視化圖表。 打開開關(guān),實現(xiàn)靜態(tài)圖切換為動態(tài)可視化圖表。 相關(guān)概念 switch組件:開關(guān)選擇器,通過開關(guān),開啟或關(guān)閉某個功

    2024年04月11日
    瀏覽(42)
  • OpenHarmony開發(fā)實戰(zhàn):ArkUI常用布局容器對齊方式(ArkTS

    OpenHarmony開發(fā)實戰(zhàn):ArkUI常用布局容器對齊方式(ArkTS

    export struct ColumnShowList { @Consume currentColumnJustifyContent: FlexAlign; @Consume currentColumnAlignItems: HorizontalAlign; build() { Column() { Column() { ForEach(LIST, (item: number) = { CommonItem({ item: item }) }, (item: number) = JSON.stringify(item)) } … // 設(shè)置主軸對齊方式 ColumnMainAlignRadioList() .margin({ top: MARGIN_FONT_SIZE_SP

    2024年04月14日
    瀏覽(29)
  • OpenHarmony實戰(zhàn):RK3568 開發(fā)板鏡像燒錄指南

    OpenHarmony實戰(zhàn):RK3568 開發(fā)板鏡像燒錄指南

    燒錄開發(fā)板是每個開發(fā)者的必修課,每次對系統(tǒng)的修改務(wù)必進(jìn)行燒錄測試,確保修改正確和不會引入新問題。 本文基于 Windows10,以 RK3568 開發(fā)板為例,指導(dǎo)如何燒錄 OpenHarmony 鏡像,鏡像也叫固件。Hihoop(潤和)是開發(fā)板集成商,Dayu200 是開發(fā)板型號,RK3568(瑞芯微)是芯片型

    2024年04月28日
    瀏覽(87)
  • OpenHarmony開發(fā)實戰(zhàn):List組件的使用之商品列表(ArkTS)

    OpenHarmony開發(fā)實戰(zhàn):List組件的使用之商品列表(ArkTS)

    自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。 深知大多數(shù)HarmonyOS鴻蒙開發(fā)工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)

    2024年04月27日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包