PowerApps带滚动条的动态表单实现方法咨询
你的需求完全可以在PowerApps中实现,以下是具体的控件和实现方法:
一、动态添加多条输入行
核心逻辑是用**集合(Collection)存储每行的输入数据,配合画廊(Gallery)**渲染动态行:
初始化数据集合
在应用的OnStart属性中添加代码,创建初始的输入行数据:ClearCollect(InputRows, {ID: 1, InputText: "", SelectOption: ""})其中
InputText、SelectOption是示例输入字段,可根据实际需求增减字段类型和数量。添加"新增行"按钮
插入一个按钮,设置其OnSelect属性为:Collect(InputRows, {ID: Max(InputRows, ID) + 1, InputText: "", SelectOption: ""})点击按钮时,会向集合中添加一条新的空数据行,
ID用于保证每行的唯一性。用画廊渲染动态输入行
插入一个画廊控件,设置其Items属性为InputRows。在画廊模板中添加所需的输入控件(如TextInput、Dropdown等):- 对于
TextInput,设置Default为ThisItem.InputText,OnChange为:Patch(InputRows, ThisItem, {InputText: Self.Text}) - 对于
Dropdown,设置Default为ThisItem.SelectOption,OnChange为:Patch(InputRows, ThisItem, {SelectOption: Self.Selected.Value})
这样用户输入的内容会实时同步到集合中。
- 对于
可选:添加删除行功能
在画廊模板中插入删除按钮,设置其OnSelect属性为:Remove(InputRows, ThisItem)
二、实现滚动功能
有两种简单方式实现内容超出时的滚动:
使用滚动屏幕(Scrollable Screen)
直接创建一个Scrollable Screen,将画廊、新增按钮等控件放置在该屏幕内。当内容高度超过屏幕可视区域时,会自动显示垂直滚动条,支持上下滚动查看全部内容。垂直容器+滚动条(普通屏幕)
如果使用普通屏幕,可插入Vertical Container,将画廊和按钮放入容器中,设置容器的Height为屏幕可用高度(例如App.Height - 100,预留顶部/底部操作空间)。然后插入Vertical Scrollbar控件,设置其ScrollableElement属性为该垂直容器,即可实现滚动。
内容的提问来源于stack exchange,提问作者Olivier

