HarmonyOS 鸿蒙Next ListItem的swipeAction横滑 能否手动控制展开或者收起
HarmonyOS 鸿蒙Next ListItem的swipeAction横滑 能否手动控制展开或者收起
ListItem的swipeAction横滑,能否不通过手势滑动,通过事件触发收起,比如某个按钮控制swipeAction删除按钮的收起
点击修改或者删除,弹窗提示是否确定,点击取消 右侧的swipeAction能否控制收起
可以使用ListScroller提供的closeAllSwipeActions()方法将滑动效果进行恢复,参考文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-list#closeallswipeactions11
示例代码如下:
import { common } from '[@kit](/user/kit).AbilityKit'
[@CustomDialog](/user/CustomDialog)
struct CustomDialogExample {
cancel?: () => void
confirm?: () => void
controller: CustomDialogController
build() {
Column() {
Text('我是内容').fontSize(20).margin({ top: 10, bottom: 10 })
Flex({ justifyContent: FlexAlign.SpaceAround }) {
Button('cancel').onClick(() => {
this.controller.close()
if (this.cancel) this.cancel()
}).backgroundColor(0xffffff).fontColor(Color.Black)
Button('confirm').onClick(() => {
this.controller.close()
if (this.confirm) this.confirm()
}).backgroundColor(0xffffff).fontColor(Color.Red)
}.margin({ bottom: 10 })
}
}
}
[@Entry](/user/Entry)
[@Component](/user/Component)
struct ListSwipePage {
[@State](/user/State) arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
private scrollerForList: ListScroller = new ListScroller()
dialogController: CustomDialogController = new CustomDialogController({
builder: CustomDialogExample({
cancel: this.onCancel,
confirm: this.onAccept,
})
})
onCancel() {
}
onAccept() {
}
[@Builder](/user/Builder)
itemEnd() {
Row() {
Button("Delete").margin("4vp")
Button("Set").margin("4vp")
.onClick(() => {
this.dialogController.open()
this.scrollerForList.closeAllSwipeActions() // 重点是这行代码
})
}.padding("4vp").justifyContent(FlexAlign.SpaceEvenly)
}
build() {
Column() {
List({ space: 5, scroller: this.scrollerForList }) {
ForEach(this.arr, (item: number) => {
ListItem() {
Text("item" + item)
.width('100%')
.height(100)
.textAlign(TextAlign.Center)
.borderRadius(10)
.backgroundColor(0xFFFFFF)
}
.transition({ type: TransitionType.Delete, opacity: 0 })
.swipeAction({
end: {
builder: () => {
this.itemEnd()
},
onAction: () => {
animateTo({ duration: 1000 }, () => {
let index = this.arr.indexOf(item)
this.arr.splice(index, 1)
})
}, actionAreaDistance: 56
}
})
}, (item: string) => item)
}
}
.padding(20).backgroundColor(0xDCDCDC).width('100%').height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next ListItem的swipeAction横滑 能否手动控制展开或者收起的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙系统中,针对Next ListItem的swipeAction横滑功能,可以通过编程方式手动控制其展开或收起状态。具体来说,系统提供了相应的API接口来实现这一功能。
要实现手动控制,你需要首先获取到ListItem组件的引用,并调用其提供的控制swipeAction状态的方法。这些方法通常允许你设置swipeAction为展开、收起或某个中间状态。
在鸿蒙系统的UI框架中,你可以利用组件的状态管理功能,通过修改组件的某个属性或调用某个方法来实现swipeAction的展开与收起。例如,可以设置swipeAction的某个属性为true以展开,设置为false以收起。
此外,鸿蒙系统还支持通过事件监听机制来响应用户的滑动操作,但如果你需要完全手动控制,可以忽略这些事件监听,直接通过代码来设置swipeAction的状态。
请注意,具体实现细节可能依赖于你使用的鸿蒙系统版本和具体的ListItem组件版本。因此,在实现时,建议查阅最新的鸿蒙开发文档,以确保使用正确的方法和属性。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html