- 博客(15)
- 收藏
- 关注
原创 ListView源码解析(观察者和模板模式、回收池、第一屏的显示和刷新以及滑动显示新页)
本文详细解析ListView源码的“观察者和模板模式、回收池、第一屏的显示和刷新以及滑动显示新页”
2023-03-06 17:43:25
270
原创 详解Retrofit源码在请求时使用动态代理模式、工厂模式、静态代理模式、外观模式和对请求结果进行线程切换
本文详解Retrofit源码在请求时使用的动态代理模式、工厂模式、静态代理模式、外观模式和对请求结果进行线程切换。
2023-02-20 22:36:27
555
1
原创 揭晓HashMap里什么情况下用数组或单向链表或红黑树来存储数据
HashMap的put中想要存入一个元素,会首先根据该元素的hash值找到它应该在数组中存入的位置,如果该位置没有元素,就存入数组中;如果有数据,那么以该位置为头结点的单向链表的长度如果小于7,则存入该单项链表中,否则将该单项链表转为红黑树存入该元素。
2022-09-27 22:58:00
541
原创 scroller.startScroll(int startX, int startY, int dx, int dy, int duration)的入参注意点
scroller.startScroll(int startX, int startY, int dx, int dy, int duration)注意:dx dy 指的是水平和竖直方向距离目的地需要移动的距离,而不是目的地的坐标!!!如下:CustomLayout里面有五个子控件,每个子控件的宽度是measuredWidthChild,现在要求每次手指滑动提起来以后沿手指滑动的水平方向滚...
2019-04-17 23:10:13
430
原创 我对onSizeChange方法的源码解析
如果当前的自定义控件是继承ViewGroup,那么在ViewGroup重写的layout方法中:可知调用父类也就是View的layout方法。再看View的layout方法:查看设置自己坐标的setFrame方法:而onSizeChange是唯一在sizeChange里调用的:很明显调用了onSizeChange方法。从而也得出了执行顺序 layout()----》onSizeC...
2019-04-16 23:31:46
925
原创 自定义的布局的布局属性的获取和子控件的属性的获取
就拿LinearLayout来说,布局文件里LinearLayout标签里的“android:orientation=“的值应该在LinearLayout的构造函数中获取:而LinearLayout的子控件的layout_weight等的属性是在LinearLayout的内部属性类public static class LayoutParams extends ViewGroup.Margin...
2019-04-16 23:20:11
865
原创 ObjectAnimator 属性动画的参数0的注意
ObjectAnimator 属性动画的参数0的注意注意:属性动画的原点(0,0)是指要执行动画的控件在还没有执行动画之前的位置,而不是屏幕或者父布局的的左上角的坐标!!!!而诸如ObjectAnimator.ofFloat方法里传入的数值除了0以外都是指相对于原点(0,0)的距离,而不是手指触控的距离如下:iv_fireworks要执行动画,从初始位置向手指触控点垂直移动,终点是手指触控点,...
2019-03-04 21:17:02
480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人