互斥的ExpandableListView

ExpandableListView是常用的二级列表,往往需求都会这样设计当点开了一个group,就需要将上一个打开的关闭掉。形成互斥的效果。看了一下api. 发现了一个collapseGroup(int i)的方法,可以关闭group。试了几次没有效果,后来才发现,该方法只能在setOnGroupExpandListener方法中起作用,我表示很尴尬,废话就到这里了,马上给各位看官上代码。

private ExpandableListView mExpandableListView;
    private int lastGroupPosition = -1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        mExpandableListView = (ExpandableListView) findViewById(R.id.expand_lv);

        mExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
            @Override
            public void onGroupExpand(int groupPosition) {
                if(lastGroupPosition >= 0 && lastGroupPosition != groupPosition && mExpandableListView.isGroupExpanded(lastGroupPosition)) {

"""                    mExpandableListView.collapseGroup(groupPosition);//关闭上一个
打开的
"""
                }
                lastGroupPosition = groupPosition;
            }
        });

    }

这里就没有给ExpandableListView设置Adapter了哈,这个看官自己补上。

你的支持,是我写博客的动力,谢谢!

猜你喜欢

转载自blog.csdn.net/u010844304/article/details/52864642