액션바 제거 방법으로 themes.xml에 있는 style을 수정해서 제거하는 방법과 소스코드로 제거하는 방법이 있다.
1. themes.xml의 style수정하여 제거
app - res - values - themes - themes.xml 열기
초기엔 위 이미지와 비슷할 것이다.
- 모든 액티비티에서 제거
style의 parent를 Theme.MaterialComponents.DayNight.DarkActionBar에서
Theme.MaterialComponents.DayNight.NoActionBar로 변경하면 끝이다.
모든 액티비티에서 액션바가 사라지는 이유는 AndroidManifest.xml에서 application태그의 속성 중 android:theme의 값이 @style/Theme.TestApp으로 되어있을 것이다.
액티비티에 따로 android:theme를 지정하지 않으면 모두 application의 android:theme로 적용되므로 모두 변경된다.
- 특정 액티비티에서 제거
위 방법과는 다르게 전체가 아닌 원하는 액티비티에서만 제거하는 방법이다.
먼저 위 이미지처럼 작성한다.
위의 스타일을 복사 붙여넣기한 후 붙여넣은 쪽의 style의 name에 .NoActionBar를 추가하고 windowActionBar와 windowNoTitle 아이템을 추가한다.
액션바와 타이틀을 없애겠다는 것이다.
이제 app - manifests - AndroidManifest.xml을 열고 적용하려는 액티비티의 태그에 android:theme속성을 추가하고 값으로 @style/Theme.TestApp.NoActionBar를 주면 끝이다.
2. 소스코드로 제거
위 코드를 추가하면 해당 코드를 추가한 액티비티의 액션바가 제거된다.
이 방법은 해당 코드를 적용한 액티비티에서만 제거된다.
전체 액티비티에서 제거하려면 1번의 테마로 제거하는 방법을 사용해야 한다.
참고로 1번 방법으로 액션바를 제거한 상태로 이 방법을 쓰면 NullPointerException에러가 발생한다.
이유는 간단하다.
2번 방법은 사실 제거라기보단 숨김 처리하는 것인데 1번 방법으로 액션바를 제거하면 getSupportActionBar()가 Null이 된다.
액션바가 없는 상태인데 hide()를 호출하므로 에러가 발생하는 것이다.
'개발 > Android' 카테고리의 다른 글
버튼 텍스트 소문자로 보이게하기 (0) | 2022.02.24 |
---|---|
가로 세로 화면 크기 가져오기 (getRealSize() deprecated) (1) | 2022.02.22 |
dp px 변환 (0) | 2022.02.19 |
URL로 링크 열기 (0) | 2022.02.17 |
dp (0) | 2022.02.14 |