У меня есть ExpandableListView, где мне нужно использовать GroupClick и предотвращать действия по умолчанию для развернуть/свернуть.В Xamarin ExpandableListView, как потреблять groupclick?
Использование «C# путь»:
listView.GroupClick += (s, e) =>
{
return true;
};
это даже не действует, потому что GroupClicks как ожидается, будут недействительными, и, таким образом, не может вернуть истинный и потреблять щелчок.
Если я пытаюсь «путь Java» (который я предпочел бы не делать, но понять, если это необходимо):
class OnGroupClickListener : Java.Lang.Object, IOnGroupClickListener
{
public bool OnGroupClick(ExpandableListView parent, View clickedView, int groupPosition, long id)
{
Console.WriteLine("consuming groupclick");
return true;
}
}
// elsewhere
mylistview.SetOnGroupClickListener(new OnGroupClickListener());
он не делает ничего; OnGroupClick никогда не вызывается.
Затем я попытался отключить клики в целом с помощью clickable = false в представлении, что опять же менее предпочтительно, потому что я все равно хотел бы поймать его и реализовать собственный обработчик. Но даже это, похоже, не останавливает его, даже если я устанавливаю clickable false как в коде, так и в макете xml как в расширении listview, так и в заголовке linearlayout.
Кажется, что нет способа заставить его перестать расширяться/сворачиваться самостоятельно. Что я делаю не так? Я чувствую, что, возможно, мне не хватает фундаментального аспекта каждого из способов.
Это похоже на работу, спасибо. Я добавил rowView.SetOnClickListener в строки заголовка, и он ловит клик и предотвращает действие по умолчанию. Добавление делегата rowView.Click + = нет. Является ли это ошибкой (или больше похожей на отсутствие реализации функции) в Xamarin? – ben
Ну, я не разработчик Xamrin, но я могу помочь вам в этом. Пожалуйста, объясните свое текущее требование. –
Это не ошибка. У нас аналогичная проблема в студии android. –