Delphi XE5 Android:如何让每个listview项都有自己的模板?

时间:2013-09-17 20:06:51

标签: android delphi delphi-xe5

有没有办法让Delphi的TListView在Android中表现得像实际的ListView? 例如,列表中的每个项目都有自己的“视图”,在该视图中可以是多个其他视图(组件),如多个文本框和复选框,以及......?

enter image description here

2 个答案:

答案 0 :(得分:2)

是的,有办法。我是用这两种方法制作的。 CreateItem方法是您在listitem中放置所需组件的地方。

procedure TForm1.CreateItem;
var
edit1:TClearingEdit;
editCalendar1:TCustomCalendarEdit;
begin
  edit1:= TClearingEdit.Create(Self);
  edit1.Parent := fItem;
  edit1.Align := TAlignLayout.alClient;
  edit1.Text := 'Blabla';
  edit1.OnChange := actEdit1OnChange;

  editCalendar1 := TCalendarEdit.Create(Self);
  editCalendar1.Parent := fItem;
  editCalendar1.Align := TAlignLayout.alRight;
  editCalendar1.Width := 90;
  editCalendar1.Date := Date;
  editCalendar1.OnChange := actEditCalOnChange;
end;

procedure TForm1.CreateListItem;
begin
  fItem:= TListBoxItem.Create(your_listbox);
  fItem.Parent := your_listbox; //Here you put the ListBox as a parent
  fItem.Align := TAlignLayout.alTop;
  fItem.Text := '';
  fItem.Height := 50;

  CreateItem;
end;

要向列表中添加自定义项,只需调用CreateListItem方法即可!接下来我使用OnChange方法接收数据这里是一个例子:

procedure TForm1.actEditCalOnChange(Sender: TObject);
begin
  label1.text := TCalendarEdit(Sender).Text;
end;

procedure TForm1.actEdit1OnChange(Sender: TObject);
begin
  label2.text := TClearingEdit(Sender).Text;
end;

答案 1 :(得分:0)

您必须使用TListBox,然后您可以添加列表项,每个项目可以包含项目文本和详细信息,但您只能使用预定义的布局。你不能像Eclipse一样制作完全自己的布局。您必须使用FireMonkey样式设计器来创建自己的样式。看看here