2009-09-30 18 views

risposta

27

È possibile applicare un centraggio a qualsiasi vista, tra cui un layout, utilizzando l'attributo XML Android:. Layout_gravity". Probabilmente si vuole dare il valore 'center'

È possibile trovare un riferimento di possibili I valori per questa opzione qui: http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#attr_android:layout_gravity

+2

AFAIK, layout_gravity è solo per LinearLayout, non per i layout arbitrari. – CommonsWare

+0

Come hai detto layout_gravity è solo per LinearLayout e riguardo RelativeLayout perché perché in app voglio incorporare la visualizzazione del testo su ImageView – Vicky

+0

l'ho provato anche con relativelayout e secondo me funziona – ludwigm

131

Passo # 1: Wrap qualunque cosa sia che si desidera centrato sullo schermo in un full-schermo RelativeLayout

Passo # 2:. Dare questo punto di vista del bambino (l'uno, che vuoi centrato all'interno dello RelativeLayout) ilAttributo.

+19

Questo ha funzionato solo per me quando ho inserito l'attributo android: layout_centerInParent = "true" nella vista all'interno di RelativeLayout. –

+1

Cosa fare se si desidera posizionarlo al centro, ma spostarlo verso il basso se esiste il rischio di sovrapposizione con un'altra vista? –

+3

È necessario inserire 'android: layout_centerInParent =" true "' nella vista figlio, non in 'RelativeLayout'. Gli attributi di 'android: layout_ *' influenzano il modo in cui una vista è posizionata e dimensionata all'interno del suo genitore, non come i bambini di una vista sono posizionati e dimensionati al suo interno. – Karu

17
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center"> 
    <ProgressBar 
     android:id="@+id/ProgressBar01" 
     android:layout_centerInParent="true" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content"></ProgressBar> 
    <TextView 
     android:layout_below="@id/ProgressBar01" 
     android:text="@string/please_wait_authenticating" 
     android:id="@+id/txtText" 
     android:paddingTop="30px" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"></TextView> 
</RelativeLayout> 
6

Se si desidera centrare una vista, utilizzare questa. In questo caso, TextView deve essere la vista più in basso nel tuo XML perché è layout_height è match_parent.

<TextView 
    android:id="@+id/tv_to_be_centered" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:gravity="center" 
    android:text="Some text" 
/> 
+0

Intendeva mettere il layout al centro, non mettere la vista. –

+1

@IgorG. posizionare un layout e una vista sono gli stessi perché un layout * è una * vista. – FoamyGuy

+0

@Tim Ho pensato che un layout è più simile a un ViewGroup che a un View ... –

14

sono riuscito a centrare una vista utilizzando

android:layout_centerHorizontal="true" 

e

android:layout_centerVertical="true" 

params.

+2

Si noti che questi attributi funzionano solo se la vista in questione è (direttamente) all'interno di un 'RelativeLayout'. – Karu

+0

questo è esattamente quello di cui avevo bisogno! Grazie – joshmmo

0

Aggiungere android: layout_centerInParent = "true" per elemento che si desidera centrare nel RelativeLayout

0

Essa opererà per quel codice a volte bisogno di entrambe le proprietà

android:layout_gravity="center" 
android:layout_centerHorizontal="true" 
1

risposta Aggiornato: Constraint Layout

Sembra che la tendenza in Android ora sia quella di utilizzare un layout Vincolo. Anche se è abbastanza semplice centrare una vista usando un RelativeLayout (come hanno mostrato altre risposte), lo ConstraintLayout è più potente dello RelativeLayout per i layout più complessi. Quindi vale la pena di imparare come si fa adesso.

Per centrare una vista, è sufficiente trascinare le maniglie su tutti e quattro i lati del genitore.

enter image description here

Problemi correlati