Ich habe ein ziemlich einfaches Layout (Linear) für mein ListView-Element, nur 3 horizontal angeordnete Widgets: 2 TextView-Elemente dann ein Button. Aber obwohl die layout_height von allen 3 wrap_content ist, scheint es, dass der Wert, der für die Schaltfläche verwendet wird, das ListItem dazu zwingt, viel mehr als nötig zu expandieren. Durch einfaches Verändern des Wertes der layout_height auf 25dp entfällt dies.Warum ist die Höhe von ListItem (ein LinearLayout) so hoch, wenn layout_height in wrap_content geändert wird?
Warum hat der wrap_content der Schaltfläche diesen Effekt und wie kann er gestoppt werden?
Beachten Sie die Hintergrundfarben in meinen Screenshots unten, die Widget-Dimensionen zeigen. Der einzige Unterschied zwischen den zwei Bildern ist, dass in meinem XML (unten) die Layouthöhe des Buttons von wrap_content auf 25dp geändert wurde.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:id="@+id/tvTotal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_gravity="left"
android:text="0."
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".15"
android:background="@color/LightGreen"
/>
<TextView
android:id="@+id/tvName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="left"
android:text=""
android:textSize="18sp"
android:maxLines="1"
android:layout_weight=".55"
android:background="@color/LightBlue"
/>
<Button
android:id="@+id/btnMyButton"
android:layout_width="0dp"
android:layout_height="25dp"
android:gravity="right"
android:layout_gravity="right"
android:textColor="@color/CornflowerBlue"
android:text="Questions"
android:textSize="16dp"
android:maxLines="1"
android:layout_weight=".3"
android:background="@color/black"
>
</Button>
</LinearLayout>
Mit wrap_content für layout_height der Button:
hartzucodieren 25dp für Button des layout_height:
Sicher. Bizarr. Warum würde Android-Jack so viel Padding, und warum auch auf dem Button aber nicht andere Widgets? – Alyoshak
wegen der Ux Problem ich denke. Cause-Button sind anklickbar..und sichtbaren Text in ihnen..so der Standard-Padding hinzugefügt. – rafsanahmad007
Das war eine Menge Standardpolsterung. – Alyoshak