本文主要是介绍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,这是其中一篇开发记录,更多开发记录文章请点击该项目查看。
这篇关于AlertDialog自定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!