Domanda

Ho una preferenceattività con due caselle di controllo. Tutto funziona correttamente, ma ho un problema dell'interfaccia utente; Non tutto il testo per la casella di controllo si adatta alla riga della casella di controllo.

C'è un bel modo per impostare l'altezza minima per queste preferenze della casella di controllo senza un valore hardcoding?

EDIT - Aggiunta di 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>
È stato utile?

Soluzione

Basato questo Domanda sulla preferenza di testo che ha lo stesso Iussue che uso questa classe.

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); 
    }        
} 

Nel XML sembra quindi questo.

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

Ho esattamente la stessa cosa per EditTextPreference che ha lo stesso problema di un massimo di 2 righe per il riepilogo in API <= 7

Altri suggerimenti

Nel XML è possibile impostare l'altezza su "Wrap_Content". A quel punto lo ridimensionerà per adattarsi a qualsiasi cosa tu lo metta. Quindi, qualcosa in questo senso:

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

Questo dovrebbe aiutare

Fallo in questo modo:

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

Un altro attributo di stile che può essere sovrascritto può essere trovato qui layout dell'articolo di preferenza

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top