一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙 TabList 配合 Fraction 實現(xiàn)頂部切換效果演示

OpenHarmony技術社區(qū) ? 來源:HarmonyOS技術社區(qū) ? 作者:HarmonyOS技術社區(qū) ? 2022-01-04 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我想著配合鴻蒙里面提供的頂部切換控件 tablist,來實現(xiàn)頂部 tab 切換,然后下面多個 fraction 的效果。廢話不多說,我們正式開始。

效果圖如下:

具體實現(xiàn)

定 tablist 布局:









我們在縱向線性布局上面寫了一個 tablist 然后下面寫了一個 StackLayout 來裝載我們的多個 fraction。

java 代碼邏輯,頂部標簽數據:

privateString[]str={"關注","推薦","熱點","問答"};

初始化 tab 并且添加頂部標簽文字:

privatevoidinitview(){
TabListtabList=(TabList)findComponentById(ResourceTable.Id_tab_list);
if(tabList!=null){
for(inti=0;i

我們初始化 tablist 控件后,for 循環(huán)設置我們 tablist 的 tab,并添加到 tablist 組件的 addTab 方法中。

①多個 fraction 切換邏輯:

privatevoidaddHomeFraction(){
getFractionManager()
.startFractionScheduler()
.add(ResourceTable.Id_mainstack,newAttentionFraction())
.submit();
}


publicvoidlayoutShow(intcode){
switch(code){
case0:
getFractionManager()
.startFractionScheduler()
.replace(ResourceTable.Id_mainstack,newAttentionFraction())
.submit();

break;
case1:
getFractionManager()
.startFractionScheduler()
.replace(ResourceTable.Id_mainstack,newRecommendFraction())
.submit();


break;
case2:
getFractionManager()
.startFractionScheduler()
.replace(ResourceTable.Id_mainstack,newHotspotFraction())
.submit();

break;
case3:
getFractionManager()
.startFractionScheduler()
.replace(ResourceTable.Id_mainstack,newQuestionFraction())
.submit();

break;
default:
break;
}
}
這邊我們提供了一個 addHomeFraction 方法和 layoutShow 方法。 我們在進入 MainAbility 的時候調用 addHomeFraction 來加載第一個默認的 fraction。

然后我們在點擊頂部的 tablist 標簽的時候,我們在 onSelected 回調方法中調用 layoutShow方法。

publicvoidonSelected(TabList.Tabtab){
//當某個Tab從未選中狀態(tài)變?yōu)檫x中狀態(tài)時的回調
System.out.println("當某個Tab從未選中狀態(tài)變?yōu)檫x中狀態(tài)時的回調");
layoutShow(tab.getPosition());
}

我們只需要傳入 tab.getPosition() 點擊頂部標簽的下標即可,這樣依賴我們的 tablist 配合多個 fraction 切換功能就實現(xiàn)了。具體的 fraction 的內部邏輯我們簡單說一下。

②關注模塊

布局文件:







java 邏輯代碼:

packagecom.example.tablist.fraction;
importcom.example.tablist.ResourceTable;
importcom.example.tablist.bean.PositionInfo;
importcom.example.tablist.config.Api;
importcom.example.tablist.provider.PositionProvider;
importcom.google.gson.Gson;
importohos.aafwk.ability.fraction.Fraction;
importohos.aafwk.content.Intent;
importohos.agp.components.Component;
importohos.agp.components.ComponentContainer;
importohos.agp.components.LayoutScatter;
importohos.agp.components.ListContainer;
importjava.util.List;
/***
*
*創(chuàng)建人:xuqing
*創(chuàng)建2021年2月28日1703
*類說明:關注模塊
*
*/
publicclassAttentionFractionextendsFraction{
privatePositionProviderpositionProvider;
privateListContainerlistContainer;
@Override
protectedComponentonComponentAttached(LayoutScatterscatter,ComponentContainercontainer,
Intentintent){
Componentcomponent=scatter.parse(ResourceTable.Layout_fraction_attention,container,false);
returncomponent;
}
protectedvoidonStart(Intentintent){
super.onStart(intent);
listContainer=(ListContainer)
getFractionAbility().findComponentById(ResourceTable.Id_jop_page_list);
getPostition();
}
publicvoidgetPostition(){
Gsongson=newGson();
PositionInfopositionInfo=gson.fromJson(Api.getPositioninfo(),PositionInfo.class);
Listlist=positionInfo.getData();
positionProvider=newPositionProvider(list,getFractionAbility());
listContainer.setItemProvider(positionProvider);
}
}

幾個 fraction 其實比較簡單,都是加載本地死數據顯示在 listContainer 控件上面。

其他幾個 fraction 因為邏輯都差不多我這邊就不展開一個一個講,有興趣的同學可以下載完整代碼去查閱,鴻蒙到此 TabList 配合 Fraction 實現(xiàn)頂部切換效果就講完了。

總結

鴻蒙里面提供了比較好用的 tablist 組件,我們只需要簡單的基本就能實現(xiàn)頂部 tab 的切換了。 然后配合 fraction 跟 Ability 進行綁定,但是我們的 Ability 需要繼承 FractionAbility。這樣我們就能完成 fraction 和 ability 的綁定。 我們在 tablist 的回調方法去調用我們替換 fraction 的方法就能實現(xiàn)頂部 tablist 點擊切換的時候下面的 fraction 跟著一起切換。

更多的 tablist 和 fraction 的聯(lián)動效果同學們有興趣可以私下研究,我這邊篇幅有限就不展開講了。

最后希望我的文章能幫助到各位解決問題,以后我還會貢獻更多有用的代碼分享給大家。

項目地址:

https://gitee.com/qiuyu123/tablistcut

原文標題:在鴻蒙上實現(xiàn)“頂部切換”效果

文章出處:【微信公眾號:HarmonyOS技術社區(qū)】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2987

    瀏覽量

    108191
  • 代碼
    +關注

    關注

    30

    文章

    4893

    瀏覽量

    70443
  • 鴻蒙
    +關注

    關注

    59

    文章

    2571

    瀏覽量

    43891

原文標題:在鴻蒙上實現(xiàn)“頂部切換”效果

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙機器人與鴻蒙開發(fā)板聯(lián)動演示

    鴻蒙機器人與鴻蒙開發(fā)板聯(lián)動演示,機器人的角色為迎賓機器人,開發(fā)板負責人賓客出現(xiàn)監(jiān)聽
    發(fā)表于 12-02 14:55

    用DGUS做的PPT切換頁面效果

    本帖最后由 ccn 于 2018-8-27 16:13 編輯 用DGUS做的PPT切換頁面效果,其實就是利用了DGUS的“剪切圖片區(qū)域”指令,可惜的是只能剪切矩形。可以按順序剪切,也可以打亂了
    發(fā)表于 08-27 16:10

    fraction為什么編譯不過?

    fraction=(temp-mantissa)*16;寫成fraction=(temp-mantissa)
    發(fā)表于 08-21 08:00

    搭載HarmonyOS鴻蒙系統(tǒng)2.0的華為P40演示

    搭載HarmonyOS鴻蒙系統(tǒng)2.0的華為P40演示
    發(fā)表于 01-14 09:32

    HarmonyOS-JS商城手機TV分布式布局效果練習

    ` 本帖最后由 李洋水蛟龍 于 2021-3-5 17:24 編輯 一、效果展示 二、簡要說明主要是參照鴻蒙官方演示代碼,實現(xiàn)的各項效果
    發(fā)表于 03-05 17:20

    ComponentCodelab——Tablist的使用方法

    讓開發(fā)者了解HarmonyOS應用開發(fā)常用布局和常用組件之Tablist的使用方法,體驗從工程創(chuàng)建到代碼、布局的編寫,再到編譯構建、部署和運行的全過程。
    發(fā)表于 05-08 22:04

    ComponentCodelab——體驗TabList和Tab組件(實操)

    演示鴻蒙ComponentCodelab中TabList和Tab組件的使用
    發(fā)表于 05-09 17:06

    TabList find為什么總是返回null?

    TabList為什么findComponentById返回null在xml中已經定義過了,發(fā)現(xiàn)總是返回null
    發(fā)表于 03-16 14:12

    請問下鴻蒙webview切換后臺后,要怎么才能停止聲音的播放?

    請問下鴻蒙webview切換后臺后,要怎么才能停止聲音的播放我是用了onInactive,依然沒有起到效果
    發(fā)表于 05-11 11:21

    在Altera SoC上面演示Android應用程序效果

    演示由Altera全球合作伙伴Fujisoft提供。演示在Altera SoC上面的Android應用程序。并且Fujisoft演示了在FPGA邏輯上實現(xiàn)2D加速IP,達到高達54f
    的頭像 發(fā)表于 06-26 08:08 ?3721次閱讀

    基于AS腳本的flash圖片自動切換效果實現(xiàn)

    本文詳細介紹了用Adobe Flash Professional CS5.5腳本設計圖片切換效果的技術和步驟,并附上腳本詳細代碼,對網站動畫設計和多媒體課件制作都具有一定的指導作用。
    的頭像 發(fā)表于 11-15 08:43 ?3778次閱讀
    基于AS腳本的flash圖片自動<b class='flag-5'>切換</b><b class='flag-5'>效果</b>的<b class='flag-5'>實現(xiàn)</b>

    Fluid catalytic cracking of petroleum fraction

    Fluid catalytic cracking of petroleum fraction(5g電源技術要求)-Fluid catalytic cracking of petroleum fraction (vacuum gas oil) to produce gaso
    發(fā)表于 08-04 16:49 ?10次下載
    Fluid catalytic cracking of petroleum <b class='flag-5'>fraction</b>

    基于openharmony實現(xiàn)綁定ability和fraction頁面切換的三方庫

    項目介紹 項目名稱:Alligator 所屬系列:openharmony的第三方組件適配移植 功能:通過注解處理器實現(xiàn)一套綁定ability和fraction頁面切換的三方庫 項目移植狀態(tài):主功能
    發(fā)表于 04-08 10:21 ?1次下載

    如何在Linux系統(tǒng)實現(xiàn)屏幕旋轉?觸覺智能RK3568鴻蒙開發(fā)板演示

    本文介紹Linux系統(tǒng)實現(xiàn)屏幕旋轉的方法,以解決產品形態(tài)的不同的展現(xiàn)方式,觸覺智能EVB3568鴻蒙開發(fā)板演示,現(xiàn)已發(fā)布全新OpenHarmony5.0 Release固件!
    的頭像 發(fā)表于 11-19 23:42 ?899次閱讀
    如何在Linux系統(tǒng)<b class='flag-5'>實現(xiàn)</b>屏幕旋轉?觸覺智能RK3568<b class='flag-5'>鴻蒙</b>開發(fā)板<b class='flag-5'>演示</b>

    HarmonyOS實戰(zhàn):Tab頂部滑動懸停功能實現(xiàn)

    日常開發(fā)過程中,遇到這種 Scroll 嵌套 List 列表滑動頂部懸停的場景十分常見,在鴻蒙開發(fā)時也正好實現(xiàn)了這個功能,本篇文章將帶你一步步實現(xiàn) Tab
    的頭像 發(fā)表于 06-24 17:07 ?84次閱讀