DialogFragment的宽度设置
@Override
public void onStart() {
super.onStart();
Window window = Objects.requireNonNull(getDialog()).getWindow();
WindowManager.LayoutParams params = Objects.requireNonNull(window).getAttributes();
params.gravity = Gravity.TOP;
WindowManager wm1 = getActivity().getWindowManager();
int width1 = wm1.getDefaultDisplay().getWidth();
params.width = width1;
params.x = 0;
params.y = 78;
window.setAttributes(params);
}
这样,这个对话框的宽度并没有达到屏幕宽度,而是左右都留了一点。为啥?我不是已经设置宽度为getDefaultDisplay().getWidth()了吗?
函数最后,再加上如下3行
View decorView = window.getDecorView();
decorView.setPadding(0, 0, 0, 0);
decorView.setBackground(new ColorDrawable(Color.TRANSPARENT));
则对话框宽度可以达到屏幕宽度了,这是为啥呢?
并且如果将decorView.setBackground(new ColorDrawable(Color.TRANSPARENT)); 改为 decorView.setBackgroundColor(Color.RED);对话框周边出现了黑色部分,这又是为啥呢?
将当前Activity的DecorView的padding设置为0,将背景设置为透明色。
DecorView是Activity的根视图,包含了整个窗口的内容,包括标题栏、状态栏、内容区域等。
通过设置padding为0,可以让内容区域占满整个窗口。
这是一个屏幕比例的问题,分辨率都不一样的
fragment.setStyle 搜索一下
不知道你这个问题是否已经解决, 如果还没有解决的话: