安卓AlertDialog修改内容的字体颜色和大小

安卓AlertDialog修改内容的字体颜色和大小安卓封装的AlertDialog是非常好用的一个dialog,满足平时开发中的大部分工作。但是毕竟开

大家好,欢迎来到IT知识分享网。

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

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

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

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

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

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

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

安卓AlertDialog修改内容的字体颜色和大小

安卓AlertDialog修改内容的字体颜色和大小

安卓AlertDialog修改内容的字体颜色和大小

安卓AlertDialog修改内容的字体颜色和大小

安卓AlertDialog修改内容的字体颜色和大小

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

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

安卓AlertDialog修改内容的字体颜色和大小

源码在AlterDialog.class里面

安卓AlertDialog修改内容的字体颜色和大小

源码位置在AlertController.class里面

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

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

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

安卓AlertDialog修改内容的字体颜色和大小

源码位置在AlertController.class里面

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

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

安卓AlertDialog修改内容的字体颜色和大小

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

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

安卓AlertDialog修改内容的字体颜色和大小

源码位置在alter_dialog.xml里面

安卓AlertDialog修改内容的字体颜色和大小

源码位置在alter_dialog.xml里面

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

安卓AlertDialog修改内容的字体颜色和大小

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

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

安卓AlertDialog修改内容的字体颜色和大小

效果图

安卓AlertDialog修改内容的字体颜色和大小

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

安卓AlertDialog修改内容的字体颜色和大小

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

关注,收藏,点赞都是对我的鼓励。谢谢

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88869.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信