我有一个包含4列imgs的gridView。当手机转向横向布局时,gridView的网格会扩展以填充宽度,在img之间创建空白区域,尽管img保持所需的宽度。有没有办法在横向布局中保持网格视图不填充屏幕宽度?
答案 0 :(得分:0)
我有两种方法可以做到这一点:
1)为每个方向创建布局:
res/layout/....
res/layout-land/....
2)垂直和水平方向只有一个布局:
使用:android:numColumns="4"
您的自定义视图项,始终设置为android:layout_width="match_parent"
使用第二种方法,你可以用高项来解决问题。只需创建自定义视图并覆盖onMeasure
即可。
例如:我需要为我的项目设置LinearLayout并保持我的比率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);
}
}