2017-06-01 1 views
0

イメージビューとテキストビューを並べてカスタムリストビューを作成しました。 一部の画像が他の画像と整列していないため、ひどく見えます。以下は、それがどのように見えるかのスクリーンショットです。 Sceenshot of the appリストビュー内の画像は、指定された幅に従わず、異なる行に異なる幅を持ちます。

音楽とアルバムのアイコンが余分なスペースを取っていることに注目してください。

行の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

なぜイメージビューに0.32、テキストビューに3を与えていますか? ImageViewからウェイトを削除し、問題を解決する必要があるtextViewにウェイト1を与えます。

+0

ありがとうございます。しかし、なぜそれが実際に起こったのか分かりますか?重量は、単一のアイテムだけでなく、リスト内のすべてのアイテムに影響しませんか? –

+0

あなたはImageViewとTextViewに重みを与えているので、textviewはtextsizeに応じてラップされたコンテンツなので、幅が有効になりました。 – sumit

+0

それは明らかです。それを説明してくれてありがとう。 –

0

ウェイトを指定する場合は、幅を0dpにする必要があります。

あなたのケースでは、イメージからウェイトを削除してください。 テキストビューでは、ウェイト= 1、幅= 0dp

+0

@sumitが彼の答えで指摘したように、体重は問題を引き起こしていました。重量と幅の競合について私に知らせてくれてありがとう。 –

関連する問題