【问题标题】:Expandable list view - collapse an item on expanding another item (Android)可展开的列表视图 - 在展开另一个项目时折叠一个项目 (Android)
【发布时间】:2020-12-15 13:00:07
【问题描述】:

我已使用可扩展列表视图在我的导航抽屉项目中实现下拉功能。现在,如果我展开一个导航抽屉项目,然后再展开另一个 - 两个项目都保持展开状态。我想要的是,当我展开一个项目,然后再展开另一个项目时,前一个项目会折叠。

我已经使用下面的代码来尝试这样做:

expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
            @Override
            public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
               
                        for (Map.Entry mapElement : expandabilityMap.entrySet()) {
                            int groupPos = (int) mapElement.getKey();
                            boolean isExpanded = (boolean) mapElement.getValue();
                            if (isExpanded) {
                                parent.collapseGroup(groupPos);
                            }

                            expandabilityMap.put(groupPosition, true);
                        }
                return false;


            }

        });

我有一个名为“expandabilityMap”的哈希图,其中我将导航抽屉项目位置存储为键,并将“真”或“假”作为值 - 如果该位置的项目展开,则为 true,否则为 false。

以上代码应该在单击导航抽屉中的项目时执行以下操作:

  1. 从 hashmap 中获取键和值。
  2. 如果有 'true' 值,则在相应位置折叠项目。
  3. 将当前单击的项目位置与“真”值一起放入哈希图中。
  4. 展开点击的项目。

但是在运行我的应用程序后,当我展开一个项目时,它会展开。但是当我尝试展开另一个项目时,我的应用程序崩溃了。

我得到以下异常:

E/MessageQueue-JNI: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0

我无法解决这个问题。请帮忙!

【问题讨论】:

    标签: android expandablelistview


    【解决方案1】:

    试试这个:

        expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
            int previousGroup = -1;
            @Override
            public void onGroupExpand(int groupPosition) {
                if (groupPosition != previousGroup)
                    expandableListView.collapseGroup(previousGroup);
                previousGroup = groupPosition;
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多