2012-09-11 7 views
7

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

<GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/row_background" 
    android:rowCount="1" 
    android:columnCount="3" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:useDefaultMargins="true" 
    android:background="@drawable/list_item_bg"> 

    <ImageView 
     android:id="@+id/visibilityIcon" 
     android:layout_row="0" 
     android:layout_column="0" 
     android:src="@drawable/visibility_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"/> 

    <ImageView 
     android:id="@+id/windIcon" 
     android:layout_row="0" 
     android:layout_column="1" 
     android:src="@drawable/wind_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"/> 

    <ImageView 
     android:id="@+id/crosswindIcon" 
     android:layout_row="0" 
     android:layout_column="2" 
     android:src="@drawable/cloud_icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"/> 

</GridLayout> 

हालांकि, बाएं 2 आइकन बाएं-गठबंधन रहते हैं, और शेष स्थान के साथ दाएं-सबसे आइकन आइकन रहते हैं।

अनिवार्य रूप से हमें जो करना है वह प्रत्येक कॉलम का आकार कुल स्क्रीन आकार के 1/3 (3 कॉलम) के रूप में निर्दिष्ट करना है। मैंने सोचा कि ग्रिडलाउट ने यही किया है, लेकिन ऐसा लगता है कि 'wrap_content' इस व्यवहार का कारण बनता है (समझ में आता है), लेकिन 'match_parent' पहले कॉलम को पूरे सेल को भरने का कारण बनता है, इसके सेल को भरने के बजाय, जो व्यवहार मैं अपेक्षा करता हूं।

हमने गुरुत्वाकर्षण, लेआउट_ग्रैविटी इत्यादि के हर संयोजन की कोशिश की है, लेकिन या तो हम मौलिक रूप से कुछ गलत कर रहे हैं, या ग्रिडलाउट की सीमा पाई है।

आपकी मदद के लिए धन्यवाद!

+0

ग्रिडलाउट बेकार लगता है! –

उत्तर

8

ग्रिडलाउट में केवल एक पंक्ति और एक कॉलम बढ़ने की अनुमति है, और वह उस धुरी के साथ गुरुत्वाकर्षण वाला है। यदि एक से अधिक पंक्ति या स्तंभ गुरुत्वाकर्षण निर्दिष्ट करते हैं तो केवल एक ही इसे प्राप्त करेगा (अगर मुझे याद है कि यह "आखिरी" है)। एक और लेआउट चुनें या अपना खुद का लिखें। यदि आप केवल समान रूप से विभाजित आइकन के साथ एक पंक्ति चाहते हैं तो आप एक लाइनरलाइट का उपयोग कर सकते हैं जहां घटकों की चौड़ाई 0px है और वजन सभी समान हैं, उदा। 1.

+0

उत्तर के लिए धन्यवाद। जिज्ञासा से, आपको उस सीमा को कहां मिला? हम और अधिक जांच करने जा रहे हैं, लेकिन ऐसा लगता है कि आप यहां सही हैं। – RealCasually

+0

एंड्रॉइड के साथ कई चीजों के साथ यह परीक्षण-और-त्रुटि और स्रोत को पढ़ रहा था;) लेकिन वास्तव में निम्नलिखित वाक्यों के साथ सीमाओं नामक दस्तावेज़ों में एक अनुभाग है: "ग्रिडलाउट वजन के सिद्धांत के लिए समर्थन प्रदान नहीं करता है, वजन में परिभाषित किया गया है। आम तौर पर, कई घटकों के बीच अतिरिक्त स्थान वितरित करने के लिए ग्रिडलाउट को कॉन्फ़िगर करना संभव नहीं है। " –

+0

धन्यवाद। मुझे पता है कि मैं यहां शुरुआती प्रश्न से अलग हो रहा हूं - लेकिन एक लाइनरलायआउट में "वजन" है जिस अवधारणा की मुझे संभावना है? मेरा लक्ष्य स्क्रीन के भीतर समान रूप से अंतर के साथ इन आइकनों को समान रूप से वितरित करना है। – RealCasually

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