如何在Android中通过代码隐藏标题栏

7
我希望能使用代码隐藏一些活动的标题栏。
我已经使用了以下代码:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                          WindowManager.LayoutParams.FLAG_FULLSCREEN);

第二行代码可以使应用程序全屏显示,但它会显示应用程序的标题。比如说,在我的启动画面中,我想隐藏我的标题。第一行代码会导致我的应用程序崩溃。请帮助我看看是否可以使用代码实现这个功能。
谢谢。
6个回答

22
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

在调用 setContentView() 方法之前,你应该先调用这个方法,你这么做了吗?

你也可以在清单文件中通过在活动中添加 android:theme="@android:style/Theme.NoTitleBar" 来实现。


标记为已回答,谢谢 :) - Androider
1
这个方法是可行的,但即使在调用setContentView()之前调用它,标题也会先显示一秒钟,然后才会全屏显示活动。有人注意到了这个问题并知道解决方案吗? - Sandra

11

隐藏标题栏和状态栏:

try
   {((View)act.findViewById(android.R.id.title).getParent()).setVisibility(View.GONE);
   }
catch (Exception e) {}
act.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
act.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
view.requestLayout();
显示标题栏和状态栏:
```

To show title bar and status bar:

```
try
   {((View)act.findViewById(android.R.id.title).getParent()).setVisibility(View.VISIBLE);
   }
catch (Exception e) {}
act.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
act.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
view.requestLayout();

1
我可以问一下,最后你在哪个视图上调用了requestLayout吗?另外,你回答的第一行(应该是隐藏标题的那一行)导致我的应用程序崩溃了 :s - Sandra
我也很困惑。 - gumuruh

8
如果您使用的是API 11及以上版本。
ActionBar actionBar = getActionBar();
actionBar.hide(); // slides out
actionBar.show(); // slides in

如果API版本小于11,则我想要移除标题,并且如果API版本大于11,则想要显示标题栏。 - PankajAndroid
我不得不更改代码为ActionBar actionBar = getSupportActionBar(),以使用androidx库。 - kralvarado

2

如果要去除应用程序标题栏,请在setContentView(R.layout.main);之前添加以下代码:

requestWindowFeature(Window.FEATURE_NO_TITLE);

这样就可以实现去除应用程序标题栏的功能。


0

2022年更新。适用于Android 9+(至少)并且您可以在setContentView()之后调用它

// 隐藏操作栏 Objects.requireNonNull(getSupportActionBar()).hide();

// 显示操作栏 Objects.requireNonNull(getSupportActionBar()).show();


0
确保在这两行代码之后调用setContentView

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