【问题标题】:How could I use Theme.AppCompat while adding support v7 without resources在没有资源的情况下添加支持 v7 时如何使用 Theme.AppCompat
【发布时间】:2013-12-05 21:44:46
【问题描述】:

我正在尝试使用支持库在我的 android 应用程序中为目标 8-18 设置 ActionBar。按照Android官方的说法,ActionBar的使用是基于支持库v7的Theme.AppCompat。我按照官方指南http://developer.android.com/tools/support-library/setup.html(使用eclipse的“添加资源库”部分),ActionBar 表现良好。但是由于我需要避免添加带有资源的库,所以我想导出一个支持库 v7 的 .jar 文件并将其添加到我的应用程序的 lib 文件夹中,即 android:theme="@android:style/Theme.AppCompat.Light"导致错误:找不到与给定名称匹配的资源(在“主题”处,值为“@android:style/Theme.AppCompat.Light”)。此外,如果我只是添加 android-support-v7.jar,我也不允许使用 Theme.AppCompat。所以任何人都可以弄清楚如何导出支持库v7资源的.jar,这些资源可以以“添加没有资源的库”的方式添加以允许Theme.AppCompat?提前致谢。

【问题讨论】:

  • “但既然我需要避免添加带有资源的库”——嗯……为什么?
  • @CommonsWare 只是因为它是在 Github 上的团队合作,而其他人认为他们应该拉取项目然后他们仍然需要设置库依赖项是不合逻辑的......

标签: android android-actionbar android-support-library


【解决方案1】:

所以任何人都可以弄清楚如何导出支持库v7资源的.jar 可以以“添加没有资源的库”的方式添加以允许Theme.AppCompat?

这是不可能的。 AppCompat 和 ActionBarSherlock —— 两个领先的操作栏向后移植—— 大量使用资源。它不仅仅是Theme.AppCompat(或ABS 的等价物Theme.Sherlock),还包括颜色、尺寸、可绘制对象、布局和字符串等等。你可以通过查看每个项目的源代码来判断。

欢迎您尝试编写自己的操作栏反向移植库,以某种方式避开资源。

或者,如果您碰巧使用的是 Android Studio 和新的基于 Gradle 的构建系统,只需要 AppCompat AAR 文件,资源就会为您处理好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2011-08-05
    • 2021-01-25
    相关资源
    最近更新 更多