listview与gridview嵌套

在真实项目中通常会遇到ListView或者GridView嵌套在ScrollView中问题。但是做的时候会发现,一旦两者进行嵌套,即会发生冲突。得不到我们希望的效果。由于ListView和GridView本身都继承于ScrollView,一旦在ScrollView中嵌套ScrollView,那么里面的ScrollView高度计算就会出现问题。我们也就无法得到想要的效果。

 核心解决方案:重写ListView或者GridView的OnMesure 方法:

 
public class DefinedGridView extends GridView {

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

    public DefinedGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override   
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
        int expandSpec = MeasureSpec.makeMeasureSpec(   
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);   
        super.onMeasure(widthMeasureSpec, expandSpec);   
    }
  
}

 

posted @ 2015-06-06 11:20  jch19881224  阅读(25)  评论(0)    收藏  举报