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 düzen olmayan)
  • Bileşenler ve varyantlar, bileşen örnekleri
  • Vektör düğümleri

Desteklenmeyen Figma katmanları ve özellikleri

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

Desteklenmeyen Figma özellikleri

Aşağıdakiler dahil olmak üzere desteklenmeyen birkaç özellik vardır:

  • İç gölge, katman bulanıklığı ve arka plan bulanıklığı
  • Katman döndürme (vektör rotasyonu desteklenir)
  • Katman veya fırça harmanlama modları (doldurma harmanlama modu desteklenir)
  • Metin özellikleri:
    • Paragraf aralığı
    • Paragraf girintisi
    • Sayı stili
    • Harf Formları
    • Stille ilgili gruplar
    • Üstü çizili ve altı çizili
    • Satır yüksekliği (tüm metin öğesine uygulandığında hâlâ çalışır)
  • Vektör özellikleri:
    • Android'in VectorDrawable biçimi tarafından desteklenmeyen özellikler:
      • Yerleştirilmiş bit eşlem resimleri
        • Vektör yerine resim olarak desteklenen dikdörtgenler hariçtir.
      • Kesikli darbeler
      • Bulanıklaştırma
      • Gölge
      • Desen
      • Maske
      • Grup opaklığı
      • Dairesel gradyan odak noktası
    • SVG biçimi tarafından desteklenmeyen özellikler:
      • Açısal renk geçişleri
      • Baklava desenli gradyanlar
    • Vektör nesneleri arasındaki Boole işlemleri (birleştirme / çıkarma / kesişme/hariç tutma)
      • Geçici çözüm, tek bir vektör altında birleştirmek ve düzleştirmektir

Kısmen desteklenen Figma katmanları ve özellikleri

  • Metin kesme (üç nokta), metin öğesi yalnızca bir satır olduğunda en güvenilir şekilde çalışır
  • Dolgu rengi:
    • Resimlerin yalnızca bir resim dolgusu olabilir ancak başka türlerde ek dolgular (ör. gradyanlar) olabilir
    • Gradyanlar için yalnızca doğrusal desteklenir. Gelecekteki sürümlerde kalan renk geçişi türleri (radyal, baklava ve açısal) için de ek destek sunulacaktır.
    • Figma eklentisinde, bir parametrenin birden fazla dolguyu kabul edip edemeyeceğini belirtmenin bir yolu yoktur. Bir dolgu rengini parametreleştirmek istiyorsanız parametreler için şu anda yalnızca düz renkler 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ölge gölgelendirmesi desteklenmez.
    • "Normal" dışındaki gölge karıştırma modları yalnızca Android 10 ve sonraki sürümlerde kullanılabilir (aksi takdirde yoksayılır).
    • Katmanlardaki gölgeler, metin oluşturma özelliği tarafından desteklenen tüm Android sürümlerinde yalnızca Android 9 ve sonraki sürümlerde kullanılabilir.
    • Oluştur'da gölgeler her zaman şeffaf katmanların arkasında gösterilir.
  • Otomatik Düzen içinde mutlak konumlandırma:
    • Mutlak olarak konumlandırılmış nesneler, çerçevedeki tüm otomatik düzen öğelerinin arkasında veya önünde olmalıdır. Otomatik düzen öğeleri arasına yerleştirilmiş mutlak konumlandırılmış nesneler, bu nesnelerin önüne aktarılır.
    • İç içe yerleştirilmiş çerçevenin sınırlayıcı kutusu, o çerçevedeki konumlandırılmış öğelerden etkileneceğinden, otomatik düzen çerçevelerini diğer otomatik düzen çerçevelerinin içinde kesinlikle konumlandırılmış nesnelerle iç içe yerleştirmek yanlış düzene neden olabilir.

Bir stille metin parametresine geçerse birden çok stil atlanıyor

Bir üst bileşen, birden çok stile sahip metni, yalnızca tek bir stile sahip iç içe yerleştirilmiş bir bileşen metin parametresine geçirmeye çalışırsa oluşturulan Oluştur kodunda birden çok stil kaybolur. Metin parametresinin yalnızca orijinal stili korunur.

