studio quitar ocultar notificaciones navegacion barra bar android textview android-edittext

quitar - ocultar barra de navegacion android studio



Cómo ocultar la barra inferior en EditText (15)

¡Descubrí lo más curioso! Si lo configura en null mediante el enlace de datos: android:background="@{null}"

Entonces, no solo se elimina el fondo, sino que la vista aún tiene el relleno que se calculó a partir del fondo predeterminado. Entonces, por alguna razón, la configuración nula diferida no borra el relleno del bg anterior? El relleno en la vista es 4dp izquierdo / superior / derecho, 13dp inferior (desde el nivel 21 del emulador).

Puede que no tenga el mismo resultado final en todos los niveles de API, así que ¡cuidado! Alguien dime si pruebas esto y lo encuentras confiable. (También tenga en cuenta que el relleno inferior sobresale debido a ese subrayado que estaba en el original. Por lo tanto, es probable que desee cambiarlo en el XML o restablecerlo en el código después de cargarlo para que sea igual a la parte superior ...

¿Cómo puedo ocultar la barra inferior de Editar texto (la línea de solicitud con pequeñas remates en los extremos)?

Puede haber una mejor manera de hacer lo que quiero: tengo un diseño con un EditText. Normalmente, esto se muestra bien donde el usuario puede tocarlo y comenzar a ingresar o editar texto.

A veces, sin embargo, me gustaría usar el mismo diseño (simplifica otra lógica) para mostrar los mismos datos de una manera de solo lectura. Quiero que la presentación sea similar: debería tener la misma altura y la misma fuente, pero no la barra inferior.

Como medida de interferencia, voy a implementar esto eliminando EditText y sustituyendo un TextView. Creo que eso dará los resultados deseados, pero parece una forma indirecta y costosa de hacer algo que debería ser fácil al cambiar los atributos.


Aquí hay una forma de ocultarlo, sin arruinar el relleno predeterminado:

fun View.setViewBackgroundWithoutResettingPadding(background: Drawable?) { val paddingBottom = this.paddingBottom val paddingStart = ViewCompat.getPaddingStart(this) val paddingEnd = ViewCompat.getPaddingEnd(this) val paddingTop = this.paddingTop ViewCompat.setBackground(this, background) ViewCompat.setPaddingRelative(this, paddingStart, paddingTop, paddingEnd, paddingBottom) }

uso:

editText.setViewBackgroundWithoutResettingPadding(null)


Establecer fondo en nulo.

android:background="@null"


Lo que hice fue crear una Forma dibujable y establecerla como fondo:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <padding android:top="8dp" android:bottom="8dp" android:left="8dp" android:right="8dp" /> <solid android:color="#fff" /> </shape>

Nota: en realidad @color valores de @dimen y @color para los primeros colores, pero aquí he simplificado el archivo de formas para mayor claridad.


Por favor, establezca su fondo de edición de texto como

android:background="#00000000"

Funcionará.


Puede configurar el valor de backgroundTint EditText a un color específico. Si establece un color transparente, la barra inferior debería desaparecer.

android:backgroundTint="@color/Transparent"

<color name="Transparent">#00000000</color>

Pero puedes usar esto en Api v21(Lollipop) o superior


Puedes hacerlo programáticamente usando setBackgroundResource :

editText.setBackgroundResource(android.R.color.transparent);


Si desea que esto afecte a todas las instancias de EditText y cualquier clase que se herede de él, debe establecer en su tema el valor para el atributo, editTextBackground.

<item name="android:editTextBackground">@drawable/bg_no_underline</item>

Un ejemplo de lo que puedo dibujar es:

<inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" android:insetTop="@dimen/abc_edit_text_inset_top_material" android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> <selector> <item android:drawable="@android:color/transparent"/> </selector> </inset>

Esta es una versión ligeramente modificada de lo que es la implementación de diseño de material predeterminada.

Cuando se aplique, hará que todos sus EditText eliminen el subrayado en toda la aplicación, y no tiene que aplicar el estilo a todos y cada uno manualmente.


Si su texto de edición ya tiene un fondo, puede utilizar lo siguiente.

android:textCursorDrawable="@null"


También debe establecer un minWidth, de lo contrario, el cursor desaparecerá si el texto está vacío.

<EditText android:id="@+id/et_card_view_list_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="30dp" android:layout_weight="1" android:inputType="text" android:text="Name" android:background="@android:color/transparent" />


También puede definir un ESTILO para su editText para que pueda reagrupar todas las propiedades en común. Es muy poderoso si tiene que editar varias veces el texto que necesita para tener el comportamiento

Ponga el código en res / values ​​/ styles.xml

<style name="MyEditTextStyle" parent="@android:style/TextAppearance.Widget.EditText"> <item name="android:background">@color/transparence</item> //NO UNDERBAR <item name="android:maxLines">1</item> <item name="android:height">28dp</item> //COMMON HEIGHT </style>

Después de eso solo necesitas llamarlo en tu editText

<EditText android:id="@+id/edit1" style="@style/MyEditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/edit2" style="@style/MyEditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" />


Tengo algo como esto que es muy muy útil:

generalEditText.getBackground().mutate().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);

donde generalEditText es mi EditText y el color blanco es:

<color name="white">#ffffff</color>

Esto no eliminará el relleno y su EditText permanecerá como está. Sólo se eliminará la línea en la parte inferior. A veces es más útil hacerlo así.

Si usa android:background="@null" como muchos sugirieron, pierde el relleno y EditText se vuelve más pequeño. Al menos, fue mi caso.

Una pequeña nota al margen es que si establece el fondo nulo y prueba el código Java que proporcioné anteriormente, su aplicación se bloqueará justo después de ejecutarla. (porque tiene el fondo, pero es nulo). Puede ser obvio, pero creo que es importante señalarlo.


Usando cualquiera de las propiedades:

android:background="@null"

O

android:background="@android:color/transparent"

Trabajó para que yo ocultara el subrayado del EditText.

Sin embargo, tenga en cuenta que luego causa un problema de espaciado con el TextInputLayout que tengo alrededor del EditText


Uso programático: editText.setBackground(null)

Desde xml use: android:background="@null"


Puede configurar EditText para tener un EditText transparente personalizado o simplemente usar

android:background="@android:color/transparent"

o

android:background="@null"