Я создаю и показываю стандартный простой AlertDialog при нажатии кнопки в навигационном ящике с контекстом Activity, по неизвестной причине он показывает полноэкранный режим, но мне нужен стандартный диалог в центре.
Вот мой код (тот же код работает, как и ожидалось, в других действиях моего приложения):
new AlertDialog.Builder(mainActivity)
.setTitle(mainActivity.getString(R.string.attention))
.setPositiveButton(mainActivity.getString(R.string.exit), (dialog, which) -> {
dialog.dismiss();
mainActivity.finish();
})
.setNegativeButton(mainActivity.getString(R.string.cancel), (dialog, which) -> {
dialog.dismiss();
})
.setMessage(mainActivity.getString(R.string.warnLogout))
.create()
.show();
нет, полноэкранной темы нет
Вы применили какой-то стиль в своей теме? Можешь показать свой styles?
Да, но тот же код хорошо работает в другом действии с тем же стилем
Передача неправильного контекста может создать проблемы. Вы уверены, что проходите текущую?
Да, я перепроверил контекст.




Пожалуйста, попробуйте этот код для диалогового окна предупреждения.
new AlertDialog.Builder(this)
.setTitle("Alert")
.setMessage("Hello This is Alert Dialog.")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
}).show();
это ничего не меняет
Это простая логика, она должна работать, попробуйте в другой деятельности.
Как я уже сказал, Faldu, он работает так, как ожидалось, в других видах деятельности.
Проблема была в неправильном импорте: недавно я перенес проект на AndroidX, и когда я писал логику AlertDialog, по ошибке выбрал устаревший импорт. Похоже, что ошибок и предупреждений не показывалось, а кнопки работали, как и ожидалось, но в моем случае это отображалось как неправильное диалоговое окно полноэкранного макета:
НЕПРАВИЛЬНО:
import android.app.AlertDialog;
ПРАВИЛЬНО:
import androidx.appcompat.app.AlertDialog;
Макет диалога зависит от темы, которую вы выбрали для приложения, возможно, вы выбрали полноэкранную тему.