显示窗口标题栏的代码

7
在清单文件中,我有这一行代码添加到我的应用程序标签中。
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
@JPM 我猜它会崩溃。 - stinepike
你需要在Activity本身中处理标题栏的显示和隐藏,而不是在清单文件中为其设置theme - Pragnani
4个回答

6

对我而言,这些代码行完美地运作:

隐藏:

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);

3

使用

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

除了想显示标题的活动之外,每个活动都不要使用此主题。不要在application属性中使用此主题。

根据您的评论,您希望将我的更改仅应用于一个地方,似乎您不想仅在一个清单中进行更改! 无论如何,您可以做另一件事

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


1

最好的方法是引用这个尝试使用Window.FEATURE_CUSTOM_TITLE

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

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

我相信这是通过编程完成的方法。

0

只需在您的活动的OnCreate方法中添加以下行以隐藏

Java: this.getSupportActionBar().hide();

Android: this.supportActionBar?.hide();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接