我正在尝试在我的一个视图上打开导航抽屉上运行动画,以下是我的代码:
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
两次,这意味着动画会发生两次,并且会以这种方式抖动。我想只为一次视图制作动画,我哪里出错了,有什么提示?
这是我的抽屉滑动代码:
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
答案 0 :(得分:1)
您不需要
onDrawerOpened(drawerView);
你的onDrawerSlide中的。它由Android本身调用。至于更改标题,请看:
public void restoreActionBar(){
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle(mTitle);
}
并在另一部分代码中将mTitle
设置为您喜欢的任何字符串。