女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ListContainer粘性頭部裝飾器組件

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:HarmonyOS技術(shù)社區(qū) ? 作者:開(kāi)鴻HarmonyOS ? 2021-10-19 09:06 ? 次閱讀

這是一個(gè) ListContainer 的粘性頭部裝飾器組件,主要用于展示列表+粘性頭部的滑動(dòng)效果。

原理解析

UI 顯示部分如下圖所示,基礎(chǔ)布局采用 TabList+PageSlider 聯(lián)動(dòng),實(shí)現(xiàn)翻頁(yè)滑動(dòng)效果,TabList 實(shí)現(xiàn) page 頁(yè) title 自定義顯示,PageSlider 通過(guò)加載不同的布局顯示對(duì)應(yīng)滑動(dòng)列表。

單個(gè) page 頁(yè)面中采用 ListContainer+Text,header 頭部是使用懸停的 Text 控件來(lái)顯示的,根據(jù)需要顯示的頭部類(lèi)型來(lái)加載 Text 控件數(shù)量。

這里需要注意:HarmonyOS SDK 6 及之前版本仍不支持 PageSlider 添加 Fraction,故采用 PageSlider 添加 ComponentContainer 方式實(shí)現(xiàn)相似效果。

滑動(dòng)處理邏輯如下:

  • 首先在滑動(dòng)監(jiān)聽(tīng)接口中通過(guò)獲取觸摸點(diǎn) Y 坐標(biāo)值 point.getY() 來(lái)判斷上下滑動(dòng)方向。

  • 通過(guò) Header 頭部類(lèi)型判斷需要執(zhí)行的代碼邏輯,僅在需要更新 herader 頭部顯示時(shí)添加移動(dòng)動(dòng)畫(huà)效果。

不同 header 頭部類(lèi)型滑動(dòng)事件的處理思路是一樣的,單頭部 StickyHeader 邏輯如下:

  • 假設(shè) herader 頭部高度為 Y,列表單個(gè) Item 高度為 Y,當(dāng)觸發(fā)列表向上滾動(dòng)且當(dāng)前列表顯示在屏幕中的第二個(gè) Item 是新的 Header 數(shù)據(jù)時(shí),開(kāi)始對(duì) Text 控件執(zhí)行向上滑動(dòng)的動(dòng)畫(huà)效果。

  • 當(dāng)觸發(fā)列表向下滾動(dòng)且當(dāng)前列表顯示在屏幕中的第一個(gè) Item 是新的 Header 數(shù)據(jù)時(shí),開(kāi)始對(duì) Text 控件執(zhí)行向下滑動(dòng)的動(dòng)畫(huà)效果。在滑動(dòng)過(guò)程中,通過(guò)獲取指定 Item.getTop() 與 Header 頭部高度 Y 的差值。

  • 確定 Text 控件每次需要移動(dòng)的 Y 軸坐標(biāo) moveY,該區(qū)間值 moveY 是 0 到 -Y 之間。最后通過(guò)調(diào)用 setContentPositionY() 方法實(shí)現(xiàn)控件滑動(dòng)動(dòng)畫(huà)。

使用說(shuō)明

Java 調(diào)用示例:

使用1:
//獲取ListContainer
ListContainerlistContainer=(ListContainer)rootView.findComponentById(ResourceTable.Id_list_double_inline);
//需要的數(shù)據(jù)
ListdataList=Utils.getDoubleInlineList();
listContainer.setItemProvider(newInlineDoubleHeaderTestAdapter(context,dataList));
//將TextListContainer列表與HeaderDecor進(jìn)行綁定
HeaderDecorheaderDecor=newHeaderDecor(listContainer,headerText,doubleText);
//headerDecor調(diào)用setDataList()方法即可
headerDecor.setDataList(dataList);

使用2:
Texttext=(Text)rootView.findComponentById(ResourceTable.Id_title_text);
//獲取ListContainer
ListContainerlistContainer=(ListContainer)rootView.findComponentById(ResourceTable.Id_list_sticky_inline);
//需要的數(shù)據(jù)
ListdataList=Utils.getStickyInlineList();
listContainer.setItemProvider(newInlineStickyTestAdapter(context,dataList));
//將TextListContainer列表與HeaderDecor進(jìn)行綁定
HeaderDecorheaderDecor=newHeaderDecor(listContainer,text);
//headerDecor調(diào)用setDataList()方法即可
headerDecor.setDataList(dataList);

該三方庫(kù)目前已經(jīng)在 gitee 上開(kāi)源并且發(fā)布 lib 倉(cāng)庫(kù),可以在 moudle 級(jí)別下的 build.gradle 文件中添加依賴(lài)。

