女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

鴻蒙ArkTS容器組件:List

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-09 14:57 ? 次閱讀

List

列表包含一系列相同寬度的列表項。適合連續、多行呈現同類數據,例如圖片和文本。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • 該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。
  • 該組件回彈的前提是要有滾動。內容小于一屏時,沒有回彈效果。

子組件

僅支持[ListItem]、[ListItemGroup]子組件。

說明:

List的子組件的索引值計算規則:

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

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

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

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

ListItemGroup作為一個整體計算一個索引值,ListItemGroup內部的ListItem不計算索引值。

List子組件visibility屬性設置為Hidden或None依然會計算索引值。

List子組件的visibility屬性設置為None時不顯示,但該子組件上下的space還會生效。

接口

List(value?:{space?: number | string, initialIndex?: number, scroller?: Scroller})

從API version 9開始,該接口支持在ArkTS卡片中使用。

參數:

參數名參數類型必填參數描述
spacenumberstring
initialIndexnumber設置當前List初次加載時視口起始位置顯示的item的索引值。 默認值:0**說明:**設置為負數或超過了當前List最后一個item的索引值時視為無效取值,無效取值按默認值顯示。
scroller[Scroller]可滾動組件的控制器。用于與可滾動組件進行綁定。**說明:**不允許和其他滾動類組件綁定同一個滾動控制對象。

屬性

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

名稱參數類型描述
listDirection[Axis]設置List組件排列方向。 默認值:Axis.Vertical 從API version 9開始,該接口支持在ArkTS卡片中使用。
divider{ strokeWidth: [Length], color?:[ResourceColor], startMargin?: Length, endMargin?: Length }null
scrollBar[BarState]設置滾動條狀態。 默認值:BarState.Off 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**API version 9及以下版本默認值為BarState.Off,API version 10的默認值為BarState.Auto。
cachedCountnumber設置列表中ListItem/ListItemGroup的預加載數量,只在[LazyForEach]中生效,其中ListItemGroup將作為一個整體進行計算,ListItemGroup中的所有ListItem會一次性全部加載出來。具體使用可參考[減少應用白塊說明]。 默認值:1 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**單列模式下,會在List顯示的ListItem前后各緩存cachedCount個ListItem。 多列模式下, 會在List顯示的ListItem前后各緩存cachedCount*列數個ListItem。
edgeEffect[EdgeEffect]設置組件的滑動效果,支持彈簧效果和陰影效果。 默認值:EdgeEffect.Spring 從API version 9開始,該接口支持在ArkTS卡片中使用。
chainAnimationboolean設置當前List是否啟用鏈式聯動動效,開啟后列表滑動以及頂部和底部拖拽時會有鏈式聯動的效果。鏈式聯動效果:List內的list-item間隔一定距離,在基本的滑動交互行為下,主動對象驅動從動對象進行聯動,驅動效果遵循彈簧物理動效。 默認值:false - false:不啟用鏈式聯動。 - true:啟用鏈式聯動。 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**鏈式動效生效后,List的分割線不顯示。 鏈式動效生效需要滿足以下前提條件: - List邊緣效果為Spring類型 - List沒有啟用多列模式
multiSelectable8+boolean是否開啟鼠標框選。 默認值:false - false:關閉框選。 - true:開啟框選。 從API version 9開始,該接口支持在ArkTS卡片中使用。
lanes9+number[LengthConstrain], gutter10+?:[Dimension]
alignListItem9+[ListItemAlign]List交叉軸方向寬度大于ListItem交叉軸寬度 * lanes時,ListItem在List交叉軸方向的布局方式,默認為首部對齊。 默認值:ListItemAlign.Start 該接口支持在ArkTS卡片中使用。
sticky9+[StickyStyle]配合[ListItemGroup]組件使用,設置ListItemGroup中header和footer是否要吸頂或吸底。 默認值:StickyStyle.None 該接口支持在ArkTS卡片中使用。**說明:**sticky屬性可以設置為 StickyStyle.Header
scrollSnapAlign10+[ScrollSnapAlign]設置列表項滾動結束對齊效果。 默認值:ScrollSnapAlign.NONE**說明:**只支持ListItem等高情況下,設置列表項滾動結束對齊效果。
enableScrollInteraction10+boolean設置是否支持滾動手勢,當設置為false時,無法通過手指或者鼠標滾動,但不影響控制器的滾動接口。 默認值:true
nestedScroll10+[NestedScrollOptions]嵌套滾動選項。設置向前向后兩個方向上的嵌套滾動模式,實現與父組件的滾動聯動。
friction10+number[Resource]

