2014-07-08 1 views
0

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); 

답변

0

'FLAG_FULLSCREEN'을 'MATCH_PARENT'(으)로 변경하십시오.

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT); 

또는 너무보기에서 시스템 UI (상태 & 탐색 모음)을 제거하려면 :

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); 
+0

나는 SO 게시물 수십 겪었가 아닌 사람은이 제안했다. 너는 나를 구해준 두통의 양을 모른다. 감사! – faizal

+0

문제 없습니다, 만족하세요!. – Smiler

관련 문제