【发布时间】:2015-10-13 18:13:13
【问题描述】:
我有一个应用程序,我在其中覆盖 onDrawerClosed 的 ActionBarDrawerToggle。我注意到在调用onDrawerClosed 方法之前总是存在不必要的延迟。这个问题很容易发现:当我覆盖onDrawerSlide 并输入一些日志记录时,我清楚地看到在调用onDrawerClosed 之前的50-100ms 之间的slideOffset 值是0.0。为什么会出现延迟?
mDrawerToggle = new ActionBarDrawerToggle([...]) {
public void onDrawerClosed(View view) {
Log.d(TAG, String.format("% 12d onDrawerClosed", Calendar.getInstance().getTimeInMillis()));
super.onDrawerClosed(view);
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
Log.d(TAG, String.format("% 12d onDrawerSlide %f", Calendar.getInstance().getTimeInMillis(), slideOffset)));
// THIS IS CALLED WITH slideOffset = 0.0f TOO LONG BEFORE onDrawerClosed
super.onDrawerSlide(drawerView, slideOffset);
}
};
【问题讨论】:
-
@MPG 谢谢,我之前看到了。它不能解决延迟问题,但可能有助于我们的用户体验缓慢的感觉。
标签: android