衡阳派盒市场营销有限公司

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

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

3天內不再提示

鴻蒙開發實戰-運動app開發

jf_46214456 ? 來源: jf_46214456 ? 作者: jf_46214456 ? 2024-02-01 16:55 ? 次閱讀

主要開發內容

開發準備

想要實現以下功能的話,需要學習“Tabs”,“TabContent”,“Row”,“Column”,等等相關技術。

主頁

靜坐頁面
除此之外,還需要先準備8張圖標的圖片以及應用開發所需要的圖片。

tabs功能實現

應用中的Tabs功能通過采用了TabsController來實現。TabsController是一個在鴻蒙開發框架中用于管理Tabs的控制器,它負責處理Tabs之間的切換邏輯。以下是實現Tabs功能的關鍵代碼部分:

// 定義TabsController實例
private controller: TabsController = new TabsController()
// ...
// 在build方法中使用Tabs組件,并傳入controller
build() {
  Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
    Tabs({ controller: this.controller }) {
      // ...(省略Tabs中的內容)
    }
  }
}

在上述代碼中,通過創建一個TabsController實例并賦值給controller成員變量,將該控制器傳遞給Tabs組件。Tabs組件會根據傳入的控制器進行管理,從而實現Tabs之間的切換。

關于TabsController的具體使用,我們可以看到定義了多個方法,如IndexClick、messageClick、myClick和meClick等。這些方法分別用于處理不同Tabs的點擊事件,并在點擊時調用controller.changeIndex(index)來切換到對應的Tabs。通過TabsController的管理和控制,實現了在MyNewsIndex應用中不同Tabs之間的切換效果。用戶點擊不同的Tabs時,調用相應的方法切換到對應的內容,從而提供了用戶友好的導航和瀏覽體驗。Tabs功能的實現使得用戶可以方便地切換到不同的運動分類或內容頁面,增強了應用的可用性。

@Entry
@Component
struct MyNewsIndex {
  private controller: TabsController = new TabsController()
  @State SelectPos:number=0;
  public IndexClick(){
    this.SelectPos=0;
    this.controller.changeIndex(0)
  }
  public messageClick(){
    this.SelectPos=1;
    this.controller.changeIndex(1)
  }
  public myClick(){
    this.SelectPos=2;
    this.controller.changeIndex(2)
  }
  public meClick(){
    this.SelectPos=3;
    this.controller.changeIndex(3)
  }

  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Tabs({ controller: this.controller }) {
        TabContent() {
          Column() {
            zhu()
          }

        }
        .tabBar()
        TabContent() {
          Column() {
            jingzuo()
          }

        }
        .tabBar()
        TabContent() {
          Text("我men的")
            .width('100%').height('100%')
            .fontSize(50)
            .textAlign(TextAlign.Center)
            .fontColor(Color.White)
            .backgroundColor(0X6495ED)
        }
        .tabBar()
        TabContent() {
          Text("我")
            .width('100%').height('100%')
            .fontSize(50)
            .textAlign(TextAlign.Center)
            .fontColor(Color.White)
            .backgroundColor(Color.Black)

        }
        .tabBar()
      }
      .scrollable(false)
      .barHeight(0)
      .animationDuration(0)

底部導航欄

通過Row和Column以及Text,Image等組件,實現了底部的導航欄。四個不同的圖標分別代表主頁、消息、我的、我,通過點擊不同圖標,用戶可以快速切換到對應的頁面,提升用戶友好性。以下是參考代碼:

Row() {
        Column(){
          Image((this.SelectPos==0?$r('app.media.yundong1'):$r('app.media.yundong')))
            .width(30)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.IndexClick.bind(this))

        Column(){
          Image((this.SelectPos==1?$r('app.media.gangling1'):$r("app.media.gangling")))
            .width(35)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.messageClick.bind(this))

        Column(){
          Image((this.SelectPos==2?$r('app.media.zhidao1'):$r('app.media.zhidao')))
            .width(30)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.myClick.bind(this))

        Column(){
          Image((this.SelectPos==3?$r('app.media.me1'):$r('app.media.me')))
            .width(30)
            .height(30)
            .margin(12)
        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.meClick.bind(this))
      }
      .alignItems(VerticalAlign.Bottom)
      .width('100%')
      .height(50)
      .margin({top:0,right:0,bottom:10,left:0})
    }
    .width('100%')
    .height('100%')
  }
}

總結

本項目使用鴻蒙框架的代碼結構清晰且容易理解。通過引入頁面組件(zhu和jingzuo)以及使用裝飾器(@Entry和@Component)來定義組件,代碼使得組件的結構和布局一目了然,用戶可以輕松切換到不同的運動分類,包括主頁、精選等,還提供了用戶友好的界面導航,使用戶能夠快速找到符合個人興趣的運動內容,除此之外,本項目通過鴻蒙采用了靈活的Flex布局,確保在不同設備上都能夠實現良好的自適應效果。

其次,鴻蒙框架提供了一系列的布局和樣式管理工具,如Flex、Column、Tabs等,使得頁面的布局和樣式定義更加方便。這種靈活性使得開發者可以更容易地創建各種復雜的頁面布局,同時保持代碼的簡潔性。

