¿Por qué mi texto de Button está forzado a TODO MAYÚSCULAS en Lollipop?

En mi aplicación “Tide Now WA”, que recientemente probé para compatibilidad con la nueva tableta Nexus 9 (Lollipop – API 21).

Escribe algún texto de botón. Esta aplicación escribe el texto correctamente con Android 2.3 y Android 4.0. Es decir, capital mixto y letras minúsculas.

Cuando se ejecuta la misma aplicación en mi Nexus 9, todas las letras del texto están en mayúscula.

FWIW mi manifiesto contiene la siguiente statement:

uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"

¿Puedo solucionar esto en mi código o es un error en el sistema operativo gracias

No tengo idea de por qué está sucediendo, pero hay 3 bashs triviales de hacer:

  1. Use android:textAllCaps="false" en su layout-v21

  2. Cambia programáticamente el método de transformación del botón. mButton.setTransformationMethod(null);

  3. Comprueba tu estilo para Allcaps

Nota : public void setAllCaps (boolean allCaps) android: textAllCaps están disponibles desde API versión 14.

Esto es lo que hice en mis valores / themes.xml

    

Esto se puede corregir en el código de la aplicación configurando TransformationMethod del botón, por ejemplo

 mButton.setTransformationMethod(null); 

Establecer android: textAllCaps = “false”. Si está utilizando un estilo de aplicación compatible, asegúrese de que textAllCaps aparezca antes que el estilo. De lo contrario, el estilo lo anulará. Por ejemplo:

 android:textAllCaps="false" style="@style/Base.TextAppearance.AppCompat" 

agregue esta línea en estilo

  false 

El valor predeterminado de Lollipop viene con “textAllCaps true”, por lo que debe convertirlo manualmente en falso

Agrega android: textAllCaps = “false” en la etiqueta eso es todo.

este está funcionando … solo en tu código en tu código inferior, agrega este:

 android:textAllCaps="false" 

debería desactivar la letra mayúscula que U intenta escribir en pequeño.

Hay una manera más fácil que funciona para todos los botones, simplemente cambie la apariencia de los botones en su tema, intente esto:

en values-21 / styles.xml

     

PD: se recomienda seguir los principios del diseño de materiales, debe mostrar texto en mayúscula en Botones, http://www.google.com/design/spec/components/buttons.html

El uso de android.support.v7.widget.AppCompatButton en el diseño XML le permitirá evitar tener que tener un diseño-21 o cambiar cualquier cosa por progtwigción. Naturalmente, esto también funcionará con la biblioteca AppCompat v7.

  

Espero que esto ayude.

En Android Studio IDE, debe hacer clic en el ícono de Filtro para mostrar las propiedades expertas. Luego verá la propiedad textAllCaps . Verifíquelo, luego desmárquelo.

Puede agregar android:textAllCaps="false" al botón.

El texto del botón puede transformarse en mayúsculas según el tema de su aplicación que se aplique a todos los botones. Compruebe los archivos de temas / estilos para configurar el atributo android:textAllCaps .

OK, solo encontré esto. Los botones en Lollipop salen en mayúsculas Y la fuente se restablece a ‘normal’. Pero en mi caso (Android 5.02) funcionaba en un diseño correctamente, ¡pero no en otro !?

Cambiar las API no funcionó.
La configuración en mayúsculas requiere una API mínima 14 y la fuente aún se restablece a ‘normal’.

Es porque los Estilos de Material de Android fuerzan un cambio en los estilos si no hay uno definido (por eso funcionó en uno de mis diseños y no en el otro porque definí un estilo).

Entonces, la solución más sencilla es definir un estilo en el manifiesto para cada actividad, que en mi caso era solo:
android: theme = “@ android: style / Theme.NoTitleBar.Fullscreen”
(Espero que esto ayude a alguien, me habría ahorrado un par de horas la noche anterior)

Si ha llegado aquí porque el texto de su botón de Facebook aparece en mayúsculas, simplemente agregue este android:textAllCaps="false" en su archivo xml. Funcionó para mí

Si usa appcompat-v7 , puede subclase AppCompatButton y setSupportAllCaps(false) , luego use esta clase para todos sus botones.

 /** * Light extension of {@link AppCompatButton} that overrides ALL CAPS transformation */ public class Button extends AppCompatButton { public Button(Context context, AttributeSet attrs) { super(context, attrs); setSupportAllCaps(false); } public Button(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setSupportAllCaps(false); } } 

Ver AppCompatButton # setSupportAllCaps (boolean) documentos de Android.

No sé por qué la respuesta de @ user1010160 obtuvo una calificación de 0. Le hubiera dado +1 si tuviera suficientes reputaciones.

Como mi aplicación está diseñada para API de menos de 14 y no quería agregar código a mi progtwig, no encontré una solución hasta que leí su respuesta. Lo que dijo fue que, aunque hayas hecho lo necesario en los estilos de aplicación, no funcionará a menos que agregues un estilo a tu actividad y allí establezcas textAllCaps en false.

No es suficiente tener un estilo para la actividad (mi actividad tenía un estilo), porque el estilo puede ser de forma predeterminada a la propiedad AllCaps. Debe establecer explícitamente, en la actividad también, esa propiedad en falso.

Ahora lo tengo tanto en la aplicación como en las partes de actividad del archivo de manifiesto.