2016-05-02 2 views
0

У меня есть 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.

Кажется, что нет способа заставить его перестать расширяться/сворачиваться самостоятельно. Что я делаю не так? Я чувствую, что, возможно, мне не хватает фундаментального аспекта каждого из способов.

ответ

1

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

+0

Это похоже на работу, спасибо. Я добавил rowView.SetOnClickListener в строки заголовка, и он ловит клик и предотвращает действие по умолчанию. Добавление делегата rowView.Click + = нет. Является ли это ошибкой (или больше похожей на отсутствие реализации функции) в Xamarin? – ben

+0

Ну, я не разработчик Xamrin, но я могу помочь вам в этом. Пожалуйста, объясните свое текущее требование. –

+0

Это не ошибка. У нас аналогичная проблема в студии android. –

Смежные вопросы