안드로이드에서 액션바(ActionBar)는 사용자 인터페이스(UI)의 상단에 위치하는 중요한 요소로, 애플리케이션의 제목, 네비게이션, 사용자 인터페이스 요소 등을 표시하는 역할을 합니다.
액션바는 앱의 전체적인 UI 흐름을 제어하고 사용자와 상호작용할 수 있게 도와줍니다.
주요 역할:
- 제목 표시: 액션바는 앱이나 화면의 제목을 표시하는 기본적인 위치입니다. 예를 들어, 앱의 이름이나 특정 화면에 대한 제목을 액션바에 표시합니다.
- 내비게이션 기능: 액션바는 뒤로 가기 버튼, 탭, 드롭다운 메뉴 등 다양한 내비게이션 요소를 제공할 수 있습니다. 사용자에게 애플리케이션 내에서의 위치나 화면 간 이동을 편리하게 돕습니다.
- 액션 아이템 추가: 액션바에는 버튼, 메뉴, 검색창 등의 아이템을 추가하여 사용자가 빠르게 액션을 수행할 수 있게 합니다. 예를 들어, 저장, 편집, 설정 버튼 등을 액션바에 배치할 수 있습니다.
- 사용자 인터페이스(UI) 구성: 액션바는 사용자 인터페이스의 상단에 일관된 디자인을 제공하여 사용자가 앱 내에서 쉽게 탐색할 수 있도록 합니다.
액션바 구성 요소:
- 타이틀(Title): 화면의 제목을 나타냅니다.
- 메뉴(Menu): 액션바에 표시되는 메뉴 아이템들로, 버튼이나 드롭다운 메뉴 형식으로 사용자가 클릭할 수 있는 항목들이 포함됩니다.
- 서브타이틀(SubTitle): 타이틀 아래에 표시되는 부가적인 정보를 제공할 수 있는 텍스트입니다.
- 아이콘(Icon): 앱 아이콘 또는 특정 작업을 수행하는 아이콘을 액션바에 배치할 수 있습니다.
- 네비게이션 아이템(Navigation item): 화면 전환을 돕는 아이템들, 예를 들어 뒤로가기 버튼이 여기에 해당합니다.
액션바 설정 방법:
themes.xml에서 테마 바꾸기
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.SimpleMemo" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.SimpleMemo" parent="Base.Theme.SimpleMemo" />
</resources>
Theme에 ActionBar를 지원하는 테마를 선택합니다.
res패키지에 menu패키지 추가
- xml파일은 유지관리를 위해 액션바에 사용될 액티비티 이름과 맞추는것을 추천!
프레임워크가 menu패키지의 새 xml은 MenuResource로 처리해줍니다.
showAsAction 설정으로 아이콘이 항상 보이게 할지, 드롭다운으로 메뉴들이 보이게 할지 설정 가능합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 액션바에 제목 설정
getSupportActionBar().setTitle("MainActivity");
}
위와 같이 getSupportActionBar().setTitle("제목")을 사용하면 액션바의 제목을 설정할 수 있습니다.
2. 액션바의 뒤로가기 버튼 추가
액션바에 뒤로가기 버튼을 추가할 수 있습니다. 이를 통해 사용자가 이전 화면으로 돌아갈 수 있게 합니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 뒤로가기 버튼 추가
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
// 뒤로가기 버튼 클릭 시 수행할 동작
finish();
return true;
}
return super.onOptionsItemSelected(item);
}