ข้อจำกัดและการแก้ปัญหา

ข้อจำกัดเกี่ยวกับ Figma และการแปล

ประเภทเลเยอร์ Figma ที่รองรับ

Relay รองรับเฉพาะเลเยอร์ประเภทต่อไปนี้เท่านั้น

  • โหนดข้อความ
  • โหนดรูปภาพ (PNG, JPEG ฯลฯ)
  • โหนดเฟรม (การออกแบบอัตโนมัติและไม่ใช่การออกแบบอัตโนมัติ)
  • คอมโพเนนต์และรูปแบบ อินสแตนซ์คอมโพเนนต์
  • โหนดเวกเตอร์

เลเยอร์และฟีเจอร์ Figma ที่ไม่รองรับ

  • ฟีเจอร์การสร้างต้นแบบ
  • การมาสก์กลุ่ม
  • แบ่งเลเยอร์

พร็อพเพอร์ตี้ Figma ที่ไม่รองรับ

พร็อพเพอร์ตี้ที่ไม่รองรับมีดังนี้

  • เงาภายใน การเบลอเลเยอร์ และการเบลอพื้นหลัง
  • การหมุนเลเยอร์ (รองรับการหมุนเวกเตอร์)
  • โหมดผสานเลเยอร์หรือโหมดเส้นโครงร่าง (รองรับโหมดผสานแบบเติม)
  • คุณสมบัติของข้อความ:
    • ระยะห่างระหว่างย่อหน้า
    • เยื้องย่อหน้า
    • การจัดรูปแบบตัวเลข
    • แบบตัวอักษร
    • ชุดสไตล์
    • ขีดทับและขีดเส้นใต้
    • ความสูงของบรรทัด (ยังคงใช้ได้กับองค์ประกอบข้อความทั้งหมด)
  • สมบัติเวกเตอร์:
    • ฟีเจอร์ที่รูปแบบ VectorDrawable ของ Android ไม่รองรับ:
      • รูปภาพบิตแมปแบบฝัง
        • ยกเว้นสี่เหลี่ยมผืนผ้า ซึ่งได้รับการสนับสนุนเป็นรูปภาพ เวกเตอร์
      • เส้นประ
      • เบลอ
      • เงา
      • รูปแบบ
      • มาสก์
      • ความทึบแสงของกลุ่ม
      • จุดโฟกัสไล่ระดับสีแบบรัศมี
    • ฟีเจอร์ที่รูปแบบ SVG ไม่รองรับมีดังนี้
      • การไล่ระดับสีแบบเหลี่ยมมุม
      • การไล่ระดับสีเพชร
    • การดำเนินการบูลีนระหว่างวัตถุเวกเตอร์ (ยูเนียน / ลบ / ตัด / ไม่รวม)
      • วิธีแก้ปัญหาเฉพาะหน้าคือการรวมและแยกเป็นเวกเตอร์เดียว

เลเยอร์และคุณสมบัติ Figma ที่รองรับบางส่วน

  • การตัดข้อความ (จุดไข่ปลา) จะใช้ได้ผลดีที่สุดเมื่อรายการข้อความ หนึ่งบรรทัด
  • เติมสี:
    • รูปภาพมีการเติมรูปภาพได้เพียง 1 รูป แต่อาจมีการเติมข้อมูลเพิ่มเติม ประเภทอื่นๆ (เช่น การไล่ระดับสี)
    • สำหรับการไล่ระดับสี รองรับเฉพาะเชิงเส้นเท่านั้น ฟีเจอร์ที่จะออกใหม่ในอนาคตจะมาพร้อมกับ การรองรับเพิ่มเติมสำหรับประเภทการไล่ระดับสีที่เหลือ (วงกลม ข้าวหลามตัด และมุมแหลม)
    • ในปลั๊กอิน Figma จะไม่มีวิธีระบุว่าพารามิเตอร์ ยอมรับการกรอก หลายครั้ง หากต้องการปรับพารามิเตอร์สีเติมเป็นพารามิเตอร์ ก็ทำได้เพียง ขณะนี้ระบบรองรับสีทึบสำหรับพารามิเตอร์
  • เงาตกกระทบ:
    • เงาตกกระทบไม่สามารถทำงานบนเลเยอร์ต่อไปนี้ได้ในขณะนี้
      • เวกเตอร์ที่ไม่ใช่สี่เหลี่ยมผืนผ้า
      • เวกเตอร์รูปสี่เหลี่ยมผืนผ้าที่หมุน
    • ระบบไม่รองรับเงาตกกระทบหลายภาพต่อเลเยอร์
    • โหมดผสมผสานเงาตกกระทบอื่นที่ไม่ใช่ "ปกติ" พร้อมใช้งานใน Android เวอร์ชัน 10 ขึ้นไป (ละเว้น)
    • เงาตกกระทบในเลเยอร์ใช้ได้เฉพาะใน Android เวอร์ชัน 9 ขึ้นไปเท่านั้น ยกเว้น ซึ่งพร้อมใช้งานใน Android ทุกเวอร์ชันที่ Compose
    • เงาจะปรากฏหลังเลเยอร์โปร่งใสในการเขียนเสมอ
  • การจัดตำแหน่งแบบสัมบูรณ์ภายในเลย์เอาต์อัตโนมัติ
    • วัตถุที่มีตำแหน่งแน่นอนต้องอยู่ด้านหลังหรืออยู่ด้านหน้าทั้งหมด ขององค์ประกอบการจัดวางอัตโนมัติในเฟรม ตำแหน่งสัมบูรณ์ใดๆ ออบเจ็กต์ที่ซ้อนอยู่ระหว่างองค์ประกอบการจัดวางอัตโนมัติจะถูกพุชไปยัง ด้านหน้าของวัตถุเหล่านี้
    • การซ้อนเฟรมที่จัดวางอัตโนมัติโดยมีวัตถุที่อยู่ในตำแหน่งสัมบูรณ์ภายใน เฟรมที่จัดวางอัตโนมัติอื่นๆ อาจส่งผลให้การจัดวางไม่ถูกต้อง เนื่องจาก กรอบที่ล้อมรอบของเฟรมที่ซ้อนกันได้รับผลกระทบจากรายการที่กำหนดตำแหน่งใน เฟรมนั้น

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

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

