android - एसएलई - हिंदी में sle रोग क्या है




पेडिंगस्टार्ट उपयोग के संबंध में एक प्रकार का वृक्ष संदेश (2)

एपीआई 17 / आरटीएल समर्थन जारी होने के बाद, मैंने अपनी घोषणा में निम्नलिखित को जोड़ा

android:supportsRtl="true"

जिसके कारण Lint ने मुझे सही तरीके से ये चेतावनियाँ दीं, जहाँ भी मेरे विचार में पैडिंगलीफ़ / राइट था:

  • Android जोड़ने पर विचार करें: दाएँ-से-बाएँ लेआउट का बेहतर समर्थन करने के लिए paddingStart = "8dp"

  • Android जोड़ने पर विचार करें: दाएँ-से-बाएँ लेआउट का बेहतर समर्थन करने के लिए paddingEnd = "8dp"

मैंने इस एंड्रॉइड-डेवलपर्स ब्लॉगपोस्ट में पाए गए मार्गदर्शन का पालन किया, जिसमें निहित था कि हमें एक नया लेआउट-वी 17 फ़ाइल बनाने की आवश्यकता नहीं थी, बल्कि केवल पेडिंगस्टार्ट / एंड के साथ-साथ पेडिंग लाईट / राइट विशेषताओं (दोनों का उपयोग कर सकते हैं) वाम / अधिकार के लिए आवश्यक था कि वे कम न्यूनतम सहायता का समर्थन जारी रखें)।

मैंने अभी पिछले बीटा संस्करण से एंड्रॉइड स्टूडियो 1.0 में अपडेट किया है, और एक नई लिंट त्रुटि को सूचित कर रहा हूं जो बताता है:

  • यहां बताए गए पेडिंगस्टार्ट को अट्रैक्टिव करने के परिणामस्वरूप एपीआई 17 से अधिक पुराने कुछ विशिष्ट उपकरणों पर दुर्घटना हो सकती है (वर्तमान मिनट 7 है)

और सुझाया गया फिक्स है:

लेआउट-v17 में ओवरराइड संसाधन

जो समझ में आता है। हालाँकि, लेआउट-v17 बनाने और अप्रयुक्त पेडिंगस्टार्ट / एंड को मुख्य लेआउट फ़ोल्डर से हटाने के बाद, मूल लिंट चेतावनी ने यह कहते हुए फिर से प्रकट किया है कि मुझे paddingStart / End का उपयोग करना चाहिए। ऐसा लगता है कि यह समझ में नहीं आता है कि मैंने लेआउट -17 में फाइलों को ओवरराइड किया है।

क्या किसी को पता है कि कैसे हल करने के लिए लगता है कि परस्पर विरोधी त्रुटि / चेतावनी संदेश लगता है? मुझे पता है कि मैं सिर्फ tools:ignore कर सकता हूं tools:ignore चेतावनी को tools:ignore करें, लेकिन मैं "उचित" समाधान की उम्मीद कर रहा हूं।

संपादित करें (1/19/15): एक एंड्रॉइड मुद्दा है जिसकी मैं कल्पना करता हूं कि एंड्रॉइड स्टूडियो में नई लिंट त्रुटि को जोड़ा जा रहा है। इससे पता चलता है कि "कुछ विशिष्ट उपकरणों पर दुर्घटना" एक मुट्ठी भर सैमसंग टैबलेट्स को संदर्भित करता है एपीआई 16 पर जहां पेडिंगस्टार्ट की अपनी परिभाषा है और जब यह "8 डीपी" पार्स करने की कोशिश करता है तो ऐसे क्रैश।

उपरोक्त लिंक में कुछ लोगों ने paddingStart और paddingEnd का उपयोग करने के बजाय rtl दिशा को संभालने के लिए लेआउट-ldrtl फ़ोल्डर का उपयोग करने का सुझाव दिया है।

जब भी आप पाते हैं कि उपयोगकर्ता के पास एक एपीआई 16 टैबलेट है, और उसके बाद मैन्युअल रूप से आपके सभी विचारों की विशेषताओं को निर्धारित करता है, तो मैंने लेआउटइन्फ्लिटर के फैक्ट्री 2 को ओवरराइड करने के लिए कहीं और एक सुझाव दिया है। यह निश्चित रूप से काम करेगा, लेकिन यह बहुत "मैनुअल" लगता है।

दुर्भाग्य से मेरे पास इन उपकरणों में से एक तक पहुंच नहीं है जो दुर्घटनाग्रस्त हो जाती है, इसलिए मैं यह सत्यापित नहीं कर सकता कि मैंने किसी को भी ऑनलाइन ऑनलाइन पेडिंगस्टार्ट / लेआउट-वी 17 / फ़ोल्डर, और पेडिंग लिफ़्ट को / लेआउट / में डालने का सुझाव क्यों नहीं दिया है? क्या API16 सैमसंग टैबलेट किसी तरह अभी भी पैडिंगस्टार्ट के बावजूद क्रैश होना जारी है, केवल लेआउट-वी 17 में मौजूद है?


आप समस्या के मूल कारण के बारे में सही हैं - सैमसंग ने paddingStart या paddingEnd लिए आरक्षित आईडी के लिए एक कस्टम विशेषता परिभाषित की है।

जिस तरह से मैंने इसे पारित किया वह पैडिंग गुणों को निकालने और उन्हें एक शैली में डालने के लिए था। इसलिए एसडीके <17 और एसडीके> = 17 के लिए अलग-अलग लेआउट होने के बजाय, मेरे पास उनके लिए अलग-अलग स्टाइल हैं ( paddingLeft&Right इन values और paddingStart&End values-v17 paddingStart&End में)।

इस तरह, लिंट इसके बारे में शिकायत करना बंद कर देगा।


यह सिर्फ एक सुझाव है। मुझे उम्मीद है कि आपने अब तक अपनी समस्या को हल कर लिया है। यदि आप अपना न्यूनतम एसडीके स्तर 4.1 से नीचे सेट करते हैं, तो आपको पैडलिंग लिफ़्ट और पेडिंगस्टार्ट के रूप में पैडिंग का स्पष्ट रूप से उल्लेख करना होगा। 4.1 के ऊपर एसडीके स्तर के लिए, आप पेडिंगस्टार्ट का उपयोग कर सकते हैं। मैं अनुमान लगा रहा हूं (जैसा कि मैंने पहले कभी इसका सामना नहीं किया है), जैसा कि आपने अपना एसडीके स्तर 2.2 या 4.1 से नीचे निर्धारित किया है, एंड्रॉइड एसडीके स्तर पागल हो रहा है।







lint