সীমাবদ্ধতা এবং সমস্যা সমাধান

ফিগমা এবং অনুবাদের সীমাবদ্ধতা

সমর্থিত ফিগমা স্তর প্রকার

রিলে শুধুমাত্র নিম্নলিখিত স্তর প্রকার সমর্থন করে:

  • টেক্সট নোড
  • ইমেজ নোড (PNG, JPEG, ইত্যাদি)
  • ফ্রেম নোড (অটোলেআউট এবং নন-অটোলেআউট)
  • উপাদান এবং বৈকল্পিক, উপাদান উদাহরণ
  • ভেক্টর নোড

অসমর্থিত ফিগমা স্তর এবং বৈশিষ্ট্য

  • প্রোটোটাইপিং বৈশিষ্ট্য
  • মাস্কিং গ্রুপ
  • স্লাইস স্তর

অসমর্থিত ফিগমা বৈশিষ্ট্য

বেশ কিছু অসমর্থিত বৈশিষ্ট্য রয়েছে, যার মধ্যে রয়েছে:

  • অভ্যন্তরীণ ছায়া, স্তর ঝাপসা এবং ব্যাকগ্রাউন্ড ব্লার
  • স্তর ঘূর্ণন (ভেক্টর ঘূর্ণন সমর্থিত)
  • লেয়ার বা স্ট্রোক ব্লেন্ড মোড (ফিল ব্লেন্ড মোড সমর্থিত)
  • পাঠ্য বৈশিষ্ট্য:
    • অনুচ্ছেদের ব্যবধান
    • অনুচ্ছেদ ইন্ডেন্ট
    • সংখ্যা স্টাইলিং
    • লেটারফর্ম
    • শৈলীগত সেট
    • স্ট্রাইকথ্রু এবং আন্ডারলাইন
    • লাইনের উচ্চতা (সম্পূর্ণ পাঠ্য উপাদানে প্রয়োগ করা হলে এখনও কাজ করে)
  • ভেক্টর বৈশিষ্ট্য:
    • বৈশিষ্ট্যগুলি Android এর VectorDrawable বিন্যাস দ্বারা সমর্থিত নয়:
      • এমবেডেড বিটম্যাপ ছবি
        • আয়তক্ষেত্রগুলি ব্যতীত, যেগুলি ভেক্টরের পরিবর্তে চিত্র হিসাবে সমর্থিত
      • ড্যাশড স্ট্রোক
      • ঝাপসা
      • ছায়া
      • প্যাটার্ন
      • মুখোশ
      • গ্রুপ অস্বচ্ছতা
      • রেডিয়াল গ্রেডিয়েন্ট ফোকাল পয়েন্ট
    • বৈশিষ্ট্যগুলি SVG ফর্ম্যাট দ্বারা সমর্থিত নয়:
      • কৌণিক গ্রেডিয়েন্ট
      • ডায়মন্ড গ্রেডিয়েন্ট
    • ভেক্টর বস্তুর মধ্যে বুলিয়ান অপারেশন (ইউনিয়ন / বিয়োগ / ছেদ / বাদ)
      • একটি সমাধান হল একটি একক ভেক্টরকে একত্রিত করা এবং সমতল করা

