在android studio中不能小写按钮文本

Posted

技术标签:

【中文标题】在android studio中不能小写按钮文本【英文标题】:Cannot lower case button text in android studio 【发布时间】:2014-09-12 20:39:47 【问题描述】:

我有一个小问题困扰了我一段时间。我试图用谷歌搜索,但似乎没有人和我有同样的问题,或者不认为这是一个问题。当我在布局下的activity_my.xml中制作一个按钮时

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

我得到一个看起来像的按钮

即使我的字符串代码是:

<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>

我知道我在这里肯定遗漏了一些小东西,但是如何在按钮文本中使用小写/大写?

谢谢!

【问题讨论】:

检查您的不同值文件夹中的 button_1_name 字符串。 @lpbug 一年后。仍然面临同样的问题,我来到这里并得到了解决方案 【参考方案1】:

您可以在按钮上添加android:textAllCaps="false"

按钮文本可能会被应用到所有按钮的应用主题转换为大写。检查主题/样式文件以设置属性android:textAllCaps

【讨论】:

感谢您的回复! android:textAllCaps="false" 确实是一种解决方法,但添加的新按钮仍然全部大写。我在 res/values 下的 styles.xml 似乎没有上述属性。这是它所拥有的&lt;resources&gt; &lt;!-- Base application theme. --&gt; &lt;style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"&gt; &lt;!-- Customize your theme here. --&gt; &lt;/style&gt; &lt;/resources&gt; 您正在继承包含该设置的主题Theme.Holo.Light.DarkActionBar。您必须为样式按钮添加新的显式属性,例如&lt;style name="Widget.Button" parent="Widget.Button"&gt;&lt;item name="android:textAllCaps"&gt;false&lt;/item&gt;&lt;/style&gt; 添加后,arrayindexoutofboundsexception 出现膨胀错误。 @usman 我怀疑异常与textAllCaps 属性有关。你能提供更多细节吗? 当您使用自己的自定义类扩展 Button 类时,这将不起作用。【参考方案2】:
<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>

【讨论】:

简单有效。【参考方案3】:

这可以通过将按钮的 TransformationMethod 设置为 null 来在应用程序代码中修复,例如

mButton.setTransformationMethod(null);

【讨论】:

【参考方案4】:

在 xml 按钮中添加 android:textAllCaps="false" 这个问题是真的。

【讨论】:

这只是重复the accepted answer。 我在这里发布了一个漂亮的小回答:***.com/questions/26958909/…【参考方案5】:

有 3 种方法可以做到这一点。

1.在style.xml中添加下面一行来改变整个应用程序

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

2.使用

android:textAllCaps="false"

在你的layout-v21

mButton.setTransformationMethod(null);
    在xml中的元素(按钮或编辑文本)下添加这一行

android:textAllCaps="false"

问候

【讨论】:

【参考方案6】:

你可以这样设置

button.setAllCaps(false);

以编程方式

【讨论】:

【参考方案7】:

在 Button 内的 .xml 文件中添加这一行--

android:textAllCaps="false"

【讨论】:

你的答案和Stelian Matei's的答案有什么区别?请不要重复接受的答案。【参考方案8】:

activity_main.xml 的视图中使用以下代码可以轻松完成:

android:textAllCaps="false"

你的情况如下:

 <Button
android:layout_
android:layout_
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" />

您还可以通过将其添加到您的 styles/themes.xml 来更改应用中所有按钮的设置:

<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>

也可以通过在 ma​​inActivity.kt 或 mainActivity.java 中使用以下内容以编程方式设置:

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

【讨论】:

【参考方案9】:

在 XML 代码中 添加这一行android:textAllCaps="false" 像下面的代码

 <Button
        android:layout_
        android:layout_
        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" ** />

在 Java 代码中(以编程方式) 将此行添加到您的按钮 setAllCaps(false)

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

【讨论】:

【参考方案10】:

&lt;Button&gt; 中有一个属性,即 android:textAllCaps="false",它可以在您自己的 Small 和 caps 中生成您想要的字符。默认情况下,它变为 True,因此编写此代码并使 textAllCaps=false 然后您可以根据您的要求在按钮上以小写字母和大写字母写文本。 一个按钮的完整代码,可以根据我们的要求写字母。

 <Button
            android:layout_
            android:layout_
            android:id="@+id/btnLogin"
            android:text="Login for Chat"
            android:textAllCaps="false"/>

【讨论】:

【参考方案11】:

我在 TextView 中遇到过这个问题。我试过了

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

这些都不适合我。最后我受够了,我有硬编码文本,它正在工作。

tv.setText("Mytext");

tv 是 TextView 的对象。但根据编码标准,这是不好的做法。

【讨论】:

【参考方案12】:

在 XML 中: android:textAllCaps="假"

以编程方式:

mbutton.setAllCaps(false);

【讨论】:

以上是关于在android studio中不能小写按钮文本的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 android studio 组件(按钮、文本等)大小(宽度、高度或默认大小)

用Android Studio 手动输入的数字中找出最大和最小的数字

Android Studio布局问题

Android Studio 中的不透明度级别

Android Studio:有没有办法更改 ArrayAdapter 上显示的文本?

android编程中怎么把按钮和文本框在一行显示