การเสื่อมสภาพนี้จำเป็นเพื่อหลีกเลี่ยงประเภทที่ไม่ตรงกันซึ่งป้องกันไม่ให้ จากการคอมไพล์ หากข้อความในคอมโพเนนต์มีลักษณะที่หลากหลาย Composable ที่สร้างขึ้นจะมีพารามิเตอร์ AnnotatedText หากข้อความใน คอมโพเนนต์มีเพียงรูปแบบเดียว Composable ที่สร้างขึ้นจะมีรูปแบบ พารามิเตอร์ String ในสถานการณ์ข้างต้น เราต้องแปลงการตั้งค่าระดับบนสุด Rich Text ของคอมโพเนนต์ตั้งแต่ AnnotatedText ถึง String ซึ่งทำให้ เพื่อให้ส่งผ่านไปยังอินสแตนซ์ของคอมโพเนนต์ที่ซ้อนกันได้

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

หากคอมโพเนนต์ 2 รายการมี [รูปแบบการออกแบบ]{:.external} ที่มีพร็อพเพอร์ตี้เดียวกัน โดยให้รายการหนึ่งซ้อนอีกรายการ จากนั้นในโค้ดที่สร้างขึ้น enum ที่สร้างขึ้นสำหรับ ตัวแปร 2 รายการจะมีชื่อเดียวกัน และจะมีข้อผิดพลาดในคอมไพล์

Conflicting import, imported name '(variant property)' is ambiguous

วิธีแก้ไขปัญหานี้คือเปลี่ยนชื่อพร็อพเพอร์ตี้ตัวแปรของคอมโพเนนต์ใดคอมโพเนนต์หนึ่ง

การรองรับแบบอักษร

ขณะนี้เรารองรับเฉพาะแบบอักษรจาก Google Fonts เท่านั้น

การแก้ปัญหาเกี่ยวกับ Android Studio

ฉันได้รับข้อผิดพลาดเกี่ยวกับการแปลงทรัพยากร SVG ใน Windows

FAILURE: Build failed with an exception.
*   What went wrong:
Execution failed for task ':app:generateDebugRelayCode'.
> A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > Converting SVG files: Exception Converting SVG resources for my_packaged_component
        The syntax of the command is incorrect

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

ระบบจะไม่นำเข้าการอัปเดตไปยัง Android Studio

ปลั๊กอินจะดึงเฉพาะไฟล์ Figma เวอร์ชันล่าสุดที่มีชื่อของคุณ ตรวจสอบอีกครั้งว่าคุณได้สร้างไฟล์ Figma เวอร์ชันใหม่ที่มีชื่อด้วย การเปลี่ยนแปลงได้

ฉันได้รับข้อผิดพลาดเกี่ยวกับ SVG และ Java Runtime ขณะสร้าง

Converting SVG Files: Exception running shell command 'cd /path-to/relay/bin; path/to/relay/bin/vd-tool -c -in path/to/hello_card -out /var/folders/...'.
The operation couldn't be completed. Unable to locate a Java Runtime.
Please visit http://www.java.com for information on installing Java.

ติดตั้ง Java Runtime แล้วสร้างอีกครั้ง

ฉันได้รับข้อผิดพลาดเกี่ยวกับแบบอักษรขณะสร้าง

คุณอาจเห็นข้อผิดพลาดที่คล้ายกับข้อความต่อไปนี้

FAILURE: Build failed with an exception.
*   What went wrong:
Execution failed for task ':app:generateDebugRelayCode'.
> Multiple task action failures occurred:
   > A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > /Users/me/AndroidStudioProjects/MyProject/app/build/generated/res/relay/debug/font/relay_inter_bold.ttf
   > A failure occurred while executing com.google.relay.gradle.GenerateCode$GenerateCodeWorkAction
      > /Users/me/AndroidStudioProjects/MyProject/app/build/generated/res/relay/debug/font/relay_inter_bold.ttf

