需求:
很多情況下GridView設置高度wrap_content就只會顯示一行,數據顯示不全,需要滾動查看後面的數據。設置match_parent又會佔滿一屏使得在它下邊的控件到了不顯示。給他固定高度吧,又不靈活。我們想讓他數據有多少行就顯示多少行,解決方法如下:自定義GridView,重寫onMeasure方法
實現:
public class LabelGridView extends GridView {
public LabelGridView(Context context) {
super(context);
}
public LabelGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
其他問題:
另外有一點需要注意的是,在給GridView設置onItemClickListener的時候,若有點擊item不響應或者不靈敏的情況的話,請檢查是否使用了權重,如果有,可以給他添加一個外層layout,然後把權重移到外層layout。