gpt4 book ai didi

Android:长按 ExpandableListView 的 subview ?

转载 作者:IT王子 更新时间:2023-10-28 23:47:49 25 4
gpt4 key购买 nike

ExpandableListView 有一个 setOnChildClickListener 方法,但缺少 setOnChildLongClickListener 方法。

当我在 getChildView() 的 subview 上添加 setOnLongClickListener() 时,整个子列表变得完全不可点击(尽管有 parentView.setOnChildClickListener() 现在和以前工作)。

如何启用长点击 subview ?

最佳答案

我设法在 ExpandableListView 子项上获得长点击,使用以下方法:

getExpandableListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
int groupPosition = ExpandableListView.getPackedPositionGroup(id);
int childPosition = ExpandableListView.getPackedPositionChild(id);

// You now have everything that you would as if this was an OnChildClickListener()
// Add your logic here.

// Return true as we are handling the event.
return true;
}

return false;
}
});

花了很长时间才弄清楚 onItemLongClick 中的 id 参数是 getPackedPosition* 方法所需的 packedPosition 参数,文档中肯定不清楚。

注意:要使此解决方案起作用,您需要覆盖适配器中的 getGroupIdgetChildId() 方法

   @Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

关于Android:长按 ExpandableListView 的 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com