android
首发

android

优质
请用语音读文章

安卓封装的AlertDialog是非常好用的一个dialog。满足平时开发中的大部分工作。

但是毕竟开发中。dialog的样式必须要和app主题相符合。这就需要修改dialog的样式。

但是dialog并没有提供改变样式的方法。这就要我们自己去弄了。

网上提供了很多。有用style 有用java 反射去获取控件的。

但是研究源码可以看到。其实可以用代码去设置。

先看看不作任何修改的时候。alterdialog的显示。

ps:(Button可以在style中修改可以通过查看源码的方法找到。他的style里面button颜色对应的字段就是colorAccent)

当我们要修改title 或者message 或者button的颜色的时候。alterdialog并没有提供方法。

但是研究源码可以看到alterDialog提供了getButton();

源码在AlterDialog.class里面

源码位置在AlertController.class里面

原来这样就可以获取Button了。那么Button的字体和颜色就不成什么问题了。

注意必须dialog.show()之后才可以获取到Button不然获取到的Button为空的。

因为返回的参赛如mButtonPositive实例化是在setupButtons这个方法里面。而这个方法只有alterDialog在show的时候才会调用

源码位置在AlertController.class里面

那么问题来了message和title呢。alterDialog并没有提供这个方法。这个怎么获取。

其他上面Button的实例化已经提供了一个方法。看图

他的Button是通过findById去获取的。那么我们title和message不一样可以用findById么。

ctrl+鼠标左键。查看布局源码。找到title和message的id。如图

源码位置在alter_dialog.xml里面

源码位置在alter_dialog.xml里面

那么我们就可以通过Id去获取了

至于为什么我上面用android.R.id.message去获取id是因为项目中的ids.xml中已经有了message这个id了

控件获取到了修改字体和颜色 不就是小case了。

效果图

DialogTitle是继承TextView的所有上面的查找Title的控件 我直接转化成TextView

多研究源码收获还是很多的。

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

红豆薏米茶有什么功效和副作用(喝红豆薏米茶减肥真的有效果吗)

请用语音读文章红豆薏米茶是一种我们大家很多人都喝过的茶。而同时我们都知道红豆薏米茶[...

有哪些好看的现代言情小说推荐(好看的现代言情小说有哪些推荐)

请用语音读文章喜欢看小说的朋友一定要关注糖鱼。糖鱼每天为大家带来最新最好看的完结小[...

李敏镐的电视剧有哪些(韩国长腿欧巴李敏镐)

请用语音读文章1、继承者们李敏镐火的电视剧有哪些?青春喜剧《继承者们》绝对是榜上[&...

校园灵异小说推荐(推荐校园灵异小说)

请用语音读文章乡野灵异小说并不太清楚但是可以给你介绍几本其他类型的灵异小说。1[&h...

发表评论

您的电子邮箱地址不会被公开。