当前位置: 首页 > 知识库问答 >
问题:

“AppCompative”活动的按钮文本的字体样式已更改

鄂育
2023-03-14

将我的活动的父级从“活动”更改为“AppCompatActivity”后,按钮上的字体发生了变化。例如,删除-

为什么按钮上的字体发生了变化,我该如何找回原始字体?

按钮:

            <Button
            android:id="@+id/buttonAddProduct"
            tools:text="Remove"
            android:layout_width="match_parent"
            android:textSize="13dp"
            android:layout_weight="1"
            style="@style/btns_blue_big" />

风格:

<style name="btns_text_big">
    <item name="android:textSize">@dimen/text_size_big</item>
    <item name="android:textColor">@color/colorMainWhite</item>
</style>

<style name="btns_lo_big" parent="btns_text_big">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">48dp</item>
</style>

<style name="btns_blue_big" parent="btns_lo_big">
    <item name="android:background">@drawable/button_dialog_positive_shape</item>
</style>

共有3个答案

富勇军
2023-03-14

在 Appcompat 主题中,按钮文本默认设置为大写。我不知道为什么。但是,如果要在xml中禁用该按钮,请将android:textAllCaps=“false”

以编程方式:button.setTransformationMethod(null);

燕元明
2023-03-14

使用材料(或带有API 21的DeviceDefault)主题时,按钮文本默认为全大写。这是按预期工作的。如果您不希望这样,您可以在样式中使用以下属性

<item name="android:textAllCaps">false</item>
<item name="textAllCaps">false</item>

“引用”是为什么我的按钮文本被强制添加到Lollipop上的所有大写字母?

邹举
2023-03-14

这种变化是因为谷歌的材料设计主题。

基本上,当您将Active更改为AppCompatActive时,您还需要更改应用程序的主题以从Theme.AppCompat扩展。此更改导致每个视图的设计都与主题相匹配。

下面是<code>Holo</code>主题和<code>AppCompat</code>主题之间的示例:

正如您所看到的,按钮在< code>AppCompat主题中的默认实现使用了所有的大写字母,因此您需要更改它们。

一个简单的解决方法是将这些内容添加到您的样式xml中:

<style name="MyAppTheme" parent="Theme.AppCompat">
    <item name="buttonStyle">@style/MyAppTheme.Button</item>
    <item name="android:buttonStyle">@style/MyAppTheme.Button</item>
</style>

<style name="MyAppTheme.Button" parent="Base.Widget.AppCompat.Button">
    <item name="android:textAllCaps">false</item>
</style>
 类似资料:
  • 问题内容: 可以更改按钮功能吗? 例如 点击,再点击一次 我已经尝试过类似,但没有结果。 我设法使叠加工作并在其中插入所需的数据。但是没有找到任何可以帮助我的帖子。我正在使用react-bootstrap。这是我的代码。 问题答案: 您可以尝试使用状态来存储颜色。也许这会让您想到解决问题的方法: 这是一个小提琴。

  • 我已经创建了一个类,它扩展了。在该类中,当我按下一个按钮时,我想更改一个按钮的背景,该按钮被放置在主活动中。 我试图创建一个内部类来访问Main Active对象,但我得到的是这个错误: 尝试在空对象引用上调用虚拟方法android.content.pm.Application ationInfoandroid.content.Context.getApplication ationInfo()

  • 我有一个RecycerView与简单的项目-一个项目有一个图像,标题和按钮。当用户单击按钮时,它需要更改其布局->,指示按钮被单击(类似于复选框功能)。

  • 用这条线 第一行确实是红色的,第二行是蓝色的,但我不能控制任何一个文本行的字体大小,这是什么?我怎么做?

  • 除了尝试应用程序。在xaml解决方案中,我还尝试通过调整样式来设置android项目中的样式。xml。除选择器对话框中的按钮外,这也会影响所有按钮。 有人知道怎么修吗?

  • 所以我有这些按钮(3叠6个,18个),我想实现的是当我按下其中一个按钮时: > 边框颜色 其他按钮将重置为其正常样式 但是我不想通过“isEnable”技巧禁用其他的(我只在这里找到了涉及isEnable的解决方案),我仍然希望它们被启用,我只是希望它们不要在按下时被我的自定义样式“突出显示”。 对于第一部分,也就是我在IBAction中所做的造型: 这一小部分只是一个按钮,但我想如果我有18个按