Dev Guide - ActionBar



 What is ActionBar?

The Action Bar is a widget for activities that replaces the traditional title bar at the top of the screen.
액션바는 액티비티에서 스크린의 상단에 보여지던 기존의 타이틀바를 대체하는 위젯입니다.

액션바를 노출시키고 안시키고는 기존의 타이틀바를 사용하던것 처럼 프로그래머의 의도로 정할 수 있습니다.

기존의 타이틀바와 액션바의 가장 큰 차이점은 액션아이템(예전의 옵션메뉴)일 것입니다.

Honeycomb으로 오면서 디바이스의 하드웨어키가 모두 사라졌습니다.

저도 처음에 디바이스를 접하고 인터페이스에 적응하느라 난감했었죠.
(남아있는 키는 전원키와 볼륨키 정도겠네요.)


어쨋든 화면으로 보는게 이해가 쏙쏙되니, 스크린샷을 올려봅니다.

아래는 예제용 애플리케이션 캡쳐화면입니다. (리스트에 아이템을 추가하고 삭제하는 예제입니다.)


바로 위 이미지의 빨갛게 표시된 부분이 바로 액션바!
아래에서 설명하겠지만, 액션아이템(기존의 옵션메뉴)도 하나 추가해둔 모습입니다.



 Use ActionBar

ActionBar, 액션바를 사용하기 위해서는 targetSdkVersion에 11 이상을 지정하셔야 합니다.



minSdkVersion은 하위 버전에 대한 호환을 고려하지 않을경우, 11이상으로 해두시면 됩니다.

이렇게 targetSdkVersion을 API 11이상으로 설정하시면, 자동적으로 액션바가 사용이 됩니다.


액션바를 사용하지 않으려면 아래와 같은 코드를 manifest의 application에 아래의 코드를 추가하시면 됩니다.




까만 배경 대신에, 하얀 배경의 ActionBar를 사용하려면,
테마를 @android:style/Theme.Holo.Light 로 적용하시면 되구요.
이렇게 테마를 적용하는건 당연히~ 액티비티별로 따로 적용 할 수 있습니다.



 ActionItem

ActionItem은 기존의 OptionMenu(옵션메뉴)라고 생각하면 됩니다.
예전의 안드로이드 디바이스는 하드웨어키가 존재했었기때문에, 옵션키(또는 메뉴키)가 존재했었고, 이에 따라 옵션메뉴는 각 액티비티에 숨어있었습니다.

초기의 안드로이드 유저들은 옵션메뉴기능을 잘 몰라서 애플리케이션의 모든 기능을 제대로 활용하지 못하는 경우도 있었구요. (저도 첨엔 잘 몰랐... )

ActionItem의 추가와 사용방법은 기존과 다르지 않습니다. 거의 똑같구요, 한가지 속성에 대해서만 더 고려하면 됩니다.
바로 showAsAction이라는 속성인데요, 적용할 수 있는 값들은 아래와 같습니다.

 ActionItem showAsAction
never  ActionBar에서는 보이지 않는다.
ifRoom   ActionBar에 공간이 있을경우 노출된다.
always  ActionBar에 항상 노출된다.
withText  ActionBar에 텍스트와 아이콘이 함께 노출된다.


어쨋든, 액션아이템은 자바 코드에서 추가할수도 있고, XML resource로 먼저 만들어두고, 사용할수도 있습니다.


여기서는 XML resource로 미리 만들어두고 사용하는 방법을 알아보겠습니다.
(사실 액티비티에서 옵션메뉴를 사용하는것과 그리 다르지 않아요.)


res/menu/example_fragment_activity_menu.xml

임의로 example_fragment_activity_menu.xml 이라는 파일을 menu resource로 만들어 보았습니다.
이렇게 만든 메뉴에 대한 사용은 아래처럼 할 수 있습니다.


implements in Activity

이미 많이 보신 코드일겁니다.
onCreateOptionsMenu(Menu)에서 메뉴를 생성하고,
onOptionsItemSelected(MenuItem)에서 해당 아이템이 클릭되었을때의 처리를합니다.
달라진 부분은 하나도 없습니다.


위와같이 액션아이템을 추가하면, 아래와 같은 화면처럼 액션아이템이 보이게 됩니다.
아래 이미지의 오른쪽 위에 연필모양의 아이콘이 바로 위에서 추가한 액션아이템입니다.



아이템이 많아지면 예전 옵션메뉴에서의 [더보기(more)]처럼 사용할수도 있구요, 일부러 더보기로 사용할수도 있구요.
사용방법은 다양하겠죠.


  

  A screenshot from an Action Bar with two action items and the overflow menu. 
 




살짝(?) ActionBar와 ActionItem에 대해서 알아보았습니다. 
다들 아는 내용이시겠지만 허니콤에서 해보니 또 새롭네요. 그럼 이만~ 다음에 또만나요~

다음번에는,
하위 버전(API 10 미만)에서도 호환되도록, 호환 라이브러리를 사용한 예제를 만들어봐야겠네요.


'Android > ActionBar' 카테고리의 다른 글

[Android] ActionBar, ActionItem  (0) 2011.10.31
Posted by croute

댓글을 달아 주세요