Как игнорировать тему устройства в приложении android?
На устройствах, где включена темная тема, цвета некоторых элементов отображаются неправильно. Например, в элементе EditText это выглядит так, когда включена светлая тема на устройстве (цвет прямой белый)
И так, когда включена темная (цвет прямой зеленый)
Почему результат отличается? Код моего layout:
<TextView
android:id="@+id/login_string"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Авторизация"
android:textSize="30sp"
android:textColor="@color/text_color"
app:layout_constraintVertical_bias="0.3"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<EditText
android:id="@+id/username_form"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="Имя пользователя"
android:inputType="textEmailAddress"
android:selectAllOnFocus="true"
android:theme="@style/editTextViewStyle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/login_string" />
<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="Пароль"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:selectAllOnFocus="true"
android:theme="@style/editTextViewStyle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username_form" />
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:enabled="false"
android:text="Войти"
android:background="@color/button_color"
android:textColor="@color/text_color"
android:padding="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password"/>
Код style editText:
<style name="editTextViewStyle">
<item name="colorControlNormal">@color/text_color</item>
<item name="colorControlActivated">@color/button_color</item>
<item name="colorControlHighlight">@color/text_color</item>
<item name="android:textColorHighlight">@color/button_color</item>
<item name="android:textColorHint">@color/text_color</item>
<item name="android:textColorPrimary">@color/text_color</item>
<item name="android:textColorLink">@color/text_color</item>
</style>
style темы
<style name="Theme.MyApp" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/lightBar_color</item>
<item name="colorPrimaryVariant">@color/darkBar_color</item>
<item name="colorOnPrimary">@color/text_color</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor"
tools:targetApi="l">@color/backrgound_color</item>
<!-- Customize your theme here. -->
</style>
Я пробовал использовать AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) в activity, но это не дало результатов.
Ответы (1 шт):
Автор решения: ЮрийСПб
→ Ссылка
Такое может появляться на ОС от 10 версии.
Отключить можно добавив в стиль вот это:
<item name="android:forceDarkAllowed">false</item>

