91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-06 15:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

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

相關(guān)概念

  • [Flex組件]:以彈性方式布局子組件的容器組件。
  • [Search組件]:搜索框組件,適用于瀏覽器的搜索內(nèi)容輸入框等應(yīng)用場景。
  • [Text組件]:顯示一段文本的組件。
  • [Image組件]:圖片組件,支持本地圖片和網(wǎng)絡(luò)圖片的渲染展示。
  • [Scroll組件]:可滑動的容器組件,當(dāng)子組件的布局尺寸超過父組件的視口時,內(nèi)容可以滑動。
  • [條件渲染]:條件渲染可根據(jù)應(yīng)用的不同狀態(tài),使用if、else和else if渲染對應(yīng)狀態(tài)下的UI內(nèi)容。
  • [循環(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ā)板為例,參照以下步驟進(jìn)行:

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

代碼結(jié)構(gòu)解讀

本篇Codelab只對核心代碼進(jìn)行講解,對于完整代碼,我們會在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é)中,我們需要完成搜索框布局的編寫,并實(shí)現(xiàn)文本輸入和點(diǎn)擊事件。效果如圖所示:

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

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

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

  1. 使用@State定義變量searchInput,存儲搜索框輸入的文本內(nèi)容。
  2. 在Search組件參數(shù)中,將變量searchInput賦值給參數(shù)value,參數(shù)placeholder填寫提示內(nèi)容,參數(shù)icon表示搜索圖標(biāo)路徑。
  3. 設(shè)置高度height、寬度width、背景顏色backgroundColor、提示內(nèi)容顏色placeholderColor等屬性。
  4. 設(shè)置onChange事件,將用戶輸入的內(nèi)容綁定到變量searchInput中。
  5. 使用@Link定義一個數(shù)組變量searchArr,點(diǎn)擊搜索文本按鈕時,將用戶輸入的內(nèi)容即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,存放最近搜索文本內(nèi)容。
  2. 在構(gòu)造參數(shù)中,使用$符號引用@State修飾的變量searchArr,將父組件的變量searchArr與子組件searchArr變量關(guān)聯(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é)中,我們需要完成清除記錄布局的編寫,并實(shí)現(xiàn)條件渲染。效果如圖所示:

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

  1. 使用@Component新增一個自定義組件,組件名為ClearSearch。
  2. 在build()中使用Flex作為容器組件,實(shí)現(xiàn)子組件水平排列。
  3. 使用if/else實(shí)現(xiàn)條件渲染:當(dāng)有搜索內(nèi)容時,顯示最近搜索的文本和清除搜索內(nèi)容圖標(biāo);否則就顯示沒有搜索內(nèi)容和相關(guān)圖片。
  4. 使用@Link定義數(shù)組變量searchArr,當(dāng)點(diǎn)擊清除搜索內(nèi)容圖標(biāo)時,所有最近搜索內(nèi)容清空。
// ClearSearch.ets
@Component
export default struct ClearSearch {
  // 搜索內(nèi)容數(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é)中,我們需要完成彈性布局的功能樣式,并實(shí)現(xiàn)循環(huán)渲染。效果如圖所示:

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

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

  build() {
    Scroll() {
      // Flex布局, wrap設(shè)置成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 })
    }
    ...
  }
}

審核編輯 黃宇

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

    關(guān)注

    26

    文章

    6294

    瀏覽量

    118255
  • 開發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    773

    瀏覽量

    18016
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2963

    瀏覽量

    45929
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2153

    瀏覽量

    36075
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3953

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    HarmonyOS開發(fā)者

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

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

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

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

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

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

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

    華為開發(fā)者HarmonyOS零基礎(chǔ)入門:四步實(shí)現(xiàn)HarmonyOS應(yīng)用

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

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

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

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

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

    華為開發(fā)者分論壇HarmonyOS學(xué)生公開課-如何學(xué)習(xí)HarmonyOS應(yīng)用開發(fā)?

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

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

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

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

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

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

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

    面向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 ?4292次閱讀

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

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

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

    目前 HarmonyOS 4.0 開發(fā)者 Beta 版招募活動分批進(jìn)行,專屬 OTA 升級優(yōu)先對已在華為應(yīng)用市場上架了應(yīng)用的開發(fā)者 / 合作伙伴開放,未上架過華為應(yīng)用市場的開發(fā)者請耐心
    的頭像 發(fā)表于 06-25 16:40 ?4606次閱讀
    <b class='flag-5'>HarmonyOS</b> 4.0<b class='flag-5'>開發(fā)者</b>Beta版來了!