No meu aplicativo "Tide Now WA", que testei recentemente quanto à compatibilidade usando o novo tablet Nexus 9 (Lollipop - API 21).
Ele escreve algum texto do botão. Este aplicativo grava o texto corretamente usando o Android 2.3 e o Android 4.0. Ou seja, capital misto e letras minúsculas.
Quando o mesmo aplicativo é executado no meu Nexus 9, todas as letras do texto são maiúsculas.
FWIW meu manifesto contém a seguinte declaração:
uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"
Posso corrigir isso no meu código ou é um bug no sistema operacional, graças
android
android-5.0-lollipop
android-button
android-styles
user1644002
fonte
fonte
Respostas:
Eu não tenho idéia do por que isso está acontecendo, mas há três tentativas triviais para fazer:
Use
android:textAllCaps="false"
em seulayout-v21
Altere programaticamente o método de transformação do botão.
mButton.setTransformationMethod(null);
Verifique seu estilo para Allcaps
Nota :
public void setAllCaps(boolean allCaps)
,android:textAllCaps
estão disponíveis a partir de API versão 14.fonte
<item name="android:textAllCaps">false</item>
na minha definição de estiloAqui está o que eu fiz em meus values / themes.xml
fonte
<item name="textAllCaps">false</item>
.buttonStyle
paraandroid:buttonStyle
android:textAllCaps="false"
(estou usando o estúdio do android 3.0)Isso pode ser corrigido no código do aplicativo, definindo o TransformationMethod do botão, por exemplo
fonte
Defina android: textAllCaps = "false". Se você estiver usando um estilo appcompat, verifique se textAllCaps vem antes do estilo. Caso contrário, o estilo o substituirá. Por exemplo:
fonte
adicione esta linha com estilo
fonte
este está funcionando .... apenas no seu código no seu código inferior adicione este:
ele deve desativar a letra maiúscula que você está tentando digitar pequena.
fonte
O padrão Lollipop vem com "textAllCaps true", então você deve manualmente torná-lo false
fonte
Adicione android: textAllCaps = "false" na
<Button>
tag, é isso.fonte
Existe uma maneira mais fácil que funciona para todos os botões, basta alterar a aparência dos botões no seu tema, tente o seguinte:
em values-21 / styles.xml
PS: é recomendável seguir os princípios do design do material. Você deve exibir texto em maiúsculas em Buttons, http://www.google.com/design/spec/components/buttons.html
fonte
Usar o android.support.v7.widget.AppCompatButton no layout XML permitirá evitar a necessidade de ter um layout-21 ou alterar programaticamente qualquer coisa. Naturalmente, isso também funcionará com a biblioteca AppCompat v7.
Espero que isto ajude.
fonte
Use esta linha android: textAllCaps = "false" no seu xml
fonte
No Android Studio IDE, você deve clicar no ícone Filtro para mostrar propriedades especializadas. Então você verá a
textAllCaps
propriedade. Verifique e desmarque.fonte
Você pode adicionar
android:textAllCaps="false"
ao botão.O texto do botão pode ser transformado em maiúscula pelo tema do seu aplicativo que se aplica a todos os botões. Verifique os arquivos de temas / estilos para definir o atributo
android:textAllCaps
.fonte
Java:
Kotlin:
XML:
Estilos:
No layout:
fonte
Se você chegou aqui porque o texto do botão do Facebook aparece em maiúsculas, basta adicioná-lo
android:textAllCaps="false"
ao seu arquivo xml. Funcionou para mim.fonte
OK, apenas encontrei isso. Os botões no Lollipop saem em maiúsculas E a fonte é redefinida para 'normal'. Mas no meu caso (Android 5.02), ele estava funcionando em um layout corretamente, mas não em outro !?
Alterar APIs não funcionou.
A configuração para todos os limites requer API mínima 14 e a fonte ainda é redefinida para 'normal'.
É porque o Android Material Styles força uma alteração nos estilos se não houver um definido (é por isso que funcionou em um dos meus layouts e não no outro porque eu defini um estilo).
Portanto, a solução mais fácil é definir um estilo no manifesto para cada atividade que, no meu caso, era apenas:
android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen"
(espero que isso ajude alguém, teria me poupado um par de horas na noite passada)
fonte
Se você usar
appcompat-v7
, poderá subclassificarAppCompatButton
esetSupportAllCaps(false)
, em seguida, usar esta classe para todos os seus botões.Consulte AppCompatButton # setSupportAllCaps (booleano) documentos do Android.
fonte
Por padrão, o botão no Android fornece todas as palavras-chave em maiúsculas. Se quiser que o texto do botão esteja em minúsculas ou mistas, você pode desativar o
textAllCaps
sinalizador usandoandroid:textAllCaps="false"
fonte
Não sei por que a resposta de @ user1010160 obteve classificação 0. Eu teria dado +1 se tivesse reputação suficiente.
Como meu aplicativo foi desenvolvido para API com menos de 14 anos e eu não queria adicionar código ao meu programa, não encontrei uma solução até ler sua resposta. O que ele disse foi que, mesmo que você tenha feito o necessário nos estilos de aplicativo, ele não funcionará, a menos que você adicione um estilo à sua atividade e defina textAllCaps como false.
Não é suficiente ter um estilo para a atividade (minha atividade tinha um estilo), porque o estilo pode ter como padrão a propriedade AllCaps. Você deve definir explicitamente, também na atividade, essa propriedade como false.
Agora eu tenho isso nas partes Aplicativo e Atividade do arquivo de manifesto.
fonte
Outra alternativa programática do Kotlin:
mButton.transformationMethod = null
fonte