web-dev-qa-db-fra.com

Supprimer le soulignement de TextInputEditText

J'ai un écran Android qui prend les courriels de l'utilisateur. Ci-dessous, l'extrait de code, je veux supprimer le soulignement qui apparaît sous le texte.

<com.google.Android.material.textfield.TextInputLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_margin="8dp"
    Android:hint="@string/email"
    Android:textColorHint="@color/blueBackground"
    app:boxBackgroundColor="@color/input_background"
    app:boxCornerRadiusBottomEnd="20dp"
    app:boxCornerRadiusBottomStart="20dp"
    app:boxCornerRadiusTopEnd="20dp"
    app:boxCornerRadiusTopStart="20dp"
    app:endIconMode="clear_text"
    app:endIconTint="@color/blueBackground"
    app:hintTextColor="@color/blueBackground">

    <com.google.Android.material.textfield.TextInputEditText
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:textColor="@color/blueBackground"
        Android:textSize="18sp"
        Android:layout_margin="8dp" />

</com.google.Android.material.textfield.TextInputLayout>

J'ai essayé Android:background="@null" et

<item name="colorControlNormal">@Android:color/transparent</item> <item name="colorControlActivated">@Android:color/transparent</item>

Mais ça ne fonctionne pas.

EditText

6
Sagar Jogadia

Faites votre TextInputLayout personnalisé comme ceci

package com.google.Android.material.textfield

import Android.content.Context
import Android.util.AttributeSet
class TextInputLayoutWithoutUnderline @JvmOverloads constructor(
        context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : TextInputLayout(context, attrs, defStyleAttr) {

    override fun updateEditTextBackground() {
        // XXX don't call super on purpose
    }

}
0
logcat

L'ajout de cette ligne sur TextInputLayout fonctionne pour moi:

app:boxStrokeWidth="0dp"

MISE À JOUR

Dans le répertoire color res, ajoutez le fichier et_box_color.xml et ajoutez les lignes ci-dessous à l'intérieur:

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android" >
   <item Android:color="@color/transparent"
        Android:state_pressed="true"
        Android:state_focused="true"
        Android:state_selected="true"
        Android:state_checkable="true"
        Android:state_checked="true"
        Android:state_enabled="true"
        Android:state_window_focused="true"/>
</selector>

Maintenant, ajoutez votre texte d'édition de matériel comme ci-dessous:

<com.google.Android.material.textfield.TextInputLayout
                Android:id="@+id/textInputLayout"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:background="@drawable/border"
                app:boxStrokeColor="@color/et_box_color"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/llBank">

                <com.google.Android.material.textfield.TextInputEditText
                    Android:id="@+id/etAmount"
                    Android:layout_width="match_parent"
                    Android:layout_height="wrap_content"
                    Android:layout_marginBottom="1dp"
                    Android:background="#00FFFFFF"
                    Android:gravity="center"
                    Android:hint="Amount"
                    Android:imeOptions="actionDone"
                    Android:inputType="numberDecimal" />

</com.google.Android.material.textfield.TextInputLayout>

J'ai ajouté un arrière-plan pour créer une bordure de TextInputLayout, supprimez l'arrière-plan de TextInputLayout si vous n'en avez pas besoin. Le fond de TextInputEditText sera nécessaire pour rendre le fond transparent.

0
Touhid

Définir l'arrière-plan de TextInputLayout sur un dessinable et celui de TextInputEditText sur transparent supprime le soulignement:

<com.google.Android.material.textfield.TextInputLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_margin="8dp"
        Android:hint="@string/email"
        Android:background="@drawable/blue_drawable"
        app:endIconMode="clear_text"
        app:endIconTint="@color/black"
        app:hintTextColor="@color/black">

    <com.google.Android.material.textfield.TextInputEditText
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textColor="@color/black"
            Android:background="@Android:color/transparent"
            Android:textSize="18sp"
            Android:layout_margin="8dp" />

</com.google.Android.material.textfield.TextInputLayout>

blue_drawable.xml

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
<corners Android:radius="20dp"/>
<solid Android:color="@Android:color/holo_blue_bright"/></shape>

enter image description here

0
no_name

Si vous voulez une application: boxBackgroundMode avec rempli et sans soulignement, cela fonctionnera

<item name="boxStrokeWidthFocused">0dp</item>
<item name="boxStrokeWidth">0dp</item>
0
Shweta Chauhan

Moyen facile;

app:boxBackgroundMode="filled"
app:boxStrokeWidth="0dp"
0
Cafer Mert Ceyhan