問題背景
在做篩選需求是類似淘寶效果,由于我們的布局有些復(fù)雜導(dǎo)致drawerlayout展開時(shí)會(huì)出現(xiàn)卡頓問題
解決方案
基于上篇Activity跳轉(zhuǎn)動(dòng)畫跳轉(zhuǎn)時(shí)機(jī)分析,我們可以發(fā)現(xiàn)問什么activity跳轉(zhuǎn)的時(shí)候不管view多復(fù)雜,activity跳轉(zhuǎn)動(dòng)畫都沒有出現(xiàn)卡頓問題。主要是由于activity將view的計(jì)算流程完畢,在perdraw的時(shí)候執(zhí)行跳轉(zhuǎn)動(dòng)畫,其實(shí)對(duì)于drawerlayout的展開問題我們也可以這么做。
基于這個(gè)原理,偽代碼如下
/***
* 處理drawablelayout第一次卡頓問題
*/
mDrawerRight.addView(mCustomView);
mDrawerRight.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mDrawerRight.getViewTreeObserver().removeOnPreDrawListener(this);
openDrawer();
return false;
}
});