【问题标题】:Android Button Theme not applyingAndroid按钮主题不适用
【发布时间】:2019-03-11 16:30:57
【问题描述】:

我创建了非常简单的视图。我想为我的按钮创建默认布局并通过我在清单文件中添加的 AppTheme 导入它。

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="buttonStyle">@style/ButtonStyle</item>
    <item name="android:buttonStyle">@style/ButtonStyle</item>
    <item name="android:button">@style/ButtonStyle</item>
</style>
<style name="ButtonStyle" >
        <item name="android:textSize">20dp</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_width">150dp</item>
        <item name="android:layout_gravity">center</item>
        <item name="android:layout_marginTop">10dp</item>
        <item name="android:background">@drawable/defaultbutton</item>
</style>

所以我希望我的应用程序中的所有按钮都采用此设置的样式。我可以完成它的唯一方法是使用

在我的按钮中导入样式

style="@style/ButtonStyle"

“开始测试”按钮通过内部导入设置样式。

有趣的是,为按钮“设置”和“检查传感器”导入了一些样式(如 drawable/deefaultbutton 或居中文本)

<Button
    style="@style/ButtonStyle"
    android:id="@+id/test"
    android:layout_height="50dp"
    android:text="Start Test" />

<Button

    android:id="@+id/settings"
    android:layout_width="150dp"
    android:layout_height="50dp"
    android:text="Settings" />

<Button
    android:id="@+id/checkSensors"
    android:layout_width="150dp"
    android:layout_height="50dp"
    android:text="Check Sensors" />

我的问题是,为什么会发生这种情况,如果不通过“主题”导入就无法将其设置为默认值?

尝试了this 并阅读了this,但它对我不起作用。

【问题讨论】:

    标签: android android-layout themes android-theme android-styles


    【解决方案1】:

    自定义样式应扩展Widget 样式以与buttonStyle 属性一起使用。

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="buttonStyle">@style/Widget.AppCompat.Button.ButtonStyle</item>
    </style>
    <style name="Widget.AppCompat.Button.ButtonStyle">
            <item name="android:textSize">20dp</item>
            <item name="android:gravity">center</item>
            <item name="android:layout_width">150dp</item>
            <item name="android:layout_gravity">center</item>
            <item name="android:layout_marginTop">10dp</item>
            <item name="android:background">@drawable/defaultbutton</item>
    </style>
    

    【讨论】:

    • 这与设置“父母”的方式相同吗?我已经尝试过父母和你的灵魂,不幸的是它对我不起作用。
    • 好的,但是这个解决方案也不起作用:/你知道这是否可能,或者我需要通过@style在activity.xml中设置每个按钮的样式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多