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

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

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


当前回答

添加主题@style/ theme . appcompat . light。在AndroidManifest.xml中的NoActionBar

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

其他回答

如果你替换了DarkActionBar的定义,你只需要改变style .xml中的AppTheme样式

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

对NoActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

在androidmanifest .xml中定义的AppTheme

或者如果你想隐藏/显示标题栏在任何点:

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:theme="@android:style/Theme.Translucent.NoTitleBar"

添加以下行到您的Java文件,

  this.requestWindowFeature(Window.FEATURE_NO_TITLE);

WindowManager。LayoutParams在Android Studio文档说FLAG_FULLSCREEN是“窗口标志:隐藏所有的屏幕装饰(如状态栏),而这个窗口显示。”所以这个标志不会让我的内容充满整个屏幕。

我使用@YaW的解决方案从我的活动中删除标题和通知。但是,标题和通知将在显示对话框时出现。因此,要将此应用到一个对话框,请将该对话框子类化,如下所示:

public class MyDialog extends android.app.Dialog{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);

        setContentView(R.layout.mydialog);
    }    
}