Я хочу, чтобы окно AlertDialog для моего приложения выглядело так же, как на Android> 6.0.0 (как показано на следующих скриншотах) для всех более низких версий Android до 4.4.4.Я применил собственный стиль для диалогового окна.
Ниже приведен стиль в файле styles.xml для AlertDialog:
<style
name="AlertDialogCustom" parent="ThemeOverlay.AppCompat.Dialog.Alert">
<item name="android:textColor">@color/blue</item>
<item name="android:textColorSecondary">@color/white</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:background">@color/dark_grey</item>
<item name="android:backgroundDimAmount">0.3</item>
</style>
Ниже описано, как я применил стиль в Java:
new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.AlertDialogCustom))
.setMessage("Why is DialogBox Style Inconsistent through different android versions?")
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//Do Something
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
//Do Something
}
})
.show();
Как обойти меняудалось хотя бы изменить цвет текста на белый на темном фоне, используя:
if (android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1)
style = android.R.style.Theme_Material_Dialog;
else
style = R.style.AlertDialogCustom;
До сих пор я пытался создать отдельный стиль для более низкой версии Android и применить их через Java с помощьюобнаружение версии Android.Но я не могу воспроизвести стиль окна AlertDialog на Android 6+ на более низких версиях Android до 4.4.4.И я не могу найти решение в интернете.
Хотя есть аномалия;если я применяю свой собственный стиль для Оценить это приложение, предоставляемое kobakei , то результирующее диалоговое окно RateThisApp выглядит одинаково на всех версиях Android.Поэтому я считаю, что стиль AlertDialog определенным образом должен решить эту проблему.
Это то, что я хочу - сделать так, чтобы окно AlertDialog на Android 4.4.4 и 5.1.0 выглядело какAndroid 6.0.0 и выше с использованием подходящих стилей.И почему атрибуты textColor и textColorPrimary не применяются в более низких версиях Android?
Если ресурс, указанный в моем вопросе, недостаточен, пожалуйста, сообщите мне в комментарии, я поделюсь более подробной информацией.
Вот скриншоты окна AlertDialog на разных версиях Android с одинаковым стилем.