web-dev-qa-db-fra.com

Supprimer la bordure de focus de EditText

Comment puis-je supprimer la bordure avec apparaît lors de la mise au point d'une vue EditText?

J'en ai besoin car cette vue a peu de place dans l'écran, mais sans la bordure, cela suffit. Lorsque vous utilisez Emulator, une bordure orange apparaît, sur Device une bordure bleue.

81
Marcos Vasconcelos

Avez-vous essayé de définir l’arrière-plan de la EditText sur une couleur transparente?

<EditText  
Android:layout_width="fill_parent" 
Android:layout_height="wrap_content" 
Android:hint="@string/hello" 
Android:background="#00000000"
/>
183
el-milligano
<EditText
            Android:id="@+id/edittext"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"  
            Android:background="@Android:drawable/editbox_background_normal"                 

 />
37
Android

C'est possible. Cependant, je ne le recommanderais pas car les utilisateurs sont habitués à certaines métaphores et vous ne devriez pas changer l'UX général.

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

Dans le fichier layout.xml de votre choix, 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 pouvant être dessiné et ajoutez les éléments suivants:

<?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 dessins de la plate-forme Android à l'aide de @Android:drawable/textfield_default, mais dans ce cas, les dessins des champs de texte sont privés, vous devez donc les copier dans votre propre dossier pouvant être dessiné. Les ressources d'origine se trouvent dans votre dossier d'installation du SDK à l'adresse Android_HOME\platforms\Android-(API LEVEL)\data\res\drawable-(*dpi)\.

Une fois que vous avez terminé, vous vous retrouvez avec un EditText qui ressemble à un TextView mais complètement sans ces bordures. Les bordures orange que vous avez vues dans l'émulateur sont les dessinables par défaut d'Android. Les bleus sont spécifiques au fournisseur (éventuellement Samsung).

J'espère que cela a aidé et n'a pas dérouté autant.

12
MarioB.

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"                 

 />
5
Federico Ponzi

Vous pouvez conserver la couleur d'arrière-plan transparente pour supprimer la bordure EditText du focus.

Méthode 1

<EditText 
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#00000000"
/>
0
Rajneesh Shukla