问题的由来
要实现暗色的背景。通常是以下代码来实现:
window = ((Activity) context).getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.alpha = 0.5f;
window.setAttributes(params);
这段代码的含义是:获取当前activity的widow,将window的透明度更改为50%,在通常情况下使用是没有问题的。popupwindow其实就是附着在window上的我们看一下源码:
private void invokePopup(WindowManager.LayoutParams p) {
if (mContext != null) {
p.packageName = mContext.getPackageName();
}
final PopupDecorView decorView = mDecorView;
decorView.setFitsSystemWindows(mLayoutInsetDecor);
setLayoutDirectionFromAnchor();
mWindowManager.addView(decorView, p);
if (mEnterTransition != null) {
decorView.requestEnterTransition(mEnterTransition);
}
}
但是我们项目中使用了Swipelayout侧滑功能,在Style中设置了
<item name="android:windowIsTranslucent">true</