Delphi Firemonkey使用TVertScrollbox自定义列表数据

界面布局设置如下

创建一个过程添加新项目

procedure TForm1.AddItem(name: string; age: Integer);
var
  layout: TLayout;
begin
  // 设置姓名标签的文本
  Label3.Text := name;
  // 设置年龄标签的文本
  Label4.Text := IntToStr(age);

  // 克隆 Layout1,并将克隆得到的对象赋值给 layout 变量
  layout := TLayout(Layout1.Clone(VertScrollBox1));

  // 设置布局控件的宽度为 VertScrollBox1 的宽度减去 32
  layout.Width := VertScrollBox1.Width - 32;
  // 设置布局控件在垂直滚动框内的水平位置为 16
  layout.Position.X := 16;
  // 设置布局控件在垂直滚动框内的垂直位置为 YY(YY 是一个变量,代表当前布局控件的垂直位置)
  layout.Position.Y := YY;

  //重新设置下一个控件的纵向坐标
  YY := YY + layout.Height + 12;

  // 将布局控件设置为可见
  layout.Visible := True;

  // 将布局控件添加到垂直滚动框中
  VertScrollBox1.AddObject(layout);
end;

新建窗体的时候设置下默认值

procedure TForm1.FormCreate(Sender: TObject);
begin
  Layout1.Visible := False;
  YY := 0;
end;

按钮点击的时候添加新Item

procedure TForm1.Button1Click(Sender: TObject);
begin
  VertScrollBox1.Content.DeleteChildren;
  YY := 12;
  for var i := 0 to 30 do
  begin
    AddItem('zhangsan-' + IntToStr(i), Random(100));
  end;
end;

运行在win用鼠标可以滚动,安卓可以用手上下滑动显示内容

 

posted @ 2024-01-14 20:09  liessay  阅读(29)  评论(0编辑  收藏  举报