在我的expandableListView中,我制作了一个自定义按钮来扩展/折叠组并使其正常工作,但是当折叠时不行。
用这个代码
listView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
Log.d("group click");
return true;
}
});
listView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
Log.d("group collapse");
}
});
listView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
Log.d("group expand");
}
});
使用此代码:
当组折叠时:
做某事
setOnGroupClickListener
当组扩展时:
组(好的,但是...)
使小组崩溃而不 react
来自
setOnGroupClickListener
为什么在单击扩展组时未加载
setOnGroupClickListener
?怎么解决呢?
最佳答案
我遇到了一个类似的问题。我需要所有群组始终保持扩展和可点击状态。为了使其工作,我在ExpandableListActivity
中编写了这个猴子代码:
public void onCreate(Bundle savedInstanceState) {
...
// Expanding all.
for(int i = 0; i < adapter.getGroupCount(); i++)
getExpandableListView().expandGroup(i);
...
}
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
overrideStupidListBehaviour(groupPosition);
return false;
}
@Override
public void onGroupCollapse(int groupPosition) {
// Forbidding it to collapse.
getExpandableListView().expandGroup(groupPosition);
overrideStupidListBehaviour(groupPosition);
}
private void overrideStupidListBehaviour(int groupPosition) {
// Code to do when onGroupClick is called
}
我真的很感兴趣,如果有正常的方法可以做到这一点。