2012-02-09 11 views
10

Mam PreferenceScreen z długim tytułem, szczególnie w niektórych językach. Jestem w stanie ustawić wiele wierszy tytułu dla CheckBoxPreference lub ListPreference z tym: Android preference summary . How to set 3 lines in summary?, ale jak ustawić 2-wierszowy tytuł PreferenceScreen? Mogę zmienić styl jak tutaj: How can I change font size in PreferenceScreen, ale to nie wygląda idealnie i jest niezgodne ze stylem preferencji (czcionka, rozmiar ...).Preferencje na ekranie Android PreferenceScreen w dwóch wierszach

dziękuję!

Odpowiedz

17

Domyślnie tytuł jest ustawiony na pojedynczy wiersz. Musisz przedłużyć preferencje i uzyskać tekstowy widok tytułu, a dla pojedynczej linii ustawić wartość false. Użyj tej klasy zamiast zwykłego PreferenceScreen:

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

człowiek, to naprawdę do bani !!! Czy nie byłoby łatwiej ?! i zrobić w xml? Dzięki za opis. + 1.Android musi to naprawić. –

+1

Otrzymuję wyjątek: 'TwoLinePreference nie może być rzutowany na android.preference.GenericInflater $ Parent' –

+0

Działa dobrze! Niemniej jednak w świecie Androida wszystko wydaje się być skomplikowane: /. – honzakuzel1989

Powiązane problemy