如何在AppCompat工具栏pre-Lollipop中正确地为EditText着色?

时间:2015-03-13 21:00:00

标签: android android-appcompat android-toolbar

我试图在工具栏中使用EditText。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <EditText
            android:id="@+id/search_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            tools:text="Test Text" />

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

</LinearLayout>

在棒棒糖上,EditText的文字颜色正如我所期望的那样,文字较浅。

Lollipop Version

在Lollipop之前,使用较暗的文本对文本进行着色。

Pre-Lollipop Version

如果不直接在EditText上对文本颜色进行硬编码(或使用样式来完成相同的操作),有没有办法在不同版本中获得一致的颜色? EditText在Lollipop之前正确地将其背景着色,而不是文本颜色。

1 个答案:

答案 0 :(得分:0)

在styles.xml中设置textColorPrimary属性

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
   ....

    <item name="android:textColorPrimary">@android:color/white</item>

</style>