【问题标题】:Theme.AppCompat.Light.DarkActionBar style does not work / loadTheme.AppCompat.Light.DarkActionBar 样式不起作用/加载
【发布时间】:2014-11-13 00:19:16
【问题描述】:

我已经在这里尝试了答案,在您重复回答并对该问题进行排名之前:Theme.AppCompat.Light.DarkActionBar - No resource found

所以...我没有编译错误,应用程序运行,但没有加载基于 Appcompat.Light.DarkActionBar 的样式主题,而是似乎加载了设备默认主题。

仔细观察,我注意到以下几点:

所以,我猜 Eclipse 没有找到 Theme.Appcompat.Light.DarkActionBar 而是加载设备默认值。它似乎也不是唯一找不到的主题。我没有收到任何关于找不到资源的错误。

问题:如何恢复主题?

编辑:我使用 AppCompat-v7 作为项目库并注意正确加载,按照此问题第一行中提到的步骤并尝试更改所有内容。 下面是样式代码,我知道它可以工作,因为在我重新安装 Eclipse 之前它确实可以工作,并且是由主题样式生成器生成的:http://jgilfelt.github.io/android-actionbarstylegenerator/

<style name="Theme.Example" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarItemBackground">@drawable/selectable_background_example</item>
    <item name="popupMenuStyle">@style/PopupMenu.Example</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.Example</item>
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
    <item name="actionDropDownStyle">@style/DropDownNav.Example</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.Example</item>
    <item name="actionModeBackground">@drawable/cab_background_top_example</item>
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_example</item>
    <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Example</item>

    <!-- Light.DarkActionBar specific -->
    <item name="actionBarWidgetTheme">@style/Theme.Example.Widget</item>
</style>

<style name="ActionBar.Solid.Example" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="background">@drawable/ab_solid_example</item>
    <item name="backgroundStacked">@drawable/ab_stacked_solid_example</item>
    <item name="backgroundSplit">@drawable/ab_bottom_solid_example</item>
    <item name="progressBarStyle">@style/ProgressBar.Example</item>
</style>

<style name="ActionBar.Transparent.Example" parent="@style/Widget.AppCompat.ActionBar">
    <item name="background">@drawable/ab_transparent_example</item>
    <item name="progressBarStyle">@style/ProgressBar.Example</item>
</style>

<style name="PopupMenu.Example" parent="@style/Widget.AppCompat.PopupMenu">
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item>
</style>

<style name="DropDownListView.Example" parent="@style/Widget.AppCompat.ListView.DropDown">
    <item name="android:listSelector">@drawable/selectable_background_example</item>
</style>

<style name="ActionBarTabStyle.Example" parent="@style/Widget.AppCompat.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_example</item>
</style>

<style name="DropDownNav.Example" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="android:background">@drawable/spinner_background_ab_example</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_example</item>
    <item name="android:dropDownSelector">@drawable/selectable_background_example</item>
</style>

<style name="ProgressBar.Example" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/progress_horizontal_example</item>
</style>

<style name="ActionButton.CloseMode.Example" parent="@style/Widget.AppCompat.ActionButton.CloseMode">
    <item name="android:background">@drawable/btn_cab_done_example</item>
</style>

<!-- this style is only referenced in a Light.DarkActionBar based theme -->
<style name="Theme.Example.Widget" parent="@style/Theme.AppCompat">
    <item name="popupMenuStyle">@style/PopupMenu.Example</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.Example</item>
</style>

<style name="btnStyleGenoa" parent="@android:style/Widget.Button">
    <item name="android:textSize">15sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:gravity">center</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">0.6</item>
    <item name="android:background">@drawable/button_selector</item>
    <item name="android:paddingLeft">5dp</item>
</style>

<style name="CustomDialogTheme" parent="">
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:padding">0dp</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:listSelector">@drawable/list_selector</item>
</style>

【问题讨论】:

  • 发布您的相关styles.xml 文件。您使用的是哪个版本的 AppCompat-v7?
  • 我正在使用 android-support-v7-appcompat... 或者如何查看 AppCompat-v7 版本??
  • 对于 Eclipse,您可以在 SDK 管理器中查看您下载的版本。它位于底部附近,名为“Android 支持库”。
  • 我获得了 Android 支持库版本 21.0.1

标签: android load themes android-appcompat


【解决方案1】:
<style name="Theme.Example" parent="Theme.AppCompat.Light.DarkActionBar">

从所有parent 属性中删除“@style/”前缀。

【讨论】:

  • 试过了!不好...如前所述和图片所示... Eclipse 甚至没有给我 Theme.AppCompat 的预览,所以它不是我的样式代码家伙...我相信至少...跨度>
  • 请注意左边的预览不是我的风格主题,而是 Theme.AppCompat.Light.DarkActionBar
  • 我现在明白了。拥有@style 前缀肯定会导致您的主题无法正确加载,即使它不会产生构建错误。但它应该加载到设计器中。但是,您确定在 Eclipse 中创建 appcompat 项目时包含了 v4 库 jar 吗?您是否完全遵循了这一点? developer.android.com/tools/support-library/…
  • 是的,我有:/... 这与我在 Java 构建路径下的 Order and Export 选项卡中检查我的项目(不是 AppCompat)的内容有关吗?
  • 有趣的是android 3.x.x版的预览作品!但只有! 2.x 及以上 3 不起作用。我检查了我是否为不同的 android 版本正确安装了所有 SDK!
【解决方案2】:

好吧,既然没有太多细节,我想你可能忘记了你需要在每个活动中扩展 ActionBarActivity。

public class MainActivity extends ActionBarActivity

这个视频很好地解释了它:

https://www.youtube.com/watch?v=h57QpXp2TRg

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 2018-04-22
    • 2021-08-19
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    相关资源
    最近更新 更多