我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。

使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。

我可以在某个地方设置无标题样式的项目吗?


当前回答

将此样式添加到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>

其他回答

我发现了发生这种错误的两个原因。

一个。窗口标志已经在super.onCreate(savedInstanceState)中设置好了;在这种情况下,您可能需要使用以下命令的顺序:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);      

super.onCreate(savedInstanceState);

两个。在标题栏中有Back/Up按钮,这意味着当前活动是另一个活动的分层子活动,在这种情况下,您可能想要注释掉或从onCreate方法中删除这行代码。

getActionBar().setDisplayHomeAsUpEnabled(true);

正确的答案可能是不扩展ActionbarActivity,而只是扩展Activity


如果你仍然使用动作栏活动 这似乎起作用了:

@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>

我可以像斯科特·比格斯写的那样。这种方法很有效。除了没有主题。我的意思是设置菜单的背景是透明的:

只改变

public class MainActivity extends ActionBarActivity {

到Activity或FragmentActivity

public class MainActivity extends Activity  {

然而,我可以让它看起来足够好使用材料设计,而不是删除 actionbar: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53

设置应用程序图标 设置操作栏的颜色以匹配设计。 将图标设置为设置菜单 添加更多图标(顶部按钮)

它是通过实例的材料设计兼容动作栏样式。

在我的例子中,如果你使用的是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>

下面是截图(见高亮代码):

咳咳,您可以将主题应用于XML中的单个活动,例如没有标题。换句话说,将其从应用程序标记中取出,打开标记声明并将其放入所需的活动标记中。

我相信,在2020年,这个问题只有一个答案

将以下行添加到styles.xml中

<item name="windowNoTitle">true</item>