2015-06-14 6 views
7

मैं है एक सरल PopupWindow कि मैं निम्नलिखित कोड के साथ बनाना चाहते हैं (कोड सी # में है, जावा कोड मूल रूप से एक ही होना चाहिए)PopupWindow Android पर नरम बटन overlaps 5.0

View popupView = LayoutInflater.From(this.Activity).Inflate(Resource.Layout.LectionFooter, null); 

var popup = new PopupWindow(popupView, ViewGroup.LayoutParams.MatchParent, 
    ViewGroup.LayoutParams.WrapContent, false) 
{ 
    OutsideTouchable = true, 
    AnimationStyle = Resource.Style.FooterAnimation 
}; 

popup.SetBackgroundDrawable(new BitmapDrawable()); 
popup.ShowAtLocation(rootView, GravityFlags.Bottom, 0, 0); 

पूर्व लॉलीपॉप डिवाइस पर , इस पॉपअप ठीक लग रहा है, लेकिन एंड्रॉयड 5.0 पर, पॉपअप नरम बटन ओवरलैप होता है:

PopupWindow Lollipop

यहाँ एक Android 4.4 डिवाइस पर PopupWindow है:

enter image description here

क्या किसी को पता है कि ऐसा क्यों होता है और यह कैसे तय किया जा सकता है?

उत्तर

16

इस Android API 21 है कि वे शुरू की क्यों एपीआई में popup.setAttachedInDecor(true/false); विधि में संभव बग है 22 लेकिन वहाँ एक कसरत है, तो आप सेट कर सकते हैं निम्नानुसार है सही y अपने पॉपअप के लिए समन्वय:

Rect rect = new Rect(); 
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); 
int winHeight = getWindow().getDecorView().getHeight(); 
popup.showAtLocation(rootView, Gravity.BOTTOM, 0, winHeight-rect.bottom); 
+0

वर्क्स एक आकर्षण की तरह , धन्यवाद! मैं आपको 14 घंटों में बक्षीस दे सकता हूं, अगर मैं इसे भूल जाता हूं तो एक टिप्पणी लिखें – Flagbug

+0

भयानक, धन्यवाद – Vilen

+1

यह समस्या बोटम गुरुत्वाकर्षण के साथ संवाद के लिए भी मौजूद है। यह समाधान y ऑफसेट की गणना करने में समान काम करता प्रतीत होता है। – DeeV

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