สร้างและแสดงข้อความป๊อปอัป

ลองใช้วิธีการเขียน
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีเพิ่มการแจ้งเตือนใน Compose

คุณสามารถใช้ 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 จะง่ายกว่า การรวมเนื้อหาของคุณไว้
รหัสสตริง
รหัสทรัพยากรของข้อความที่ต้องการแสดง สามารถจัดรูปแบบหรือ ข้อความที่ไม่ได้จัดรูปแบบ
ระยะเวลา
ระยะเวลาที่ใช้ในการแสดงข้อความ ประเภท LENGTH_SHORT หรือ LENGTH_LONG

แสดงข้อความต่อผู้ใช้

หลังจากสร้าง Snackbar แล้ว ให้เรียกใช้ show() เพื่อแสดง 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();