Delphi - ошибка в fmx с ListView и TabControl - PullRequest
0 голосов
/ 08 июня 2018

У меня есть TabControl с двумя TabItem.В каждом tabItem есть ListView.Событие OnItemClick в ListView на первом TabItem выполняет «NextTabAction».

Проблема заключается в том, что если я выберу элемент в listView на втором TabItem, его TextColor будет белым, а не черным.Ошибка, по-видимому, заключается в том, что если ListView находится на элементе TabItem, который не виден при запуске приложения, TextColor его selectedItem будет белым.

Воспроизвести его довольно просто.Я использую Delphi Tokyo 10.2

Если страница отображается при запуске, она выглядит следующим образом TextColor Black

Если страница не отображается при запуске,тогда это выглядит иначе enter image description here

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 13 июня 2018

Это обычное поведение для ListView даже в Delphi 10.2 update 3. Это происходит только при использовании переходов между вкладками.

Я исправляю эту проблему с помощью приведенного ниже кода:

procedure TForm1.ListView1UpdateObjects(const Sender: TObject; const AItem:  TListViewItem);
var
  Text: TListItemText;
begin
  Text := TListItemText(AItem.View.FindDrawable('T'));
  if Text <> nil then
    Text.SelectedTextColor := TAlphaColors.Black;
end;

ИзКонечно, вам нужно изменить имя Drawable в соответствии с вашими потребностями ...

...