मैं एक आवेदन लिख रहा हूं। इसे उपयोगी होने के लिए पुराने एंड्रॉइड ओएस पर चलने की जरूरत है। मैंने वरीयताओं की एक प्राथमिकता का उपयोग करके वरीयता स्क्रीन लिखी है जो वरीयता स्क्रीन सहित एक options.xml फ़ाइल के साथ पॉप्युलेट करता है। इसमें वरीयताओं के लिए कोई सबमेनू नहीं है (इसलिए वरीयता फ़्रेगमेंट कोई वास्तविक लाभ प्रदान नहीं करता है)।वरीयता सक्रियता एंड्रॉइड 2.1 पर ठीक से काम करती है, लेकिन 4.1 (गद्दीदार)
Android 2.1 में परिदृश्य में तो जैसे (2.2 और 2.3, अभी तक आईसीएस पर परीक्षण नहीं किया) स्क्रीन ठीक से प्रदर्शित:
लेकिन जेलीबीन पर, यह इस तरह दिखता है:
यह भयानक लग रहा है। मेरे पास लेआउट के रूप में परिभाषित कुछ भी नहीं है, केवल मानक addPreferencesFromResource()। क्या किसी को पता है कि इसका कारण क्या हो सकता है? या एक समाधान?
मेरे onCreate इस तरह दिखता है:
protected void onCreate(Bundle savedInstanceState) { //
super.onCreate(savedInstanceState);
Log.i(TAG, "Options Activity Loaded.");
setTitle(getString(R.string.optionsTitle));
addPreferencesFromResource(R.xml.options);
setupListeners();
}
बाकी सब कुछ सिर्फ पसंद वस्तुओं बनाता है और तरीकों प्रदान करती है ताकि उन पर क्लिक करने के सामान करना है। मैं वरीयता फ्रेगमेंट और वरीयता सक्रियता दोनों के लिए कोड नहीं बनाना चाहता हूं। मुझे समझ में नहीं आता कि Google हमें फ्रैगमेंट एपीआई का उपयोग करने की अपेक्षा करता है यदि सबसे बड़ा संस्करण मार्केटशेयर में एपीआई नहीं है और वे इसे संगतता lib में नहीं जोड़ेंगे।
मुझे लगता है कि आईसीएस/जेबी वरीयता स्क्रीन में वह पैडिंग है। मुझे सच में यकीन नहीं है कि इसे हटाने का कोई तरीका है, लेकिन मैं एक निश्चित उत्तर नहीं दे रहा हूं (यही कारण है कि मैंने अभी टिप्पणी की है।) – Jwc24678
मैं बस वहां फेंक दूंगा ['addPreferencesFromResource() '] (http://developer.android.com/reference/android/preference/PreferenceActivity.html#addPreferencesFromResource(int)) बहिष्कृत है। शायद 4.0+ पर अभी भी समर्थित समर्थित विधियों (उस दस्तावेज़ पृष्ठ में विस्तृत) का उपयोग करके आपको उचित परिणाम मिलेंगे। – Eric
उनसे बचने की उम्मीद है ... लेकिन इसे आत्मसमर्पण करना और इसे वैसे भी करना पड़ सकता है। मुझे समझ में नहीं आता कि वे इसे पूरी तरह से संगत क्यों नहीं करेंगे। पैडिंग के लिए कोई कारण नहीं है। – Mgamerz