Delphi 是否在TListView对象中对项目进行分组?

Delphi 是否在TListView对象中对项目进行分组?,delphi,firemonkey,delphi-xe6,Delphi,Firemonkey,Delphi Xe6,我试图在TListView对象中对项目进行分组,但是我找不到负责对对象进行分组的类,在文档中也找不到这样的类 类负责在TListView对象内对项目进行分组,以及如何正确使用它 平台是Firemonkey(Android/iOS)/Delphi XE6我相信您所指的属性是TListGroups,一个包含TListGroups项的集合。Delphi文档中提供了一个 不幸的是,它仅在VCL中可用,而在FMX中不可用,因为底层功能是Windows ListView控件的一部分,该控件将TListV

我试图在TListView对象中对项目进行分组,但是我找不到负责对对象进行分组的类,在文档中也找不到这样的类

  • 类负责在TListView对象内对项目进行分组,以及如何正确使用它

平台是Firemonkey(Android/iOS)/Delphi XE6

我相信您所指的属性是
TListGroups
,一个包含
TListGroups
项的集合。Delphi文档中提供了一个

不幸的是,它仅在VCL中可用,而在FMX中不可用,因为底层功能是Windows ListView控件的一部分,该控件将
TListView
包装

在FMX中最接近的方法是使用
TListBox
TListBoxGroupHeader
,这在使用列表框组件的多设备教程中介绍,以在以下位置显示表视图(iOS和Android):

这将生成(来自指定docwiki的图像)


我相信您所指的属性是
TListGroups
,一个包含
TListGroups
项的集合。Delphi文档中提供了一个

不幸的是,它仅在VCL中可用,而在FMX中不可用,因为底层功能是Windows ListView控件的一部分,该控件将
TListView
包装

在FMX中最接近的方法是使用
TListBox
TListBoxGroupHeader
,这在使用列表框组件的多设备教程中介绍,以在以下位置显示表视图(iOS和Android):

这将生成(来自指定docwiki的图像)


在FMX TListview控件中,使用LiveBinding时,通过将TListviewItem.header.break字段连接到要分组的字段(它将是数据库中的一个字段,在许多记录中都是冗余的),可以轻松实现这一点.

在FMX TListview控件中使用LiveBinding时,通过将TListviewItem.header.break字段连接到要分组的字段(它将是数据库中的一个字段,在许多记录中是冗余的)。

好的,分组是VCL Windows Listview特有的功能,这在FMX Listview.AFAIK中不可用,分组是VCL Windows Listview的特定功能,在FMX Listview中不可用。
procedure TForm1.FormCreate(Sender: TObject);
var
  c: Char;
  i: Integer;
  Buffer: String;
  ListBoxItem : TListBoxItem;
  ListBoxGroupHeader : TListBoxGroupHeader;
begin
  ListBox1.BeginUpdate;
  for c := 'a' to 'z' do
  begin
    // Add header ('A' to 'Z') to the List
    ListBoxGroupHeader := TListBoxGroupHeader.Create(ListBox1);
    ListBoxGroupHeader.Text := UpperCase(c);
    ListBox1.AddObject(ListBoxGroupHeader);

    // Add items ('a', 'aa', 'aaa', 'b', 'bb', 'bbb', 'c', ...) to the list
    for i := 1 to 3 do
    begin
      // StringOfChar returns a string with a specified number of repeating characters.
      Buffer := StringOfChar(c, i);
      // Simply add item
      // ListBox1.Items.Add(Buffer);

      // or, you can add items by creating an instance of TListBoxItem by yourself
      ListBoxItem := TListBoxItem.Create(ListBox1);
      ListBoxItem.Text := Buffer;
      // (aNone=0, aMore=1, aDetail=2, aCheckmark=3)
      ListBoxItem.ItemData.Accessory := TListBoxItemData.TAccessory(i);
      ListBox1.AddObject(ListBoxItem);
    end;
  end;
  ListBox1.EndUpdate;
end;