layout_width layout_weight examples ejemplo dinamico constraint android android-layout

layout_weight - table layout android



Alinear texto a la izquierda, casilla de verificación a la derecha (12)

Úselo como su Ítem LISTA / RECICLADOR. Las siguientes 2 líneas son la clave.

android: textDirection = "ltr" android: layoutDirection = "rtl"

<CheckBox android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:textDirection="ltr" android:layoutDirection="rtl" />

Intento crear un diseño para un ListView, con una casilla de verificación a la derecha y algo de texto a la izquierda. La casilla de verificación debe estar alineada completamente a la derecha y la vista de texto alineada todo el camino 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 representa es que TextBox está superponiendo la casilla de verificación, a la izquierda de la fila.


Como ya está usando RelativeLayout, haga uso de sus atributos:

Eliminar android:gravity de los niños y reemplazarlos por android:layout_alignParentLeft="true" para TextView y android:layout_alignParentRight="true" para CheckBox.

Eso posiciona a los niños en relación con las fronteras de los padres. También puede agregar android:layout_centerVertical="true" a cada elemento secundario para centrar los dos verticales dentro de cada elemento de la lista.

Para obtener más opciones y atributos, consulte la documentation .


Después de tratar de hacer esto yo mismo, finalmente lo hice. Solo tiene que colocar 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>

EDITAR: Me di cuenta de que quería texto todo el camino hacia el lado izquierdo de la pantalla. esto colocará la casilla de verificación completamente hacia la derecha y el texto justo al lado, en el lado izquierdo de la casilla de verificación.

Me gusta esto:

------------------------ text checkbox ------------------------ text checkbox ------------------------ text checkbox ------------------------


En la base de Oibaf, es la solución de MSaudi

android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"

agregar

android:paddingLeft="0dp"

para evitar el espacio vacío en la casilla de verificación del lado izquierdo de algún dispositivo. El enlace fuente:

¿Cómo mostrar la casilla de verificación de Android en el lado derecho?

respondido por zeusboy.


Mi solución en este caso es usar:

<CheckBox ... android:button="@null" android:drawableRight="@drawable/my_check" ... />

donde my_radio podría ser, por ejemplo, tu selector personalizado! El ejemplo del 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>


Si vas a utilizar un diseño relativo, podrías considerar usar los atributos de diseño relativo menos molestos, 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>

Solo ten cuidado con los elementos que se ponen encima de otros elementos.


Simplemente configure el interruptor: Parámetros de diseño -> Ancho a "match_parent"

originalmente es "wrap_content"


También eliminas android: orientation = "vertical" porque el diseño relativo no admite este atributo. Es un atributo del diseño lineal.

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>



Use android: gravedad = "inicio

<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"/>


Y para obtener el cuadro de la casilla de verificación a la derecha, en los atributos de la casilla de verificación

android:button="@null" android:drawableRight="?android:attr/listChoiceIndicatorMultiple"


por primera vez debe configurar el button para @null

android:button="@null"

si quieres activar una sola casilla de verificación de Android, usa a la derecha:

android:drawableRight="?android:attr/listChoiceIndicatorMultiple"

de lo contrario, si desea tener una imagen personalizada para el uso de la casilla de verificación:

android:drawableRight="@drawable/selector_check_box"

y para establecer la gravedad a la derecha:

android:gravity="right|center_vertical"

acción completa para usar personalizar 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: