如何在Android App Code中隐藏导航栏

时间:2013-12-19 09:40:17

标签: android navigation hide tablet adk

我将此代码添加到我的应用中;

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

但代码强迫我添加“SuppressLint NewApi到MainActivity”。还有一个关于“View.SYSTEM_UI_FLAG_FULLSCREEN”的错误.Code说“改变......”所以我必须做的事情我不知道。

请帮帮我。谢谢。

5 个答案:

答案 0 :(得分:2)

对于API级别19:

除了设置全屏标志外,我还必须添加以下内容来隐藏软键:

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

https://developer.android.com/training/system-ui/navigation.html

您还可以按照此处所述设置粘性沉浸: https://developer.android.com/training/system-ui/immersive.html

答案 1 :(得分:2)

以下是隐藏导航栏的简单代码。它正在发挥作用。

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

答案 2 :(得分:0)

您使用的代码适用于API级别14或更高级别,如文档here中所述

发生SuppressLint NewApi to MainActivity因为您的目标API级别(或您的minTarget)可能小于14。

正如post所述,您无法隐藏导航栏

编辑:

设置android:minSdkVersion="14" 有一个限制:如果您使用的设备没有传统的硬件密钥(后面,主页,菜单),则无法隐藏导航栏。

答案 3 :(得分:0)

我就是这样做的 - 隐藏标题并使其全屏显示:

// requesting to turn the title OFF
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // making it full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

我也在应用程序的AndroidManifest中有这个:

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

我应该注意这是minSDK版本13和目标19(4.4 KitKat)

答案 4 :(得分:0)

我是一个非常新手的开发人员,但我发现我的解决方案是改变主题并将我的主题基于任何" ... NoActionBar"主题。 我还没有了解如何构建主题或修改样式,但我认为这可能是最有效的方法来摆脱顶部的Action栏。 但它并没有让你进入全屏模式。那,我相信你必须以编程方式做。

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:windowNoTitle">true</item>
</style>
<resources/>

另外,如果您想了解更多关于主题的信息,这似乎是一个很好的地方:https://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/