2012-02-09 22 views
10

Ho PreferenceScreen con il titolo lungo soprattutto in alcune lingue. Sono in grado di impostare il titolo di più righe per CheckBoxPreference o ListPreference con questo: Android preference summary . How to set 3 lines in summary?, ma come impostare il titolo di 2 righe per PreferenceScreen? Posso cambiare stile come qui: How can I change font size in PreferenceScreen ma questo non sembra perfetto ed è incoerente con lo stile delle preferenze (font, dimensioni ...).Android PreferenceScreen title in two lines

grazie!

risposta

17

Per impostazione predefinita, il titolo è impostato su riga singola. È necessario estendere le preferenze e ottenere la visualizzazione del testo del titolo e impostare la singola riga su falso. Utilizzare questa classe al posto del PREFERENCE regolare:

public class TwoLinePreference extends Preference { 

    public TwoLinePreference(Context ctx, AttributeSet attrs, int defStyle) { 
    super(ctx, attrs, defStyle); 
    } 

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

    public TwoLinePreference(Context ctx) { 
    super(ctx); 
    } 

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

    TextView textView = (TextView) view.findViewById(android.R.id.title); 
    if (textView != null) { 
     textView.setSingleLine(false); 
     } 
    } 
} 
+0

uomo, questo fa davvero schifo !!! Non potrebbe essere più facile ?! e fatto in xml? Grazie per il frammento. + 1.Android ha bisogno di risolvere questo problema, però. –

+1

Ricevo un'eccezione: 'Non è possibile eseguire il cast di TwoLinePreference su android.preference.GenericInflater $ Parent' –

+0

Funziona bene! Tuttavia, nel mondo Android tutto sembra essere complicato: /. – honzakuzel1989