this.post(new Runnable() {
public void run() {
SlidingMenu.this.smoothScrollTo(mMenu.getLayoutParams().width, 0);
}
});
在這一句的外面套一個(gè)this.post(runnable),在runnable中實(shí)現(xiàn),就可以了,
smoothScrollTo方法要等到界面顯示完畢才能有效,而view.post方法也是在界面刷新完畢之后才執(zhí)行的。 如果直接執(zhí)行smoothScrollTo,在源碼中smoothScrollTo又會(huì)去調(diào)用smoothScrollBy,smoothScrollBy方法中有一句if(!mScroller.isFinished())mScroller.abortAnimation();,這句話什么意思呢,mScroller.isFinished()驗(yàn)證的是拖動(dòng)有沒有完成,如果完成了,返回false,這里加了一個(gè)!號(hào),就是表示拖動(dòng)未完成,如果在view.post方法中執(zhí)行的smoothScrollTo,!mScroller.isFinished()的結(jié)果為false,也就是mScroller.isFinished()為true,true表示拖動(dòng)的動(dòng)作還沒有執(zhí)行完成,就不會(huì)執(zhí)行mScroller.abortAnimation();來(lái)丟掉動(dòng)畫了,以上是我個(gè)人對(duì)以上的理解,里面還有很多很迷茫的地方,希望有大牛為我解答,或者我說的有誤,請(qǐng)為我指出,共同進(jìn)步,謝謝