Shishydev 2014-07-30 05:40 采纳率: 0%
浏览 1398

Android expandablelistview 点击了groupview的一项却展开另外一项

Android expandablelistview ,在4.2上正常运行,在2.3.3上点击了groupview的一项却展开另外一项,在4.2上正常运行有人说是索引乱了,请问我该怎么解决啊,跪求大神。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 09:46
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    我遇到过类似的问题,是由于expandableListView的子项中没有正确设置数据。你可以在expandableListView中添加一个监听器,当子项被选中时,你可以检查它是否与当前选中的子项相同,如果是,则将当前选中的子项设置为null。这样,即使用户在不同的子项之间进行切换,expandableListView也不会出现错误。以下是一个简单的示例:

    ExpandableListAdapter adapter = ((ExpandableListAdapter) list.getAdapter());
    adapter.setOnGroupClickListener(new OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                                    int groupPosition, long id) {
            // Check if the clicked item is the same as the current selection
            for (int i = 0; i < parent.getChildCount(); i++) {
                ExpandableListViewChild child = (ExpandableListViewChild) parent.getChildAt(i);
                if (child != null && child.getItem().equals(adapter.getGroup(groupPosition))) {
                    adapter.setExpanded(groupPosition, false);
                    return true;
                }
            }
            return false;
        }
    });
    

    这个方法会遍历所有的子项,并检查它们是否与当前选中的子项相同。如果相同,那么就将其设置为未展开状态。这应该可以避免你在不同的子项之间进行切换时expandableListView出现问题。

    评论

报告相同问题?