色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

harmonyos開發(fā)者聯(lián)盟

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-06 15:27 ? 次閱讀

介紹

本篇Codelab是基于Flex容器組件,實現(xiàn)彈性布局效果。彈性布局的特點是頁面元素的寬度按照屏幕分辨率進行適配調整,但整體布局不變。

相關概念

  • [Flex組件]:以彈性方式布局子組件的容器組件。
  • [Search組件]:搜索框組件,適用于瀏覽器的搜索內容輸入框等應用場景。
  • [Text組件]:顯示一段文本的組件。
  • [Image組件]:圖片組件,支持本地圖片和網(wǎng)絡圖片的渲染展示。
  • [Scroll組件]:可滑動的容器組件,當子組件的布局尺寸超過父組件的視口時,內容可以滑動。
  • [條件渲染]:條件渲染可根據(jù)應用的不同狀態(tài),使用if、else和else if渲染對應狀態(tài)下的UI內容。
  • [循環(huán)渲染]:基于數(shù)組類型數(shù)據(jù)執(zhí)行循環(huán)渲染。

環(huán)境搭建

軟件要求

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

硬件要求

  • 開發(fā)板類型:[潤和RK3568開發(fā)板]。
  • OpenHarmony系統(tǒng):3.2 Release。

環(huán)境搭建

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

  1. [獲取OpenHarmony系統(tǒng)版本]:標準系統(tǒng)解決方案(二進制)。以3.2 Release版本為例:
  2. 搭建燒錄環(huán)境。
    1. [完成DevEco Device Tool的安裝]
    2. [完成RK3568開發(fā)板的燒錄]
  3. 搭建開發(fā)環(huán)境。
    1. 開始前請參考[工具準備],完成DevEco Studio的安裝和開發(fā)環(huán)境配置。
    2. 開發(fā)環(huán)境配置完成后,請參考[使用工程向導]創(chuàng)建工程(模板選擇“Empty Ability”)。
    3. 工程創(chuàng)建完成后,選擇使用[真機進行調測]。
    4. 鴻蒙開發(fā)指導文檔:[qr23.cn/FBD4cY]

代碼結構解讀

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

├──entry/src/main/ets	           // 代碼區(qū)
│  ├──common
│  │  └──constants
│  │     └──StyleConstants.ets     // 樣式常量類 
│  ├──entryability
│  │  └──EntryAbility.ts           // 程序入口類
│  ├──pages
│  │  └──HomePage.ets              // 主界面	
│  ├──view
│  │  ├──ClearSearch.ets           // 清除歷史記錄自定義組件
│  │  ├──FlexLayout.ets            // 彈性布局自定義組件
│  │  └──SearchInput.ets           // 搜索輸入框自定義組件
│  └──viewmodel
│     └──SearchViewModel.ets       // 歷史搜索數(shù)據(jù)類
└──entry/src/main/resources        // 資源文件目錄

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

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

編寫搜索框布局

在這個章節(jié)中,我們需要完成搜索框布局的編寫,并實現(xiàn)文本輸入和點擊事件。效果如圖所示:

在ets目錄下,點擊鼠標右鍵 > New > Directory,新建名為view的自定義子組件目錄。然后在view目錄下,點擊鼠標右鍵 > New > ArkTS File,新建名為SearchInput的ArkTS文件。最后在SearchInput.ets文件中,逐步完成如下操作:

  1. 使用@Component新增一個自定義組件,組件名為SearchInput。
  2. 在build()中使用Flex作為容器組件,實現(xiàn)子組件水平排列。
  3. 使用Search組件作為搜索框布局,Text組件作為搜索文本按鈕布局。
// SearchInput.ets
@Component
export default struct SearchInput {
  build() {
    Flex({ alignItems: ItemAlign.Center }) {
      // 搜索框布局
      Search()
        ...
	
      // 搜索文本按鈕布局
      Text($r('app.string.search'))
        ...
    }
    ...
  }
}

