2013-08-27 4 views
18

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

उत्तर

37

निम्नलिखित को आपके विनिर्देश के अनुसार सही काम करना चाहिए। से अंदर OnClickListener की onClick(View v) देखें करने के लिए आवंटित इस विधि कॉल करें:

public void showPopup(View anchorView) { 

    View popupView = getLayoutInflater().inflate(R.layout.popup_layout, null); 

    PopupWindow popupWindow = new PopupWindow(popupView, 
          LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

    // Example: If you have a TextView inside `popup_layout.xml`  
    TextView tv = (TextView) popupView.findViewById(R.id.tv); 

    tv.setText(....); 

    // Initialize more widgets from `popup_layout.xml` 
    .... 
    .... 

    // If the PopupWindow should be focusable 
    popupWindow.setFocusable(true); 

    // If you need the PopupWindow to dismiss when when touched outside 
    popupWindow.setBackgroundDrawable(new ColorDrawable()); 

    int location[] = new int[2]; 

    // Get the View's(the one that was clicked in the Fragment) location 
    anchorView.getLocationOnScreen(location); 

    // Using location, the PopupWindow will be displayed right under anchorView 
    popupWindow.showAtLocation(anchorView, Gravity.NO_GRAVITY, 
            location[0], location[1] + anchorView.getHeight()); 

} 

टिप्पणियाँ इस काफी अच्छी तरह से व्याख्या करनी चाहिए। anchorViewonClick(View v) से v है।

+0

भयानक, अब तक काम करता है, लेकिन मैं इसे सीमा या कुछ कैसे बना सकता हूं? –

+1

@ БориславМинчев ठीक है, पूरे 'पॉपअप' लेआउट को काले रंग की पृष्ठभूमि के साथ 'फ्रेमलेआउट' के अंदर रखें। 'Popup' लेआउट की पृष्ठभूमि को सफेद पर सेट करें और इसे' 2 डीपी 'का मार्जिन दें। – Vikram

+0

बहुत जटिल: डी मैंने इसे एक फ्रेम के साथ पृष्ठभूमि चित्र के साथ किया, और आंतरिक रंग 70% की तरह पारदर्शी है। वैसे भी, उपर्युक्त उत्तर मैं चाहता था कि आप धन्यवाद –

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