android 点击屏幕显示导航栏,android 隐藏导航栏时,当获取焦点又显示导航栏问题...

想要隐藏标题栏 我们都知道在setContentView()之前调用requestWindowFeature(Window.FEATURE_NO_TITLE);

隐藏导航栏调用下面的setActionBarHide();也可以隐藏,但是当界面中有EditText,

点击EditText时,软键盘出现,导航键也会再次出现且不会隐藏,这时该怎么办?

我们可以来监听屏幕的变化来隐藏导航栏

//监听屏幕变化

android.R.id.content 提供了视图的根元素

android.R.id.content 一般不包含导航栏的高度

int mHeight = 0;

View content = findViewById(android.R.id.content);

//监听content视图树的变化

ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener = new

ViewTreeObserver.OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

if (content.getHeight() != mHeight) {//界面发生变化,软件盘出现

setActionBarHide(); // 隐藏导航栏

if (mHeight == 0) {//初始化,获取根视图高度

mHeight = content.getHeight();

}

}

}

};

/**

* 隐藏导航栏,全屏

*/

private void setActionBarHide(){

//隐藏导航栏,并且全屏

if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) {

View view = this.getWindow().getDecorView();

view.setSystemUiVisibility(View.GONE);

} else if (Build.VERSION.SDK_INT >= 19) {

View decorView = getWindow().getDecorView();

int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;

decorView.setSystemUiVisibility(uiOptions);

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值