HarmonyOS 鸿蒙Next ListItem 左滑删除

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ListItem 左滑删除

cke_141.png

如果滑动距离长一点,按钮会跑左边去,这个能控制么?
cke_7979.png
控制左滑只展示按钮的宽度,不要一整行。

5 回复
麻烦楼主给个demo呢,这边看一下问题,是否可以规避

我贴出来了demo,辛苦帮忙看一下。

import { hilog } from “@kit.PerformanceAnalysisKit”

@Component export default struct ListDemoPage { @State items: Array<string> = [ ‘列表1’, ‘列表2’, ‘列表3’, ‘列表4’, ]

@Builder deleteItemAction(item: string) { Row() { Button(‘删除’) .width(‘100vp’) .fontSize(‘18vp’) .onClick(() => {

    })
}.width('100vp')

}

build() { Column() { Text(‘列表Demo’) .fontColor(Color.Black) .fontSize(‘18fp’)

  List() {
    ForEach(this.items, (item: string) =&gt; {
      ListItem() {
        Text(item)
      }
      .height('48vp')
      .width('100%')
      .transition({ type: TransitionType.Delete, opacity: 0 })
      .swipeAction({
        end: {
          builder: () =&gt; {
            this.deleteItemAction(item)
          },
          onAction: () =&gt; {
            animateTo({ duration: 1000 }, () =&gt; {
              let index = this.items.indexOf(item)
              hilog.info(0x000, 'TAG', `delete item index: ${index}`)
            })
          },
          actionAreaDistance: '56vp'
        },
        edgeEffect: SwipeEdgeEffect.None
      })
    })
  }
  .width('100%')
  .height('100%')
}
.justifyContent(FlexAlign.Start)
.alignItems(HorizontalAlign.Start)
.width('100%')
.height('100%')
.padding('12vp')

} }

本地测试了下,是因为这个onAction,让你进入了长距删除事件了,onAction: 组件进入长距删除区后删除ListItem时调用,进入长距删除区后抬手时触发。 可以看一下文档,我把onAction删除了就不会出现你的问你题了: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-listitem-V5#swipeactionitem10对象说明

在HarmonyOS鸿蒙系统中,实现Next ListItem左滑删除功能通常涉及对列表项(ListItem)的自定义开发以及手势识别的处理。以下是一个简要的实现思路:

  1. 自定义ListItem布局:首先,你需要为ListItem设计一个自定义布局,其中包括一个可视化的删除按钮或图标,该按钮或图标在默认情况下是隐藏的。

  2. 手势识别:利用鸿蒙系统的触摸事件监听机制,识别用户的左滑手势。当用户左滑时,逐渐显示删除按钮或图标。

  3. 删除逻辑:当删除按钮或图标被点击时,执行相应的删除逻辑,比如从数据源中移除该项,并刷新列表界面。

  4. 动画效果:为了提升用户体验,可以在左滑显示删除按钮和删除项时添加平滑的动画效果。

  5. 适配与优化:确保在不同设备和屏幕尺寸上都能正确显示和响应。

在开发过程中,你可能需要查阅HarmonyOS的官方文档,了解更详细的API使用方法和最佳实践。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部