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

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

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

鴻蒙基礎(chǔ)組件:AlphabetIndexer

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-19 09:30 ? 次閱讀

AlphabetIndexer

可以與容器組件聯(lián)動(dòng)用于按邏輯結(jié)構(gòu)快速定位容器顯示區(qū)域的組件。

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

子組件

接口

AlphabetIndexer(value: {arrayValue: Array, selected: number})

參數(shù)

參數(shù)名參數(shù)類型必填參數(shù)描述
arrayValueArray字母索引字符串?dāng)?shù)組,不可設(shè)置為空。
selectednumber初始選中項(xiàng)索引值,若超出索引值范圍,則取默認(rèn)值0。 從API version 10開始,該參數(shù)支持[$$]雙向綁定變量。

屬性

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

名稱參數(shù)類型描述
color[ResourceColor]設(shè)置文字顏色。 默認(rèn)值:0x99000000。
selectedColor[ResourceColor]設(shè)置選中項(xiàng)文字顏色。 默認(rèn)值:0xFF254FF7。
popupColor[ResourceColor]設(shè)置提示彈窗文字顏色。 默認(rèn)值:0xFF254FF7。
selectedBackgroundColor[ResourceColor]設(shè)置選中項(xiàng)背景顏色。 默認(rèn)值:0x1F0A59F7。
popupBackground[ResourceColor]設(shè)置提示彈窗背景色。 默認(rèn)值:0xFFFFFFFF。
usingPopupboolean設(shè)置是否使用提示彈窗。 默認(rèn)值:false。
selectedFont[Font]設(shè)置選中項(xiàng)文字樣式。 默認(rèn)值: { size:'12.0fp', style:FontStyle.Normal, weight:FontWeight.Normal, family:'HarmonyOS Sans' }
popupFont[Font]設(shè)置提示彈窗字體樣式。 默認(rèn)值: { size:'24.0vp', style:FontStyle.Normal, weight:FontWeight.Normal, family:'HarmonyOS Sans' }
font[Font]設(shè)置字母索引條默認(rèn)字體樣式。 默認(rèn)值: { size:'12.0fp', style:FontStyle.Normal, weight:FontWeight.Normal, family:'HarmonyOS Sans' }
itemSizestringnumber
alignStylevalue: [IndexerAlign], offset10+?: [Length]value:設(shè)置字母索引條彈框的對齊樣式,支持彈窗顯示在索引條右側(cè)和左側(cè)。 默認(rèn)值: IndexerAlign.Right。 offset:設(shè)置提示彈窗與索引條之間間距,大于等于0為有效值,在不設(shè)置或設(shè)置為小于0的情況下間距與popupPosition.x相同。與popupPosition同時(shí)設(shè)置時(shí),水平方向上offset生效,豎直方向上popupPosition.y生效。
selectednumber設(shè)置選中項(xiàng)索引值。 默認(rèn)值:0。 從API version 10開始,該參數(shù)支持[$$]雙向綁定變量。
popupPosition[Position]設(shè)置彈出窗口相對于索引器條上邊框中點(diǎn)的位置。 默認(rèn)值:{x:60.0, y:48.0}。
popupSelectedColor10+[ResourceColor]設(shè)置提示彈窗非字母部分選中文字色。 默認(rèn)值:#FF182431
popupUnselectedColor10+[ResourceColor]設(shè)置提示彈窗非字母部分未選中文字色。 默認(rèn)值:#FF182431
popupItemFont10+[Font]設(shè)置提示彈窗非字母部分字體樣式。 默認(rèn)值: { size:24, style:FontStyle.Medium }
popupItemBackgroundColor10+[ResourceColor]設(shè)置提示彈窗非字母部分背景色。 默認(rèn)值:#FFFFFF

IndexerAlign枚舉說明

名稱描述
Left彈框顯示在索引條右側(cè)。
Right彈框顯示在索引條左側(cè)。

事件

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

名稱功能描述
onSelect(callback: (index: number) => void)8+索引條選中回調(diào),返回值為當(dāng)前選中索引。
onRequestPopupData(callback: (index: number) => Array)8+選中字母索引后,請求索引提示彈窗顯示內(nèi)容回調(diào)。 返回值:索引對應(yīng)的字符串?dāng)?shù)組,此字符串?dāng)?shù)組在彈窗中豎排顯示,字符串列表最多顯示5個(gè),超出部分可以滑動(dòng)顯示。
onPopupSelect(callback: (index: number) => void)8+字母索引提示彈窗字符串列表選中回調(diào)。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

