แถบแอปให้คุณเพิ่มปุ่มสำหรับการดำเนินการของผู้ใช้ได้ ฟีเจอร์นี้ช่วยให้คุณวาง การดำเนินการที่สำคัญที่สุดสำหรับบริบทปัจจุบันที่ด้านบนสุดของแอป ตัวอย่างเช่น แอปเรียกดูรูปภาพอาจแสดงตัวเลือกแชร์และสร้าง อัลบั้มที่ด้านบนเมื่อผู้ใช้กำลังดูรูปภาพ วันและเวลา ผู้ใช้ดูรูปแต่ละรูป แอปอาจแสดงครอบตัด และ ปุ่มตัวกรอง
พื้นที่ในแถบแอปมีจำกัด หากแอปประกาศการดำเนินการมากเกินกว่าจะแสดงได้ ในแถบแอป แถบแอปจะส่งการดำเนินการที่เกินมาที่เมนูรายการเพิ่มเติม แอปยังระบุได้ด้วยว่าจะให้การดำเนินการแสดงในเมนูรายการเพิ่มเติมเสมอ แทนที่จะแสดงในแถบแอป
เพิ่มปุ่มการทำงาน
ปุ่มการทำงานและรายการอื่นๆ ทั้งหมดในรายการการดำเนินการเพิ่มเติมได้แก่
ที่กำหนดไว้ใน XML
แหล่งข้อมูลเมนู หากต้องการเพิ่ม
กับแถบการทำงาน ให้สร้างไฟล์ XML ใหม่ในไฟล์
ไดเรกทอรี res/menu/
เพิ่ม
<item>
สำหรับแต่ละรายการที่คุณต้องการรวมไว้ในแถบการทำงาน ดังที่แสดงใน
ตัวอย่างไฟล์ XML ของเมนูต่อไปนี้
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
แอตทริบิวต์ app:showAsAction
ระบุว่าการดำเนินการ
แสดงเป็นปุ่มในแถบแอป หากตั้งค่าไว้
app:showAsAction="ifRoom"
— ตามที่แสดงในโค้ดตัวอย่าง
การดำเนินการรายการโปรด - การดำเนินการจะแสดงเป็นปุ่มหากมีที่ว่างอยู่
แถบแอปสำหรับแถบแอป หากมีพื้นที่ไม่เพียงพอ ระบบจะส่งการดำเนินการส่วนเกินไปยัง
เมนูรายการเพิ่มเติม หากคุณตั้งค่า app:showAsAction="never"
ดังเช่น
การตั้งค่าของโค้ดตัวอย่าง การทำงานจะปรากฏใน
เมนูรายการเพิ่มเติมและไม่แสดงในแถบแอป
ระบบจะใช้ไอคอนการทำงานเป็นปุ่มการทำงาน หากการดำเนินการปรากฏขึ้น ในแถบแอป คุณจะพบไอคอนที่มีประโยชน์มากมายใน ไอคอน Material
ตอบสนองต่อการดำเนินการ
เมื่อผู้ใช้เลือกรายการในแถบแอป ระบบจะเรียกใช้
ของกิจกรรม
onOptionsItemSelected()
เมธอด Callback และส่ง
ออบเจ็กต์ MenuItem
รายการ
เพื่อระบุว่ามีการแตะรายการใด ในการติดตั้งใช้งาน
onOptionsItemSelected()
โทรหา
วันที่ MenuItem.getItemId()
เพื่อระบุว่ามีการแตะรายการใด รหัสที่แสดงผลตรงกับค่าที่คุณ
ประกาศในองค์ประกอบ <item>
ที่เกี่ยวข้อง
android:id
เช่น ข้อมูลโค้ดต่อไปนี้จะตรวจสอบการทำงานที่ผู้ใช้เลือก หากเมธอดไม่รู้จักการดำเนินการของผู้ใช้ ระบบจะใช้ Superclass วิธีการ:
Kotlin
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
Java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }