محدودیت ها و عیب یابی

شکل و محدودیت های ترجمه

پشتیبانی از انواع لایه Figma

رله فقط از انواع لایه های زیر پشتیبانی می کند:

  • گره های متن
  • گره های تصویر (PNG، JPEG و غیره)
  • گره های قاب (طرح خودکار و غیرخودکار)
  • اجزا و انواع، نمونه های جزء
  • گره های برداری

لایه ها و ویژگی های Figma پشتیبانی نشده است

  • ویژگی های نمونه سازی
  • گروه های نقاب زنی
  • لایه ها را برش دهید

ویژگی های پشتیبانی نشده Figma

چندین ویژگی پشتیبانی نشده وجود دارد، از جمله:

  • سایه داخلی، تاری لایه و تاری پس زمینه
  • چرخش لایه (چرخش برداری پشتیبانی می شود)
  • حالت های ترکیب لایه یا ضربه ای (حالت ترکیبی پر پشتیبانی می شود)
  • ویژگی های متن:
    • فاصله پاراگراف ها
    • تورفتگی پاراگراف
    • استایل اعداد
    • فرم نامه ها
    • ست های سبک
    • خط زده و زیر خط بکشید
    • ارتفاع خط (هنوز وقتی روی کل عنصر متن اعمال می شود کار می کند)
  • خواص برداری:
    • ویژگی هایی که توسط فرمت VectorDrawable اندروید پشتیبانی نمی شوند:
      • تصاویر بیت مپ تعبیه شده
        • به جز مستطیل ها که به عنوان تصویر به جای بردار پشتیبانی می شوند
      • ضربات خط تیره
      • محو کردن
      • سایه
      • الگو
      • ماسک
      • کدورت گروه
      • نقطه کانونی گرادیان شعاعی
    • ویژگی هایی که توسط فرمت SVG پشتیبانی نمی شوند:
      • گرادیان های زاویه ای
      • شیب های الماس
    • عملیات بولی بین اشیاء برداری (اتحاد / تفریق / قطع / حذف)
      • یک راه حل این است که ترکیب و مسطح به یک بردار واحد است

لایه ها و ویژگی های Figma تا حدی پشتیبانی می شود

  • کوتاه کردن متن (بیضی) زمانی که آیتم متنی فقط یک خط باشد با اطمینان بیشتری کار می کند
  • رنگ پر کردن:
    • تصاویر فقط می توانند یک پرکننده تصویر داشته باشند، اما می توانند پرهای اضافی از انواع دیگر داشته باشند (به عنوان مثال، گرادیان)
    • برای گرادیان، فقط خطی پشتیبانی می شود. نسخه‌های آینده پشتیبانی بیشتری برای انواع گرادیان باقی‌مانده (شعاعی، الماسی و زاویه‌ای) فراهم می‌کنند.
    • در افزونه Figma، راهی برای تعیین اینکه یک پارامتر می تواند چندین پر را بپذیرد وجود ندارد. اگر می خواهید یک رنگ پر را پارامتر کنید، در حال حاضر فقط رنگ های ثابت برای پارامترها پشتیبانی می شوند
  • رها کردن سایه ها:
    • Drop Shadow در حال حاضر روی لایه های زیر کار نمی کند:
      • بردارهای غیر مستطیلی
      • وکتور مستطیلی چرخشی
    • چندین سایه در هر لایه پشتیبانی نمی شود.
    • حالت‌های ترکیب سایه رها به غیر از «معمولی» فقط در نسخه‌های اندروید 10 و بالاتر در دسترس هستند (در غیر این صورت نادیده گرفته می‌شوند).
    • سایه‌های رها کردن روی لایه‌ها فقط در نسخه‌های اندروید 9+ در دسترس هستند، به جز متن، که در همه نسخه‌های اندرویدی که توسط Compose پشتیبانی می‌شوند، موجود است.
    • سایه‌ها همیشه در پشت لایه‌های شفاف در Compose نشان داده می‌شوند.
  • موقعیت یابی مطلق در طرح بندی خودکار:
    • اشیاء کاملاً قرار گرفته باید پشت یا جلوی همه عناصر طرح‌بندی خودکار در قاب باشند. هر شی در موقعیت مطلقی که بین عناصر طرح‌بندی خودکار لایه‌بندی شده باشد، به جلوی این اشیا فشار داده می‌شود.
    • تودرتوی قاب‌های طرح‌بندی خودکار با اشیاء کاملاً قرار گرفته در داخل سایر قاب‌های چیدمان خودکار می‌تواند منجر به چیدمان نادرست شود، زیرا جعبه مرزی قاب تودرتو تحت تأثیر موارد قرار گرفته در آن قاب قرار می‌گیرد.

اگر با یک سبک به پارامتر متن منتقل شود، چندین سبک حذف می شوند

