Похоже, что windowAnimationStyle игнорируется, как анимировать пользовательский диалог?

#android #animation

#Android #Анимация

Вопрос:

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

Диалог является базовым, RelativeLayout установленным в качестве макета в классе, который extends Dialog .

Как было предложено в некоторых ответах здесь, я попытался настроить windowAnimations для него следующим образом

 final myCustomDialog dialog = new myCustomDialog(this); 
dialog.getWindow().getAttributes().windowAnimations = R.style.CustomDialogTheme;
  

РЕДАКТИРОВАТЬ: настройка темы в конструкторе, похоже, работает, но анимации по-прежнему не работают

 final myCustomDialog dialog = new myCustomDialog(this, R.style.CustomDialogTheme); 
  

Стиль CustomDialogTheme, являющийся

 <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item>
</style>

<style name="PauseDialogAnimation">
    <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
    <item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>
  

Это просто не работает, не имеет никакого эффекта. Я попытался установить то же самое в android:windowAnimationStyle теме проекта, и это сработало для действия.

Что я делаю не так и как мне анимировать пользовательский диалог, если это больше не работает.

Тестирование на Android 4.4.4 Paranoid Android со всеми анимациями, установленными на 1x, и Genymotion simulator для Nexus 5.

Ответ №1:

Попробуйте инициализировать свой диалог, передав стиль конструктору следующим образом:

 final myCustomDialog dialog = new myCustomDialog(this, R.style.CustomDialogTheme);
  

Комментарии:

1. похоже, это повлияло на внешний вид, но не сработало для анимации.

2. неважно, забыл удалить атрибуты настройки строки, и теперь это работает. 🙂

3. Lol это происходит: P Пожалуйста, отметьте ответ как правильный