На сколько я вижу, то хедер оформляется как TListViewItem, у которого свойство Purpose равно Header. Я вижу такой алгоритм получения хедера:
uses
System.Math;
{$R *.fmx}
function ExtractGroupHeaderItem(Items: TListViewItems; Selected: TListViewItem): TListViewItem;
var
PreviousItem: TListItem;
Index: Integer;
begin
Assert(Items <> nil);
Assert(Selected <> nil);
Index := Selected.Index;
while InRange(Index, 0, Items.Count - 1) and (Items[Index].Purpose <> TListItemPurpose.Header) do
Index := Index - 1;
if InRange(Index, 0, Items.Count - 1) then
Result := Items[Index]
else
Result := nil;
end;
Соответственно, чтобы получить хедер, если он есть для выделенного итема, нужно вызывать функцию так:
ExtractGroupHeaderItem(ListView1.Items, ListView1.Selected);