Lollipop 在我的应用程序中将按钮的文本大写
Posted
技术标签:
【中文标题】Lollipop 在我的应用程序中将按钮的文本大写【英文标题】:Lollipop capitalizes Buttons' text in my app 【发布时间】:2015-03-09 17:43:12 【问题描述】:我的应用程序遇到了一个奇怪的问题。当我在真实设备(android 4.4.4)上测试它时,我所有的按钮文本字段看起来都是我想要的(小写字母)。但是当我在模拟器(Android 5.0.1)上启动我的应用程序时,所有按钮文本字段都是大写的。这种行为的原因是什么?我的应用中的一些示例按钮:
示例按钮 1:
<Button
android:id="@+id/button5"
android:layout_
style="?android:attr/borderlessButtonStyle"
android:layout_
android:text="@string/finish"
android:textColor="#FFFFFF"
android:textSize="30sp"
/>
示例按钮 2:
<Button
android:id="@+id/button3"
android:layout_
style="?android:attr/borderlessButtonStyle"
android:layout_
android:text="@string/flower"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:drawableLeft="@drawable/flower"
android:layout_weight=".75"
/>
这个问题的解决方法是什么。我希望我的应用在所有 sw 版本上看起来都一样。
【问题讨论】:
Why is my Button text forced to ALL CAPS on Lollipop?的可能重复 【参考方案1】:从 Android 5.0 开始,Button
s 的文本会自动大写。这符合新材料设计指南,您可以找到here。
如果你想强制你的按钮像以前的平台版本一样显示文本,你可以在你的 XML 中设置android:textAllCaps="false"
。但是,我建议不要这样做。用户希望他们的应用在 Android Lollipop 中看起来很重要,这意味着他们希望您的按钮以全部大写字母显示文本(即使您的应用在以前的平台版本中显示的文本不同)。
【讨论】:
这是关于他们能想出的最愚蠢的设计,只是让每个人都跑来跑去工作【参考方案2】:其实这是可能的:
new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle)
StackedAlertDialogStyle:
<style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item>
</style>
<style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:layout_gravity">right</item>
<item name="android:textAllCaps">false</item>
</style>
现在您可以看到不是大写的按钮了。
【讨论】:
谢谢,但它对我不起作用。它改变了警报对话框的外观和感觉。 完美运行:***.com/questions/26958909/…以上是关于Lollipop 在我的应用程序中将按钮的文本大写的主要内容,如果未能解决你的问题,请参考以下文章
使用 Xamarin Studio 将 Lollipop Toolbar 添加到我的项目