83 votes

Supprimer la bordure de focus de l'EditText

Comment puis-je supprimer la bordure qui apparaît lors de la mise au point d'un EditText View ?

J'en ai besoin car cette vue a peu d'espace dans l'écran, mais sans la bordure c'est suffisant. Lorsque l'on utilise l'émulateur, une bordure orange apparaît, sur le périphérique, une bordure bleue.

188voto

el-milligano Points 919

Avez-vous essayé de donner une couleur transparente à l'arrière-plan du TextView ?

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:hint="@string/hello" 
android:background="#00000000"
/>

39voto

Android Points 3014
<EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:background="@android:drawable/editbox_background_normal"                 

 />

12voto

MarioB. Points 1221

C'est possible. Cependant, je ne le recommanderais pas car les utilisateurs sont habitués à certaines métaphores et il ne faut pas modifier l'UX générale.

Vous pouvez appliquer différents styles à vos vues. Dans votre cas, il semble que vous vouliez un élément EditText View qui ressemble à un élément TextView. Dans ce cas, vous devrez spécifier d'autres arrière-plans pour l'EditText en fonction de l'état de l'élément View.

Dans votre layout.xml, vous attribuez un arrière-plan à votre EditText :

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:hint="@string/hello" android:background="@drawable/custom"
/>

Ensuite, vous créez le fichier custom.xml dans votre dossier drawable et ajoutez ce qui suit :

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_window_focused="false" android:state_enabled="true"
    android:drawable="@drawable/textfield_default" />
  <item android:state_window_focused="false" android:state_enabled="false"
    android:drawable="@drawable/textfield_disabled" />
  <item android:state_pressed="true" android:drawable="@drawable/textfield_default" />
  <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_default" />
  <item android:state_enabled="true" android:drawable="@drawable/textfield_default" />
  <item android:state_focused="true" android:drawable="@drawable/textfield_disabled" />
  <item android:drawable="@drawable/textfield_disabled" />
</selector>

Ce sont les états possibles de votre élément EditText View. Normalement, vous pouvez accéder directement aux éléments dessinables de la plate-forme Android en utilisant les éléments suivants @android:drawable/textfield_default Mais dans ce cas, les éléments dessinables du champ de texte sont privés et vous devez donc les copier dans votre propre dossier d'éléments dessinables. Les ressources originales se trouvent dans le dossier d'installation de votre SDK à l'adresse suivante ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\ .

Une fois que vous avez terminé, vous obtenez un EditText qui ressemble à un TextView mais sans les bordures. Les bordures orange que vous avez vues dans l'émulateur sont les éléments graphiques par défaut d'Android. Les bordures bleues sont spécifiques au fournisseur (probablement Samsung).

J'espère que ça vous a aidé et que ça ne vous a pas trop perturbé.

6voto

Federico Ponzi Points 325

C'est la solution la plus rapide :

<EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:background="#00000000"                 

 />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X