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,yvezeksenleri 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
Vector3olanaxisAnglekullanma, - Rotasyonu temsil eden bir
Quaternionkullanma.
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 gereklionMoveetkinliğ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 daonResizeetkinliğ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.