2012-02-09 106 views
10

我的PreferenceScreen具有长标题,特别是在某些语言中。我可以使用以下设置为CheckBoxPreference或ListPreference设置多行标题: Android preference summary . How to set 3 lines in summary?,但是如何为PreferenceScreen设置2行标题?我可以像这样改变风格:How can I change font size in PreferenceScreen但这看起来不太完美,并且与偏好风格(字体,大小...)不一致。两行Android PreferenceScreen标题

谢谢!

回答

17

默认情况下,标题设置为单行。 您需要扩展首选项并获得标题textview并将单行设置为false。 使用这个类,而不是常规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

男人,这真的很烂!难道不是更容易?!并在xml中完成?感谢您的摘录。 + 1.Android需要解决这个问题。 – 2015-09-30 18:24:52

+1

我收到一个异常:'TwoLinePreference不能转换为android.preference.GenericInflater $ Parent' – 2015-09-30 18:30:48

+0

工作的很好!不过,在Android世界中,一切似乎都很复杂:/。 – honzakuzel1989 2017-03-12 11:21:31