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

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

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

3天內不再提示

鴻蒙ArkTS+ArkUI仿微信通訊錄頁面制作【1】

張越 ? 來源:jf_51656278 ? 作者:jf_51656278 ? 2025-06-30 18:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先看效果圖

這個頁面的核心問題在于右邊的字母索引功能的實現,右邊這個組件AlphabetIndexer,說實話我覺得這是文檔的一個bug,完全沒有給他命名,如果要搜都不知道怎么去搜,他是在ArkUI文檔的信息展示里的第一個(因為按字母排序),官方的描述是“可以與容器組件聯動用于按邏輯結構快速定位容器顯示區域的組件。”,這么去描述倒是也沒問題……但是我真的為了找這個組件翻了很久的文檔。

首先我們還是先通過interface來定義數據的規范,在model文件夾里創建一個_Contact.ets文件,通過觀察頁面可以看到,我們這里并沒有用聯系人的頭像,而是用了每個聯系的第一個字。具體分組的時候,是按照第一個字的首字母分組,然后每個組里就是對應的人名。所以這個數據規范的話,首先是一個組名(按照A-Z的字符串),然后是一個全是姓名也就是字符串的數組,對應的代碼如下:

export interface Contact{
  group:string;
  namesList:string[];
}

然后data文件夾里創建一個_Contact.ets用來放置測試用的模擬數據,這個頁面也要先從modal里import對應的數據規范,具體代碼如下

import {Contact} from '../model/_Contact'
export const contactListArr:Contact[] = [
  {group:'A',namesList:['A1','A','愛','A麥子','安琪','A2']},
  {group:'B',namesList:['白白','冰藍']},
  {group:'C',namesList:['晨曦','赤焰','初雪','蒼月','彩蝶']},
  {group:'D',namesList:['黛玉','丹青','冬陽','獨舞','斷橋']},
  {group:'E',namesList:['恩熙','風鈴','飛鴻','梵音','繁星']},
];

以上代碼只寫了部分的測試數據,只是從A-E,那么實際項目中,我們其實還需要對從后端獲取的數據進行處理、分組。因為你在保存用戶數據的時候,不可能讓用戶自己去輸入自己的第一個字的首字母的,沒有哪個項目是這么做的。如何獲取第一個字的首字母,后面我會單獨出一個三方庫來演示實現。

然后我們去做這個頁面
首先是通過import,把前面設置好的數據規范和測試數據import進來,并進行賦值
代碼如下:

import {Contact} from '../model/_Contact'
import {contactListArr} from '../data/_Contact'
contactListArr:Contact[] = contactListArr

然后定義一下字母列表,即有哪些字母

alphabets: 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'];

接著定義一下控制器,因為點擊右邊的AlphabetIndexer組件后,左邊的列表會同步滾動到對應字母的組的位置,所以對于List組件是要加一個控制器的,代碼如下:

scroller:Scroller = new Scroller();

再然后,我們可以看到,每個名字前面都有一個圓形,里面顯示的是姓名的第一個字,這里不是簡單的[0]去獲取第一個字符,因為如果是字母的話,是有可能為小寫的,如果是小寫的字母,就要轉成大寫字母來顯示,如果直接[0]的話,是沒辦法區分中文英文的,就做不到這個小寫字母轉大寫的操作,這里的話,是用charAt……那為什么用charAt不用[0]呢……因為萬一有的人的名字是空呢……charAt還能返回空,[0]就直接undefined了……再通過正則判斷是不是英文,是的話轉大寫,具體代碼如下:

getInitial(name:string):string{
    if (name.length === 0) return '';
    const firstChar = name.charAt(0);
    if (/[a-zA-Z]/.test(firstChar)) {
      return firstChar.toUpperCase();
    }
    return firstChar;
  }

……
后續代碼請看下一篇

