แผนภาพต่อไปนี้จะช่วยคุณตัดสินใจว่าจะใช้ API ใดเพื่อใช้การเคลื่อนไหว
ใช้แผนผังการตัดสินใจต่อไปนี้เพื่อเลือก API ภาพเคลื่อนไหวที่เหมาะสมที่สุดสำหรับ Use Case ของคุณ
- ภาพเคลื่อนไหวของคุณเป็นแบบอาร์ต (เช่น SVG หรือรูปภาพ) ใช่ไหม
- ใช่: ใช้ SVG แบบง่าย (เช่น ไอคอนที่มีภาพเคลื่อนไหวขนาดเล็ก) หรือไม่
- ใช่:
AnimatedVectorDrawable - ไม่: เฟรมเวิร์กภาพเคลื่อนไหวของบุคคลที่สาม เช่น
Lottie
- ใช่:
- ไม่: ภาพเคลื่อนไหวต้องวนซ้ำไปเรื่อยๆ ไหม
- ใช่:
rememberInfiniteTransition - ไม่: คุณกำลังสร้างภาพเคลื่อนไหวให้เลย์เอาต์ใช่ไหม
- ใช่: คุณกำลังสลับระหว่าง Composable ที่มีเนื้อหาต่างกันใช่ไหม
- ใช่: คุณใช้ Navigation-Compose อยู่ใช่ไหม
- ใช่:
composable()โดยตั้งค่าenterTransitionและexitTransition - ไม่ได้ คุณต้องใช้
AnimatedContent,CrossfadeหรือPager
- ใช่:
- ไม่: คุณกำลังทำให้การปรากฏหรือการหายไปของเนื้อหาเคลื่อนไหวใช่ไหม
- ได้:
AnimatedVisibilityหรือanimateFloatAsStateที่มีModifier.alpha() - ไม่: คุณกำลังสร้างภาพเคลื่อนไหวให้กับการเปลี่ยนแปลงขนาดใช่ไหม
- ใช่:
Modifier.animateContentSize - ไม่: คุณกำลังทำให้พร็อพเพอร์ตี้เลย์เอาต์อื่นเคลื่อนไหวอยู่หรือไม่ (เช่น ออฟเซ็ตหรือระยะห่างจากขอบ)
- ใช่: ดูหัวข้อ "พร็อพเพอร์ตี้เป็นอิสระจากกันโดยสิ้นเชิงหรือไม่"
- ไม่: คุณกำลังทำให้รายการเคลื่อนไหวอยู่ใช่ไหม
- ใช่:
animateItem()
- ใช่:
- ใช่:
- ได้:
- ใช่: คุณใช้ Navigation-Compose อยู่ใช่ไหม
- ไม่: คุณกำลังสร้างภาพเคลื่อนไหวให้กับพร็อพเพอร์ตี้หลายรายการใช่ไหม
- ใช่: พร็อพเพอร์ตี้เป็นอิสระจากกันโดยสิ้นเชิงหรือไม่
- ใช่:
animate*AsStateสำหรับข้อความ ให้ใช้TextMotion.Animated - ไม่: ต้องเริ่มพร้อมกันไหม
- ใช่:
updateTransitionพร้อมAnimatedVisibility,animateFloat,animateIntฯลฯ - ไม่:
Animatableที่มีanimateToซึ่งเรียกใช้ด้วยเวลาที่ต่างกันโดยใช้ฟังก์ชันระงับ
- ใช่:
- ใช่:
- ไม่: ภาพเคลื่อนไหวมีค่าเป้าหมายที่กำหนดไว้ล่วงหน้าไหม
- ใช่:
animate*AsStateสำหรับข้อความ ให้ใช้TextMotion.Animated - ไม่: ภาพเคลื่อนไหวทำงานตามท่าทางสัมผัสและเป็นแหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียว (SSOT) ใช่ไหม
- ใช่:
Animatableพร้อมanimateTo/snapTo - ไม่: เป็นภาพเคลื่อนไหวแบบครั้งเดียวที่ไม่มีการจัดการสถานะใช่ไหม
- ใช่:
AnimationStateหรือanimate - ไม่: คำตอบไม่อยู่ที่นี่ใช่ไหม ส่งคำขอฟีเจอร์
- ใช่:
- ใช่:
- ใช่:
- ใช่: พร็อพเพอร์ตี้เป็นอิสระจากกันโดยสิ้นเชิงหรือไม่
- ใช่: คุณกำลังสลับระหว่าง Composable ที่มีเนื้อหาต่างกันใช่ไหม
- ใช่:
- ใช่: ใช้ SVG แบบง่าย (เช่น ไอคอนที่มีภาพเคลื่อนไหวขนาดเล็ก) หรือไม่
ดาวน์โหลดแผนภาพเวอร์ชัน PDF