アクションバーを完全に無効にする方法


138

次のコードを使用して、ハニカムのアクションバーを非表示にできます。

getActionBar().hide();

しかし、キーボードが開いて、ユーザーが何かをコピーして貼り付けると、アクションバーが再び表示されます。アクションバーを完全に無効にするにはどうすればよいですか?


2
見つかった回答HHH <アクティビティは、Android:テーマ= "@アンドロイド:スタイル/ Theme.NoTitleBar.Fullscreenを" ....>
Biji

1
コピーしようとしたときのアクションバーではなく、デフォルトのビューを貼り付けます。
Padma Kumar 2011

はい、しかしコピー・ペーストの終了後、それはまだ消えません
ビジ

getSupportActionBar()。hide();
Ameya Salagre 2017年

回答:


251

バージョン3.2より前のデバイスでこのバリアントTheme.Holo.Lightを使用して使用したいTheme.Holo.Light.NoActionBar場合は、これをに追加できますstyles.xml

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 

次に、それをアクティビティのテーマとして設定します。

<activity android:theme="@style/NoActionBar" ... />

8
これが正解です。@Bijiのソリューションのようにカスタムテーマを削除しません。
phreakhead 2013

1
通知バーを非表示に設定するための追加のフラグは何ですか?
jesses.co.tt 2014

1
また、ActionBarActivityではなくFragmentActivityから継承する必要があることもわかりました。
Meanman 2014

4
@ jesses.co.tt通知バーは次を使用して削除できます<item name="android:windowFullscreen">true</item>
Mike Baxter

これは私にはうまくいきませんでした。次の使用stackoverflow.com/questions/29790070/...
クリストファー・スミット

116

マニフェストに活動テーマを設定することで、

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

これが唯一の適切な方法のようです。特に 下部に相対
レイアウト

1
残念ながら、これが私が仕事に就くための唯一の方法です。これはカスタムテーマを削除しますがActionBar、私にとってはを完全に削除する唯一の方法です。
RileyE 2013年

3
これは、新しいADTでのAppCompatテーマの適用では機能しません。私はこれと戦うことはないと思います-AppCompatから完全に取り除こうとすることも良い解決策です!私はmonchoteのアプローチ@てみたのだが、私の作品
ericn

これは、<activity android:theme = "@ android:style / Theme.NoTitleBar.Fullscreen">ではなく<activity android:theme = "@ android:style / Theme.NoTitleBar">にする必要があります
Amandeep

Samsung Galaxy J2ではアプリがクラッシュしますが、Nexus 9では問題ありません
Suici Doga


30
<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

多分これはあなたを助ける


3
このメソッドには、最低でもAPIレベル13
Olumide

23

Android Studioのデフォルトで生成されたActivityスーパークラスではActionBarActivity、他の応答のソリューションは機能しません。スーパークラスを変更するだけで解決するには:

public class xxxActivity extends ActionBarActivity{

に:

public class xxxActivity extends Activity {

これでうまくいきました。ご協力いただきありがとうございます。
j_fulch

17

actionBarとTitleなしでフルスクリーンを取得したい場合。

それをstyle.xmlに追加します

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

manifest.xmlでスタイルを使用します。

android:theme="@style/AppTheme.NoActionBar" 

12

カスタムテーマを提供し、アクションバーを表示しない最良の方法は、プロジェクト内のすべてのアクティビティ用のスーパークラスを作成し、そのonCreate()で次のコード行を呼び出すことです-

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

それはいつも私のために働きます。このアプローチの唯一の問題は、アプリを起動すると、数分の1分のアクションバーが表示されることです(アクティビティではなく、アプリ全体)。


12
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}

12

styles.xmlに移動しますこのDarkActionBarをNoActionBarに変更します

style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

7

アクションバーを簡単に強制的に非表示にすることができます:

ActionBar  actionbar = getSupportActionBar();
actionBar.hide();

デフォルトのテーマを使用してください。


7

アクションバーのないテーマが必要な場合は、「NoActionBar」バリアントを使用できます。基本テーマが以下の場合

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

その後、あなたは使うことができます

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

ただし、メインテーマのプロパティ、つまりAppThemeを保持する場合は、次のように実行できます。

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

この方法でベーステーマのすべてのプロパティを保持でき、NoActionBarテーマに明示的に追加する必要はありません:)


6

