AlertDialog自定义

AlertDialog的自定义其实网上很多了,但是有一个坑却很少见人提及。先看下Java代码部分:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.DialogTheme);
builder.setView(R.layout.dialog_layout);
builder.create().show();

有两处地方需要注意下:

  • R.style.DialogTheme 这里是重点,下面我会放上代码;
  • R.layout.dialog_layout这里就是你自定义的Dialog的视图文件了,不需要多说;

R.style.DialogTheme代码:

<style name="DialogTheme" parent="AlertDialog.AppCompat">
    <!--去掉AlertDialog的背景-->
    <item name="android:windowBackground">@android:color/transparent</item>
    <!--浮现在activity之上,如果不设置该属性,那么对话框的宽度就会变宽-->
    <item name="android:windowIsFloating">true</item>
</style>

Dialog主题中第一行的代码,是设置透明背景,主要是为了实现“网易云发现新版本”的那种Dialog效果,如下所示:

这里写图片描述

第二行的代码设置Dialog浮动在Activity上是为了解决对话框宽度会占据整个屏幕的问题,虽然可以在布局中设置margin来使对话框宽度距离屏幕边缘有个距离,但是对于强迫症患者肯定不喜欢这个样子的,比如我。所以这句代码就是解决方法。

谢谢观看

该项目Sunshine已放在GitHub,这是其中一篇开发记录,更多开发记录文章请点击该项目查看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值