審核編輯 黃宇

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

    關注

    60

    文章

    2620

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于鴻蒙Next模擬電話通訊錄及電話撥打

    一、介紹 基于鴻蒙Next模擬電話通訊錄,可以撥打電話,刪除電話等二、場景需求 客戶服務、業務咨詢、回訪處理、溝通交流、信息交流等等 三、業務步驟 第一步:點擊撥打點電話,先判斷設備是否具備通訊能力
    發表于 08-27 15:24

    HarmonyOS NEXT 原生應用開發:社交通訊錄界面實現

    一、案例想法 本DEMO展示了如何在HarmonyOS NEXT平臺上,使用ArkTS開發語言構建一個簡單的社交通訊錄界面。用戶可以在此界面上瀏覽聯系人列表,每個聯系人條目包含姓名、電話號碼以及一個
    發表于 01-09 14:37

    鴻蒙ArkTS+ArkUI仿消息列表頁制作

    ? 先放一下頁面效果: 第一步我們先定義一下數據格式,創建一個數據模型,通過圖片,可以看到每一條數據的字段應當包括:頭像,姓名,最新消息內容和最新消息的時間,創建一個model文件夾,然后在里面新建
    發表于 06-30 18:28

    設計手機通訊錄

    求大神請教,如何設計手機上的通訊錄,要求是什么?
    發表于 11-15 00:18

    如何去掉通訊錄的APK?

    如何去掉通訊錄的APK?
    發表于 03-03 07:02

    企業通訊錄app源碼

    企業通訊錄app源碼這是android 上的源碼。
    發表于 03-28 10:02 ?23次下載

    蘋果手機咋備份通訊錄,如何導出手機通訊錄聯系人?

    掃描結束后,進入到下個界面,這個界面是數據項恢復的主界面,在這里我們可以對通訊錄,備忘,短信等其他數據項進行恢復。
    發表于 07-23 22:13 ?2035次閱讀
    蘋果手機咋備份<b class='flag-5'>通訊錄</b>,如何導出手機<b class='flag-5'>通訊錄</b>聯系人?

    企業節能更厚味-智慧能源通訊錄

    ,廣告置頂,收取廣告費。4.高耗能企業人員免費加入。5.需要打賞通訊錄可根據情況適可而止。通訊錄:http://qun.hk/l/OFFh5k4n主頁:http://hh.ruiec.com能源管控系統開發
    發表于 03-30 20:10 ?513次閱讀

    如何恢復蘋果通訊錄

    蘋果通訊錄恢復方法
    的頭像 發表于 08-26 16:38 ?3953次閱讀

    基于openharmony適配移植的仿通訊錄UI顯示控件

    項目介紹 項目名稱:RoundedLetterView 所屬系列:openharmony的第三方組件適配移植 功能:RoundedLetterView是一個仿通訊錄UI顯示的控件 項目移植狀態:主
    發表于 03-30 09:39 ?2次下載

    C語言程序設計--通訊錄系統

    本題目設計目的是訓練學生的基本編程能力,了解通訊錄系統的開發流程,熟悉C語言的數組和函數的各種基本操作。本程序中涉及結構體、數組、函數等方面的知識。通過本程序的訓練,使學生能對C語言的文件操作有一個
    發表于 04-10 09:17 ?8次下載

    基于Android系統手機通訊錄管理軟件的設計與開發

    電子發燒友網站提供《基于Android系統手機通訊錄管理軟件的設計與開發.doc》資料免費下載
    發表于 10-30 10:09 ?0次下載
    基于Android系統手機<b class='flag-5'>通訊錄</b>管理軟件的設計與開發

    基于Android平臺的手機通訊錄管理系統

    電子發燒友網站提供《基于Android平臺的手機通訊錄管理系統.doc》資料免費下載
    發表于 10-30 10:13 ?0次下載
    基于Android平臺的手機<b class='flag-5'>通訊錄</b>管理系統

    基于Android平臺的個性通訊錄

    電子發燒友網站提供《基于Android平臺的個性通訊錄.doc》資料免費下載
    發表于 10-30 11:32 ?0次下載
    基于Android平臺的個性<b class='flag-5'>通訊錄</b>

    鴻蒙ArkTS+ArkUI仿通訊錄頁面制作【2】

    :string):string{ const colors = [ '#FF9AA2' , '#FFB7B2' , '#FFDAC1' , '#E2F0CB' , '#B5EAD7
    的頭像 發表于 07-01 11:45 ?105次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS+ArkUI</b><b class='flag-5'>仿</b><b class='flag-5'>微</b><b class='flag-5'>信</b><b class='flag-5'>通訊錄</b><b class='flag-5'>頁面</b><b class='flag-5'>制作</b>【2】