tamaño quitar pantalla negro modo los letra invertir flotante daltonico cómo como colores color chrome celular cambio cambiar boton blanco android button android-5.0-lollipop

pantalla - quitar boton flotante android



Cómo eliminar borde/sombra de los botones de lollipop (10)

El efecto "sombra" se agrega en el tema de Lollipop Appcompat

agregue la siguiente línea en res / values-v21 / styles.xml para eliminar la sombra predeterminada

Nivel de tema:

<item name="android:buttonStyle">@style/Widget.AppCompat.Button.Borderless</item>

diseño xml:

android:stateListAnimator="@null"

Programaticamente:

setStateListAnimator(null);

Los botones se ven bien para api <21. Sin embargo, las versiones +21 crean este borde o sombra que se muestra en la imagen a continuación. ¿Cómo me deshago de él sin cambiar el tema del hoyo, sino estableciendo una variable de estilo?

Puede ser más claro en esta imagen coloreada. Hay algún tipo de borde alrededor de los botones.

Mi buttonssstyle se define así:

<style name="buttonTransparent" parent="Base.TextAppearance.AppCompat.Button"> <item name="android:background">#00000000</item> <item name="android:textColor">@drawable/button_text_blue</item> <item name="android:textSize">18dp</item> <item name="android:textAllCaps">false</item> <item name="android:minHeight">45dp</item> </style> <style name="buttonLargeWhite" parent="buttonTransparent"> <item name="android:background">#FFF</item> <item name="android:layout_marginTop">10dp</item> </style>


La forma mejor y más fácil que estoy usando es establecer el atributo de estilo en el botón

<Button ... style="?android:attr/borderlessButtonStyle" .... />

puede ser alguien que necesita en el futuro.


Lo solucioné globalmente al configurar android:stateListAnimator="@null" en Resources/values/styles.xml :

<?xml version="1.0" encoding="UTF-8"?> <resources> <style name="AppTheme" parent="AppTheme.Base"> </style> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:buttonStyle">@style/NoShadowButton</item> </style> <style name="NoShadowButton" parent="android:style/Widget.Button"> <item name="android:stateListAnimator">@null</item> </style> </resources>

Y voila las sombras se han ido para siempre :)


Lollipop tiene una pequeña característica desagradable llamada stateListAnimator que maneja las elevaciones en los botones, lo que conduce a sombras.

Elimine stateListAnimator para eliminar las sombras.

Tienes múltiples opciones para hacer eso:

Java:

button.setStateListAnimator(null);

Kotlin:

button.stateListAnimator = null

o en su diseño xml''s:

<Button ... android:stateListAnimator="@null" .... />


Los botones en Android tienen propiedad statelistAnimator por lo que al declararlo nulo podemos eliminar el borde del botón

android:stateListAnimator="@null"


Si quieres hacer esto programáticamente en Kotlin, puedes hacer

button.stateListAnimator = null


Sugeriría que simplemente elimines la sombra por completo, al establecer la elevación en nada. Como ya tiene un estilo XML (agréguelo para usarlo universalmente), o puede agregar este atributo a su definición de vista XML

android:elevation="0dp"


Ya hay un estilo que puede aprovechar para no tener los bordes.

aplicar

style="@style/Base.Widget.AppCompat.Button.Borderless"

a su artículo para eliminar las fronteras


en xml podemos usar

android:stateListAnimator="@null"


Problema

  1. Desde Android v21, Border ha sido agregado por defecto para todo el botón.

    <!-- Bordered ink button --> <style name="Widget.Material.Button"> <item name="background">@drawable/btn_default_material</item> <item name="textAppearance">?attr/textAppearanceButton</item> <item name="minHeight">48dip</item> <item name="minWidth">88dip</item> <item name="stateListAnimator">@anim/button_state_list_anim_material</item> <item name="focusable">true</item> <item name="clickable">true</item> <item name="gravity">center_vertical|center_horizontal</item> </style>

    • La propiedad " stateListAnimator " es la que está causando el problema.

Solución

  1. En el tema de nuestra aplicación, configure el estilo del botón para eliminar el borde predeterminado (la biblioteca de soporte de Android proporciona estilo para él).

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- From Android-v21 - Border has been added by default, hence we are removing it. --> <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Borderless</item> </style>