Alt alan değiştiricilerini anlama

Uygun XR cihazlar
Bu kılavuz, bu tür XR cihazlar için deneyimler oluşturmanıza yardımcı olur.
XR Kulaklığı
Kablolu XR Gözlükleri

SubspaceModifier, Subspace içindeki composable'lar için Compose değiştiricisine benzer. SubspaceModifier, composable'ları 3D uzayda değiştirmenize olanak tanır. Bu sayede 3D düzen düğümlerini konumlandırabilir, döndürebilir ve bunlara davranışlar ekleyebilirsiniz.

Düzen

Varsayılan olarak, bir Subspace, uygulama görüntülemek için önerilen alanla sınırlanır. Bu sınırlar, alt alan bileşenlerinizin düzenini ölçerken kullanılır. Bu işlem, 2D Compose düzenlerindeki sınırlara benzer.

Doldurma sınırları

fillMaxSize, fillMaxWidth, fillMaxHeight ve fillMaxDepth değiştiricileri, içeriğin üst öğesinin sınırlarını (kısmen) doldurmasını sağlar. Doldurma değiştiricileri kullanmak, uygulamanızın XR cihazının ekran özelliklerinden bağımsız içerik düzenlemesine yardımcı olur.

Boyutu ve gerekli boyutu ayarlama

size, width, height ve depth değiştiricileri, içeriğin tercih edilen boyutunu belirtir. İçeriğin tam boyutunu bildirmek için requiredSize, requiredWidth, requiredHeight ve requiredDepth özelliklerini kullanın. Bu birimler dp cinsinden belirtilmelidir. Metreden dp'ye dönüştürmek için Meter.toDp() kullanın.

Konum composable'ları

offset

offset değiştiricisi, composable'ı 3D uzayda x, y ve z eksenleri boyunca hareket ettirir. Bu birimler dp içinde belirtilmelidir. Metreden dp'ye dönüştürmek için Meter.toDp() kullanın.

rotate

rotate değiştiricisi, verilen composable'ı uzayda döndürür. Dönme yönünü ve miktarını farklı şekillerde belirtebilirsiniz:

  • Sırasıyla x, y ve z eksenleri etrafındaki dönüşü belirten eğim, sapma ve yuvarlanma değerlerini kullanarak
  • Dönme eksenini ve etrafında dönmesi gereken derece miktarını temsil eden bir Vector3 olan axisAngle kullanma,
  • Rotasyonu temsil eden bir Quaternion kullanma.

rotateToLookAtUser

rotateToLookAtUser değiştiricisi, içeriği sürekli olarak döndürerek her zaman kullanıcıya dönük olmasını sağlar. Bu değiştiriciyi, içeriğin Y ekseninde kullanıcıya doğru döndüğü ancak yine de dik ve yer çekimiyle hizalı kaldığı bir "billboard" efekti elde etmek için de kullanabilirsiniz. Bunu yapmak için rotateToLookAtUser değiştiriciyi gravityAligned değiştiriciyle birleştirin.

DeviceTrackingMode.SPATIAL_LAST_KNOWN.

Composable'larla taşıma ve yeniden boyutlandırma

Kullanıcıların, 3D alandaki nesnelerin konumunu ve boyutunu doğrudan değiştirmesine izin verin. Bu değiştiricileri tek tek bileşenlere (ör. SpatialPanel), alt alanlara ve mekansal yerleşim bileşenlerine (ör. SpatialRow veya SpatialColumn) ekleyebilirsiniz.

Öğeleri taşıma

Taşınabilir değiştiriciler, kullanıcıların alt alan öğelerini tutup yeniden konumlandırmasına olanak tanır.

  • transformingMovable: Bu değiştiriciyi standart hareket için kullanın. Bu değiştirici, öğeyi kullanıcı tarafından etkileşimli ve taşınabilir olacak şekilde yapılandırır. Sistem, kullanıcı girişine göre yeni pozu ve ölçeği otomatik olarak hesaplayıp uygular.

  • movable: Özel hareket davranışı tanımlamak için bu değiştiriciyi kullanın. Sistem taşıma olanağı sunsa da gerekli onMove etkinliğini kullanmanız ve sonucu uygulamanız gerekir. Bu özellik, uygulamanızda hareketi kısıtlamak veya özel hareket oluşturmak için kullanışlıdır.

Öğeleri yeniden boyutlandırma

Yeniden boyutlandırılabilir değiştiriciler, kullanıcıların alt alan öğelerini tutup yeniden boyutlandırmasına olanak tanır.

  • transformingResizable: Sistem tarafından yönetilen yeniden boyutlandırma için bu değiştiriciyi kullanın. Bu değiştirici, yeniden boyutlandırma hareketini otomatik olarak işler ve kullanıcının belirttiği yeni boyutları uygular.

  • resizable: Özel yeniden boyutlandırma mantığı için bu değiştiriciyi kullanın. Sistem yeniden boyutlandırma olanağı sunsa da onResize etkinliğini kullanıp sonucu uygulamanız gerekir. Bu değiştirici, belirli bir en-boy oranını koruma veya yeniden boyutlandırma işlemi sona erdikten sonra diğer bileşenlerin genel düzenini yeniden ayarlama gibi karmaşık senaryolarda kullanışlıdır.

Composables'ın görünümünü değiştirme

alpha

alpha değiştiricisi, öğenin ve alt öğelerinin opaklığını ayarlar. 0f tamamen şeffaf, 1.0f ise tamamen opak anlamına gelir.

scale

scale değiştiricisi, birleştirilebilir öğenin içeriğini yatay, dikey ve derinlik eksenleri boyunca ölçeklendirir.

Test ve erişilebilirlik

semantics

semantics değiştiricisi, test ve erişilebilirlik için kullanılmak üzere düzendeki düğüme anlamsal yapı ekler. Jetpack Compose'da Semantik ve SemanticsModifier başlıklı makaleleri inceleyin.

testTag

testTag değiştiricisi, SemanticsPropertyReceiver.testTag için kısa bir yöntemdir. Bu yöntem, test çerçevelerinin testlerdeki öğeyi bulmasına olanak tanır.