Pregunta

Tengo una capacidad de preferencia con dos casillas de verificación. Todo funciona correctamente, pero tengo un problema de interfaz de usuario; No todo el texto para la casilla de verificación se adapta a la fila de casilla de verificación.

¿Hay una buena manera de establecer la altura mínima para estas preferencias de casilla de verificación sin codificar un valor?

Editar - Agregar XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
   <CheckBoxPreference
      android:key="alarm_set"
      android:title="@string/set_alarm_title"
      android:defaultValue="true" />
   <CheckBoxPreference
      android:key="store_pages"
      android:title="@string/store_downloaded_pages_title"
      android:summary="@string/store_downloaded_pages"
      android:defaultValue="false" />
</PreferenceScreen>
¿Fue útil?

Solución

Con sede fuera este Pregunta sobre la preferencia de texto que tiene la misma iussue uso esta clase.

public class LongSummaryCheckBoxPreference extends CheckBoxPreference 
{ 
    public LongSummaryCheckBoxPreference(Context ctx, AttributeSet attrs, int defStyle) 
    { 
        super(ctx, attrs, defStyle);         
    } 

    public LongSummaryCheckBoxPreference(Context ctx, AttributeSet attrs) 
    { 
        super(ctx, attrs);   
    } 

    @Override 
    protected void onBindView(View view)
    {        
        super.onBindView(view); 

        TextView summary= (TextView)view.findViewById(android.R.id.summary); 
        summary.setMaxLines(4); 
    }        
} 

En el XML luego se ve así.

    <com.iforpowell.android.ipbike.LongSummaryCheckBoxPreference android:key="@string/key_distance_line_enable"
        android:title="@string/title_distance_line_enable" android:summary="@string/summary_distance_line_enable"
        android:defaultValue="true" />
    <com.iforpowell.android.ipbike.LongSummaryCheckBoxPreference android:key="@string/key_altitude_line_enable"
        android:title="@string/title_altitude_line_enable" android:summary="@string/summary_altitude_line_enable"
        android:defaultValue="true" />

Tengo exactamente lo mismo para EditTextPreference que tiene el mismo problema de un máximo de 2 líneas para el resumen en API <= 7

Otros consejos

En el XML puede establecer la altura en "wrap_content". En ese punto, lo dimensionará para que se ajuste a lo que le ponga. Entonces, algo en este sentido:

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox" />

Esto debería ayudar

Solo hazlo de esta manera:

<!-- Application theme -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Min item height -->
    <item name="android:listPreferredItemHeight">10dp</item>
</style>

Otros atributos de estilo que se pueden anular se pueden encontrar aquí Diseño del elemento de preferencia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top