国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

鴻蒙開發(fā)實(shí)戰(zhàn)-(ArkUI)List組件和Grid組件的使用

這篇具有很好參考價(jià)值的文章主要介紹了鴻蒙開發(fā)實(shí)戰(zhàn)-(ArkUI)List組件和Grid組件的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在我們常用的手機(jī)應(yīng)用中,經(jīng)常會(huì)見到一些數(shù)據(jù)列表,如設(shè)置頁面、通訊錄、商品列表等。下圖中兩個(gè)頁面都包含列表,“首頁”頁面中包含兩個(gè)網(wǎng)格布局,“商城”頁面中包含一個(gè)商品列表。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

上圖中的列表中都包含一系列相同寬度的列表項(xiàng),連續(xù)、多行呈現(xiàn)同類數(shù)據(jù),例如圖片和文本。常見的列表有線性列表(List列表)和網(wǎng)格布局(Grid列表):

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

為了幫助開發(fā)者構(gòu)建包含列表的應(yīng)用,ArkUI提供了List組件和Grid組件,開發(fā)者使用List和Grid組件能夠很輕松的完成一些列表頁面。

List組件的使用

List組件簡介

List是很常用的滾動(dòng)類容器組件,一般和子組件ListItem一起使用,List列表中的每一個(gè)列表項(xiàng)對(duì)應(yīng)一個(gè)ListItem組件。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

使用ForEach渲染列表

列表往往由多個(gè)列表項(xiàng)組成,所以我們需要在List組件中使用多個(gè)ListItem組件來構(gòu)建列表,這就會(huì)導(dǎo)致代碼的冗余。使用循環(huán)渲染(ForEach)遍歷數(shù)組的方式構(gòu)建列表,可以減少重復(fù)代碼,示例代碼如下:

@Entry
@Component
struct ListDemo {
 private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
 build() {
 Column() {
 List({ space: 10 }) {
        ForEach(this.arr, (item: number) => {
 ListItem() {
            Text(`${item}`)
              .width('100%')
              .height(100)
              .fontSize(20)
              .fontColor(Color.White)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0x007DFF)
          }
        }, item => item)
      }
    }
    .padding(12)
    .height('100%')
    .backgroundColor(0xF1F3F5)
  }
}

效果圖如下:

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

設(shè)置列表分割線

List組件子組件ListItem之間默認(rèn)是沒有分割線的,部分場景子組件ListItem間需要設(shè)置分割線,這時(shí)候您可以使用List組件的divider屬性。divider屬性包含四個(gè)參數(shù):

  • strokeWidth: 分割線的線寬。
  • color: 分割線的顏色。
  • startMargin:分割線距離列表側(cè)邊起始端的距離。
  • endMargin: 分割線距離列表側(cè)邊結(jié)束端的距離。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

List列表滾動(dòng)事件監(jiān)聽

List組件提供了一系列事件方法用來監(jiān)聽列表的滾動(dòng),您可以根據(jù)需要,監(jiān)聽這些事件來做一些操作:

  • onScroll:列表滑動(dòng)時(shí)觸發(fā),返回值scrollOffset為滑動(dòng)偏移量,scrollState為當(dāng)前滑動(dòng)狀態(tài)。
  • onScrollIndex:列表滑動(dòng)時(shí)觸發(fā),返回值分別為滑動(dòng)起始位置索引值與滑動(dòng)結(jié)束位置索引值。
  • onReachStart:列表到達(dá)起始位置時(shí)觸發(fā)。
  • onReachEnd:列表到底末尾位置時(shí)觸發(fā)。
  • onScrollStop:列表滑動(dòng)停止時(shí)觸發(fā)。

使用示例代碼如下:

