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

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

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

奇怪的是,它在 lollipop 上运行良好,但在 kitkat 或任何前 Lollipop 设备上不起作用。我认为支持库适用于所有平台。

<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

最佳答案

尝试在您的 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_textmd_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 时它会改变颜色。

关于android - 如何使用 AppCompat v7 :21 在 android 中自定义 EditText 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28081900/

相关文章:

android - 如何在 com.android.support :leanback-v17 中实现多于 2 级导航

android - 菜单键在 AppCompat 中不起作用

android - 如何检测 SearchView 是否展开?

android-studio - Android Studio 上 AppCompatActivity 和 androidx.appcompat.app.AppCompatActivity 的某些导入出错

android - OnItemClickListener 不工作但 OnItemLongClickListener 正在处理 GridView

android - 无法使用 android MoPub sdk gradle 初始化 Fabric

java - Android WorkManager - 应用程序终止后无法正常工作

android - 我是否必须创建自己的服务器端才能使用谷歌云消息传递?

android - 在 Android 应用程序中使用信任代理

android - 在具有全屏 Activity 的 Android Lollipop 上设置导航栏颜色