我需要为android实现一个3级可扩展的listview。我用explistview做过这个,作为另一个explistview的孩子。两个可展开列表已经显示,并且也可以展开。但是只看到第二层,如果我单击第二层组行,箭头将变为展开状态,但第三层的行无法看到。认为outer explistview需要刷新以获得第三级行的空间,并且可能还需要重新计算行数。
在stackoveflow上的类似问题上,最多只有一个示例链接,我不理解/无法适应我的实现。
链接如下:http://mylifewithandroid.blogspot.de/2011/02/3-level-expandable-lists.html
有没有更简单的解决办法,或者有谁能用简单的方式来解释。上面链接中的代码对我没有帮助。
解释我到目前为止所做的:
我已经在ExpandableListView上设置了BaseExpandableListAdapter,在它的getGroupView()中,我正在使用LayoutFlater并编写一个ViewHolder,它为每一行保存一个文本视图(作为一级文本)。
在getChildView()中,我将在第二个viewHolder中使用进一步的可扩展ListView。在这个explistview上,我还设置了一个baseexpandablelistadapter,并实现了这个适配器的getgroupview()和getchildview()。对组(作为二级文本)和here-also子级(作为三级文本)使用类似的textview完成此操作。
如果需要的话,我明天可以发一些代码,需要先在这里准备。但是一个好的指导对我也有帮助。
谢谢您。

最佳答案

尝试在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

08-15 21:30