Android布局顶到状态栏or状态栏布局or沉浸式状态栏
1.状态栏里面开始布局的
设置主题
<style name="NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar"><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item>//隐藏状态栏<item name="windowActionBar">false</item>//隐藏标题栏<item name="windowNoTitle">true</item>//状态栏透明色<!--API最少19--><item name="android:windowTranslucentStatus">true</item></style>
//代码设置状态栏颜色if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}
设置了上面的代码,布局就会从状态栏开始布局
2.沉浸式状态栏
private void initBar(int color) {Window window = getWindow();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0 以上直接设置状态栏颜色window.setStatusBarColor(color);} else {//根布局添加占位状态栏ViewGroup decorView = (ViewGroup) window.getDecorView();View statusBarView = new View(this);ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,getStatusBarHeight(this));statusBarView.setBackgroundColor(color);decorView.addView(statusBarView, lp);}}/*** 获取状态栏高度** @param context context* @return 状态栏高度*/protected int getStatusBarHeight(Context context) {// 获得状态栏高度int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");return context.getResources().getDimensionPixelSize(resourceId);}
3.状态栏之下开始布局
在顶部布局中添加
android:fitsSystemWindows="true"
就是从状态栏之下开始布局
如果觉得《Android布局顶到状态栏or状态栏布局or沉浸式状态栏》对你有帮助,请点赞、收藏,并留下你的观点哦!