@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏状态栏。必须放在 setContentView(R.layout.activity_main);之前设置
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
**************修改状态栏的颜色方法一:
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Window window = getWindow();
//
设置修改状态栏
// window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//
设置状态栏的颜色,和你的app主题或者标题栏颜色设置一致就ok了
// window.setStatusBarColor(getResources().getColor(R.color.colorPrimary));
// }
//***********修改状态栏颜色方法二:
// if(Build.VERSION.SDK_INT >= 21) {
// View decorView = getWindow().getDecorView();
//
设置全屏和状态栏透明
// decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
// View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
// getWindow().setStatusBarColor(Color.TRANSPARENT);
// }
//******设置状态栏文字颜色及图标为深色
// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
**************隐藏状态栏,如果设置了状态栏透明,这个隐藏状态栏就失效了
// View decorView = getWindow().getDecorView();//获取屏幕的decorView
// decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);//设置全屏,也就隐藏了状态栏
//*****************设置状态栏半透明
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//*********************设置状态栏透明
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(Color.TRANSPARENT);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
initView();
}
*********需要在activity的布局中设置android:fitsSystemWindows="true",如果不设置,标题栏就会上移动。
在布局的最外层(也就是activity_mian.xml中)设置 android:fitsSystemWindows="true",会在屏幕
最上方预留出状态栏高度的padding,如果没有这个设置,toolBar会把状态栏的位置占据(如果没有toolBar,
让view的一部分页面进入状态栏的位置,和状态栏层叠,状态栏在最上面,达到沉浸式的效果)
**********在style中设置:参考:https://blog.csdn.net/sunshine199221/article/details/61919890
https://blog.csdn.net/smileiam/article/details/73603840
<style name="AppTheme.ImmersiveThemewitletext">
<!-- true: status栏会有一层阴影;false: status栏没有阴影;当该项为true时,则name="android:windowLightStatusBar"设置无效,永远为白色 -->
<item name="android:windowTranslucentStatus">false</item>
<!-- 使底部导航栏透明 -->
<item name="android:windowTranslucentNavigation">true</item>
<!-- 给status栏设置透明颜色 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<!-- true: status栏的图标和文字为黑色;false: sstatus栏的图标和文字为白色 -->
<item name="android:windowLightStatusBar">true</item>
</style>