การปรับปรุงวิดเจ็ต Android 12

Android 12 (API ระดับ 31) ปรับปรุง Widgets API ที่มีอยู่เพื่อปรับปรุงประสบการณ์ของผู้ใช้และนักพัฒนาแอปในแพลตฟอร์มและ Launcher ใช้คู่มือนี้เพื่อดูวิธีตรวจสอบว่าวิดเจ็ตของคุณเข้ากันได้กับ Android 12 รวมถึงใช้เป็นข้อมูลอ้างอิงสำหรับ API ในการรีเฟรชวิดเจ็ตที่มีอยู่

ข้อความแสดงแทน

ตรวจสอบว่าวิดเจ็ตของคุณเข้ากันได้กับ Android 12

วิดเจ็ตใน Android 12 มีมุมโค้งมน เมื่อใช้วิดเจ็ตแอปในอุปกรณ์ที่ใช้ Android 12 ขึ้นไป ตัวเปิดแอปจะระบุพื้นหลังของวิดเจ็ตโดยอัตโนมัติและครอบตัดให้มีมุมมน

ในสถานการณ์นี้ วิดเจ็ตอาจแสดงอย่างไม่ถูกต้องในเงื่อนไขต่อไปนี้

  • วิดเจ็ตมีเนื้อหาที่มุม: ซึ่งอาจทำให้ระบบครอบตัดเนื้อหาบางส่วนในบริเวณมุม

  • วิดเจ็ตใช้พื้นหลังที่ไม่ไวต่อการครอบตัด ซึ่งรวมถึงพื้นหลังโปร่งใส มุมมองหรือเลย์เอาต์ว่างเปล่า หรือพื้นหลังพิเศษประเภทอื่นๆ ที่ไม่เหมาะต่อการครอบตัด ระบบอาจระบุพื้นหลังที่จะใช้ได้อย่างถูกต้อง

หากวิดเจ็ตจะได้รับผลกระทบจากการเปลี่ยนแปลงนี้ เราขอแนะนำให้รีเฟรชวิดเจ็ตโดยให้มุมมน (ตามที่อธิบายไว้ในส่วนต่อไปนี้) เพื่อให้แสดงอย่างถูกต้อง

ใช้ตัวอย่าง

หากต้องการดูการทำงานของ API ทั้งหมดเหล่านี้ โปรดดูวิดเจ็ตรายการตัวอย่าง

ใช้มุมมน

Android 12 เปิดตัวพารามิเตอร์ระบบ system_app_widget_background_radius และ system_app_widget_inner_radius เพื่อกำหนดรัศมีของมุมมนของวิดเจ็ต

วิดเจ็ตสภาพอากาศของโตเกียว
รูปที่ 1: มุมโค้งมนบนวิดเจ็ตและมุมมองภายในวิดเจ็ต

1 มุมของวิดเจ็ต

2 มุมของมุมมองภายในวิดเจ็ต

โปรดดูรายละเอียดที่หัวข้อใช้มุมมน

เพิ่มธีมอุปกรณ์

ตั้งแต่ Android 12 เป็นต้นไป วิดเจ็ตจะใช้สีธีมของอุปกรณ์สำหรับปุ่ม พื้นหลัง และคอมโพเนนต์อื่นๆ ได้ รวมถึงธีมสว่างและธีมมืด วิธีนี้ช่วยให้วิดเจ็ตต่างๆ เปลี่ยนรูปแบบได้อย่างราบรื่นและมีความสอดคล้องกัน

ดูข้อมูลเพิ่มเติมได้ที่เพิ่มธีมของอุปกรณ์

วิดเจ็ตในธีมโหมดสว่าง
รูปที่ 2: วิดเจ็ตในธีมแสง
วิดเจ็ตในธีมโหมดมืด
รูปที่ 3: วิดเจ็ตในธีมมืด

ปรับแต่งวิดเจ็ตได้ง่ายขึ้น

หากคุณระบุกิจกรรมการกําหนดค่าที่มีแอตทริบิวต์ configure ของ appwidget-provider โฮสต์วิดเจ็ตแอปจะเปิดใช้งานกิจกรรมนั้นทันทีหลังจากที่ผู้ใช้เพิ่มวิดเจ็ตลงในหน้าจอหลัก

Android 12 เพิ่มตัวเลือกใหม่ๆ ให้คุณมอบประสบการณ์การกําหนดค่าที่ดีขึ้นแก่ผู้ใช้ โปรดดูรายละเอียดที่หัวข้ออนุญาตให้ผู้ใช้กำหนดค่าวิดเจ็ต

เพิ่มปุ่มคอมโพเนนต์ใหม่

Android 12 เพิ่มการรองรับใหม่สำหรับลักษณะการทำงานที่มีสถานะโดยใช้คอมโพเนนต์ที่มีอยู่ต่อไปนี้

วิดเจ็ตยังคงเป็นแบบไม่มีสถานะ แอปของคุณต้องจัดเก็บสถานะและลงทะเบียนเพื่อรับเหตุการณ์การเปลี่ยนแปลงสถานะ

รูปที่ 4: ตัวอย่างวิดเจ็ตที่มีช่องทําเครื่องหมาย

โปรดดูรายละเอียดที่หัวข้อการรองรับลักษณะการทำงานที่มีสถานะ

ใช้ API ที่ปรับปรุงแล้วสำหรับขนาดและเลย์เอาต์วิดเจ็ต

ตั้งแต่ Android 12 เป็นต้นไป คุณสามารถใช้แอตทริบิวต์ขนาดที่ละเอียดยิ่งขึ้นและเลย์เอาต์ที่ยืดหยุ่นมากขึ้นได้โดยระบุข้อจำกัดการปรับขนาดวิดเจ็ตเพิ่มเติม รวมถึงระบุเลย์เอาต์ที่ปรับเปลี่ยนได้และเลย์เอาต์ที่แน่นอน

ดูรายละเอียดได้ที่จัดวางวิดเจ็ตอย่างยืดหยุ่น

ปรับปรุงประสบการณ์การใช้งานเครื่องมือเลือกวิดเจ็ตของแอป

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

ช่วยให้การเปลี่ยนภาพราบรื่นยิ่งขึ้น

ตั้งแต่ Android 12 เป็นต้นไป ตัวเปิดแอปจะเปลี่ยนผ่านได้ราบรื่นขึ้นเมื่อผู้ใช้เปิดแอปจากวิดเจ็ต โปรดดูรายละเอียดที่หัวข้อเปิดใช้การเปลี่ยนที่ราบรื่นยิ่งขึ้น

ใช้คอลเล็กชัน RemoteViews แบบง่าย

Android 12 เพิ่มวิธี setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items) ซึ่งช่วยให้แอปส่งคอลเล็กชันได้โดยตรงเมื่อป้อนข้อมูล ListView ก่อนหน้านี้ เมื่อใช้ ListView จำเป็นต้องติดตั้งใช้งานและประกาศ RemoteViewsService เพื่อแสดงผล RemoteViewsFactory

โปรดดูรายละเอียดที่หัวข้อใช้คอลเล็กชัน RemoteViews

ใช้การแก้ไขรันไทม์ของ RemoteViews

Android 12 เพิ่มเมธอด RemoteViews หลายรายการที่อนุญาตให้แก้ไขแอตทริบิวต์ RemoteViews ขณะรันไทม์ ดูรายการเมธอดทั้งหมดที่เพิ่มแล้วได้ในRemoteViewsเอกสารอ้างอิง API

โปรดดูรายละเอียดที่หัวข้อใช้การแก้ไขรันไทม์ของ RemoteViews