阻止gridView扩展以适应横向宽度

时间:2015-04-22 17:24:04

标签: java android grid

我有一个包含4列imgs的gridView。当手机转向横向布局时,gridView的网格会扩展以填充宽度,在img之间创建空白区域,尽管img保持所需的宽度。有没有办法在横向布局中保持网格视图不填充屏幕宽度?

1 个答案:

答案 0 :(得分:0)

我有两种方法可以做到这一点:

1)为每个方向创建布局:

res/layout/....
res/layout-land/....

2)垂直和水平方向只有一个布局:

  • 使用:android:numColumns="4"

  • 设置GridView
  • 您的自定义视图项,始终设置为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);
    }
}