2012-02-09 11 views
10

मेरे पास लंबे समय से शीर्षक के साथ वरीयता स्क्रीन है विशेष रूप से कुछ भाषाओं में। मैं चेकबॉक्स प्रेफरेंस या लिस्ट प्रेफरेंस के लिए एकाधिक लाइन शीर्षक सेट करने में सक्षम हूं: Android preference summary . How to set 3 lines in summary?, लेकिन वरीयता स्क्रीन के लिए 2-लाइन शीर्षक कैसे सेट करें? मैं यहां शैली बदल सकता हूं: How can I change font size in PreferenceScreen लेकिन यह सही नहीं दिखता है और यह वरीयता शैली (फ़ॉन्ट, आकार ...) के साथ असंगत है।एंड्रॉइड वरीयता स्क्रीन शीर्षक दो पंक्तियों में

धन्यवाद!

उत्तर

17

डिफ़ॉल्ट रूप से शीर्षक एकल रेखा पर सेट होता है। आपको वरीयता बढ़ाने और शीर्षक टेक्स्टव्यू प्राप्त करने और झूठी में सिंगल लाइन सेट करने की आवश्यकता है। नियमित 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

आदमी, इस वास्तव में बेकार !!! यह आसान नहीं हो सकता है ?! और एक्सएमएल में किया? स्निपेट के लिए धन्यवाद। + 1. एंड्रॉइड को इसे ठीक करने की जरूरत है, यद्यपि। –

+1

मुझे अपवाद मिलता है: 'टूलाइन प्रीफरेंस को एंड्रॉइड.preference.GenericInflater $ parent' –

+0

पर अच्छी तरह से काम नहीं किया जा सकता है! फिर भी, एंड्रॉइड दुनिया में सबकुछ जटिल लगता है: /। – honzakuzel1989

0

का प्रयोग विधि setSingleLineTitle(false)

यह API 26 में जोड़ दिया गया है, तो आप पुराने उपकरणों के लिए support library version उपयोग करने के लिए सक्षम होना चाहिए

संबंधित मुद्दे