失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android布局顶到状态栏or状态栏布局or沉浸式状态栏

Android布局顶到状态栏or状态栏布局or沉浸式状态栏

时间:2019-07-12 00:53:24

相关推荐

Android布局顶到状态栏or状态栏布局or沉浸式状态栏

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沉浸式状态栏》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。