防止列在gridview中拉伸

时间:2019-05-19 07:45:21

标签: java android gridview

我有一个网格视图,其中有2列:

<GridView
            android:id="@+id/therapy_grid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="1dp"
            android:numColumns="auto_fit"
            android:verticalSpacing="2dp"
            android:horizontalSpacing="2dp"
            android:stretchMode="columnWidth"
            android:adjustViewBounds="true"/>

它会拉伸以填满所有宽度,但我希望它防止拉伸。我也阅读了以下主题:link,但找不到解决方法。

2 个答案:

答案 0 :(得分:0)

尝试一下:

  

CustomImageView.java

import android.content.Context;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;

public class CustomImageView extends AppCompatImageView {

    public CustomImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        try {
            getLayoutParams().height = getMeasuredWidth();
        } catch (Exception e) {
            //no-op
        }
    }
}

  

xml使用:

<com.example.myapplication.CustomImageView
    android:id="@+id/imageView1"
    android:layout_width="200dp"
    android:layout_height="120dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@color/colorAccent" />

答案 1 :(得分:0)

要停止拉伸,请在您的xml中更改这样的StretchMode:

android:stretchMode="none"

或使用以下模式之一:

columnWidth:每列均等延伸。

none:禁用拉伸。

spacingWidth:每列之间的间距被拉长。

spacingWidthUniform:每列之间的间距被均匀拉伸。.

您可以找到更多详细信息here