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.

Marcos Vasconcelos
fuente
No sé si es posible ... Siempre puedes hacer tus botones personalizados, un poco más pequeños.
gnclmorais
Posible duplicado de EditarTexto - cómo ocultar subrayado
Rohit Vipin Mathews

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"
/>
el-milligano
fuente
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"                 

 />
Androide
fuente
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.

MarioB.
fuente
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"                 

 />
Federico Ponzi
fuente
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"
/>
Rajneesh Shukla
fuente