Sınırlamalar ve sorun giderme

Figma ve çeviri sınırlamaları

Desteklenen Figma katmanı türleri

Geçiş yalnızca aşağıdaki katman türlerini destekler:

  • Metin düğümleri
  • Görüntü düğümleri (PNG, JPEG vb.)
  • Düğümleri çerçevele (otomatik düzen ve otomatik olmayan düzen)
  • Bileşenler ve varyantlar, bileşen örnekleri
  • Vektör düğümleri

Desteklenmeyen Figma katmanları ve özellikleri

  • Prototip oluşturma özellikleri
  • Maskeleme grupları
  • Dilim katmanları

Desteklenmeyen Figma özellikleri

Desteklenmeyen çeşitli özellikler vardır. Örneğin:

  • İç gölge, katman bulanıklığı ve arka plan bulanıklığı
  • Katman rotasyonu (vektör döndürme desteklenir)
  • Katman veya fırça harmanlama modları (dolgu harmanlama modu desteklenir)
  • Metin özellikleri:
    • Paragraf aralığı
    • Paragraf girintisi
    • Sayı stilleri
    • Mektup biçimleri
    • Stille ilgili gruplar
    • Üstü çizili ve altı çizili
    • Satır yüksekliği (tüm metin öğesine uygulandığında da çalışır)
  • Vektör özellikleri:
    • Android'in VectorDrawable biçimi tarafından desteklenmeyen özellikler:
      • Yerleştirilmiş bit eşlem resimleri
        • "Dikdörtgenler" hariç, vektörler
      • Kesikli darbeler
      • Bulanıklaştır
      • Gölge
      • Desen
      • Maske
      • Grup opaklığı
      • Dairesel gradyan odak noktası
    • SVG biçimi tarafından desteklenmeyen özellikler:
      • Açısal renk geçişleri
      • Baklava renk geçişleri
    • Vektör nesneleri arasındaki boole işlemleri (birleştirme / çıkarma / kesişme) / hariç tut)
      • Geçici çözüm, birleştirip tek bir vektör oluşturmaktır

Kısmen desteklenen Figma katmanları ve özellikleri

  • Metin kesme (üç nokta) en güvenilir şekilde, metin öğesi yalnızca tek satır
  • Dolgu rengi:
    • Resimlerde yalnızca bir resim dolgusu olabilir, ancak resimlerde ek dolgular da olabilir. diğer türler (ör. gradyanlar)
    • Gradyanlar için yalnızca doğrusal desteklenir. Gelecekteki sürümlerde renk geçişi türleri (dairesel, baklava, cam gibi) için ek destek açısal).
    • Figma eklentisinde, bir parametrenin birden fazla doldurmayı kabul edebilirsiniz. Bir dolgu rengini parametre haline getirmek isterseniz Parametreler için düz renkler şu anda desteklenmektedir
  • Gölgeler:
    • Gölgeler şu anda aşağıdaki katmanlarda çalışmamaktadır:
      • Dikdörtgen olmayan vektörler
      • Döndürülmüş dikdörtgen vektör
    • Katman başına birden fazla gölgelendirme desteklenmez.
    • "Normal" dışındaki gölge harmanlama modları yalnızca Android 10 ve sonraki sürümler (aksi takdirde yoksayılır).
    • Katmanlardaki gölgeler yalnızca Android 9 ve sonraki sürümlerde kullanılabilir. metin, Compose tarafından desteklenen tüm Android sürümlerinde kullanılabilir.
    • Gölgeler, Compose'da her zaman şeffaf katmanların arkasında gösterilir.
  • Otomatik Düzen içinde mutlak konumlandırma:
    • Mutlak konumlandırılmış nesneler her birinin arkasında veya önünde olmalıdır otomatik düzen öğelerinin karedeki yerini belirler. Herhangi bir mutlak konum otomatik düzen öğeleri arasına yerleştirilen nesneler, öne çıkarıyoruz.
    • İçinde kesinlikle konumlandırılmış nesneler bulunan otomatik yerleşim çerçeveleri diğer otomatik düzen çerçeveleri yanlış düzene neden olabilir. Bunun nedeni, iç içe yerleştirilmiş çerçevenin sınırlayıcı kutusu, görebilirsiniz.

Metin parametresine tek bir stille aktarılırsa birden çok stil atlanır

Bir üst bileşen, iç içe yerleştirilmiş bir öğeye birden fazla stile sahip metin geçirmeye çalışırsa tek bir stile sahip bileşen metin parametresi olmadan, birden fazla stil oluşturulan Compose kodunu yazın. Metin parametresinin yalnızca orijinal stili saklandı.

Bu azalma, oluşumları engelleyen tür uyuşmazlıklarını önlemek için bu bilgilerden faydalanabilirsiniz. Bir bileşendeki metnin birden çok stili varsa oluşturulan composable, AnnotatedText parametresine sahip olacaktır. Bir bileşenin yalnızca bir stili varsa oluşturulan composable'ın bir düzlemi olur String parametresinden yararlanın. Yukarıdaki senaryoda, üst öğeyi dönüştürmemiz gerekir. bileşeninin zengin metni, AnnotatedText ile String arasında, stillerini ayarlayarak iç içe yerleştirilmiş bileşen örneğine geçirilebilmesini sağlayın.

