2012-04-23 13 views
26

में ग्रिड लेआउट समर्थन मैंने लक्ष्य एपीआई के साथ 15 के रूप में एक ऐप विकसित किया था। लेआउट में ग्रिड लेआउट शामिल है। अब जब मैं लक्ष्य API को 10 में बदल रहा हूं तो मुझे ग्रिड लेआउट और अन्य तत्व 'स्पेस' के साथ समस्याएं मिल रही हैं। ग्रहण मुझे 2.3.3 के लिए सहायक पुस्तकालय डाउनलोड करने के लिए संकेत देता है, जो मैंने किया ... लेकिन अभी भी समस्या है।एंड्रॉइड एपीआई 10

उत्तर

36

GridLayout वास्तव में एपीआई स्तर 7 और ऊपर के साथ संगत होने के लिए समर्थित किया गया है। यह समर्थन पुस्तकालय का हिस्सा है (तरह)। परियोजना आप पर काम कर रहे की निर्भरता के रूप में

<sdk_folder>\extras\android\compatibility\v7\gridlayout 

सेट इसे: के बाद आप समर्थन पुस्तकालय डाउनलोड किया है, आप अपने स्थानीय एसडीके फ़ोल्डर में एक Android पुस्तकालय परियोजना में स्थित मिल जाएगा। इसके बाद, आपको पूर्व-आईसीएस उपकरणों का समर्थन करने के लिए स्तर 15 संस्करण से इस संगतता में अपनी परियोजनाओं में संदर्भों को बदलने की आवश्यकता होगी। लेआउट फ़ाइलों में आपकी xml को GridLayout से android.support.v7.widget.GridLayout में बदलें। यदि समान नहीं है, तो उपयोग समान होना चाहिए।

Space विजेट के बारे में: मैं वास्तव में इस एक (अभी तक) उपयोग नहीं किया है, लेकिन यह कुछ ऐसा है जो विचारों मौजूदा या अपने खुद के सामान्य View पूरी तरह से है कि में जोड़ने पर या तो स्थापित करने मार्जिन/padding द्वारा प्रतिस्थापित किया जा सकता है प्रतीत होता है पारदर्शी।

+0

Thanx दोस्त ... यह मेरे लिए काम किया !!! और हाँ आप स्पेस विजेट पर अनुष्ठान कर रहे हैं, मैं एक पारदर्शी टेक्स्टव्यू –

+0

का उपयोग कर अंतरिक्ष विजेट के बारे में बताता हूं: यदि आप लेआउट स्पेस लेते हुए केवल एक दृश्य के लिए स्पेस विजेट का उपयोग कर रहे हैं, तो सामान्य दृश्य का उपयोग करने पर विचार करें। एक मूल दृश्य लेआउट स्पेस लेता है, लेकिन यह वास्तव में ड्राइंग को लागू करने के लिए उप-वर्ग तक है, इसलिए सैद्धांतिक रूप से, स्वयं को कोई चित्र नहीं दिखता है और इसलिए पारदर्शी है। – Neilers

+0

यह आज रात मेरी जिंदगी बचाया। धन्यवाद! – Matt

4

या किसी अन्य विकल्प इस third-party backwards compatible implementation:

यह API स्तर 3 करने के लिए वापस संगत है, अगर आपको लगता है कि वापस दूर जाने की जरूरत है, और यह भी अंतरिक्ष विजेट भी शामिल है।

18

तो एंड्रॉयड स्टूडियो का उपयोग कर, एक बार आप समर्थन पुस्तकालय डाउनलोड किया है (जैसा कि @MH उल्लेख किया है।) आप File->Import Module... का उपयोग करना चाहिए, तो GridLayout समर्थन का स्थान है, जो मेरे लिए यहाँ स्थित था का चयन करें: <sdk_folder>\extras\android\support\v7\gridlayout

अगला, अपने xml लेआउट फ़ाइल में <Gridlayout> का उपयोग करने के बजाय, आप <android.support.v7.widget.GridLayout> का उपयोग करते हैं।

<TextView 
     android:textSize="32dip" 
     app:layout_columnSpan="4" 
     app:layout_gravity="center_horizontal" 
    /> 

अंत में, GridLayout समर्थन पुस्तकालय संदर्भ जोड़ा जाना चाहिए:

लेआउट में
<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:useDefaultMargins="true" 
    app:alignmentMode="alignBounds" 
    app:columnOrderPreserved="false" 
    app:columnCount="4" 
> 

तत्वों का संदर्भ लेंगे GridLayout संपत्तियों के लिए app बजाय android के रूप में ऊपर और बच्चे तत्वों में देखी गई: यहाँ एक उदाहरण है \src\build.gradle की dependencies अनुभाग के लिए:

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile 'com.android.support:gridlayout-v7:+' 
} 
+0

वर्तमान एंड्रॉइड स्टूडियो में आप फाइल -> प्रोजेक्ट स्ट्रक्चर -> मॉड्यूल के तहत मॉड्यूल -> निर्भरता पर भी जा सकते हैं। यह थोड़ा आसान है। – SleepProgger