我有一个包含 4 列 img 的网格视图。当手机转向横向布局时,gridView 的网格会扩展以填充宽度,在 img 之间创建空白,尽管 img 保持所需的宽度。有没有办法在横向布局中防止网格视图填充屏幕宽度?
我有 2 种方法可以做到这一点:
1) 为每个方向创建布局:
res/layout/....
res/layout-land/....
2) 垂直和水平方向只有一个布局:
使用以下命令设置 GridView:
android:numColumns="4"
您的自定义视图项目,始终设置为
android:layout_width="match_parent"
使用第二种方法,您可能会遇到项目高的问题。只需创建自定义视图并覆盖onMeasure
即可。
例如:我需要为我的项目提供一个线性布局并保持我的比例height/width = 4.5/4
,所以我做以下自定义:
public class MyLinearLayout extends LinearLayout {
//..... constructor methods
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int scaleHeight =(int)( widthMeasureSpec/4*4.5);
super.onMeasure(widthMeasureSpec, scaleHeight);
}
}