2012-10-17 13 views
8

मेरे पास RelativeLayout है जिसमें कुछ सामान हैं, और मैं पूरी चीज़ को भरने के लिए पृष्ठभूमि दृश्य चाहता हूं। यही वह है जो मैं काम करने की अपेक्षा करता हूं:मैं 'रिलेवेटिवआउट' भरने वाला 'व्यू' कैसे बना सकता हूं?

 <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#000" > 

      <View 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentBottom="true" 
       android:layout_margin="1px" 
       android:background="#fafafa" /> 

      <ImageView 
       android:id="@+id/im" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_blank_profile" /> 

     .... and so on. 

यह काम नहीं करता है। यह चौड़ाई भरता है लेकिन ऊंचाई शून्य पर सेट हो जाती है। हालांकि, अगर मैं layout_alignParentBottom से layout_alignBottom="@+id/im" बदलता हूं तो यह काम करता है (क्रमबद्ध; यह एक संतोषजनक समाधान नहीं है लेकिन कम से कम यह 0 ऊंचाई नहीं है)।

क्या चल रहा है? क्या यह एक बग है?

उत्तर

2

match_parent

और क्या करता है, तो आप दृश्य से सभी alignParent गुण को हटा दें और सिर्फ चौड़ाई और देखने की ऊंचाई के लिए match_parent का उपयोग होता है करने के लिए आप की layout_height संपत्ति रिश्तेदार लेआउट स्थापित करने का प्रयास करें?

रॉल्फ

अंतिम संपादित करें ?:

छोटे उदाहरण के लिए, कुछ इस तरह? एक कंटेनर का उपयोग कर? जब आंतरिक रिलेवेटलाइट की सामग्री बढ़ती है तो व्यू बस इसके साथ फैल जाएगा।

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 


     <View 
      android:id="@+id/view1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_alignBottom="@+id/relativeLayout1" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_margin="1px" 
      android:background="#fafafa" /> 

     <RelativeLayout 
      android:id="@+id/relativeLayout1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <ImageView 
       android:id="@+id/im" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/ic_blank_profile" /> 
     </RelativeLayout> 
    </RelativeLayout> 

</LinearLayout> 
+0

'रिलेवेटिवआउट 'के' लेआउट_हेइट' के प्रकार से इसके किसी भी बच्चे को प्रभावित नहीं होगा। मेरा मतलब है कि यह पहले से ही शून्य-शून्य ऊंचाई है इसलिए बच्चों में 'match_parent' * इसे भरना चाहिए। और दुख की बात है कि मैंने पहले ही आपके दूसरे सुझाव की कोशिश की है। कोई आनंद नहीं है। – Timmmm

+0

अपना संपादन दोबारा करें: हां यही मेरा कोड वर्तमान में दिखता है, और मेरे पास सबसे अच्छा है, लेकिन यह वह समाधान नहीं है जिसे मैं ढूंढ रहा हूं। यदि आप 'रिलेवेटिवआउट' में अन्य दृश्य जोड़ते हैं ताकि यह बड़ा हो जाए, तो पृष्ठभूमि 'व्यू' अब इसे भर नहीं पाएगी। – Timmmm

+0

मेरी पोस्ट संपादित की गई, अब मैं आपके इच्छित व्यवहार प्राप्त करने के लिए एक कंटेनर का उपयोग कर रहा हूं। –

2

आप बच्चे को माता-पिता से मिलान करने क्योंकि आप बच्चे को माता-पिता की ऊंचाई लपेटकर रहे

android:layout_height="match_parent" 

को

android:layout_height="wrap_content" 

से रिश्तेदार लेआउट को बदलने की जरूरत है, और , यह 0

यदि आप रिश्तेदार लेआउट के ऊपर/नीचे अन्य चीजें रखना चाहते हैं, तो एंड्रॉइड वजन का उपयोग करें।

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0px" <!-- or 0dip --> 
     android:layout_weight="1" 
     android:background="#000" > 
+0

ऐसा नहीं है कि 'match_parent' कैसे काम करता है। और मैं नहीं चाहता कि मेरा 'रिलेवेटिवआउट' अपने माता-पिता को भरने या विस्तार योग्य हो। – Timmmm

+0

@Timmmm तो इनमें से कोई भी ऐसा करने से यह दृश्यमान नहीं होता है? – Doomsknight

+0

नहीं। वास्तव में 'layout_height =" match_parent "' लंबवत 'LinearLayout' (जिसमें यह है) में कोई प्रभाव नहीं है। मुझे लगता है कि 'लीनियरलाउट' ने अनदेखा किया क्योंकि इसका कोई मतलब नहीं होगा। – Timmmm

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