日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

HarmonyOS實(shí)戰(zhàn):快遞信息時(shí)間軸效果實(shí)現(xiàn)

尤楓 ? 來(lái)源:jf_54996641 ? 作者:jf_54996641 ? 2025-06-09 16:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

快遞信息時(shí)間軸在購(gòu)物軟件中是必不可少的功能,通過(guò)時(shí)間軸可以展示快遞從發(fā)貨到派送的每一個(gè)環(huán)節(jié)。本篇文章通過(guò)代碼的形式詳細(xì)講解在鴻蒙日常開(kāi)發(fā)中如何實(shí)現(xiàn)時(shí)間軸的效果。(篇尾附有完整源碼)

實(shí)現(xiàn)效果

先看最終實(shí)現(xiàn)的效果,下面通過(guò)代碼講解怎么一步步實(shí)現(xiàn)時(shí)間軸。

需求分析

  1. 快遞信息時(shí)間軸整體包括三個(gè)狀態(tài):開(kāi)始狀態(tài),當(dāng)前狀態(tài),未達(dá)狀態(tài)。
  2. 不同狀態(tài)對(duì)應(yīng)標(biāo)題顏色及圖標(biāo)不同。
  3. 字體顏色可根據(jù)狀態(tài)的不同改變。
  4. 提示文字可以根據(jù)具體情況是否顯示
  5. 時(shí)間軸上的虛線可以根據(jù)當(dāng)前節(jié)點(diǎn)布局的高度動(dòng)態(tài)改變。(重點(diǎn))

根據(jù)具體需求,采用 List 組件實(shí)現(xiàn)時(shí)間軸,然后通過(guò)控制不同 item 的狀態(tài)來(lái)實(shí)現(xiàn)效果。

技術(shù)實(shí)現(xiàn)

  1. 定義節(jié)點(diǎn)數(shù)據(jù)對(duì)象,這里使用不同數(shù)字代表當(dāng)前節(jié)點(diǎn)的狀態(tài):1 表示開(kāi)始,2 表示當(dāng)前,3 表示即將到達(dá)。
export class OrderDetailBean{
   nodeStatus?: number //當(dāng)前節(jié)點(diǎn)狀態(tài) 
   nodeName?: string //節(jié)點(diǎn)名稱(chēng)
   nodeNote?: string //節(jié)點(diǎn)備注
   nodeTime?: string //節(jié)點(diǎn)時(shí)間 
}
  1. 構(gòu)建節(jié)點(diǎn)集合。
aboutToAppear(): void {
    let order1 = new OrderDetailBean()
    order1.nodeStatus = 1
    order1.nodeName = "唐僧已經(jīng)從長(zhǎng)安出發(fā)"
    order1.nodeTime = "1900-7-25  14:30:03"
    order1.nodeNote = ""

    let order2 = new OrderDetailBean()
    order2.nodeStatus = 1
    order2.nodeName = "唐僧到達(dá)五指山"
    order2.nodeNote = "溫馨提示:此處有妖猴出沒(méi)"
    let order3 = new OrderDetailBean()
    order3.nodeStatus = 1
    order3.nodeName = "孫悟空護(hù)送唐僧西天取經(jīng)"
    order3.nodeNote = "請(qǐng)小白龍?zhí)崆皽?zhǔn)備,下一站化身白龍馬。"
    let order4 = new OrderDetailBean()
    order4.nodeStatus = 2
    order4.nodeName = "唐僧到達(dá)高老莊"
    order3.nodeNote = "孫悟空大戰(zhàn)豬八戒"
    let order5 = new OrderDetailBean()
    order5.nodeStatus = 3
    order5.nodeName = "唐僧即將到達(dá)流沙河"
    order5.nodeNote = "收服卷簾大將沙悟凈。"
    let order6 = new OrderDetailBean()
    order6.nodeStatus = 3
    order6.nodeName = "唐僧即將到達(dá)大雷音"
    order6.nodeNote = "取得真經(jīng),修成正果。"
    this.list.push(order1, order2, order3, order4, order5,order6)
  }
  1. 使用 List 組件實(shí)現(xiàn)時(shí)間軸,鴻蒙的 List 組件原生支持橫向和縱向布局,可以根據(jù)實(shí)際需求進(jìn)行調(diào)整。這里使用默認(rèn)縱向布局。
List(){
        ForEach(this.list,(item: object, index: number) = > {
          this.itemView(this.list[index], index)
        })
      }.width("100%")
        .height("100%")
  1. 接下來(lái)就是繪制 List 的 item,從最終的效果圖來(lái)看,虛線部分只會(huì)在首尾之間顯示,這里通過(guò)集合長(zhǎng)度判斷。最后一條虛線不顯示,虛線可以通過(guò)設(shè)置布局邊框的不同樣式實(shí)現(xiàn),這里使用的BorderStyle.Dashe。
