web-dev-qa-db-ja.com

ダイアログテーマでActionBarActivityまたはAppcompatActivityを拡張するアクティビティからタイトルバーを削除する方法

私のベースアクティビティはこれを拡張するため、AppcompatActivityの前後にActionBarActivityからテーマTheme.AppCompat.Light.Dialogでアクティビティを拡張する必要がありました。

しかし、新しいappcompat v7(v22)ライブラリでは、windowActionBar = false、Android:windowNoTitle = trueの項目でカスタムスタイルを使用しているにもかかわらず、アクティビティでタイトルバーが表示され始めました。ただし、appcompatライブラリがアップグレードされるまで、このような問題は発生せず、タイトルバーは表示されませんでした。

私のアクティビティがFragmentActivityを拡張する場合、すべてが問題なく、ダイアログアクティビティがAppcompatActivityから拡張するという悪いパターンを使用している可能性があることを理解していますが、タイトルバーを削除する方法はありますか?

28

私は同じ問題を抱えていて、解決するために次のようなことをする必要がありました(「Android:windowNoTitle」の代わりに「windowNoTitle」の使用に注意してください)

<style name="Theme.MyDialog" parent="@style/Theme.AppCompat.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
62
John O'Reilly

試して

  getSupportActionBar().hide() 

appCompatActivityを使用している場合

そして

 getActionBar().hide() 

アクティビティがActionBarActivityを拡張する場合。それが役に立てば幸い。

13
Krishna

hide()を呼び出すことにより、実行時にアクションバーを非表示にできます。例えば:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();
13
saksham agarwal

AppCompatActivityクラスを拡張するクラスのアクションバーを解決するには、style.xmlファイルのメインテーマから新しいテーマ拡張を定義することから始めます。

style.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

androidManifest.xmlで必要なアクティビティにnoactionbarテーマを実装します。このヘルプを願っています:)

8
Febriansyah

AppCompatテーマで機能するのは1つだけです-supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

8
Andoctorey

サポートライブラリを使用している場合:

getSupportActionBar().setDisplayShowTitleEnabled(false);

そうでない場合は使用する

getActionBar().setDisplayShowTitleEnabled(false);
7
Obaidah

Android:theme="@style/AppTheme.NoActionBar"AndroidManifest.xmlを追加すると、私の場合はうまくいきます。

@Brexx Galangueソリューションでは、次のランタイムエラーが発生しました。

Java.lang.RuntimeException:アクティビティを開始できません
原因:Java.lang.IllegalStateException:このアクティビティでは、Theme.AppCompatテーマ(または子孫)を使用する必要があります。

1
Marc