android编程如何屏蔽导航栏,如何在Android活动中永久隐藏导航栏?

片段:

FullScreenFragment.java

HideNavigationBarComponent.java

这是针对Android 4.4+

尝试沉浸式模式https://developer.android.com/training/system-ui/immersive.html

快速摘要(用于Activity类):

private int currentApiVersion;

@Override

@SuppressLint("NewApi")

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

currentApiVersion = android.os.Build.VERSION.SDK_INT;

final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_FULLSCREEN

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

// This work only for android 4.4+

if(currentApiVersion >= Build.VERSION_CODES.KITKAT)

{

getWindow().getDecorView().setSystemUiVisibility(flags);

// Code below is to handle presses of Volume up or Volume down.

// Without this, after pressing volume buttons, the navigation bar will

// show up and won't hide

final View decorView = getWindow().getDecorView();

decorView

.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener()

{

@Override

public void onSystemUiVisibilityChange(int visibility)

{

if((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)

{

decorView.setSystemUiVisibility(flags);

}

}

});

}

}

@SuppressLint("NewApi")

@Override

public void onWindowFocusChanged(boolean hasFocus)

{

super.onWindowFocusChanged(hasFocus);

if(currentApiVersion >= Build.VERSION_CODES.KITKAT && hasFocus)

{

getWindow().getDecorView().setSystemUiVisibility(

View.SYSTEM_UI_FLAG_LAYOUT_STABLE

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_FULLSCREEN

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

}

}

如果在按“提高音量”或“降低音量”时遇到问题,则会显示导航栏。我添加的代码onCreate见setOnSystemUiVisibilityChangeListener

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值