Android平板电脑导航栏不会隐藏

时间:2012-10-09 16:43:07

标签: android android-4.0-ice-cream-sandwich tablet navigationbar

我试图隐藏导航栏,使用我在互联网上描述的方法。

我有一个简单的布局,显示了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>

我在app启动时使用的代码是:

    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 个答案:

答案 0 :(得分:5)

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

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);
    }
}

答案 1 :(得分:4)

您无法永久隐藏平板电脑上的系统栏。

Android 4.1及更高版本上的

SYSTEM_UI_FLAG_HIDE_NAVIGATION会隐藏系统栏,但只要用户执行任何操作,它就会重新出现。

答案 2 :(得分:0)

您无法隐藏给定框架内的导航栏。但是,如果您可以选择使用该设备,则可以解决此问题:

  1. Root device

  2. Install and run Busybox

  3. Install HideBar

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


答案 3 :(得分: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);
        }
    });
}