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,这是其中一篇开发记录,更多开发记录文章请点击该项目查看。

发布了40 篇原创文章 · 获赞 47 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/u010976213/article/details/77715311