接下來我們實現(xiàn)Search組件的樣式及輸入功能,并將輸入的數(shù)據(jù)添加到數(shù)組searchArr中:

  1. 使用@State定義變量searchInput,存儲搜索框輸入的文本內容。
  2. 在Search組件參數(shù)中,將變量searchInput賦值給參數(shù)value,參數(shù)placeholder填寫提示內容,參數(shù)icon表示搜索圖標路徑。
  3. 設置高度height、寬度width、背景顏色backgroundColor、提示內容顏色placeholderColor等屬性。
  4. 設置onChange事件,將用戶輸入的內容綁定到變量searchInput中。
  5. 使用@Link定義一個數(shù)組變量searchArr,點擊搜索文本按鈕時,將用戶輸入的內容即searchInput的值,通過數(shù)組的unshift()方法,在數(shù)組searchArr的頭部添加數(shù)據(jù)。
// SearchInput.ets
@Component
export default struct SearchInput {
  @State searchInput: string = '';
  @Link searchArr: Array< string >;

  build() {
    Flex({ alignItems: ItemAlign.Center }) {
      // 搜索框布局
      Search({
        value: this.searchInput,
        placeholder: StyleConstants.SEARCH_PLACEHOLDER,
        icon: StyleConstants.SEARCH_ICON
      })
        .placeholderColor($r('app.color.placeholder_color'))
        .placeholderFont({ size: $r('app.float.font_size') })
        .textFont({ size: $r('app.float.font_size') })
        .height(StyleConstants.SEARCH_HEIGHT)
        .width(StyleConstants.SEARCH_WIDTH)
        .backgroundColor(Color.White)
        ...
        .onChange((value: string) = > {
          this.searchInput = value;
        })

      // 搜索文本按鈕布局
      Text($r('app.string.search'))
        ...
        .onClick(() = > {
          if (this.searchInput !== '' && this.searchInput.trim().length > 0) {
            // 使用unshift在數(shù)組頭部添加數(shù)據(jù)
            this.searchArr.unshift(this.searchInput.trim());
          }
          this.searchInput = '';
        })
    }
    ...
  }
}

然后我們在HomePage.ets首頁中,引入SearchInput搜索輸入框自定義組件。

  1. 使用@State定義數(shù)組變量searchArr,存放最近搜索文本內容。
  2. 在構造參數(shù)中,使用$符號引用@State修飾的變量searchArr,將父組件的變量searchArr與子組件searchArr變量關聯(lián)起來。
// HomePage.ets
import SearchInput from '../view/SearchInput';

@Entry
@Component
struct HomePage {
  @State searchArr: Array< string > = SearchViewModel.getSearchArrData();

  build() {
    Column() {
      // 搜索輸入框自定義組件
      SearchInput({ searchArr: $searchArr })
    }
    ...
  }
}

編寫清除記錄布局

在這個章節(jié)中,我們需要完成清除記錄布局的編寫,并實現(xiàn)條件渲染。效果如圖所示:

在view目錄下,點擊鼠標右鍵 > New > ArkTS File,新建名為ClearSearch的ArkTS文件。然后在ClearSearch.ets文件中,逐步完成如下操作:

  1. 使用@Component新增一個自定義組件,組件名為ClearSearch。
  2. 在build()中使用Flex作為容器組件,實現(xiàn)子組件水平排列。
  3. 使用if/else實現(xiàn)條件渲染:當有搜索內容時,顯示最近搜索的文本和清除搜索內容圖標;否則就顯示沒有搜索內容和相關圖片。
  4. 使用@Link定義數(shù)組變量searchArr,當點擊清除搜索內容圖標時,所有最近搜索內容清空。
// ClearSearch.ets
@Component
export default struct ClearSearch {
  // 搜索內容數(shù)組
  @Link searchArr: Array< string >;

  build() {
    Flex({ alignItems: ItemAlign.Center }) {
      if (this.searchArr.length > 0) {
        Text($r('app.string.recent_searches'))
          ...

        Image($r('app.media.ic_delete'))
          ...
          .onClick(() = > {
            this.searchArr.splice(0, this.searchArr.length);
            this.searchArr.length = 0;
          })
      } else {
        Column() {
          Image($r('app.media.ic_no_search'))
            ...

          Text($r('app.string.no_search_content'))
            ...
        }
        ...
      }
    }
  }
}

