2017-06-01 80 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在他的回答中指出的那样,体重是造成这个问题的原因。感谢您通知我有关重量和宽度的冲突。 –

相关问题