在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

HarmonyOS開發案例:【卡片二級聯動】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-06 17:08 ? 次閱讀

1 卡片介紹

使用ArkTS語言,實現一個導航與內容二級聯動的效果。

2 標題

二級聯動(ArkTS)

3 介紹

介紹了如何基于List組件實現一個導航和內容的二級聯動效果。樣例主要包含以下功能:

  1. 切換左側導航,右側滾動到對應的內容。
  2. 滾動右側的內容,左側會切換對應的導航。

效果如圖所示:

相關概念

  • [List]:列表包含一系列相同寬度的列表項。適合連續、多行呈現同類數據,例如圖片和文本。
  • [ListItemGroup]:該組件用來展示列表item分組,寬度默認充滿List組件,必須配合List組件來使用。

4 環境搭建

軟件要求

  • [DevEco Studio]版本:DevEco Studio 3.1 Release。
  • OpenHarmony SDK版本:API version 9。

硬件要求

  • 開發板類型:[潤和RK3568開發板]。
  • OpenHarmony系統:3.2 Release。

環境搭建

完成本篇Codelab我們首先要完成開發環境的搭建,本示例以RK3568開發板為例,參照以下步驟進行:

  1. [獲取OpenHarmony系統版本]:標準系統解決方案(二進制)。以3.2 Release版本為例:
  2. 搭建燒錄環境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發板的燒錄]
  3. 搭建開發環境。
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發環境配置。
    2. 開發環境配置完成后,請參考[使用工程向導]創建工程(模板選擇“Empty Ability”)。
    3. 工程創建完成后,選擇使用[真機進行調測]。
    4. 鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

5 代碼結構解讀

本篇Codelab只對核心代碼進行講解,對于完整代碼,我們會在gitee中提供。

