我的活动有一个如下定义的弹出窗口:
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 :(得分:0)
您需要使用PopupWindowCompat
。
PopupWindowCompat.setOverlapAnchor(this.navigationMenuPopupWindow,true);
请注意,{21}之前PopupWindowCompat.setOverlapAnchor
没有实现。