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

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

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

鴻蒙ArkTS容器組件:Grid

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-09 11:55 ? 次閱讀

Grid

網(wǎng)格容器,由“行”和“列”分割的單元格所組成,通過指定“項目”所在的單元格做出各種各樣的布局。

說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。

子組件

僅支持[GridItem]子組件。

說明:

Grid子組件的索引值計算規(guī)則:

按子組件的順序依次遞增。

if/else語句中,只有條件成立分支內(nèi)的子組件會參與索引值計算,條件不成立分支內(nèi)的子組件不計算索引值。

ForEach/LazyForEach語句中,會計算展開所有子節(jié)點索引值。

[if/else]、[ForEach]和[LazyForEach]發(fā)生變化以后,會更新子節(jié)點索引值。

Grid子組件的visibility屬性設(shè)置為Hidden或None時依然會計算索引值。

Grid子組件的visibility屬性設(shè)置為None時不顯示,但依然會占用子組件對應(yīng)的網(wǎng)格。

Grid子組件設(shè)置position屬性,會占用子組件對應(yīng)的網(wǎng)格,子組件將顯示在相對Grid左上角偏移position的位置。該子組件不會隨其對應(yīng)網(wǎng)格滾動,在對應(yīng)網(wǎng)格滑出Grid顯示范圍外后不顯示。

接口

Grid(scroller?: Scroller, layoutOptions?: GridLayoutOptions)

參數(shù)

參數(shù)名參數(shù)類型必填參數(shù)描述
scroller[Scroller]可滾動組件的控制器。用于與可滾動組件進行綁定。**說明:**不允許和其他[滾動類組件]綁定同一個滾動控制對象。
layoutOptions10+GridLayoutOptions滾動Grid布局選項。

GridLayoutOptions10+

布局選項,配合rowsTemplate、columnsTemplate僅設(shè)置其中一個的Grid使用,可以替代通過columnStart/columnEnd控制GridItem占用多列、rowStart/rowEnd控制GridItem占用多行的場景。

參數(shù):

名稱類型必填描述
regularSize[number, number]大小規(guī)則的GridItem在Grid中占的行數(shù)和列數(shù),只支持占1行1列即[1, 1]。
irregularIndexesnumber[]大小不規(guī)則的GridItem在Grid所有子節(jié)點中的索引值。onGetIrregularSizeByIndex不設(shè)置時irregularIndexes中的GridItem默認占垂直滾動Grid的一整行或水平滾動Grid的一整列。
onGetIrregularSizeByIndex(index: number) => [number, number]獲取不規(guī)則GridItem占用的行數(shù)和列數(shù),布局過程中針對irregularIndexes中的index調(diào)用,開發(fā)者應(yīng)返回index對應(yīng)GridItem占用的行數(shù)和列數(shù)。垂直滾動Grid不支持GridItem占多行,水平滾動Grid不支持GridItem占多列。

屬性

除支持[通用屬性]外,還支持以下屬性:

