SubspaceModifier
, Subspace
में मौजूद कंपोज़ेबल के लिए, Compose मॉडिफ़ायर की तरह होता है. SubspaceModifier
की मदद से, 3D स्पेस में कंपोज़ेबल में बदलाव किया जा सकता है. इससे आपको 3D लेआउट नोड को पोज़िशन करने, घुमाने, और उनमें व्यवहार जोड़ने में मदद मिलती है.
लेआउट
डिफ़ॉल्ट रूप से, Subspace
, ऐप्लिकेशन देखने के लिए सुझाए गए स्पेस से बंधा होता है. इन सीमाओं का इस्तेमाल, आपके सबस्पेस कॉम्पोनेंट के लेआउट को मेज़र करते समय किया जाता है. यह 2D कंपोज़ लेआउट में सीमाओं की तरह होता है.
सीमाएं भरें
मॉडिफ़ायर fillMaxSize
, fillMaxWidth
, fillMaxHeight
, और fillMaxDepth
की मदद से, कॉन्टेंट को उसके पैरंट के दायरे में (कुछ हद तक) भरा जा सकता है.
फ़िल मॉडिफ़ायर का इस्तेमाल करने से, आपका ऐप्लिकेशन ऐसे कॉन्टेंट को लेआउट कर पाता है जो XR डिवाइस की डिसप्ले की विशेषताओं से अलग होता है.
साइज़ और ज़रूरी साइज़ सेट करना
मॉडिफ़ायर size
, width
, height
, और depth
, कॉन्टेंट के पसंदीदा साइज़ के बारे में बताते हैं. कॉन्टेंट का सटीक साइज़ बताने के लिए, requiredSize
, requiredWidth
, requiredHeight
, और requiredDepth
का इस्तेमाल करें. इन इकाइयों को dp
में तय किया जाना चाहिए; मीटर को डीपी में बदलने के लिए, Meter.toDp()
का इस्तेमाल करें.
पोजीशन कंपोज़ेबल
offset
offset
मॉडिफ़ायर, कंपोज़ेबल को 3D स्पेस में x
, y
, और z
ऐक्सिस के साथ ले जाता है. इन यूनिट को dp
में तय किया जाना चाहिए; मीटर को dp में बदलने के लिए, Meter.toDp()
का इस्तेमाल करें.
rotate
rotate
मॉडिफ़ायर, स्पेस में दिए गए कंपोज़ेबल को घुमाता है. रोटेशन की दिशा और मात्रा को अलग-अलग तरीकों से तय किया जा सकता है:
- पिच, यॉ, और रोल का इस्तेमाल करके, जो क्रम से
x
,y
, औरz
ऐक्सिस के चारों ओर रोटेशन के बारे में बताते हैं, axisAngle
का इस्तेमाल करके, जो कि रोटेशन के ऐक्सिस को दिखाने वालाVector3
है. साथ ही, यह भी बताया जाता है कि इसे कितने डिग्री पर घुमाया जाना चाहिए,- रोटेशन को दिखाने वाली
Quaternion
का इस्तेमाल करके.
कंपोज़ेबल के लुक में बदलाव करना
alpha
alpha
मॉडिफ़ायर, एलिमेंट और उसके चाइल्ड की ओपैसिटी सेट करता है. इसमें 0f
का मतलब पूरी तरह से पारदर्शी और 1.0f
का मतलब पूरी तरह से अपारदर्शी होता है.
scale
scale
मॉडिफ़ायर, कंपोज़ेबल के कॉन्टेंट को हॉरिज़ॉन्टल, वर्टिकल, और डेप्थ ऐक्सिस के हिसाब से स्केल करता है.
कंपोज़ेबल में व्यवहार जोड़ना
resizable
resizable
मॉडिफ़ायर चालू होने पर, खींचकर छोड़े जा सकने वाले यूज़र इंटरफ़ेस (यूआई) कंट्रोल दिखेंगे. इनकी मदद से, उपयोगकर्ता एलिमेंट का साइज़ बदल सकता है. यह Entity
पर ResizableComponent
का इस्तेमाल करने जैसा ही है.
movable
movable
मॉडिफ़ायर चालू होने पर, कॉम्पोनेंट में यूज़र इंटरफ़ेस (यूआई) कंट्रोल जोड़े जाएंगे. इनकी मदद से उपयोगकर्ता, एलिमेंट को 3D स्पेस में ले जा सकेगा. यह Entity
पर MovableComponent
का इस्तेमाल करने जैसा ही है.
movable
लेआउट नोड, यह तय कर सकता है कि उसे किस तरह के प्लैन पर ऐंकर करना है. हालांकि, ऐसा करना ज़रूरी नहीं है. उदाहरण के लिए, टेबल पर स्नैप होने वाला SpatialPanel
बनाने के लिए:
SpatialPanel(
modifier.movable(anchorPlaneSemantics = setOf(PlaneSemantic.TABLE))
) {
// This panel snaps to available planes that are detected as a TABLE.
}
प्लेन पर स्नैप करने के लिए, आपके ऐप्लिकेशन को android.permission.SCENE_UNDERSTANDING_COARSE
की रनटाइम अनुमति दी जानी चाहिए.
टेस्टिंग और सुलभता
semantics
semantics
मॉडिफ़ायर, लेआउट नोड में सिमैंटिक्स जोड़ता है. इसका इस्तेमाल टेस्टिंग और ऐक्सेसिबिलिटी के लिए किया जाता है. Jetpack Compose में सिमैंटिक्स और
SemanticsModifier
देखें.
testTag
testTag
मॉडिफ़ायर, SemanticsPropertyReceiver.testTag
का शॉर्टहैंड है. इससे टेस्ट फ़्रेमवर्क, टेस्ट में एलिमेंट ढूंढ पाते हैं.