干货,关于自定义Dialog的宽度充满屏幕的方法以及为什么设置失败(扩展:自定义Dialog形状)

本文详细解析了如何让自定义Dialog在Android中宽度充满屏幕,并探讨了为何某些方法可能失效。通过修改Dialog的WindowAttributes,或者调整默认Theme.Dialog的样式,可以实现全屏效果。此外,还介绍了如何在Dialog中添加自定义形状,如圆角,以及在styles.xml中定义相关属性以达到预期效果。
摘要由CSDN通过智能技术生成

为了让自定义dialog的宽度充满屏幕,可能会在网上搜了各种各样的方法来实现这一目的,可能都失败了,这是为什么呢?因为自定义布局加载的位置不对,直接看图:


因为是在代码里面设置的dialog宽度全屏,而不是在styles里面,所以不能在创建dialog的时候加载自定义的布局,怎么实现Dialog的宽度全屏?为了清晰明了得意,贴图:


为了让dialog宽度全屏,在你dialog.show()后面添加:

  WindowManager windowManager = getWindowManager();
  Display display = windowManager.getDefaultDisplay();
  WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
  lp.width = (int)(display.getWidth()); //设置宽度
  dialog.getWindow().setAttributes(lp);

或者因为默认的Dialog样式@android:style/Theme.Dialog 对应的style 有pading属性,所以也可以:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值