在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 似乎没有上述属性。这是它所拥有的<resources> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources>
您正在继承包含该设置的主题Theme.Holo.Light.DarkActionBar
。您必须为样式按钮添加新的显式属性,例如<style name="Widget.Button" parent="Widget.Button"><item name="android:textAllCaps">false</item></style>
添加后,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>
也可以通过在 mainActivity.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】:<Button>
中有一个属性,即 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 手动输入的数字中找出最大和最小的数字