名稱參數(shù)類型描述
columnsTemplatestring設(shè)置當前網(wǎng)格布局列的數(shù)量或最小列寬值,不設(shè)置時默認1列。 例如, '1fr 1fr 2fr' 是將父組件分3列,將父組件允許的寬分為4等份,第一列占1份,第二列占1份,第三列占2份。 ‘repeat(auto-fit, 90px)’是設(shè)置最小列寬值為90,自動計算列數(shù)和實際列寬。**說明:**設(shè)置為'0fr'時,該列的列寬為0,不顯示GridItem。設(shè)置為其他非法值時,GridItem顯示為固定1列。
rowsTemplatestring設(shè)置當前網(wǎng)格布局行的數(shù)量或最小行高值,不設(shè)置時默認1行。 例如, '1fr 1fr 2fr'是將父組件分三行,將父組件允許的高分為4等份,第一行占1份,第二行占一份,第三行占2份。 ‘repeat(auto-fit, 90px)’是設(shè)置最小行高值為90,自動計算行數(shù)和實際行高。**說明:**設(shè)置為'0fr',則這一行的行寬為0,這一行GridItem不顯示。設(shè)置為其他非法值,按固定1行處理。
columnsGap[Length]設(shè)置列與列的間距。 默認值:0**說明:**設(shè)置為小于0的值時,按默認值顯示。
rowsGap[Length]設(shè)置行與行的間距。 默認值:0**說明:**設(shè)置為小于0的值時,按默認值顯示。
scrollBar[BarState]設(shè)置滾動條狀態(tài)。 默認值:BarState.Off**說明:**API version 9及以下版本默認值為BarState.Off,API version 10的默認值為BarState.Auto。
scrollBarColorstringnumber
scrollBarWidthstringnumber
cachedCountnumber設(shè)置預(yù)加載的GridItem的數(shù)量,只在[LazyForEach]中生效。具體使用可參考[減少應(yīng)用白塊說明]。 默認值:1**說明:**設(shè)置緩存后會在Grid顯示區(qū)域上下各緩存cachedCount*列數(shù)個GridItem。 [LazyForEach]超出顯示和緩存范圍的GridItem會被釋放。 設(shè)置為小于0的值時,按默認值顯示。
editMode 8+boolean設(shè)置Grid是否進入編輯模式,進入編輯模式可以拖拽Grid組件內(nèi)部[GridItem]。 默認值:flase
layoutDirection8+[GridDirection]設(shè)置布局的主軸方向。 默認值:GridDirection.Row
maxCount8+number當layoutDirection是Row/RowReverse時,表示可顯示的最大列數(shù) 當layoutDirection是Column/ColumnReverse時,表示可顯示的最大行數(shù)。 默認值:Infinity**說明:**當maxCount小于minCount時,maxCount和minCount都按默認值處理。 設(shè)置為小于1的值時,按默認值顯示。
minCount8+number當layoutDirection是Row/RowReverse時,表示可顯示的最小列數(shù)。 當layoutDirection是Column/ColumnReverse時,表示可顯示的最小行數(shù)。 默認值:1**說明:**設(shè)置為小于1的值時,按默認值顯示。
cellLength8+number當layoutDirection是Row/RowReverse時,表示一行的高度。 當layoutDirection是Column/ColumnReverse時,表示一列的寬度。 默認值:第一個元素的大小
multiSelectable8+boolean是否開啟鼠標框選。 默認值:false - false:關(guān)閉框選。 - true:開啟框選。**說明:**開啟框選后,可以配合Griditem的selected屬性和onSelect事件獲取GridItem的選中狀態(tài),還可以設(shè)置[選中態(tài)樣式](無默認選中樣式)。
supportAnimation8+boolean是否支持動畫。當前支持GridItem拖拽動畫。 默認值:false**說明:**僅在滾動模式下(只設(shè)置rowsTemplate、columnsTemplate其中一個)支持動畫。
edgeEffect10+[EdgeEffect]設(shè)置組件的滑動效果,支持彈簧效果和陰影效果。 默認值:EdgeEffect.None
enableScrollInteraction10+boolean設(shè)置是否支持滾動手勢,當設(shè)置為false時,無法通過手指或者鼠標滾動,但不影響控制器的滾動接口。 默認值:true
nestedScroll10+[NestedScrollOptions]嵌套滾動選項。設(shè)置向前向后兩個方向上的嵌套滾動模式,實現(xiàn)與父組件的滾動聯(lián)動。
friction10+number[Resource]

Grid組件根據(jù)rowsTemplate、columnsTemplate屬性的設(shè)置情況,可分為以下三種布局模式:

1、rowsTemplate、columnsTemplate同時設(shè)置:

  • Grid只展示固定行列數(shù)的元素,其余元素不展示,且Grid不可滾動。
  • 此模式下以下屬性不生效:layoutDirection、maxCount、minCount、cellLength。
  • Grid的寬高沒有設(shè)置時,默認適應(yīng)父組件尺寸。
  • Gird網(wǎng)格列大小按照Gird自身內(nèi)容區(qū)域大小減去所有行列Gap后按各個行列所占比重分配。
  • GridItem默認填滿網(wǎng)格大小。

