web-dev-qa-db-ja.com

Android:特定のアクティビティでActionBarを非表示にする方法

スプラッシュスクリーン、マップ、およびいくつかの通常のスクリーンを備えたシンプルなデモアプリケーションを開発しました。

ロゴを含むアクションバーが上部にあります。私の携帯電話(Galaxy s1 I9000 V2.3)ではすべて正常に見えますが、Galaxy s2 v4でテストすると、アクションバーがスプラッシュ画面とマップ画面にも表示されます。

SpalshとmapアクティビティはActionBarActivityからも継承していません。どのようにそれを可能にし、どうすればそれを消滅させることができますか?

マニフェスト:

<application
        Android:allowBackup="true"
        Android:icon="@drawable/ic_launcher"
        Android:theme="@style/Theme.AppCompat.Light" >
        <activity
            Android:name=".HomeActivity"
            Android:icon="@drawable/Android_logo"
            Android:label=""
            Android:logo="@drawable/Android_logo" >

            <!--
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
            -->
        </activity>
        <activity
            Android:name=".MapActivity"
            Android:label="" >
        </activity>
        <activity
            Android:name=".PackageActivity"
            Android:icon="@drawable/Android_logo"
            Android:label=""
            Android:logo="@drawable/Android_logo" >
        </activity>
        <activity
            Android:name=".SplashActivity"
            Android:label="" >
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

MapActivityの定義(長いため、定義のみを含めました):

public class MapActivity extends FragmentActivity implements LocationListener

スプラッシュアクティビティ:

import Android.app.Activity;
import Android.content.Intent;
import Android.os.Bundle;
import Android.os.Handler;
import Android.support.v7.app.ActionBar;
import Android.support.v7.app.ActionBarActivity;

public class SplashActivity extends Activity{

    private static final long SPLASH_DISPLAY_LENGTH = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
                SplashActivity.this.startActivity(mainIntent);
                SplashActivity.this.finish();
            }
        }, SPLASH_DISPLAY_LENGTH);

    }

}
79
Tomer

AndroidManifest.xmlのアクティビティのテーマで次を適用します。

<activity Android:name=".Activity"
    Android:label="@string/app_name"
    Android:theme="@Android:style/Theme.NoTitleBar">
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />
        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

これでうまくいくはずです。

113
Si8

特定のアクティビティhideを実行する方法について尋ねているので、これが必要です:

getSupportActionBar().hide(); 
95
erluxman

1. manifest.xmlファイルに移動します。

2 .Find、アクションバーを非表示にするactivity tagadd

Android:theme = "@ style/Theme.AppCompat.NoActionBar"

           <activity
            Android:name=".MainActivity"
            Android:theme="@style/Theme.AppCompat.NoActionBar"
            >
25
Prateek Joshi

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のアクティビティでスタイルを使用します。

<activity ....
      Android:theme="@style/AppTheme.NoActionBar" > ......
</activity> 
18
reza.cse08

ActionBarは通常Fragmentsに沿って存在するため、Activityから非表示にできます。

getActionbar().hide();
getActionbar().show();

そしてFragmentからそれを行うことができます

getActivity().getActionbar().hide();
getActivity().getActionbar().show();
13
sandalone

Theme.AppCompat.Lightを使用している場合、より適切なものはTheme.AppCompat.Light.NoActionBarです。

Theme.AppCompat.NoTitleBarを使用するとボタンテキストが非表示になるため、Theme.AppCompat.Light.NoActionBarを使用していることがわかりました。

<activity Android:name=".Activity"
    Android:label="@string/app_name"
    Android:theme="@Android:style/Theme.AppCompat.Light.NoActionBar">
    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />
        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
8
joshgoldeneagle

これは私のために働く!マニフェストのアクティビティにこれを入れてください

<activity
   // ...
   Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
   // ...
   </activity>

次のように、styles.xmlでカスタムテーマを作成することもできます。

<style name="Theme.MyCustomTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name = "Android:windowActionBar">false</item>
        <item name = "Android:windowNoTitle">true</item>
        // more custom...
    </style>

この助けを願っています。

5
Kyo Huu

ロープロファイルモードを使用できます こちらを参照

画面に存在する場合はナビゲーションボタンも淡色表示されるSYSTEM_UI_FLAG_LOW_PROFILEを検索します。

5
TMH

AndroidManifest.xmlのアクティビティのテーマで次を適用します。

<activity Android:name=".DashboardActivity"
        Android:theme="@style/AppFullScreenTheme">
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

次に、style.xmlのスタイルに以下を適用します

<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>
4

上記の回答は、ActionBarに役立ちます。追加するには、スプラッシュスクリーンを使用している場合に次のコードを使用します。コンテンツビューを設定する前にこれを使用します。

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

明確にするために、次のようにします。

    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);         
    setContentView(R.layout.activity_main);

これにより、画面が全画面になります。つまり、ネットワークバーなどが表示されているトップバーを削除します。

4
BlueLeaf

これはAPI 27で機能します

Styles.xmlで、コードを次のように置き換えます。

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

次に、ツールバーに次のコードを配置するファイル(activity_list.xmlなど)に追加します。

<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:background="@color/colorPrimary"/>

問題がある場合は、線形レイアウトに切り替えます(このコードがテストされているためです)

1
DragonFire

ここ から:

Android 3.0(APIレベル11)以降、デフォルトのテーマを使用するすべてのアクティビティには、アプリバーとしてActionBarがあります。ただし、アプリバーの機能は、さまざまなAndroidリリースでネイティブActionBarに徐々に追加されています。その結果、ネイティブのActionBarは、デバイスが使用しているAndroidシステムのバージョンに応じて異なる動作をします。対照的に、最新の機能はToolbarのサポートライブラリのバージョンに追加され、サポートライブラリを使用できるすべてのデバイスで使用できます。

そのため、1つのオプションは(アプリのmanifest.xmlファイルで)ActionBarを完全に無効にし、ActionBarを必要とするすべてのページにツールバーを追加することです。

(ステップバイステップの説明については上記のリンクに従ってください)

1
LoMaPh

AndroidManifest.xmlを置き換えます

Android:theme="@style/FullscreenTheme"

Android:theme="@style/Theme.Design.NoActionBar"
0
Tarik Billa