2

我正在构建一个应该能够在 Android 2.1 及更高版本上运行的 Android 应用程序。minSdkVersion设置为7targetSdkVersion设置为14。为了拥有 ActionBar 功能,我正在使用 ActionBarSherlock 库,并根据需要将应用程序的主题设置为Theme.Sherlock(等)的派生类。

除了提供一个 ActionBar,我注意到当我在 Honeycomb/ICS 设备上运行应用程序时,其他一些小部件和对话框现在具有不同的(即 Holo)外观。我想要一个 ActionBar 但保持正常的非 Holo Android 主题 - Holo 样式与应用程序的其余部分不匹配。尤其是 EditText 视图看起来明显不同。

我看到 ActionBarSherlock 在values-11 (Honeycomb) 和values-14 (ICS) 中定义了一些自定义主题,它们继承自Theme.Holovalues-14中还有自定义样式,将 ABS 样式映射到原生样式(因为原生 ActionBar 用于 ICS+)。

我发现我至少必须做以下事情:

  1. 禁用values-11values-14的自定义主题- 这会阻止 Holo 小部件/对话框出现。

  2. 禁用 ICS+ 的 ActionBar 的本机实现 - 这会阻止 ICS 上的崩溃,因为它依赖于作为 Holo 主题的一部分提供的本机 ActionBar。这需要修改库。

  3. 禁用values-14的自定义样式- 这与兼容性 ActionBar 的外观/样式混为一谈。

我不确定是否还有其他我遗漏的问题。有没有人找到一种在不修改库的情况下将非 Holo Android 主题与 ActionBarSherlock 一起使用的好方法?在ICS及以上使用兼容性ActionBar有什么问题吗?

4

0 回答 0