เพิ่มปุ่มการทำงานแบบลอย

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

ปุ่มการทำงานแบบลอย (FAB) เป็นปุ่มวงกลมที่เรียกปุ่มหลัก การดำเนินการใน UI ของแอป เอกสารนี้จะแสดงวิธีเพิ่ม FAB ไปยังเลย์เอาต์ของคุณ ปรับแต่งรูปลักษณ์บางอย่างและตอบกลับการแตะปุ่ม

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีออกแบบ FAB สำหรับแอปตามสื่อการเรียนการสอนของชั้นเรียน หลักเกณฑ์ด้านการออกแบบ โปรดดูดีไซน์ Material FAB ที่ใช้เวลาเพียง 2 นาที

วันที่ รูปภาพแสดงหน้าจอแอปที่มี FloodActionButton สีแดง
รูปที่ 1 ปุ่มการทำงานแบบลอย (FAB)

เพิ่มปุ่มการทำงานแบบลอยในเลย์เอาต์

โค้ดต่อไปนี้แสดงวิธีที่ FloatingActionButton จะปรากฏในไฟล์เลย์เอาต์ของคุณ ดังนี้

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:src="@drawable/ic_my_icon"
        android:contentDescription="@string/submit"
        android:layout_margin="16dp" />

โดยค่าเริ่มต้น FAB จะแสดงสีตามแอตทริบิวต์ colorAccent ซึ่งคุณสามารถ ปรับแต่งด้วยสีของธีม สี

คุณสามารถกำหนดค่าพร็อพเพอร์ตี้ FAB อื่นๆ โดยใช้แอตทริบิวต์ XML หรือ วิธีการ ดังตัวอย่างต่อไปนี้

  • ขนาดของ FAB โดยใช้แอตทริบิวต์ app:fabSize หรือ setSize() วิธีการ
  • สีระลอกคลื่นของ FAB โดยใช้แอตทริบิวต์ app:rippleColor หรือค่า setRippleColor() วิธีการ
  • ไอคอน FAB โดยใช้แอตทริบิวต์ android:src หรือ setImageDrawable() วิธีการ

ตอบสนองต่อการแตะปุ่ม

จากนั้นคุณจะใช้ View.OnClickListener ถึง จัดการการแตะ FAB ตัวอย่างเช่น โค้ดต่อไปนี้แสดง Snackbar เมื่อ ผู้ใช้แตะ FAB

Kotlin

val fab: View = findViewById(R.id.fab)
fab.setOnClickListener { view ->
    Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG)
            .setAction("Action", null)
            .show()
}

Java

FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Snackbar.make(view, "Here's a Snackbar", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show();
    }
});

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของ FAB โปรดดูข้อมูลอ้างอิง API สำหรับ FloatingActionButton