防止网格视图扩展以适应横向宽度



我有一个包含 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);
    }
}

最新更新