HarmonyOS 如何实现事件时间轴

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

时间轴布局可使用list组件,缩放等手势可通过给组件绑定手势事件的方法手势事件:【https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/5_3_u624b_u52bf_u5904_u7406-V5

时间轴样式可参考如下代码

interface DList {
  id:number
  textContent:string
  time:string
  icon:Resource
  isPassed:Boolean
  isCurrent:Boolean
}
@Entry
@Component
struct DemoList {
  @State list:DList[] = [
    {
      id: 1,
      textContent: '当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。在页面内容很多时,若用户需快速定位,可拖拽滚动条,如下图所示。当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。在页面内容很多时,若用户需快速定位,可拖拽滚动条,如下图所示。',
      time:'15:01',
      icon:$r('app.media.icon'),
      isPassed:true,
      isCurrent:false
    },
    {
      id: 2,
      textContent: '当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。',
      time:'15:02',
      icon:$r('app.media.icon'),
      isPassed:false,
      isCurrent:true
    },
    {
      id: 3,
      textContent: '当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。在页面内容很多时,若用户需快速定位,可拖拽滚动条,如下图所示。当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。在页面内容很多时,若用户需快速定位,可拖拽滚动条,如下图所示。',
      time:'15:03',
      icon:$r('app.media.icon'),
      isPassed:false,
      isCurrent:false
    },
    {
      id: 4,
      textContent: '当列表项高度(宽度)超出屏幕高度(宽度)时,列表可以沿垂直(水平)方向滚动。',
      time:'15:04',
      icon:$r('app.media.icon'),
      isPassed:false,
      isCurrent:false
    },
  ]
  @State listLength:Number = this.list.length;
  build() {
    Column(){
      List(){
        ForEach(this.list,(item:DList)=>{
          ListItem(){
            Column(){
              Row(){
                Image(item.isPassed || item.isCurrent? $r('app.media.ic_cart_focus') : $r('app.media.ic_cart_normal'))
                  .width(item.isCurrent?16:10)
                  .height(item.isCurrent?16:10)
                  .margin({right:item.isCurrent?8:5})
                Text(item.time)
              }.margin({left:item.isCurrent?-8:-5})
              Column(){
                Row(){
                  Text(){
                    Span(item.textContent)
                    ImageSpan(item.icon)
                      .width(20)
                      .height(20)
                      .verticalAlign(ImageSpanAlignment.BOTTOM)
                  }
                }
                .padding({left:10})
              }
              .border({width:{left:item.id == this.listLength ? 0 : 1 },color:item.isPassed?'#e3bbbb':'#dddddd'})
            }
            .alignItems(HorizontalAlign.Start)
            .width('80%')
            .margin({bottom:10})
          }
        })
      }.alignListItem(ListItemAlign.Center)
    }
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 如何实现Y旋转?
290浏览 • 1回复 待解决
ArkTS的时间获取如何实现
4805浏览 • 1回复 已解决
HarmonyOS 如何实现事件穿透?
26浏览 • 1回复 待解决
HarmonyOS 如何获取当前时间时间
65浏览 • 1回复 待解决
HarmonyOS boottime时间如何获取
484浏览 • 0回复 待解决
如何获取当前系统时间时间
989浏览 • 1回复 待解决
如何实现事件透传,你会吗?
2185浏览 • 1回复 待解决
如何实现H5自定义事件
2386浏览 • 1回复 待解决
HarmonyOS 控件长按事件怎么实现
26浏览 • 1回复 待解决
HarmonyOS 如何获得GMT时区时间
50浏览 • 1回复 待解决