Attempt to invoke virtual method 'void android.app.ActionBar.hide()' on a null object reference

本文详细介绍了如何在Android应用中实现沉浸式用户界面,包括隐藏状态栏、标题栏和导航栏的方法。通过使用getSupportActionBar()替代getActionBar(),并继承AppCompatActivity而非Activity,解决了在Android 6.0系统上出现的NullPointerException。文章还解释了状态栏、标题栏和导航栏的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Attempt to invoke virtual method ‘void android.app.ActionBar.hide()’ on a null object reference

项目中要求沉浸式显示app,所谓沉浸式就是内容显示整个屏幕隐藏状态栏和标题栏以及导航栏


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Android 4.0 之前
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }else {
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);

            // 下面两句是针对ActionBar的 如果主题是使用了NoActionBar,使用下面的是会报空指针异常的
            //     android.support.v7.app.ActionBar actionBar = getSupportActionBar();
            //   actionBar.hide();
        }
        setContentView(R.layout.activity_main);
    }
}

运行在6.0系统直接报上述错误了,后来查询资料说明:
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。

在项目中使用getSupportActionBar()之后,就实现了预期效果

状态栏:就是手机屏幕最顶端显示电量、网络、信号和一些应用进程啥的
标题栏:是手机App程序最上部的titlebar,显示应用名
导航栏:是手机最下面的返回、home、主页三个键

状态栏全透明和半透明的实现有篇很好的博客
作者:Jaiky_杰哥
出处:http://blog.youkuaiyun.com/jaikydota163/article/details/53012777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值