คุณสามารถใช้ Snackbar
เพื่อแสดงข้อความสั้นๆ แก่ผู้ใช้ ข้อความจะหายไปโดยอัตโนมัติหลังจากผ่านไประยะหนึ่ง ซึ่งต่างจากการแจ้งเตือน Snackbar
เหมาะสําหรับข้อความสั้นๆ ที่ผู้ใช้ไม่จําเป็นต้องดําเนินการใดๆ เช่น แอปอีเมลสามารถใช้ Snackbar
เพื่อแจ้งให้ผู้ใช้ทราบว่าแอปส่งอีเมลสําเร็จ
ใช้ CoordinatorLayout
Snackbar
แนบอยู่กับมุมมอง Snackbar
มีฟังก์ชันพื้นฐานหากแนบอยู่กับออบเจ็กต์ที่มาจากคลาส View
เช่น ออบเจ็กต์เลย์เอาต์ทั่วไป อย่างไรก็ตาม หากSnackbar
เชื่อมโยงกับCoordinatorLayout
Snackbar
จะได้รับฟีเจอร์เพิ่มเติมดังต่อไปนี้
- ผู้ใช้สามารถปิด
Snackbar
ได้โดยปัดออก - เลย์เอาต์จะย้ายองค์ประกอบ UI อื่นๆ เมื่อ
Snackbar
ปรากฏขึ้น เช่น หากเลย์เอาต์มี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>
ตั้งค่าแท็ก android:id
สําหรับ CoordinatorLayout
คุณต้องใช้รหัสของเลย์เอาต์เมื่อแสดงข้อความ
รูปที่ 1 CoordinatorLayout
จะย้าย FloatingActionButton
ขึ้นเมื่อ Snackbar
ปรากฏขึ้น
แสดงข้อความ
การแสดงข้อความมี 2 ขั้นตอน ก่อนอื่น ให้สร้างออบเจ็กต์ Snackbar
ที่มีข้อความ จากนั้นเรียกใช้show()
วิธีของออบเจ็กต์นั้นเพื่อแสดงข้อความต่อผู้ใช้
สร้างออบเจ็กต์ Snackbar
สร้างออบเจ็กต์ Snackbar
โดยการเรียกใช้เมธอดแบบคงที่ของ Snackbar.make()
เมื่อสร้าง Snackbar
ให้ระบุข้อความที่จะแสดงและระยะเวลาในการแสดงข้อความ ดังนี้
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- การดู
-
มุมมองที่จะแนบ
Snackbar
วิธีการนี้จะค้นหาจากลําดับชั้นของมุมมองจากมุมมองที่ส่งจนกว่าจะถึงCoordinatorLayout
หรือมุมมองเนื้อหาของการตกแต่งหน้าต่าง ปกติแล้ว การส่งCoordinatorLayout
ที่ล้อมรอบเนื้อหาจะง่ายกว่า - stringId
- รหัสทรัพยากรของข้อความที่ต้องการแสดง ซึ่งอาจเป็นข้อความที่มีการจัดรูปแบบหรือไม่มีการจัดรูปแบบก็ได้
- ระยะเวลา
-
ระยะเวลาในการแสดงข้อความ ซึ่งอาจเป็น
LENGTH_SHORT
หรือLENGTH_LONG
แสดงข้อความต่อผู้ใช้
หลังจากสร้าง Snackbar
แล้ว ให้เรียกใช้เมธอด show()
ของ Snackbar
เพื่อแสดง Snackbar
ต่อผู้ใช้
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
ระบบจะไม่แสดงออบเจ็กต์ Snackbar
หลายรายการพร้อมกัน ดังนั้นหากในขณะนี้มุมมองแสดง Snackbar
รายการอื่นอยู่ ระบบจะจัดคิว Snackbar
ของคุณและแสดงหลังจาก Snackbar
ปัจจุบันหมดอายุหรือถูกปิด
หากต้องการแสดงข้อความต่อผู้ใช้และไม่จำเป็นต้องเรียกใช้เมธอดยูทิลิตีของออบเจ็กต์ Snackbar
คุณก็ไม่จำเป็นต้องเก็บการอ้างอิง Snackbar
ไว้หลังจากเรียกใช้ show()
ด้วยเหตุนี้ เราจึงมักใช้การต่อเชนเมธอดเพื่อสร้างและแสดง 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();