即使手指从屏幕顶部翻转,如何在Kitkat及以上版本设备中完全隐藏状态栏?

时间:2015-06-09 08:17:09

标签: android android-custom-view

我想在我的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后,状态栏会再次出现,因为它可以作为沉浸式模式使用。

我不想要这种行为。如果手指从屏幕顶部滑动,则状态栏不应出现。我怎么能实现这个目标?请帮帮我?

2 个答案:

答案 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>

这显示黑色条代替原件。您可以使其透明,或向其添加更多小部件。您可能需要调整高度以满足您的需求。