আংশিকভাবে সমর্থিত ফিগমা স্তর এবং বৈশিষ্ট্য

  • টেক্সট ট্রাঙ্কেশন (অধিবৃত্ত) সবচেয়ে নির্ভরযোগ্যভাবে কাজ করে যখন টেক্সট আইটেম শুধুমাত্র একটি লাইন হয়
  • রঙ পূরণ করুন:
    • ছবিতে শুধুমাত্র একটি ইমেজ ফিল থাকতে পারে, তবে অন্যান্য ধরনের অতিরিক্ত ফিল থাকতে পারে (যেমন, গ্রেডিয়েন্ট)
    • গ্রেডিয়েন্টের জন্য, শুধুমাত্র রৈখিক সমর্থিত। ভবিষ্যত প্রকাশগুলি অবশিষ্ট গ্রেডিয়েন্ট প্রকারের (রেডিয়াল, ডায়মন্ড এবং কৌণিক) জন্য অতিরিক্ত সহায়তা প্রদান করবে।
    • ফিগমা প্লাগইনে, একটি প্যারামিটার একাধিক পূরণ গ্রহণ করতে পারে তা নির্দিষ্ট করার কোনো উপায় নেই। আপনি যদি একটি ফিল কালার প্যারামিটারাইজ করতে চান, তবে শুধুমাত্র কঠিন রং বর্তমানে প্যারামিটারের জন্য সমর্থিত
  • ড্রপ শ্যাডো:
    • ড্রপ শ্যাডোগুলি বর্তমানে নিম্নলিখিত স্তরগুলিতে কাজ করে না:
      • অ-আয়তাকার ভেক্টর
      • ঘোরানো আয়তক্ষেত্রাকার ভেক্টর
    • প্রতি স্তরে একাধিক ড্রপ শ্যাডো সমর্থিত নয়।
    • "সাধারণ" ব্যতীত ড্রপ শ্যাডো ব্লেন্ড মোডগুলি শুধুমাত্র Android 10+ সংস্করণে উপলব্ধ (অন্যথায় উপেক্ষা করা হয়)৷
    • লেয়ারে ড্রপ শ্যাডো শুধুমাত্র Android সংস্করণ 9+ এ উপলব্ধ, পাঠ্য ব্যতীত, যা রচনা দ্বারা সমর্থিত সমস্ত Android সংস্করণে উপলব্ধ।
    • কম্পোজে ছায়া সবসময় স্বচ্ছ স্তরের পিছনে দেখাবে।
  • অটো লেআউটের মধ্যে পরম অবস্থান:
    • একেবারে অবস্থান করা বস্তুগুলিকে ফ্রেমের সমস্ত স্বয়ংক্রিয়-লেআউট উপাদানগুলির পিছনে বা সামনে থাকতে হবে৷ অটো-লেআউট উপাদানগুলির মধ্যে স্তরযুক্ত যে কোনও পরম অবস্থানযুক্ত অবজেক্টগুলিকে এই অবজেক্টগুলির সামনের দিকে ঠেলে দেওয়া হবে।
    • অন্যান্য স্বয়ংক্রিয়-লেআউট ফ্রেমের মধ্যে একেবারে অবস্থান করা বস্তুর সাথে অটো-লেআউট ফ্রেম নেস্ট করার ফলে ভুল লেআউট হতে পারে, যেহেতু নেস্টেড ফ্রেমের বাউন্ডিং বক্স সেই ফ্রেমের অবস্থানকৃত আইটেমগুলির দ্বারা প্রভাবিত হয়।

একটি শৈলী সহ পাঠ্য প্যারামিটারে পাস করলে একাধিক শৈলী বাদ দেওয়া হয়

যদি একটি প্যারেন্ট কম্পোনেন্ট একাধিক শৈলী সহ টেক্সট শুধুমাত্র একটি স্টাইল সহ নেস্টেড কম্পোনেন্ট টেক্সট প্যারামিটারে পাস করার চেষ্টা করে, তাহলে একাধিক স্টাইল জেনারেট করা কম্পোজ কোডে হারিয়ে যায়। শুধুমাত্র টেক্সট প্যারামিটারের মূল শৈলী রাখা হয়।

এই অবক্ষয়টি টাইপ অমিল এড়াতে প্রয়োজনীয় যা জেনারেট করা কোডকে কম্পাইল করা থেকে বাধা দেয়। যদি একটি উপাদানের পাঠ্য একাধিক শৈলী থাকে, তাহলে তৈরি করা কম্পোজেবলের একটি AnnotatedText প্যারামিটার থাকবে। যদি একটি উপাদানের পাঠ্যের শুধুমাত্র একটি শৈলী থাকে, তাহলে তৈরি করা কম্পোজেবলের একটি প্লেইন String প্যারামিটার থাকবে। উপরের দৃশ্যে, আমাদের প্যারেন্ট কম্পোনেন্টের সমৃদ্ধ টেক্সটটিকে AnnotatedText থেকে String এ রূপান্তর করতে হবে, একাধিক স্টাইল বাদ দিয়ে, যাতে এটি নেস্টেড কম্পোনেন্ট ইনস্ট্যান্সে পাস করা যায়।

