2014-10-19 13 views
9

पर स्वचालित लेआउट परिवर्तन अक्षम करें मैंने एक ऐप बनाया है, मैंने इसका परीक्षण किया है और यह मेरे फोन पर ठीक था। लेकिन ... जब मैंने किसी और को .एपी दिया, जिसकी फोन भाषा आरटीएल है, तो पूरा लेआउट टूट गया और यह सबकुछ खराब हो गया।एंड्रॉइड

मेरा सवाल है - मैं अपने ऐप को केवल एलटीआर का उपयोग करने के लिए मजबूर कर सकता हूं और ऑटो लेआउट परिवर्तन को अक्षम कर सकता हूं जो मेरे पूरे ऐप डिज़ाइन को तोड़ देता है?

उत्तर

9

एंड्रॉइड 4.2 आरटीएल लेआउट के लिए पूर्ण देशी समर्थन जोड़ा गया। मिरर RTL लेआउट का लाभ लेने के लिए, बस अपने एप्लिकेशन में निम्न परिवर्तन:

अपनी ऐप्लिकेशन मेनिफेस्ट में
  • घोषणा करते हैं कि अपने अनुप्रयोग RTL मिरर का समर्थन करता है। विशेष रूप से, अपनी मेनिफेस्ट फ़ाइल में तत्व पर android:supportsRtl="true" जोड़ें।

  • अपने सभी ऐप के "बाएं/दाएं" लेआउट गुणों को नए "प्रारंभ/समाप्ति" समकक्षों में बदलें। यदि आप अपने ऐप को एंड्रॉइड 4.2 (ऐप का लक्ष्य एसडीकेवर्सन या मिनएसडीकेवीरियन 17 या उच्चतर) पर लक्षित कर रहे हैं, तो आपको "बाएं" और "दाएं" के बजाय "प्रारंभ" और "अंत" का उपयोग करना चाहिए। उदाहरण के लिए, android:paddingLeftandroid:paddingStart बनना चाहिए। यदि आप चाहते हैं कि आपका ऐप एंड्रॉइड 4.2 ( ऐप के लक्ष्य SdkVersion या minSdkVersion 16 या उससे कम है) से पहले संस्करणों के साथ काम करना चाहता है, तो आप को "बाएं" और "दाएं" के अतिरिक्त "प्रारंभ" और अंत "जोड़ना चाहिए। उदाहरण के लिए, आप android:paddingLeft और android:paddingStart दोनों का उपयोग करेंगे। दिशा की स्थापना के लिए विशेषता - layoutDirection:

    • एंड्रॉयड:

    दोनों लीटर और RTL मोड में अपने एप्लिकेशन यूआई पर अधिक सटीक नियंत्रण के लिए, Android 4.2 देखें घटकों का प्रबंधन में मदद करने के लिए नए API निम्नलिखित शामिल हैं घटक का लेआउट।

  • एंड्रॉइड: टेक्स्ट डायरेक्शन - घटक के पाठ की दिशा सेट करने के लिए विशेषता।
  • एंड्रॉइड: टेक्स्ट एलाइनमेंट - विशेषता किसी घटक के टेक्स्ट के संरेखण को सेट करने के लिए।
  • getLayoutDirectionFromLocale() - लोकेल द्वारा निर्दिष्ट दिशा

-- Source & Credits --

+3

मैं आरटीएल को अक्षम करना चाहता हूं, वैसे भी, समस्या यह बेवकूफ रेखा थी जो स्वचालित रूप से ग्रहण/एएस हो जाती है, बस इसके मूल्य को गलत में बदल दिया और यह काम किया। – Yehonatan

9

हो रही अपनी मैनिफ़ेस्ट फ़ाइल में और आवेदन टैग के अंदर के लिए विधि इन दो पंक्तियों में जोड़ें।

<manifest> 
    <application 
     . 
     . 
     . 
     android:supportsRtl="false" 
     tools:replace="android:supportsRtl" //(replace libraries' Rtl support with ours) 
     > 
    </application> 
</manifest> 

नोट: (दूसरी पंक्ति के बारे में) कुछ पुस्तकालयों को अपनी मेनिफ़ेस्ट फ़ाइल आरटीएल समर्थन ताकि आप उन पुस्तकालयों का उपयोग करना चाहते हैं तो आप तुम्हारा साथ कोड के अपने प्रकट लाइन की जगह चाहिए।

+0

मेरी समस्या भी हल की। बहुत बहुत धन्यवाद। – Merka