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中进行设置:
①郭神的方案:http://blog.youkuaiyun.com/guolin_blog/article/details/51763825,4.4以上的手机没问题,小于4.4且有虚拟按键的手机(例如:华为 mate1),会存在问题。
//隐藏状态栏和底部虚拟按键
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);}