web-dev-qa-db-fra.com

Mise en oeuvre Champ de texte souligné Saisie de texte d'étiquette dans une application Android

Je souhaite implémenter ce type de présentation de texte d'entrée avec une variable flottante, mais le problème est que lorsque je lance l'application, son apparence n'est pas identique et que lable apparaît en haut du champ de texte de saisie.

 enter image description here

Mais c'est mon résultat

 enter image description here

Mon code est:

roundview.xml.

  <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
        <item>
            <shape Android:shape="rectangle">
                <solid Android:color="#ffffff"/>
                <corners Android:radius="10dp" />

                <stroke
                    Android:width="2dp"
                    Android:color="#3bbdfa"
                    />
            </shape>
        </item>
    </selector>

<Android.support.design.widget.TextInputLayout
    Android:id="@+id/text"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    app:errorEnabled="true">

    <Android.support.design.widget.TextInputEditText
        Android:id="@+id/edittxt"
        Android:layout_width="match_parent"
        Android:layout_height="130dp"
        Android:background="@drawable/roundview"
        Android:fadeScrollbars="false"
        Android:fadingEdge="vertical"
        Android:foregroundGravity="fill_vertical"
        Android:hint="name"
        Android:isScrollContainer="false"
        Android:requiresFadingEdge="vertical"
        Android:singleLine="false"
        Android:visibility="visible" />

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

Je suis https://material.io/design pour la conception des champs de texte, mais j'ai ce problème.merci

3

Cela peut être fait en appliquant le style Widget.MaterialComponents.TextInputLayout.OutlinedBox sur un TextInputLayout.

<Android.support.design.widget.TextInputLayout
        Android:id="@+id/name_text_input"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        app:errorEnabled="true">
        <Android.support.design.widget.TextInputEditText
            Android:id="@+id/name_edit_text"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="Name" />
    </Android.support.design.widget.TextInputLayout>

Vous pouvez vérifier cette réponse qui a également un lien vers un exemple.

3
ashwin mahajan

Cela ne peut pas être réalisé avec Android.support.design.widget.TextInputLayout. Vous devrez créer une classe personnalisée qui puisse tracer ce type de bordure autour du texte de montage en gardant à l'esprit le texte de conseil, vous pouvez utiliser un png comme arrière-plan si votre texte de conseil est constant. 

0
Suhaib Roomy

Boîte à contour

Les champs de texte avec contour ont une bordure en trait et sont moins accentués. Pour utiliser un champ de texte de contour, appliquez le style suivant à votre TextInputLayout:

style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"

Référence: TextInputLayout

0
Napster