Android: फ्रेमलेयआउट का उपयोग करके स्क्रीन के निचले-दाएं बटन को संरेखित करें?


106

मैं मानचित्र के ज़ूम नियंत्रण को स्क्रीन के निचले दाएं कोने पर रखने का प्रयास कर रहा हूं। मैं इसे RelativeLayout के साथ दोनों का उपयोग कर सकता था alignParentBottom="true"और alignParentRight="true", लेकिन Framelayout के साथ मुझे ऐसी कोई विशेषता नहीं मिली। मैं इसे स्क्रीन के निचले-दाईं ओर कैसे संरेखित करूं?

जवाबों:


252

वास्तव में यह संभव है, इसके बावजूद कि अन्य उत्तरों में क्या कहा जा रहा है। यदि आपके पास एक FrameLayoutबच्चा है, और एक बच्चे की वस्तु को नीचे की ओर रखना चाहते हैं, तो आप इसका उपयोग कर सकते हैं android:layout_gravity="bottom"और उस बच्चे को नीचे की तरफ संरेखित करने जा रहे हैं FrameLayout

मुझे पता है कि यह काम करता है क्योंकि मैं इसका उपयोग कर रहा हूं। मुझे पता है कि देर हो चुकी है, लेकिन यह दूसरों के लिए काम आ सकता है क्योंकि यह गूगल पर शीर्ष पदों पर है


7
हाय byte1918, अगर आप इस सवाल का सही जवाब नहीं मानते हैं तो आपका स्वागत है - और मुझे लगता है कि यह हर किसी के लिए उपयोगी होगा - यदि आप सही समाधान पोस्ट करते हैं। या कम से कम समझाएं कि यह गलत उत्तर क्या है। धन्यवाद।
लब्सा

33
नीचे दाईं ओर संरेखित करें: आप Android का उपयोग कर सकते हैं: layout_gravity = "निचला | दायाँ"
Marcin Raczkowski

1
यदि यह पूर्वावलोकन में तुरंत प्रतिबिंबित नहीं होता है, तो इसे डिज़ाइन टैब से सेट करने का प्रयास करें। आम तौर पर काम करता है,
youdoDis

मैंने कोशिश की है कि Textview के साथ और यह काम नहीं कर रहा है
The Only Smart Boy

51

मैं भी इस स्थिति में भाग गया और यह समझकर कि यह कैसे करना है, का उपयोग करके। निम्न आउटपुट नीचे दिए गए कोड द्वारा निर्मित है।

कुछ राइट-बॉटम संरेखित पाठ फ़्रेमलैटआउट का उपयोग करके एक छवि पर दिखा रहा है।

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

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/contactbook_icon"
                        android:layout_gravity="center" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="140"
                        android:textSize="12dp"
                        android:textColor="#FFFFFF"
                        android:layout_gravity="bottom|right"
                        android:layout_margin="15dp" />
                </FrameLayout>

छवि पर पाठ स्थिति को समायोजित करने के लिए मार्जिन मान बदलें। मार्जिन को हटाने से पाठ कभी-कभी दृश्य से बाहर हो सकता है।


सबसे अच्छा जवाब ... धन्यवाद, एक लंबे समय तक रहस्य सुलझाया।
यवसालबोर्ग

38

इसका उपयोग करके प्राप्त किया जा सकता है RelativeLayout

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

   <ImageView 
      android:src="@drawable/icon"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_alignParentRight="true"
      android:layout_alignParentBottom="true" />

</RelativeLayout>

1
यह काम नहीं करते, अगर इस्तेमाल होता है wrap_contentमें RelativeLayout। क्योंकि फिर भी RelativeLayout पूरे स्क्रीन पर बढ़ गया।
यूरा शिनकरेव

15

सेटिंग करना android:layout_gravity="bottom|right"मेरे लिए काम कर गया


9

ऐसा करने के दो तरीके:

1) फ़्रेम लेआउट का उपयोग करना

android:layout_gravity="bottom|right"

2) एक रिलेटिव लेआउट का उपयोग करना

android:layout_alignParentRight="true"
android:layout_alignParentBottom="true" 


3

अगर आप java code के साथ try करना चाहते है। हेयर यू गो -

    final LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, 
                                             LayoutParams.WRAP_CONTENT);
    yourView.setLayoutParams(params);
    params.gravity = Gravity.BOTTOM; // set gravity

बस मुझे क्या चाहिए। थोड़ा जोड़ - लेआउटप्रेम फ्रेम फ्रेमलैट.लेयआउटपराम से होना चाहिए। और अगर आप इसे नीचे दायें कोने का उपयोग करना चाहते हैं: params.gravity = Gravity.BOTTOM | Gravity.RIGHT;
सजीथक

2

आप फ़्रेमलेआउट में एक अदृश्य टेक्स्ट दृश्य जोड़ सकते हैं।

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:visibility="invisible"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <Button
            android:id="@+id/daily_delete_btn"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:text="DELETE"
            android:layout_gravity="center"/>
        <Button
            android:id="@+id/daily_save_btn"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="1"
            android:text="SAVE"
            android:layout_gravity="center"/>
    </LinearLayout>


0

ऐंड्रॉयड स्टूडियो के एक्टिविटी.एक्सएमएल पेज के कंस्ट्रक्ट विजेट के इस्तेमाल से ऐसा करने के कई तरीके हैं।

दो सबसे आम तरीके हैं:

  1. अपना बटन दृश्य चुनें और इसे समायोजित करें मार्जिन।
  2. "सभी विशेषताएँ" पर जाएं, फिर "Layout_constraints" पर जाएं, फिर चयन करें
    • layout_constraintBottom_toBottomOf_parent
    • layout_constraintRight_toRightOf_parent

-3

आप इसे फ्रेमलैट के साथ नहीं कर सकते।

कल्पना से:

http://developer.android.com/reference/android/widget/FrameLayout.html

"फ़्रेमलैटआउट को एक आइटम को प्रदर्शित करने के लिए स्क्रीन पर एक क्षेत्र को ब्लॉक करने के लिए डिज़ाइन किया गया है। आप एक फ्रेमलेयआउट में कई बच्चों को जोड़ सकते हैं, लेकिन सभी बच्चे स्क्रीन के शीर्ष बाईं ओर आंकी जाती हैं।"

RelativeLayout का उपयोग क्यों नहीं करें?


मैं मानचित्र को ओवरलैप करते हुए बाईं ओर एक सूची दिखाना चाहता हूं। ओह, यह RelativeLayout के साथ संभव नहीं है? ठीक है धन्यवाद।
रोहिथ नंदकुमार 3

1
"लेकिन सभी बच्चे स्क्रीन के ऊपर बाईं ओर आ जाते हैं" - जरूरी नहीं कि स्क्रीन के ऊपर, आप इसे दाईं ओर, नीचे आदि को संरेखित कर सकते हैं?
रोहित नंदकुमार

हाँ, यह RelativeLayout के साथ संभव है। आप एक दूसरे के शीर्ष पर दृश्य लेआउट कर सकते हैं।
जुहानी

यह वास्तव में आधा सही है। ओपी पूछ रहा है कि प्राप्त करने योग्य है, लेकिन सीमित दृष्टिकोण के साथ-जैसा कि आपने उल्लेख किया है। लेकिन यह कहना कि यह 'साध्य नहीं है' गलत होगा!
सूद 7००
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.