2017-01-21 11 views
0

Моя деятельность всплывающее окно определяется следующим образом:Android: setOverlapAnchor перед тем API 23

this.navigationMenuPopupWindow = new PopupWindow(View.inflate(this, R.layout.popup_navigation, null), ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
this.navigationMenuPopupWindow.setWidth((int) this.getResources().getDimension(R.dimen.navigation_popup_width)); 
this.navigationMenuPopupWindow.setBackgroundDrawable(this.getDrawable(R.drawable.main_bg_navigation_menu)); 
this.navigationMenuPopupWindow.setElevation(43); 
this.navigationMenuPopupWindow.setFocusable(true); 
this.navigationMenuPopupWindow.setOutsideTouchable(true); 

Я хотел бы поместить всплывающее под анкера. Так что я, естественно, пытался добавить эту строку:

this.navigationMenuPopupWindow.setOverlapAnchor(false); 

К сожалению, это требует API 23. Как можно достичь того же результата, но что он совместим с API 21?

Я думаю, что могу решить это, изменив свой стиль приложения, но я точно не знаю, как это сделать. Кстати, это может повлиять на все PopupWindows приложения, это не проблема, у меня есть только одна. Спасибо за помощь!

+0

Я думаю, что это должно помочь http://stackoverflow.com/questions/9467026/changing-position-of-the-dialog -он-экран-андроид –

ответ

0

Вам необходимо использовать PopupWindowCompat.

PopupWindowCompat.setOverlapAnchor(this.navigationMenuPopupWindow,true);

Имейте в виду, что PopupWindowCompat.setOverlapAnchor не имеет реализации до API 21.