设置的宽度和高度要是屏幕的宽度和高度才会完美展示对的动画…,苦苦的探索啊
关键代码已加注释
CustomDialog文件
public void onCreate(...){
...
Window window = getWindow();
if (null != window) {
// 动画
setAnimation(true, window);
WindowManager.LayoutParams lp = window.getAttributes();
int screenHeight = ScreenUtil.getScreenHeight();
// 解决高度上底部全面屏,navigationBar区域白边问题
lp.height = screenHeight;
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) mCzbReactView.getLayoutParams();
if (gravity == Gravity.CENTER) {
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layoutParams.removeRule(RelativeLayout.CENTER_HORIZONTAL);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
} else {
lp.width = ViewGroup.LayoutParams.MATCH_PARENT;
layoutParams.removeRule(RelativeLayout.CENTER_IN_PARENT);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
}
window.setAttributes(lp);
}
...
}
博客详细介绍了如何在自定义对话框中实现完美全屏显示,特别针对全面屏设备底部的navigationBar区域进行适配,通过获取屏幕高度并设置布局参数来消除底部白边。关键代码涉及到窗口属性设置、相对布局规则的调整,确保对话框内容居中或底部对齐。
5076

被折叠的 条评论
为什么被折叠?