示例

// xxx.ets
@Entry
@Component
struct AlphabetIndexerSample {
  private arrayA: string[] = ['安']
  private arrayB: string[] = ['卜', '白', '包', '畢', '丙']
  private arrayC: string[] = ['曹', '成', '陳', '催']
  private arrayL: string[] = ['劉', '李', '樓', '梁', '雷', '呂', '柳', '盧']
  private value: string[] = ['#', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
  'H', 'I', 'J', 'K', 'L', 'M', 'N',
  'O', 'P', 'Q', 'R', 'S', 'T', 'U',
  'V', 'W', 'X', 'Y', 'Z']

  build() {
    Stack({ alignContent: Alignment.Start }) {
      Row() {
        List({ space: 20, initialIndex: 0 }) {
          ForEach(this.arrayA, (item: string) = > {
            ListItem() {
              Text(item)
                .width('80%')
                .height('5%')
                .fontSize(30)
                .textAlign(TextAlign.Center)
            }.editable(true)
          }, (item: string) = > item)

          ForEach(this.arrayB, (item: string) = > {
            ListItem() {
              Text(item)
                .width('80%')
                .height('5%')
                .fontSize(30)
                .textAlign(TextAlign.Center)
            }.editable(true)
          }, (item: string) = > item)

          ForEach(this.arrayC, (item: string) = > {
            ListItem() {
              Text(item)
                .width('80%')
                .height('5%')
                .fontSize(30)
                .textAlign(TextAlign.Center)
            }.editable(true)
          }, (item: string) = > item)

          ForEach(this.arrayL, (item: string) = > {
            ListItem() {
              Text(item)
                .width('80%')
                .height('5%')
                .fontSize(30)
                .textAlign(TextAlign.Center)
            }.editable(true)
          }, (item: string) = > item)
        }
        .width('50%')
        .height('100%')

        AlphabetIndexer({ arrayValue: this.value, selected: 0 })
          .selectedColor(0xFFFFFF) // 選中項(xiàng)文本顏色
          .popupColor(0xFFFAF0) // 彈出框文本顏色
          .selectedBackgroundColor(0xCCCCCC) // 選中項(xiàng)背景顏色
          .popupBackground(0xD2B48C) // 彈出框背景顏色
          .usingPopup(true) // 是否顯示彈出框
          .selectedFont({ size: 16, weight: FontWeight.Bolder }) // 選中項(xiàng)字體樣式
          .popupFont({ size: 30, weight: FontWeight.Bolder }) // 彈出框內(nèi)容的字體樣式
          .itemSize(28) // 每一項(xiàng)的尺寸大小
          .alignStyle(IndexerAlign.Left) // 彈出框在索引條右側(cè)彈出
          .popupSelectedColor(0x00FF00)
          .popupUnselectedColor(0x0000FF)
          .popupItemFont({ size: 30, style: FontStyle.Normal })
          .popupItemBackgroundColor(0xCCCCCC)
          .onSelect((index: number) = > {
            console.info(this.value[index] + ' Selected!')
          })
          .onRequestPopupData((index: number) = > {
            if (this.value[index] == 'A') {
              return this.arrayA // 當(dāng)選中A時(shí),彈出框里面的提示文本列表顯示A對應(yīng)的列表arrayA,選中B、C、L時(shí)也同樣
            } else if (this.value[index] == 'B') {
              return this.arrayB
            } else if (this.value[index] == 'C') {
              return this.arrayC
            } else if (this.value[index] == 'L') {
              return this.arrayL
            } else {
              return [] // 選中其余子母項(xiàng)時(shí),提示文本列表為空
            }
          })
          .onPopupSelect((index: number) = > {
            console.info('onPopupSelected:' + index)
          })
      }
      .width('100%')
      .height('100%')
    }
  }
}

alphabet

