如何使用AppCompat v7:21在android中自定义EditText字段

时间:2015-01-22 05:35:29

标签: android android-5.0-lollipop android-appcompat material-design

我正在使用Appcompatv7 21并尝试自定义editText字段。

奇怪的是,它在棒棒糖上工作正常,但不适用于kitkat或任何棒棒糖前装置。我认为支持库可以在所有平台上运行。

<style name="mAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="colorControlNormal">@color/veryLightGrey</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>


compile 'com.android.support:appcompat-v7:21.0.3'

enter image description here

物理设备的屏幕截图。 Screenshot

2 个答案:

答案 0 :(得分:10)

尝试在EditText

中添加下一个代码
style="@style/Widget.AppCompat.EditText"

检入真实设备。

在我的EditText作品中,这是我的EditText:

<EditText
    android:id="@+id/editTextFacebookID"
    style="@style/Widget.AppCompat.EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="64dp"
    android:layout_marginRight="8dp"
    android:gravity="center_vertical"
    android:hint="Facebook ID"
    android:textColor="@color/md_text"                
    android:textColorHint="@color/md_disabled_hint_text" />

您可以在此处查看 md_text md_disabled_hint_text颜色Google Colors

这是我的应用程序的v19风格:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/md_red_500</item>
    <item name="colorPrimaryDark">@color/md_red_700</item>
    <item name="colorAccent">@color/md_blue_A200</item>
    <item name="colorControlHighlight">@color/md_black_1000_25</item>
    <item name="colorControlNormal">@color/md_black_1000_50</item>
    <item name="colorSwitchThumbNormal">@color/md_grey_200</item>
    <item name="android:colorForeground">@color/md_black_1000_75</item>
    <item name="android:windowTranslucentNavigation">@bool/translucentNavigationBar</item>
    <item name="android:windowTranslucentStatus">@bool/translucentStatusBar</item>

    <!-- Navigation Drawer Arrow Style. -->
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <!-- Overflow Button Style. -->
    <item name="actionOverflowButtonStyle">@style/OverflowStyle</item>
</style>

我的EditText在未聚焦时呈灰色,蓝色聚焦,它采用colorAccent的颜色。

当我更改AppTheme时,它会改变颜色。

答案 1 :(得分:2)

更好的是,只需将其从EditText更改为AppCompatEditText,就可以了。受益于您已使用的AppCompat

src:http://android-developers.blogspot.ae/2014/10/appcompat-v21-material-design-for-pre.html