//添加maven倉(cāng)庫(kù)
repositories{
maven{
url'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}

//添加依賴(lài)庫(kù)
dependencies{
implementation'com.gitee.chinasoft_ohos1.0.0'
}

源碼下載

以上就是 Header-Decor 的介紹,代碼已經(jīng)開(kāi)源到header-decor,歡迎各位下載使用并提出寶貴意見(jiàn)!

https://gitee.com/chinasoft2_ohos/header-decor

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7091

    瀏覽量

    124956
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2639

    瀏覽量

    67708
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    2053

    瀏覽量

    32138

原文標(biāo)題:鴻蒙粘性頭部裝飾器組件,已開(kāi)源!

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙5開(kāi)發(fā)寶藏案例分享---自由流轉(zhuǎn)的拖拽多屏聯(lián)動(dòng)

    拉刷新)** 痛點(diǎn) :官方文檔只講基礎(chǔ)ListContainer,但實(shí)際開(kāi)發(fā)必加下拉刷新! // 1. 布局中添加RefreshContainer組件 RefreshContainer
    發(fā)表于 06-03 18:50

    開(kāi)源啦?。?!基于鴻蒙ArkTS封裝的圖表組件《McCharts》,大家快來(lái)一起共創(chuàng)

    Hello;大家好,我是陳楊。好久沒(méi)更新了,首先是自己本職工作比較忙,基本沒(méi)時(shí)間寫(xiě)作。其次就是學(xué)習(xí)技術(shù),自學(xué)鴻蒙ArkTS語(yǔ)言已經(jīng)接近半年了,也算半路出師了,這次將分享我封裝的組件庫(kù),所以有啥講錯(cuò)
    發(fā)表于 03-15 15:21

    鴻蒙原生頁(yè)面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    全局自定義組件復(fù)用,讓原生容器組件組件復(fù)用子組件,降低了頁(yè)面丟幀率和白屏?xí)r間。這一方案已在多個(gè)頭部鴻蒙
    發(fā)表于 01-02 18:00

    基于鴻蒙Next模擬掃圖識(shí)物的一個(gè)過(guò)程

    :’, JSON.stringify(err) ?? ‘’) }); }復(fù)制復(fù)制 六、代碼結(jié)構(gòu)及原理:1.整體結(jié)構(gòu): 使用了ArkTS的裝飾語(yǔ)法,如@Entry和@Component。2.狀態(tài)管理: 組件
    發(fā)表于 08-21 15:04

    鴻蒙ArkTS容器組件:SideBarContainer

    提供側(cè)邊欄可以顯示和隱藏的側(cè)邊欄容器,通過(guò)子組件定義側(cè)邊欄和內(nèi)容區(qū),第一個(gè)子組件表示側(cè)邊欄,第二個(gè)子組件表示內(nèi)容區(qū)。
    的頭像 發(fā)表于 07-18 15:46 ?956次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:SideBarContainer

    鴻蒙ArkTS容器組件:Stack

    堆疊容器,子組件按照順序依次入棧,后一個(gè)子組件覆蓋前一個(gè)子組件。
    的頭像 發(fā)表于 07-15 18:23 ?1271次閱讀

    鴻蒙ArkTS容器組件:Scroll

    可滾動(dòng)的容器組件,當(dāng)子組件的布局尺寸超過(guò)父組件的尺寸時(shí),內(nèi)容可以滾動(dòng)。
    的頭像 發(fā)表于 07-12 15:24 ?1851次閱讀

    鴻蒙ArkTS容器組件:RowSplit

    將子組件橫向布局,并在每個(gè)子組件之間插入一根縱向的分割線。
    的頭像 發(fā)表于 07-11 22:25 ?615次閱讀

    鴻蒙ArkTS容器組件:ListItemGroup

    組件用來(lái)展示列表item分組,寬度默認(rèn)充滿[List]組件,必須配合List組件來(lái)使用。
    的頭像 發(fā)表于 07-10 09:20 ?1185次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:ListItemGroup

    鴻蒙ArkTS容器組件:GridCol

    柵格子組件,必須作為柵格容器組件([GridRow])的子組件使用。
    的頭像 發(fā)表于 07-08 15:17 ?718次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:GridCol

    鴻蒙ArkTS容器組件:Flex

    以彈性方式布局子組件的容器組件
    的頭像 發(fā)表于 07-08 10:19 ?830次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:Flex

    鴻蒙ArkTS容器組件:FlowItem

    [瀑布流組件]的子組件,用來(lái)展示瀑布流具體item。
    的頭像 發(fā)表于 07-08 09:56 ?740次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:FlowItem

    鴻蒙ArkTS容器組件:Counter

    計(jì)數(shù)組件,提供相應(yīng)的增加或者減少的計(jì)數(shù)操作。
    的頭像 發(fā)表于 07-06 10:44 ?748次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS容器<b class='flag-5'>組件</b>:Counter

    鴻蒙ArkTS聲明式組件:【Divider】

    提供分隔組件,分隔不同內(nèi)容塊/內(nèi)容元素。
    的頭像 發(fā)表于 06-22 10:06 ?959次閱讀
    <b class='flag-5'>鴻蒙</b>ArkTS聲明式<b class='flag-5'>組件</b>:【Divider】

    鴻蒙基礎(chǔ)組件:AlphabetIndexer

    可以與容器組件聯(lián)動(dòng)用于按邏輯結(jié)構(gòu)快速定位容器顯示區(qū)域的組件。
    的頭像 發(fā)表于 06-19 09:30 ?600次閱讀
    <b class='flag-5'>鴻蒙</b>基礎(chǔ)<b class='flag-5'>組件</b>:AlphabetIndexer