2012-05-03 8 views
17

यह एंड्रॉइड लेआउट के बारे में एक सवाल है। यहाँ है कि मैं क्या बेसब्री प्राप्त करना चाहते है:क्या इसके पैरेंट लेआउट के बाहर थोड़ा सा देखने का कोई तरीका है?

Layout

डार्क-ग्रे एक LinearLayout है। ऑरेंज लेआउट एक्स है और फिर ग्रीन एक फ्रेमलाउट है। मुझे ग्रीन को अपने माता-पिता के बाहर रखना होगा - लेआउट एक्स। वर्णित लेआउट पदानुक्रम को बदला नहीं जा सकता है। एकमात्र विकल्प लेआउट एक्स है - यह जो भी आप चाहते हैं हो सकता है।

कोई भी विचार?

+0

मुझे यह कहने से नफरत है, लेकिन एकमात्र तरीका मैं सोच सकता हूं कि फ़्रेमलाइट का उपयोग सबकुछ लपेटने के लिए करना है, एक रैखिक लेआउट में गहरा भूरा और नारंगी है और फिर दूसरों पर हरा लेआउट रखना है। आपके "आपके द्वारा वर्णित लेआउट पदानुक्रम को बदलकर बदला नहीं जा सकता"। जिज्ञासा से बाहर, यह क्यों नहीं हो सकता? – Barak

+0

मुझे लगता है कि आप मार्जिन के लिए नकारात्मक मान निर्दिष्ट कर सकते हैं। क्या आपने कोशिश की है? मुझे लगता है कि यह लेआउट के लिए काम करता है जहां आप ओवरलैप कर सकते हैं (कैनवास पर दो ऑब्जेक्ट्स, उदाहरण के लिए)। मैं किसी भी संपादक के पास नहीं हूं, अन्यथा मैं इसे स्वयं कोशिश करूंगा। मुझे निश्चित रूप से पता है कि अगर आप पूरे लेआउट कैनवास हैं तो आप ओवरलैप कर सकते हैं, लेकिन मुझे आपकी स्थिति में यकीन नहीं है। – Gophermofur

+0

@ बराक: यह मूल रूप से एक तालिका है (तालिका पंक्ति चित्र पर है) और कुछ परिस्थितियों में मुझे अपने सामान्य स्थिति के बाहर एक एकल कक्ष को स्थानांतरित करने की आवश्यकता है, इसलिए तालिका/टेबलरो लेआउट केवल मैं ही उपयोग कर सकता हूं। – agibalov

उत्तर

4

आप लेआउट एक्स में ग्रीन पार्ट नहीं डाल सकते हैं, क्योंकि इसे अपने माता-पिता के बाहर नहीं खींचा जा सकता है।

तो, आपको इन सभी दृश्यों के माता-पिता के रूप में एक रिलेवेटिवआउट या फ्रेमलाउट (रूट लेआउट) लागू करना चाहिए।

और ग्रीन व्यू को रूट लेआउट के बच्चे के रूप में रखें।

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_root" 
    android:layout_width="fill_parent" 
    android:layout_height="200dp" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/layout_dark_grey" 
     android:layout_width="100dp" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/layout_orange" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_toRightOf="@id/layout_dark_grey" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <RelativeLayout 
     android:id="@+id/layout_green" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_centerVertical="true" 
     android:layout_toLeftOf="300dp" > 
    </RelativeLayout> 

</RelativeLayout> 
+0

मुझे पता है कि मेरे द्वारा उपयोग किए जाने वाले लोगों के बजाय अधिक उचित लेआउट का उपयोग कर इसे प्राप्त करने के तरीके हैं। अगर मैं अपने मामले में ऐसा करने का कोई तरीका हूं तो मैं अभी भी उत्सुक हूं। – agibalov

29

उपयोग -

android:clipChildren="false" 
android:clipToPadding="false" 
अपने बच्चे को देखने के लिए आपके विचार की है, तो आप रख 'छोड़ दिया मार्जिन' की हर माता पिता में

नकारात्मक होने के लिए है, जो माता-पिता को देखने के बाहर अपने बच्चे को देखने के लिए रखा जाएगा और होगा दृश्य को भी क्लिप न करें।

+1

नकारात्मक मार्जिन विजेता है! – hellaandrew

+2

स्पॉट पर! चीयर्स – AhmedW

+3

मेरे लिए काम नहीं लग रहा है – Denny

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