Alinear texto a la izquierda, marcar la casilla a la derecha
Estoy tratando de crear un diseño para un ListView, con una casilla de verificación a la derecha y un poco de texto a la izquierda. La casilla de verificación debe estar alineada completamente a la derecha y el TextView alineado completamente a la izquierda de la fila, por ejemplo:
------------------------ text checkbox ------------------------ text checkbox ------------------------ text checkbox ------------------------
Esto es lo que tengo hasta ahora:
- ¿Qué componente de visualización utiliza Google Plus App (Stream)?
- ¿Por qué mi menú de edición / copia de EditText se encuentra debajo de EditText? ¿Cómo cambiar el orden z de la ventana emergente?
- El ajuste de texto en varios EditTexts inflados hace que todos se rellenen con el mismo texto después de la rotación
- Obtener Posición de Vista Absoluta en ListView
- RelativeLayout textviews superpuestas
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:paddingLeft="5dip" android:paddingRight="5dip" android:paddingTop="8dip" android:paddingBottom="8dip" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left" /> <CheckBox android:id="@+id/chekcbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" /> </RelativeLayout>
Sin embargo, lo que realmente se procesa es que TextBox superpone la casilla de verificación, a la izquierda de la fila.
- En Android, ¿puedo utilizar la imagen de los elementos de layout xml?
- La barra de herramientas de la ocultación de AppBarLayout se oculta
- ActionbarSherlock: las pestañas no responden en la orientación horizontal
- Agregar CheckBox a la fila de lista pierde mis eventos onItemClick?
- Uso de la clase GLSurfaceView con diseños xml para Android
- Cómo obtener clics en RecyclerView (NO los niños)
- Estilo de fila ListView: texto alineado a la izquierda e icono alineado a la derecha
- Eliminar el foco de recyclerview dentro de Scrollview anidada
Dado que ya está utilizando un RelativeLayout, haga uso de sus atributos:
Eliminar android:gravity
de los niños y reemplazarlos con android:layout_alignParentLeft="true"
para el TextView y android:layout_alignParentRight="true"
para el CheckBox.
Eso sitúa a los niños en relación con las fronteras de los padres. También puede agregar android:layout_centerVertical="true"
a cada niño para centrar las dos verticales dentro de cada elemento de la lista.
Para obtener más opciones y atributos, consulte la documentación .
Utilice CheckedTextView
como un reemplazo para todo lo que ha mostrado anteriormente.
Y para obtener el cuadro de la casilla de verificación a la derecha, en los atributos de casilla de verificación
android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
Por primera vez debe establecer el button
@null
android:button="@null"
Si usted desea onl mover la casilla de verificación android a la derecha utilizar:
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
De lo contrario, si desea tener una imagen personalizada para la casilla de verificación, utilice:
android:drawableRight="@drawable/selector_check_box"
Y para gravedad del conjunto a la derecha:
android:gravity="right|center_vertical"
Acción completa para el uso modifica la casilla de verificación:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/_ics_btn_check_on" /> <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/_ics_btn_check_off" /> <item android:state_enabled="true" android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/_ics_btn_check_on_pressed" /> <item android:state_enabled="true" android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/_ics_btn_check_off_pressed" /> <item android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/_ics_btn_check_off" /> <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/_ics_btn_check_on" /> <item android:state_window_focused="false" android:state_checked="true" android:drawable="@drawable/_ics_btn_check_on_disabled" /> <item android:state_window_focused="false" android:state_checked="false" android:drawable="@drawable/_ics_btn_check_off_disabled" /> <item android:state_checked="false" android:drawable="@drawable/_ics_btn_check_off_disabled" /> <item android:state_checked="true" android:drawable="@drawable/_ics_btn_check_on_disabled" /> </selector>
Imágenes:
Mi solución en este caso es utilizar:
<CheckBox ... android:button="@null" android:drawableRight="@drawable/my_check" ... />
Donde my_radio podría ser por ejemplo usted selector personalizado! Ejemplo de selector podría ser:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/check_checked" /> <item android:state_checked="false" android:drawable="@drawable/check_unchecked" /> </selector>
En la base de Oibaf es o la solución de MSaudi
android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
Agregar
android:paddingLeft="0dp"
Para evitar el espacio vacío en el lado izquierdo de la casilla de verificación en algún dispositivo. El enlace fuente:
¿Cómo mostrar la casilla de verificación de Android en el lado derecho?
Contestado por zeusboy.
Después de intentar hacer esto yo, finalmente lo hice. Sólo tiene que poner un TextView y un CheckBox en un diseño horizontal, y poner la gravedad en el diseño a la derecha.
Aquí está el código:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:gravity="right" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/LabelText" /> <CheckBox android:id="@+id/ChecKBox_id" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
EDIT: Acabo de notar que quería texto todo el camino a la izquierda de la pantalla. Esto pondrá la casilla de verificación todo el camino a la derecha, y el texto justo al lado de él en el lado izquierdo de la casilla de verificación.
Me gusta esto:
------------------------ text checkbox ------------------------ text checkbox ------------------------ text checkbox ------------------------
Usar android: gravity = "iniciar
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Has Diploma:" android:textSize="15dp" android:id="@+id/checkBox_HasDiploma" android:gravity="start"/>
También puede eliminar android: orientation = "vertical" ya que el diseño relativo no admite este atributo. Es atributo de Linear Layout.
Puedes probarlo
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="8dip" android:paddingLeft="5dip" android:paddingRight="5dip" android:paddingTop="8dip" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:text="check" /> <CheckBox android:id="@+id/chekcbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" /> </LinearLayout>
Simplemente establezca el interruptor: Parámetros de diseño -> Ancho a "match_parent"
Originalmente es "wrap_content"
Si va a usar un relativelayout puede que desee considerar el uso de los menos molestos relativelayout atributos, alignParentLeft y alignParentRight, así:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingLeft="5dip" android:paddingRight="5dip" android:paddingTop="8dip" android:paddingBottom="8dip" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:alignParentLeft="true" /> <CheckBox android:id="@+id/chekcbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:alignParentRight="true" /> </RelativeLayout>
Sólo ten cuidado con los elementos que se ponen encima de otros elementos.
- Android: cómo utilizar getApplication y getApplicationContext de la clase non / service
- Obtenga espacio libre en la memoria interna