【问题标题】:Image in ListView does not follow the width given and has different widths in different rowsListView 中的图像不遵循给定的宽度,并且在不同的行中具有不同的宽度
【发布时间】:2017-06-01 10:23:19
【问题描述】:

我已经制作了一个自定义列表视图,其中包含连续的 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>

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

同一个列表视图如何在图像中给我不同的宽度?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    为什么你给 imageview 赋予 0.32 权重,给你的 textview 赋予 3 权重。从您的 ImageView 中删除权重,并为您的 textView 赋予权重 1,这应该可以解决您的问题。

    【讨论】:

    • 谢谢。但我能知道为什么会这样吗?重量会不会影响列表中的所有项目,而不仅仅是单个项目?
    • 因为你已经给 ImageView 和 TextView 赋予了权重,并且你的 textview 是包装内容,所以根据 textsize,宽度会受到影响。
    【解决方案2】:

    如果你指定权重,你应该给出 0dp 的宽度。

    在您的情况下,请从图像中删除重量。 在 textview 中,设置 weight = 1 和 width = 0dp

    【讨论】:

    • 正如@sumit 在他的回答中指出的那样,重量导致了这个问题。感谢您告知我有关重量和宽度冲突的信息。
    猜你喜欢
    • 2016-05-13
    • 2012-09-26
    • 2020-03-23
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2015-08-24
    相关资源
    最近更新 更多