Дети ConstraintLayout не наследуют родительскую тему - PullRequest
1 голос
/ 01 июля 2019

Я занимаюсь разработкой приложения, в котором можно будет переключаться между ночным и дневным режимами.Чтобы сделать это, я хочу установить тему для ConstraintLayout, чтобы ее дети наследовали эту тему, но они не ...

Я имею в виду, в частности, цвет TextView, даже если я установил тему ConstraintLayout, где атрибут textColor имеет значениесвет, TextView остается темным.

Кто-нибудь знает, что происходит?Или я что-то не так делаю?

Тема описана в styles.xml, я пробовал установить два других атрибута - textAppearance и textViewStyle, но ни один из них не работает.Я также попытался установить это в styles-v21, это не сработало.Но когда я устанавливаю эту тему прямо в TextView, она работает.Но я не хочу тратить так много времени на изменение всех TextView вручную, а также не хочу тратить процессорное время на вызов findViewById для всех представлений ...

Это родительские атрибуты ConstraintLayout:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_constraint_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/drawerColorDark"
    android:gravity="bottom"
    android:theme="@style/AppThemeDark.Drawer">

Один из TextViews:

<TextView
            android:id="@+id/drawer_all_articles_text"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:layout_marginStart="24dp"
            android:layout_marginLeft="24dp"
            android:gravity="center"
            android:text="All Articles"
            android:textSize="18sp"
            app:layout_constraintStart_toEndOf="@+id/drawer_all_articles_icon"
            app:layout_constraintTop_toTopOf="parent" />

И код стилей (не так уж много причин по-прежнему пытаться двигаться вперед с наследованием в этом примере ...):

 <style name="AppThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="AppThemeDark.Drawer" parent="AppThemeDark">
        <item name="android:textColor">@color/drawerTextDark</item>
        <item name="android:textAppearance">@color/drawerTextDark</item>
        <item name="android:textViewStyle">@color/drawerTextDark</item>
    </style>

    <style name="AppThemeDark.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

МногиеЗаранее спасибо,

...