Android ListView中的图像不遵循给定的宽度,并且在不同的行中具有不同的宽度

Android ListView中的图像不遵循给定的宽度,并且在不同的行中具有不同的宽度,android,android-layout,Android,Android Layout,我创建了一个自定义列表视图,其中一行包含imageview和textview。 有些图像与其他图像不一致,看起来很糟糕。下面是它的屏幕截图。 注意音乐和相册中的图标是如何占用额外空间的 该行的xml如下所示 <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:app = "http://schemas.android.com/apk/res-auto"

我创建了一个自定义列表视图,其中一行包含imageview和textview。 有些图像与其他图像不一致,看起来很糟糕。下面是它的屏幕截图。

注意音乐和相册中的图标是如何占用额外空间的

该行的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>

我对所有图像使用了相同的图标


同一个listview如何在图像中为我提供不同的宽度?

为什么给imageview权重为0.32,给textview权重为3。从ImageView中删除权重,并为textView指定权重1,这将解决您的问题。

如果指定权重,则应指定宽度0dp

在您的情况下,从图像中移除权重。
在文本视图中,将重量设为1,宽度设为0dp

谢谢。但我能知道为什么会这样吗。权重不会影响列表中的所有项目,而不仅仅是单个项目吗?因为您已经为ImageView和TextView赋予了权重,并且您的TextView是包装内容,所以根据textsize,宽度会受到影响。正如@sumit在其回答中指出的,权重是问题的根源。谢谢你告诉我重量和宽度的冲突。