だから私はこれに対する解決策を見つけましたが、AndroidManifest を介して適用されるスタイルを使用します (したがって、コードは必要ありません)。AppCompat ライブラリを使用している場合にのみ、これはほぼ確実に機能することに注意してください。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..."
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="19" />
<application
android:allowBackup="false"
android:icon="@drawable/launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar">
<activity
android:label="@string/log_in"
android:name=".activities.LogInActivity"
android:parentActivityName=".activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
<activity
android:label="@string/app_name"
android:name=".activities.MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="@string/sign_up"
android:name=".activities.SignUpActivity"
android:parentActivityName=".activities.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainActivity" />
</activity>
</application>
</manifest>
グローバル テーマをタグに適用したディレクトリと、独自のタグを介し<application>
てクラスに個別に適用されたテーマを取得したことに注目してください。これは、アクション バーを非表示にしたい唯一のアクティビティです。それ以外の場所では、それを表示したい (そのため、グローバル アプリケーション テーマから継承できるようにするため、他のアクティビティに個別のテーマを適用していません)。MainActivity
<activity>
Theme.AppCompat.Light.NoActionBar
しかし、実際には存在しないことがすぐにわかります。これは、そのスタイルを自分で作成する必要があったためです。これには 2 つの異なるstyles.xml
ファイルが必要です。
値/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.AppCompat.Light.NoActionBar" parent="Theme.AppCompat.Light">
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
値-v11/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.AppCompat.Light.NoActionBar" parent="Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
フラグはAndroid API バージョン 11より前には存在しなかっstyles.xml
たため、これには 2 つの異なるファイルを使用する必要があります。android:windowActionBar