กรณีนี้เกิดจากเงื่อนไขการแข่งขัน: คอมโพเนนต์หลายคอมโพเนนต์พยายามคัดลอกเหมือนกัน ลงในไดเรกทอรีเดียวกัน เรากำลังดำเนินการแก้ไขปัญหานี้ ในระหว่างนี้ ให้ลองสร้างอีกครั้ง

ใน Android Studio การเลิกทำโฟลเดอร์แพ็กเกจ UI ที่ลบไปแล้วอาจล้มเหลว

หากลบโฟลเดอร์แพ็กเกจ UI ในโฟลเดอร์ ui-packages ใน Android Studio แล้วเลิกทำการลบไฟล์ใดๆ ที่อยู่ในโฟลเดอร์นั้น เปิดก่อนการลบอาจไม่ได้รับการกู้คืนอย่างถูกต้อง

วิธีแก้ปัญหา: นำเข้าเวอร์ชันของไฟล์ Figma ที่คุณต้องใช้อีกครั้ง ไฟล์ > ใหม่ > นำเข้าแพ็กเกจ UI... คุณยังสามารถคลิกทุกไฟล์ภายใน โฟลเดอร์แพ็กเกจ UI ขณะนำเข้าเพื่อให้แน่ใจว่าระบบจะคืนค่าได้อย่างถูกต้อง

การอัปเดตทรัพยากรภายนอกแพ็กเกจ UI ไม่ได้บังคับให้มีบิลด์ใหม่

การอัปเดตทรัพยากร Dependency ที่อยู่นอกไดเรกทอรี ui-packages (เช่น ไฟล์การแมปธีมหรือไฟล์คอมโพเนนต์อ้างอิง) จะไม่บังคับให้โค้ด ซึ่งสร้างขึ้นใหม่เมื่อสร้างโปรเจ็กต์

วิธีแก้ปัญหา: หากต้องการบังคับให้อัปเดตโค้ดที่สร้างขึ้น ให้ล้างโครงการ (ไปที่ สร้าง > ล้างโปรเจ็กต์) หรือลบโฟลเดอร์โค้ดที่สร้างขึ้นซึ่งเชื่อมโยงกับ แพ็กเกจ UI ที่ต้องอัปเดต จากนั้นจึงสร้างอีกครั้ง

ไม่มีโค้ดที่สร้างขึ้นหรือโฟลเดอร์ ui-packages รายการในเบราว์เซอร์โปรเจ็กต์ Android

ในบางกรณี โฟลเดอร์ที่สร้างโดยปลั๊กอิน Relay สำหรับ Android Studio จะไม่ จะปรากฏในเบราว์เซอร์โปรเจ็กต์ Android

วิธีแก้ปัญหา: หากต้องการโหลดโฟลเดอร์โครงการซ้ำ ให้คลิกขวาที่โฟลเดอร์ระดับบนสุดและ เลือก "โหลดซ้ำจากดิสก์"

ธีมแอปสำหรับคอมโพเนนต์ย่อยไม่ได้รับการอัปเดต

เมื่อมีการนำเข้าคอมโพเนนต์หลักอีกครั้งด้วยธีมแอปใหม่ องค์ประกอบย่อยของคอมโพเนนต์หลัก คอมโพเนนต์ (แสดงใน DEPS.txt) จะไม่ถือว่าเป็นธีมใหม่

วิธีแก้ปัญหา: คัดลอกธีมตัวอย่างจาก config.json และแทนที่คอมโพเนนต์ย่อย แสดงตัวอย่างธีมโดยใช้คำอธิบาย ในแต่ละธีม ที่เกี่ยวข้อง config.json หลังจากสร้างใหม่ ธีมในคอมโพเนนต์ย่อย โค้ดที่สร้างขึ้นจะได้รับการแก้ไข

ชื่อแพ็กเกจ UI ต้องขึ้นต้นด้วยตัวอักษร

หากชื่อแพ็กเกจ UI ไม่ได้ขึ้นต้นด้วยตัวอักษร Relay จะสร้าง Compose ที่ไม่สามารถคอมไพล์ได้ พร้อมด้วยข้อความแสดงข้อผิดพลาดว่า The resource name must start with a letter

วิธีแก้ปัญหา: ใน Figma ให้เปลี่ยนชื่อชื่อแพ็กเกจ UI เพื่อให้ขึ้นต้นด้วยตัวอักษร

ระยะห่างจากขอบของแบบอักษรใน Compose ไม่ตรงกับ Figma

Figma และการเขียนเลย์เอาต์ข้อความภายในช่องที่ล้อมรอบต่างกัน เขียนการเพิ่ม มีระยะห่างจากขอบมากขึ้นที่ด้านบนของกรอบล้อมรอบ

วิธีแก้ปัญหา: คุณจะต้องย้ายตำแหน่งข้อความใน Figma ขึ้น 2-3 พิกเซล เพื่อให้ข้อความเรียงกันอย่างถูกต้องใน Compose เรากำลังดำเนินการแก้ไขอย่างถาวร