Einschränkungen in Figma und Übersetzung
Unterstützte Figma-Ebenentypen
Relay unterstützt nur die folgenden Ebenentypen:
- Textknoten
- Bildknoten (PNG, JPEG usw.)
- Frame-Knoten (Auto-Layout und nicht-Auto-Layout)
- Komponenten und Varianten, Komponenteninstanzen
- Vektorknoten
Nicht unterstützte Ebenen und Funktionen in Figma
- Prototyping-Funktionen
- Maskierungsgruppen
- Slice-Ebenen
Nicht unterstützte Figma-Eigenschaften
Es gibt mehrere nicht unterstützte Eigenschaften, darunter:
- Schatten nach innen, Ebenenweichzeichner und Weichzeichner-Hintergrund
- Ebenenrotation (Vektorrotation wird unterstützt)
- Mischmodi für Ebenen oder Striche (Füllmodus wird unterstützt)
- Texteigenschaften:
<ph type="x-smartling-placeholder">
- </ph>
- Absatzabstand
- Absatzeinzug
- Zahlenstil
- Briefformen
- Stilistische Sets
- Durchstreichen und unterstreichen
- Zeilenhöhe (funktioniert auch bei Anwendung auf das gesamte Textelement)
- Vektoreigenschaften:
<ph type="x-smartling-placeholder">
- </ph>
- Funktionen, die im
VectorDrawable
-Format von Android nicht unterstützt werden: <ph type="x-smartling-placeholder">- </ph>
- Eingebettete Bitmapbilder
<ph type="x-smartling-placeholder">
- </ph>
- Mit Ausnahme von Rechtecken, die als Bilder unterstützt werden, Vektoren
- Gestrichelte Striche
- Unkenntlich machen
- Schatten
- Muster
- Schutzmaske
- Deckkraft der Gruppe
- Fokuspunkt mit radialem Farbverlauf
- Eingebettete Bitmapbilder
<ph type="x-smartling-placeholder">
- Funktionen, die im SVG-Format nicht unterstützt werden:
<ph type="x-smartling-placeholder">
- </ph>
- Angulare Farbverläufe
- Rautenverläufe
- Boolesche Operationen zwischen Vektorobjekten (Union / Subtraktion / Schnittmenge)
/ ausschließen)
<ph type="x-smartling-placeholder">
- </ph>
- Eine Behelfslösung besteht darin, zu einem einzigen Vektor zu kombinieren und ihn zu vereinfachen.
- Funktionen, die im
Teilweise unterstützte Figma-Ebenen und -Eigenschaften
- Das Abschneiden von Text (Auslassungspunkte) funktioniert am zuverlässigsten, wenn das Textelement nur eine Zeile
- Füllfarbe:
<ph type="x-smartling-placeholder">
- </ph>
- Bilder können nur eine Füllung haben, aber zusätzliche Füllungen von andere Typen (z.B. Farbverläufe)
- Bei Farbverläufen wird nur „Linear“ unterstützt. Künftige Releases bieten Support für die übrigen Farbverlaufstypen (Radial-, Rauten-, und eckig).
- Im Figma-Plug-in gibt es keine Möglichkeit, anzugeben, dass ein Parameter mehrere Füllungen akzeptieren. Wenn Sie eine Füllfarbe parametrisieren möchten, Volltonfarben werden derzeit für Parameter unterstützt,
- Schlagschatten:
<ph type="x-smartling-placeholder">
- </ph>
- Schlagschatten funktionieren derzeit nicht auf den folgenden Ebenen:
<ph type="x-smartling-placeholder">
- </ph>
- Nicht rechteckige Vektoren
- Gedrehter rechteckiger Vektor
- Mehrere Schlagschatten pro Ebene werden nicht unterstützt.
- Mischmodi des Schlagschattens außer „Normal“ sind nur auf Android-Version 10 oder höher (andernfalls ignoriert)
- Schlagschatten auf Ebenen sind nur auf Android-Versionen ab 9 verfügbar, mit folgenden Ausnahmen: Text, der in allen Android-Versionen verfügbar ist, die von Compose unterstützt werden.
- Schatten werden in „Compose“ immer hinter transparenten Ebenen angezeigt.
- Schlagschatten funktionieren derzeit nicht auf den folgenden Ebenen:
<ph type="x-smartling-placeholder">
- Absolute Positionierung innerhalb von Auto Layout:
<ph type="x-smartling-placeholder">
- </ph>
- Absolute Objekte müssen entweder hinter oder vor allen Objekten der Auto-Layout-Elemente im Frame. Beliebige absolute Position zwischen Auto-Layout-Elementen überlagert werden, der Vorderseite dieser Objekte.
- Verschachteln von Frames für automatisches Layout mit absolut positionierten Objekten anderen Auto-Layout-Frames zu einem falschen Layout führen, des verschachtelten Frames wird durch die Positionierung der Elemente in Frame.
Mehrere Stile werden verworfen, wenn sie an einen Textparameter mit einem Stil übergeben werden
Wenn eine übergeordnete Komponente versucht, Text mit mehreren Stilen in eine verschachtelte -Komponententextparameter mit nur einem Stil haben, gehen die verschiedenen Stile in den generierten Compose-Code. Nur der ursprüngliche Stil des Textparameters beibehalten.
Diese Verschlechterung ist erforderlich, um Typabweichungen zu vermeiden, durch die generierte
Code aus der Kompilierung. Wenn der Text in einer Komponente über mehrere Stile verfügt,
die generierte zusammensetzbare Funktion hat den Parameter AnnotatedText
. Wenn der Text in einem
Komponente nur einen Stil besitzt, hat die generierte zusammensetzbare Funktion eine einfache
String
-Parameter. Im obigen Szenario müssen wir das übergeordnete Element
Rich-Text der Komponente von AnnotatedText
auf String
ändern, wobei mehrere
Stile, damit er an die verschachtelte Komponenteninstanz übergeben werden kann.
Verschachtelte Komponenten mit denselben Varianteneigenschaften wie die übergeordnete Komponente können nicht kompiliert werden.
Wenn zwei Komponenten eine [Designvariante]{:.external} mit derselben Eigenschaft haben Name und verschachtelt die andere. In generierten Code werden dann die für die haben zwei Varianten denselben Namen und es tritt ein Kompilierungsfehler auf:
Conflicting import, imported name '(variant property)' is ambiguous
Um dieses Problem zu umgehen, ändern Sie den Namen der Varianteneigenschaft einer der Komponenten.
Unterstützte Schriftarten
Derzeit werden nur Schriftarten von Google Fonts unterstützt.
Fehlerbehebung bei Android Studio
Ich habe eine Fehlermeldung zum Konvertieren von SVG-Ressourcen unter Windows erhalten
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
Der Name Ihres Android Studio-Projekts ist möglicherweise zu lang. Unter Windows ist der vollständige Pfad Das Android Studio-Projekt darf maximal 70 Zeichen lang sein. Wir arbeiten daran, in einer zukünftigen Version verlängern.
Updates werden nicht in Android Studio importiert
Das Plug-in ruft nur die neueste benannte Version Ihrer Figma-Datei ab. Überprüfen Sie noch einmal, ob Sie eine neue benannte Version Ihrer Figma-Datei mit die Änderungen vor.
Ich erhalte beim Erstellen eine Fehlermeldung zu SVG und 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.
Installieren Sie die Java-Laufzeit und starten Sie den Build dann noch einmal.
Ich erhalte eine Fehlermeldung zu Schriftarten beim Erstellen
Möglicherweise wird eine Fehlermeldung wie diese angezeigt:
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
Dies wird durch eine Race-Bedingung verursacht, bei der mehrere Komponenten versuchen, in dasselbe Verzeichnis. Wir arbeiten an der Lösung dieses Problems. In der Zwischenzeit versuchen Sie es einfach noch einmal.
In Android Studio kann ein gelöschter UI Package-Ordner möglicherweise nicht rückgängig gemacht werden
Wenn Sie unter Android einen UI Package-Ordner im Ordner ui-packages
löschen
Studio zurück und machen Sie den Löschvorgang für alle Dateien in diesem Ordner rückgängig, die
die vor dem Löschen geöffnet wurden, können möglicherweise nicht wiederhergestellt werden.
Problemumgehung: Importieren Sie die Version der Figma-Datei, die Sie benötigen, noch einmal. Datei > Neu > Import UI Packages... (UI-Pakete importieren...) Sie können auch auf jede Datei im UI Package Ordner nach dem Import, um sicherzustellen, dass er ordnungsgemäß wiederhergestellt wird.
Durch das Aktualisieren von Ressourcen außerhalb von ui-packages wird kein neuer Build erzwungen
Eine Abhängigkeit aktualisieren, die sich außerhalb des Verzeichnisses ui-packages
befindet (z. B.
Theme-Zuordnungsdatei oder Referenzkomponentendatei) erzwingt nicht, dass der Code
die beim Erstellen des Projekts neu generiert werden.
Problemumgehung: Um eine Aktualisierung des generierten Codes zu erzwingen, bereinigen Sie das Projekt (siehe Erstellen > Projekt bereinigen) oder löschen Sie den generierten Codeordner, der mit UI-Paket, das aktualisiert werden muss. Dann erstellen Sie es noch einmal.
Generierter Code oder ui-packages
Ordner fehlen im Android-Projektbrowser
In einigen Fällen werden Ordner, die vom Plug-in "Relay for Android Studio" generiert wurden, nicht werden im Android-Projektbrowser angezeigt.
Problemlösung: Klicken Sie mit der rechten Maustaste auf einen Ordner auf oberster Ebene, um Projektordner neu zu laden. wählen Sie „Vom Datenträger neu laden“ aus.
App-Designs für untergeordnete Komponenten werden nicht aktualisiert
Wird eine übergeordnete Komponente mit einem neuen App-Design importiert,
-Komponenten (in DEPS.txt
aufgeführt) übernehmen nicht das neue Design.
Problemlösung: Kopieren Sie das Vorschaudesign aus dem
config.json
und ersetzen Sie die Variable eine Vorschau der Designs in jedem
bzw. config.json
. Nach der Neuerstellung werden die Designs in den
generierter Code korrigiert.
UI-Paketname muss mit einem Buchstaben beginnen
Wenn der Name eines UI-Pakets nicht mit einem Buchstaben beginnt, generiert Relay die Funktion „Schreiben“
Code, der nicht kompiliert wird, mit der Fehlermeldung The resource name
must start with a letter
.
Problemumgehung: Benennen Sie den UI-Paketnamen in Figma um, sodass er mit einem Buchstaben beginnt.
Schriftabstand in Compose stimmt nicht mit Figma überein
Figma und Compose legen das Layout von Text innerhalb des Markierungsrahmens unterschiedlich fest. E-Mail-Text mehr Abstände entlang des Begrenzungsrahmens.
Problemumgehung: Sie müssen die Textposition in Figma ein paar Pixel nach oben verschieben. damit er in der E-Mail-Adresse des Verfassens korrekt angezeigt wird. Wir arbeiten an einer dauerhaften Lösung.
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Informationen zum UI-Paket und Generierter Code
- Mehrere Stile im Text
- Komponenten vorhandenem Code zuordnen