2、rowsTemplate、columnsTemplate僅設(shè)置其中的一個:

  • 元素按照設(shè)置的方向進行排布,超出Grid顯示區(qū)域后,Grid可通過滾動的方式展示。
  • 如果設(shè)置了columnsTemplate,Gird滾動方向為垂直方向,主軸方向為垂直方向,交叉軸方向為水平方向。
  • 如果設(shè)置了rowsTemplate,Gird滾動方向為水平方向,主軸方向為水平方向,交叉軸方向為垂直方向。
  • 此模式下以下屬性不生效:layoutDirection、maxCount、minCount、cellLength。
  • 網(wǎng)格交叉軸方向尺寸根據(jù)Gird自身內(nèi)容區(qū)域交叉軸尺寸減去交叉軸方向所有Gap后按所占比重分配。
  • 網(wǎng)格主軸方向尺寸取當前網(wǎng)格交叉軸方向所有GridItem高度最大值。

3、rowsTemplate、columnsTemplate都不設(shè)置:

  • 元素在layoutDirection方向上排布,列數(shù)由Grid的寬度、首個元素的寬度、minCount、maxCount、columnsGap共同決定。
  • 行數(shù)由Grid高度、首個元素高度、cellLength、rowsGap共同決定。超出行列容納范圍的元素不顯示,也不能通過滾動進行展示。
  • 此模式下僅生效以下屬性:layoutDirection、maxCount、minCount、cellLength、editMode、columnsGap、rowsGap。
  • 當前l(fā)ayoutDirection設(shè)置為Row時,先從左到右排列,排滿一行再排一下一列。剩余高度不足時不再布局,整體內(nèi)容頂部居中。
  • 當前l(fā)ayoutDirection設(shè)置為Column時,先從上到下排列,排滿一列再排一下一列,剩余寬度度不足時不再。整體內(nèi)容頂部居中。

GridDirection8+枚舉說明

名稱描述
Row主軸布局方向沿水平方向布局,即自左往右先填滿一行,再去填下一行。
Column主軸布局方向沿垂直方向布局,即自上往下先填滿一列,再去填下一列。
RowReverse主軸布局方向沿水平方向反向布局,即自右往左先填滿一行,再去填下一行。
ColumnReverse主軸布局方向沿垂直方向反向布局,即自下往上先填滿一列,再去填下一列。

說明:

Grid組件[通用屬性clip]的默認值為true。

事件

除支持[通用事件]外,還支持以下事件:

名稱功能描述
onScrollIndex(event: (first: number, last10+: number) => void)當前網(wǎng)格顯示的起始位置/終止位置的item發(fā)生變化時觸發(fā)。網(wǎng)格初始化時會觸發(fā)一次。 - first: 當前顯示的網(wǎng)格起始位置的索引值。 - last: 當前顯示的網(wǎng)格終止位置的索引值。 Grid顯示區(qū)域上第一個子組件/最后一個組件的索引值有變化就會觸發(fā)。
onItemDragStart(event: (event: ItemDragInfo, itemIndex: number) => (() => any)void)
onItemDragEnter(event: (event: ItemDragInfo) => void)拖拽進入網(wǎng)格元素范圍內(nèi)時觸發(fā)。 - event: 見[ItemDragInfo對象說明]。
onItemDragMove(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number) => void)拖拽在網(wǎng)格元素范圍內(nèi)移動時觸發(fā)。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。
onItemDragLeave(event: (event: ItemDragInfo, itemIndex: number) => void)拖拽離開網(wǎng)格元素時觸發(fā)。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽離開的網(wǎng)格元素索引值。
onItemDrop(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) => void)綁定該事件的網(wǎng)格元素可作為拖拽釋放目標,當在網(wǎng)格元素內(nèi)停止拖拽時觸發(fā)。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。 - isSuccess: 是否成功釋放。
onScrollBarUpdate(event: (index: number, offset: number) => ComputedBarAttribute)當前網(wǎng)格顯示的起始位置item發(fā)生變化時觸發(fā),可通過該回調(diào)設(shè)置滾動條的位置及長度。 - index: 當前顯示的網(wǎng)格起始位置的索引值。 - offset: 當前顯示的網(wǎng)格起始位置元素相對網(wǎng)格顯示起始位置的偏移。 - ComputedBarAttribute: 見[ComputedBarAttribute對象說明]。
onScroll10+(event: (scrollOffset: number, scrollState: ScrollState) => void)網(wǎng)格滑動時觸發(fā)。 - scrollOffset: 每幀滾動的偏移量,Grid的內(nèi)容向上滾動時偏移量為正,向下滾動時偏移量為負。 - [scrollState]: 當前滑動狀態(tài)。
onReachStart10+(event: () => void)網(wǎng)格到達起始位置時觸發(fā)。**說明:**Grid初始化時如果initialIndex為0會觸發(fā)一次,Grid滾動到起始位置時觸發(fā)一次。Grid邊緣效果為彈簧效果時,劃動經(jīng)過起始位置時觸發(fā)一次,回彈回起始位置時再觸發(fā)一次。
onReachEnd10+(event: () => void)網(wǎng)格到底末尾位置時觸發(fā)。**說明:**Grid邊緣效果為彈簧效果時,劃動經(jīng)過末尾位置時觸發(fā)一次,回彈回末尾位置時再觸發(fā)一次。
onScrollFrameBegin10+(event: (offset: number, state: ScrollState) => { offsetRemain })網(wǎng)格開始滑動時觸發(fā),事件參數(shù)傳入即將發(fā)生的滑動量,事件處理函數(shù)中可根據(jù)應(yīng)用場景計算實際需要的滑動量并作為事件處理函數(shù)的返回值返回,網(wǎng)格將按照返回值的實際滑動量進行滑動。 - offset:即將發(fā)生的滑動量,單位vp。 - state:當前滑動狀態(tài)。 - offsetRemain:實際滑動量,單位vp。 觸發(fā)該事件的條件:手指拖動Grid、Grid慣性劃動時每幀開始時觸發(fā);Grid超出邊緣回彈、使用滾動控制器的滾動不會觸發(fā)。**說明:**當gridDirection的值為Axis.Vertical時,返回垂直方向滑動量,當gridDirection的值為Axis.Horizontal時,返回水平方向滑動量。
onScrollStart10+(event: () => void)網(wǎng)格滑動開始時觸發(fā)。手指拖動網(wǎng)格或網(wǎng)格的滾動條觸發(fā)的滑動開始時,會觸發(fā)該事件。使用[Scroller]滑動控制器觸發(fā)的帶動畫的滑動,動畫開始時會觸發(fā)該事件。
onScrollStop10+(event: () => void)網(wǎng)格滑動停止時觸發(fā)。手指拖動網(wǎng)格或網(wǎng)格的滾動條觸發(fā)的滑動,手指離開屏幕并且滑動停止時會觸發(fā)該事件;使用[Scroller]滑動控制器觸發(fā)的帶動畫的滑動,動畫停止會觸發(fā)該事件。

