В чем разница между событием ItemTapped и ItemSelected в ListView в Xamarin.Forms?

ListView в Xamarin.Forms имеет два события, которые кажутся совершенно одинаковыми: ItemTapped и ItemSelected

На самом деле нет никакой документации об этом, так в чем же разница?


person Flagbug    schedule 27.06.2014    source источник


Ответы (5)


ItemSelected — это состояние, а ItemTapped — это событие движения. Все представления могут быть нажаты, и, если я правильно помню, все представления могут быть выбраны (или, по крайней мере, активированы, есть тонкая разница), эти два вида не обязательно должны идти вместе, но обычно это происходит.

Например, у вас будет переключаться состояние выбранного элемента каждый раз, когда происходит событие движения нажатие. Еще раз, чтобы было более понятно, вы можете связать изменения выбранного состояния с тем, что вам нужно, будь то событие движения, такое как нажатие или долгое нажатие или двойное нажатие касание и так далее или к какому-либо другому событию или логике.

Надеюсь, это поможет и удачи!

person Alex.F    schedule 29.06.2014
comment
Как реализовать длительное нажатие в виде списка с помощью xamarin.forms? - person Mario Galván; 02.07.2014

ItemTapped должно появляться каждый раз, когда вы нажимаете на элемент, а ItemSelected каждый раз, когда выбранный элемент изменяется.

В основном

  • двойное нажатие на один и тот же элемент должно срабатывать два раза ItemTapped и только один раз ItemSelected
  • двойное нажатие на разные предметы должно срабатывать ItemTapped два раза и ItemSelected два раза
person Massimo Prota    schedule 12.12.2014
comment
Странно, у меня ItemSelected срабатывает дважды в первом случае. - person cuddlecheek; 10.08.2016
comment
Конечно, реализация может меняться в разных версиях и платформах. Я также помню, что 1.x не всегда запускал ItemTapped для Windows Phone. Вы должны сообщить об ошибке в bugzilla - person Massimo Prota; 11.08.2016

ItemSelected происходит первым. ItemTapped происходит вторым.

person Guy Micciche    schedule 16.07.2017

Стоит отметить одно существенное различие: как они работают, когда SelectionMode="None"

<ListView ... SelectionMode="None" />

Если установлено значение «Нет», событие ItemSelect не сработает, а свойство SelectedItem останется null.

Но события ItemTapped будут продолжать срабатывать, как и ожидалось.

интерактивность ListView

person Chris Catignani    schedule 21.10.2020

Я думаю, что ItemSelected — это когда вы используете DataTemplate для своих элементов.

person Rui Marinho    schedule 27.06.2014