2017-06-01 73 views
0

我使用imageview和textview在一行中進行了自定義列表視圖。 某些圖像沒有與其他圖像對齊,看起來很糟糕。下面是它的外觀截圖。 Sceenshot of the appListView中的圖像不遵循給定的寬度,並且在不同的行中具有不同的寬度

請注意音樂和相冊中的圖標如何佔用額外的空間。

該行的XML如下

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" 
      xmlns:app = "http://schemas.android.com/apk/res-auto" 
      android:layout_width = "match_parent" 
      android:layout_height = "match_parent" 
      android:background = "#F7BA70" 
      android:orientation = "horizontal"> 

<ImageView 
    android:id = "@+id/categoryListRowImage" 
    android:layout_width = "30dp" 
    android:layout_height = "50dp" 
    android:layout_gravity = "center_vertical" 
    android:layout_weight = "0.32" 
    android:adjustViewBounds = "true" 
    android:contentDescription = "Image Description" 
    android:scaleType = "fitXY" 
    android:src = "@drawable/music" /> 

<TextView 
    android:id = "@+id/categoryListRowId" 
    android:layout_width = "wrap_content" 
    android:layout_height = "wrap_content" 
    android:visibility = "gone" /> 

<TextView 
    android:id = "@+id/categoryListRowText" 
    android:layout_width = "wrap_content" 
    android:layout_height = "50dp" 
    android:layout_gravity = "center_vertical" 
    android:layout_weight = "3" 
    android:gravity = "center_vertical" 
    android:paddingEnd = "20dp" 
    android:paddingLeft = "20dp" 
    android:paddingRight = "20dp" 
    android:paddingStart = "20dp" 
    android:textColor = "#FFF" 
    android:textSize = "24sp" /> 

<ImageView 
    android:layout_width = "20dp" 
    android:layout_height = "20dp" 
    android:layout_gravity = "center_vertical" 
    android:layout_marginRight = "20dp" 
    android:scaleType = "fitXY" 
    android:src = "@drawable/white_arrow" /> 

</LinearLayout> 

我已經使用了相同的圖標對所有圖像

同一列表視圖如何給我的圖像寬度不同?

回答

1

你爲什麼要給imageview權重0.32,你的textview權重是3。從你的ImageView中刪除重量,並給你的textView加1,以解決你的問題。

+0

謝謝你。但我能知道爲什麼發生這種情況。重量不會影響列表中的所有項目,而不僅僅是單個項目? –

+0

由於您已經給ImageView和TextView賦予了權重,並且您的textview正在包裝內容,所以根據文本大小,寬度變得更加有效。 – sumit

+0

這說得很清楚。感謝您解釋它。 –

0

如果您指定體重,則應該給出0dp的寬度。

就你的情況,從圖像中刪除重量。 在textview中,使重量= 1和寬度= 0dp

+0

正如@sumit在他的回答中指出的那樣,體重是造成這個問題的原因。感謝您通知我有關重量和寬度的衝突。 –