我在使用我的应用程序时遇到了一个奇怪的问题。当我在真实设备(使用Android 4.4.4)上测试它时,我所有的按钮都是文本字段看起来我想要的(小写字母)。但是当我在模拟器(Android 5.0.1)上启动我的应用程序时,所有Button文本字段都是大写的。这种行为的原因是什么?我的应用程序中的一些示例按钮:
示例按钮1:
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
style="?android:attr/borderlessButtonStyle"
android:layout_height="wrap_content"
android:text="@string/finish"
android:textColor="#FFFFFF"
android:textSize="30sp"
/>
示例按钮2:
<Button
android:id="@+id/button3"
android:layout_width="0dp"
style="?android:attr/borderlessButtonStyle"
android:layout_height="wrap_content"
android:text="@string/flower"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:drawableLeft="@drawable/flower"
android:layout_weight=".75"
/>
这个问题的解决方案是什么?我希望我的应用程序在所有sw版本中看起来都一样。
答案 0 :(得分:19)
从Android 5.0开始,Button
会自动将其文字大写。这符合新的材料设计指南,您可以找到here。
如果要强制按钮显示文本,就像在以前的平台版本中一样,可以在XML中设置android:textAllCaps="false"
。但是,我建议不要这样做。用户希望他们的应用看起来像Android Lollipop中的材料,这意味着他们希望您的按钮以全部大写字母显示文本(即使您的应用在以前的平台版本中以不同方式显示文本)。
答案 1 :(得分:2)
实际上这是可能的:
xcopy /?
StackedAlertDialogStyle:
new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle)
现在你可以看到按钮不是大写。