Как очистить анимацию добавления / удаления панели действий?

1

В моем приложении я использую контейнер, в котором я изменяю несколько фрагментов. В некоторых фрагментах я должен скрывать панель действий при родительской активности. Мне удалось это сделать, но процесс скрытия и просмотра панели инструментов поддерживается странной и неудобной анимацией. Я скрываю и показываю панель инструментов через:

Objects.requireNonNull(getSupportActionBar()).hide();

Может быть, я могу очистить анимацию?

Теги:
android-actionbar

1 ответ

1

Мне удалось найти решение моей проблемы с помощью этого метода:

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

ссылка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню