有没有办法禁用ActionBar的显示/隐藏动画?

时间:2013-02-27 15:04:17

标签: android android-actionbar

我见过这个问题:

Changing the ActionBar hide animation?

但它没有说明是否可以完全禁用动画。

3 个答案:

答案 0 :(得分:12)

你现在可以这样做,

        getSupportActionBar().setShowHideAnimationEnabled(false);

答案 1 :(得分:11)

我使用以下方法修复:

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){
            //....
        }
    }
}

答案 2 :(得分:4)

如果您使用ActionBarSherlock,那么您可以这样做。参见ActionBarImpl类,它有setShowHideAnimationEnabled(boolean enabled)方法。

相关问题