Android: ¿Cómo ajustar el margen / relleno en la preferencia?
Antes de preguntar para quitar el relleno de la PreferenceActivity / PreferenceFragment:
Android: ¿Cómo maximizar el ancho de PreferenceFragment (o deshacerse del margen)?
- Título de preferencia de Android / estilo de texto de resumen
- Cómo insertar DrawerLayout en PreferenceActivity en una aplicación de Android?
- Personalización del diseño de una pantalla PreferenceScreen
- Android obtiene la vista de Preferencia en PreferenciaActividad
- Título de Preferencia de Android en dos líneas
Esta vez tengo problemas para ajustar el margen / relleno antes de Título de texto. (Vea la imagen abajo).
¿Alguien tiene alguna idea?
- Android: ¿Hay una manera de mostrar DialogPreference desde el código?
- Cómo implementar una confirmación (sí / no) DialogPreference?
- Preferencias de diferentes alturas dentro de una PreferenciaActividad
- Preferencia de la casilla de verificación Android
- ¿Cómo puedo configurar el color de texto de resumen de preferencias de Android?
- ActivityNotFoundException cuando targetClass del paquete diferente en PreferenceScreen
- PreferenceActivity funciona correctamente en Android 2.1, pero no en 4.1 (acolchado)
- Preferencia android divisor horizontal en la preferencia personalizada?
Puede personalizar la casilla de verificación como: MyPreference.xml
<CheckBoxPreference android:key="testcheckbox" android:title="Checkbox Title" android:summary="Checkbox Summary..." android:layout="@layout/custom_checkbox_preference_layout"> </CheckBoxPreference>
Y custom_checkbox_preference_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:gravity="center_vertical" android:paddingLeft="16dip" android:paddingRight="?android:attr/scrollbarSize"> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:minWidth="0dp" android:gravity="center" android:orientation="horizontal"> <ImageView android:id="@+android:id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dip" android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:layout_weight="1"> <TextView android:id="@+android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceMedium" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@+android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="?android:attr/textColorSecondary" android:maxLines="4" /> </RelativeLayout> <!-- Preference should place its actual preference widget here. --> <LinearLayout android:id="@+android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" /> </LinearLayout>
El punto es android: minWidth = "0dp".
Para cualquier persona que se enfrenta a este problema y no desea ir a través de diseño personalizado. Me gustaría señalar que la adición de:
android:icon="@null"
Resuelto mi problema con el espacio vacío del lado izquierdo.
<PreferenceScreen android:icon="@null" android:title="Your title" android:summary="Your summary" />
El custom_checkbox_preference_layout.xml descrito por user1482130 también funciona sin modificaciones para otros tipos de preferencias como listpreferences! Muy útil
android:layout="@layout/custom_checkbox_preference_layout">
Si está creando preferencias dinámicamente pasar ContextThemeWrapper como un parámetro a la nueva Preferencia
TypedValue themeTypedValue = new TypedValue(); getActivity().getTheme().resolveAttribute(R.attr.preferenceTheme, themeTypedValue, true); ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(getActivity(), themeTypedValue.resourceId); Preference preference = new Preference(contextThemeWrapper);
Lo he encontrado en este artículo: Creación dinámica de pantallas de preferencias en Android