2016-03-26 18 views
-1

ich ein Fragment mit einem ListView bekam:Leere Listview-Layout nicht in der Mitte des Bildschirms angezeigt

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:layoutDirection="rtl" > 

<ListView 
    android:id="@+id/listViewPlaces" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
</ListView> 

<ViewStub 
    android:id="@android:id/empty" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout="@layout/empty_list_layout" /> 

und die empty_list_layout:

<Button 
    android:id="@+id/no_result_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:clickable="false" 
    android:drawableTop="@drawable/app_icon" 
    android:text="@string/empty_list" 
    android:textSize="30sp" /> 

Ich sehe die Schaltfläche in der Mitte des grafischen Layouts der Eclipse für empty_list_layout, aber wenn die Liste leer ist, wird das Layout am oberen Rand des Bildschirms angezeigt. Warum ist es nicht in der Mitte wie das Layout es zu sagen?

Antwort

0

Das ist, weil Ihre Elternansicht LinearLayout mit Ausrichtung als vertikal ist und Ihre leere ViewStub Höhe wie wrap_content hat. Daher beginnt LinearLayout damit, sein Kind von oben nach unten zu zeichnen.

Sie möchten als Eltern verwenden.

+0

Warum funktioniert es nicht auch, wenn ich die ViewStub-Höhe so ändere, dass sie mit dem übergeordneten Element übereinstimmt? mit seiner Schwerkraft und dem anderen Layout sollte es nicht funktionieren? –

+0

Tatsächlich wird 'gravity' für seine internen childs verwendet, die Eigenschaft, die Sie verwenden möchten, ist' layout_gravity', die die Platzierung der Gravitation in der übergeordneten Klasse bewirkt. –

+0

und wie Sie aus dem xml sehen: Android: layout_gravity = "center" –

Verwandte Themen