最近在项目中用到了自定义Dialog,以前也是经常用,只不过要么是用自带的dialog样式,要么也是很简单的布局,所以并没有重视修改dialog大小的坑。直到这次项目中产(keng)品(die)经(wan)理(yi)死了都说dialog大小别扭要求改,然后突然发现自己自定义的dialog的大小不能调整后整个人都惊呆了,因此打算深入源码看看解决这个问题。本文分析的源代码均来自Android API 24。
demo的自定义布局如下:
首先想着通过修改dialog的Window来进行修改,代码如下:
开开心心运行一下:
em…..emmmm???尼玛?这啥玩意儿??还是没变?再怎么4000的大小也不会是这么个小玩意儿把?郁闷之极….(我太仁慈大小给4000太小了?)
又继续试验,不断的调整各种大小,还是没效果!最后求助网络后发现,设置窗口大小的代码必须放在.show()之后才能有效果,代码修改如下:


本文讲述了在Android开发中遇到自定义Dialog大小无效的问题,通过源码分析发现需要在Dialog.show()之后设置大小才有效。分析了对话框大小设置的流程,涉及窗口参数、布局设置等,揭示了为何在show之前设置无效的原因。
最低0.47元/天 解锁文章
716

被折叠的 条评论
为什么被折叠?



