앱 바 설정

Compose 방법 사용해 보기
Jetpack Compose는 Android에 권장되는 UI 도구 키트입니다. Compose에서 구성요소를 추가하는 방법을 알아봅니다.

가장 기본적인 형태의 작업 모음은 한쪽에는 활동 제목을 표시하고 다른 쪽에는 더보기 메뉴를 표시합니다. 이 기본 형식에서도 앱 바는 사용자에게 유용한 정보를 제공하고 Android 앱의 디자인과 분위기를 일관되게 만들어 줍니다.

Now in Android 앱의 앱 바를 보여주는 이미지
그림 1. 'Now in Android' 앱에 작업 아이콘이 있는 앱 바

기본 테마를 사용하는 모든 활동에는 ActionBar이 앱 바로 있습니다. 앱 바 기능은 다양한 Android 출시를 통해 네이티브 ActionBar에 추가됩니다. 따라서 네이티브 ActionBar는 기기에서 사용 중인 Android 버전에 따라 다르게 동작합니다.

반면에 기능은 AndroidX AppCompat 라이브러리의 Toolbar 버전에 추가됩니다. 즉, AndroidX 라이브러리를 사용하는 기기에서 이러한 기능을 사용할 수 있습니다.

이러한 이유로 활동의 앱 바를 구현하려면 AndroidX 라이브러리의 Toolbar 클래스를 사용하세요. AndroidX 라이브러리의 툴바를 사용하면 다양한 기기에서 앱 동작을 일관되게 유지할 수 있습니다.

활동에 툴바 추가하기

다음 단계에서는 Toolbar를 활동의 앱 바로 설정하는 방법을 설명합니다.
  1. AndroidX 개요에 설명된 대로 프로젝트에 AndroidX 라이브러리를 추가합니다.
  2. 활동이 AppCompatActivity를 확장하는지 확인합니다.

    Kotlin

    class MyActivity : AppCompatActivity() {
      // ...
    }
    

    Java

    public class MyActivity extends AppCompatActivity {
      // ...
    }
    
  3. 다음 예와 같이 앱 매니페스트에서 AppCompat의 NoActionBar 테마 중 하나를 사용하도록 <application> 요소를 설정합니다. 이러한 테마 중 하나를 사용하면 앱에서 네이티브 ActionBar 클래스를 사용하여 앱 바를 제공할 수 없습니다.
    <application
        android:theme="@style/Theme.AppCompat.Light.NoActionBar"
        />
    
  4. Toolbar를 활동의 레이아웃에 추가합니다. 예를 들어 다음 레이아웃 코드는 Toolbar를 추가하고 활동 위에 플로팅 방식으로 표시되도록 합니다.
    <androidx.appcompat.widget.Toolbar
       android:id="@+id/my_toolbar"
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:elevation="4dp"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
    

    앱 바 엘리베이션에 관한 권장 사항은 머티리얼 디자인 사양을 참조하세요.

    툴바를 앱 바로 사용하고 있으므로 툴바를 활동 레이아웃의 맨 위에 배치합니다.

  5. 다음 예와 같이 활동의 onCreate() 메서드에서 활동의 setSupportActionBar() 메서드를 호출하고 활동의 툴바를 전달합니다. 이 메서드는 툴바를 활동의 앱 바로 설정합니다.

    Kotlin

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // The Toolbar defined in the layout has the id "my_toolbar".
        setSupportActionBar(findViewById(R.id.my_toolbar))
    }
    

    Java

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(myToolbar);
    }
    

이제 앱에 기본 작업 모음이 있습니다. 기본적으로 작업 모음에는 앱 이름과 더보기 메뉴가 있으며, 이 더보기 메뉴에는 처음에 설정 항목이 있습니다. 작업 추가 및 처리에 설명된 대로 작업 모음과 더보기 메뉴에 더 많은 작업을 추가할 수 있습니다.

앱 바 유틸리티 메서드 사용

툴바를 활동의 앱 바로 설정하면 AndroidX 라이브러리의 ActionBar 클래스에서 제공하는 유틸리티 메서드에 액세스할 수 있습니다. 이 접근 방식을 사용하면 앱 바 숨기기 및 표시와 같은 유용한 작업을 수행할 수 있습니다.

ActionBar 유틸리티 메서드를 사용하려면 활동의 getSupportActionBar() 메서드를 호출합니다. 이 메서드는 AppCompat ActionBar 객체 참조를 반환합니다. 이 참조가 있으면 ActionBar 메서드 중 하나를 호출하여 앱 바를 조정할 수 있습니다. 예를 들어 앱 바를 숨기려면 ActionBar.hide()를 호출합니다.