Xamarin ExpandableListView中如何消费groupclick?
In Xamarin ExpandableListView, how to consume groupclick?
我有一个 ExpandableListView,我需要在其中使用 GroupClick 并防止默认 expand/collapse 操作发生。
使用"the C# way":
listView.GroupClick += (s, e) =>
{
return true;
};
它甚至无效,因为 GroupClicks 应该是无效的,因此不能 return 为真并消耗点击。
如果我尝试 "the Java way"(我不想这样做,但如果有必要,请理解):
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 完全禁用点击,这又不太可取,因为我仍然想捕获它并实现我自己的处理程序。但即使这样似乎也无法阻止它,即使我在代码和可扩展列表视图和 header 线性布局的布局 xml 中都设置了 clickable false。
似乎没有办法让它自己停止 expanding/collapsing。我究竟做错了什么?我觉得我可能遗漏了每种方式的一些基本方面。
如果您要将 onclickEvent 添加到父布局或 parentView 的任何视图,那么它将自动覆盖默认的 expand/collapse 操作。
我有一个 ExpandableListView,我需要在其中使用 GroupClick 并防止默认 expand/collapse 操作发生。
使用"the C# way":
listView.GroupClick += (s, e) =>
{
return true;
};
它甚至无效,因为 GroupClicks 应该是无效的,因此不能 return 为真并消耗点击。
如果我尝试 "the Java way"(我不想这样做,但如果有必要,请理解):
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 完全禁用点击,这又不太可取,因为我仍然想捕获它并实现我自己的处理程序。但即使这样似乎也无法阻止它,即使我在代码和可扩展列表视图和 header 线性布局的布局 xml 中都设置了 clickable false。
似乎没有办法让它自己停止 expanding/collapsing。我究竟做错了什么?我觉得我可能遗漏了每种方式的一些基本方面。
如果您要将 onclickEvent 添加到父布局或 parentView 的任何视图,那么它将自动覆盖默认的 expand/collapse 操作。