然后我們在HomePage.ets首頁中,引入ClearSearch搜索輸入框自定義組件。

// HomePage.ets
import SearchInput from '../view/SearchInput';
import ClearSearch from '../view/ClearSearch';

@Entry
@Component
struct HomePage {
  @State searchArr: Array< string > = SearchViewModel.getSearchArrData();

  build() {
    Column() {
      // 搜索輸入框自定義組件
      SearchInput({ searchArr: $searchArr })
      // 清除搜索記錄自定義組件
      ClearSearch({ searchArr: $searchArr })
    }
    ...
  }
}

編寫彈性布局

在這個章節(jié)中,我們需要完成彈性布局的功能樣式,并實現(xiàn)循環(huán)渲染。效果如圖所示:

在view目錄下,點擊鼠標右鍵 > New > ArkTS File,新建名為FlexLayout的ArkTS文件。然后在FlexLayout.ets文件中,逐步完成如下操作:

  1. 使用@Component新增一個自定義組件,組件名為FlexLayout。
  2. 在build()中使用Flex作為容器,設置參數(shù)wrap為FlexWrap.Wrap時為彈性布局,實現(xiàn)自動換行。
  3. 使用if實現(xiàn)條件渲染,當有搜索內容時,顯示最近搜索的所有內容。
  4. 使用@Link定義數(shù)組變量searchArr,表示子組件要顯示的所有最近搜索文本內容。
  5. 使用ForEach遍歷變量searchArr,實現(xiàn)循環(huán)渲染。
// FlexLayout.ets
@Component
export default struct FlexLayout {
  @Link searchArr: Array< string >;

  build() {
    Scroll() {
      // Flex布局, wrap設置成FlexWrap.Wrap時為彈性布局
      Flex({ justifyContent: FlexAlign.Start, wrap: FlexWrap.Wrap }) {
        if (this.searchArr.length > 0) {
          // 循環(huán)渲染		
          ForEach(this.searchArr, (item: string) = > {
            Text(`${item}`)
              ...
          }, (item: string) = > JSON.stringify(item))
        }
      }
      ...
    }
  }
}

然后我們在HomePage.ets首頁中,引入FlexLayout搜索輸入框自定義組件。

// HomePage.ets
import SearchInput from '../view/SearchInput';
import ClearSearch from '../view/ClearSearch';
import FlexLayout from '../view/FlexLayout';

@Entry
@Component
struct HomePage {
  @State searchArr: Array< string > = SearchViewModel.getSearchArrData();

  build() {
    Column() {
      // 搜索輸入框自定義組件
      SearchInput({ searchArr: $searchArr })
      // 清除搜索記錄自定義組件
      ClearSearch({ searchArr: $searchArr })
      // 彈性布局自定義組件
      FlexLayout({ searchArr: $searchArr })
    }
    ...
  }
}

審核編輯 黃宇

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

    關注

    25

    文章

    5032

    瀏覽量

    97372
  • 開發(fā)者
    +關注

    關注

    1

    文章

    563

    瀏覽量

    17005
  • 鴻蒙
    +關注

    關注

    57

    文章

    2339

    瀏覽量

    42805
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143
  • OpenHarmony
    +關注

    關注

    25

    文章

    3713

    瀏覽量

    16254