// 時(shí)間軸
        if (this.index < this.totalSize - 1) {
          Stack()
            .width(0)
            .borderStyle(BorderStyle.Dashed)
            .borderWidth(0.8)
            .height(this.minHeight)
            .borderColor($r('app.color.color_gray'))

        }
  1. 同時(shí)虛線部分應(yīng)該有最小高度,然后通過(guò)當(dāng)前 Item 的高度變化動(dòng)態(tài)改變虛線的高度,鴻蒙布局組件提供了 onAreaChange 方法用來(lái)監(jiān)聽(tīng)當(dāng)前布局高度的變化,通過(guò)修改最新高度來(lái)實(shí)現(xiàn)虛線的動(dòng)態(tài)變化。注意這個(gè) minHeight 必須使用@state修飾。
.onAreaChange((oldValue: Area, newValue: Area) = > {
        this.minHeight = newValue.height as number
      })
  1. 最后使用 Row 布局將虛線布局和內(nèi)容布局橫向排列,就可以實(shí)現(xiàn)虛線跟隨內(nèi)容高度變化。

完整源碼

@Component
  struct ItemLayout {
    @State bean: OrderDetailProgressBean = new OrderDetailProgressBean()
    index: number = 0
    totalSize: number = 0
    @State minHeight: number = 54

    build() {
      Row() {
        Column() {
          // 時(shí)間軸節(jié)點(diǎn)
          Image(this.getImage(this.bean.nodeStatus ?? 0))
            .width(16)
            .height(16)
            .borderRadius(8)

          // 時(shí)間軸
          if (this.index < this.totalSize - 1) {
            Stack()
              .width(0)
              .borderStyle(BorderStyle.Dashed)
              .borderWidth(0.8)
              .height(this.minHeight)
              .borderColor("#BABEC4")

          }
        }

        // 內(nèi)容區(qū)域
        Column() {
          Text(this.bean.nodeName)
            .fontSize(14)
            .fontColor(this.getColor(this.bean.nodeStatus ?? 0))
            .fontWeight(FontWeight.Medium)


          Text(this.bean.nodeTime)
            .fontSize(12)
            .fontColor(Color.Gray)
            .margin({
              top: 4,
            })
          Text(this.bean.nodeNote)
            .fontSize(12)
            .fontColor(this.bean.nodeStatus == 1 ? Color.Gray : Color.Orange)
            .margin({
              top: 8,
            })

        }
        .margin({
          left: 8,
        })
          .alignItems(HorizontalAlign.Start)
          .width("84%")
          .margin({
            left: 8,
          })
          .onAreaChange((oldValue: Area, newValue: Area) = > {
            this.minHeight = newValue.height as number
          })
      }
      .alignItems(VerticalAlign.Top)
        .width("100%")
    }

    getImage(state: number) {
      if (state == 1) {
        return $r("app.media.icon_complete")
      } else if (state == 2) {
        return $r("app.media.icon_selecte")
      } else {
        return $r("app.media.icon_unselecte")
      }
    }

    getColor(state: number) {
      if (state == 1) {
        return $r("app.color.color_gray")
      } else if (state == 2) {
        return $r("app.color.color_black")
      } else {
        return $r("app.color.color_gray_1")
      }
    }
  }

總結(jié)

本文的重點(diǎn)是知道虛線可以根據(jù)設(shè)置布局樣式實(shí)現(xiàn),然后就是如何實(shí)現(xiàn)虛線和布局動(dòng)態(tài)高度變化同步,通過(guò)鴻蒙原生組件提供的方法可以實(shí)現(xiàn)。