審核編輯 黃宇

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

    關(guān)注

    1

    文章

    495

    瀏覽量

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

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42489
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)基礎(chǔ)-Web組件之cookie操作

    }) ... } ... 本文章主要是對鴻蒙開發(fā)當(dāng)中ArkTS語言的基礎(chǔ)應(yīng)用實(shí)戰(zhàn),Web組件里的cookie操作。更多的鴻蒙應(yīng)用開發(fā)技術(shù),可以前往我的主頁學(xué)習(xí)更多,下面是一張鴻蒙
    發(fā)表于 01-14 21:31

    鴻蒙開發(fā)OpenHarmony組件復(fù)用案例

    ) } }, item => item) } } } 本文主要是對鴻蒙開發(fā)基礎(chǔ)當(dāng)中的OpenHarmony技術(shù)組件復(fù)用示例, 更多鴻蒙開發(fā)OpenHarmony技術(shù)可以在主頁閱讀更多
    發(fā)表于 01-15 17:37

    鴻蒙實(shí)戰(zhàn):HarmonyOS NEXT【城市選擇】

    相近的城市,例如輸入\"a\",會出現(xiàn)\"阿爾山\"、“阿勒泰地區(qū)”、“安慶”、“安陽”。 下方城市列表通過AlphabetIndexer組件實(shí)現(xiàn)拼音索引條
    發(fā)表于 02-29 15:50

    鴻蒙有3D顯示組件嗎?

    鴻蒙有3D顯示組件嗎?
    發(fā)表于 11-13 07:33

    鴻蒙開源第三方組件資料合集

    1、鴻蒙開源第三方組件——日志工具組件Timber_ohosTimber_ohos是一個(gè)帶有小型可擴(kuò)展API的日志工具組件,它可以給開發(fā)者提供統(tǒng)一的API接口,來記錄不同類型的日志,幫
    發(fā)表于 03-23 09:53

    如何在鴻蒙的webview上面放其它組件

    需求:需要在鴻蒙的webview上顯示一個(gè)網(wǎng)頁,在webview上面再添加一個(gè)文本,但是無論怎么webview都會覆蓋掉其它組件,這個(gè)是鴻蒙把webview的優(yōu)先級設(shè)置 最高了嗎?無論是什么布局都無法 在webview上面放 其
    發(fā)表于 03-28 10:00

    請問鴻蒙的JS UI如何獲得當(dāng)前組件的Value的值?

    鴻蒙的JS UI如何獲得當(dāng)前組件的Value的值和,自定義一個(gè)屬性customeVal的值{{title}}此處不一定是Button,有可能是Text,Image,也有可能是list的for循環(huán)
    發(fā)表于 04-07 11:52

    HarmonyOS AlphabetIndexer組件bug的解決思路分享

    AlphabetIndexer組件可以使用,然后運(yùn)行官方demo,各種編譯和運(yùn)行報(bào)錯(cuò),然后先解決然后編譯報(bào)錯(cuò),運(yùn)行報(bào)錯(cuò),最后結(jié)果運(yùn)行無效果。最后解決就是放棄該組件,想著自定義的一個(gè)組件
    發(fā)表于 04-26 10:44

    請問一下鴻蒙里面沒有videoview組件那用什么來播放視頻文件呢?

      鴻蒙里面沒有videoview組件那用什么來播放視頻文件呢?
    發(fā)表于 05-31 16:42

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-聲明式開發(fā)范式組件匯總

    、Web、XComponent容器組件AlphabetIndexer、Badge、Column、ColumnSplit、Counter、Flex、GridContainer、Grid、GridItem
    發(fā)表于 01-19 11:14

    鴻蒙系統(tǒng)的手勢操控組件代碼現(xiàn)已開源

    基于安卓平臺的手勢操控組件 PinchImageView-ohos,實(shí)現(xiàn)鴻蒙的功能化遷移和重構(gòu)。代碼已經(jīng)開源,歡迎各位開發(fā)者提出寶貴意見。 開源地址: https://gitee.com
    的頭像 發(fā)表于 06-24 18:16 ?2694次閱讀

    基于AndroidCrop進(jìn)行鴻蒙化的開源圖片裁剪組件

    原安卓項(xiàng)目版本。 項(xiàng)目介紹 項(xiàng)目名稱:開源圖片裁剪組件 所屬系列:鴻蒙的第三方組件適配移植 功能:將裁剪框在所選圖片上移動(dòng)或縮放,裁剪圖片選定區(qū)域 項(xiàng)目移植狀態(tài):支持組件核心功能 調(diào)用
    發(fā)表于 03-23 09:53 ?2次下載

    鴻蒙ArkUI開發(fā)-Tabs組件的使用

    鴻蒙ArkUI開發(fā)-Tabs組件的使用
    的頭像 發(fā)表于 01-19 16:01 ?1413次閱讀
    <b class='flag-5'>鴻蒙</b>ArkUI開發(fā)-Tabs<b class='flag-5'>組件</b>的使用

    鴻蒙ArkTS容器組件:Scroll

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