├──entry/src/main/ets                // 代碼區
│  ├──common
│  │  └──constants
│  │     └──Constants.ets            // 常量類
│  ├──entryability
│  │  └──EntryAbility.ts             // 程序入口類
│  ├──pages
│  │  └──IndexPage.ets               // 二級聯動頁面入口
│  ├──view
│  │  ├──ClassifyItem.ets            // 課程分類組件
│  │  └──CourseItem.ets              // 課程信息組件
│  └──viewmodel                          
│     ├──ClassifyModel.ets           // 導航Model
│     ├──ClassifyViewModel.ets       // 導航ViewModel
│     ├──CourseModel.ets             // 課程內容Model
│     └──LinkDataModel.ets           // 數據源Model
└──entry/src/main/resources          // 資源文件

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789v直接拿`

搜狗高速瀏覽器截圖20240326151344.png

6 二級聯動實現

界面整體使用Row組件實現橫向布局,分為左右兩部分。均使用List組件實現對導航和內容的數據展示,導航部分固定寬度,內容部分自適應屏幕剩余寬度并用ListItemGroup完成每個導航下的內容布局。

Row() {
  List({ scroller: this.classifyScroller }) {
    ForEach(this.classifyList, (item: ClassifyModel, index: number) = > {
      ListItem() {
        ClassifyItem({
          classifyName: item.classifyName,
          isSelected: this.currentClassify === index,
          onClickAction: () = > this.classifyChangeAction(index, true)
        })
      }
    }, (item: ClassifyModel) = > item.classifyName + this.currentClassify)
  }

  List({ scroller: this.scroller }) {
    ForEach(this.classifyList, (classifyItem: ClassifyModel) = > {
      ListItemGroup({
        header: this.ClassifyHeader(classifyItem.classifyName),
        space: Constants.COURSE_ITEM_PADDING
      }) {
        ForEach(classifyItem.courseList, (courseItem: CourseModel) = > {
          ListItem() {
            CourseItem({ itemStr: JSON.stringify(courseItem) })
          }
        }, courseItem = > courseItem.courseId)
      }
    }, item = > item.classifyId)
  }
  .sticky(StickyStyle.Header)
  .layoutWeight(1)
  .edgeEffect(EdgeEffect.None)
  .onScrollIndex((start: number) = > this.classifyChangeAction(start, false))
}

點擊左側導航時,右側內容區域通過scrollToIndex方法跳轉到對應的內容頁面,并改變導航的選中狀態。同理在滾動右側內容的過程中,如果當前展示的ListItemGroup發生改變時,修改左側導航的選中狀態,并滾到到對應的導航item。

classifyChangeAction(index: number, isClassify: boolean) {
  if (this.currentClassify !== index) {
    // change the classify status
    this.currentClassify = index;
    if (isClassify) {
      // scroll the course scroll
      this.scroller.scrollToIndex(index);
    } else {
      // scroll the classify scroll
      this.classifyScroller.scrollToIndex(index);
    }
  }
}

審核編輯 黃宇

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

    關注

    25

    文章

    5050

    瀏覽量

    97471
  • OpenHarmony
    +關注

    關注

    25

    文章

    3722

    瀏覽量

    16317
收藏 人收藏

    評論

    相關推薦

    OpenHarmony開發案例:【計步器卡片

    基于Stage模型實現帶有卡片的計步應用,用于介紹卡片開發及生命周期實現。
    的頭像 發表于 04-15 09:22 ?701次閱讀
    OpenHarmony<b class='flag-5'>開發案</b>例:【計步器<b class='flag-5'>卡片</b>】

    OpenHarmony開發案例:【電影卡片

    基于元服務卡片的能力,實現帶有卡片的電影應用,介紹卡片開發過程和生命周期實現。
    的頭像 發表于 04-15 17:53 ?1266次閱讀
    OpenHarmony<b class='flag-5'>開發案</b>例:【電影<b class='flag-5'>卡片</b>】

    THS3001級聯組成放大電路,實際接通后第二級有明顯發熱,為什么?

    實際接通后第二級有明顯發熱。單獨測試第一沒問題,對第二級直接輸入第一的輸出相關參數依然正常。可是兩塊一旦級聯
    發表于 09-06 06:08

    一對一直播開發PHP源碼

    php、html結合實現二級聯動。一對一源碼在php開發中我們經常會遇到一些功能需要二級聯動二級聯動就是說我們在選擇一select不同的
    發表于 09-29 16:54

    HarmonyOS服務卡片快速開發

    HarmonyOS服務卡片快速開發
    發表于 06-19 13:52

    HarmonyOS卡片開發--服務卡片概述

    服務。 卡片提供方實例管理模塊:由卡片提供方開發者實現,負責對卡片管理服務分配的卡片實例進行持久化管理。 通信適配層:由
    發表于 09-22 14:10

    HarmonyOS流轉卡片設計規范分享

    服務流轉是 HarmonyOS 的分布式操作方式。流轉能力打破設備界限,多設備聯動,使原子化服務可分可合、可流轉,實現如郵件跨設備編輯、多設備協同健身、多屏游戲等分布式業務。開發者通過嵌入流轉圖標
    發表于 12-15 14:57

    HarmonyOS分享卡片設計規范學習分享

    Share 入口圖標,根據業務特性和體驗繼承性,您可以將 Huawei Share 圖標作為一界面的分享入口,或在二級界面與其他分享方式并列。為了保證在不同服務內一致的分享體驗,若需顯示 Huawei
    發表于 12-16 15:32

    HarmonyOS/OpenHarmony應用開發-FA卡片開發體驗

    HarmonyOSOpenHarmony應用開發-FA卡片開發體驗.docx示例代碼:https://gitee.com/jltfcloudcn/jump_to/tree/maste
    發表于 12-06 14:48

    全國計算機二級試題全集

    全國計算機二級試題含有從,二級筆試試題BASIC,筆試試題FORTRAN,1994-2002年的二級C、二級Pascal、二級QBasic、
    發表于 12-30 10:20 ?27次下載
    全國計算機<b class='flag-5'>二級</b>試題全集

    華為開發HarmonyOS零基礎入門:15分鐘玩轉harmonyOS服務卡片

    華為開發HarmonyOS零基礎入門:15分鐘玩轉harmonyOS服務卡片,服務卡片顏值高、擁有服務直達功能。
    的頭像 發表于 10-23 11:40 ?2226次閱讀
    華為<b class='flag-5'>開發</b>者<b class='flag-5'>HarmonyOS</b>零基礎入門:15分鐘玩轉<b class='flag-5'>harmonyOS</b>服務<b class='flag-5'>卡片</b>

    華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案

    2021華為開發者分論壇HarmonyOS學生公開課-OpenHarmony Codelabs開發案
    的頭像 發表于 10-24 11:25 ?1921次閱讀
    華為<b class='flag-5'>開發</b>者分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-OpenHarmony Codelabs<b class='flag-5'>開發案</b>例

    HarmonyOS服務卡片如何換膚

      關注HarmonyOS的小伙伴肯定對服務卡片已經很熟悉了。服務卡片(也簡稱為“卡片”)是FA(FeatureAbility,元服務)的一種界面展示形式,將FA的重要信息或操作前置到
    的頭像 發表于 02-12 10:28 ?2839次閱讀
    <b class='flag-5'>HarmonyOS</b>服務<b class='flag-5'>卡片</b>如何換膚

    基于openharmony第三方組件適配移植實現二級聯動列表

    項目介紹 項目名稱:Linkage-RecyclerView 所屬系列:openharmony的第三方組件適配移植 功能:實現二級聯動列表 項目移植狀態:主功能完成 調用差異:無 開發版本:sdk6
    發表于 03-30 10:40 ?1次下載

    用Java開發HarmonyOS服務卡片

    卡片服務:由卡片提供方開發者實現,開發者實現 onCreateForm、onUpdateForm 和 onDeleteForm 處理創建卡片
    的頭像 發表于 04-26 11:04 ?1530次閱讀
    主站蜘蛛池模板: 亚洲一卡2卡4卡5卡6卡在线99| 一级做a爰片久久毛片看看| 人人搞人人爱| 欧美日日日| a一级视频| 91免费视频网站| 国产精品久久久香蕉| 亚洲精品在线不卡| 色噜噜在线视频| 久久精品男人的天堂| 成年ssswww日本| 日日夜夜天天干| 免费我看视频在线观看| 男男浪荡性受高hnp肉| 亚洲啊v| 日本色频| 韩国成人毛片aaa黄| 天天伊人| 色135综合网| 在线综合网| 欧美一级高清免费播放| 国产成人精品亚洲| 久久香蕉精品视频| 午夜网站免费| 色网站在线视频| 国产大乳喷奶水在线看| 色爽爽爽| 中文字幕在线看精品乱码| 日本媚薬痉挛在线观看免费| 午夜精品福利影院| 国产黄色在线| 天堂网| 国产经典三级| 看视频免费网址| 欧美日韩精品一区二区另类 | 亚洲国产网| 色秀视频免费高清网站| 午夜一级毛片不卡| qvod高清在线成人观看| 欧美色操| 国产巨大bbbb俄罗斯|