Android 如何使系统覆盖全高

Android 如何使系统覆盖全高,android,android-layout,Android,Android Layout,我正在活动代码而不是xml中创建系统范围的全屏覆盖布局。问题是布局没有占据屏幕的全部高度。顶部和底部有一个间隙。你知道如何使布局适合整个屏幕高度吗 mFrameLayout = new FrameLayout(this); mFrameLayout.setBackgroundColor(getResources().getColor(R.color.black)); mFrameLayout.getBackground().setAlpha(50); WindowManager.LayoutP

我正在活动代码而不是xml中创建系统范围的全屏覆盖布局。问题是布局没有占据屏幕的全部高度。顶部和底部有一个间隙。你知道如何使布局适合整个屏幕高度吗

mFrameLayout = new FrameLayout(this);
mFrameLayout.setBackgroundColor(getResources().getColor(R.color.black));
mFrameLayout.getBackground().setAlpha(50);

WindowManager.LayoutParams params = new WindowManager.LayoutParams(
    WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
    PixelFormat.TRANSLUCENT
    );
WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);
windowManager.addView(mFrameLayout, params);

只需将“全屏标记”更改为“匹配父项”

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
或从视图中删除系统uiStatus和导航栏:

    int KitKatFlags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 
        | View.SYSTEM_UI_FLAG_LOW_PROFILE
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

getWindow().getDecorView().setSystemUiVisibility(KitKatFlags);

我已经浏览了几十篇这样的帖子,没有人提出过这样的建议。你不知道你救了我多少头痛。谢谢没问题,祝你愉快!。