一、我们想自定义一个titileBar出现如下这种情况,发现他原来的titileBar还未隐藏。
后来我尝试修改主题使得他没有主题noActionBar发现也不行,后来我参考原先我看过的项目使用了如下代码
this.getActionBar().hide();
发现会报这个错误java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference
后来我又查了很多资料尝试自己去解决他。
二、解决过程
发现把原来的出题TItleBar隐藏掉叫做沉浸是显示app,所谓沉浸式就是内容显示整个屏幕隐藏状态栏和标题栏以及导航栏。查阅资料说明:
if you are using the support library then you have to use getSupportActionBar() instead of getActionBar(), and instead of extends Activityyou have to extends AppCompactActivity
译文:如果您使用的支持库然后你必须使用getSupportActionBar()而不是getActionBar(),你要继承AppCompactActivity而不是继承Activity。
在项目中使用getSupportActivityBar()之后,就实现了预期效果。
三、额外补充:
状态栏:就是手机屏幕最顶端显示电量,网络、信号和一些应用进程。
标题栏:是手机App程序最上部的titileBar,显示应用名。
导航栏:是手机最下面的返回、home、主页三个键