android——暴力隐藏底部导航栏

最近在做平板项目,boss要求隐藏掉底部导航栏,各种谷歌百度了半天,可愁死我了。因为导航栏是系统自带的,要实现隐藏要么修改framwork层代码,要么想点别的招。本宝菜鸟一只,哪里会啥修改framwork层代码啊,愁…

度娘也说了,想要隐藏,可以设置全屏,但是这种方案有个问题,就是手指一旦在底部进行上滑操作导航栏就显示出来,并不是我想要的效果。如果导航栏一旦显示,能够立即把它隐藏掉就好了。啊呀,开始百度,嗖嗖嗖嗖嗖,终于找到了——http://blog.csdn.net/u014583590/article/details/55263141

先上代码:

// onCreate()里面加上监听
var mHeight = 0 
val content = findViewById(android.R.id.content)
       content.getViewTreeObserver().addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener {
            Log.e("eeeee", "界面有调整")
            if (content.height != mHeight) {
                hideNavigationBar() // 隐藏导航栏
                Log.e("eeeeee", content.height.toString())
                if (mHeight == 0) {
                    mHeight = content.height
                }
            }
        })


// 注意取消监听
 override fun onDestroy() {
        super.onDestroy()
        content.getViewTreeObserver().removeOnGlobalLayoutListener(this)
    }

利用OnGlobalLayoutListener监听,当界面高度变化时,则隐藏底部导航栏。最后别忘记移除监听,防止内存泄漏。

每个界面都开启监听,真是很耗资源,木得办法,玩不了源码高大上,只是用用粗暴的办法。

具体代码放在:https://github.com/jjjSilence/jjjPlus 的DayNightModeActivity下

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值