做一个平板的应用,底部的BACK HOME 还有电池WIFI的那一条STATUS BAR设置全屏后怎么也去不掉, 后来发现一个比较好的方法在OnCreate里添加一行语句 ,在setContentView之前哦:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);或者getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);或者getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN);手机上的,可以:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); status bar这玩意很重要,所以在弹出 popupwindow和Dialog时就会重现下方的黑条,要有心理准备;方法二:将平板root, 然后改改两个文件 $ adb remount  $ adb shell mv /system/app/SystemUI.odex /system/app/SystemUI.odexold  $ adb shell mv /system/app/SystemUI.apk /system/app/SystemUI.apkold  $ adb reboot  或者你下一个RE文件管理器,把这两个文件重命名,然后重启,这样,你在任何程序里,包括在待机,都没有下面的 status bar 了!方法三:这个方法是参考网上caijicheng2006 方法做的,修改的是源码grep "status_bar_height" * -nR
将下面文件中关于status_bar_height定义的改为0dip.
android4.0/frameworks/base/core/res/res/values-large/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw480dp/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw600dp/dimens.xml
android4.0/frameworks/base/core/res/res/values/dimens.xml
android4.0/packages/apps/Launcher2/res/values-sw480dp/dimens.xml
android4.0/packages/apps/Launcher2/res/values-sw600dp/dimens.xml
android4.0/packages/apps/Launcher2/res/values/dimens.xml

解决方案 »

  1.   

    /** Toggle whether the system UI (status bar / system bar) is visible.
         *  This also toggles the action bar visibility.
         * @param show True to show the system UI, false to hide it.
         */
    void setSystemUiVisible(boolean show) {
            Window window = this.getWindow();
            WindowManager.LayoutParams winParams = window.getAttributes();
            View view = window.getDecorView();//getView();
            ActionBar actionBar = this.getActionBar();
            if (show) {
                // Show status bar (remove fullscreen flag)
                window.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                // Show system bar
                view.setSystemUiVisibility(View.STATUS_BAR_VISIBLE);
                // Show action bar
                actionBar.show();
            } else {
                // Add fullscreen flag (hide status bar)
                window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
                // Hide system bar
                view.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
                // Hide action bar
                actionBar.hide();
            }
            window.setAttributes(winParams);
        }参考了sdk中了一个例子,可以动态的隐藏标题栏和系统工具栏。又一个问题是,标题栏隐藏了,程序界面会自动向上扩展过去。
    但是,系统工具栏那里始终是黑色一条,无法向下自动扩展。
    这个该怎么解决呢?我查看了系统自带的“图库”程序,显示单张照片时 是可以自动向下扩展的。
      

  2.   

    如果是4.4系统的话 参见Android doc : Using Immersive Full-Screen Mode
    https://developer.android.com/training/system-ui/immersive.html
      

  3.   

    终于找到一个解决方法,可惜不能通用。//public static final int SYSTEM_UI_FLAG_SHOW_FULLSCREEN = 0x00000004;    //for android 4.0
    //public static final int SYSTEM_UI_FLAG_SHOW_FULLSCREEN = 0x00000008;    //for android 4.1
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN);
    VIEW.SYSTEM_UI_FLAG_SHOW_FULLSCREEN  eclipse中没有定义,sdk源码中有定义。所以自己定义一个