Lollipop 在我的应用程序中将按钮的文本大写
Lollipop capitalizes Buttons' text in my app
我的应用程序遇到了一个奇怪的问题。当我在真实设备(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 版本上看起来都一样。
从 Android 5.0 开始,Button
s 自动将其文本大写。这符合新的 material 设计指南,您可以找到 here.
如果您想强制按钮显示文本,就像在以前的平台版本中那样,您可以在 XML 中设置 android:textAllCaps="false"
。但是,我建议不要这样做。用户希望他们的应用在 Android Lollipop 中看起来 material,这意味着他们希望您的按钮以所有大写字母显示文本(即使您的应用在以前的平台版本中显示的文本不同)。
实际上这是可能的:
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>
现在您可以看到非大写的按钮了。
我的应用程序遇到了一个奇怪的问题。当我在真实设备(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 版本上看起来都一样。
从 Android 5.0 开始,Button
s 自动将其文本大写。这符合新的 material 设计指南,您可以找到 here.
如果您想强制按钮显示文本,就像在以前的平台版本中那样,您可以在 XML 中设置 android:textAllCaps="false"
。但是,我建议不要这样做。用户希望他们的应用在 Android Lollipop 中看起来 material,这意味着他们希望您的按钮以所有大写字母显示文本(即使您的应用在以前的平台版本中显示的文本不同)。
实际上这是可能的:
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>
现在您可以看到非大写的按钮了。