你是否看源码时,无从下手!
是否看源码时,每个方法,每个变量都在观看!
是否很烦,是否很想放弃这行行代码的初衷!
是否迷惘...
这些在我写这篇博客之前都遇到过,虽然从业几年,但是学习态度还是不够诚恳.今天在同事的帮助下,我觉得彻底的解决我心中的一个结.学会高效的查看源码.感谢同事,同事也把自己的从中悟到的一点思路分享出来.给有需要的友友做一个借鉴.
正题开始
解决看源码疼点:
1.用条件来看
2.根据条件来解决
3.结合自身所学,来区别对待,思想灵活.
在一次开发中用到了qmui开源的导致的一次事件翻车,缘于自己不仔细审查自己这位C位工程师的代码导致.效果如图:
这是一个可以折叠的列表用了qmui的QMUIStickySectionLayout 控件,可以看到多了一个scrollBar,很碍事,要想办法把他关了,我觉得很简单啊,so eary.
然后我
结果:没有一个解决我的方案.
后来自己瞎看了半天源码没有找到问题所在,开始了请教同事了
1.找条件
条件1:滑动条的出现,证明这是一个可滑动的控件.
条件2:在内容没有超过屏幕之前滑动条是不会出现的,内容超过才会出现
条件3:滑动条
2.根据条件找问题
1.先点开QMUI的控件 QMUIStickySectionLayout 看源码,看滑动控件在哪里
发现目标,RecycleVIew
2.根据条件2, 发现里面没有布局文件,那么recycle就是自己绘制的,那就看看绘制超过屏幕外的条件.(如果有布局文件就可以通过布局文件来排查下)
看到这么一个接口,注意一个单词 Over,有一种意思是 超过 ,连在一起就是 绘制超过的意思,英语不好的我瞬间
接着跟着条件继续走,点击箭头这里,这里的意思是 接口在哪些地方被实现了的.
这里刚好只有一个地方实现,如果多的话还得继续总结条件慢慢排查.
看着这两个字,真相越来越近了
查看这个方法,找到我们的条件3
这里是一个Drawable文件,有个图片的引用
现在开始狙击他的位置
在当前类中,点击狙击(记住项目类型要是Project )
看看他是何方神圣
成功定位.
条件都用完了,现在开始解决问题.
回来实现接口onDawOver的地方
可以知道刚好是使用的控件调用了它.
那么我们直接点,看看这个类 在那些地方被调用了
额!
我自己调用的.
完全属于自己不仔细导致的.虽然学到了很多,但是自己的粗心大意,还是得上心一点.希望下次不要犯这种问题了,不然