القيود وتحديد المشاكل وحلّها

حدود Figma والترجمة

أنواع طبقات Figma المتوافقة

يتوافق تطبيق "الإرسال" مع أنواع الطبقات التالية فقط:

  • عُقد النص
  • عقد الصور (PNG وJPEG وما إلى ذلك)
  • عُقد الإطار (تخطيط تلقائي وبدون تنسيق تلقائي)
  • المكوّنات والمتغيرات، ومثيلات المكوّنات
  • العُقد المتجهة

طبقات وميزات Figma غير المتوافقة

  • ميزات النماذج الأوّلية
  • إخفاء المجموعات
  • شرائح الشرائح

خصائص Figma غير المتوافقة

تتوفّر عدة سمات غير متوافقة، بما في ذلك:

  • الظل الداخلي وتمويه الطبقات وتمويه الخلفية
  • تدوير الطبقات (يتاح تدوير الخط المتجه)
  • أوضاع دمج الطبقات أو الحدود (يتم دعم وضع الدمج تعبئة)
  • السمات النصية:
    • تباعد الفقرات
    • المسافة البادئة للفقرة
    • تصميم الأرقام
    • أشكال الحروف
    • المجموعات الأسلوبية
    • يتوسطه خط وتسطير
    • ارتفاع السطر (يظل يعمل عند تطبيقه على العنصر النصي بالكامل)
  • خصائص المتّجه:
    • الميزات غير المتوافقة مع تنسيق VectorDrawable على Android:
      • صور الصور النقطية المضمّنة
        • باستثناء المستطيلات، المعتمدة كصور بدلاً من متجهات
      • ضربات متقطعة
      • التمويه
      • التظليل
      • النقش
      • وجه يرتدي قناعًا
      • تعتيم المجموعة
      • نقطة محورية للتدرج الشعاعي
    • الميزات غير المتوافقة مع تنسيق SVG:
      • التدرجات الزاويّة
      • تدرّجات ماسة
    • العمليات المنطقية بين الأجسام المتجهة (اتحاد / طرح / تقاطع / استبعاد)
      • الحل البديل هو دمجه وتسطيحه في متجه واحد

طبقات وخصائص Figma المدعومة جزئيًا

  • يعمل اقتطاع النص بشكل موثوق به عندما يكون العنصر النصي سطرًا واحدًا فقط
  • لون التعبئة:
    • يمكن أن تحتوي الصور على تعبئة واحدة فقط للصورة، ولكن يمكن أن تحتوي على تعبئة إضافية من أنواع أخرى (على سبيل المثال، التدرجات)
    • بالنسبة إلى التدرجات، لا يُسمح سوى بالخط الخطي. ستوفر الإصدارات المستقبلية دعمًا إضافيًا لأنواع التدرج المتبقية (الشعاعي والمعيني والزاوي).
    • في المكوِّن الإضافي Figma، لا توجد طريقة لتحديد أن المعلمة يمكنها قبول تعبئة متعددة. إذا كنت تريد معلمة لون التعبئة، فإن الألوان الصلبة هي التي يتم دعمها حاليًا للمعلمات
  • تظليل القطرات:
    • لا تعمل الظلال الخلفية حاليًا على الطبقات التالية:
      • المتجهات غير المستطيلة
      • تم تدوير الخط المتجه المستطيل
    • لا يمكن استخدام الظلال الخلفية المتعددة لكل طبقة.
    • لا تتوفر أوضاع مزج تظليل القطرات بخلاف "عادي" إلا على الإصدار 10 من Android والإصدارات الأحدث (يتم تجاهلها بخلاف ذلك).
    • لا تتوفّر الظلال الخلفية على الطبقات إلا في الإصدار 9 من Android والإصدارات الأحدث، باستثناء النص المتوفّر في جميع إصدارات Android المتوافقة مع Compose.
    • ستظهر الظلال دائمًا خلف الطبقات الشفافة في "إنشاء".
  • تحديد الموضع المطلق ضمن التخطيط التلقائي:
    • يجب أن تكون الكائنات ذات الموضع المطلق إما خلف أو أمام جميع عناصر التخطيط التلقائي في الإطار. سيتم دفع أي كائنات ذات موضع مطلق موضوعة بين طبقات بين عناصر التخطيط التلقائي إلى مقدمة هذه الكائنات.
    • يمكن أن يؤدي دمج إطارات التخطيط التلقائي مع كائنات موضوعة تمامًا داخل إطارات أخرى ذات تنسيق تلقائي إلى تخطيط غير صحيح، نظرًا لأن المربع المحيط للإطار المتداخل يتأثر بالعناصر الموضوعة في هذا الإطار.

ويتم تجاهل أنماط متعددة إذا تم إدخالها في مَعلمة نصية بنمط واحد.

إذا حاول أحد المكونات الرئيسية تمرير نص له أنماط متعددة إلى معلمة نص مكون مدمَج بنمط واحد فقط، سيتم فقدان الأنماط المتعددة في رمز Compose الذي تم إنشاؤه. يتم الاحتفاظ بالنمط الأصلي لمعلمة النص فقط.