اگر یک مؤلفه والد سعی کند متنی با چند سبک را به یک پارامتر متن مؤلفه تودرتو با تنها یک سبک منتقل کند، چندین سبک در کد Compose ایجاد شده گم می شود. فقط سبک اصلی پارامتر متن حفظ می شود.

این تخریب برای جلوگیری از عدم تطابق نوع که از کامپایل کد تولید شده جلوگیری می کند، ضروری است. اگر متن یک مؤلفه دارای چندین سبک باشد، composable تولید شده دارای یک پارامتر AnnotatedText خواهد بود. اگر متن یک مؤلفه فقط یک سبک داشته باشد، composable تولید شده دارای یک پارامتر String ساده خواهد بود. در سناریوی بالا، ما باید متن غنی مولفه والد را از AnnotatedText به String تبدیل کنیم و چندین سبک را حذف کنیم تا بتوان آن را به نمونه کامپوننت تودرتو ارسال کرد.

مؤلفه‌های تودرتو با ویژگی‌های متغیر مشابه مؤلفه والد کامپایل نمی‌شوند

اگر دو کامپوننت یک [design variant]{:.external} با نام خاصیت یکسان داشته باشند و یکی دیگری را تودرتو قرار دهد، در کد تولید شده، enums ایجاد شده برای دو نوع یک نام خواهد داشت و یک کامپایل وجود خواهد داشت. خطا:

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

برای حل این مشکل، نام ویژگی متغیر یکی از مؤلفه ها را تغییر دهید.

پشتیبانی از فونت

ما در حال حاضر فقط از فونت های Google Fonts پشتیبانی می کنیم.

عیب یابی اندروید استودیو

من یک خطا در مورد تبدیل منابع SVG در ویندوز دریافت کردم

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 شما خیلی طولانی باشد. در ویندوز، مسیر کامل پروژه 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.

جاوا 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 مورد نیاز خود را با استفاده از File > New > Import UI Packages را مجددا وارد کنید... همچنین می توانید پس از وارد کردن، روی هر فایلی در پوشه بسته UI کلیک کنید تا مطمئن شوید که به درستی بازیابی می شوند.

به روز رسانی منابع خارج از بسته های رابط کاربری، ساخت جدید را مجبور نمی کند

به‌روزرسانی یک وابستگی که خارج از فهرست ui-packages قرار دارد (مانند فایل نگاشت موضوع یا فایل مؤلفه مرجع) باعث نمی‌شود که هنگام ساخت پروژه، کد دوباره تولید شود.

راه‌حل : برای اجبار به‌روزرسانی کد تولید شده، پروژه را تمیز کنید (به Build > Clean Project بروید) یا پوشه کد ایجاد شده مرتبط با بسته UI را که باید به‌روزرسانی شود حذف کنید. سپس، دوباره بسازید.

پوشه‌های کد تولید شده یا ui-packages در مرورگر پروژه Android وجود ندارد

در برخی موارد، پوشه‌های ایجاد شده توسط افزونه Relay for Android Studio در مرورگر پروژه اندروید ظاهر نمی‌شوند.

راه‌حل : برای بارگیری مجدد پوشه‌های پروژه، روی یک پوشه سطح بالا کلیک راست کرده و «Reload from Disk» را انتخاب کنید.

طرح‌های زمینه برنامه برای مؤلفه‌های فرزند به‌روزرسانی نمی‌شوند

وقتی یک مؤلفه والد با طرح زمینه برنامه جدید دوباره وارد می‌شود، مؤلفه‌های فرزند آن (فهرست شده در DEPS.txt ) طرح زمینه جدید را انتخاب نمی‌کنند.

راه‌حل : طرح زمینه پیش‌نمایش را از config.json مؤلفه والد کپی کنید و تم‌های پیش‌نمایش مؤلفه‌های فرزند را در هر config.json مربوطه جایگزین کنید. پس از بازسازی، مضامین موجود در کد تولید شده مؤلفه‌های فرزند ثابت خواهند شد.

نام بسته UI باید با حرف شروع شود

اگر نام بسته UI با یک حرف شروع نشود، Relay کد Compose را ایجاد می کند که کامپایل نمی شود، با یک پیام خطایی که می گوید The resource name must start with a letter .

راه حل : در Figma نام بسته UI را تغییر دهید تا با یک حرف شروع شود.

padding فونت در Compose با Figma مطابقت ندارد

Figma و Compose متن را در کادر محدود آن به طور متفاوتی قرار می دهند. Compose بالشتک بیشتری را در امتداد بالای جعبه مرزی اضافه می کند.

راه‌حل : باید مکان متن در Figma را چند پیکسل به سمت بالا ببرید تا در Compose به درستی ردیف شود. ما در حال کار بر روی یک تعمیر دائمی هستیم.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}