2011-09-16 13 views
36

में प्रभाव PopupWindow.showAtLocation() को महत्व करना कैसे अलग गुरुत्वाकर्षण एंड्रॉयड में प्रभाव PopupWindow.showAtLocation() को महत्व देता है?कैसे गुरुत्वाकर्षण एंड्रॉयड

मैं PopupWindows showAtLocation और गुरुत्वाकर्षण पर अच्छा डॉक्स नहीं मिल रहा।

उत्तर

65

कुछ घंटों के लिए हैकिंग केंद्र की गणना और Gravity.TOP का उपयोग कर रहा एक पोस्ट है कि Gravity.CENTER इस्तेमाल किया पाया दृश्य संरेखित करने के लिए प्रयास करने के लिए कुछ काला जादू गणित की कोशिश के बाद। मैं उम्मीदों में अपने निष्कर्ष इकट्ठा कर रहा हूं कि यह किसी और को कुछ दर्द बचाता है।

popupWindow.showAtLocation(anyViewOnlyNeededForWindowToken, Gravity.CENTER, 0, 0); 

दृश्य खिड़की टोकन के लिए केवल आवश्यक है, इसका स्थान पर कोई अन्य प्रभाव नहीं पड़ता है।

ग्रेविटी लेआउट प्रबंधक जहां समन्वय प्रणाली और कैसे उन निर्देशांक के इलाज के लिए शुरू करने के लिए कहता है। मुझे दस्तावेज़ नहीं मिल रहे हैं लेकिन हैकिंग मुझे दिखा रहा है कि:

  • केंद्र पॉप के बीच का उपयोग करता है ताकि एक्स, वाई निर्दिष्ट किया जा सके। इसलिए 0,0 स्क्रीन केंद्रित है, अधिसूचना बार के आकार के लिए कोई समायोजन नहीं है।

Gravity.CENTER 0,0

  • नीचे का उपयोग करता है पॉपअप के नीचे एक्स, वाई निर्दिष्ट करने के लिए गठबंधन किया जाना। तो 0,0 में पॉपअप तल स्क्रीन के नीचे गठबंधन है। आप 10px गद्दी चाहते हैं तो y = 10 (नहीं -10) पॉपअप अप स्क्रीन 10 पिक्सल स्थानांतरित करने के लिए।

Gravity.BOTTOM 0,10

  • टॉप का उपयोग करता है पॉपअप के शीर्ष एक्स, वाई निर्दिष्ट करने के लिए गठबंधन किया जाना। तो 0,0 में पॉपअप टॉप स्क्रीन टॉप के साथ गठबंधन है। यदि आप 10px पैडिंग चाहते हैं तो y = 10। नोट आप पूर्ण स्क्रीन मोड में नहीं हैं तो आप भी सूचना पट्टी के लिए समायोजन करना चाहिए।

Gravity.TOP 0,48

  • Gravity.LEFT और Gravity.RIGHT अब स्पष्ट होना चाहिए, मेरे उदाहरण छवियों के लिए वे स्क्रीन पर फिट करने के लिए ताकि वे स्क्रीन आकार शून्य से गद्दी मैं लिए क्लैम्प किया जाता बहुत बड़े हैं उपयोग कर रहा हूँ
संबंधित मुद्दे