安卓封装的alertdialog是非常好用的一个dialog,满足平时开发中的大部分工作。
但是毕竟开发中,dialog的样式必须要和app主题相符合,这就需要修改dialog的样式。
但是dialog并没有提供改变样式的方法,这就菱形对角线要我们自己去弄了。
网上提供了很多,有用style 有用java 反射去获取控件的。
但是研究源码可以看到,其实可以用代码去设置。
先看看不作任何修改的时候,alterdialog的显示。
ps:(button可燃放烟花以在style中修改可以通过查看源码的方法找到,他的style里面button颜色对应的字段就是coloraccent)
当我们要修改title 或者message 或者button的颜色的时候,alterdialog并没有提供方法。
但是研究源码可以看到alterdialog提供2021端午节放假通知了getbutton();
源码在alterdialog.class里面
源码位置在alertcontroller.class里面
原来这样就可以获取button了,那么button的字体和颜色就不成什么问题了。
注意必须dialog.show()之后才可以获取到button不然获取到的button为空的。
因为返回的参赛如mbuttonpositive实例化是在tupbuttons这个方法里面,而这个方法只有alterdialog在show的时候才会调用
源码位置在alertcontroller.class里面
那么问题来了message和title呢,alterdialog并没有提供这个方法,这个怎么获取,
其他上面button的实例化已经提供了一个方法,看图
他的button是通过findbyid去获取的,那么我们title和message不一样可以用findbyid么。
ctrl+鼠标左键,查看布局源截止阀和闸阀的区别码,找到title和message的id。如图
源码位置在alter_dialog.xml里面
源码位置在alter_dialog.xml里面
那么我们就可以通过id去获取is的中文了
至于为什么我上面用android.r.id.message去获取id是因为项目中的ids.xml中已经有了message这个id了
控件获取到了修改字体和颜色 不就是小ca了。
效果图
dialogtitle是继承textview的所有上面的查找title的控件 我直接转化成textview
多研究源码收获还是很多的。
本文发布于:2023-04-05 05:56:24,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/43bbe2bf15abc3fbb256e9d4edfdbe9c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:android dialog背景透明代码(背景透明度设置方法).doc
本文 PDF 下载地址:android dialog背景透明代码(背景透明度设置方法).pdf
留言与评论(共有 0 条评论) |