this.post(new Runnable() {
public void run() {
SlidingMenu.this.smoothScrollTo(mMenu.getLayoutParams().width, 0);
}
});
在这一句的外面套一个this.post(runnable),在runnable中实现,就可以了,
smoothScrollTo方法要等到界面显示完毕才能有效,而view.post方法也是在界面刷新完毕之后才执行的。 如果直接执行smoothScrollTo,在源码中smoothScrollTo又会去调用smoothScrollBy,smoothScrollBy方法中有一句if(!mScroller.isFinished())mScroller.abortAnimation();,这句话什么意思呢,mScroller.isFinished()验证的是拖动有没有完成,如果完成了,返回false,这里加了一个!号,就是表示拖动未完成,如果在view.post方法中执行的smoothScrollTo,!mScroller.isFinished()的结果为false,也就是mScroller.isFinished()为true,true表示拖动的动作还没有执行完成,就不会执行mScroller.abortAnimation();来丢掉动画了,以上是我个人对以上的理解,里面还有很多很迷茫的地方,希望有大牛为我解答,或者我说的有误,请为我指出,共同进步,谢谢