1. 程式人生 > >Android 隱藏虛擬按鍵及狀態列

Android 隱藏虛擬按鍵及狀態列

1.AndroidManifest檔案中配置Activity的Theme。style中新建全屏的theme並在相關的activity引用:

① AppCompatActivity:

<style name="FullscreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowFullscreen">true</item>
</style>
<activity
android:name=".ui.activity.SplashActivity"
android:screenOrientation="portrait" android:theme="@style/FullscreenTheme"/>

Activity:

<activity
android:name=".ui.activity.SplashActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

2.在相關的Activity中進行設定:

//隱藏狀態列和底部虛擬按鍵
View decorView = getWindow().getDecorView();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { int flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(flag);
}

②其他的方案(滑出底部虛擬按鍵 不會自動消失)

//隱藏狀態列和底部虛擬按鍵
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
 View decorView = getWindow().getDecorView();
     decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}

③我的方案(mate1正常隱藏,滑出底部虛擬按鍵自動消失)

//隱藏狀態列和底部虛擬按鍵
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
 View decorView = getWindow().getDecorView();
     decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}