Android 3级 - ExpandableListView仅在第三级显示行

时间:2013-02-12 01:09:23

标签: android expandablelistview

我需要为android实现一个3级 - ExpandableListView。我已经使用ExpListView作为另一个ExpListView的子节点。两个可扩展列表已经显示,也可以展开。但是只看到第二级,如果我点击第二级组行,箭头会变为展开状态,但第三级的行无法看到。认为外部ExpListView需要刷新以获取第3级行的空间,并且可能还需要重新计算行计数。

关于stackoveflow的类似问题,最多只有一个示例的链接,我不理解/无法适应我的实现的解决方案。

链接是:http://mylifewithandroid.blogspot.de/2011/02/3-level-expandable-lists.html

是否有更简单的解决方案或任何人都可以轻松解释它。上面链接中的代码对我没有帮助。

解释到目前为止我做了什么: 我已经在ExpandableListView和其getGroupView()中设置了BaseExpandableListAdapter,我使用了layoutInflater并编写了一个ViewHolder,它为每一行保存了TextView(作为第一级文本)。 在getChildView()中,我在第二个ViewHolder中使用了另一个ExpandableListView。在那个ExpListView上我还设置了一个BaseExpandableListAdapter,并为这个适配器实现了getGroupView()和getChildView()。使用类似于组描述的TextView(作为第二级文本)和此处也是子级(作为第3级文本)完成此操作。

如果需要,我明天可以发布一些代码,需要先在这里准备。但是一个好的教程也会帮助我。

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试在getChildView()

中使用自定义expandableListView
class YourCustomExpandableListView extends ExpandableListView { 
    public YourCustomExpandableListView (Context context) {
       super(context);     
    }

    protected void onMeasure(int width, int height) {
        /*
         * Adjust height
         */
        height = MeasureSpec.makeMeasureSpec(500, MeasureSpec.AT_MOST);
        super.onMeasure(width, height);
    }  
}

看看here

还可以找到完整的解决方案here