Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
791235a8
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看板
未验证
提交
791235a8
编写于
11月 04, 2022
作者:
O
openharmony_ci
提交者:
Gitee
11月 04, 2022
浏览文件
操作
浏览文件
下载
差异文件
!11099 waterFlow的三个关联属性columnsTemplate、rowsTemplate、layoutDirection的约束关系
Merge pull request !11099 from limeng/waterflow_layout
上级
f2297142
fb645174
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
13 deletion
+40
-13
zh-cn/application-dev/reference/arkui-ts/ts-container-waterflow.md
...lication-dev/reference/arkui-ts/ts-container-waterflow.md
+40
-13
未找到文件。
zh-cn/application-dev/reference/arkui-ts/ts-container-waterflow.md
浏览文件 @
791235a8
...
...
@@ -25,7 +25,7 @@ WaterFlow(options?: {footer?: CustomBuilder, scroller?: Scroller})
| 参数名 | 参数类型 | 必填 | 参数描述 |
| ---------- | ----------------------------------------------- | ------ | -------------------------------------------- |
| footer |
[
CustomBuilder
](
ts-types.md#custombuilder8
)
| 否 | 设置WaterFlow尾部组件。 |
| scroller |
[
Scroller
](
ts-container-scroll.md#scroller
)
| 否 | 可滚动组件的控制器,与可滚动组件绑定。 |
| scroller |
[
Scroller
](
ts-container-scroll.md#scroller
)
| 否 | 可滚动组件的控制器,与可滚动组件绑定。
<br/>
目前瀑布流仅支持Scroller组件的scrollToIndex接口。
|
## 属性
...
...
@@ -40,8 +40,21 @@ WaterFlow(options?: {footer?: CustomBuilder, scroller?: Scroller})
| itemConstraintSize |
[
ConstraintSizeOptions
](
ts-types.md#constraintsizeoptions
)
| 设置约束尺寸,子组件布局时,进行尺寸范围限制。 |
| columnsGap | Length |设置列与列的间距。
<br>
默认值:0|
| rowsGap | Length |设置行与行的间距。
<br>
默认值:0|
| layoutDirection |
[
FlexDirection
](
ts-appendix-enums.md#flexdirection
)
|设置布局的主轴方向。|
| layoutDirection |
[
FlexDirection
](
ts-appendix-enums.md#flexdirection
)
|设置布局的主轴方向。
<br/>
默认值:FlexDirection.Column
|
layoutDirection优先级高于rowsTemplate和columnsTemplate。根据layoutDirection设置情况,分为以下三种设置模式:
-
layoutDirection设置纵向布局(FlexDirection.Column 或 FlexDirection.ColumnReverse)
此时columnsTemplate有效(如果未设置,取默认值)。例如columnsTemplate设置为"1fr 1fr"、rowsTemplate设置为"1fr 1fr 1fr"时,瀑布流组件纵向布局,辅轴均分成横向2列。
-
layoutDirection设置横向布局(FlexDirection.Row 或 FlexDirection.RowReverse)
此时rowsTemplate有效(如果未设置,取默认值)。例如columnsTemplate设置为"1fr 1fr"、rowsTemplate设置为"1fr 1fr 1fr"时,瀑布流组件横向布局,辅轴均分成纵向3列。
-
layoutDirection未设置布局方向
布局方向为layoutDirection的默认值:FlexDirection.Column,此时columnsTemplate有效。例如columnsTemplate设置为"1fr 1fr"、rowsTemplate设置为"1fr 1fr 1fr"时,瀑布流组件纵向布局,辅轴均分成横向2列。
## 事件
...
...
@@ -79,8 +92,8 @@ export class WaterFlowDataSource implements IDataSource {
private
listeners
:
DataChangeListener
[]
=
[]
constructor
()
{
for
(
let
i
=
0
;
i
<
=
100
;
i
++
)
{
this
.
dataArray
.
push
(
i
)
;
for
(
let
i
=
0
;
i
<
100
;
i
++
)
{
this
.
dataArray
.
push
(
i
)
}
}
...
...
@@ -138,7 +151,7 @@ export class WaterFlowDataSource implements IDataSource {
// 注销改变数据的控制器
unregisterDataChangeListener
(
listener
:
DataChangeListener
):
void
{
const
pos
=
this
.
listeners
.
indexOf
(
listener
)
;
const
pos
=
this
.
listeners
.
indexOf
(
listener
)
if
(
pos
>=
0
)
{
this
.
listeners
.
splice
(
pos
,
1
)
}
...
...
@@ -182,9 +195,9 @@ export class WaterFlowDataSource implements IDataSource {
// 重新加载数据
public
Reload
():
void
{
this
.
dataArray
.
splice
(
1
,
1
)
;
this
.
dataArray
.
splice
(
3
,
2
)
;
this
.
notifyDataReload
()
;
this
.
dataArray
.
splice
(
1
,
1
)
this
.
dataArray
.
splice
(
3
,
2
)
this
.
notifyDataReload
()
}
}
```
...
...
@@ -200,8 +213,10 @@ struct WaterflowDemo {
@
State
maxSize
:
number
=
100
@
State
fontSize
:
number
=
24
@
State
colors
:
number
[]
=
[
0xFFC0CB
,
0xDA70D6
,
0x6B8E23
,
0x6A5ACD
,
0x00FFFF
,
0x00FF7F
]
scroller
:
Scroller
=
new
Scroller
();
datasource
:
WaterFlowDataSource
=
new
WaterFlowDataSource
();
scroller
:
Scroller
=
new
Scroller
()
datasource
:
WaterFlowDataSource
=
new
WaterFlowDataSource
()
private
itemWidthArray
:
number
[]
=
[]
private
itemHeightArray
:
number
[]
=
[]
// 计算flow item宽/高
getSize
()
{
...
...
@@ -209,6 +224,18 @@ struct WaterflowDemo {
return
(
ret
>
this
.
minSize
?
ret
:
this
.
minSize
)
}
// 保存flow item宽/高
getItemSizeArray
()
{
for
(
let
i
=
0
;
i
<
100
;
i
++
)
{
this
.
itemWidthArray
.
push
(
this
.
getSize
())
this
.
itemHeightArray
.
push
(
this
.
getSize
())
}
}
aboutToAppear
()
{
this
.
getItemSizeArray
()
}
@
Builder
itemFoot
()
{
Column
()
{
Text
(
`Footer`
)
...
...
@@ -232,8 +259,8 @@ struct WaterflowDemo {
.
objectFit
(
ImageFit
.
Fill
)
}
}
.
width
(
this
.
getSize
()
)
.
height
(
this
.
getSize
()
)
.
width
(
this
.
itemWidthtArray
[
item1
]
)
.
height
(
this
.
itemHeightArray
[
item1
]
)
.
backgroundColor
(
this
.
colors
[
item
%
5
])
},
item
=>
item
)
}
...
...
@@ -261,4 +288,4 @@ struct WaterflowDemo {
}
```
![
zh-cn_image_WaterFlow.gif
](
figures/waterflow.gif
)
\ No newline at end of file
![
zh-cn_image_WaterFlow.gif
](
figures/waterflow.gif
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录