如何在网格视图中保留相同高度的单元格?

时间:2017-03-19 15:18:40

标签: android gridview

我有一个gridview,我需要同一行的单元格具有相同的高度(Android本身的宽度保持不变,但高度不同),它们看起来如下图所示 enter image description here

好的,每个单元格都有一个按钮和一个textview,textview文本可以很小或很大,最终会使每个单元格的高度不同。有没有办法让同一条线的所有单元格与最大单元格的高度相同?每个细胞都有不同的高度,这很奇怪。

gridview

<GridView
        android:id="@+id/grid_sons"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:horizontalSpacing="3dp"
        android:numColumns="2"
        android:verticalSpacing="3dp" />

单元格布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:ignore="ContentDescription">

    <ImageButton
        android:id="@+id/btn"
        android:layout_width="75dp"
        android:layout_height="75dp"
        android:layout_gravity="center_horizontal"
        android:layout_margin="20dp"
        android:background="@color/transparente"
        android:src="@drawable/ic" />

    <TextView
        android:id="@+id/txt_label_cell"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="10dp"
        android:layout_marginEnd="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginStart="5dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="@string/test"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/labelColor" />

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:background="#60ffffff" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ImageButton
            android:id="@+id/btn_what"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:background="@color/transparente"
            android:src="@drawable/ic_what" />

        <ImageButton
            android:id="@+id/btn_config"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:background="@color/transparente"
            android:src="@drawable/ic_config" />
    </LinearLayout>
</LinearLayout>

THX

2 个答案:

答案 0 :(得分:1)

在每个textview中添加任何一个属性

android:singleLine="true"
   android:maxLines="1" 

答案 1 :(得分:1)

答案已经给出......

看一下这篇文章......

GridView rows overlapping: how to make row height fit the tallest item?

我希望这会对你有帮助......