Как игнорировать тему устройства в приложении 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>
→ Ссылка