2010-07-09 13 views
16

मैं शीर्ष पर एक शीर्षक पट्टी और नीचे नेविगेशन बार के साथ एक गतिविधि बनाना चाहता हूं। मैंने शीर्षक लेआउट लेआउट और नेविगेशन बार लेआउट को मुख्य लेआउट में शामिल करने के लिए include का उपयोग किया जैसा कि आप नीचे देख सकते हैं। नतीजा यह है कि टाइटल बार और नेविगेशन बार दोनों स्क्रीन के शीर्ष पर जाते हैं। क्या कोई मुझे बता सकता है क्यों? धन्यवाद!RelativeLayout में मेरे शामिल होने में क्या गलत है?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background"> 

    <include android:id="@+id/title_bar" layout="@layout/title_bar" 
     android:layout_alignParentTop="true" /> 

    <include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
     android:layout_alignParentBottom="true"/> 
</RelativeLayout> 

[संपादित करें] मैं मूल कारण नहीं मिला। लेकिन निम्नलिखित कार्य:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/home_widget" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background"> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:id="@+id/title_bar" > 

    <include layout="@layout/title_bar" /> 
</RelativeLayout> 

<RelativeLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:id="@+id/navigation_bar" > 

    <include layout="@layout/navigation_bar" /> 
</RelativeLayout> 
+0

आप एक relativelayout में हैं, मुझे लगता है कि आप एंड्रॉयड भूल: अपने नेविगेशन बार – Sephy

+1

के लिए layout_below = "@ आईडी/title_bar" अपने प्रश्न 'रेस/लेआउट/title_bar की सामग्री को दिखाने के लिए अपडेट करें .xml' और 'res/layout/navigation_bar.xml', फिर @ me back। – CommonsWare

उत्तर

0

आपके पास इसके ऊपर से ऊपर और नीचे बार के बीच की जगह को भरने के लिए कुछ भी नहीं है।

एक पक्ष के रूप में मैं इसके बजाय लीनियरलाउट का उपयोग नहीं करता और निम्न तरीके से लेआउट_वेट विशेषता का उपयोग करता हूं;

title_bar & नेविगेशन_बार लेआउट_वेट = "0" प्राप्त करें और दोनों के बीच की सामग्री layout_weight = "1" हो जाती है। यदि आपके रैखिक लेआउट है तो दोनों के बीच की जगह भरने के लिए सामग्री का विस्तार करने के लिए लेआउट प्रबंधक को बताता है;

title_bar सामग्री navigation_bar

44

आपको शामिल कर रहे हैं लेआउट की विशेषताओं ओवरराइड करने के लिए, आप यह भी दोनों लेआउट चौड़ाई और लेआउट ऊंचाई ओवरराइड चाहिए। यदि उन दोनों सेटिंग्स को ओवरराइड नहीं किया गया है, तो आपके द्वारा किए गए किसी अन्य लेआउट परिवर्तन को अनदेखा कर दिया जाएगा।

<include android:id="@+id/title_bar" layout="@layout/title_bar" 
    android:layout_alignParentTop="true" 
/> 
<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
    android:layout_alignParentBottom="true"/> 

ऊपर आपके लेआउट को वास्तव में एक चादर सामग्री के साथ है या माता-पिता को भरने, उचित रूप में करना चाहिए।

<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"/> 
+0

uggh इतना गूंगा, लेआउट में लेआउट_विड्थ और लेआउट_हेइट को फिर से घोषित करना जो शामिल करने का उपयोग करता है। हालांकि यह काम करता है। –

+0

वाह, उसे नहीं पता था। महान टिप। मेरे शामिल एक सापेक्ष लेआउट में स्थिति नहीं था और चौड़ाई और ऊंचाई सेटिंग लेआउट प्रवाह का सम्मान करता है। धन्यवाद – speedynomads

+1

यह स्वीकार्य उत्तर – d370urn3ur

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