3

Android では、GridView 内の各「セル」に ImageView があり、ImageView の下に TextView がある GridView があります。セルの幅は、すべてのセルで常に固定されています。画像のサイズは固定されており、すべてのセルで同じです。ただし、テキストの長さはさまざまです。テキストの長さがセルの幅よりも広い場合、テキストは折り返され、テキスト全体が表示されるようにセルの高さが拡張されます。

私が抱えている問題は、すべてのセルの高さを同じにできないように見えることです。1 つのセルにテキストがほとんどなく (折り返しなし)、隣接するセルに折り返しが生じるほどのテキストがある場合、最初のセルの高さは隣接するセルよりも短くなります。セルの高さが同じで、テキストビューの高さが大きくなるといいですね。

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>

編集 この投稿に出くわしました: GridView のセルを垂直に伸ばすにはどうすればよいですか?

しかし、解決策は正しくありません。TextView の行数を固定したくありません。

4

2 に答える 2

-1

個人的には、Gridview アイテムの高さを同じに保ちたい場合は、子 TextView の Maxlines を 1 に設定し、子 Container の高さを固定に設定します。

あなたの例では:

  • android:maxLines="1"を tvCaption に追加
  • android: minHeight ="X dip"android:layout_height="X dip"を GridItem に追加

X を十分な値に置き換えます。

于 2013-06-12T11:17:56.190 に答える