有一款名为StatusBar+的应用。它基本上做的是用自定义覆盖替换库存状态栏。
我知道这可以通过服务和视图轻松完成,该视图将充当另一个状态栏。
但是,我只是想知道它是如何隐藏默认状态栏但仍然在顶部有间距所以它不会与应用程序重叠。或者它如何实际覆盖状态栏。我只是很好奇。
由于
答案 0 :(得分:0)
它实际上覆盖了常规状态栏本身。我设法在一项服务中自己完成:
view= new View(context);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
mStatusBarHeight,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
view.setBackgroundColor(DEFAULT_TINT_COLOR);
view.setVisibility(View.VISIBLE);
view.setBackgroundColor(0x80FF0000);
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
wm.addView(view, params);
有关详细信息,请参阅http://www.piwai.info/chatheads-basics/