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:

  <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.

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:

Introduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagenIntroduzca aquí la descripción de la imagen

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.

  • Cómo acceder a los recursos de dibujo (color) en java
  • ¿Cómo colocar el centro del diseño en la esquina superior derecha de otro diseño?
  • Crear una gran red de contenido en Android
  • Animar la eliminación de un elemento ListView
  • Traducir programaticamente Vista Pre-Honeycomb
  • ¿Es esta la forma correcta de obtener el efecto de rizo en los dispositivos pre-piruletas?
  • ViewDragHelper - Cambios en el diseño secundario ignorados al arrastrar
  • ¿Cómo puedo anclar una imagen al centro dentro de una vista de imagen en una vista de desplazamiento, en Android?
  • Android reduce el espacio entre dos TextViews verticales
  • Aplicación de tema transparente a la actividad: no se ajusta a pantalla completa en dispositivo
  • Textview setCompoundDrawables no cambiar o mostrar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.