1. invalidate() 和 postInvalicate() 區(qū)別庐橙?
- 二者都調(diào)用了invalidate()的代碼,但是 postInvalicate() 通過 handler切換到了 UI線程借嗽,也就意味著我們?nèi)绻朐谧泳€程中更新UI态鳖,可以調(diào)用 postInvalicate();
2. 實現(xiàn)贊賞用戶頭像排列效果恶导?
自己寫一個ViewGroup浆竭,往ViewGroup中添加CircleImageView,然后重寫 onLayout()方法去擺放惨寿,不要從后臺獲取到圖片url路徑后去drawBitmap邦泄,這樣子是不太好的,我們推崇的是在里邊只調(diào)用 onLayout()擺放缤沦,更多的操作放在外邊來做虎韵;
3. View的繪制流程是從Activity的哪個生命周期方法開始執(zhí)行的?
onResume()之后開始
4. 請簡述下邊三種實例化View的區(qū)別缸废,創(chuàng)建RecyclerView 的 item 下邊哪種方式最好包蓝,還是都可以?
第1企量、2最終都是執(zhí)行第3個方法测萎,所以只需要分析第3個方法就ok
第3個參數(shù)如果是true:表示把item-recycler布局文件添加到parent父布局容器中;
false表示:沒有把 item_recycler布局文件添加到 parent父布局容器中届巩;
但是如果第三個參數(shù)是false硅瞧,比如父布局容器是FrameLayout(fl),然后 調(diào)用 fl.addView(item_recycler)恕汇;效果就和 true一樣腕唧,都表示把 item_recycler添加到 父布局容器中