From 04917eceb6db3019ccd03ab21c2e5562b4735945 Mon Sep 17 00:00:00 2001
From: limeng <limeng208@huawei.com>
Date: Thu, 25 May 2023 06:22:36 +0000
Subject: [PATCH] update
 zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md.

Signed-off-by: limeng <limeng208@huawei.com>
---
 .../arkui-ts/ts-container-listitem.md         | 31 ++++++++++++-------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md
index dd59461cb7..e5fbf975ed 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md
@@ -27,7 +27,7 @@ ListItem(value?: string)
 | sticky<sup>(deprecated)</sup> | [Sticky](#stickydeprecated枚举说明) | 设置ListItem吸顶效果。<br/>默认值:Sticky.None<br/>从API version9开始废弃,推荐使用[List组件sticky属性](ts-container-list.md#属性)。 |
 | editable<sup>(deprecated)</sup>  | boolean&nbsp;\|&nbsp;[EditMode](#editmodedeprecated枚举说明) | 当前ListItem元素是否可编辑,进入编辑模式后可删除或移动列表项。<br/>从API version9开始废弃。<br/>默认值:false |
 | selectable<sup>8+</sup> | boolean | 当前ListItem元素是否可以被鼠标框选。<br/>**说明:**<br/>外层List容器的鼠标框选开启时,ListItem的框选才生效。<br/>默认值:true |
-| swipeAction<sup>9+</sup> | {<br/>start?:&nbsp;CustomBuilder&nbsp;\|&nbsp;[SwipeActionItem](#SwipeActionItem10对象说明),<br/>end?:CustomBuilder&nbsp;\|&nbsp;[SwipeActionItem](#SwipeActionItem10对象说明),<br/>edgeEffect?:&nbsp;[SwipeEdgeEffect](#swipeedgeeffect9枚举说明),<br/>} | 用于设置ListItem的划出组件。<br/>- start:&nbsp;ListItem向右划动时item左边的组件(List垂直布局时)或ListItem向下划动时item上方的组件(List水平布局时)。<br/>- end:&nbsp;ListItem向左划动时item右边的组件(List垂直布局时)或ListItem向上划动时item下方的组件(List水平布局时)。<br/>- edgeEffect:&nbsp;滑动效果。<br/>- swipeActionItem:&nbsp;ListItem向右或向左划动时item左边或右边的组件长距离滑动删除选项(List垂直布局时)ListItem向下或向上划动时item上方或下方的组件长距离滑动删除选项(List水平布局时)。<br/>**说明:** <br/>start和end对应的@builder函数中顶层必须是单个组件,不能是if/else、ForEach、LazyForEach语句。 |
+| swipeAction<sup>9+</sup> | {<br/>start?:&nbsp;CustomBuilder&nbsp;\|&nbsp;SwipeActionItem,<br/>end?:CustomBuilder&nbsp;\|&nbsp;SwipeActionItem,<br/>edgeEffect?:&nbsp;[SwipeEdgeEffect](#swipeedgeeffect9枚举说明),<br/>} | 用于设置ListItem的划出组件。<br/>- start:&nbsp;ListItem向右划动时item左边的组件(List垂直布局时)或ListItem向下划动时item上方的组件(List水平布局时)。<br/>- end:&nbsp;ListItem向左划动时item右边的组件(List垂直布局时)或ListItem向上划动时item下方的组件(List水平布局时)。<br/>- edgeEffect:&nbsp;滑动效果。<br/>- swipeActionItem:&nbsp;ListItem向右或向左划动时item左边或右边的组件长距离滑动删除选项(List垂直布局时)ListItem向下或向上划动时item上方或下方的组件长距离滑动删除选项(List水平布局时)。<br/>**说明:** <br/>start和end对应的@builder函数中顶层必须是单个组件,不能是if/else、ForEach、LazyForEach语句。 |
 
 ## Sticky<sup>(deprecated)</sup>枚举说明
 从API version9开始废弃,推荐使用[List组件stickyStyle枚举](ts-container-list.md#stickystyle9枚举说明)。
@@ -55,11 +55,11 @@ ListItem(value?: string)
 
 | 名称                 | 参数类型                                                     | 必填 | 描述                                                         |
 | -------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| deleteAreaDistance | [Length](ts-types.md#length) | 否 | 设置组件长距离滑动删除距离阈值 |
+| deleteAreaDistance | [Length](ts-types.md#length) | 否 | 设置组件长距离滑动删除距离阈值 <br/>**说明:** <br/>如果没有设置删除距离阈值就不会触发删除。|
 | onDelete | () => **void** | 否 | 组件进入长距删除区后删除ListItem时调用。<br/>进入长距删除区后,抬手时触发;或者滑动速度大于初始速度阈值时触发 |
 | onEntryDeleteArea | () => **void** | 否 | 在滑动条目进入删除区域时调用,只触发一次,当再次进入时仍触发。 |
 | onExitDeleteArea | () => **void** | 否 |当滑动条目退出删除区域时调用,只触发一次,当再次退出时仍触发。 |
-| builder |  CustomBuilder | 否 |当列表项向左或向右滑动(当列表方向为“垂直”时),向上或向下滑动(当列方向为“水平”时)时显示的操作项。 |
+| builder |  CustomBuilder | 否 |当列表项向右或向右滑动(当列表方向为“垂直”时),向下或向下滑动(当列方向为“水平”时)时显示的操作项。 |
 | useDefaultDeleteAnimation | boolean | 否 |设置是否使用默认的删除动画。 |
 ## 事件
 
@@ -153,13 +153,15 @@ struct ListItemExample3 {
   @State enterEndDeleteAreaString: string = "not enterEndDeleteArea"
   @State exitEndDeleteAreaString: string = "not exitEndDeleteArea"
 
-  @Builder itemEnd(index: number) {
+  @Builder itemEnd(value: number) {
     Row () {
       Button("Del").margin("4vp")
         .onClick( ()=> {
-          this.arr.splice(index, 1)
-        }
-        )
+          animateTo({ duration: 1000 }, () => {
+            let index = this.arr.indexOf(value)
+            this.arr.splice(index, 1)
+          })
+        })
       Button("Set").margin("4vp")
     }.padding("4vp").justifyContent(FlexAlign.SpaceEvenly)
   }
@@ -167,7 +169,7 @@ struct ListItemExample3 {
   build() {
     Column() {
       List({space:10}) {
-        ForEach(this.arr, (item, index) => {
+        ForEach(this.arr, (item) => {
           ListItem() {
             Text("item" + item)
               .width('100%')
@@ -177,13 +179,17 @@ struct ListItemExample3 {
               .borderRadius(10)
               .backgroundColor(0xFFFFFF)
           }
+          .transition({ type: TransitionType.Delete, opacity: 0 })
           .swipeAction({end:{
-            builder:this.itemEnd.bind(this, index),
+            builder:this.itemEnd.bind(this, item),
             useDefaultDeleteAnimation:true,
             onDelete:()=>{
-              this.arr.splice(index, 1)
+              animateTo({ duration: 1000 }, () => {
+                let index = this.arr.indexOf(item)
+                this.arr.splice(index, 1)
+              })
             },
-            deleteAreaDistance:150,
+            deleteAreaDistance:80,
             onEnterDeleteArea:()=>{
               this.enterEndDeleteAreaString = "enterEndDeleteArea"
               this.exitEndDeleteAreaString = "not exitEndDeleteArea"
@@ -205,4 +211,5 @@ struct ListItemExample3 {
     .height('100%')
   }
 }
-```
+
+```
\ No newline at end of file
-- 
GitLab