我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
我想为我的一些活动隐藏标题栏。问题是,我应用了一个风格,我所有的活动,因此我不能简单地设置主题@android:style/ theme . notitlebar。
使用NoTitleBar主题作为我的样式的父主题将从我的所有活动中删除标题栏。
我可以在某个地方设置无标题样式的项目吗?
当前回答
在这篇文章中提到了它,但没有人明确地解决它,所以这可能会节省人们一些时间。如果你像我一样,有多个类扩展了一个扩展ActionBarActivity的根类,可能不会立即明显地尝试将该活动设置为NoTitleBar/NoActionBar会抛出一个错误,具体来说:
“你需要使用一个主题。AppCompat主题(或后代)
你可以修改扩展到活动。
其他回答
当我尝试使用那些高赞的答案时,我的应用程序总是崩溃。 (我想这和“@android:style”有关吧?)
对我来说,最好的解决方案是使用以下方法:
android:theme="@style/Theme.AppCompat.NoActionBar"
不再有标题栏。只要把它放在<应用程序>…</application>或<activity>…</activity>取决于你是否(不)想要它在整个应用程序或只是一个特定的活动。
在我的例子中,我的活动是扩展AppCompatActivity。
class MyActivity: AppCompatActivity(){
...
}
所以,其他答案都不管用。 我必须这样做:
class MyActivity: AppCompatActivity(){
this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
}
它确实有效!
如果你的活动扩展了AppCompatActivity,只要在requestWindowFeature(…)之前添加“support”即可。
标题栏可以用两种方式删除,如开发者Android页面所述:
在manifest.xml文件中:
如果你想为应用程序中的所有活动删除它,请在应用程序中添加以下内容: <应用android:主题= " @android:风格/ Theme.Black.NoTitleBar”> 或用于某一特定活动: <活动android:主题= " @android:风格/ Theme.Black.NoTitleBar”>
咳咳,您可以将主题应用于XML中的单个活动,例如没有标题。换句话说,将其从应用程序标记中取出,打开标记声明并将其放入所需的活动标记中。
你可以修改AndroidManifest.xml:
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
或者使用android:theme="@android:style/ theme . black。NoTitleBar"如果你不需要全屏活动。
注意:如果你之前使用了一个'default'视图,你可能也应该把父类从AppCompatActivity改为Activity。