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

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

ข้อความสำรอง

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

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

ในสถานการณ์นี้ วิดเจ็ตอาจแสดงผลไม่ถูกต้องในกรณีใดกรณีหนึ่งต่อไปนี้

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

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

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

ใช้ตัวอย่าง

หากต้องการดูการทำงานของ 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 เป็นต้นไป Launcher จะช่วยให้การเปลี่ยนผ่านราบรื่นขึ้นเมื่อผู้ใช้เปิดแอปจากวิดเจ็ต ดูรายละเอียดได้ที่เปิดใช้การเปลี่ยนภาพที่ราบรื่นยิ่งขึ้น

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

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

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

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

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

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