Üst bileşenle aynı varyant özelliklerine sahip iç içe yerleştirilmiş bileşenler derlenemiyor

İki bileşende aynı özelliğe sahip bir [tasarım varyantı]{:.external} varsa biri diğerini iç içe yerleştirir, sonra oluşturulan kodda iki varyant aynı ada sahip olur ve derleme hatası oluşur:

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

Bu sorunu çözmek için bileşenlerden birinin varyant özelliği adını değiştirin.

Yazı tipi desteği

Şu anda yalnızca Google Fonts'taki yazı tipleri desteklenmektedir.

Android Studio ile ilgili sorunları giderme

Windows'da SVG kaynaklarını dönüştürmeyle ilgili bir hata aldım

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 projenizin adı çok uzun olabilir. Windows'da Android Studio projesi 70 karakterden uzun olamaz. YouTube'da gelecekteki bir sürümde bu uzunluğu artırmanız gerekir.

Güncellemeler Android Studio'ya aktarılmaz.

Eklenti yalnızca Figma dosyanızın en son adlandırılmış sürümünü çeker. Figma dosyanızın yeni bir adlandırılmış sürümünü oluşturup oluşturmadığınızı tekrar kontrol edin. değişiklikler var.

Geliştirme sırasında SVG ve Java Runtime ile ilgili hata mesajı alıyorum

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'ı yükleyip tekrar derleyin.

Oluşturma sırasında yazı tipleriyle ilgili bir hata alıyorum

Şuna benzer bir hata görebilirsiniz:

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

Bunun nedeni bir yarış koşuludur: Birden fazla bileşen aynı şeyi kopyalamaya çalışıyor yazı tipini bulun. Bu sorunu gidermeye çalışıyoruz. Bu arada, yeniden oluşturmayı deneyin.

Android Studio'da, silinen bir UI Paketi klasörünü geri alma işlemi başarısız olabilir

Android'de ui-packages klasöründeki bir Kullanıcı Arayüzü Paketi klasörünü silerseniz Studio'ya yükleyebilir ve ardından, bu klasördeki açılmış olan dosyalar düzgün bir şekilde geri yüklenmeyebilir.

Geçici çözüm: İhtiyacınız olan Figma dosyasını kullanarak Dosya > Yeni > Kullanıcı Arayüzü Paketlerini İçe Aktar... Ayrıca, İçe aktarma işleminin ardından kullanıcı arayüzü paketi klasörünün olması gerekir.

Kullanıcı arayüzü paketlerinin dışındaki kaynakları güncellemek yeni bir derlemeyi zorlamaz

ui-packages dizininin dışında bulunan bir bağımlılığı güncelleme (ör. tema eşleme dosyası veya referans bileşen dosyası) olması, yeniden üretilir.

Geçici çözüm: Oluşturulan kodda bir güncellemeyi zorunlu kılmak için projeyi temizleyin ( Oluştur > Projeyi Temizleyin) veya şununla ilişkili oluşturulmuş kod klasörünü silin. güncellenmesi gereken kullanıcı arayüzü paketidir. Ardından tekrar derleyin.

Oluşturulan kod veya ui-packages klasör Android proje tarayıcısında eksik

Bazı durumlarda, Relay for Android Studio eklentisi tarafından oluşturulan klasörler proje tarayıcısında görünür.

Geçici çözüm: Proje klasörlerini yeniden yüklemek için üst düzey bir klasörü sağ tıklayın ve "Diskten Yeniden Yükle"yi seçin.

Alt bileşenler için uygulama temaları güncellenmedi

Bir üst bileşen, yeni bir uygulama temasıyla yeniden içe aktarıldığında alt öğesi bileşenler (DEPS.txt içinde listelenen) yeni temayı almaz.

Geçici çözüm: Önizleme temasını üst bileşenin config.json ve alt bileşenlerin her birinde bununla temaya sahip olan ilgili config.json. Yeniden oluşturduktan sonra, alt bileşenlerdeki temalar oluşturulan kod düzeltilir.

Kullanıcı Arayüzü Paketi adı harfle başlamalıdır

Kullanıcı Arayüzü Paketi adı bir harfle başlamıyorsa Geçiş işlemi Oluşturma işlemini oluşturur bir hata mesajıyla birlikte The resource name must start with a letter hata mesajını görürsünüz.

Geçici çözüm: Figma'da, Kullanıcı Arayüzü Paketi adını bir harfle başlayacak şekilde yeniden adlandırın.

Compose'daki yazı tipi dolgusu Figma ile eşleşmiyor

Figma ve Compose, sınırlayıcı kutusunun içindeki metni farklı şekilde düzenler. E-posta taslağı oluşturma sınırlayıcı kutunun üst kısmında daha fazla dolgu oluşturur.

Geçici çözüm: Figma'daki metin konumunu birkaç piksel yukarı taşımanız gerekir Compose'da doğru bir şekilde görünmesini sağlayın. Kalıcı bir çözüm üzerinde çalışıyoruz.

ziyaret edin.