/** * 设置顶部状态栏一体 1步
BaseActivity的setContentView()之前* 在具体的activity中实现第二部 */
private void setStatusBarOne(Activity context) { if (Build.VERSION.SDK_INT >= 21) { Window window = context.getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } }
/** * 设置状态栏一体 2步
view 为标题栏 */ public static void setStatusBar(Context context, View view) { if (Build.VERSION.SDK_INT >= 21) { int sh = ScreenUtils.getStatusHeight(context); ViewGroup.LayoutParams linearParams = (ViewGroup.LayoutParams) view.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20 linearParams.height = sh + ScreenUtils.dip2px(context, 45); view.setLayoutParams(linearParams); //使设置好的布局参数应用到控件 // view.setPadding(0, sh, 0, 0); } }
本文介绍了一种在Android系统中实现状态栏透明效果的方法。通过两步操作:首先,在Activity的setContentView()方法前调用特定函数来设置状态栏样式;其次,调整布局文件中的视图高度以适应状态栏变化。
2243

被折叠的 条评论
为什么被折叠?