প্যারেন্ট কম্পোনেন্ট হিসাবে একই বৈকল্পিক বৈশিষ্ট্য সহ নেস্টেড উপাদানগুলি কম্পাইল করতে ব্যর্থ হয়

যদি দুটি উপাদানের একটি [ডিজাইন ভেরিয়েন্ট]{:.external} একই সম্পত্তির নামের সাথে থাকে, এবং একটি অন্যটিকে নেস্ট করে, তাহলে জেনারেট করা কোডে, দুটি ভেরিয়েন্টের জন্য তৈরি এনামগুলির একই নাম থাকবে এবং একটি কম্পাইল থাকবে ত্রুটি:

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

এটিকে ঘিরে কাজ করতে, উপাদানগুলির একটির বৈকল্পিক সম্পত্তির নাম পরিবর্তন করুন।

ফন্ট সমর্থন

আমরা বর্তমানে শুধুমাত্র Google Fonts থেকে ফন্ট সমর্থন করি।

অ্যান্ড্রয়েড স্টুডিও সমস্যা সমাধান

আমি Windows এ 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

আপনার অ্যান্ড্রয়েড স্টুডিও প্রকল্পের নাম খুব দীর্ঘ হতে পারে। উইন্ডোজে, অ্যান্ড্রয়েড স্টুডিও প্রকল্পের সম্পূর্ণ পথটি 70 অক্ষরের বেশি হওয়া উচিত নয়। আমরা ভবিষ্যতে রিলিজে এই দৈর্ঘ্য বাড়ানোর জন্য কাজ করছি।

আপডেটগুলি অ্যান্ড্রয়েড স্টুডিওতে আমদানি করা হয় না

প্লাগইনটি শুধুমাত্র আপনার ফিগমা ফাইলের সর্বশেষ নামকৃত সংস্করণটি টেনে আনবে। আপনি পরিবর্তনগুলি সহ আপনার ফিগমা ফাইলের একটি নতুন নামযুক্ত সংস্করণ তৈরি করেছেন কিনা তা দুবার চেক করুন৷

আমি নির্মাণ করার সময় SVG এবং Java রানটাইম সম্পর্কে একটি ত্রুটি পেয়েছি

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.

জাভা রানটাইম ইনস্টল করুন, তারপর আবার তৈরি করুন।

নির্মাণ করার সময় আমি ফন্ট সম্পর্কে একটি ত্রুটি পেয়েছি

আপনি অনুরূপ একটি ত্রুটি দেখতে পারেন:

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

এটি একটি রেসের অবস্থার কারণে ঘটে: একাধিক উপাদান একই ফন্ট একই ডিরেক্টরিতে অনুলিপি করার চেষ্টা করে। আমরা এই সমস্যা সমাধানের জন্য কাজ করছি। এদিকে, আবার তৈরি করার চেষ্টা করুন।

অ্যান্ড্রয়েড স্টুডিওতে, মুছে ফেলা UI প্যাকেজ ফোল্ডারটিকে পূর্বাবস্থায় ফিরিয়ে আনা ব্যর্থ হতে পারে

আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে UI- ui-packages ফোল্ডারের মধ্যে একটি UI প্যাকেজ ফোল্ডার মুছে ফেলেন, এবং তারপরে মুছে ফেলার পূর্বাবস্থায় ফেরান, সেই ফোল্ডারের মধ্যে যে কোনও ফাইল যা মুছে ফেলার আগে খোলা হয়নি তা সঠিকভাবে পুনরুদ্ধার করা যাবে না।

ওয়ার্কঅ্যারাউন্ড : ফাইল > নতুন > ইমপোর্ট UI প্যাকেজ ব্যবহার করে আপনার যে ফিগমা ফাইলের সংস্করণটি প্রয়োজন তা পুনরায় আমদানি করুন... আমদানি করার পর আপনি UI প্যাকেজ ফোল্ডারের মধ্যে থাকা প্রতিটি ফাইলে ক্লিক করতে পারেন, যাতে সেগুলি সঠিকভাবে পুনরুদ্ধার করা হবে।

