本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
在 Android 开发中,当你使用 Dialog 或 DialogFragment 时,可以通过设置 Window
的背景变暗来突出它的可见性。这个效果是通过 backgroundDimAmount
属性来控制的。
那我们怎么动态设置backgroundDimAmount
呢?
DialogFragment
假设你正在使用 DialogFragment
,那么你可以在 onCreateDialog
或 onViewCreated
方法中配置 Dialog
的窗口属性。
在 DialogFragment
中设置 backgroundDimAmount
public class MyDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
Window window = dialog.getWindow();
if (window != null) {
WindowManager.LayoutParams layoutParams = window.getAttributes();
layoutParams.dimAmount = 0.5f; // 设置dimAmount为0.5,即背景变得半透明
window.setAttributes(layoutParams);
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}
return dialog;
}
// 如果你的DialogFragment使用的是布局文件,需要在onViewCreated中调用上面的代码
@Override
public