HarmonyOS 鸿蒙Next如何禁用swipeAction

HarmonyOS 鸿蒙Next如何禁用swipeAction 如何根据判断条件禁用List的左滑swipeAction方法?求解答,谢谢

6 回复

这个是否可行

@Entry
@Component
struct ListItemExample2 {
  @State arr: number[] = [0, 1, 2, 3, 4]
  @State enterEndDeleteAreaString: string = "not enterEndDeleteArea"
  @State exitEndDeleteAreaString: string = "not exitEndDeleteArea"

  @Builder
  itemStart() {
    Row() {
      Button("Set").margin("4vp")
    }.padding("4vp").justifyContent(FlexAlign.SpaceEvenly)
  }

  @Builder
  itemEnd() {
    Row() {
      Button("Delete").margin("4vp")
    }.padding("4vp").justifyContent(FlexAlign.SpaceEvenly)
  }

  build() {
    Column() {
      List({ space: 10 }) {
        ForEach(this.arr, (item: number) => {
          ListItem() {
            Text("item" + item)
              .width('100%')
              .height(100)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(0xFFFFFF)
          }
          .transition({ type: TransitionType.Delete, opacity: 0 })
          .swipeAction({
            edgeEffect: SwipeEdgeEffect.None,
            end: {
              builder: () => {
                this.itemEnd()
              },
              onAction: () => {
                animateTo({ duration: 1000 }, () => {
                  let index = this.arr.indexOf(item)
                  this.arr.splice(index, 1)
                })
              },
              actionAreaDistance: 56,
            }
          })
        }, (item: string) => item)
      }

      Text(this.enterEndDeleteAreaString).fontSize(20)
      Text(this.exitEndDeleteAreaString).fontSize(20)
    }
    .padding(10)
    .backgroundColor(0xDCDCDC)
    .width('100%')
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next如何禁用swipeAction的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这里面没有禁用侧滑的动作吧,

这个list的item不是禁用左滑了吗,只是开启了右滑。

如果你是说页面侧滑禁止的话,可以在页面生命周期中返回true onBackPress() { return true }

我在itemEnd方法里加了**.visibility的判断**,但是还是会有一个空的左滑动作。还有没有更好的办法呢

大佬有找到更好的办法了嘛,

在HarmonyOS(鸿蒙)系统中,禁用swipeAction(滑动操作)通常涉及到对特定组件或页面的行为进行调整。以下是如何在鸿蒙开发环境中禁用swipeAction的一种可能方法,具体步骤依赖于你使用的组件和布局:

  1. 检查组件属性:首先,检查你希望禁用swipeAction的组件,比如List或ScrollView等,查看其属性中是否有直接控制swipeAction的开关。在鸿蒙的某些组件中,可能直接提供了禁用滑动的属性。

  2. 事件拦截:如果组件本身没有提供禁用滑动的属性,你可以尝试通过事件拦截的方式来实现。即,在组件的父级或更高级别的容器中,重写触摸事件处理逻辑,阻止滑动事件的传递。

  3. 自定义组件:如果上述方法不适用,你可以考虑创建一个自定义组件,在该组件内部完全控制触摸事件的响应逻辑,从而禁用swipeAction。

  4. 布局调整:在某些情况下,通过调整布局结构,如使用不可滚动的容器包裹内容,也可以间接实现禁用swipeAction的效果。

请注意,具体实现方法可能因鸿蒙系统版本、开发工具和项目配置而异。如果上述方法无法解决问题,建议查阅最新的鸿蒙开发文档或示例代码,以获取更具体的指导。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部