最近有一個(gè)需求祭芦,就是使用GridView,需要讓高度實(shí)現(xiàn)自適應(yīng)憔鬼,于是乎在網(wǎng)上找了一個(gè)龟劲,發(fā)現(xiàn)很多人都是寫了一個(gè)方法,重寫測量高度逊彭,但是我用了之后并沒有什么用咸灿,也許是我用錯(cuò)了地方。
這個(gè)需求一定要解決的侮叮,于是到處找資料避矢,突然發(fā)現(xiàn)我之前寫的一篇文章,自定義控件
我也給出連接,如果有需要的朋友可以看看
http://www.reibang.com/p/730ff94f2982 自定義控件
于是我想GridView也可以重寫呀审胸,于是重寫了一下GridView亥宿,并重寫了它的測量方法;很簡單的幾行代碼砂沛,實(shí)現(xiàn)了功能烫扼,我把代碼也貼一下,給大家一個(gè)借鑒和參考:
/**
* author guofei_wu
* email guofei_wu@163.com
*/
public class MyGridView extends GridView {
public MyGridView(Context context) {
super(context);
}
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int heightSpec;
// 這幾行代碼比較重要
if(getLayoutParams().height == AbsListView.LayoutParams.WRAP_CONTENT){
heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
}else{
heightSpec = heightMeasureSpec;
}
super.onMeasure(widthMeasureSpec, heightSpec);
}
}