2013-10-13 2 views
6

मेरे पास एक आवश्यकता है जहां मेरे पास एक ऐसी गतिविधि है जो फेसबुक फ़ीड्स जैसे आइटमों की सूची दिखाती है और सूची आइटम में से किसी एक बटन पर क्लिक करते समय एक संवाद पॉपअप करना होता है जो टिप्पणियां दिखाएगा उस वस्तु के लिए।किसी गतिविधि के भीतर ओवरले व्यू कैसे बनाएं

मैं प्रलेखन के माध्यम से जा रहा था और पाया कि हमें इसे प्राप्त करने के लिए फ्लाई पर DialogFragment बनाना है। अगर यह सही दृष्टिकोण है तो कृपया सलाह दें।

enter image description here

enter image description here

उत्तर

16

आप वास्तव में एक संवाद का उपयोग करने की जरूरत नहीं है। मुझे लगता है कि जब आप साधारण विचार दिखाना चाहते हैं या उपयोगकर्ता को केवल एक अलर्ट/पुष्टिकरण (आमतौर पर अलर्टडियलॉग के साथ किया जाता है) तो संवाद अधिक उपयुक्त होते हैं।

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

<merge xmlns:android="http://schemas.android.com/apk/res/android"> 
    <LinearLayout android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:orientation="vertical"> 
     <!-- Activity's main layout here --> 
    </LinearLayout> 

    <FrameLayout android:id="@+id/overlay_fragment_container" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"/> 
</merge> 

और फिर अपने गतिविधि पर जब आप टुकड़ा प्रदर्शित करना चाहते हैं आप ऐसा करेंगे:

FragmentManager fragmentManager = getFragmentManager(); 
fragmentManager.beginTransaction() 
     .add(R.id.overlay_fragment_container, yourFragment) 
     .commit(); 

आशा है कि यह मदद करता है :) लक!

+1

इसके अलावा, आप यह जांचना चाहेंगे कि आपके पास पहले से ही यह टुकड़ा लोड हो गया है या नहीं। Http://android.codota.com/scenarios/51891625da0a971a9b2a708a/android.app.FragmentManager?tag=out_2013_05_05_07_19_34 – drorw

+0

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

+0

गतिविधियों से मूल दृश्य (आईडी android.R.id.content के साथ दृश्य, जहां आप लोड लेआउट सेट है) एक फ्रेमलाउट है। विलय टैग का उपयोग करने के बजाय मैं अपनी फ़ाइल की जड़ के रूप में फ़्रेमलाउट का उपयोग कर सकता हूं, लेकिन फिर मैं दृश्य पदानुक्रम को और अधिक अनिवार्य रूप से जटिल कर दूंगा, क्योंकि फ़्रेमलेआउट के भीतर match_parent चौड़ाई/ऊंचाई वाला फ़्रेमलाउट बस एक बेकार अनावश्यकता है। आप किसी भी तरह फ़्रेमलेआउट के रूप में मर्ज टैग की व्याख्या कर सकते हैं। –

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