2012-04-30 29 views
9

मैं निम्नलिखित लेआउट फ़ाइल है एमुलेटर परwrap_content का उपयोग करते समय layout_marginBottom क्यों अनदेखा किया जाता है?

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

<RelativeLayout 
    android:id="@+id/usericon_img" 
    android:layout_width="73.3334dp" 
    android:layout_height="70.6667dp" 
    android:layout_marginBottom="2.6667dp" 
    android:layout_marginLeft="3.3334dp" 
    android:layout_marginTop="2.6667dp" 
    android:background="#FFFFFF" /> 
</RelativeLayout> 

(मैं यह एक वास्तविक डिवाइस पर परीक्षण किया है और यह एक ही लग रहा है) लेआउट इस तरह दिखता है: enter image description here

मेरे सवाल यह है: सफेद लेआउट के नीचे मेरे पास लाल मार्जिन क्यों नहीं है? मुझे पता है कि अगर मैं करने के लिए बाहरी लेआउट बदलने:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="76dp" 
android:background="#FF0000" > 

मैं जो मैं चाहता मिल जाएगा, लेकिन क्यों नहीं है wrap_content ठीक से काम करता है?

उत्तर

6

documentation में:

उसके आयाम को मापने के लिए एक दृश्य इसकी पैडिंग ध्यान में रखता है।

यदि मुझे गलत नहीं लगता है तो इसका मतलब है कि मार्जिन आयाम में नहीं जोड़ा गया है। इसका मतलब है कि wrap_content सही तरीके से काम करता है लेकिन खाते में मार्जिन न लें।

बस एक छोटा प्रश्न: आप 70.6667dp जैसे मानों का उपयोग क्यों करते हैं?

+0

मैंने 70.6667 का उपयोग किया है क्योंकि मुझे एक एचडीपीआई स्क्रीन पर 106 पिक्सल का आयाम चाहिए। – Toorop

+0

अगर मार्जिन को अनदेखा किया जाता है, तो मुझे क्यों छोड़ दिया गया है और शीर्ष मार्जिन क्यों हैं? – Toorop

+1

बदले में पैडिंग का उपयोग करने का प्रयास करें – Ahmad