#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"