2017-01-03 15 views
7

यहाँ शो एक PopupWindowPopupWindow कुछ डिवाइस में स्थिति पट्टी से ऊपर है

View rootView = activity.getWindow().getDecorView().getRootView(); 
mPopupWindow.showAtLocation(rootView, Gravity.NO_GRAVITY, 0, 0); 

के लिए मेरे कोड जब मैं Samsung पर उसकी जांच, Nexus डिवाइस यह नीचे स्थिति पट्टी को दिखाने
लेकिन जब मैं इसे परीक्षण है Sony डिवाइस पर यह से ऊपर स्टेटस बार (नीचे दी गई छवि की तरह)

तो कौन सा डिवाइस सही प्रदर्शित करता है या मैं क्या गलत करता हूं? कोई मदद या सुझाव की सराहना की महान

enter image description here

उत्तर

1

मैं एक अस्थायीViewtop-left पर (topLeftView नीचे कोड में) बनाने के द्वारा अपनी समस्या का समाधान होगा।
फिर जब मैं PopupWindow दिखाने के लिए, मैं इसे (0, the y coordinate of topLeftView) पर दिखाई देगा (0,0)

View topLeftView = findViewById(R.id.top_left_View); 
int topLeftPos[] = new int[2]; 
topLeftView.getLocationOnScreen(topLeftPos); 

mPopupWindow.showAtLocation(topLeftView, Gravity.NO_GRAVITY, 0, topLeftPos[1]); 

मुझे लगता है कि इस समाधान सभी उपकरणों

+0

यह सोनी उपकरणों में एंड्रॉयड स्वाद की तरह दिखता है के लिए काम करेंगे नहीं ऊपरी बाएं कोने की गणना भौतिक शीर्ष बाएं कोने के रूप में जबकि नेक्सस और सैमसंग डिवाइस स्टेटस बार को छोड़कर ऊपरी बाएं कोने की गणना करते हैं। – ucsunil

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