有没有办法在显示弹出窗口时设置窗口状态栏颜色?我尝试过使用
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(color);
但这似乎不适用于Lollipop
答案 0 :(得分:3)
我在这方面挣扎了好几天,似乎API 21中的一个错误已经在API 22中修复了
为了解决这个问题,我创建了一个PopupWindow,但不是使用MATCH_PARENT
作为高度,而是计算了屏幕的高度并减去了状态栏大小的高度。使用此选项,弹出窗口将显示基础活动的状态栏颜色
这是我用过的东西
private void showPopup(View popupView){
popup = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, getPopupHeight(), false);
popup.showAtLocation(getView(), Gravity.NO_GRAVITY, 0, 0);
}
private int getPopupHeight() {
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int statusBarHeight = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight = getResources().getDimensionPixelSize(resourceId);
}
return size.y - statusBarHeight;
} else {
return ViewGroup.LayoutParams.MATCH_PARENT;
}
}
我希望它可以帮助其他人可能会遇到这个问题