본문 바로가기

유저 인터페이스/액션 바(Action Bar)

액션바의 변신은 무죄? - 다양한 액션바의 모습들

이전 글 (
2011/05/30 - 액션바(Action bar) 따라잡기 - 액션바가 뭔가요?) 에서 알아보았던 것처럼, 액션바는 메뉴를 대신하는 것 외에도 다양한 역할을 수행할 수 있습니다. 그 중에서 대표적인 기능이 사용자가 애플리케이션 내 흐름을 잘 알 수 있도록 도와주는 것입니다.

애플리케이션 흐름을 알려주는 액션바의 요소들


애플리케이션을 사용하다 보면 화면이 전환되어 홈 화면보다 하위 단계의 화면에 오게 되는 경우가 많은데, 간혹 내가 보고 있는 화면이 홈 화면인지, 하위 단계의 화면인지 혼동되는 경우가 있습니다.

액션바는 위와 같은 사용자들의 혼동을 방지하기 위해, 하위 단계 화면일 경우 이를 사용자가 인지할 수 있도록 액션바 좌측 아이콘에 '업 네비게이션(Up navigation)'이라 하는 작은 삼각형을 표시하도록 제공하고 있습니다. 다음 화면은 일반적인 상태와 업 네비게이션으로 표시될 때의 액션바 아이콘을 보여줍니다.


일반 상태일 때와 업 네비게이션 상태의 액션바 아이콘



액션바 아이콘을 업 네비게이션 형태로 표시하려면 setDisplayHomeAsUpEnabled() 메서드를 사용합니다. 액션바의 인스턴스는 액티비티의 getActionBar() 메서드로 얻을 수 있습니다.

API
public abstract void setDisplayHomeAsUpEnabled (boolean showHomeAsUp)

액션바 아이콘을 업 네비게이션 형태로 표시합니다.



이 뿐만 아니라, 액션바에 탭을 추가하여 여러 화면을 더 깔끔하게 구성하는 것도 가능합니다. 다음은 액션바에 탭이 추가된 모습을 보여줍니다.

액션바에서 탭을 표시하는 모습



액션바에 탭을 추가하려면 액션바의 네비게이션 모드를 탭 모드로 설정한 후, 탭을 추가하면 됩니다.

API
public abstract void setNavigationMode(int mode)

액션바의 네비게이션 모드를 설정합니다.


액션바의 네비게이션 모드는 총 세가지로, 기본 모드인 ActionBar.NAVIGATION_MODE_STANDARD, 탭을 표시하는 모드인 ActionBar.NAVIGATION_MODE_TABS, 리스트를 표시하는 모드인 ActionBar.NAVIGATION_MODE_LIST가 있습니다.

API
public abstract void addTab(ActionBar.Tab)

액션바에 탭을 추가합니다.


Tab 인스턴스는 ActionBar.newTab() 메서드를 통해 얻을 수 있으며, 탭을 추가한 후에는 필히 ActionBar.Tab.setTabListener() 메서드를 사용하여 각 탭이 선택되었을 때 수행할 동작을 처리할 TabListener를 등록해야 합니다.

액션바 모습 변경하기


액션바는 기본적으로 애플리케이션 아이콘과 제목이 표시됩니다. 하지만 원한다면 이를 표시되지 않도록 할 수도 있습니다. 또한, 애플리케이션 아이콘 대신 액션바에 최적화된 그림인 '로고'를 표시하도록 하는 것도 가능합니다.

로고는 매니페스트에서 지정할 수 있으며, 로고를 지정하면 애플리케이션 아이콘 대신 로고가 기본적으로 액션바에 표시됩니다. 로고를 표시하거나 표시하지 않도록 하려면 ActionBar.setDisplayUseLogoEnabled() 메서드를 사용합니다.

API
public abstract void setDisplayUseLogoEnabled(boolean enabled)

액션바의 로고 표시유무를 설정합니다.


로고와 마찬가지로 액션바에 표시되는 제목도 ActionBar.setDisplayShowTItleEnabled() 메서드를 사용하여 쉽게 표시 여부를 설정할 수 있습니다.

API
public abstract void setDisplayShowTitleEnabled(boolean enabled)

액션바에 표시되는 제목의 표시유무를 설정합니다.