在android中使用沉浸式全屏模式时的空白区域

时间:2017-07-31 21:17:32

标签: android fullscreen android-immersive

我使用下面的代码来使用沉浸式全屏模式:

getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE);

但是当我运行我的应用时,会显示一个空格而不是通知和底栏。

我认为我的XML文件中存在错误。 这是我的XML文件:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#303030"
    tools:context="programsimple.game.FullscreenActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:background="#eeeeee">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/background"/>

        <Button
            android:layout_width="110dp"
            android:layout_height="70dp"
            android:background="@drawable/button_shape"
            android:layout_centerVertical="true"
            android:id="@+id/btnStartGame"
            android:layout_centerHorizontal="true"
            android:text="شروع"
            android:textSize="25sp"
            android:textColor="#97d2ff"/>

    </RelativeLayout>

</FrameLayout>

有任何错误吗?

更新:我使用KitKat进行测试。

1 个答案:

答案 0 :(得分:9)

白色是由RelativeLayout中设置的背景引起的。要删除底部白条,只需从RelativeLayout

中删除此标记即可
  android:fitsSystemWindows="true"

在创建应用程序时添加它,并在布局中添加常规填充以确保内容不会与系统窗口重叠。