如何完全隐藏操作栏和导航栏

时间:2014-10-07 10:22:55

标签: android

我知道此问题之前已被问过但未获得准确的解决方案。 我想从我的活动中隐藏ActionBar和NavigationBar,或者要将其全屏显示。我在我的Activities OnCreate方法中尝试了以下代码,但是它显示了Action Bar几秒钟而不是全屏。在Galaxy S3(android 4.3)中,它甚至超过了一秒钟。所以我怎样才能让它完全看不见,我的活动从一开始就完全全屏。 我看到很多应用程序只在S3上运行,但它们不是ActionBar,甚至不是几秒钟。

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.activity_main);

    if (Build.VERSION.SDK_INT < 19) {           
         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    } else {
         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);
    }

}

6 个答案:

答案 0 :(得分:2)

在AndroidManifest文件中写

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

活动标签中的

并使用

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

befor setContentView(R.layout.activity_main);

答案 1 :(得分:2)

在您的活动的onCreate功能中,在setContentView之前添加此代码:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

AndroidManifest文件中写

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

如果您的应用程序的最低SDK版本是19(KitKat),那么您必须向onResume函数添加一段代码:

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

答案 2 :(得分:0)

在您的清单中的活动声明中尝试android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

答案 3 :(得分:0)

在setContentView

之前尝试这个
    //Remove title bar
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    //Remove notification bar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

答案 4 :(得分:0)

Android DeveloperThis Post演示Immersive Full-Screen Mode,可让您的应用全屏显示。

<强> tltr;

试试我从Android开发者网站获得的这个片段:

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

希望我帮忙!

答案 5 :(得分:0)

我认为你必须写

getActionBar().hide(); (Above Api level 11)

getSupportActionBar().hide();(Up to Api level 8)

多数民众赞成......