ItemDragInfo對象說明

名稱類型描述
xnumber當前拖拽點的x坐標。
ynumber當前拖拽點的y坐標。

ComputedBarAttribute對象說明

名稱類型描述
totalOffsetnumberGrid內(nèi)容相對顯示區(qū)域的總偏移。
totalLengthnumberGrid內(nèi)容總長度。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

QQ截圖20240705211300.png

示例

示例1

// xxx.ets
@Entry
@Component
struct GridExample {
  @State Number: String[] = ['0', '1', '2', '3', '4']
  scroller: Scroller = new Scroller()

  build() {
    Column({ space: 5 }) {
      Grid() {
        ForEach(this.Number, (day: string) = > {
          ForEach(this.Number, (day: string) = > {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height('100%')
                .textAlign(TextAlign.Center)
            }
          }, (day: string) = > day)
        }, (day: string) = > day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .rowsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)

      Text('scroll').fontColor(0xCCCCCC).fontSize(9).width('90%')
      Grid(this.scroller) {
        ForEach(this.Number, (day: string) = > {
          ForEach(this.Number, (day: string) = > {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height(80)
                .textAlign(TextAlign.Center)
            }
          }, (day: string) = > day)
        }, (day: string) = > day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .friction(0.6)
      .edgeEffect(EdgeEffect.Spring)
      .scrollBar(BarState.On)
      .onScrollIndex((first: number) = > {
        console.info(first.toString())
      })
      .onScrollBarUpdate((index: number, offset: number) = > {
        return {totalOffset: (index / 5) * (80 + 10) - offset, totalLength: 80 * 5 + 10 * 4}
      })
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)
      Button('next page')
        .onClick(() = > { // 點擊后滑到下一頁
          this.scroller.scrollPage({ next: true })
        })
    }.width('100%').margin({ top: 5 })
  }
}

zh-cn_image_0000001219744183

