Window
layout: post title: “2019-05-06-Window” date: 2019-05-06 12:11:30 +0800
-
Activity 对应的contentView 会以DecorView为背景进行绘制
-
DecorView 能设置透明度吗?
-
android 状态栏是不是在window中?
-
WindowManager 和 WindowManagerService的数据传输格式
-
View 传递的数据 是固定的吗?
-
surface 依附于 ViewRootImpl
-
WindowManager
-
fork之后如何加载app代码
-
同一个Activity上面的Canvas 是同一个吗?
-
同一个View多次绘制是同一个Canvas吗?
-
onDraw和onLayout执行在主线程.
-
canvas如何分发,开始会话区域如何偏移.
-
每一个view 都有一个displayList,如何管理交互
-
RecycleView显示的内容
dispatchDraw:使用ViewGroup的默认
view缓存系统,view的绘制调用,cache的应用.
- ViewGroup.dispatchDraw
canvas对象传递,使子View内容重绘(重绘范围,缓存管理)
-
RenderNode每一个view有一个.(有一个long类型ID,其余都是native方法)
-
childview
如何添加? 通过addView的方式能让ViewGroup识别,走到onLayout方法中,但是由于没有 ViewHolder而会中间出错. 正确的添加方式 既包含View本身,还要有ViewHold来保存状态
childView的数量和显示的View数量相同.
-
private void addViewInt(View child, int index, boolean disappearing) { 将view转换为展示状态,layout会将其考虑进来,进入childView列表
-
跟Trace有关
TraceCompat.beginSection(TRACE_CREATE_VIEW_TAG);
- 为什么初始化的时候能看到7个Item,但是只create 4个; 如果在bindView的时候 添加一个log,就变成了7个了!!!
在有些手机上如果出现相同的log反复打印,会隐藏一部分;真实的item是7个.
E/xie: onCreateViewHolder:…0 E/xie: onCreateViewHolder:…0 E/xie: onCreateViewHolder:…0 E/xie: onCreateViewHolder:…0 E/xie: __7 E/xie: __7
-
CreateViewHolder的执行次数和什么有关.修改了一下总共执行11次.
-
onMeasure和View create的执行顺序. RecyclerView 的onMeasure中create itemView.
-
LayoutAnimationController dispatchDraw执行了什么动画
参考文档: https://blog.csdn.net/jinzhuojun/article/details/54234354
https://android.jlelse.eu/anatomy-of-recyclerview-part-1-a-search-for-a-viewholder-404ba3453714?gi=832dc3bb04f8