0

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:

enter image description here

hartzucodieren 25dp für Button des layout_height:

enter image description here

Antwort

1

Der zusätzliche Platz sind Tasten Standard-Polsterung.

Wenn Sie es verwenden, entfernen möchten:

genug
android:minHeight="0dp" 
android:minWidth="0dp" 

im Code

<Button 
    android:id="@+id/btnMyButton" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="right" 
    android:layout_weight=".3" 
    android:background="@color/black" 
    android:gravity="right" 
    android:maxLines="1" 
    android:minHeight="0dp" 
    android:minWidth="0dp" 
    android:text="Questions" 
    android:textColor="@color/CornflowerBlue" 
    android:textSize="16dp"></Button> 
+0

Sicher. Bizarr. Warum würde Android-Jack so viel Padding, und warum auch auf dem Button aber nicht andere Widgets? – Alyoshak

+0

wegen der Ux Problem ich denke. Cause-Button sind anklickbar..und sichtbaren Text in ihnen..so der Standard-Padding hinzugefügt. – rafsanahmad007

+0

Das war eine Menge Standardpolsterung. – Alyoshak

Verwandte Themen