收藏 人收藏

    評論

    相關推薦

    線下 | HarmonyOS 2.0 手機開發(fā)者 Beta 活動

    /consumer/cn/activity/101608287564994799歡迎在鏈接中點擊 “我要報名”按鈕,注冊成為華為開發(fā)者聯(lián)盟會員后免費報名。報名成功后,我們將以官方郵件和短信的形式通知您報名結果。歡迎關注HarmonyOS
    發(fā)表于 12-21 10:11

    HarmonyOS開發(fā)者

    HarmonyOS開發(fā)者HarmonyOS設備開發(fā)學習路線HarmonyOS 2.0如約而至,內存在128KB~128MB的終端設備廠商有
    發(fā)表于 07-22 09:53

    絕對干貨!HarmonyOS開發(fā)者日資料全公開,鴻蒙開發(fā)者都在看

    731HarmonyOS開發(fā)者日大會PPT資料全在這了,想要了解的小伙伴可以自行下載啦~下載資料的小伙伴還可以在評論區(qū)回復領取5個積分哦1、HarmonyOS 職業(yè)認證解讀:該主題是開發(fā)者
    發(fā)表于 08-04 14:36

    請問海外開發(fā)者如何開發(fā)HarmonyOS應用?

    海外開發(fā)者如何開發(fā)HarmonyOS應用?
    發(fā)表于 06-02 15:50

    喜報|HarmonyOS開發(fā)者社區(qū)連獲業(yè)內獎項,持續(xù)深耕開發(fā)者生態(tài)

    臨近年末,各大平臺陸續(xù)揭曉年度榜單,表彰了具備強大影響力與做出突出貢獻的優(yōu)秀項目與團隊,而HarmonyOS開發(fā)者社區(qū)作為技術分享,學習和展示的平臺,輸出高質量技術文章百余篇,連續(xù)獲得業(yè)內各大
    發(fā)表于 01-19 14:32

    華為開發(fā)者HarmonyOS零基礎入門:四步實現(xiàn)HarmonyOS應用

    華為開發(fā)者HarmonyOS零基礎入門:四步實現(xiàn)HarmonyOS應用,可以自定義主鍵實際應用在開發(fā)者界面。
    的頭像 發(fā)表于 10-23 10:05 ?1944次閱讀
    華為<b class='flag-5'>開發(fā)者</b><b class='flag-5'>HarmonyOS</b>零基礎入門:四步實現(xiàn)<b class='flag-5'>HarmonyOS</b>應用

    華為開發(fā)者大會2021 HarmonyOS 3開發(fā)者預覽版

    華為開發(fā)者大會2021上,隨著全新的 HarmonyOS 3 開發(fā)者預覽版發(fā)布,HarmonyOS 應用與服務開發(fā)工具套件全家桶也全面升級,
    的頭像 發(fā)表于 10-23 11:20 ?1351次閱讀
    華為<b class='flag-5'>開發(fā)者</b>大會2021 <b class='flag-5'>HarmonyOS</b> 3<b class='flag-5'>開發(fā)者</b>預覽版

    華為開發(fā)者分論壇HarmonyOS學生公開課-10分鐘成為HarmonyOS開發(fā)者

    2021華為開發(fā)者分論壇HarmonyOS學生公開課-10分鐘成為HarmonyOS開發(fā)者
    的頭像 發(fā)表于 10-24 11:03 ?1922次閱讀
    華為<b class='flag-5'>開發(fā)者</b>分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-10分鐘成為<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)者</b>

    華為開發(fā)者分論壇HarmonyOS學生公開課-如何學習HarmonyOS應用開發(fā)

    2021華為開發(fā)者分論壇HarmonyOS學生公開課-如何學習HarmonyOS應用開發(fā)
    的頭像 發(fā)表于 10-24 11:09 ?2131次閱讀
    華為<b class='flag-5'>開發(fā)者</b>分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-如何學習<b class='flag-5'>HarmonyOS</b>應用<b class='flag-5'>開發(fā)</b>?

    2021華為開發(fā)者大會HarmonyOS學生公開課上教你10分鐘成為HarmonyOS開發(fā)者

    2021華為開發(fā)者大會HarmonyOS學生公開課上教你10分鐘成為HarmonyOS開發(fā)者 學習HarmonyOS應用
    的頭像 發(fā)表于 10-24 11:03 ?2128次閱讀
    2021華為<b class='flag-5'>開發(fā)者</b>大會<b class='flag-5'>HarmonyOS</b>學生公開課上教你10分鐘成為<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)者</b>

    華為開發(fā)者分論壇HarmonyOS學生公開課-開發(fā)者成長圖譜

    2021華為開發(fā)者分論壇HarmonyOS學生公開課-開發(fā)者成長圖譜
    的頭像 發(fā)表于 10-24 11:25 ?1970次閱讀
    華為<b class='flag-5'>開發(fā)者</b>分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-<b class='flag-5'>開發(fā)者</b>成長圖譜

    華為開發(fā)者分論壇HarmonyOS學生公開課-HarmonyOS開發(fā)者三大成長階段與學習資源

    2021華為開發(fā)者分論壇HarmonyOS學生公開課-HarmonyOS開發(fā)者三大成長階段與學習資源
    的頭像 發(fā)表于 10-24 11:43 ?2025次閱讀
    華為<b class='flag-5'>開發(fā)者</b>分論壇<b class='flag-5'>HarmonyOS</b>學生公開課-<b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)者</b>三大成長階段與學習資源

    面向HarmonyOS開發(fā)者HarmonyOS 3.0 Beta介紹

    2021年10月,我們面向開發(fā)者發(fā)布了HarmonyOS 3.0 Developer Preview版,但開發(fā)的腳步永不停歇,現(xiàn)在我們又更新了API版本,配套發(fā)布了HarmonyOS
    的頭像 發(fā)表于 07-06 20:34 ?3296次閱讀

    HarmonyOS年度開發(fā)者活動,賦能逾萬名開發(fā)者開啟HarmonyOS學習之旅

    11月4日-11月6日,華為開發(fā)者大會2022(Together)在東莞松山湖成功舉辦!與此同時,HarmonyOS重磅推出HarmonyOS第一課、ArkUI入門訓練營、ArkUI開發(fā)
    的頭像 發(fā)表于 12-19 11:08 ?965次閱讀
    <b class='flag-5'>HarmonyOS</b>年度<b class='flag-5'>開發(fā)者</b>活動,賦能逾萬名<b class='flag-5'>開發(fā)者</b>開啟<b class='flag-5'>HarmonyOS</b>學習之旅

    HarmonyOS 4.0開發(fā)者Beta版來了!

    目前 HarmonyOS 4.0 開發(fā)者 Beta 版招募活動分批進行,專屬 OTA 升級優(yōu)先對已在華為應用市場上架了應用的開發(fā)者 / 合作伙伴開放,未上架過華為應用市場的開發(fā)者請耐心
    的頭像 發(fā)表于 06-25 16:40 ?3419次閱讀
    <b class='flag-5'>HarmonyOS</b> 4.0<b class='flag-5'>開發(fā)者</b>Beta版來了!
    主站蜘蛛池模板: 国产h视频在线观看网站免费| 国产精品久久久久久人妻香蕉 | 国产精品免费久久久久影院| 户外插BBBBB| 男污女XO猛烈的动态图| 天天啪免费视频在线看| 岳的奶大又白又胖| 成人精品视频| 久久国产主播福利在线| 欧美丝袜女同| 亚洲精品久久久久AV无码林星阑| 99久久国产综合精品国| 国产亚洲AV无码成人网站| 内射白浆一区二区在线观看| 亚洲 综合 欧美在线 热| 91青青草原| 国产精品一区二区欧美视频| 伦理 电影在线观看| 挺进老师的紧窄小肉六电影完整版| 竹菊影视一区二区三区| 国产成人啪精品视频免费网 | 区久久AAA片69亚洲| 亚洲精品久久7777777| 办公室里呻吟的丰满老师电影| 寂寞夜晚免费观看视频| 日韩欧美中文字幕在线二视频| 永久久久免费人妻精品| 国产精品JIZZ在线观看A片| 男人边吃奶边摸边做刺激情话| 亚洲爆乳少妇精品无码专区| 9久久免费国产精品特黄| 九九久久久2| 受坐在攻腿上H道具PLAY| 91桃色污无限免费看| 黄色aa大片| 日日夜夜狠狠干| 97超级碰久久久久香蕉人人| 国模沟沟一区二区三区| 色欲精品久久人妻AV中文字幕 | 97在线观看成人免费视频| 黄色日本女人|