Android 隱藏虛擬按鍵及狀態列
阿新 • • 發佈:2019-02-09
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);
}