ListItemAlign9+枚舉說明

該接口支持在ArkTS卡片中使用。

名稱描述
StartListItem在List中,交叉軸方向首部對齊。
CenterListItem在List中,交叉軸方向居中對齊。
EndListItem在List中,交叉軸方向尾部對齊。

StickyStyle9+枚舉說明

該接口支持在ArkTS卡片中使用。

名稱描述
NoneListItemGroup的header不吸頂,footer不吸底。
HeaderListItemGroup的header吸頂,footer不吸底。
FooterListItemGroup的footer吸底,header不吸底。

說明:

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

ScrollSnapAlign10+枚舉說明

設置列表項滾動結束對齊效果。

從API version 10開始,該接口支持在ArkTS卡片中使用。

左右和上下這種兩端對齊的樣式:當列表位移至末端,則需要將末端的item完整顯示,同時不能露出邊界空白區域,此時另一端可以出現不限位對齊的現象。

只支持item等高場景限位,不等高場景可能存在不準確的情況。

名稱描述
NONE默認無項目滾動對齊效果。滾動結束列表項何時將無限制地停止。
START視圖中的第一項將在列表的開頭對齊。**說明:**當列表位移至末端,需要將末端的item完整顯示,可能出現開頭不對齊的情況。
CENTER視圖中的中間項將在列表中心對齊。**說明:**頂端和末尾的item都可以在列表中心對齊,列表顯示可能露出空白,第一個或最后一個item會對齊到中間位置。
END視圖中的最后一項將在列表末尾對齊。**說明:**當列表位移至頂端,需要將頂端的item完整顯示,可能出現末尾不對齊的情況。

事件

名稱功能描述
onScroll(event: (scrollOffset: number, scrollState: ScrollState) => void)列表滑動時觸發。 - scrollOffset: 每幀滾動的偏移量,List的內容向上滾動時偏移量為正,向下滾動時偏移量為負。 - [scrollState]: 當前滑動狀態。 從API version 9開始,該接口支持在ArkTS卡片中使用。
onScrollIndex(event: (start: number, end: number, center10+: number) => void)有子組件劃入或劃出List顯示區域時觸發。從API version 10開始,List顯示區域中間位置子組件變化時也會觸發。 計算索引值時,ListItemGroup作為一個整體占一個索引值,不計算ListItemGroup內部ListItem的索引值。 - start: List顯示區域內第一個子組件的索引值。 - end: List顯示區域內最后一個子組件的索引值。 - center: List顯示區域內中間位置子組件的索引值。 觸發該事件的條件:列表初始化時會觸發一次,List顯示區域內第一個子組件的索引值或最后一個子組件的索引值有變化時會觸發。從API version 10開始,List顯示區域中間位置子組件變化時也會觸發。 List的邊緣效果為彈簧效果時,在List劃動到邊緣繼續劃動和松手回彈過程不會觸發onScrollIndex事件。 從API version 9開始,該接口支持在ArkTS卡片中使用。
onReachStart(event: () => void)列表到達起始位置時觸發。 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**List初始化時如果initialIndex為0會觸發一次,List滾動到起始位置時觸發一次。List邊緣效果為彈簧效果時,劃動經過起始位置時觸發一次,回彈回起始位置時再觸發一次。
onReachEnd(event: () => void)列表到底末尾位置時觸發。 從API version 9開始,該接口支持在ArkTS卡片中使用。**說明:**List邊緣效果為彈簧效果時,劃動經過末尾位置時觸發一次,回彈回末尾位置時再觸發一次。
onScrollFrameBegin9+(event: (offset: number, state: ScrollState) => { offsetRemain })列表開始滑動時觸發,事件參數傳入即將發生的滑動量,事件處理函數中可根據應用場景計算實際需要的滑動量并作為事件處理函數的返回值返回,列表將按照返回值的實際滑動量進行滑動。 - offset:即將發生的滑動量,單位vp。 - state:當前滑動狀態。 - offsetRemain:實際滑動量,單位vp。 觸發該事件的條件:手指拖動List、List慣性劃動時每幀開始時觸發;List超出邊緣回彈、使用滾動控制器的滾動不會觸發。 該接口支持在ArkTS卡片中使用。**說明:**當listDirection的值為Axis.Vertical時,返回垂直方向滑動量,當listDirection的值為Axis.Horizontal時,返回水平方向滑動量。
onScrollStart9+(event: () => void)列表滑動開始時觸發。手指拖動列表或列表的滾動條觸發的滑動開始時,會觸發該事件。使用[Scroller]滑動控制器觸發的帶動畫的滑動,動畫開始時會觸發該事件。 該接口支持在ArkTS卡片中使用。
onScrollStop(event: () => void)列表滑動停止時觸發。手拖動列表或列表的滾動條觸發的滑動,手離開屏幕并且滑動停止時會觸發該事件;使用[Scroller]滑動控制器觸發的帶動畫的滑動,動畫停止會觸發該事件。 從API version 9開始,該接口支持在ArkTS卡片中使用。
onItemMove(event: (from: number, to: number) => boolean)列表元素發生移動時觸發。 - from: 移動前索引值。 - to: 移動后索引值。
onItemDragStart(event: (event: ItemDragInfo, itemIndex: number) => ((() => any)void)
onItemDragEnter(event: (event: ItemDragInfo) => void)拖拽進入列表元素范圍內時觸發。 - event: 見[ItemDragInfo對象說明]。
onItemDragMove(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number) => void)拖拽在列表元素范圍內移動時觸發。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。
onItemDragLeave(event: (event: ItemDragInfo, itemIndex: number) => void)拖拽離開列表元素時觸發。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽離開的列表元素索引值。
onItemDrop(event: (event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) => void)綁定該事件的列表元素可作為拖拽釋放目標,當在列表元素內停止拖拽時觸發。 - event: 見[ItemDragInfo對象說明]。 - itemIndex: 拖拽起始位置。 - insertIndex: 拖拽插入位置。 - isSuccess: 是否成功釋放。**說明:**跨List拖拽時,當拖拽釋放的位置綁定了onItemDrop時會返回true,否則為false。List內部拖拽時,isSuccess為onItemMove事件的返回值。