List({ space: 10 }) {
  ForEach(this.arr, (item) => {
 ListItem() {
      Text(`${item}`)
        ...
    }
  }, item => item)
}
.onScrollIndex((firstIndex: number, lastIndex: number) => {
 console.info('first' + firstIndex)
 console.info('last' + lastIndex)
})
.onScroll((scrollOffset: number, scrollState: ScrollState) => {
 console.info('scrollOffset' + scrollOffset)
 console.info('scrollState' + scrollState)
})
.onReachStart(() => {
 console.info('onReachStart')
})
.onReachEnd(() => {
 console.info('onReachEnd')
})
.onScrollStop(() => {
 console.info('onScrollStop')
})

設(shè)置List排列方向

List組件里面的列表項(xiàng)默認(rèn)是按垂直方向排列的,如果您想讓列表沿水平方向排列,您可以將List組件的listDirection屬性設(shè)置為Axis.Horizontal。 listDirection參數(shù)類型是Axis,定義了以下兩種類型:

  • Vertical(默認(rèn)值):子組件ListItem在List容器組件中呈縱向排列。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

  • Horizontal:子組件ListItem在List容器組件中呈橫向排列。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

Grid組件的使用 Grid組件簡介

Grid組件為網(wǎng)格容器,是一種網(wǎng)格列表,由“行”和“列”分割的單元格所組成,通過指定“項(xiàng)目”所在的單元格做出各種各樣的布局。Grid組件一般和子組件GridItem一起使用,Grid列表中的每一個(gè)條目對(duì)應(yīng)一個(gè)GridItem組件。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

使用ForEach渲染網(wǎng)格布局

和List組件一樣,Grid組件也可以使用ForEach來渲染多個(gè)列表項(xiàng)GridItem,我們通過下面的這段示例代碼來介紹Grid組件的使用。

@Entry
@Component
struct GridExample {
 // 定義一個(gè)長度為16的數(shù)組
 private arr: string[] = new Array(16).fill('').map((_, index) => `item ${index}`);
 
 build() {
 Column() {
 Grid() {
        ForEach(this.arr, (item: string) => {
 GridItem() {
            Text(item)
              .fontSize(16)
              .fontColor(Color.White)
              .backgroundColor(0x007DFF)
              .width('100%')
              .height('100%')
              .textAlign(TextAlign.Center)
          }
        }, item => item)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr')
      .rowsTemplate('1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .height(300)
    }
    .width('100%')
    .padding(12)
    .backgroundColor(0xF1F3F5)
  }
}

示例代碼中創(chuàng)建了16個(gè)GridItem列表項(xiàng)。同時(shí)設(shè)置columnsTemplate的值為’1fr 1fr 1fr 1fr’,表示這個(gè)網(wǎng)格為4列,將Grid允許的寬分為4等分,每列占1份;rowsTemplate的值為’1fr 1fr 1fr 1fr’,表示這個(gè)網(wǎng)格為4行,將Grid允許的高分為4等分,每行占1份。這樣就構(gòu)成了一個(gè)4行4列的網(wǎng)格列表,然后使用columnsGap設(shè)置列間距為10vp,使用rowsGap設(shè)置行間距也為10vp。示例代碼效果圖如下:

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next

上面構(gòu)建的網(wǎng)格布局使用了固定的行數(shù)和列數(shù),所以構(gòu)建出的網(wǎng)格是不可滾動(dòng)的。然而有時(shí)候因?yàn)閮?nèi)容較多,我們通過滾動(dòng)的方式來顯示更多的內(nèi)容,就需要一個(gè)可以滾動(dòng)的網(wǎng)格布局。我們只需要設(shè)置rowsTemplate和columnsTemplate中的一個(gè)即可。 將示例代碼中GridItem的高度設(shè)置為固定值,例如100;僅設(shè)置columnsTemplate屬性,不設(shè)置rowsTemplate屬性,就可以實(shí)現(xiàn)Grid列表的滾動(dòng):

Grid() {
  ForEach(this.arr, (item: string) => {
 GridItem() {
      Text(item)
        .height(100)
        ...
    }
  }, item => item)
}
.columnsTemplate('1fr 1fr 1fr 1fr')
.columnsGap(10)
.rowsGap(10)
.height(300)