審核編輯 黃宇

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

    關注

    30

    文章

    4825

    瀏覽量

    69044
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43050
收藏 人收藏

    評論

    相關推薦

    【書籍評測活動NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應用開發實踐

    了解并掌握鴻蒙開發的核心技術,以及鴻蒙應用在實際開發中的應用方法。 本書共分為四篇,共計16章,分別為鴻蒙
    發表于 01-20 16:53

    LwIP應用開發實戰指南—基于野火STM32

    LwIP應用開發實戰指南—基于野火STM32—20210122
    發表于 01-17 14:34 ?0次下載

    鴻蒙Flutter實戰:14-現有Flutter 項目支持鴻蒙 II

    分別安裝官方的3.22版本,以及鴻蒙社區的 3.22.0 版本 3.搭建 Flutter鴻蒙開發環境 參考文章《鴻蒙Flutter實戰:0
    發表于 12-26 14:59

    鴻蒙原生開發手記:01-元服務開發

    簡介 元服務是鴻蒙中的一種輕量應用形態,無需下載,直接運行。類似于微信小程序,但與小程序不同的是,元服務更加輕量。 元服務使用原生開發,是系統級提供的,無論從易用性、性能、體驗上,都要比小程序好
    發表于 11-14 17:28

    鴻蒙Flutter實戰:12-使用模擬器開發調試

    前提 開發電腦需為M系列芯片 (ARM架構) 的 Mac 電腦 目前 Flutter 鴻蒙開發,無法使用 X86 架構的模擬器,只能使用 ARM 架構的模擬器** 創建項目 等開發
    發表于 11-10 13:13

    鴻蒙Flutter實戰:08-如何調試代碼

    # 鴻蒙Flutter實戰:如何調試代碼 ## 1.環境搭建 參考文章[鴻蒙Flutter實戰:01-搭建開發環境](https://g
    發表于 10-23 16:29

    鴻蒙Flutter實戰:07混合開發

    # 鴻蒙Flutter實戰:混合開發 鴻蒙Flutter混合開發主要有兩種形式。 ## 1.基于har 將flutter module
    發表于 10-23 16:00

    哪吒汽車APP啟動鴻蒙原生應用開發

    哪吒汽車正式簽約,啟動鴻蒙原生應用開發;在5月17日,在上海市經濟和信息化委員會指導的“千帆競發啟航 共筑鴻蒙生態——HDD上海站·鴻蒙原生應用專場”活動中哪吒汽車與華為簽約啟動
    的頭像 發表于 05-18 09:48 ?1223次閱讀

    鴻蒙開發就業前景到底怎么樣?

    有幫助,我想邀請大家幫我三個小忙: 點贊,轉發,有你們的 『點贊和評論』,才是我創造的動力。 關注小編,同時可以期待后續文章ing?,不定期分享原創知識。 更多鴻蒙最新技術知識點,請關注作者博客:鴻蒙實戰經驗分享:
    發表于 05-09 17:37

    36歲了還有必要轉行鴻蒙開發嗎?

    。 關注小編,同時可以期待后續文章ing?,不定期分享原創知識。 更多鴻蒙最新技術知識點,請關注作者博客:鴻蒙實戰經驗分享:鴻蒙基礎入門開發
    發表于 05-09 17:01

    鴻蒙OS實戰開發:【多設備自適應服務卡片】

    服務卡片的布局和使用,其中卡片內容顯示使用了一次開發,多端部署的能力實現多設備自適應。 用到了卡片擴展模塊接口,[@ohos.app
    的頭像 發表于 04-09 09:20 ?929次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>實戰</b><b class='flag-5'>開發</b>:【多設備自適應服務卡片】

    鴻蒙APP開發實戰:【Api9】拍照、拍視頻;選擇圖片、視頻、文件工具類

    鴻蒙開發過程中,經常會進行系統調用,拍照、拍視頻、選擇圖庫圖片、選擇圖庫視頻、選擇文件。今天就給大家分享一個工具類。
    的頭像 發表于 03-26 16:27 ?866次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>APP</b><b class='flag-5'>開發</b><b class='flag-5'>實戰</b>:【Api9】拍照、拍視頻;選擇圖片、視頻、文件工具類

    鴻蒙ArkUI開發實戰:eTS版【笑話app

    制作一款笑話app,使用ArkUI。
    的頭像 發表于 03-25 16:04 ?501次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI<b class='flag-5'>開發</b><b class='flag-5'>實戰</b>:eTS版【笑話<b class='flag-5'>app</b>】

    鴻蒙實戰項目開發:【短信服務】

    ://gitee.com/openharmony/applications_app_samples.git git pull origin master ? 最后呢,很多開發朋友不知道需要學習那些鴻蒙技術?
    發表于 03-03 21:29

    鴻蒙開發者預覽版如何?

    在24年的華為鴻蒙發布會中表示。預覽版已經向開發者開放申請,首批支持的機型有三款分別為華為 Mate 60、華為Mate 60 Pro、華為Mate X5。 其HarmonyOS NEXT去除
    發表于 02-17 21:54
    武义县| 百家乐官网览| 百家乐官网龙虎台布| 百家乐官网家居 | 百家乐官网庄比闲多多少| 百家乐如何投注法| 大发888娱乐场18| 做百家乐官网网上投注| 澳门百家乐下注最低| 大发888 zhldu| 七胜百家乐官网娱乐| 百家乐前四手下注之观点| 爱拼网| 做生意的怎样招财| 现金棋牌网站| 兄弟百家乐官网的玩法技巧和规则| 大发888娱乐场下| 百家乐官网电投网站| 足球百家乐投注网出租| 百家乐官网园小区户型图| 百家乐斗地主下载| TT百家乐官网现金网| 百家乐赌博彩| 专业百家乐官网分析| 百家乐投注很不错| 网络投注| 真人百家乐策略| 汉川市| 百家乐赌博赌博网站| 单张百家乐官网论坛| 利都百家乐国际娱乐场开户注册| 百家乐官网书包| 正品百家乐玩法| 百家乐官网永利娱乐场| 新花园百家乐的玩法技巧和规则 | 百家乐最新的投注方法| 现金百家乐官网伟易博| 百家乐永利娱乐场开户注册| 赌百家乐官网赢的奥妙| 二爷百家乐的玩法技巧和规则 | 投真钱百家乐必输吗|