示例2

  1. 設(shè)置屬性editMode(true)設(shè)置Grid是否進入編輯模式,進入編輯模式可以拖拽Grid組件內(nèi)部GridItem。
  2. 在[onItemDragStart]回調(diào)中設(shè)置拖拽過程中顯示的圖片。
  3. 在[onItemDrop]中獲取拖拽起始位置,和拖拽插入位置,在[onDrag]回調(diào)中完成交換數(shù)組位置邏輯。
@Entry
@Component
struct GridExample {
  @State numbers: string[] = []
  scroller: Scroller = new Scroller()
  @State text: string = 'drag'

  @Builder pixelMapBuilder() { //拖拽過程樣式
    Column() {
      Text(this.text)
        .fontSize(16)
        .backgroundColor(0xF9CF93)
        .width(80)
        .height(80)
        .textAlign(TextAlign.Center)
    }
  }

  aboutToAppear() {
    for (let i = 1;i <= 15; i++) {
      this.numbers.push(i + '')
    }
  }

  changeIndex(index1: number, index2: number) { //交換數(shù)組位置
    let temp: string;
    temp = this.numbers[index1];
    this.numbers[index1] = this.numbers[index2];
    this.numbers[index2] = temp;
  }

  build() {
    Column({ space: 5 }) {
      Grid(this.scroller) {
        ForEach(this.numbers, (day: string) = > {
          GridItem() {
            Text(day)
              .fontSize(16)
              .backgroundColor(0xF9CF93)
              .width(80)
              .height(80)
              .textAlign(TextAlign.Center)
          }
        })
      }
      .columnsTemplate('1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .onScrollIndex((first: number) = > {
        console.info(first.toString())
      })
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)
      .editMode(true) //設(shè)置Grid是否進入編輯模式,進入編輯模式可以拖拽Grid組件內(nèi)部GridItem
      .onItemDragStart((event: ItemDragInfo, itemIndex: number) = > { //第一次拖拽此事件綁定的組件時,觸發(fā)回調(diào)。
        this.text = this.numbers[itemIndex]
        return this.pixelMapBuilder() //設(shè)置拖拽過程中顯示的圖片。
      })
      .onItemDrop((event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) = > { //綁定此事件的組件可作為拖拽釋放目標,當在本組件范圍內(nèi)停止拖拽行為時,觸發(fā)回調(diào)。
        // isSuccess=false時,說明drop的位置在grid外部;insertIndex > length時,說明有新增元素的事件發(fā)生
        if (!isSuccess || insertIndex >= this.numbers.length) {
          return
        }
        console.info('beixiang' + itemIndex + '', insertIndex + '') //itemIndex拖拽起始位置,insertIndex拖拽插入位置
        this.changeIndex(itemIndex, insertIndex)
      })
    }.width('100%').margin({ top: 5 })
  }
}

示例圖:

網(wǎng)格子組件開始拖拽:

gridDrag

網(wǎng)格子組件拖拽過程中:

gridDrag

網(wǎng)格子組件1與子組件6拖拽交換位置后:

gridDrag

示例3

使用GridLayoutOptions

// xxx.ets
@Entry
@Component
struct GridExample {
  @State Number: String[] = ['0', '1', '2', '3', '4']
  scroller: Scroller = new Scroller()
  layoutOptions1: GridLayoutOptions = {
    regularSize: [1, 1],        // 只支持[1, 1]
    irregularIndexes: [0, 6],   // 索引為0和6的GridItem占用一行
  }

  layoutOptions2: GridLayoutOptions = {
    regularSize: [1, 1],
    irregularIndexes: [0, 7],   // 索引為0和7的GridItem占用的列數(shù)由onGetIrregularSizeByIndex指定
    onGetIrregularSizeByIndex: (index: number) = > {
      if (index === 0) {
        return [1, 5]
      }
      return [1, index % 6 + 1]
    }
  }

  build() {
    Column({ space: 5 }) {
      Grid(this.scroller, this.layoutOptions1) {
        ForEach(this.Number, (day: string) = > {
          ForEach(this.Number, (day: string) = > {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height(80)
                .textAlign(TextAlign.Center)
            }
          }, (day: string) = > day)
        }, (day: string) = > day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .scrollBar(BarState.Off)
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)

      Text('scroll').fontColor(0xCCCCCC).fontSize(9).width('90%')
      // 不使用scroll,需要undefined占位
      Grid(undefined, this.layoutOptions2) {
        ForEach(this.Number, (day: string) = > {
          ForEach(this.Number, (day: string) = > {
            GridItem() {
              Text(day)
                .fontSize(16)
                .backgroundColor(0xF9CF93)
                .width('100%')
                .height(80)
                .textAlign(TextAlign.Center)
            }
          }, (day: string) = > day)
        }, (day: string) = > day)
      }
      .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .scrollBar(BarState.Off)
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)
    }.width('100%').margin({ top: 5 })
  }
}

