【问题标题】:Remove the title text from the action bar in one single activity在单个活动中从操作栏中删除标题文本
【发布时间】:2012-08-16 08:15:47
【问题描述】:

我在我的活动中添加了一个带有下拉菜单的操作栏,但它也显示了应用程序名称。

我的每个活动都有一个操作栏,每个活动都使用主题@android:style/Theme.Holo.Light。一个是我的活动屏幕,我想用下拉/微调菜单显示操作栏,但我想隐藏应用程序标题。

我在另一个 SO 帖子上看到 this solution,但它需要我更改全局主题设置,如果我理解正确,这种方法会从我的所有操作栏中删除标题。

我该怎么做?


截图如下:

【问题讨论】:

    标签: android


    【解决方案1】:

    可以用一个漂亮的衬里来完成

    getActionBar().setDisplayShowTitleEnabled(false)
    

    这将只隐藏标题。如果您还想隐藏主页标志

    getActionBar().setDisplayShowHomeEnabled(false);
    

    使用 AppCompat 支持库时,应将 getActionBar() 替换为 getSupportActionBar()。还建议您在更改其值之前检查 ActionBar 是否为空。

    ActionBar actionBar = getSupportActionBar()
    if (actionBar != null) {
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowHomeEnabled(false);
    }
    

    【讨论】:

    • @Drdavidpier 取决于状态。查看 Android 生命周期。存在尚未创建操作栏的状态
    【解决方案2】:

    对于这种简单的东西,你只需要去源头找到答案: 这里是完整的解释:http://developer.android.com/guide/topics/ui/actionbar.html#Dropdown

    还有一些指导代码,将微调器包含在操作栏上:

     ActionBar actionBar = getActionBar();
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    

    之后只是为更改设置一个监听器并设置一个微调器适配器。

    你可以使用:

     setTitle("");
    

    删除标题。 我一直在这里检查我的代码,你也可以试试:

     requestWindowFeature(Window.FEATURE_NO_TITLE);
    

    它应该只是删除标题,然后离开标题栏。请记住,您必须在setContentView之前调用它

    愉快的编码。

    【讨论】:

    • 嗨,布迪乌斯。这就是我在我的代码中所做的。它向我显示了下拉列表,但它也向我显示了应用程序名称。我只想要下拉/微调器。
    • 我添加了一个屏幕截图以便更好地解释。
    • 这很奇怪,因为我刚刚使用 NAVIGATION_MODE_TAB 完成了一个应用程序并将其删除,我期待同样的行为。你可以试试setTitle("");
    • setTitle("") 做到了,但我想知道这是否是实现此目的的正确方法。您能否编辑您的答案,以便我接受。谢谢。
    • @MridangAgarwalla 嗨.. 我刚刚编辑,甚至提出了一些看起来更“正确”的东西,我不确定它是否有效,但它是一个简单的测试。
    【解决方案3】:

    上述建议的解决方案在使其不可见之前仍会短暂显示标题。我使用以下方法,我认为这是实现此目的的最佳方法:

    在 Manifest 的活动声明中简单禁用 app_name。这样它就永远不会显示在您不希望它出现的活动中:

    <activity
            android:name="com.myapp.MainActivity"
            android:label="@string/app_name" > <!-- Delete this -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    

    【讨论】:

      【解决方案4】:

      在你的menifeast活动标签中使用它

      android:theme="@android:style/Theme.NoTitleBar"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多