ScrollState枚舉說明

從API version 9開始,該接口支持在ArkTS卡片中使用。

名稱描述
Idle空閑狀態。使用控制器提供的方法控制滾動時觸發,拖動滾動條滾動時觸發。**說明:**從API version 10開始,調整為滾動狀態回歸空閑時觸發,控制器提供的無動畫方法控制滾動時觸發。
Scroll滾動狀態。使用手指拖動List滾動時觸發。**說明:**從API version 10開始,拖動滾動條滾動和滾動鼠標滾輪時也會觸發。
Fling慣性滾動狀態。快速劃動松手后進行慣性滾動和劃動到邊緣回彈時觸發。**說明:**從API version 10開始,由動畫控制的滾動都觸發。包括快速劃動松手后的慣性滾動,劃動到邊緣回彈的滾動,快速拖動內置滾動條松手后的慣性滾動,使用滾動控制器提供的帶動畫的方法控制的滾動。

ScrollState枚舉變更如下。

場景API version 9及以下API version 10開始
手指拖動滑動ScrollScroll
慣性滾動FlingFling
過界回彈FlingFling
鼠標滾輪滾動IdleScroll
拖動滾動條IdleScroll
滾動控制器滾動(帶動畫)IdleFling
滾動控制器滾動(不帶動畫)IdleIdle

說明:

要使List處于可編輯模式需配合onItemDelete事件和ListItem的editable屬性,即可編輯模式實現刪除列表項功能,需滿足以下條件(該功能從API9開始廢棄):

  • editMode屬性設置為true。
  • 綁定onItemDelete事件,且事件回調返回true。
  • ListItem的editable屬性設置為true。

實現ListItem拖拽,需滿足以下條件:

  • editMode屬性設置為true(從API9開始無需設置editMode屬性)。
  • 綁定onDragStart事件,且事件回調中返回浮動UI布局。
    HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

示例

示例1

// xxx.ets
@Entry
@Component
struct ListExample {
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  build() {
    Column() {
      List({ space: 20, initialIndex: 0 }) {
        ForEach(this.arr, (item: number) = > {
          ListItem() {
            Text('' + item)
              .width('100%').height(100).fontSize(16)
              .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
          }
        }, (item: string) = > item)
      }
      .listDirection(Axis.Vertical) // 排列方向
      .scrollBar(BarState.Off)
      .friction(0.6)
      .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之間的分界線
      .edgeEffect(EdgeEffect.Spring) // 邊緣效果設置為Spring
      .onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) = > {
        console.info('first' + firstIndex)
        console.info('last' + lastIndex)
        console.info('center' + centerIndex)
      })
      .onScroll((scrollOffset: number, scrollState: ScrollState) = > {
        console.info(`onScroll scrollState = ScrollState` + scrollState + `, scrollOffset = ` + scrollOffset)
      })
      .width('90%')
    }
    .width('100%')
    .height('100%')
    .backgroundColor(0xDCDCDC)
    .padding({ top: 5 })
  }
}

