Snackbar
를 사용하여 사용자에게 간단한 메시지를 표시할 수 있습니다. 알림과 달리 이 메시지는 잠시 후에 자동으로 사라집니다. Snackbar
는 사용자가 조치를 취할 필요가 없는 간략한 메시지에 적합합니다. 예를 들어 이메일 앱은 Snackbar
를 사용하여 앱이 이메일을 성공적으로 전송했음을 사용자에게 알릴 수 있습니다.
CoordinatorLayout 사용
Snackbar
는 뷰에 연결되어 있습니다. Snackbar
는 일반 레이아웃 객체와 같이 View
클래스에서 파생된 객체에 연결된 경우 기본 기능을 제공합니다. 그러나 Snackbar
가 CoordinatorLayout
에 연결되면 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>
CoordinatorLayout
에 android:id
태그를 설정합니다.
메시지를 표시할 때 레이아웃의 ID가 필요합니다.
메시지 표시
메시지를 표시하는 단계는 두 가지가 있습니다. 먼저 메시지 텍스트로 Snackbar
객체를 만듭니다. 그런 다음 객체의 show()
메서드를 호출하여 사용자에게 메시지를 표시합니다.
스낵바 객체 만들기
정적 Snackbar.make()
메서드를 호출하여 Snackbar
객체를 만듭니다. Snackbar
를 만들 때 표시되는 메시지와 메시지 표시 기간을 지정합니다.
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- 조회됨
Snackbar
를 연결할 뷰입니다. 이 메서드는 전달된 뷰에서CoordinatorLayout
또는 창 장식의 콘텐츠 뷰에 도달할 때까지 뷰 계층 구조를 검색합니다. 일반적으로 콘텐츠를 포함하는CoordinatorLayout
를 전달하는 것이 더 간단합니다.- stringId
- 표시하려는 메시지의 리소스 ID입니다. 서식이 지정되거나 지정되지 않은 텍스트일 수 있습니다.
- 시간
-
메시지를 표시하는 데 걸리는 시간입니다.
LENGTH_SHORT
또는LENGTH_LONG
일 수 있습니다.
사용자에게 메시지 표시
Snackbar
를 만든 후 show()
메서드를 호출하여 사용자에게 Snackbar
를 표시합니다.
Kotlin
mySnackbar.show()
Java
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()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();