web-dev-qa-db-fra.com

Comment personnaliser le champ EditText dans Android en utilisant AppCompat v7: 21

J'utilise Appcompatv7 21 et j'essaie de personnaliser le champ editText.

Ce qui est étrange, c'est que cela fonctionne bien sur Lollipop mais ne fonctionne pas sur KitKat ou sur les appareils pré-Lollipop. Je pensais que les bibliothèques de support fonctionnaient sur toutes les plateformes.

<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

Capture d'écran de l'appareil physique. Screenshot

12
iitum studant

Essayez d'ajouter le code suivant dans votre EditText

style="@style/Widget.AppCompat.EditText"

Vérifiez l'appareil réel.

Dans mes EditText travaux, voici mon 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" />

Vous pouvez vérifier md_text et md_disabled_hint_text couleurs ici: Google Couleurs

Et ceci est un style v19 de mon application:

<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>

Mon EditText est gris lorsqu'il est flou et bleu, il prend la couleur de colorAccent.

Il change de couleur lorsque je change d'AppTheme.

10

Encore mieux, changez-le simplement de EditText à AppCompatEditText et vous êtes bon. Bénéficiez du AppCompat que vous utilisez déjà.

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

2
Samer