在ExpandableListView中,如何检测组折叠?

Car*_*che 6 android expandablelistview

在我的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");
            }
        });
Run Code Online (Sandbox Code Playgroud)

使用此代码:当组折叠时:

  • 单击按钮=展开组
  • 点击组中的任何其他位置=执行某些操作 setOnGroupClickListener

当组扩展时:

  • 点击按钮=折叠组(好但是......)
  • 点击组中的任何其他位置=折叠组而不是反应 setOnGroupClickListener

setOnGroupClickListener单击展开的组时为什么没有加载?怎么解决?

fol*_*one 1

我遇到过一个有点类似的问题。我需要所有组始终可展开且可单击。为了使它工作,我在我的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
}
Run Code Online (Sandbox Code Playgroud)

我真的很感兴趣,是否有一种正常的方法可以做到这一点。