【问题标题】:ExpandabeListView auto collapseExpandabeListView 自动折叠
【发布时间】:2011-05-18 10:37:24
【问题描述】:

我无法在扩展新组时关闭以前扩展的组。我读过类似的问题,但我无法从中提取概念。我尝试使用 collapseGroup (groupPosition) 方法,但它不起作用。

【问题讨论】:

    标签: android


    【解决方案1】:

    您好,请尝试以下代码。


    int lastExpandedGroupPosition = 0;   
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        final ExpandableListView listView = (ExpandableListView) findViewById(R.id.listView);
    
        listView.setOnGroupExpandListener(new OnGroupExpandListener() {
    
            @Override
            public void onGroupExpand(int groupPosition) {
    
                // TODO Auto-generated method stub
                if (groupPosition != lastExpandedGroupPosition) {
                    listView.collapseGroup(lastExpandedGroupPosition);
    
                }
                lastExpandedGroupPosition = groupPosition;
    
            }
        });
    
        adapter = new ExpandableListAdapter(this, new ArrayList<String>(),
                new ArrayList<ArrayList<Vehicle>>());
    
        // Set this blank adapter to the list view
        listView.setAdapter(adapter);
    
    
    }
    

    导入下一行。


    import android.widget.ExpandableListView.OnGroupExpandListener;
    

    【讨论】:

    • 我试过了,但无法在我的代码上实现它……我能更全面地了解这段代码吗..
    • 一个信息:如果你尝试使用上面的代码,并且得到一个“Cannot reference a non-final variable inside an internal class defined in a different method”错误,只需创建一个对onGroupExpand() 方法中的 listView。
    • 虽然这个一般概念有效,但当前一个打开的组高于您正在打开的新组时,它并不是一个很好的用户体验。您折叠的那一项下方的所有内容,包括您刚刚展开的那一项,都将向上滑动以填充空间 - 如果展开的组有很多项目,可能会滑出可见 ListView 的顶部。
    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2011-08-23
    • 2014-04-29
    • 2016-11-18
    • 2010-10-29
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多