Проблема с анимацией темы диалога

#android #android-alertdialog #android-theme #android-styles #android-dialog

#Android #android-alertdialog #android-тема #android-стили #android-dialog

Вопрос:

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

 final AlertDialog.Builder builder = new AlertDialog.Builder(
            /*getContext()*/
            new android.support.v7.view.ContextThemeWrapper(getContext(), R.style.StyleDialog));

    View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_email, null);
    builder.setView(view);
    builder.setCancelable(false);
    alert = builder.create();
    alert.show();
  

Это стили

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

    <style name="DialogAnimation">
        <item name="android:windowEnterAnimation">@anim/fadein</item>
        <item name="android:windowExitAnimation">@anim/fadeout</item>
    </style>
  

пробовал оба android.support.v7.view.ContextThemeWrapper и android.view.ContextThemeWrapper , но без разницы.

Использование android.app.AlertDialog класса.

Ответ №1:

Я нашел решение. Просто установите фон (в моем случае белый) для макета, который я не указал. Потому что, когда мы устанавливаем наш собственный стиль, по умолчанию используется черный фон, а если не установить стиль, то по умолчанию используется белый фон.

 android:background="@color/bg_white"
  

Для правильной ширины установите ширину первого вида на match_parent.

android:layout_width="match_parent"