Темные значки в строке состояния при открытом диалоге
У меня есть активность с этим стилем:
<style name="CustomStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimaryDark">@color/statusbar_bg_color</item>
<item name="android:windowBackground">@color/app_background</item>
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
</style>
Он показывает темные значки в строке состояния, но когда я показываю диалог, значки меняют цвет на светлый.
Стиль моего диалога:
<style name="CustomStyleDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/round_corner_dialog</item>
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
</style>
Что мне нужно изменить, чтобы значки всегда были темными?
Это мой манифест
<activity
android:name=".activities.FirstActivity"
android:screenOrientation="portrait"
android:theme="@style/CustomStyle" />
<activity
android:name=".dialogs.FirstDialog"
android:screenOrientation="portrait"
android:theme="@style/CustomStyleDialog" />
Построитель диалогов (CustomDatepicker - это класс, расширяющий DatePickerDialog)
DatePicker
private void showDatePickerDialog(Date starDate, int titleResId) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(starDate);
CustomDatePicker datePickerDialog = new CustomDatePicker(this, this, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.setTitle(titleResId);
datePickerDialog.show();
}
бдительный
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.delete_title)
.setMessage(getResources().getString(R.string.delete_confirmation))
.show();
1 ответ
Я думаю, что вам нужны только темные значки, используйте приведенный ниже пример кода
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert_dark)
.setTitle(R.string.confirm_title)
.setMessage(R.string.confirm_text)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
замени это android.R.drawable.ic_dialog_alert_dark
с темным значком, который вы хотите
Эта проблема возникала у меня, в частности, на устройствах Android 10.
Один из способов переопределить это - сделать родительскую тему диалога ThemeOverlay.AppCompat.Dark
Примечание. Это сделает текст и фон диалогового окна темными, если вы используете цвет по умолчанию. может захотеть переопределить их самостоятельно.