2012년 6월 27일 수요일

android. statusBar를 hide/show할 때 fullscreen이 밀리지 않게 하기

onCreate()에 다음과 같은 코드를 적는다. 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);



다만 이 코드를 사용할 경우, 2.2 갤탭에서 getWindow().getDecorView().getWindowVisibleDisplayFrame()으로 가져오는 window rect의 값 중 top의 값을 -1000으로 리턴한다. (원래는 statusBar크기만큼의 값을 가지고 있어야 한다. )




show / hide코드는 다음과 같다. (manifest파일의 application속성에 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 이 있어야 한다.)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //hide
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //show

댓글 없음:

댓글 쓰기