解决listview 嵌套listview

这几个文件是我从某位大神的简书上得来的,但是一时找不到这位仁兄,如果看到,请联系我,我将注明转载地址。(本人新人)


前段时间公司要开发一个软件产品,项目经理和我们的设计狮发过来一份UI,看到这份UI当时我的想法是想给设计狮下点含笑半步癫的。。。她居然给我弄了个双重嵌套listview 的布局过来。。但是咱不能对妹子这么粗鲁,和项目经理交涉无果,还是得上。


首先listview 嵌套listview  会涉及到内层listiew 的高度 问题,情况就是里面的listview 只显示了几个,显示不全,我之前在网上找的解决方法就是重写listview 

public class MyListView extends ListView {
    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}
 
 
主要就是重写onMeasure这个方法来重新计算高度。好了 ,显示不全的问题是解决了 ,但是我们还会碰到另外一个问题:无法使用适配器的缓存。双重嵌套的listview,我们
无法使用viewholder,convertView的缓存,数据稍大,就是自动GC。好嘛,前面全是无用功了。后面我到处找解决的方案,几经波折,得到了这一套
解决的代码。FullListView  是主要代码,不用更改,可以查看其中我的演示代码。这个东西唯一不好的就是刷新的时候有点困难 ,我是没有解决。你们看看
 
 

资源还在上传,我会补充,不急,

https://download.csdn.net/download/a260724032/10441994     应该是这个下载地址,


猜你喜欢

转载自blog.csdn.net/a260724032/article/details/54847548