본문 바로가기
Programming/Android

12장.ActionBar와 메뉴

by jaegom 2020. 7. 23.

ActionBar : 액티비티의 기본 구성요소, default로는 타이틀 문자열이 출력되어 title bar로 보인다.

-액티비티의 출력 창 => Window =   Content(레이아웃 출력)   +   ActionBar(Window 상단)

-액션바를 개발자가 수정할 수 있다 ( App Icon, View Control, Action Button, Overflow Menu)

 

커스텀 액션바

 

-ActionBar를 테마 지정으로 안 보이게도 가능 (res/values/styles.xml에서 windows no title~)

-ActionBar를 Content에 투명하게 덮는 것 가능 (windowActionBarOverlay 속성 style에 추가)

-setDisplayHomeAsUpEnabled를 통해 ActionBar에 뒤로가는 화살표를 표시할 수 있다

-HomeAsUp 화살표를 클릭했을 때 이벤트 처리는 onOptionsItemSelected 함수를 통해 해결(HOME_AS_UP 아이콘의 기본 id값은 android.R.id.home으로 지정되어있다)

 

 

-안드로이드 API와 하위호환성

-Support 라이브러리 : 구글의 기본 라이브러리로 하위호환성을 지원하기 위한 라이브러리(표준 라이브러리가 아니다)

ex) implementation 'com.android.support:appcompat-v7:28.0.0'

import androidx.appcompat.app.AppCompatActivity; (액션바의 하위호환성 처리)

 

-오버플로 아이콘(Overflow Icon) : 액션바 오른쪽 위 3점 메뉴

-HOME_AS_UP과 마찬가지로 onOptionsItemSelected 함수를 통해 이벤트 처리를 한다.

-MenuInflater : 항상 쓰이는 메뉴를 menu.xml 리소스화하여 가져올 때 쓰는 함수

-오버플로우 버튼에서 다단 메뉴로도 가능하다.

-menu.xml에서 namespace를 선언할 때 app:showAsAction (표준 xmlns는 android이나 appcompat 라이브러리 출신은 앞에 namespace를 app으로 해준다)

-app:showAsAction 속성을 always로 하면 overflow icon 밖으로 꺼낼 수 있다(ex. search icon)

 

 

 

 

 

 

 

 

댓글