Não é possível diminuir o texto do botão em minúsculas no android studio


184

Eu tenho uma pergunta trivial que me incomoda há um tempo. Tentei pesquisar no Google, mas ninguém parece ter o mesmo problema que eu ou não vê isso como um problema. Quando eu crio um botão em activity_my.xml no layout

 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_1_name"
    android:id="@+id/button2"
    android:layout_marginTop="140dp"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true" />

Eu recebo um botão que parece isso] [Imgur

mesmo que meu código de strings seja:

<resources>

<string name="app_name">HelloWorld</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="button_1_name">BuTtOn 1</string>

Sei que definitivamente estou perdendo algo pequeno aqui, mas como faço para que as letras minúsculas / maiúsculas funcionem no texto do botão?

Obrigado!


Verifique sua pasta de valores diferentes para a string button_1_name.
Zeeshan Khan

@lpbug um ano depois. ainda enfrenta o mesmo problema e eu desembarcou aqui e tenho a solução
Edijae Crusar

Respostas:


466

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.


1
Obrigado pela resposta! android:textAllCaps="false"funcionou como uma solução alternativa, mas os novos botões adicionados ainda estão todos em maiúsculas. Meu styles.xml em res / values ​​não parece ter o atributo mencionado acima. Aqui está o que tinha<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
Alex H

15
Você está herdando o tema Theme.Holo.Light.DarkActionBar, que contém essa configuração. Você deve adicionar uma nova propriedade explícita aos botões de estilo, por exemplo<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
Stelian Matei

1
Depois de adicionar isso, estou tendo um erro de inflação com arrayindexoutofboundsexception.
M. Usman Khan

@usman Duvido que a exceção esteja relacionada à textAllCapspropriedade. Você pode fornecer mais detalhes?
Stelian Matei

1
Isso não funcionará quando você estiver usando sua própria classe personalizada, estendendo a classe Button.
Er. Joshi

28
<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:buttonStyle">@style/Button</item>
</style>

<style name="Button" parent="Widget.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>

Simples e eficaz.
Valandres 6/09/19

8

Isso pode ser corrigido no código do aplicativo, definindo o valor TransformationMethod nulo do botão, por exemplo,

mButton.setTransformationMethod(null);


4

existem 3 maneiras de fazer isso.

1. Adicione a seguinte linha no style.xml para alterar o aplicativo inteiro

<item name="android:textAllCaps">false</item>

2.Use

android:textAllCaps="false"

na tua layout-v21

mButton.setTransformationMethod(null);
  1. adicione esta linha sob o elemento (botão ou editar texto) em xml

android: textAllCaps = "false"

Saudações


3

No seu arquivo .xml no Button, adicione esta linha--

android:textAllCaps="false"

Qual é a diferença entre sua resposta e a resposta de Stelian Matei ? Por favor, não repita a resposta aceita.
Filipe Brito

1

Você poderia definir assim

button.setAllCaps(false);

programaticamente


1

Eu enfrentei esse problema no TextView. eu tentei

android:textAllCaps="false", 
mbutton.setAllCaps(false);   
<item name="android:textAllCaps">false</item> 

nada disso funcionou para mim. Finalmente, farto e tenho um texto codificado, está funcionando.

tv.setText("Mytext");

tv é objeto de TextView. Mas, de acordo com os padrões de codificação, é uma prática ruim.



0

no código XML,
adicione esta linha android:textAllCaps="false" como código abaixo

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_1_name"
        android:id="@+id/button2"
        android:layout_marginTop="140dp"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
       ** android:textAllCaps="false" ** />

ou

no código Java ( programaticamente )
adicione esta linha ao seu botãosetAllCaps(false)

Button btn = (Button) findViewById(R.id.button2);
btn.setAllCaps(false);

0

Existe uma propriedade em <Button>que é android: textAllCaps = "false" que tornam os caracteres em que você quer em seu próprio pequeno e bonés. Por padrão, tornou-se True; portanto, escreva esse código e faça textAllCaps = false; então, você pode escrever o texto no botão em letras minúsculas e maiúsculas, conforme sua necessidade. Código completo para um botão que permite o uso de letras, conforme nossa exigência.

 <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.