TextView 颜色不受 xml 属性 android:textColor 的影响



这是一个奇怪的问题,仍然找不到原因? 设置自定义工具栏,如下所示,

<android.support.v7.widget.Toolbar
....>
<include android:id="@+id/custom_toolbar" layout="@layout/custom_toolbar"/>
</android.support.v7.widget.Toolbar>

和自定义工具栏中的文本视图

<TextView
.....
android:text="@string/search_by_title_or_artist"
android:textColor="@color/text_shadow_white"
.... />

和主题样式

<style name="AppTheme" parent="BaseTheme">
.....
<item name="android:textColorPrimary">@color/material_gray_900</item>
.....
</style>

final是基本主题

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowContentTransitions">true</item>
</style>

问题是自定义工具栏中的文本颜色不会被android:textColor属性覆盖,无论设置任何颜色。 它仅受主题样式android:textColorPrimary的影响。 但是不在自定义工具栏中的其他文本(如列表中)将被android:textColor覆盖。

请告诉我这有什么问题以及如何解决。

首先像这样自定义您的style.xml:-

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

然后应用到您的自定义toolbar:-

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" >
<TextView
.....
android:text="@string/search_by_title_or_artist"
android:textColor="@color/text_shadow_white"
.... 
/>

</android.support.v7.widget.Toolbar>

试试这个可能会对你有所帮助。

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/bg_transition"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

试试这个

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content">

<TextView android:layout_width="wrap_content"
android:text="Search..."
android:textColor="@color/colorPrimary"
android:layout_height="wrap_content"/>

</android.support.v7.widget.Toolbar>

最新更新