Поведение при нажатии / нажатии FireMonkey TListView

#android #ios #delphi #firemonkey #delphi-xe8

#Android #iOS #delphi #firemonkey #delphi-xe8

Вопрос:

У меня есть Firemonkey Listview в приложении, работающем как на iOS, так и на Android. Список содержит 5 элементов.

Одна вещь, которую я заметил, это то, что когда я нажимаю на просмотр списка пальцем, но не на фактический элемент (в пустом пространстве под последним элементом), он по-прежнему выбирает / выделяет последний элемент в listview.

Есть ли способ предотвратить это?

Спасибо,

Комментарии:

1. Почему это так важно для вас?

2. Потому что я не нажимаю элемент в Listview, поэтому я бы не ожидал никакой реакции.

Ответ №1:

Проблема заключается в файле модуля FMX.ListView.pas.

Существует функция, вызываемая

 function TCustomListView.FindItemAbsoluteAt(ViewAt: Integer): Integer;
  

Необходимо заменить

 if ViewAt >= FHeightSums[FHeightSums.Count - 1] then
Exit(FHeightSums.Count - 1);
  

С

 if ViewAt >= (FHeightSums[FHeightSums.Count - 1]   GetItemHeight(FHeightSums.Count - 1)) 
then Exit(-1);
  

Как только это будет изменено, сохраните и добавьте модульный файл в свой проект, и он должен работать.