2010-03-03 18 views
26

मेरे पास एक ग्रिड व्यू है जो दुर्भाग्यवश, विभिन्न आकारों की छवियों को प्रदर्शित करता है। वे पाठ की तर्ज दोनों के बीच में दिखाए जाते हैं:ग्रिड व्यू पंक्ति ऊंचाई

text1.1    text1.2 
ImageView(IMAGE1)  ImageView(IMAGE2) 
text2.1    text2.2 

text3.1 
ImageView(IMAGE3) 
text4.1 

आदि ....

तो Image1 IMAGE2 रूप में एक ही ऊंचाई है, सब कुछ ठीक है, लेकिन अगर Image1 अब IMAGE2, टेक्स्ट 2 की तुलना में है .1 text3.1 में चलाएगा (पैडिंग बहुत मदद नहीं करता है, क्योंकि छवियों की ऊंचाई एक ही ऊंचाई के होने पर बहुत अधिक है)।

मुझे पता है कि छवि दृश्य में छवियों को फैलाने का एक तरीका है, इसलिए वे एक ही ऊंचाई हैं, लेकिन क्या छवियों को रखना और पंक्ति ऊंचाई सेट करना संभव है?

उत्तर

28

आप अपनी पंक्ति ऊंचाई पर नियंत्रण में हैं, जो आपने उन्हें रखा है उसके आधार पर। चूंकि आपकी कोशिकाओं में एक से अधिक विजेट दिखाई देते हैं, इसलिए उन्हें संभवतः LinearLayout या कुछ में लपेटा जाता है। कुछ विशिष्ट ऊंचाई होने के लिए अपना LinearLayouts सेट करें, और पंक्तियां सभी ऊंचाई होगी।

व्यक्तिगत रूप से, मुझे लगता है कि आपको प्रति छवि के आधार पर प्रत्येक छवि के ऊपर और नीचे पाठ होने के लिए अपनी छवियों का आकार बदलना चाहिए।

+1

मैं बाहर है कि रूप में अच्छी तरह पता चला - - मूल रूप से, मैंने नहीं देखा कि आप wrap_component या fill_parent के बजाय लेआउट में किसी घटक के लिए चौड़ाई और ऊंचाई सेट कर सकते हैं .... – kozyr

+27

यह मेरे लिए काम नहीं कर रहा है, कोई फर्क नहीं पड़ता कि मैंने लाइनरलेआउट ऊंचाई पर क्या रखा है, ग्रिड व्यू वही व्यवहार करता है ... –

+0

आयाम मानों के संदर्भ में LinearLayout के लिए layout_height काम नहीं करता है। 'LinearLayout' में – lalitm

5

यहां एक वैकल्पिक समाधान है जो वस्तुओं को पूर्व-उपायों से जोड़ता है और प्रत्येक पंक्ति की ऊंचाई को उस पंक्ति में अधिकतम ऊंचाई तक सेट करता है। drawable

GridView rows overlapping: how to make row height fit the tallest item?

7

उपयोग लेआउट पर पृष्ठभूमि के रूप में अपने ग्रिड सेल है और साथ कि drawable को परिभाषित है कि:

<size android:height="<some height>" /> 

उदाहरण के लिए:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
<solid android:color="#ffffff"/> 
<size android:height="60dip" /> 
</shape> 
+2

आप बस रूट व्यू के लेआउट_हेइट को 60 डीडी पर सेट कर सकते हैं। –

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