【问题标题】:Button not showing, Material Theme not working按钮不显示,材质主题不工作
【发布时间】:2016-06-18 14:36:57
【问题描述】:

我在我的应用程序中遇到了一个非常奇怪的错误。它显示按钮的文本,但不显示按钮本身。这是一个屏幕截图:

然后我检查了主题编辑器以查看可能发生的情况,我进入的内容如下所示:

无论是深色还是浅色,编辑器似乎都无法正确渲染 Material design。例如,当我将其切换到 Holo 时,一切正常。

我的 AndroidStudio 是最新的,我不知道发生了什么,但我也会在这里提供我的 styles.xml 文件:

v21\styles.xml

<resources>>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
        <item name="preferenceStyle">@style/PreferenceThemeOverlay.v14.Material</item>
    </style>

    <style name="MyActionBarTheme" parent="android:Widget.Material.Light.ActionBar">
        <item name="android:background">@color/colorAccent</item>
        <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
    </style>

    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
        <item name="android:textColor">@color/colorPrimary</item>
    </style>

    <style name="AppTheme" parent="android:Theme.Material.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:colorBackground">@color/background_material_light</item>
        <item name="android:colorPrimary">@color/primary_material_light</item>
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
        <item name="preferenceStyle">@style/PreferenceThemeOverlay.v14.Material</item>
    </style>
</resources>

styles.xml

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:colorBackground">@color/background_material_light</item>
        <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
        <item name="preferenceStyle">@style/PreferenceThemeOverlay.v14.Material</item>
    </style>


    <style name="MyActionBarTheme" parent="Widget.AppCompat.ActionBar">
        <item name="android:background">@color/colorAccent</item>
        <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
    </style>

    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/colorPrimary</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
        <item name="preferenceStyle">@style/PreferenceThemeOverlay.v14.Material</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

</resources>

【问题讨论】:

  • 尝试将其更改为 Material Light
  • 你的这条评论让我走上了正轨。这不是我问题的解决方案,但你改变了我的思维方式,朝着正确的方向发展。谢谢你,先生!

标签: android android-studio themes material-design android-styles


【解决方案1】:

好的,我终于找到了导致错误的原因:我的主要活动是扩展AppCompatActivity(这是由 Android Studio 在早期阶段生成的)。当我将其更改为扩展 FragmentActivity 时,一切都像魅力一样。

此解决方案既解决了按钮问题,也解决了主题编辑器问题。当我的主应用程序没有扩展正确的类时,我不知道为什么主题编辑器不会显示自定义材料设计,但是这小段代码更改解决了我的所有问题。

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2018-02-05
    • 1970-01-01
    • 2017-05-10
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    相关资源
    最近更新 更多