Holoテーマを使用しないでください。アクションバーが消えます。このコードは、サポートライブラリv7を使用して、API 8以降で動作します。

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>

アクティビティにそのテーマを設定します。

<activity android:theme="@style/NoActionBar" ... />

そしてあなたの活動クラスで。

ActionBarActivityを拡張する場合でも機能します。


6

下の解像度- >値- >のstyles.xml

変化する

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">


5

簡単な解決策はこちらです。

次に示すように、styles.xmlを見つけて、基本アプリケーションのテーマを「Theme.AppCompat.NoActionBar」に変更します。

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>

3

アクションバーを完全に非表示にする手順は次のとおりです。

  1. app / res / values / styles.xmlを開きます。
  2. 「apptheme」という名前のスタイル要素を探します。に似て<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">いるはずです。
  3. 親を名前に「NoActionBar」を含む他のテーマに置き換えます。

    a。activity_main.xmlのデザインタブに切り替えて、UIのテーマドロップダウンリストで提供される各テーマを試すことによって、テーマの外観を確認することもできます。

  4. MainActivityAppCompatActivityを拡張する場合は、必ずAppCompatテーマを使用してください。


3

onCreate前にあなたのメソッドにこのコードを入力してくださいsetContentView

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

3

私はこれに対するデザイナーのアプローチを投稿したいと思います。これにより、デザインがビジネスロジックから分離されます。

ステップ1.(res-> values-> styles.xml)で新しいスタイルを作成する:基本的には、異なる親を持つ全体的なスキームのコピーです-parent = "Theme.AppCompat.Light.NoActionBar"

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

        <item name="android:windowNoTitle">true</item>
    </style>

ステップ2:AndroidManifest.xmlで、このテーマを目的のアクティビティに追加します。たとえば、アクションバーなしのメインアクティビティが必要なので、以下のように追加します。

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

これは多くのことを試した後の私にとって最良の解決策です。


2

onCreate関数に次のコードを追加します

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

android.support.v7.app.ActionBarをインポートするだけです


2

styles.xmlファイル内のデフォルトのテーマの名前を次のように変更して、必ず新しいテーマを作成してください。

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

そして、あなたの下のドロップダウンからmain_activity.xmlあなたがあなたのテーマと呼んだものにテーマを変更します。


1

アクションバーを削除しながらViewPagerを保持したい別の興味深い解決策は、スタイルをshowにすることです

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

これは、AndroidのほとんどのDialerアプリケーションがアクションバーなしでViewPagerを表示する方法です。

参照:https : //github.com/CyanogenMod/android_packages_apps_Dialer


このソリューションでは、上部に白い領域が残ります。
Felipe FMMobile 2014年

これは、NoActionBarStyleの親を@ style / Widget.AppCompat.ActionBar.TabBar(ViewPagerを使用しています)に変更した場合、Theme.AppCompat.Lightを備えたAndroid 2.3で私にとってはうまくいきました
TouchBoarder

1

マニフェストでこれを試してください

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >

1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);

1

ActionBarAndroidで無効にする方法は2つあります。

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

1

これをstyles.xmlファイルで使用します。


<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>

0

私はこのソリューションを使用します:

マニフェストのアクティビティタグ内:

android:label="@string/empty_string"

そしてstrings.xmlで:

<string name="empty_string">""</string>

このようにして、タイトルとともにActionBar(またはツールバー)を保持しますが、アクティビティが作成されると、タイトルは自動的に空になります。


0

不思議なことに、4.4.2(API 19)を実行するNexus 7でビルドする場合、これらのどれも私にはうまくいきませんでした。ほとんどの場合、少なくとも最新バージョンのAndroid Studio(1.2.1.1)では、空のアクティビティアプリを作成した後、次のようになります。

android:theme = "@ style / AppTheme"

アクティビティ要素ではなく、アプリケーション要素にあります。上記のコードを削除するか、次のように変更しようとした場合:

android:theme = "@ android:style / Theme.Holo.Light.NoActionBar"

アプリは実行されません...これが発生している場合は、styles.xmlファイル(res> values> styles.xml)に移動し、次のブロックのように.NoTitleBarを親の最後に追加します。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

AndroidManifestファイルを変更する必要はありません。


0

activity_main.xmlで、次の行で調整できます。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

時々このようなものが見られるときはここをクリックから、「noActionBar」テーマを選択できます。

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.