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.

Sınırları doldur

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çerikler yerleştirmesine 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 içinde belirtilmelidir. Metreden dp'ye dönüştürmek için Meter.toDp() işlevini 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.

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

movable değiştiricisi mevcut ve etkin olduğunda, kullanıcının öğeyi 3D alanda taşımasına olanak tanıyan sürüklenebilir kullanıcı arayüzü kontrolleri gösterilir. Bu hareketin belirli davranışı, sağlanan movePolicy ile tanımlanır:

  • MovePolicy.default: Sistem, hareketi tamamen ele alır ve kullanıcı girişine göre yeni pozu ve ölçeği otomatik olarak hesaplayıp uygular.
  • MovePolicy.custom: Sistem, hedef pozu girişe göre hesaplar ancak bunu ilişkili öğeye otomatik olarak uygulamaz. Bu, uygulamanızda hareketi kısıtlamak veya özel hareket oluşturmak için kullanışlıdır.

Öğeleri yeniden boyutlandırma

resizable() değiştiricisi mevcut ve etkin olduğunda, kullanıcının öğeyi 3D alanında yeniden boyutlandırmasına olanak tanıyan kullanıcı arayüzü kontrolleri gösterilir. Yeniden boyutlandırmanın belirli davranışı, sağlanan resizePolicy ile tanımlanır:

  • ResizePolicy.default(): Sistem, yeniden boyutlandırma hareketini otomatik olarak işler ve yeni boyutları içeriğe uygular.
  • ResizePolicy.custom(): Sistem SpatialResizeEvent sağlar ve yeniden boyutlandırma sonucunu ilişkili öğeye otomatik olarak uygulamaz.

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, yatay, dikey ve derinlik eksenleri boyunca birleştirilebilir öğenin içeriğini ö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 ve test çerçevelerinin testlerdeki öğeyi bulmasına olanak tanır.