2013-06-12 42 views
3

在Android中,我有一個GridView,其中GridView中的每個「單元格」都有一個ImageView,而在ImageView下面有一個TextView。單元格的寬度對於所有單元格都是固定的。圖像的大小是固定的,並且對於所有單元格都是相同的。文本的長度可能會有所不同。當文本的長度比單元格的寬度更寬時,文本包裝和單元格的高度應擴大以保持整個文本可見。允許GridView單元格的高度展開,但爲所有單元格保持相同的高度

我遇到的問題是,我似乎無法使所有單元格的高度相同。如果一個單元格的文本很少(沒有包裝),但與其相鄰的單元格有足夠的空間進行包裝,則第一個單元格的高度比鄰近單元格的高度要短。如果單元格具有相同的高度並且文本視圖高度增加,那將會很好。

這是我爲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中使用固定數量的行。

回答

-1

就我個人而言,當我想爲Gridview項目保持相同的高度時,我將Maxlines設置爲1,以便爲Child TextView設置固定高度的子容器。

在您爲例

  • 添加機器人:MAXLINES = 「1」到tvCaption
  • 添加安卓了minHeight = 「X探底」機器人:layout_height = 「X探底」到GridItem

用足夠的值替換X.

+2

但是,不允許高度與增加的文本伸展,這是我所要求的。 – AndroidDev

+0

我處於同樣的情況,你想知道如何解決? – user2340612

+0

只爲網格項目 – OWZY

0

最好的方法是您可以將maxLines和minLines都設置爲相同的值。然後每個單元格將具有相同的高度:)