Answers:
使用您的onCreate()
方法执行此操作。
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here);
this
指Activity
。
您可以修改AndroidManifest.xml
:
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
或android:theme="@android:style/Theme.Black.NoTitleBar"
在不需要全屏活动时使用。
注意:如果以前使用过“默认”视图,则可能还应该将父类从更改AppCompatActivity
为Activity
。
android:theme="@android:style/Theme.Black.NoTitleBar"
除非您正在制作游戏,否则它可能会更有用
我现在做了以下工作。
我声明了一种样式,该样式继承了我的常规样式中的所有内容,然后禁用了titleBar。
<style name="generalnotitle" parent="general">
<item name="android:windowNoTitle">true</item>
</style>
现在,我可以为要隐藏标题栏的每个Activity设置此样式,以覆盖应用程序范围的样式并继承所有其他样式信息,因此样式代码无需重复。
要将样式应用于特定的Activity,请打开AndroidManifest.xml
以下属性并将其添加到activity
代码中;
<activity
android:theme="@style/generalnotitle">
我不喜欢,this.requestWindowFeature(Window.FEATURE_NO_TITLE);
因为标题栏会短暂出现,然后消失。
我也不喜欢,android:theme="@android:style/Theme.NoTitleBar"
因为我丢失了新设备用户已经习惯的所有3.0+ Holo更改。所以我遇到了这个解决方案。
在res / values文件夹中,创建一个名为styles.xml的文件(如果尚不存在)。在该文件中放置以下代码:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>
接下来,使用另一个styles.xml文件创建一个res / values-v11(可能再次存在)。在该文件中放置以下代码:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>
而且,如果您的目标是4.0+,请使用另一个styles.xml文件(是的,可能已经存在)创建一个res / values-v14文件夹。在该文件中放置以下代码:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
<style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
<style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>
最后,在创建所有这些文件之后,打开您的AndroidManifiedt.xml文件,您可以添加代码:
android:theme="@style/Theme.NoTitle"
到不需要标题的活动的活动标签,或者将其应用到整个应用程序的应用程序标签。
现在,您的用户将获得与他们的设备版本相关的主题以及所需的屏幕布局。
PS将值更改为android:theme="@style/Theme.FullScreen"
将具有相同的效果,但也将删除通知栏。
可以按照开发者Android页面上提到的两种方式删除标题栏:
在manifest.xml
文件中:
application
如果要针对应用程序中的所有活动将其删除,请添加以下内容:
<application android:theme="@android:style/Theme.Black.NoTitleBar">
或针对特定活动:
<activity android:theme="@android:style/Theme.Black.NoTitleBar">
正确的答案可能是不扩展ActionbarActivity而是扩展Activity
如果您仍然使用actionbar活动,则此方法有效:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); //<< this
setContentView(R.layout.activity_main);
}
似乎这也可行:
styles.xml:
<style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
<item name="android:windowNoTitle">true</item> <!-- //this -->
</style>
我可以像Scott Biggs所写的那样。这种作品。除了没有主题。我的意思是设置菜单的背景是透明的:
只是改变
public class MainActivity extends ActionBarActivity {
到Activity或FragmentActivity
public class MainActivity extends Activity {
但是我可以使用材质设计使其看起来足够好,并且不删除操作栏: https
它以材料设计兼容性操作栏样式为例。
什么对我有用:
1-在styles.xml中:
<style name="generalnotitle" parent="Theme.AppCompat.Light" >
<item name="android:windowNoTitle">true</item> <!-- //this -->
</style>
2在MainActivity中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); //<< this
setContentView(R.layout.activity_main);
}
在清单中继承样式:
<activity android:name=".MainActivity" android:theme="@style/generalnotitle">
getSupportActionBar().hide();
在onCreate(){}中可以完成工作
如果您使用该this.requestWindowFeature(Window.FEATURE_NO_TITLE)
功能,则在活动开始时动画启动过程中,用户仍然可以看到标题栏onCreate
。如果您@android:style/Theme.Black.NoTitleBar
按如下所示使用,则启动动画期间将不会显示标题栏。
<activity
android:name=".MainActivity"
android:label="My App"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:screenOrientation="portrait">
上面的示例显然将覆盖现有的应用程序主题,如果已有主题,则将其添加<item name="android:windowNoTitle">true</item>
到其中。
当我尝试使用所有这些高评价的答案时,我的应用程序总是崩溃。(我认为这与“ @android:style”有关?)
对我来说最好的解决方案是使用以下方法:
android:theme="@style/Theme.AppCompat.NoActionBar"
没有标题/标题栏了。只需将其放在<application>...</application>
或<activity>...</activity>
取决于您是否(不想)在整个应用程序中还是仅在特定活动中使用它。
只需getActionBar().hide();
在您的主要活动onCreate()
方法中使用即可。
AppTheme
如果您从以下位置替换定义,则只需更改Style.xml中的样式DarkActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
至 NoActionBar
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
AndroidManifast.xml中定义的AppTheme
对于AppCompat
,以下解决方案对我有用:
添加新的主题样式,styles.xml
并且您的和都没有操作栏parent="Theme.AppCompat.NoActionBar"
。
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@color/colorPrimary</item>
</style>
现在,在您的启动屏幕活动中实现相同的主题样式 androidManifest.xml
<activity
android:name=".ActivityName"
android:theme="@style/SplashTheme"> // apply splash them here
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
结果如下:
您可以在Java文件中使用此代码
在设置或加载视图之前添加此行
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
将两者都添加为您使用的主题:
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
导致应用程序崩溃。可能就是@ChrisAllinson的意思
将此样式添加到您的style.xml文件中
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
之后,将此样式名称引用到您不想看到标题栏的特定活动的androidManifest.xml中,如下所示。
<activity android:name=".youractivityname"
android:theme="@style/AppTheme.NoActionBar">
</activity>
android:
在第一个代码块中的名称之前忘记了前缀:)
或者,如果您想随时隐藏/显示标题栏:
private void toggleFullscreen(boolean fullscreen)
{
WindowManager.LayoutParams attrs = getWindow().getAttributes();
if (fullscreen)
{
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
}
else
{
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
}
getWindow().setAttributes(attrs);
}
就我而言,如果您使用的是android studio 2.1,并且您的编译SDK版本为6.0,则只需转到manifest.xml文件,然后更改以下代码:
这是代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lesterxu.testapp2">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这解决了我的问题
在显示我的活动时:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在“ AppTheme”名称下的样式中:
<resources>
<!-- Base application theme. -->
<style name="AppTheme"
parent="Theme.AppCompat.Light.NoActionBar">
**<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>**
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
要隐藏标题栏和动作栏,我这样做:
在清单的活动标签中:
android:theme="@style/AppTheme.NoActionBar"
在Activity.java中的setContentView之前:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
即
//删除标题栏
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//删除通知栏
this.getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
注意:您需要保留这些行之前setContentView
第一个答案是闪石。这是我的解释:添加:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
在oncreate()方法中。
之前:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
(不仅在setContentView之前),如果不这样做,您将被强制关闭。+1这个答案。
我发现了可能发生此错误的两个原因。
一。在内部已经设置了Window标志的super.onCreate(savedInstanceState);
情况下,您可能需要使用以下命令顺序:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
二。您在TitleBar内有Back / Up按钮,这意味着当前活动是另一个活动的层次结构子级,在这种情况下,您可能需要注释掉该行或将其从onCreate
方法内部删除。
getActionBar().setDisplayHomeAsUpEnabled(true);
这就是完整代码的样子。请注意android.view.Window的导入。
package com.hoshan.tarik.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
}
像这样在AndroidManifest.xml的活动中添加主题@ style / Theme.AppCompat.Light.NoActionBar
<activity
android:name=".activities.MainActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
</activity>
添加清单文件,
android:theme="@android:style/Theme.Translucent.NoTitleBar"
将以下行添加到ur java文件中,
this.requestWindowFeature(Window.FEATURE_NO_TITLE);