En mi aplicación "Tide Now WA", que recientemente probé para compatibilidad usando la nueva tableta Nexus 9 (Lollipop - API 21).
Escribe un texto de botón. Esta aplicación escribe el texto correctamente con Android 2.3 y Android 4.0. Es decir, letras mayúsculas y minúsculas mixtas.
Cuando se ejecuta la misma aplicación en mi Nexus 9, todas las letras del texto aparecen en mayúscula.
FWIW mi manifiesto contiene la siguiente declaración:
uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"
¿Puedo arreglar esto en mi código o es un error en el sistema operativo gracias
android
android-5.0-lollipop
android-button
android-styles
usuario1644002
fuente
fuente
Respuestas:
No tengo idea de por qué está sucediendo, pero hay 3 intentos triviales de hacer:
Uso
android:textAllCaps="false"
en sulayout-v21
Cambie programáticamente el método de transformación del botón.
mButton.setTransformationMethod(null);
Comprueba tu estilo para Allcaps
Nota :
public void setAllCaps(boolean allCaps)
,android:textAllCaps
están disponibles desde la versión de la API 14.fuente
<item name="android:textAllCaps">false</item>
en mi definición de estiloEsto es lo que hice en my values / themes.xml
fuente
<item name="textAllCaps">false</item>
.buttonStyle
aandroid:buttonStyle
android:textAllCaps="false"
(estoy usando android studio 3.0)Esto se puede corregir en el código de la aplicación configurando el Método de transformación del botón, p. Ej.
fuente
Establezca android: textAllCaps = "false". Si está utilizando un estilo appcompat, asegúrese de que textAllCaps esté antes del estilo. De lo contrario, el estilo lo anulará. Por ejemplo:
fuente
agrega esta línea con estilo
fuente
este está funcionando ... solo en su código en su código inferior agregue este:
debería desactivar la letra mayúscula que U intenta escribir en letra pequeña.
fuente
El valor predeterminado de Lollipop viene con "textAllCaps true", por lo que debe convertirlo en falso manualmente
fuente
Agregue android: textAllCaps = "false" en la
<Button>
etiqueta que es eso.fuente
Hay una manera más fácil que funciona para todos los botones, solo cambie la apariencia de los botones en su tema, intente esto:
en valores-21 / styles.xml
PD: se recomienda seguir los principios de diseño de materiales, debe mostrar texto en mayúsculas en Botones, http://www.google.com/design/spec/components/buttons.html
fuente
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 algo programáticamente. Naturalmente, esto también funcionará con la biblioteca AppCompat v7.
Espero que esto ayude.
fuente
Utilice esta línea android: textAllCaps = "false" en su xml
fuente
En Android Studio IDE, debe hacer clic en el icono Filtro para mostrar propiedades expertas. Luego verá la
textAllCaps
propiedad. Verifíquelo, luego desactívelo.fuente
Podrías agregar
android:textAllCaps="false"
al botón.El texto del botón puede transformarse a mayúsculas por el tema de su aplicación que se aplica a todos los botones. Verifique los archivos de temas / estilos para configurar el atributo
android:textAllCaps
.fuente
Java:
Kotlin:
XML:
Estilos:
En diseño:
fuente
Si ha llegado aquí porque el texto de su botón de Facebook aparece en mayúsculas, simplemente agregue esto
android:textAllCaps="false"
en su archivo xml. Funcionó para mi.fuente
OK, acabo de encontrarme con esto. Los botones en Lollipop salen en mayúsculas Y la fuente se restablece a 'normal'. ¿Pero en mi caso (Android 5.02) funcionaba correctamente en un diseño, pero no en otro?
El cambio de API no funcionó.
La configuración en mayúsculas requiere una API 14 mínima y la fuente aún se restablece a 'normal'.
Se debe a que los Estilos de material de Android fuerzan un cambio en los estilos si no hay uno definido (es por eso que funcionó en uno de mis diseños y no en el otro porque definí un estilo).
Entonces, la solución fácil es definir un estilo en el manifiesto para cada actividad que en mi caso fue simplemente:
android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen"
(espero que esto ayude a alguien, me habría ahorrado un par de horas anoche)
fuente
Si lo usa
appcompat-v7
, puede subclasificarAppCompatButton
ysetSupportAllCaps(false)
luego usar esta clase para todos sus botones.Ver AppCompatButton # setSupportAllCaps (boolean) documentos de Android.
fuente
De forma predeterminada, Button en Android proporciona todas las palabras clave mayúsculas. Si desea que el texto del botón esté en minúsculas o en mayúsculas, puede deshabilitar la
textAllCaps
marca usandoandroid:textAllCaps="false"
fuente
No sé por qué la respuesta de @ user1010160 obtuvo una calificación de 0. Le hubiera dado +1 si tuviera suficiente reputación.
Como mi aplicación está diseñada para API menores de 14 y no quería agregar código a mi programa, no encontré una solución hasta que leí su respuesta. Lo que dijo fue que, aunque haya hecho lo que se necesita en los estilos de la Aplicación, no funcionará a menos que agregue un estilo a su actividad y establezca textAllCaps en falso.
No es suficiente tener un estilo para la actividad (mi actividad tenía un estilo), porque el estilo puede ser el valor predeterminado de la propiedad AllCaps. Debe establecer explícitamente, también en la actividad, esa propiedad en falso.
Ahora lo tengo tanto en la aplicación como en las partes de actividad del archivo de manifiesto.
fuente
Otra alternativa programática de Kotlin:
mButton.transformationMethod = null
fuente