審核編輯 黃宇

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

    關(guān)注

    80

    文章

    2157

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    1688商品快遞費(fèi)用API開(kāi)發(fā)指南

    一、摘要 1688商品快遞費(fèi)用API是阿里巴巴1688平臺(tái)提供的標(biāo)準(zhǔn)接口,主要用于查詢(xún)商品的運(yùn)費(fèi)信息。該接口可以幫助開(kāi)發(fā)者獲取指定商品的快遞費(fèi)用詳情,包括不同快遞公司的運(yùn)費(fèi)價(jià)格、時(shí)效等
    的頭像 發(fā)表于 12-18 10:53 ?639次閱讀

    鳥(niǎo)鳥(niǎo)手持PDA | 掃描快遞單PDA巴槍重塑快遞行業(yè),實(shí)時(shí)更新物流信息

    深入解析手持PDA(巴槍?zhuān)┰?b class='flag-5'>快遞物流行業(yè)的應(yīng)用。了解鳥(niǎo)鳥(niǎo)科技N60和N73S等快遞PDA智能終端如何通過(guò)OCR識(shí)別、4G實(shí)時(shí)互聯(lián)及工業(yè)級(jí)防護(hù),解決掃碼慢、錄入難痛點(diǎn),全面提升收件、派送與分揀效率,助力物流企業(yè)數(shù)字化轉(zhuǎn)型,實(shí)現(xiàn)物流
    的頭像 發(fā)表于 12-05 14:53 ?715次閱讀
    鳥(niǎo)鳥(niǎo)手持PDA | 掃描<b class='flag-5'>快遞</b>單PDA巴槍重塑<b class='flag-5'>快遞</b>行業(yè),實(shí)時(shí)更新物流<b class='flag-5'>信息</b>

    LuatOS中PWM實(shí)現(xiàn)LED亮度調(diào)節(jié)與呼吸燈的實(shí)戰(zhàn)教程

    PWM在LED亮度調(diào)節(jié)和呼吸燈效果實(shí)現(xiàn)方面有著廣泛應(yīng)用。在LuatOS環(huán)境中,如何高效運(yùn)用PWM功能是開(kāi)發(fā)者需要掌握的關(guān)鍵。本實(shí)戰(zhàn)教程將通過(guò)具體案例,引導(dǎo)開(kāi)發(fā)者快速上手,輕松實(shí)現(xiàn)LED的精彩燈光
    的頭像 發(fā)表于 11-11 19:05 ?8643次閱讀
    LuatOS中PWM<b class='flag-5'>實(shí)現(xiàn)</b>LED亮度調(diào)節(jié)與呼吸燈的<b class='flag-5'>實(shí)戰(zhàn)</b>教程

    【RK3568 NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測(cè)Demo,附完整流程與效果

    【RK3568 NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測(cè)Demo,附完整流程與效果
    的頭像 發(fā)表于 11-10 15:58 ?1266次閱讀
    【RK3568 NPU<b class='flag-5'>實(shí)戰(zhàn)</b>】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測(cè)Demo,附完整流程與<b class='flag-5'>效果</b>

    AppGallery Connect(HarmonyOS 5及以上) --修改測(cè)試時(shí)間

    測(cè)試時(shí)間的測(cè)試版本。 在“基礎(chǔ)信息”欄,點(diǎn)擊“測(cè)試時(shí)間”后的“修改”。 3.在彈出的“修改測(cè)試時(shí)間”窗口,選擇新的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束
    發(fā)表于 09-30 16:38

    GraniStudio:獲取信息例程

    1.文件運(yùn)行 導(dǎo)入工程 雙擊運(yùn)行桌面 GraniStudio .exe。 通過(guò)引導(dǎo)界面導(dǎo)入獲取信息運(yùn)動(dòng)例程,點(diǎn)擊導(dǎo)入按鈕。 打開(kāi)獲取信息例程所在路徑,選中獲取
    的頭像 發(fā)表于 08-22 16:40 ?785次閱讀
    GraniStudio:獲取<b class='flag-5'>軸</b><b class='flag-5'>信息</b>例程

    RFID標(biāo)簽在智能快遞柜中的優(yōu)勢(shì)

    RFID標(biāo)簽在智能快遞柜中的優(yōu)勢(shì)高效率:RFID可以快速批量讀取信息,大幅縮短操作時(shí)間,提高快遞存取效率。準(zhǔn)確性:RFID減少了人工操作的錯(cuò)誤率,提高了
    的頭像 發(fā)表于 07-08 13:52 ?666次閱讀
    RFID標(biāo)簽在智能<b class='flag-5'>快遞</b>柜中的優(yōu)勢(shì)

    HarmonyOS next】ArkUI-X休閑益智猜字謎【基礎(chǔ)】

    下圖是在iOS中的運(yùn)行效果 下圖是在HarmonyOS中的運(yùn)行效果 今天咱們來(lái)聊聊如何用ArkUI-X這個(gè)新興框架實(shí)現(xiàn)跨端開(kāi)發(fā),通過(guò)一個(gè)猜字謎小游戲帶大家感受它的開(kāi)發(fā)魅力。本文不僅能讓
    發(fā)表于 06-26 20:01

    HarmonyOS實(shí)戰(zhàn):Tab頂部滑動(dòng)懸停功能實(shí)現(xiàn)

    日常開(kāi)發(fā)過(guò)程中,遇到這種 Scroll 嵌套 List 列表滑動(dòng)頂部懸停的場(chǎng)景十分常見(jiàn),在鴻蒙開(kāi)發(fā)時(shí)也正好實(shí)現(xiàn)了這個(gè)功能,本篇文章將帶你一步步實(shí)現(xiàn) Tab 頂部懸停的效果,建議點(diǎn)贊收藏!
    的頭像 發(fā)表于 06-24 17:07 ?595次閱讀

    HarmonyOS實(shí)戰(zhàn): 城市選擇功能的快速實(shí)現(xiàn)

    最近在日常開(kāi)發(fā)過(guò)程中,需要實(shí)現(xiàn)城市選擇功能,同時(shí)支持模糊搜索。看似簡(jiǎn)單的功能動(dòng)手實(shí)現(xiàn)起來(lái)卻有很多難點(diǎn)。本篇文章詳細(xì)記錄開(kāi)發(fā)過(guò)程中遇到的問(wèn)題和對(duì)應(yīng)的解決方法,希望能夠幫助你,建議點(diǎn)贊收藏!
    的頭像 發(fā)表于 06-24 17:07 ?592次閱讀

    HarmonyOS實(shí)戰(zhàn):3秒實(shí)現(xiàn)一個(gè)自定義輪播圖

    那么簡(jiǎn)單,需要考慮的細(xì)節(jié)很多。不過(guò)在 HarmonyOS實(shí)現(xiàn)一個(gè)輪播圖卻是十分的簡(jiǎn)單,本篇文章教你在最短的時(shí)間內(nèi)快速實(shí)現(xiàn)一個(gè)自定義的 輪播圖,建議點(diǎn)贊收藏!
    的頭像 發(fā)表于 06-24 17:06 ?1617次閱讀

    HarmonyOS 5】桌面快捷方式功能實(shí)現(xiàn)詳解

    HarmonyOS 5】桌面快捷方式功能實(shí)現(xiàn)詳解 ##鴻蒙開(kāi)發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類(lèi)應(yīng)用 (金融理財(cái)# 一、前言 在移動(dòng)應(yīng)用開(kāi)發(fā)中,如何讓用戶(hù)快速觸達(dá)核心
    的頭像 發(fā)表于 06-21 16:42 ?2465次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】桌面快捷方式功能<b class='flag-5'>實(shí)現(xiàn)</b>詳解

    HarmonyOS實(shí)戰(zhàn):自定義時(shí)間選擇器

    前言 最近在日常鴻蒙開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用一些時(shí)間選擇器,鴻蒙官方提供的時(shí)間選擇器滿(mǎn)足不了需求,所以自己動(dòng)手自定義一些經(jīng)常會(huì)使用到的時(shí)間選擇器,希望能幫到你,建議點(diǎn)贊收藏! 實(shí)現(xiàn)
    的頭像 發(fā)表于 06-09 15:51 ?797次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>實(shí)戰(zhàn)</b>:自定義<b class='flag-5'>時(shí)間</b>選擇器

    HarmonyOS實(shí)戰(zhàn):組件化項(xiàng)目搭建

    ?本文將詳細(xì)講解HarmonyOs組件化項(xiàng)目搭建的全過(guò)程,帶領(lǐng)大家實(shí)現(xiàn)一個(gè)組件化項(xiàng)目。 項(xiàng)目創(chuàng)建 首先創(chuàng)建一個(gè)項(xiàng)目工程,點(diǎn)擊開(kāi)發(fā)工具DevEco-Stdio的****File 選項(xiàng),選擇 New 然后點(diǎn)擊 Create Project 。 選擇創(chuàng)建一個(gè)EmptyAbili
    的頭像 發(fā)表于 06-09 14:58 ?814次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>實(shí)戰(zhàn)</b>:組件化項(xiàng)目搭建

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS調(diào)用函數(shù)

    ?【HarmonyOS實(shí)戰(zhàn)指南】手把手教你用ArkTS玩轉(zhuǎn)云函數(shù)文件獲取? 大家好呀今天我們來(lái)聊聊如何通過(guò)HarmonyOS的ArkTS語(yǔ)言實(shí)現(xiàn)云函數(shù)文件獲取功能。整個(gè)過(guò)程就像搭積木一
    發(fā)表于 05-22 18:22
    千阳县| 南丰县| 曲松县| 和政县| 涟源市| 松阳县| 江油市| 吐鲁番市| 调兵山市| 土默特左旗| 沙湾县| 曲水县| 舟山市| 雅江县| 蒙阴县| 营山县| 车险| 五莲县| 罗甸县| 满洲里市| 洛南县| 介休市| 达尔| 临朐县| 治多县| 延边| 定州市| 马关县| 阿合奇县| 秦皇岛市| 大名县| 醴陵市| 南通市| 丽江市| 肥东县| 新营市| 乌兰察布市| 梨树县| 吉水县| 会同县| 太谷县|