Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

팝업 메시지 빌드 및 표시

Snackbar를 사용하여 간략한 메시지를 사용자에게 표시할 수 있습니다. 이 메시지는 잠시 후에 자동으로 사라집니다. Snackbar는 사용자가 따를 필요가 없는 간략한 메시지에 적합합니다. 예를 들어 이메일 앱에서 Snackbar를 사용하여 앱에서 이메일이 성공적으로 전송되었다고 사용자에게 알릴 수 있습니다.

CoordinatorLayout 사용

Snackbar는 뷰에 연결되어 있습니다. SnackbarView 클래스에서 파생된 객체(예: 일반적인 레이아웃 객체)에 연결된 경우 기본 기능을 제공합니다. 그러나 SnackbarCoordinatorLayout에 연결된 경우 Snackbar에는 다음과 같은 기능이 추가됩니다.

  • 사용자가 Snackbar를 스와이프하여 닫을 수 있습니다.
  • Snackbar가 표시되면 레이아웃에서 다른 UI 요소를 이동합니다. 예를 들어 레이아웃에 FloatingActionButton이 있으면 레이아웃은 버튼 위에 Snackbar를 그리는 대신 Snackbar를 표시할 때 버튼을 위로 이동합니다. 표시되는 방식은 그림 1에서 확인할 수 있습니다.

CoordinatorLayout 클래스는 FrameLayout 기능의 상위 집합을 제공합니다. 앱에서 이미 FrameLayout을 사용한다면 이 레이아웃을 CoordinatorLayout으로 바꾸기만 하면 전체 Snackbar 기능을 사용 설정할 수 있습니다. 앱에서 다른 레이아웃 객체를 사용하면 다음 예와 같이 CoordinatorLayout에 기존 레이아웃 요소를 래핑하는 것이 가장 간단합니다.

<android.support.design.widget.CoordinatorLayout
        android:id="@+id/myCoordinatorLayout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- Here are the existing layout elements, now wrapped in
             a CoordinatorLayout -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <!-- …Toolbar, other layouts, other elements… -->

        </LinearLayout>

    </android.support.design.widget.CoordinatorLayout>

CoordinatorLayoutandroid:id 태그를 설정해야 합니다. 메시지를 표시할 때 레이아웃의 ID가 있어야 합니다.

그림 1. Snackbar가 표시될 때 FloatingActionButton을 위로 이동하는 CoordinatorLayout

메시지 표시

메시지를 표시하는 단계는 두 가지가 있습니다. 먼저 메시지 텍스트를 사용하여 Snackbar 객체를 만듭니다. 그런 다음 객체의 show() 메서드를 호출하여 사용자에게 메시지를 표시합니다.

스낵바 객체 생성

정적 Snackbar.make() 메서드를 호출하여 Snackbar 객체를 만듭니다. Snackbar를 만들 때, 표시하는 메시지와 메시지를 표시하는 기간을 모두 지정합니다.

Kotlin

    val mySnackbar = Snackbar.make(view, stringId, duration)
    

자바

    Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
    
보기
Snackbar를 연결할 뷰입니다. 이 메서드는 CoordinatorLayout 또는 창 장식의 콘텐츠 뷰에 도달할 때까지 전달된 에서 실제로 뷰 계층 구조를 검색합니다. 일반적으로 콘텐츠를 포함하는 CoordinatorLayout을 전달하는 것이 가장 간단합니다.
stringId
표시하려는 메시지의 리소스 ID입니다. 서식이 지정되거나 지정되지 않은 텍스트입니다.
기간
메시지를 표시할 기간입니다. LENGTH_SHORT 또는 LENGTH_LONG일 수 있습니다.

메시지 표시

Snackbar를 만들고 나면 show() 메서드를 호출하여 Snackbar를 사용자에게 표시합니다.

Kotlin

    mySnackbar.show()
    

자바

    mySnackbar.show();
    

시스템에서는 여러 Snackbar 객체를 동시에 표시하지 않으므로 뷰에서 현재 다른 Snackbar가 표시되고 있다면 시스템은 Snackbar를 대기열에 추가하고 현재 Snackbar가 만료되거나 닫힌 후 표시합니다.

사용자에게 메시지를 표시하려고 하며 Snackbar 객체의 유틸리티 메서드를 호출하지 않아도 되는 경우 show()를 호출한 후 Snackbar 참조를 유지하지 않아도 됩니다. 따라서 메서드 체이닝을 사용하여 구문 하나로 Snackbar를 만들고 표시하는 것이 일반적입니다.

Kotlin

    Snackbar.make(
            findViewById(R.id.myCoordinatorLayout),
            R.string.email_sent,
            Snackbar.LENGTH_SHORT
    ).show()
    

자바

    Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent,
                            Snackbar.LENGTH_SHORT)
            .show();