天天看點

ScrollView嵌套ListView、GridView

GridView、ListView與ScrollView在一起使用的時候會發生沖突,使得GridView、ListView隻顯示一行,那麼我們就要解決他們的沖突,使用以下方式可以很好的解決此問題

1、處理GridView與ScrollView在一起沖突的問題

建立一個類檔案MyGridView.java

public class MyGridView extends GridView {  

    public MyGridView(Context context, AttributeSet attrs) {  

        super(context, attrs);  

    }  

    public MyGridView(Context context) {  

        super(context);  

    }  

    public MyGridView(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);  

    }  

}  

2、處理ListView與ScrollView在一起沖突的問題

建立一個類檔案MyListView.java

public class MyListViewextends ListView {

public MyListView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public MyListView(Context context) {

super(context);

}

public MyListView(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);

}

}

使用的時候直接用此控件來代替GridView、ListView就可以了

繼續閱讀