私は同じ問題に遭遇しました。私は最終的に合理的な解決策を思いつきました。私は 11 のターゲット API を持つ最小 API バージョン 8 を持っています。ホロ スタイルも好きではないので、次のようにスタイルをオーバーライドします。
まず、「res/values-v11」フォルダーを作成する必要があります。おそらく、既に「values」フォルダーがあるので、同じレベルで「values-v11」を作成するだけです (ターゲット API レベルが何であるかは関係ありません...「values-v11」を使用します)。
それが作成されたら、各フォルダーにテーマを含む XML ドキュメントを作成します。元の値フォルダーは、android 3.0 (< api 11) 未満のすべてに使用されます。テーマは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Black.OptionalActionBar" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowNoTitle">True</item>
<item name="android:windowActionBar">False</item>
</style>
<style name="OptionalVisibility">
<item name="android:visibility">visible</item>
</style>
</resources>
Holoテーマを使用していないことに注意してください。代わりに、Theme.Black.NoTitleBarテーマを親として使用しています。そこから、API 11 よりも下位のウィンドウ タイトルとアクション バーを非表示にするオプションを設定しました。
次に、「values-v11」フォルダーに 2 つ目のテーマ ドキュメントを作成し、次のように設定します。
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Black.OptionalActionBar" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
<item name="android:actionBarStyle">@android:style/Widget.Holo.ActionBar</item>
</style>
<style name="OptionalVisibility">
<item name="android:visibility">invisible</item>
<item name="android:height">1dp</item>
</style>
</resources>
上記のテーマでは、アクション バーを有効にし、 Holoテーマで設定しますが、他のすべての要素はそのままにします。そのため、アクション バーは「ホロ」のように見えますが、それ以外はすべて下位バージョンで表示されているとおりのままです (そして、ホロに付属する醜いテキスト エントリは表示されません)。
次に、マニフェストで、アクションバーを表示したい場合は、そのアクティビティのテーマをandroid:theme="@style/Theme.Black.OptionalActionBar"
私がこれを行ったのは、現在非推奨になっているハードウェア メニュー ボタンに依存してレイアウトに失敗したためです。上記のテーマを使用して、必要に応じてアクション バーを設定したり、古いデバイスの場合はメニューとして残したりできます。次に、2.0 から 4.0 までをシームレスにサポートするために、メニュー作成メソッドに 1 つのプロパティを設定するだけです。
いずれにせよ、これが必要な場所に到達するかどうかを確認してください。
私の考えでは、アクションバーをリクエストしたり、コードで何かをしたりすることを覚えておく必要がないため、他のアプローチよりもはるかに簡単です。アクティビティにテーマを設定するだけで、すぐに始められます。