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 开始,Buttons 的文本会自动大写。这符合新材料设计指南,您可以找到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 在我的应用程序中将按钮的文本大写的主要内容,如果未能解决你的问题,请参考以下文章

按钮文本始终以大写形式显示

ionic v4中的离子按钮,文本为大写

使用 Xamarin Studio 将 Lollipop Toolbar 添加到我的项目

pre lollipop 上浮动操作按钮的破碎阴影

如何在我的 dojo GridX 中将我的按钮置于我选择的特定列中?

Android:从运行时生成的文本字段中将数据保存到Firebase