仅为一个活动隐藏ActionBar标题

时间:2015-02-17 16:32:47

标签: android android-actionbar android-styles

如果我为整个应用程序应用主题,它会成功隐藏ActionBar标题:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:displayOptions">showHome|useLogo</item>
</style>
</resources>

在清单中分配

    <application
    android:name="myapp"
    android:allowBackup="true"
    android:icon="@drawable/action_bar_icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

我需要隐藏在一项活动中的ActionBar标题。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
 ...other things...
</style>

<style name="MainActivityTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>

<style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:displayOptions">showHome|useLogo</item>
</style>
</resources>

明确为一项活动设置此主题:

<LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity"
   android:id="@+id/mainLayout"
   android:orientation="vertical"
   android:theme="@style/MainActivityTheme">

它仍会在MainActivity ActionBar中显示标题。我知道如何在java中隐藏标题,我需要知道我在XML中做错了什么。

3 个答案:

答案 0 :(得分:4)

在清单中设置活动的主题。

<activity
    android:name=".MyActivity"
    android:theme="@style/MainActivityTheme" />

答案 1 :(得分:2)

您可能想要创建一个隐藏操作栏的子主题:

<style name="AppTheme.NoActionBar">
    <item name="android:windowActionBar">false</item>
</style>

然后将其应用于清单中的活动,如下所示:

<activity android:name="NonActionBarActivity"
          android:theme="@style/AppTheme.NoActionBar" />

使用点符号(AppTheme.NoActionBar)可使此NoActionBar主题继承AppTheme的所有内容,并覆盖android:windowActionBar上的设置。如果您愿意,可以明确记下父母:

<style name="AppThemeWithoutActionBar" parent="AppTheme">
    <item name="android:windowActionBar">false</item>
</style>

此外,如果您正在使用AppCompat库,您可能希望在子主题中添加无名称空间版本。

    <item name="windowActionBar">false</item>

答案 2 :(得分:0)

如果您要删除actionbar title,请在label文件中的<activity>标记中删除 manifest属性。

,例如,

<activity
        android:name=".YourActivityName"
        android:label="@string/title" />

删除后,

<activity
        android:name=".YourActivityName" />

完成!