gridLayoutOptions

審核編輯 黃宇

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

    關(guān)注

    0

    文章

    8

    瀏覽量

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

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42493
收藏 人收藏

    評論

    相關(guān)推薦

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

    組件,開發(fā)者使用List和Grid組件能夠很輕松的完成一些列表頁面。 List組件的使用 List組件簡介 List是很常用的滾動類
    發(fā)表于 01-18 20:18

    鴻蒙ArkTS聲明式組件:ScrollBar

    滾動條組件ScrollBar,用于配合可滾動組件使用,如List、Grid、Scroll。
    的頭像 發(fā)表于 07-01 15:52 ?336次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b>聲明式<b class='flag-5'>組件</b>:ScrollBar

    鴻蒙ArkTS容器組件:Column

    沿垂直方向布局的容器。
    的頭像 發(fā)表于 07-05 16:32 ?288次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Column

    鴻蒙ArkTS容器組件:Flex

    以彈性方式布局子組件容器組件。
    的頭像 發(fā)表于 07-08 10:19 ?280次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Flex

    鴻蒙ArkTS容器組件:GridCol

    柵格子組件,必須作為柵格容器組件([GridRow])的子組件使用。
    的頭像 發(fā)表于 07-08 15:17 ?262次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridCol

    鴻蒙ArkTS容器組件:GridItem

    網(wǎng)格容器中單項內(nèi)容容器。
    的頭像 發(fā)表于 07-09 09:25 ?238次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridItem

    鴻蒙ArkTS容器組件:Navigator

    路由容器組件,提供路由跳轉(zhuǎn)能力。
    的頭像 發(fā)表于 07-10 14:55 ?275次閱讀

    鴻蒙ArkTS容器組件:Refresh

    可以進行頁面下拉操作并顯示刷新動效的容器組件。
    的頭像 發(fā)表于 07-11 16:11 ?297次閱讀

    鴻蒙ArkTS容器組件:RowSplit

    將子組件橫向布局,并在每個子組件之間插入一根縱向的分割線。
    的頭像 發(fā)表于 07-11 22:25 ?180次閱讀

    鴻蒙ArkTS容器組件:Scroll

    可滾動的容器組件,當子組件的布局尺寸超過父組件的尺寸時,內(nèi)容可以滾動。
    的頭像 發(fā)表于 07-12 15:24 ?717次閱讀

    鴻蒙ArkTS容器組件:SideBarContainer

    提供側(cè)邊欄可以顯示和隱藏的側(cè)邊欄容器,通過子組件定義側(cè)邊欄和內(nèi)容區(qū),第一個子組件表示側(cè)邊欄,第二個子組件表示內(nèi)容區(qū)。
    的頭像 發(fā)表于 07-18 15:46 ?327次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:SideBarContainer

    鴻蒙ArkTS容器組件:Stack

    堆疊容器,子組件按照順序依次入棧,后一個子組件覆蓋前一個子組件。
    的頭像 發(fā)表于 07-15 18:23 ?680次閱讀

    鴻蒙ArkTS容器組件:Swiper

    滑塊視圖容器,提供子組件滑動輪播顯示的能力。
    的頭像 發(fā)表于 07-15 09:51 ?325次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Swiper

    鴻蒙ArkTS容器組件:Tabs

    通過頁簽進行內(nèi)容視圖切換的容器組件,每個頁簽對應(yīng)一個內(nèi)容視圖。
    的頭像 發(fā)表于 07-15 09:48 ?469次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Tabs

    鴻蒙ArkTS容器組件:WaterFlow

    瀑布流容器,由“行”和“列”分割的單元格所組成,通過容器自身的排列規(guī)則,將不同大小的“項目”自上而下,如瀑布般緊密布局。
    的頭像 發(fā)表于 07-15 17:35 ?298次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:WaterFlow