【问题标题】:Show title bar from code从代码显示标题栏
【发布时间】:2013-04-23 08:01:47
【问题描述】:

在清单文件中,我的应用程序标签中有这一行

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

基本上每个活动都没有标题栏,但是对于其中一个活动,我想显示标题栏

我知道要隐藏栏,我可以使用此代码

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

如何从代码中显示标题栏?

编辑 请不要高我如何隐藏标题栏:),我知道,如果有人知道我该如何显示它?

我知道我可以将 NoTitleBar 放在我想隐藏的每个活动中,我可以将它留给我想显示的活动......但这不是我的意思

【问题讨论】:

  • 这是个好问题!我没有看到任何可以让您在删除后将其塞回的东西。也许使用 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  • @JPM 我猜它会粉碎
  • 您需要在 Activity 本身中处理显示和隐藏标题栏,而不是在清单中为其设置 theme

标签: android android-activity android-theme titlebar android-titlebar


【解决方案1】:

对我来说,这几行代码完美运行:

隐藏:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

显示:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

【讨论】:

    【解决方案2】:

    最好的方法是引用这个Try to use Window.FEATURE_CUSTOM_TITLE

    显然这不起作用,任何其他方式似乎总是崩溃

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.settings);
    activity.setTitle("Settings");
    

    我确信这是通过代码执行此操作的方法。

    【讨论】:

      【解决方案3】:

      使用

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

      在每个活动中,除了要显示标题的活动。不要在application 属性中使用这个主题

      根据您的评论,您只想将我的更改更改为一个地方,而且您似乎不想只在一个清单中进行更改(!)。不管怎样,你可以做另一件事

      使用一个使用无标题功能的 BaseActivity 类,并在除有标题的活动之外的所有类中扩展它。

      【讨论】:

        猜你喜欢
        • 2022-09-29
        • 2017-01-11
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        • 2014-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多