做一个平板的应用,底部的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
将下面文件中关于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
* 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中了一个例子,可以动态的隐藏标题栏和系统工具栏。又一个问题是,标题栏隐藏了,程序界面会自动向上扩展过去。
但是,系统工具栏那里始终是黑色一条,无法向下自动扩展。
这个该怎么解决呢?我查看了系统自带的“图库”程序,显示单张照片时 是可以自动向下扩展的。
https://developer.android.com/training/system-ui/immersive.html
//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源码中有定义。所以自己定义一个