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