2012-04-04 19 views
8

Estoy tratando de hacer una actividad de entrada de PIN, pero una pequeña cosa no me funciona del todo. No puedo obtener el texto de centro en los TextView de en la parte superior de la pantalla aquí:El texto de Android TextView no se centrará

Pin Screenshot

La forma en que funciona es cuando el usuario está introduciendo un PIN, voy a colocar una estrella en cada TextView para comentarios visibles. El problema es que quiero que la estrella esté centrada. He intentado layout_gravity = "center", pero no hace la diferencia. Aquí está mi diseño actual:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView1" 
    android:text="PIN Required" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:layout_marginBottom="12sp" 
    ></TextView> 
    <LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/linearLayout1" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="12sp" 
    android:layout_gravity="center_horizontal" 
    > 
     <TextView 
     android:id="@+id/text1" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="48sp" 
     android:background="#FFFFFF" 
     android:text="X" 
     android:layout_gravity="center" 
     ></TextView> 
     <TextView 
     android:id="@+id/text2" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
     <TextView 
     android:id="@+id/text3" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
     <TextView 
     android:id="@+id/text4" 
     android:layout_height="32sp" 
     android:layout_width="48sp" 
     android:layout_weight="1" 
     android:layout_marginRight="48sp" 
     android:layout_marginLeft="2sp" 
     android:background="#FFFFFF" 
     ></TextView> 
    </LinearLayout> 
    <LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/linearLayout2" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="12sp" 
    > 
     <Button 
     android:text="1" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button1" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="48sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
     <Button 
     android:text="2" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button2" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="2sp" 
     android:layout_marginLeft="2sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
     <Button 
     android:text="3" 
     android:textColor="#FFFFFF" 
     android:id="@+id/button3" 
     android:layout_height="32sp" 
     android:layout_width="64sp" 
     android:layout_weight="1" 
     android:editable="false" 
     android:layout_marginRight="48sp" 
     android:layout_marginLeft="2sp" 
     android:background="@drawable/action_background_gradient" 
     android:onClick="ButtonClicked" 
     ></Button> 
    </LinearLayout> 

    <!--... and so on for the rest of the buttons ... --> 
</LinearLayout> 

Tengo que android: text = "X" en allí por primera TextView para que yo pueda ver si está funcionando. Cuando termine de retocar el diseño, desaparecerá. ¿Qué cosa simple me estoy perdiendo?

Respuesta

32

uso android:gravity="center"

aunque no aparece ningún elemento EditarTexto en el código. ¿Seguro que has publicado el código correcto?

+0

Eso es porque soy una cabeza hueca y que quería decir TextView. Trabajando en dos cosas a la vez. Pero tengo la gravedad = "centro" allí y no está funcionando. – MrGibbage

+7

Doh! Tengo layout_gravity, en lugar de solo gravedad. Suspiro ... ¡Gracias! – MrGibbage

+0

Gracias, esto me ayuda mucho. – Kedarnath

0

para centrar el texto, utilice android:gravity en la Vista de Texto, no layout_gravity:

<TextView 
    android:id="@+id/text1" 
    android:layout_height="32sp" 
    android:layout_width="48sp" 
    android:layout_weight="1" 
    android:layout_marginRight="2sp" 
    android:layout_marginLeft="48sp" 
    android:background="#FFFFFF" 
    android:text="X" 
    android:gravity="center" /> 
11
<TextView 
    android:id="@+id/text1" 
    android:layout_height="32sp" 
    android:layout_width="48sp" 
    android:layout_weight="1" 
    android:layout_marginRight="2sp" 
    android:layout_marginLeft="48sp" 
    android:background="#FFFFFF" 
    android:text="X" 
    android:layout_gravity="center" 
    android:gravity="center" 
/> 

android:layout_gravity="center" se refiere a la posición de esta opinión en su padre. android:gravity="center" se refiere a dónde se encuentran los contenidos de esta Vista.

+0

+1 para la explicación de la diferencia. ¡Gracias! – JohnK

+0

Para mi actividad particular, la configuración 'android: gravity' solo para' center' no resolvió el problema, también necesitaba establecer 'android: layout_gravity' en' center' +1 –

1

En lugar de Android: layout_gravity en vista de texto usar android:gravity="center_horizontal"

0

Esto se puede hacer mediante programación, así, de curso:

textView.setGravity(Gravity.CENTER); 
Cuestiones relacionadas