我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@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>
其他回答
WindowManager。LayoutParams在Android Studio文档说FLAG_FULLSCREEN是“窗口标志:隐藏所有的屏幕装饰(如状态栏),而这个窗口显示。”所以这个标志不会让我的内容充满整个屏幕。
我发现了发生这种错误的两个原因。
一个。窗口标志已经在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);
在我的例子中,我的活动是扩展AppCompatActivity。
class MyActivity: AppCompatActivity(){
...
}
所以,其他答案都不管用。 我必须这样做:
class MyActivity: AppCompatActivity(){
this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
}
它确实有效!
如果你的活动扩展了AppCompatActivity,只要在requestWindowFeature(…)之前添加“support”即可。
简单地改变你的应用主题的父标签为" theme . appcompat . light . noactionbar "
如果你使用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>到它。