Android:如何隐藏某些活动的ActionBar

我已经开发了一个简单的演示应用程序,一个闪屏,一个地图和一些常规的屏幕。

我在顶部有一个标识的操作栏。 在我的手机(Galaxy s1 I9000 V2.3)上看起来都不错,但是当我在Galaxy s2 v4上testing时,操作栏也出现在启animation面和地图画面中。

spalsh和map活动甚至不是从ActionBarActivityinheritance的,所以这怎么可能,我怎样才能让它消失?

performance:

<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); } } 

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> 

这应该够了吧。

当你在问如何隐藏某个活动时, 我想.hide(); 是你需要的

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

要么

 getSupportActionBar().hide(); or getActionBar().hide(); 

1.转到您的manifest.xml文件。

2. Find您要隐藏您的ActionBar的activity tag ,然后add

机器人:主题= “@风格/ Theme.AppCompat.NoActionBar”

  <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar" > 

ActionBar通常沿着Fragments存在,所以从Activity可以隐藏它

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

并从Fragment你可以做到这一点

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

如果你想获得全屏没有actionBar和标题。

将其添加到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> 

如果您使用的是Theme.AppCompat.Light,则更好的等效方法是Theme.AppCompat.Light.NoActionBar。

我发现使用Theme.AppCompat.NoTitleBar导致我的button文本是不可见的,所以我使用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> 

您可以使用低调模式请参阅此处

只要searchSYSTEM_UI_FLAG_LOW_PROFILE ,如果它们出现在屏幕上,也会使导航button变暗。

上面的答案将有助于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); 

这将使您的屏幕全屏幕,即删除顶部的酒吧,你看到网吧等