我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
当前回答
只需使用getActionBar().hide();在你的主活动onCreate()方法中。
其他回答
如果你做用户YaW和Doug Paul说的,那么你必须记住在调用setContentView之前必须设置窗口特性。如果不是,您将得到一个异常。
为你使用的主题添加这两个:
<item name="windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
当我尝试使用那些高赞的答案时,我的应用程序总是崩溃。 (我想这和“@android:style”有关吧?)
对我来说,最好的解决方案是使用以下方法:
android:theme="@style/Theme.AppCompat.NoActionBar"
不再有标题栏。只要把它放在<应用程序>…</application>或<activity>…</activity>取决于你是否(不)想要它在整个应用程序或只是一个特定的活动。
现在我做了以下事情。
我声明了一个样式,继承了我的通用样式的所有内容,然后禁用了标题栏。
<style name="generalnotitle" parent="general">
<item name="android:windowNoTitle">true</item>
</style>
现在我可以将此样式设置为我想要隐藏标题栏的每个活动,覆盖应用程序范围的样式并继承所有其他样式信息,因此在样式代码中没有重复。
要将样式应用到特定的Activity,打开AndroidManifest.xml并将以下属性添加到Activity标签中;
<activity
android:theme="@style/generalnotitle">
在这篇文章中提到了它,但没有人明确地解决它,所以这可能会节省人们一些时间。如果你像我一样,有多个类扩展了一个扩展ActionBarActivity的根类,可能不会立即明显地尝试将该活动设置为NoTitleBar/NoActionBar会抛出一个错误,具体来说:
“你需要使用一个主题。AppCompat主题(或后代)
你可以修改扩展到活动。