Bu azalma, oluşturulan kodun derlenmesini önleyen tür uyuşmazlıklarını önlemek için gereklidir. Bir bileşendeki metnin birden çok stili varsa oluşturulan bestede bir AnnotatedText parametresi bulunur. Bir bileşendeki metnin yalnızca bir stili varsa oluşturulan beste öğesinin düz String parametresi olur. Yukarıdaki senaryoda, iç içe geçmiş bileşen örneğine geçirilebilmesi için birden çok stili çıkararak üst bileşenin AnnotatedText olan zengin metnini String biçimine dönüştürmemiz gerekir.

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

İki bileşenin aynı özellik adına sahip bir [tasarım varyantı]{:.external} varsa ve biri diğerini iç içe yerleştiriyorsa oluşturulan kodda iki varyant için oluşturulan enum'lar aynı ada sahip olur ve bir derleme hatası olur:

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

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

Yazı tipi desteği

Şu anda yalnızca Google Fonts'tan alınan yazı tiplerini destekliyoruz.

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 projesinin tam yolu en fazla 70 karakter olmalıdır. Gelecekteki bir sürümde bu uzunluğu artırmak için çalışıyoruz.

Güncellemeler Android Studio'ya aktarılmaz

Eklenti yalnızca Figma dosyanızın en son adlandırılmış sürümünü çeker. Bu değişikliklerle Figma dosyanızın yeni bir adlandırılmış sürümünü oluşturduğunuzdan emin olun.

Oluşturma sırasında SVG ve Java Runtime hakkında bir hata 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.

Yazı tipleriyle ilgili hata mesajı 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

Bu, bir yarış koşulundan kaynaklanır: birden fazla bileşen aynı yazı tipini aynı dizine kopyalamaya çalışıyordur. Bu sorunu gidermeye çalışıyoruz. Bu arada, tekrar oluşturmayı deneyin.

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

Android Studio'daki ui-packages klasöründen bir Kullanıcı Arayüzü Paketi klasörünü siler ve ardından silme işlemini geri alırsanız silme işleminden önce açılmamış dosyalar doğru şekilde geri yüklenmeyebilir.

Geçici çözüm: İhtiyacınız olan Figma dosyasının sürümünü yeniden içe aktarmak için Dosya > Yeni > Kullanıcı Arayüzü Paketlerini İçe Aktar... seçeneğini kullanın. Ayrıca, içe aktarma işleminden sonra Kullanıcı Arayüzü Paketi klasöründeki her dosyayı tıklayarak düzgün şekilde geri yükleneceklerinden emin olabilirsiniz.

Kullanıcı arayüzü paketlerinin dışındaki kaynakların güncellenmesi yeni bir derlemeyi zorunlu kılmaz

ui-packages dizininin dışında bulunan bir bağımlılığın (tema eşleme dosyası veya referans bileşen dosyası gibi) güncellenmesi, projeyi oluşturduğunuzda kodun yeniden oluşturulmasını zorunlu kılmaz.

Geçici çözüm: Oluşturulan kodda güncelleme yapılmasını zorunlu kılmak için projeyi temizleyin (Derleme > Projeyi Temizle bölümüne gidin) veya güncellenmesi gereken Kullanıcı Arayüzü Paketi ile ilişkili oluşturulan kod klasörünü silin. Sonra tekrar derleme yapın.

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 Android proje tarayıcısında görünmez.

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

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

Bir üst bileşen yeni bir uygulama temasıyla tekrar içe aktarıldığında alt bileşenleri (DEPS.txt listesinde listelenmiştir) yeni temayı seçmez.

Geçici çözüm: Üst bileşenin config.json öğesinden önizleme temasını kopyalayıp alt bileşenlerin önizleme temalarını her bir config.json için tema ile değiştirin. Yeniden oluşturduktan sonra, alt bileşenlerin oluşturulan kodundaki temalar düzeltilir.

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

Kullanıcı Arayüzü Paketi adı bir harfle başlamazsa Relay, derlemeyen Compose kodu ve The resource name must start with a letter hata mesajı oluşturur.

Geçici çözüm: Figma'da, kullanıcı arayüzü paketi adını bir harfle başlayacak şekilde değiştirin.

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

Figma ve Compose, metni sınırlayıcı kutusu içine farklı şekilde yerleştirir. Oluştur, sınırlayıcı kutunun üst kısmına daha fazla dolgu ekler.

Geçici çözüm: Compose'da metin konumunu doğru şekilde hizalamak için Figma'daki metin konumunu birkaç piksel yukarı taşımanız gerekir. Bu sorunu kalıcı olarak düzeltmeye çalışıyoruz.