Skip to content

Commit 26dd6a6

Browse files
committed
Merge branch 'master' into fix-api-proxy-error
2 parents ecf4ae1 + 510ef89 commit 26dd6a6

3 files changed

Lines changed: 307 additions & 46 deletions

File tree

.agents/skills/mpx2rn/references/rn-template-reference.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,6 +1481,8 @@ level 有效值:
14811481
| refresher-enabled | boolean | `false` | 开启自定义下拉刷新 |
14821482
| refresher-triggered | boolean | `false` | 设置当前下拉刷新状态,true 表示已触发 |
14831483
| show-scrollbar | boolean | `true` | 滚动条显隐控制 |
1484+
| enable-item-exposure | boolean | `false` | 开启列表项曝光通知 |
1485+
| item-exposure-threshold | number | `0` | 列表项露出比例达到多少后触发曝光通知,取值 0-100 |
14841486
| simultaneous-handlers | array\<object> | `[]` | RN 环境特有属性,允许多个手势同时识别和处理 |
14851487
| wait-for | array\<object> | `[]` | RN 环境特有属性,允许延迟激活处理某些手势 |
14861488

@@ -1491,6 +1493,7 @@ level 有效值:
14911493
| scroll | 滚动时触发,`event.detail.scrollTop` 返回纵向滚动位置 |
14921494
| scrolltolower | 滚动到底部 / 触底通知 |
14931495
| refresherrefresh | 自定义下拉刷新被触发 |
1496+
| itemexposure | 列表项露出比例达到阈值时触发 |
14941497

14951498
#### 方法
14961499

@@ -1501,6 +1504,12 @@ level 有效值:
15011504
#### 注意事项
15021505

15031506
- 当使用列表项、列表头、自定义分组头或者自定义分组尾,必须配置对应 `item-height``section-header-height``section-footer-height``list-header-height` 高度参数,否则会出现滚动异常。
1507+
- `binditemexposure` 基于 RN 的 `onViewableItemsChanged` 触发,`item-exposure-threshold` 为 item 自身可见百分比阈值,0 表示露出任意像素即可触发,100 表示完全可见时触发。
1508+
- `binditemexposure``detail.items` 中每一项包含 `index``itemData``layout``threshold``index` 为该项在 `list-data` 中的原始下标,`itemData` 为对应原始数据,无法获取原始数据时为 `null``layout.offset` 为该项顶部相对 section-list 内容起点的偏移量,`layout.length` 为该项高度;如使用了 `list-header``layout.offset` 会包含 `list-header-height` 的偏移;无法获取布局信息时 `layout.offset``layout.length` 兜底为 `0`
1509+
- 会统计 `recycle-item``section-header``section-footer`,不统计 `list-header``list-footer`
1510+
- `section-header` 曝光统计仅支持 `enable-sticky=false` 场景;开启 `enable-sticky` 时暂不支持统计 `section-header` 曝光。
1511+
- 同一个 item 达到阈值后不会在停留期间重复触发;划出列表可视区域后会重置本轮状态,再次划入并达到阈值时可再次触发。
1512+
- RN 的 `viewabilityConfig` 不支持运行时动态修改,`enable-item-exposure``item-exposure-threshold` 请在组件初始化时确定。
15041513
- RN 环境中,section-list 通过 RN 的 `SectionList` 实现分组吸顶。开启 `enable-sticky` 且快速滑动时,自定义分组头有时会出现闪烁,属于 RN 底层实现限制。
15051514

15061515
### sticky-section

docs-vitepress/guide/extend/extend-component.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ Mpx 会根据当前编译的目标平台(wx/ali/web/ios/android/harmony),
5252
| refresher-enabled | Boolean | false | 开启自定义下拉刷新 |
5353
| refresher-triggered | Boolean | false | 设置当前下拉刷新状态,true 表示已触发 |
5454
| show-scrollbar | Boolean | true | 滚动条显隐控制 |
55+
| enable-item-exposure | Boolean | false | 开启列表项曝光通知 |
56+
| item-exposure-threshold | Number | 0 | 列表项露出比例达到多少后触发曝光通知,取值 0-100 |
5557
| simultaneous-handlers | Array\<Object> | [] | RN 环境特有属性,允许多个手势同时识别和处理 |
5658
| wait-for | Array\<Object> | [] | RN 环境特有属性,允许延迟激活处理某些手势 |
5759

@@ -86,6 +88,37 @@ height: {
8688
| bindscroll | 滚动时触发,`event.detail.scrollTop` 返回纵向滚动位置 |
8789
| bindscrolltolower | 滚动到底部/触底通知 |
8890
| bindrefresherrefresh | 自定义下拉刷新被触发 |
91+
| binditemexposure | 列表项露出比例达到阈值时触发 |
92+
93+
#### item 曝光事件说明 {#section-list-item-exposure}
94+
95+
开启 `enable-item-exposure` 后,section-list 会使用 RN 的 `onViewableItemsChanged` 追踪 `recycle-item``section-header``section-footer` 的可见状态;当某个 item 露出比例达到 `item-exposure-threshold` 时,通过 `binditemexposure` 批量通知业务。
96+
97+
```js
98+
{
99+
items: [
100+
{
101+
index: 12,
102+
itemData: {},
103+
layout: {
104+
offset: 650,
105+
length: 100
106+
},
107+
threshold: 50
108+
}
109+
],
110+
time: 1710000000000
111+
}
112+
```
113+
114+
**说明:**
115+
- `item-exposure-threshold` 为 item 自身可见百分比阈值,0 表示露出任意像素即可触发,100 表示完全可见时触发。
116+
- `index` 为该项在 `list-data` 中的原始下标,`itemData` 为对应原始数据;无法获取原始数据时为 `null`
117+
- `layout` 为该项在 section-list 内容区域中的布局信息,`offset` 为该项顶部相对列表内容起点的偏移量,`length` 为该项高度;如使用了 `list-header``offset` 会包含 `list-header-height` 的偏移;无法获取布局信息时 `offset``length` 兜底为 `0`
118+
- 会统计 `recycle-item``section-header``section-footer`,不统计 `list-header``list-footer`
119+
- `section-header` 曝光统计仅支持 `enable-sticky=false` 场景;开启 `enable-sticky` 时暂不支持统计 `section-header` 曝光。
120+
- 同一个 item 达到阈值后不会在停留期间重复触发;当它划出列表可视区域后会重置本轮状态,再次划入并达到阈值时可再次触发。
121+
- RN 的 `viewabilityConfig` 不支持运行时动态修改,`enable-item-exposure``item-exposure-threshold` 请在组件初始化时确定。
89122

90123
### 方法 {#section-list-methods}
91124

0 commit comments

Comments
 (0)