我已经看到了这个问题:
改变动作条隐藏动画?
但它并没有说是否有可能完全禁用动画。
我已经看到了这个问题:
改变动作条隐藏动画?
但它并没有说是否有可能完全禁用动画。
现在你可以做到这一点,
getSupportActionBar().setShowHideAnimationEnabled(false);
我固定使用下面的方法:
public static void disableShowHideAnimation(ActionBar actionBar) {
try
{
actionBar.getClass().getDeclaredMethod("setShowHideAnimationEnabled", boolean.class).invoke(actionBar, false);
}
catch (Exception exception)
{
try {
Field mActionBarField = actionBar.getClass().getSuperclass().getDeclaredField("mActionBar");
mActionBarField.setAccessible(true);
Object icsActionBar = mActionBarField.get(actionBar);
Field mShowHideAnimationEnabledField = icsActionBar.getClass().getDeclaredField("mShowHideAnimationEnabled");
mShowHideAnimationEnabledField.setAccessible(true);
mShowHideAnimationEnabledField.set(icsActionBar,false);
Field mCurrentShowAnimField = icsActionBar.getClass().getDeclaredField("mCurrentShowAnim");
mCurrentShowAnimField.setAccessible(true);
mCurrentShowAnimField.set(icsActionBar,null);
}catch (Exception e){
//....
}
}
}
如果你使用ActionBarSherlock,那么你可以做到这一点。 见ActionBarImpl类,它已经setShowHideAnimationEnabled(布尔启用)方法。