프로그래밍/Java, Android

[Android] 풀스크린 사용하기 - 타이트바 없애기

당근천국 2015. 8. 12. 15:00

별생각 없이 만들다 보니 타이틀바가 있는 것도 몰랐네요 ㅎㅎㅎ

거기다 롤리팝에서 메뉴버튼이 삭제되면서 인터페이스가 타이틀바로 올라갔군요.

 

풀스크린은 상단의 상태줄과 소프트웨어 키가 숨겨집니다.

풀스크린 사용과 타이틀바를 없애는 방법을 알아봅시다.

1. 테마 수정하기

코드로 직접 수정하려면 매니페스트에서 수정해야 합니다.

 

매니페스트를 열어서 타이트바를 없앨 액티비티에 다음 코드를 추가하여 테마를 변경합니다.

 

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

 

 

 

 

이제 실행해 봅니다.

 

 

 

 

 

 

에러가 난다면

만약 여기서 에러가 난다면 보통은 상속받은 엑티비티가 잘못된 경우입니다.

 

 

 

그냥 액티비티를 생성하면 'ActionBarActivity'와 같은 기본 액티비티가 아닌 액티비티를 상속받는 경우가 있습니다.

이런 경우 상속받은 액티비티를 다른 것으로 바꿔줘야 합니다.

(참고 : stackoverflow : App crashes after setting to Theme.NoTitleBar.Fullscreen )

 

2. 런타임에서 바꾸기

런타임에서 바꾸기 위해서는 아래 코드를 'onCreate()'에 넣습니다.

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

 

 

그런데 막상 돌려보면 말이 런타임이지 'onCreate()' 밖에서는 작동하지 않습니다.

그리고 타이틀바는 그대로 있는데 다음 코드를 'onCreate()' 호출 전에 넣어야 합니다.

 

requestWindowFeature(Window.FEATURE_NO_TITLE);

 

 

예를들면 아래와 같이 넣으면 됩니다.

 

@Override
protected void onCreate(Bundle savedInstanceState)
{
    //타이틀바 숨기기
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    //풀 스크린
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

 

 

 

마무리

이런 레이아웃을 왜 런타임에서 바꿀 수 있는지 모르겠네요.

내가 모르는 건가 ㅡ.-;;