2011-12-02 18 views
6

के बाहर क्लिक करते समय खारिज कर दिया गया है, मैं इस समय मेरी समस्या का उत्तर पाने की उम्मीद कर रहा था।एंड्रॉइड पॉपअप विंडो

मेरे पास एक कक्षा है जो पॉपअप विंडो को बढ़ाती है। यह ठीक काम करता है सिवाय इसके कि जब मैं खिड़की के बाहर क्लिक करता हूं तो विंडो को खारिज नहीं करना चाहता।

इस समय मेरे पास setOutsideTouchable(false); है लेकिन यह विंडो के बाहर की घटनाओं को रोकता है, यह अभी भी पॉपअप को खारिज कर देता है।

एक संवाद में setCanceledOnTouchOutside(false) है, क्या मैं ऐसा कुछ उपयोग कर सकता हूं?

धन्यवाद

+0

मेरा जवाब यहां है [1]! और सवाल [सवाल] है। [1]: http://stackoverflow.com/questions/10406339/avoiding-popupwindow-dismissal-after-touching-outside/30586418#30586418 [प्रश्न]: http: //stackoverflow.com/questions/10406339/avoiding-popupwindow-dismissal-after-touching-out – user2297951

उत्तर

6

ठीक अंत में ठीक है।

सबसे पहले मुख्य लेआउट बनाया गया है जो पॉपअप रिश्तेदार लेआउट पर बैठता है। फिर शीर्ष पर एक पूर्ण स्क्रीन रिक्त लेआउट रखा जिसे मैंने अदृश्य और पारदर्शी बनाया।

फिर दिखाने जब पॉपअप दिखाया गया है, setVisibility(View.VISIBLE); के साथ पूर्ण स्क्रीन पैनल दिखाई सेट और छिपाने जब पॉपअप setVisibility(View.GONE);

साथ छिपा हुआ है इसके अलावा सच के साथ (स्पर्श को रोकने के लिए लेआउट के लिए स्पर्श श्रोता पर एक से वापस जाने के लिए की जरूरत है घटनाओं मुख्य लेआउट के लिए) वापस गुजर:

blocker.setOnTouchListener(new OnTouchListener() { 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
return true; 
} 
}); 

और पॉप अप विंडो दे गुण:

setTouchable(true); 
setOutsideTouchable(false); 

चीयर्स

+0

क्या आप व्याख्या कर सकते हैं कि आपने लेआउट कैसे बनाया? – lory105

+0

जब आप स्टैक ओवरफ्लो को क्रूज़ कर रहे हैं और अचानक आपको एक पुराने सहयोगी द्वारा लिखे गए उत्तर का एहसास है - चीयर्स जोस –

+0

ने मेरा दिन बचाया। धन्यवाद दोस्त.. –

0

क्या आप के लिए यह PopupWindow उपयोग कर रहे हैं? ऐसा लगता है कि आप इसे Dialog -ish तरीके से उपयोग करते हैं।

कहा जा रहा है कि आपको शायद setTouchInterceptor का उपयोग करना होगा और फिर अपना खुद का OnTouchListener बनाना होगा जिसका उपयोग आप यह देखने के लिए करेंगे कि स्पर्श कहां किया गया था (पॉपअप पर या नहीं)।

+0

हाय, मैं पॉपअप विंडो का उपयोग कैरोसेल और कई रैखिक लेआउट के अंदर कर रहा हूं। ऐसा लगता है कि मेरे पास इस मुद्दे से अलग करने की ज़रूरत है। –

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