我正在尝试在我的一个 View 上打开的抽屉导航上运行动画,以下是我的代码:
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
System.out.println("Called");
ObjectAnimator animation = ObjectAnimator.ofInt(pw, "progress", 200);
animation.setDuration(1000);
animation.setInterpolator(new DecelerateInterpolator());
animation.start();
// mDrawerList.setLayoutAnimation(getMaximAnim());
invalidateOptionsMenu();
}
};
每当我打开抽屉时,控制台都会打印两次 Called
,这意味着动画会发生两次,并且会以这种方式抖动。我只想为 View 设置一次动画,我哪里出错了,有什么提示吗?
这是我的抽屉幻灯片代码:
public void onDrawerSlide(View drawerView, float slideOffset) {
if(slideOffset > .55 && !drawerOpen){
onDrawerOpened(drawerView);
drawerOpen = true;
} else if(slideOffset < .45 && drawerOpen) {
onDrawerClosed(drawerView);
drawerOpen = false;
}
}
我引用了here
最佳答案
你不需要
onDrawerOpened(drawerView);
在你的 onDrawerSlide 中。它是由 Android 本身调用的。至于更改标题,请看这个:
public void restoreActionBar(){
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
}
并将 mTitle
设置为您在代码的另一部分中喜欢的任何字符串。
关于java - 抽屉导航动画,drawerOpen被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27647075/