Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
0d0b0b5e
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
0d0b0b5e
编写于
7月 05, 2022
作者:
O
openharmony_ci
提交者:
Gitee
7月 05, 2022
浏览文件
操作
浏览文件
下载
差异文件
!6284 Scroll、List支持嵌套滚动
Merge pull request !6284 from caocan/master
上级
8ae20c0c
4e56739b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
81 addition
and
2 deletion
+81
-2
zh-cn/application-dev/reference/arkui-ts/figures/NestedScroll.gif
...plication-dev/reference/arkui-ts/figures/NestedScroll.gif
+0
-0
zh-cn/application-dev/reference/arkui-ts/ts-container-list.md
...n/application-dev/reference/arkui-ts/ts-container-list.md
+1
-0
zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
...application-dev/reference/arkui-ts/ts-container-scroll.md
+80
-2
未找到文件。
zh-cn/application-dev/reference/arkui-ts/figures/NestedScroll.gif
0 → 100644
浏览文件 @
0d0b0b5e
242.3 KB
zh-cn/application-dev/reference/arkui-ts/ts-container-list.md
浏览文件 @
0d0b0b5e
...
...
@@ -63,6 +63,7 @@ List(value:{space?: number, initialIndex?: number})
| 名称 | 功能描述 |
| -------- | -------- |
| onItemDelete(index:
number)
=
>
boolean | 列表项删除时触发。 |
| onScrollBegin
<sup>
9+
</sup>
(dx: number, dy: number)
=
>
{ dxRemain: number, dyRemain: number } | 滚动开始事件回调。
<br>
参数:
<br>
- dx:即将发生的水平方向滚动量。
<br>
- dy:即将发生的竖向方向滚动量。
<br>
返回值:
<br>
- dxRemain:水平方向滚动剩余量。
<br>
- dyRemain:竖直方向滚动剩余量。 |
| onScrollIndex(firstIndex:
number,
lastIndex:
number)
=
>
void | 当前列表显示的起始位置和终止位置发生变化时触发。 |
> **说明:**
...
...
zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
浏览文件 @
0d0b0b5e
...
...
@@ -42,10 +42,14 @@ Scroll(scroller?: Scroller)
| 名称 | 功能描述 |
| ---------------------------------------- | ----------------------------- |
| onScrollBegin
<sup>
9+
</sup>
(dx: number, dy: number)
=
>
{ dxRemain: number, dyRemain: number } | 滚动开始事件回调。
<br>
参数:
<br>
- dx:即将发生的水平方向滚动量。
<br>
- dy:即将发生的竖向方向滚动量。
<br>
返回值:
<br>
- dxRemain:水平方向滚动剩余量。
<br>
- dyRemain:竖直方向滚动剩余量。 |
| onScroll(xOffset:
number,
yOffset:
number)
=
>
void | 滚动事件回调,
返回滚动时水平、竖直方向偏移量。 |
| onScrollEdge(side:
Edge)
=
>
void | 滚动到边缘事件回调。 |
| onScrollEnd()
=
>
void | 滚动停止事件回调。 |
> **说明:**
> 若通过onScrollBegin事件和scrollBy方法实现容器嵌套滚动,需设置子滚动节点的EdgeEffect为None。如Scroll嵌套List滚动时,List组件的edgeEffect属性需设置为EdgeEffect.None。
## Scroller
可滚动容器组件的控制器,可以将此组件绑定至容器组件,然后通过它控制容器组件的滚动,目前支持绑定到List和Scroll组件上。
...
...
@@ -103,7 +107,7 @@ scrollPage(value: { next: boolean, direction?: Axis }): void
### currentOffset
scroller.
currentOffset(): Object
currentOffset(): Object
返回当前的滚动偏移量。
...
...
@@ -117,7 +121,7 @@ scroller.currentOffset(): Object
### scrollToIndex
scroll
er.scroll
ToIndex(value: number): void
scrollToIndex(value: number): void
滑动到指定Index。
...
...
@@ -133,6 +137,25 @@ scroller.scrollToIndex(value: number): void
| value | number | 是 | - | 要滑动到的列表项在列表中的索引值。 |
### scrollBy
scrollBy(dx: Length, dy: Length): void
滑动指定距离。
> **说明:**
> 仅支持Scroll组件。
-
参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ----------------- |
| dx | Length | 是 | - | 水平方向滚动距离。 |
| dy | Length | 是 | - | 竖直方向滚动距离。 |
## 示例
```
ts
...
...
@@ -188,3 +211,58 @@ struct ScrollExample {
```
![
zh-cn_image_0000001174104386
](
figures/zh-cn_image_0000001174104386.gif
)
```
ts
@
Entry
@
Component
struct
NestedScroll
{
@
State
listPosition
:
number
=
0
// 0代表滚动到List顶部,1代表中间值,2代表滚动到List底部。
private
arr
:
number
[]
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
]
private
scroller
:
Scroller
=
new
Scroller
()
build
()
{
Flex
()
{
Scroll
(
this
.
scroller
)
{
Column
()
{
Text
(
"
Scroll Area
"
)
.
width
(
"
100%
"
).
height
(
"
40%
"
).
backgroundColor
(
0X330000FF
)
.
fontSize
(
16
).
textAlign
(
TextAlign
.
Center
)
List
({
space
:
20
})
{
ForEach
(
this
.
arr
,
(
item
)
=>
{
ListItem
()
{
Text
(
"
ListItem
"
+
item
)
.
width
(
"
100%
"
).
height
(
"
100%
"
).
borderRadius
(
15
)
.
fontSize
(
16
).
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
Color
.
White
)
}.
width
(
"
100%
"
).
height
(
100
)
},
item
=>
item
)
}
.
width
(
"
100%
"
).
height
(
"
50%
"
).
edgeEffect
(
EdgeEffect
.
None
)
.
onReachStart
(()
=>
{
this
.
listPosition
=
0
})
.
onReachEnd
(()
=>
{
this
.
listPosition
=
2
})
.
onScrollBegin
((
dx
:
number
,
dy
:
number
)
=>
{
if
((
this
.
listPosition
==
0
&&
dy
>=
0
)
||
(
this
.
listPosition
==
2
&&
dy
<=
0
))
{
this
.
scroller
.
scrollBy
(
0
,
-
dy
)
return
{
dxRemain
:
dx
,
dyRemain
:
0
}
}
this
.
listPosition
=
1
;
return
{
dxRemain
:
dx
,
dyRemain
:
dy
}
})
Text
(
"
Scroll Area
"
)
.
width
(
"
100%
"
).
height
(
"
40%
"
).
backgroundColor
(
0X330000FF
)
.
fontSize
(
16
).
textAlign
(
TextAlign
.
Center
)
}
}
.
width
(
"
100%
"
).
height
(
"
100%
"
)
}.
width
(
'
100%
'
).
height
(
'
100%
'
).
backgroundColor
(
0xDCDCDC
).
padding
(
20
)
}
}
```
![
NestedScroll
](
figures/NestedScroll.gif
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录