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); 
这将使您的屏幕全屏幕,即删除顶部的酒吧,你看到网吧等