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

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

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


当前回答

对我有用的方法:

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);
}

在显式中继承样式: <活动android: name = "。MainActivity @style / generalnotitle“android:主题= >

其他回答

在这篇文章中提到了它,但没有人明确地解决它,所以这可能会节省人们一些时间。如果你像我一样,有多个类扩展了一个扩展ActionBarActivity的根类,可能不会立即明显地尝试将该活动设置为NoTitleBar/NoActionBar会抛出一个错误,具体来说:

“你需要使用一个主题。AppCompat主题(或后代)

你可以修改扩展到活动。

正确的答案可能是不扩展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

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

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

您可以在java文件中使用此代码

在设置或加载视图之前添加这一行

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main);

简单地改变你的应用主题的父标签为" theme . appcompat . light . noactionbar "

我使用@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);
    }    
}