我正在开发一个可以在夜间和白天模式之间切换的应用程序。为此,我想为ConstraintLayout设置主题,以便它的孩子将继承此主题,但是他们不会...
我的意思是特别是TextView颜色,即使我在ConsColortLayout主题设置了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>
非常感谢,