फ़्रेमलैटआउट क्या करता है?


97

मैं प्रोग्रामिंग में नया हूँ। मैं तब ग्राफिकल लेआउट का उपयोग कर रहा था, जब मैं xml फ़ाइल पढ़ रहा था, मैंने फ्रेमलैट देखा। फिर मैंने खोज की, लेकिन मुझे कुछ उपयोगी नहीं मिला। फ़्रेमलैटआउट क्या है और यह क्या करता है?


1
क्या आप यहां से होकर गए हैं? developer.android.com/reference/android/widget/FrameLayout.html
Ed_Fernando

12
हां, मैं वहां गया था, लेकिन मैं sth को समझ नहीं पाया।
अमीन घासेमी

जवाबों:


194

आप स्टैक के शीर्ष पर सबसे हाल के बच्चे के साथ एक दूसरे के ऊपर बच्चे के विचारों को ढेर करने के लिए एक फ्रेम-आउट का उपयोग करते हैं। नीचे दिए गए उदाहरण में, TextView सबसे हाल का है, इसलिए इसे ImageView के शीर्ष पर स्वचालित रूप से रखा गया है।

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/backgroundImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:src="@drawable/bitmapie" />

    <TextView
        android:id="@+id/descTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginTop="70dp"
        android:background="@android:color/holo_blue_light"
        android:padding="10dp"
        android:text="TextView placed at the top of the Imageview"
        android:textColor="@android:color/white"
        android:textSize="22sp" />

</FrameLayout>

आउटपुट:

यहाँ छवि विवरण दर्ज करें


40
मुझे उनके आउटपुट के साथ कोड देखकर बहुत अच्छा लगा। आपका बहुत बहुत धन्यवाद! Upvoted। इसके अलावा, मुझे आपके द्वारा बनाए गए डिज़ाइन पसंद हैं। बस अभी तक बहुत अच्छा!
तारिक

3
बहुत सरल, शक्तिशाली अभी तक आसान स्पष्टीकरण - धन्यवाद @ojonugwaochalifu!
कोडर एब्सोल्यूट

2
बहुत अच्छी व्याख्या। मैंने भी आधिकारिक पृष्ठ पर 'डेवलपर का विवरण पढ़ा और सोचा "वाक्यांश" शीर्ष पर "स्क्रीन के शीर्ष की ओर अधिक था। आपके स्पष्टीकरण ने "ऑन टॉप" के 3 डी स्वभाव को मेरे लिए क्लिक किया और अब मैं इसे प्राप्त करता हूं। बहुत बहुत धन्यवाद :)
Slartibartfast

1
@ojonugwaochalifu: स्पष्टीकरण के लिए धन्यवाद। मेरे पास एक छोटी सी क्वेरी है, जो चीजें हमने यहां की हैं, हम रिश्तेदार लेआउट द्वारा भी कर सकते हैं। फिर, हम फ्रेम लेआउट का उपयोग क्यों करते हैं?
अकाशापत्र

3
हां, वे लगभग एक ही काम करते हैं। लेकिन याद रखें, विचारों के लिए एक अच्छा डिजाइन अभ्यास आपके लेआउट के लिए यथासंभव कम घोंसले के शिकार का उपयोग करना है। जब आप एक फ्रेम-आउट का उपयोग करते हैं, तो एक-दूसरे पर विचार रखने के लिए आवश्यक घोंसला बनाने से कम होता है जब आप एक रिलेटिवलाईट का उपयोग करते हैं।
ओजोनुगवा जूड ओचलिफु

75

FrameLayoutका सबसे सरल कार्यान्वयन है ViewGroup। बाल दृश्य खींचे गए हैं, जहां एक शीर्ष पर नवीनतम जोड़ा गया दृश्य खींचा गया है। आमतौर पर आप अगले तरीकों में से एक का उपयोग कर सकते हैं या उन्हें जोड़ सकते हैं:

  1. एकल दृश्य पदानुक्रम जोड़ें FrameLayout
  2. कई बच्चों को जोड़ें और android:layout_gravityउन्हें नेविगेट करने के लिए उपयोग करें

यहाँ छवि विवरण दर्ज करें

