看代码一定要细心。
上午看了很长时间研究源码,后来发现其实走了很大弯路,浪费了不少时间,特此记录下来,警示一下。
错误1:代码只是用到了Dialog的对象来创建对话框,而我却去看AlertDialog类的源码<最大的错误>。完全搞不懂状况,就去做事情。
错误2:即使去看了AlertDialog的源码,也应该发现其构造函数全为protected。一点没反应过来,完全不能在外部使用构造函数创建对象,还在分析构造函数。<重大错误>。
因为这两个错误,导致一个上午都在纠结Alertdialog的构造函数是怎样执行的,却忘了这两个问题从一开始就是错的。
最后说一点,创建Dialog或者AlertDialog如果不先指定Theme,创建时系统会使用默认theme,默认theme是非全屏的,(确切的说是这个默认theme使用了一种.9.png背景图片,这个背景图片会有一个边缘空白,导致非全屏,所以想全屏需要重写这个背景属性)而theme是窗体主题,布局是位于窗体主题上的,即我的理解是Theme是优先于Layout的,所以无论怎样设置layout都会导致Dialog总是占不满屏幕。
本文通过分享作者在研究源码过程中遇到的两个典型错误,旨在提醒开发者在面对复杂代码时需保持谨慎和细致。错误之一是将研究重点放在了不必要的类上,而忽略了实际需求;错误之二是对类的构造函数理解不准确,导致混淆和无效操作。文章进一步解释了正确的方法和思考路径,以避免此类误解。
228

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



