将主题更改为app compat后,textview颜色发生了变化

时间:2014-11-21 14:08:04

标签: android textview material-design

我正在尝试升级我的应用程序以支持前棒棒糖设备上的Material设计,为此我添加了android支持库v7并将我的应用程序样式从android:Theme.Holo.Light.DarkActionBar更改为Theme.AppCompat.NoActionBar。现在我的MainActivity扩展了ActionBarActivity支持库以及我已将操作栏更改为工具栏。

直到这里所有工作都很好,它会显示带动画的新抽屉切换图标,但在我的整个应用中,所有文字颜色都已从 Black 更改为 White 现在我不知道我必须改变的地方。我是否必须在每个布局中更改它?

我正在使用Android studio进行以下配置。

Build.gradle

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
}
dependencies {
    compile "com.android.support:appcompat-v7:21.0.+"

}

Style.xml

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">false</item>
</style>

Layout.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/TopLevelActivity">

    <LinearLayout
        android:id="@+id/layout"
        style="@style/Default"
        android:orientation="vertical">

        <TextView
            android:id="@+id/name_label"
            style="@style/SectionHeader.First"
            android:text="@string/name"/>

        <TextView
            android:id="@+id/name"
            style="@style/Text.SingleLine" />

        <TextView
            android:id="@+id/email_label"
            style="@style/SectionHeader"
            android:text="@string/email" />

        <TextView
            android:id="@+id/email"
            style="@style/Text.SingleLine" />

        <TextView
            android:id="@+id/app_version_label"
            style="@style/SectionHeader"
            android:text="@string/app_version" />

        <TextView
            android:id="@+id/app_version"
            style="@style/Text.SingleLine" />

        <TextView
            android:id="@+id/customer_support_label"
            style="@style/SectionHeader"
            android:visibility="gone"
            android:text="@string/customer_support" />

        <TextView
            android:id="@+id/customer_support_phone"
            style="@style/Text.SingleLine"
            android:visibility="gone"
            android:autoLink="all" />
        <TextView
            android:id="@+id/customer_support_email"
            style="@style/Text.SingleLine"
            android:visibility="gone"
            android:autoLink="all" />

        <Switch
            android:id="@+id/alarm_service_toggle"
            android:layout_marginTop="@dimen/small_padding"
            style="@style/Default" />

        <TextView
            style="@style/Text.SingleLine"
            android:textColor="@android:color/tertiary_text_light"
            android:text="@string/switch_location_sub_message" />

        <Button
            android:id="@+id/capture_logs"
            style="@style/Default"
            android:layout_marginTop="@dimen/medium_padding"
            android:text="@string/capture_logs" />

        <Button
            android:id="@+id/logout"
            style="@style/Default"
            android:layout_marginTop="@dimen/medium_padding"
            android:text="@string/logout" />
    </LinearLayout>
</ScrollView>

如果我需要任何其他意见,请告诉我。

2 个答案:

答案 0 :(得分:3)

使用Theme.AppCompat.Light.NoActionBar代替Theme.AppCompat.NoActionBar

答案 1 :(得分:1)

在主题中你必须定义文字颜色

OR

   SetTextColor(Color.colorname); 

在运行时来自java

OR

在xml android:textColor =“#color code”