उपयोग करने का एक और लोकप्रिय तरीका FrameLayout:

  • एक Fragmentकंटेनर के रूप में
  • अपने रिवाज के पूर्वज के रूप में ViewGroup

23

आप शब्द frameको नियमित फोटो फ्रेम मान सकते हैं । आप उस फ्रेम के साथ क्या करते हैं? आप उस फ़्रेम में एक शीर्ष से दूसरे तक फ़ोटो रख सकते हैं। जैसे ही FrameLayoutहम विचार रख सकते हैं (कोई भी लेआउट, या विजेट जैसे बटन, पाठ, चित्र इत्यादि) अन्य के शीर्ष पर @ojonugwa के रूप में दिखाया गया है जो आपको छवि का शीर्ष भाग दिखाता है।


अच्छा लगा, मैं यह सोच रहा था iframeजैसे मैं वेब डेवलपमेंट से आ रहा हूं। सरलतम स्पष्टीकरण के लिए धन्यवाद।
तारिक

19

क्या आप सुनिश्चित हैं कि आपने इसे देखा है?

फ़्रेम लेआउट एकल आइटम प्रदर्शित करने के लिए स्क्रीन पर एक क्षेत्र को ब्लॉक करने के लिए डिज़ाइन किया गया है। आमतौर पर, फ़्रेमलैटआउट का उपयोग एकल बच्चे के दृश्य को रखने के लिए किया जाना चाहिए, क्योंकि बच्चे के विचारों को एक तरह से व्यवस्थित करना मुश्किल हो सकता है, जो कि एक-दूसरे को ओवरलैप किए बिना विभिन्न स्क्रीन आकारों के लिए स्केलेबल है।

हालाँकि, आप कई बच्चों को एक फ्रेम -आउट में जोड़ सकते हैं और फ्रेम-आउट के भीतर अपनी स्थिति को नियंत्रित कर सकते हैं, प्रत्येक बच्चे को गुरुत्वाकर्षण का उपयोग करके, Android का उपयोग करके: लेआउट_ग्रेविटी विशेषता।

FrameLayout का रहस्य यह है कि यह अपने बच्चों को कैसे पढ़ाता है। हालांकि आम तौर पर एक आइटम शामिल करने के लिए डिज़ाइन किया गया है, यह खुशी से एक दूसरे के शीर्ष पर अन्य तत्व को ढेर कर देगा। इस प्रकार फ़्रेमलैटआउट अनिवार्य रूप से स्क्रीन पर ज़ेड-ऑर्डर ऑफ़ व्यू को हेरफेर करने का एक तरीका है।

यह HUD जैसे तत्वों की एक जोड़ी UI ट्रिक से पैनल को फिसलने से लेकर अधिक जटिल एनिमेटेड बदलावों के लिए सुपर उपयोगी है। इस पोस्ट में हम उनमें से प्रत्येक के लिए एक उदाहरण देखेंगे।

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


8
हां मैंने उन्हें देखा। लेकिन मैं यह नहीं बता पाया कि वे क्या कह रहे हैं।
अमीन घासेमी

आप इसे एक तस्वीर फ्रेम के रूप में सोच सकते हैं। मूल रूप से आप जो भी डालते हैं उसे स्क्रीन के बाईं ओर आवंटित किया जाएगा। learn-android-easily.com/2013/05/frame-layout-in-androis.html
Metehan

इसलिए आपको इसका उपयोग अधिकांश समय के लिए किसी एक आइटम को प्रदर्शित करने के लिए करना चाहिए।
मेथन

4

मूल रूप से यह उदाहरण के लिए एक दृश्य को दूसरे के ऊपर रखता है:

इमेज पर टेक्स्ट का इन्फ्लेशन

  <FrameLayout>

<ImageView>
<Textview>

  </FrameLayout>

1
नाॅप लीनियरलेयूट एक के बाद एक जगह देता है ... इसके ऊपर फ्रेम स्थान..लेट्स एक सीनारियो के लिए कहते हैं जैसे कि चित्रों पर ग्रिड है और उस छवि के शीर्ष पर रद्द बटन है ..... वहां हम फ्रेम लेआउट का उपयोग करते हैं
KOTIOS
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.