web-dev-qa-db-fra.com

Modifier l'épaisseur de la ligne inférieure de EditText lorsqu'il est encapsulé dans TextInputLayout

voici mon code

Balisage XML

<Android.support.design.widget.TextInputLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:theme="@style/TextLabel">

    <EditText
        Android:id="@+id/etContactName"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="Contact Name"/>

</Android.support.design.widget.TextInputLayout>

Style

<style name="TextLabel" parent="TextAppearance.AppCompat">
    <item name="Android:textColorHint">@color/hintColor</item>
    <item name="colorAccent">@color/primaryColor</item>
    <item name="colorControlNormal">@color/hintColor</item>
    <item name="colorControlActivated">@color/primaryColor</item>
</style>

Voici la sortie
(vue normale)
Normal View

(vue focalisée)

Focused View

Maintenant, mes problèmes/problèmes

  1. Je veux que le résultat net soit plus fin. où dois-je le changer.
  2. Le curseur clignotant ne s'affiche pas, comment l'afficher.
  3. EditText met automatiquement en évidence les fautes d'orthographe. Je dois l'arrêter.

Quelqu'un peut-il me montrer la bonne façon de résoudre les problèmes? Commentez, vous avez besoin de plus d'informations pour y répondre.

Merci d'avance.

24
Krishanu Dey

J'ai résolu mon problème en utilisant mon dessin XML personnalisé. Il pourrait y avoir un meilleur moyen, mais je n'en ai pas trouvé. Voici mon dessin que j'utilise comme arrière-plan de ma zone de texte

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_pressed="true">
        <layer-list >
            <item
                Android:bottom="1dp"
                Android:left="-2dp"
                Android:right="-2dp"
                Android:top="-2dp">
                <shape Android:shape="rectangle" >
                    <stroke
                        Android:width="0.5dp"
                        Android:color="@color/primaryColor" />

                    <solid Android:color="#00FFFFFF" />

                    <padding Android:left="3dp"
                        Android:right="3dp"
                        Android:top="3dp"
                        Android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>
    <item Android:state_focused="true">
        <layer-list >
            <item
                Android:bottom="1dp"
                Android:left="-2dp"
                Android:right="-2dp"
                Android:top="-2dp">
                <shape Android:shape="rectangle" >
                    <stroke
                        Android:width="0.5dp"
                        Android:color="@color/primaryColor" />

                    <solid Android:color="#00FFFFFF" />

                    <padding Android:left="3dp"
                        Android:right="3dp"
                        Android:top="3dp"
                        Android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>
    <item>
        <layer-list >
            <item
                Android:bottom="1dp"
                Android:left="-2dp"
                Android:right="-2dp"
                Android:top="-2dp">
                <shape Android:shape="rectangle" >
                    <stroke
                        Android:width="0.5dp"
                        Android:color="#BCBCBC" />

                    <solid Android:color="#00FFFFFF" />

                    <padding Android:left="3dp"
                        Android:right="3dp"
                        Android:top="3dp"
                        Android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>

</selector>
42
Krishanu Dey

Couleur de fond Edittext

Android:backgroundTint="@color/yourcolor"

Pour désactiver le correcteur orthographique, ajoutez du code dans votre xml Edittext

Android:inputType="textNoSuggestions"

Créez un fichier XML avec le nom "EditTextStyle.xml" dans le dossier dessinable de votre projet et écrivez le code suivant:

<?xml version="1.0" encoding="utf-8" ?>

   <shape xmlns:Android="http://schemas.Android.com/apk/r..."
   Android:thickness="0dp"
   Android:shape="rectangle">
  <stroke Android:width="3dp"
     Android:color="#4799E8"/>
  <corners Android:radius="5dp" />
  <gradient
  Android:startColor="#C8C8C8"
  Android:endColor="#FFFFFF"
  Android:type="linear"
  Android:angle="270"/>
  </shape>

Ajoutez maintenant l'attribut suivant à votre EditText:

       <EditText    

        Android:background="@drawable/EditTextStyle"/>
1
sasikumar