وهذا التقليص ضروري لتجنب حالات عدم تطابق النوع التي تمنع تجميع التعليمات البرمجية التي تم إنشاؤها. إذا كان النص في المكوِّن يحتوي على أنماط متعددة، سيحتوي العنصر الذي تم إنشاؤه على معلَمة AnnotatedText. إذا كان النص في أحد المكوِّنات يحتوي على نمط واحد فقط، ستحتوي الوحدة النمطية التي تم إنشاؤها على معلَمة String عادية. في السيناريو أعلاه، نحتاج إلى تحويل النص المنسَّق للمكوِّن الرئيسي من AnnotatedText إلى String، مع استبعاد الأنماط المتعددة، بحيث يمكن تمريره إلى مثيل المكوِّن المدمج.

يتعذّر تجميع المكونات المدمَجة التي لها خصائص الصيغة نفسها التي يستخدمها المكوِّن الرئيسي.

إذا كان هناك مكوّنان يحتويان على [design المقدَّمة]{:.external} باسم الموقع نفسه، ويدمج أحدهما الآخر، حينئذٍ في الرمز الذي تم إنشاؤه، سيكون للتعدادات التي تم إنشاؤها للمتغيرَين الاسم نفسه، وسيكون هناك خطأ في التجميع:

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

للتغلب على هذا الأمر، عليك تغيير اسم سمة الصيغة لأحد المكوّنات.

دعم الخط

نتيح حاليًا استخدام الخطوط من Google Fonts فقط.

تحديد المشاكل في "استوديو Android" وحلّها

تلقيتُ رسالة خطأ بشأن تحويل موارد 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" طويل جدًا. على نظام التشغيل Windows، يجب ألا يزيد المسار الكامل لمشروع "استوديو Android" عن 70 حرفًا ونعمل على زيادة هذا المدة في إصدار مستقبلي.

لا يتم استيراد التحديثات إلى "استوديو Android".

سيقوم المكون الإضافي بسحب أحدث إصدار محدد فقط من ملف 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، ثم الإصدار مرة أخرى.

أتلقى رسالة خطأ بشأن الخطوط عند إنشاء

قد يظهر لك خطأ مشابه لما يلي:

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"، قد يتعذّر التراجع عن مجلد حزمة واجهة المستخدم محذوف

إذا حذفت مجلد "حزمة واجهة المستخدم" ضمن مجلد "ui-packages" في "استوديو Android" ثم تراجعت عن عملية الحذف، قد لا تتم بشكل صحيح استعادة أي ملف ضمن هذا المجلد لم يتم فتحه قبل حذفه.

الحل: أعد استيراد إصدار ملف Figma الذي تحتاجه باستخدام ملف > جديد > استيراد حزم واجهة المستخدم... يمكنك أيضا النقر فوق كل ملف داخل مجلد حزمة واجهة المستخدم عند الاستيراد، للتأكد من أنه ستتم استعادتها بشكل صحيح.

لا يؤدي تحديث الموارد خارج حزم واجهة المستخدم إلى فرض إصدار جديد

إنّ تعديل تبعية خارج دليل ui-packages (مثل ملف ربط مظهر أو ملف مرجعي) لا يفرض إعادة إنشاء الرمز عند إنشاء المشروع.

الحل: لفرض تحديث على الرمز الذي تم إنشاؤه، يمكنك تنظيف المشروع (انتقِل إلى إنشاء > تنظيف المشروع) أو حذف مجلد الرمز الذي تم إنشاؤه والمرتبط بحزمة واجهة المستخدم التي يجب تحديثها. ثم، أنشئ مرة أخرى.

الرمز الذي تم إنشاؤه أو ui-packages مجلد غير متوفّر في متصفّح مشروع Android

في بعض الحالات، لا تظهر المجلدات التي أنشأها المكوّن الإضافي Relay for Android Studio في متصفح مشروع Android.

الحل: لإعادة تحميل مجلدات المشروع، انقر بزر الماوس الأيمن على مجلد المستوى الأعلى وحدد "إعادة التحميل من القرص".

لم يتم تحديث مظاهر التطبيقات للمكوّنات الثانوية

عند إعادة استيراد مكوّن رئيسي باستخدام مظهر تطبيق جديد، لن تختار مكوّناته الفرعية (المدرجة في DEPS.txt) المظهر الجديد.

الحل: انسخ مظهر المعاينة من config.json الخاص بالمكوِّن الرئيسي واستبدِل مظاهر معاينة المكوّنات الفرعية به في كل config.json من الأجزاء الرئيسية. بعد إعادة الإنشاء، سيتم إصلاح المظاهر الموجودة في الرمز الذي تم إنشاؤه للمكوِّنات الفرعية.

يجب أن يبدأ اسم حزمة واجهة المستخدم بحرف

إذا كان اسم حزمة واجهة المستخدم لا يبدأ بحرف، سينشئ Relay رمز Compose لا يتم تجميعه، وستظهر به رسالة خطأ مفادها The resource name must start with a letter.

الحل: في Figma، أعد تسمية اسم حزمة واجهة المستخدم حتى يبدأ بحرف.

لا تتطابق المساحة المتروكة للخط في Compose مع Figma

يضع Figma وCompose النص داخل مربع الإحاطة بشكل مختلف. يضيف Compose المزيد من المساحة المتروكة على طول الجزء العلوي من مربع الإحاطة.

الحل: سيتعين عليك نقل موقع النص في Figma إلى أعلى بضع وحدات بكسل للحصول على محاذاته بشكل صحيح في Compose. نحن نعمل على حلّ المشكلة بشكل دائم.