我想在我的Android应用程序中隐藏状态栏。
我使用了以下内容:
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
在Kitkat以下工作正常。但是当我们从屏幕顶部滑动手指时升级到Kitkat后,状态栏会再次出现,因为它可以作为沉浸式模式使用。
我不想要这种行为。如果手指从屏幕顶部滑动,则状态栏不应出现。我怎么能实现这个目标?请帮帮我?
答案 0 :(得分:0)
android:theme =“@ android:style / Theme.NoTitleBar.Fullscreen”
在您的活动清单中添加此内容。
答案 1 :(得分:0)
您无法永久隐藏它。也许考虑使用触摸事件的叠加层。我用过这个:
onCreate()
WindowManager manager = ((WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE));
WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags =
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
localLayoutParams.flags = 0x80000000 | localLayoutParams.flags;
localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height = (int) (25 * getResources().getDisplayMetrics().scaledDensity);
localLayoutParams.format = PixelFormat.TRANSPARENT;
LayoutInflater inflater = getLayoutInflater();
View overlay = inflater.inflate(R.layout.systembar_overlay, null);
manager.addView(overlay, localLayoutParams);
systembar_overlay.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ll">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="#ff000000"
android:minHeight="25dp"
android:longClickable="false">
</FrameLayout>
</LinearLayout>
这显示黑色条代替原件。您可以使其透明,或向其添加更多小部件。您可能需要调整高度以满足您的需求。