隐藏android bar

做一个平板的应用,底部的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

Android 16 系统中,隐藏状态栏可以通过代码在 Activity 里实现。以下是示例代码: ```java import android.os.Build; import android.os.Bundle; import android.view.Window; import android.view.WindowInsets; import android.view.WindowManager; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { Window window = getWindow(); window.getInsetsController().hide(WindowInsets.Type.statusBars()); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Window window = getWindow(); window.setDecorFitsSystemWindows(false); window.getInsetsController().hide(WindowInsets.Type.statusBars()); } else { @SuppressWarnings("deprecation") Window window = getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } } } ``` 上述代码中,针对不同的 Android 版本,采用了不同的隐藏状态栏的方法。在 Android 14(Upside Down Cake,对应 `Build.VERSION_CODES.UPSIDE_DOWN_CAKE`)及以上版本,使用 `WindowInsetsController` 的 `hide` 方法隐藏状态栏;在 Android 11(R,对应 `Build.VERSION_CODES.R`)到 Android 13 版本,先设置窗口不适应系统窗口,再使用 `WindowInsetsController` 隐藏状态栏;在 Android 11 以下版本,使用 `WindowManager.LayoutParams.FLAG_FULLSCREEN` 标志来隐藏状态栏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值