我使用这个标记:
<GridView
android:id="@+id/gvBlock0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/solitude"
android:gravity="center"
android:minHeight="120dp"
android:numColumns="2"
android:stretchMode="columnWidth"
tools:layout_height="120dp"
tools:listitem="@layout/list_item_block"/>
如果我只有3个项目(每行40dp)我有2行和80dp高度。
如果我改变android:layout_height=120dp
,我的预期高度为120dp。
但我只想使用minHeight。为什么它不起作用?
答案 0 :(得分:1)
来自GridView
source code,似乎它不支持minHeight
属性。
您可以通过以下方式之一修复它:
1)创建扩展 MinHeightGridView
的{{1}}自定义类,并通过添加以下覆盖代码来修复此问题,例如:
GridView
2)将@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// After GridView measured everything, see if height needs update
int desiredHeight = getMeasuredHeight();
desiredHeight = Math.max(desiredHeight, getSuggestedMinimumHeight());
setMeasuredDimension(getMeasuredWidth(), desiredHeight);
}
封装在容器视图中 - 容器视图将包含GridView
。确保在容器视图上根据需要设置背景和重力,例如:
minHeight
答案 1 :(得分:0)
尝试这样做。
将GridView
保留在父级中,并将该父级的minHeight
设置为&#34; 120dp&#34;。然后,内部GridView
使用"match_parent"
作为高度属性。