我正在构建一款能够在Android 2.1及更高版本上运行的Android应用。 minSdkVersion
设置为 7 ,targetSdkVersion
设置为 14 。为了拥有ActionBar功能,我正在使用ActionBarSherlock库并根据需要将应用程序的主题设置为Theme.Sherlock
(等)的衍生物。
除了提供ActionBar之外,我注意到当我在Honeycomb / ICS设备上运行应用程序时,其他一些小部件和对话框现在具有不同的(即Holo)外观。我希望有一个ActionBar,但保持正常的非Holo Android主题 - Holo样式与应用程序的其余部分不太匹配。特别是EditText视图看起来有很大不同。
我看到ActionBarSherlock在 values-11 (Honeycomb)和 values-14 (ICS)中定义了一些自定义主题,它继承自 Theme.Holo < / em>的。 values-14 中还有自定义样式,它们将ABS样式映射到本机样式(因为本机ActionBar用于ICS +)。
我发现至少我必须做以下事情:
禁用 values-11 和 values-14 的自定义主题 - 这会停止显示Holo小部件/对话框。
禁止使用ActionBar for ICS +的本机实现 - 这会停止ICS上的崩溃,因为它依赖于作为Holo主题的一部分提供的本机ActionBar。这需要修改库。
禁用 values-14 的自定义样式 - 这与兼容性ActionBar的外观/样式相混淆。
我不确定是否还有其他问题我错过了。有没有人找到一个很好的方法来使用非Holo Android主题与ActionBarSherlock,而无需修改库?在ICS及以上版本中使用兼容性ActionBar是否有任何问题?