此外,Grid像List一樣也可以使用onScrollIndex來監(jiān)聽列表的滾動(dòng)。

arkui  list偏移量,鴻蒙開發(fā),harmonyos,鴻蒙開發(fā),程序員,華為,ArkUI,OpenHarmony,鴻蒙next文章來源地址http://www.zghlxwxcb.cn/news/detail-815120.html

到了這里,關(guān)于鴻蒙開發(fā)實(shí)戰(zhàn)-(ArkUI)List組件和Grid組件的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之NavRouter組件

    鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之NavRouter組件

    鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之NavRouter組件 一、操作環(huán)境 操作系統(tǒng):? Windows 10 專業(yè)版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1+ 二、NavRouter組件 導(dǎo)航組件,默認(rèn)提供點(diǎn)擊響應(yīng)處理,不需要開發(fā)者自定義點(diǎn)擊事件邏輯。 子組件 必須包含兩個(gè)子組件,其中第二個(gè)子組件必須為

    2024年02月21日
    瀏覽(20)
  • 鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之TextInput輸入框組件

    鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之TextInput輸入框組件

    鴻蒙(HarmonyOS)項(xiàng)目方舟框架(ArkUI)之TextInput輸入框組件 一、操作環(huán)境 操作系統(tǒng):? Windows 10 專業(yè)版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、TextInput TextInput(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextInputController}) 參數(shù): 參數(shù)名 參數(shù)類型 必填 參數(shù)描述 placeholder Resou

    2024年02月04日
    瀏覽(22)
  • 初識(shí)鴻蒙跨平臺(tái)開發(fā)框架ArkUI-X

    初識(shí)鴻蒙跨平臺(tái)開發(fā)框架ArkUI-X

    HarmonyOS是一款面向萬物互聯(lián)時(shí)代的、全新的分布式操作系統(tǒng)。在傳統(tǒng)的單設(shè)備系統(tǒng)能力基礎(chǔ)上,HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持手機(jī)、平板、智能穿戴、智慧屏、車機(jī)等多種終端設(shè)備,提供全場景(移動(dòng)辦公、運(yùn)動(dòng)健康、社交通

    2024年02月13日
    瀏覽(38)
  • 鴻蒙HarmonyOS實(shí)戰(zhàn)-ArkUI事件(鍵鼠事件)_ark ui 點(diǎn)擊事件

    鴻蒙HarmonyOS實(shí)戰(zhàn)-ArkUI事件(鍵鼠事件)_ark ui 點(diǎn)擊事件

    .onMouse((event: MouseEvent) = { event.stopPropagation(); // 在Button的onMouse事件中設(shè)置阻止冒泡 this.buttonText = ‘Button onMouse:n’ + ‘’ + \\\'button = ’ + event.button + ‘n’ + \\\'action = ’ + event.action + ‘n’ + ‘x,y = (’ + event.x + ‘,’ + event.y + ‘)’ + ‘n’ + ‘screenXY=(’ + event.screenX + ‘,’ + eve

    2024年04月16日
    瀏覽(24)
  • 鴻蒙系列-如何使用好 ArkUI 的 @Reusable?

    鴻蒙系列-如何使用好 ArkUI 的 @Reusable?

    OpenHarmony 組件復(fù)用機(jī)制 在ArkUI中,UI顯示的內(nèi)容均為組件,由框架直接提供的稱為 系統(tǒng)組件 ,由開發(fā)者定義的稱為 自定義組件 。 在進(jìn)行 UI 界面開發(fā)時(shí),通常不是簡單的將系統(tǒng)組件進(jìn)行組合使用,而是需要考慮代碼可復(fù)用性、業(yè)務(wù)邏輯與UI分離,后續(xù)版本演進(jìn)等因素。因此,

    2024年02月10日
    瀏覽(26)
  • OpenHarmony鴻蒙原生應(yīng)用開發(fā),ArkTS、ArkUI學(xué)習(xí)踩坑學(xué)習(xí)筆記,持續(xù)更新中。

    OpenHarmony鴻蒙原生應(yīng)用開發(fā),ArkTS、ArkUI學(xué)習(xí)踩坑學(xué)習(xí)筆記,持續(xù)更新中。

    結(jié)論:在BIOS里面將Hyper-V打開,DevEco Studio模擬器可以成功啟動(dòng)。 如果在另外的文件中引用組件,需要使用export導(dǎo)出,并在使用的頁面import該自定義組件。 1.自定義組件(被導(dǎo)入組件) 2.組合組件(引用自定義組件) 1、main_pages.json配置文件配置靜態(tài)路由地址,配置文件

    2024年02月04日
    瀏覽(21)
  • HarmonyOS ArkUI實(shí)戰(zhàn)開發(fā)—狀態(tài)管理

    HarmonyOS ArkUI實(shí)戰(zhàn)開發(fā)—狀態(tài)管理

    在聲明式UI編程框架中,UI是程序狀態(tài)的運(yùn)行結(jié)果,用戶構(gòu)建了一個(gè)UI模型,其中應(yīng)用的運(yùn)行時(shí)的狀態(tài)是參數(shù)。當(dāng)參數(shù)改變時(shí),UI作為返回結(jié)果,也將進(jìn)行對(duì)應(yīng)的改變。這些運(yùn)行時(shí)的狀態(tài)變化所帶來的UI的重新渲染,在ArkUI中統(tǒng)稱為狀態(tài)管理機(jī)制。 自定義組件擁有變量,變量必須

    2024年04月27日
    瀏覽(33)
  • HarmonyOS ArkUI實(shí)戰(zhàn)開發(fā)-NAPI 加載原理(下)

    HarmonyOS ArkUI實(shí)戰(zhàn)開發(fā)-NAPI 加載原理(下)

    上一節(jié)筆者給大家講解了 JS 引擎解釋執(zhí)行到? import ?語句的加載流程,總結(jié)起來就是利用? dlopen() ?方法的加載特性向? NativeModuleManager ?內(nèi)部的鏈接尾部添加一個(gè)? NativeModule ,沒有閱讀過上節(jié)文章的小伙伴,筆者強(qiáng)烈建議閱讀一下,本節(jié)筆者繼續(xù)給大家講解 JS 調(diào)用 C++ 方法

    2024年04月27日
    瀏覽(24)
  • OpenHarmony實(shí)戰(zhàn)開發(fā)-Grid和List內(nèi)拖拽交換子組件位置。

    OpenHarmony實(shí)戰(zhàn)開發(fā)-Grid和List內(nèi)拖拽交換子組件位置。

    本示例分別通過onItemDrop()和onDrop()回調(diào),實(shí)現(xiàn)子組件在Grid和List中的子組件位置交換。 使用說明: 拖拽Grid中子組件,到目標(biāo)Grid子組件位置,進(jìn)行兩者位置互換。 拖拽List中子組件,到目標(biāo)List子組件位置,進(jìn)行兩者位置互換。 1.在Grid組件中,通過editMode()打開編輯模式、通過

    2024年04月17日
    瀏覽(28)
  • OpenHarmony開發(fā)實(shí)戰(zhàn):ArkUI常用布局容器對(duì)齊方式(ArkTS

    OpenHarmony開發(fā)實(shí)戰(zhàn):ArkUI常用布局容器對(duì)齊方式(ArkTS

    export struct ColumnShowList { @Consume currentColumnJustifyContent: FlexAlign; @Consume currentColumnAlignItems: HorizontalAlign; build() { Column() { Column() { ForEach(LIST, (item: number) = { CommonItem({ item: item }) }, (item: number) = JSON.stringify(item)) } … // 設(shè)置主軸對(duì)齊方式 ColumnMainAlignRadioList() .margin({ top: MARGIN_FONT_SIZE_SP

    2024年04月14日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包