2

我正在尝试使用我在互联网上找到的方法隐藏导航栏。

我有一个显示 WebView 的简单布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:id="@+id/layout" >

    <WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</RelativeLayout>

我在应用程序启动时使用的代码是:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    web.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

但这不会隐藏导航栏。

我已经添加...

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

……我的活动也是如此。

我怎样才能做到这一点?

4

4 回答 4

6

你可以隐藏导航栏,试试这个

public void FullScreencall() {
    if(Build.VERSION.SDK_INT < 19) //19 or above api
        View v = this.getWindow().getDecorView();
        v.setSystemUiVisibility(View.GONE);
    } else {
            //for lower api versions.
        View decorView = getWindow().getDecorView(); 
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        decorView.setSystemUiVisibility(uiOptions);
    }
}
于 2015-01-06T18:25:52.967 回答
4

您不能永久隐藏平板电脑上的系统栏。

SYSTEM_UI_FLAG_HIDE_NAVIGATION在 Android 4.1 及更高版本上将隐藏系统栏,但只要用户执行任何操作,它就会重新出现。

于 2012-10-09T17:40:12.620 回答
0

您不能在给定的框架内隐藏导航栏。但是,如果您可以选择生根设备,则可以解决此问题:

  1. 根设备

  2. 安装并运行 Busybox

  3. 安装隐藏栏

在 HideBar 中有一个选项可以在“Kiosk”模式下运行,在这种模式下无法重新显示导航栏。不用说,你真的需要小心这个。


于 2012-11-17T15:05:35.623 回答
0

可能这有帮助:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().setUiOptions(//
    View.SYSTEM_UI_FLAG_FULLSCREEN|//
    View.SYSTEM_UI_FLAG_IMMERSIVE|//
    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setContentView(R.layout.main);

    findViewById(R.id.main).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.setSystemUiVisibility(//
                View.SYSTEM_UI_FLAG_FULLSCREEN|//
                View.SYSTEM_UI_FLAG_IMMERSIVE|//
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        }
    });
}
于 2020-02-21T13:23:26.343 回答