Eliminar el borde de enfoque de EditText


83

¿Cómo puedo eliminar el borde con aparece al enfocar una vista de edición de texto?

Lo necesito porque esta vista tiene poco espacio en la pantalla, pero sin el borde es suficiente. Cuando se ejecuta en el emulador, aparece un borde naranja y en el dispositivo uno azul.


No sé si es posible ... Siempre puedes hacer tus botones personalizados, un poco más pequeños.
gnclmorais

Respuestas:


188

¿Ha intentado configurar el fondo del EditTexten un color transparente?

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

21
"@android:color/transparent"es un poco más autoexplicativo.
Alexander Malakhov

7
"@null"también puede ser una opción
Mangesh

3
esta respuesta no es correcta, ya que no solo elimina el borde de enfoque, sino también el fondo EditText no enfocado.
JensJensen

@Michael sí, porque hexadecimal 0 y 00000 es lo mismo. sigue siendo cero.
Brill Pappin

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

 />

12

Es posible. Sin embargo, no lo recomendaría porque los usuarios están acostumbrados a ciertas metáforas y no debería cambiar la UX general.

Puede aplicar diferentes estilos a sus vistas. En su caso, parece que desea un elemento EditText View que se parece a un elemento TextView. En este caso, tendría que especificar otros fondos para EditText dependiendo del estado del elemento View.

En su layout.xml deseado, asigna un fondo a su EditText:

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

Luego crea el archivo custom.xml en su carpeta dibujable y agrega lo siguiente:

<?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>

Esos son los posibles estados de su elemento Vista EditText. Normalmente, puede acceder a @android:drawable/textfield_defaultlos elementos de diseño de la plataforma Android directamente utilizando , pero en este caso los elementos de diseño de campo de texto son privados, por lo que debe copiarlos en su propia carpeta de elementos de diseño. Los recursos originales se pueden encontrar en la carpeta de instalación de su SDK en ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\.

Una vez que haya terminado, terminará con un EditText que parece un TextView pero completamente sin esos bordes. Esos bordes naranjas que vio en el emulador son los elementos de diseño predeterminados de Android. Los azules son específicos del proveedor (posiblemente Samsung).

Espero que haya ayudado y no haya confundido tanto.


Lo voy a probar pronto. Y es para Galaxy Tab.
Marcos Vasconcelos

bueno ... esto puede funcionar. Pero no quiero dibujar todos esos fondos. Solo necesito eliminar el borde del predeterminado, ¿no es posible?
Marcos Vasconcelos

El ejemplo que publiqué es un derivado de la implementación original. El borde EditText no se dibuja individualmente. Es una imagen de fondo completa que se establece según el estado actual del elemento Vista. Internamente, la plataforma de Android establece una imagen de fondo completa cada vez. Puede ver las imágenes de nueve parches en la instalación de su SDK en ANDROID_HOME \ platform \ android- (API LEVEL) \ data \ res \ drawable - (* dpi) \.
MarioB.

6

Esta es la solución más rápida:

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

 />

0

Puede mantener el color de fondo transparente para quitar el borde EditText en foco.

Método 1

<EditText 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.