在Android中,我有一个GridView,其中GridView中的每个“单元格”都有一个ImageView,而ImageView下面是TextView。对于所有细胞,细胞的宽度始终是固定的。图像大小固定,对所有单元格都相同。然而,文本的长度可以变化。当文本的长度比单元格的宽度宽时,文本会换行,单元格的高度应该会扩展,以保持整个文本的可见性。
我遇到的问题是我似乎无法让所有细胞的高度都相同。如果一个单元格的文本很少(没有包装)但与其相邻的单元格足以导致包装,则第一个单元格的高度比相邻单元格的高度短。如果细胞具有相同的高度并且textview的高度增长,那将是很好的。
这是我的GridView的xml:
<GridView
android:id="@+id/gvDevices"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/llToolbar"
android:background="#000000"
android:columnWidth="160dp"
android:gravity="center_horizontal"
android:horizontalSpacing="0dp"
android:numColumns="2"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" >
这是每个单元格的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridItem"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="@drawable/image_border"
android:orientation="vertical" >
<LinearLayout
android:layout_width="160dp"
android:layout_height="120dp"
android:gravity="center_horizontal|center_vertical" >
<ImageView
android:id="@+id/ivDevice"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>
</LinearLayout>
<TextView
android:id="@+id/tvCaption"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#707070"
android:gravity="center_horizontal"
android:text="Huawei, 2013-05-29 6:30 PM"
android:textColor="#ffffff" >
</TextView>
</LinearLayout>
修改 我遇到过这篇文章: How can I stretch the cells of the GridView vertically?
但解决方案不正确。我不想在TextView中使用固定数量的行。
答案 0 :(得分:0)
最好的方法是将maxLines和minLines设置为相同的值。然后每个单元格将具有相同的高度:)
答案 1 :(得分:-1)
就个人而言,当我想为Gridview项目保持相同的高度时,我为Child TextView设置Maxlines为1,并为子容器设置固定高度。
在你的例子中:
用足够的值替换X.