zh-cn_image_0000001174264378

示例2

// xxx.ets
@Entry
@Component
struct ListLanesExample {
  @State arr: string[] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"]
  @State alignListItem: ListItemAlign = ListItemAlign.Start

  build() {
    Column() {
      List({ space: 20, initialIndex: 0 }) {
        ForEach(this.arr, (item: string) = > {
          ListItem() {
            Text('' + item)
              .width('100%')
              .height(100)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0xFFFFFF)
          }
          .border({ width: 2, color: Color.Green })
        }, (item: string) = > item)
      }
      .height(300)
      .width("90%")
      .friction(0.6)
      .border({ width: 3, color: Color.Red })
      .lanes({ minLength: 40, maxLength: 40 })
      .alignListItem(this.alignListItem)
      .scrollBar(BarState.Off)

      Button("點擊更改alignListItem:" + this.alignListItem).onClick(() = > {
        if (this.alignListItem == ListItemAlign.Start) {
          this.alignListItem = ListItemAlign.Center
        } else if (this.alignListItem == ListItemAlign.Center) {
          this.alignListItem = ListItemAlign.End
        } else {
          this.alignListItem = ListItemAlign.Start
        }
      })
    }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
  }
}

list

示例3

// xxx.ets
@Entry
@Component
struct ListExample {
  @State arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  @State editFlag: boolean = false

  build() {
    Stack({ alignContent: Alignment.TopStart }) {
      Column() {
        List({ space: 20, initialIndex: 0 }) {
          ForEach(this.arr, (item: number, index?: number) = > {
            ListItem() {
              Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center }) {
                Text('' + item)
                  .width('100%')
                  .height(80)
                  .fontSize(20)
                  .textAlign(TextAlign.Center)
                  .borderRadius(10)
                  .backgroundColor(0xFFFFFF)
                  .flexShrink(1)
                if (this.editFlag) {
                  Button() {
                    Text("delete").fontSize(16)
                  }.width('30%').height(40)
                  .onClick(() = > {
                    if (index != undefined) {
                      console.info(this.arr[index] + 'Delete')
                      this.arr.splice(index, 1)
                      console.info(JSON.stringify(this.arr))
                      this.editFlag = false
                    }
                  }).stateEffect(true)
                }
              }
            }
          }, (item: string) = > item)
        }.width('90%')
        .scrollBar(BarState.Off)
        .friction(0.6)
      }.width('100%')

      Button('edit list')
        .onClick(() = > {
          this.editFlag = !this.editFlag
        }).margin({ top: 5, left: 20 })
    }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
  }
}

list

審核編輯 黃宇

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

    關注

    1

    文章

    529

    瀏覽量

    18295
  • 鴻蒙
    +關注

    關注

    59

    文章

    2507

    瀏覽量

    43766
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    鴻蒙開發實戰-(ArkUI)List組件和Grid組件的使用

    組件,開發者使用List和Grid組件能夠很輕松的完成一些列表頁面。 List組件的使用 List
    發表于 01-18 20:18

    鴻蒙ArkTS聲明式組件:ScrollBar

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

    鴻蒙ArkTS容器組件:Column

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

    鴻蒙ArkTS容器組件:Flex

    以彈性方式布局子組件容器組件
    的頭像 發表于 07-08 10:19 ?825次閱讀
    <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])的子組件使用。
    的頭像 發表于 07-08 15:17 ?713次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridCol

    鴻蒙ArkTS容器組件:GridItem

    網格容器中單項內容容器
    的頭像 發表于 07-09 09:25 ?705次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridItem

    鴻蒙ArkTS容器組件:ListItemGroup

    組件用來展示列表item分組,寬度默認充滿[List]組件,必須配合List組件來使用。
    的頭像 發表于 07-10 09:20 ?1168次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:ListItemGroup

    鴻蒙ArkTS容器組件:Navigator

    路由容器組件,提供路由跳轉能力。
    的頭像 發表于 07-10 14:55 ?692次閱讀

    鴻蒙ArkTS容器組件:Refresh

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

    鴻蒙ArkTS容器組件:Scroll

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

    鴻蒙ArkTS容器組件:SideBarContainer

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

    鴻蒙ArkTS容器組件:Stack

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

    鴻蒙ArkTS容器組件:Swiper

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

    鴻蒙ArkTS容器組件:Tabs

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

    鴻蒙ArkTS容器組件:WaterFlow

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