UI-প্যাকেজের বাইরে সংস্থান আপডেট করা একটি নতুন বিল্ড জোর করে না

ui-packages ডিরেক্টরির বাইরে অবস্থিত একটি নির্ভরতা আপডেট করা (যেমন একটি থিম ম্যাপিং ফাইল বা রেফারেন্স কম্পোনেন্ট ফাইল) আপনি যখন প্রকল্পটি তৈরি করেন তখন কোড পুনরায় জেনারেট করতে বাধ্য করে না।

ওয়ার্কঅ্যারাউন্ড : জেনারেট করা কোডে আপডেট করতে বাধ্য করতে, প্রকল্পটি পরিষ্কার করুন ( বিল্ড > ক্লিন প্রজেক্টে যান) বা UI প্যাকেজের সাথে যুক্ত জেনারেট করা কোড ফোল্ডারটি মুছুন যা আপডেট করা দরকার। তারপর, আবার নির্মাণ.

অ্যান্ড্রয়েড প্রোজেক্ট ব্রাউজারে জেনারেট করা কোড বা ui-packages ফোল্ডার অনুপস্থিত

কিছু ক্ষেত্রে, অ্যান্ড্রয়েড স্টুডিওর জন্য রিলে প্লাগইন দ্বারা তৈরি ফোল্ডারগুলি অ্যান্ড্রয়েড প্রকল্প ব্রাউজারে প্রদর্শিত হয় না।

ওয়ার্কঅ্যারাউন্ড : প্রকল্প ফোল্ডার পুনরায় লোড করতে, একটি শীর্ষ-স্তরের ফোল্ডারে ডান-ক্লিক করুন এবং "ডিস্ক থেকে পুনরায় লোড করুন" নির্বাচন করুন।

শিশু উপাদানের জন্য অ্যাপ থিম আপডেট করা হয় না

যখন একটি নতুন অ্যাপ থিমের সাথে একটি অভিভাবক উপাদান পুনরায় আমদানি করা হয়, তখন এর চাইল্ড উপাদানগুলি ( DEPS.txt এ তালিকাভুক্ত) নতুন থিম বাছাই করবে না৷

ওয়ার্কঅ্যারাউন্ড : প্যারেন্ট কম্পোনেন্টের config.json থেকে প্রিভিউ থিমটি কপি করুন এবং প্রতিটি config.json এ চাইল্ড কম্পোনেন্টের প্রিভিউ থিম প্রতিস্থাপন করুন। আপনি পুনঃনির্মাণ করার পরে, শিশু উপাদানগুলির তৈরি করা কোডের থিমগুলি ঠিক করা হবে৷

UI প্যাকেজের নাম অবশ্যই অক্ষর দিয়ে শুরু হবে

যদি একটি UI প্যাকেজের নাম একটি অক্ষর দিয়ে শুরু না হয়, তাহলে রিলে একটি কম্পোজ কোড তৈরি করবে যা কম্পাইল করা হয় না, একটি ত্রুটি বার্তা সহ যা বলে যে The resource name must start with a letter

ওয়ার্কঅ্যারাউন্ড : ফিগমাতে, UI প্যাকেজের নাম পরিবর্তন করুন যাতে এটি একটি অক্ষর দিয়ে শুরু হয়।

কম্পোজে ফন্ট প্যাডিং ফিগমার সাথে মেলে না

ফিগমা এবং কম্পোজ এর বাউন্ডিং বাক্সের মধ্যে পাঠ্যকে আলাদাভাবে লেখে। কম্পোজ বাউন্ডিং বাক্সের শীর্ষ বরাবর আরও প্যাডিং যোগ করে।

ওয়ার্কঅ্যারাউন্ড : কম্পোজে সঠিকভাবে লাইন আপ করার জন্য আপনাকে ফিগমাতে পাঠ্যের অবস্থানকে কয়েক পিক্সেল উপরে নিয়ে যেতে হবে। আমরা একটি স্থায়ী সমাধান কাজ করছি.

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}