Android 在 Lollipop 和更高版本上自定义 EditText

Android Customize EditText on Lollipop and Upper Version

在 Android 5.0 及更高版本中,EditText 在其背景、光标上具有来自 AppTheme 的 colorAccent 色调。但我不想通过自定义应用此 colorAccent。例如,我声明了我的主题样式,如下所示。

<style name="AppTheme" parent="Theme.AppCompat.Light">    
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="android:textColorPrimary">@color/text_color_primary</item>
    <item name="android:textColorPrimaryInverse">@color/text_color_primary_inverse</item>
    <item name="colorAccent">@color/color_accent</item>
</style>

我想要的只是 colorAccent 不适用于 EditText。有什么办法吗?

我也遇到了同样的问题,我的做法如下,

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:singleLine="true"/>

你为什么不定义一个新样式

<style name="AppTheme2" parent="Theme.AppCompat.Light">    
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="android:textColorPrimary">@color/text_color_primary</item>
    <item name="android:textColorPrimaryInverse">@color/text_color_primary_inverse</item>
</style>

然后做:

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme2"/>