कॉन्टेंट लिखना
androidx.compose.material
androidx.compose.material.icons
(सभी compose पैकेज के लिए एपीआई रेफ़रंस दस्तावेज़ देखें)
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
11 दिसंबर, 2024 | 1.7.6 | - | - | 1.8.0-alpha07 |
संरचना
Compose, androidx
में सात Maven ग्रुप आईडी का कॉम्बिनेशन है. हर ग्रुप में, सुविधाओं का एक टारगेट किया गया सबसेट होता है. साथ ही, हर ग्रुप के लिए रिलीज़ नोट का अपना सेट होता है.
इस टेबल में, रिलीज़ नोट के हर सेट के ग्रुप और लिंक के बारे में बताया गया है.
ग्रुप | ब्यौरा |
---|---|
compose.animation | उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, अपने Jetpack Compose ऐप्लिकेशन में ऐनिमेशन बनाएं. |
compose.compiler | @Composable फ़ंक्शन को बदलें और Kotlin कंपाइलर प्लग इन की मदद से ऑप्टिमाइज़ेशन चालू करें. |
compose.foundation | इस्तेमाल के लिए तैयार बिल्डिंग ब्लॉक की मदद से, Jetpack Compose ऐप्लिकेशन लिखें. साथ ही, अपना डिज़ाइन सिस्टम बनाने के लिए फ़ाउंडेशन को बढ़ाएं. |
compose.material | इस्तेमाल के लिए तैयार Material Design कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. यह Compose का सबसे ऊपरी लेवल का एंट्री पॉइंट है. इसे ऐसे कॉम्पोनेंट उपलब्ध कराने के लिए डिज़ाइन किया गया है जो www.material.io पर बताए गए कॉम्पोनेंट से मेल खाते हैं. |
compose.material3 | मटीरियल डिज़ाइन के अगले वर्शन, Material Design 3 कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. Material 3 में, अपडेट की गई थीम और कॉम्पोनेंट के साथ-साथ, Material You की डाइनैमिक कलर जैसी सुविधाएं शामिल हैं. इसे Android 12 के नए विज़ुअल स्टाइल और सिस्टम यूज़र इंटरफ़ेस (यूआई) के साथ काम करने के लिए डिज़ाइन किया गया है. |
compose.runtime | Compose के प्रोग्रामिंग मॉडल और स्टेटस मैनेजमेंट के बुनियादी बिल्डिंग ब्लॉक. साथ ही, Compose कंपाइलर प्लग इन को टारगेट करने के लिए कोर रनटाइम. |
compose.ui | डिवाइस के साथ इंटरैक्ट करने के लिए, कॉम्पोज़ यूज़र इंटरफ़ेस (यूआई) के बुनियादी कॉम्पोनेंट ज़रूरी हैं. इनमें लेआउट, ड्रॉइंग, और इनपुट शामिल हैं. |
डिपेंडेंसी का एलान करना
Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
वर्शन 1.8
वर्शन 1.8.0-alpha07
11 दिसंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha07
रिलीज़ हो गया है. वर्शन 1.8.0-alpha07 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- टेक्स्ट फ़ील्ड के साइज़ मॉडिफ़ायर कभी-कभी काम न करने की समस्या को ठीक किया गया. (I90d4c, b/356905963)
वर्शन 1.8.0-alpha06
13 नवंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha06
रिलीज़ हो गया है. वर्शन 1.8.0-alpha06 में ये कमिट शामिल हैं.
वर्शन 1.8.0-alpha05
30 अक्टूबर, 2024
androidx.compose.material:material-*:1.8.0-alpha05
रिलीज़ हो गया है. वर्शन 1.8.0-alpha05 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
contentPadding
में बदलाव होने पर, बॉडी कॉन्टेंट को हमेशा फिर से कॉम्पोज़ करने से बचने के लिए, स्कैफ़ोल्डcontentPadding
के व्यवहार को ऑप्टिमाइज़ करें. (I8c8e2, b/373904168)- कंट्रोल बटन दबाने पर, मटीरियल स्लाइडर की वैल्यू बदलने की सुविधा जोड़ें. (I1c442)
वर्शन 1.8.0-alpha04
16 अक्टूबर, 2024
androidx.compose.material:material-*:1.8.0-alpha04
रिलीज़ हो गया है. वर्शन 1.8.0-alpha04 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- फ़ाउंडेशन के स्टेबल वर्शन पर पिन करने के लिए,
TextFields
सेreadOnly
हटाएं. (I3aaba)
गड़बड़ियां ठीक की गईं
- Android S+ पर, बड़े किए जा सकने वाले कॉम्पोनेंट में रिपल की सुविधा जोड़ी गई है. जैसे, क्लिक करने पर बड़ा होने वाला कार्ड. पहले, रिपल नए साइज़ को पूरा नहीं भरता था, लेकिन अब यह नए बाउंड तक फैल जाएगा. (If509a, b/183019123)
वर्शन 1.8.0-alpha02
18 सितंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha02
रिलीज़ हो गया है. वर्शन 1.8.0-alpha02 में ये कमिट शामिल हैं.
वर्शन 1.8.0-alpha01
4 सितंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha01
रिलीज़ हो गया है. वर्शन 1.8.0-alpha01 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- सेफ़ आर्ग्युमेंट के साथ बॉटमशीट बनाने के लिए, नया
NavGraphBuilder.bottomSheet
बिल्डर जोड़ा गया ((I28589, I777db, b/351858980))
वर्शन 1.7
वर्शन 1.7.6
11 दिसंबर, 2024
androidx.compose.material:material-*:1.7.6
रिलीज़ हो गया है. वर्शन 1.7.6 में ये बदलाव शामिल हैं.
वर्शन 1.7.5
30 अक्टूबर, 2024
androidx.compose.material:material-*:1.7.5
रिलीज़ हो गया है. वर्शन 1.7.5 में ये बदलाव शामिल हैं.
वर्शन 1.7.4
16 अक्टूबर, 2024
androidx.compose.material:material-*:1.7.4
रिलीज़ हो गया है. वर्शन 1.7.4 में ये बदलाव शामिल हैं.
वर्शन 1.7.2
18 सितंबर, 2024
androidx.compose.material:material-*:1.7.2
रिलीज़ हो गया है. वर्शन 1.7.2 में ये बदलाव शामिल हैं.
वर्शन 1.7.1
10 सितंबर, 2024
- Android आर्टफ़ैक्ट में कोई बदलाव नहीं किया गया है.
-desktop
आर्टफ़ैक्ट हटा दिए गए और-jvmStubs
और-linuxx64Stubs
आर्टफ़ैक्ट जोड़ दिए गए. इनमें से किसी भी टारगेट का इस्तेमाल नहीं किया जाना चाहिए. ये प्लेसहोल्डर हैं, ताकि Jetbrains Compose को काम करने में मदद मिल सके.
वर्शन 1.7.0
4 सितंबर, 2024
androidx.compose.material:material-*:1.7.0
रिलीज़ हो गया है. वर्शन 1.7.0 में ये कमिट शामिल हैं.
1.6.0 के बाद किए गए अहम बदलाव
- मटीरियल कंपोनेंट को नए रिपल एपीआई का इस्तेमाल करने के लिए माइग्रेट कर दिया गया है. अब ये
RippleTheme
से क्वेरी नहीं करते. - ऐसे मेटालिक कॉम्पोनेंट जो पहले
MutableInteractionSource
को स्वीकार करते थे और डिफ़ॉल्ट रूप सेremember { MutableInteractionSource() }
पर सेट होते थे, अब बिना वैल्यू वालेMutableInteractionSource
को स्वीकार करते हैं और डिफ़ॉल्ट रूप से null पर सेट होते हैं. अगरMutableInteractionSource
को होस्ट नहीं किया जा रहा है और उसका इस्तेमाल नहीं किया जा रहा है, तो आपको null पास करना चाहिए. इससे कुछ कॉम्पोनेंट, ज़रूरत पड़ने पर ही इंस्टेंस बनाते हैं. इससे परफ़ॉर्मेंस बेहतर होती है. हमारा सुझाव है कि आप अपने कॉम्पोनेंट में भी इसी तरह के बदलाव करें. BottomDrawer
,ModalBottomSheet
,BackdropScaffold
, और स्टैंडर्ड बॉटमशीट को स्टेबल एपीआई के तौर पर अपग्रेड कर दिया गया है.
वर्शन 1.7.0-rc01
21 अगस्त, 2024
androidx.compose.material:material-*:1.7.0-rc01
रिलीज़ हो गया है. वर्शन 1.7.0-rc01 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta07
7 अगस्त, 2024
androidx.compose.material:material-*:1.7.0-beta07
रिलीज़ हो गया है. वर्शन 1.7.0-beta07 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta06
24 जुलाई, 2024
androidx.compose.material:material-*:1.7.0-beta06
रिलीज़ हो गया है. वर्शन 1.7.0-beta06 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta05
10 जुलाई, 2024
androidx.compose.material:material-*:1.7.0-beta05
रिलीज़ हो गया है. वर्शन 1.7.0-beta05 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta04
26 जून, 2024
androidx.compose.material:material-*:1.7.0-beta04
रिलीज़ हो गया है. वर्शन 1.7.0-beta04 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta03
12 जून, 2024
androidx.compose.material:material-*:1.7.0-beta03
रिलीज़ हो गया है. वर्शन 1.7.0-beta03 में ये कमिट शामिल हैं.
वर्शन 1.7.0-beta02
29 मई, 2024
androidx.compose.material:material-*:1.7.0-beta02
रिलीज़ हो गया है. वर्शन 1.7.0-beta02 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- लिंक को स्टाइल करने के लिए एपीआई को अपडेट किया गया:
TextLinkStyles
कोTextStyle
पर ले जाया गया और मटीरियल सेTextDefaults
को हटाया गया (I5477b)
वर्शन 1.7.0-beta01
14 मई, 2024
androidx.compose.material:material-*:1.7.0-beta01
रिलीज़ हो गया है. वर्शन 1.7.0-beta01 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- टेक्स्ट में Material थीम वाले लिंक पाने के लिए, एपीआई को अपडेट किया गया. खास तौर पर, थीम वाले
LinkAnnotations
बनाने और थीम वाले लिंक के साथ एचटीएमएल को पार्स करने के लिए,TextDefaults
से तरीके हटा दिए गए हैं. इसके बजाय, एकTextLinkStyles
क्लास जोड़ी गई है. इसकी मदद से, लिंक को टेक्स्ट कॉम्पोज़ेबल के पैरामीटर के तौर पर स्टाइल किया जा सकता है. (I31b93)
वर्शन 1.7.0-alpha08
1 मई, 2024
androidx.compose.material:material-*:1.7.0-alpha08
रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
backgroundColor
,TextFieldDecorationBox
औरOutlinedTextFieldDecorationBox
पर लागू न होने की समस्या को ठीक करें. डेकोरेशन बॉक्स में अबshape
पैरामीटर का इस्तेमाल किया जा सकता है. (I371c2, b/307694651)RippleConfiguration#isEnabled
को हटा दिया गया है औरLocalRippleConfiguration
को वैल्यू के बिना इस्तेमाल किया जा सकता है. रिपल को बंद करने के लिए,isEnabled = false
के साथRippleConfiguration
देने के बजाय,null
सेLocalRippleConfiguration
दें. (I22725)- टेक्स्ट लिंक में, सामान्य स्टाइल, कर्सर घुमाने पर दिखने वाली स्टाइल, और फ़ोकस होने पर दिखने वाली स्टाइल के अलावा, दबाए जाने पर दिखने वाली स्टाइल का विकल्प भी होता है.
TextDefaults
तरीकों में से हर एक में, इसकी सुविधा के लिए एकpressedStyle
आर्ग्युमेंट होता है. (Ic473f, b/139312671)
गड़बड़ियां ठीक की गईं
OutlinedTextField
लेबल के लिए टॉप पैडिंग में अब सिस्टम फ़ॉन्ट साइज़ का हिसाब रखा जाता है. (Idc781)
वर्शन 1.7.0-alpha07
17 अप्रैल, 2024
androidx.compose.material:material-*:1.7.0-alpha07
रिलीज़ हो गया है. वर्शन 1.7.0-alpha07 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- टेक्स्ट लिंक के लिए, सामान्य स्टाइल, कर्सर घुमाने पर दिखने वाली स्टाइल, और फ़ोकस होने पर दिखने वाली स्टाइल के अलावा, दबाए जाने की स्थिति वाली स्टाइल का विकल्प भी जोड़ा गया है. (I5f864, b/139312671)
TextDefaults
ऑब्जेक्ट जोड़ा गया है. इसमेंLinkAnnotation
बनाने और लिंक परMaterialTheme
लागू करने वाली एचटीएमएल-टैग की स्ट्रिंग को पार्स करने के तरीके शामिल हैं. (I98532, b/139312671)
वर्शन 1.7.0-alpha06
3 अप्रैल, 2024
androidx.compose.material:material-*:1.7.0-alpha06
रिलीज़ हो गया है. वर्शन 1.7.0-alpha06 में ये कमिट शामिल हैं.
सूचना
androidx.compose.material
को अब इस मेवन ग्रुप में हर आर्टफ़ैक्ट के एक ही वर्शन का इस्तेमाल करने की ज़रूरत नहीं है. उपयोगकर्ता, Compose फ़ाउंडेशन लाइब्रेरी (Ie5fba) के वर्शन को आपस में मिला-जुलाकर इस्तेमाल कर सकते हैं
एपीआई में हुए बदलाव
ModalDrawer
औरBottomDrawer
के ज़्यादा डिफ़ॉल्ट वैल्यू कोDrawerDefaults
ऑब्जेक्ट में ले जाया गया. (Ib5b2e)
वर्शन 1.7.0-alpha05
20 मार्च, 2024
androidx.compose.material:material-*:1.7.0-alpha05
रिलीज़ हो गया है. वर्शन 1.7.0-alpha05 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
ScaffoldSubcomposeInMeasureFix
फ़्लैग हटा दिया गया है. (I67363)
वर्शन 1.7.0-alpha04
6 मार्च, 2024
androidx.compose.material:material-*:1.7.0-alpha04
रिलीज़ हो गया है. वर्शन 1.7.0-alpha04 में ये कमिट शामिल हैं.
नई सुविधाएं
- एक नया
androidx.compose.material:material-navigation
आर्टफ़ैक्ट जोड़ा गया है. इससे नेविगेशन कंपोज का इस्तेमाल करते समय, बॉटम शीट को डेस्टिनेशन के तौर पर इस्तेमाल किया जा सकता है. यह अकंपैनिस्ट नेविगेशन मटीरियल लाइब्रेरी की जगह ले लेती है. (d65d57, b/180247978)
वर्शन 1.7.0-alpha03
21 फ़रवरी, 2024
androidx.compose.material:material-*:1.7.0-alpha03
रिलीज़ हो गया है. 1.7.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
BottomDrawer
को एक्सपेरिमेंटल से स्टेबल पर अपग्रेड कर दिया गया है.BottomDrawerState
अब प्रोग्रेस को फ़ंक्शन के तौर पर दिखाता है. इससे, खास टारगेट के बीच प्रोग्रेस की क्वेरी की जा सकती है.BottomDrawerState
की मदद से, अब ऐनिमेशन स्पेसिफ़िकेशन को पसंद के मुताबिक बनाया जा सकता है. साथ ही,confirmStateChange
अब ट्रेलिंग लैम्ब्डा नहीं है. (I9c029, b/261423850)BackdropScaffold
को एक्सपेरिमेंटल से स्टेबल पर अपग्रेड कर दिया गया है. दिशा-निर्देशों के मुताबिक, ऐनिमेशन स्पेसिफ़िकेशन अबtween
स्पेसिफ़िकेशन है.BackdropScaffold
फ़ंक्शन काsnackbarHost
पैरामीटर अब आखिरी पैरामीटर नहीं है, ताकि आखिर में मौजूद LAMBDA फ़ंक्शन से भ्रम की स्थिति न पैदा हो.BackdropScaffoldState
, ऐंकर के बीच की प्रोग्रेस की क्वेरी करने के लिएprogress(from, to)
एपीआई को एक्सपोज़ करता है. (I73f48, b/261423218)- स्टैंडर्ड बॉटम शीट को एक्सपेरिमेंटल से स्टेबल के तौर पर अपग्रेड कर दिया गया है. इस्तेमाल नहीं किए जा सकने वाले कन्स्ट्रक्टर हटा दिए गए हैं. दिशा-निर्देशों के मुताबिक, ऐनिमेशन स्पेसिफ़िकेशन अब ट्वीन स्पेसिफ़िकेशन है. (I3c1a8, b/278692145, b/261409034)
- मॉडल बॉटम शीट को एक्सपेरिमेंटल से स्टेबल कैटगरी में अपग्रेड कर दिया गया है. इस्तेमाल नहीं किए जा सकने वाले कन्स्ट्रक्टर हटा दिए गए हैं. दिशा-निर्देशों के मुताबिक, ऐनिमेशन स्पेसिफ़िकेशन अब
tween
स्पेसिफ़िकेशन है. (Ic53f4, b/278692145, b/266780235, b/261409034)
गड़बड़ियां ठीक की गईं
LookaheadScope
के साथ कुछ खास स्थितियों मेंBackdropScaffold
के क्रैश होने की समस्या को ठीक किया गया है. (I51396)- परफ़ॉर्मेंस को बेहतर बनाने के लिए,
BottomSheetScaffold
में मौजूद सब-कंपोज़िशन हटाया गया.LookaheadScope
के साथ कुछ खास स्थितियों मेंBottomSheetScaffold
के क्रैश होने की समस्या को ठीक किया गया है. (I2f90c) ModalBottomSheetLayout
में मौजूद सब-कंपोज़िशन हटा दिया गया है. इससे परफ़ॉर्मेंस बेहतर हुई है. (I7a025)
वर्शन 1.7.0-alpha02
7 फ़रवरी, 2024
androidx.compose.material:material-*:1.7.0-alpha02
रिलीज़ हो गया है. 1.7.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.7.0-alpha01
24 जनवरी, 2024
androidx.compose.material:material-*:1.7.0-alpha01
रिलीज़ हो गया है. 1.7.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
व्यवहार में बदलाव
- मटीरियल कंपोनेंट को नए रिपल एपीआई का इस्तेमाल करने के लिए माइग्रेट कर दिया गया है. अब ये
RippleTheme
से क्वेरी नहीं करते.
एपीआई में हुए बदलाव
rememberRipple
औरRippleTheme
को material-ripple से हटा दिया गया है. साथ ही, मटीरियल और अन्य डिज़ाइन सिस्टम लाइब्रेरी में नए रिपल औरRippleConfiguration
एपीआई जोड़े गए हैं.ऐसे मेटालिक कॉम्पोनेंट जो पहले
MutableInteractionSource
को स्वीकार करते थे और डिफ़ॉल्ट रूप से{ MutableInteractionSource() }
को याद रखते थे, अब बिना वैल्यू वालेMutableInteractionSource
को स्वीकार करते हैं और डिफ़ॉल्ट रूप से null पर सेट होते हैं. अगरMutableInteractionSource
को होस्ट नहीं किया जा रहा है और उसका इस्तेमाल नहीं किया जा रहा है, तो आपको null पास करना चाहिए. इससे कुछ कॉम्पोनेंट, ज़रूरत पड़ने पर ही इंस्टेंस बनाते हैं. इससे परफ़ॉर्मेंस बेहतर होती है. हमारा सुझाव है कि आप अपने कॉम्पोनेंट में भी इसी तरह के बदलाव करें.
वर्शन 1.6
वर्शन 1.6.8
12 जून, 2024
androidx.compose.material:material-*:1.6.8
रिलीज़ हो गया है. वर्शन 1.6.8 में ये बदलाव शामिल हैं.
वर्शन 1.6.7
1 मई, 2024
androidx.compose.material:material-*:1.6.7
रिलीज़ हो गया है. वर्शन 1.6.7 में ये बदलाव शामिल हैं.
वर्शन 1.6.6
17 अप्रैल, 2024
androidx.compose.material:material-*:1.6.6
रिलीज़ हो गया है. पिछली रिलीज़ के बाद से कोई बदलाव नहीं हुआ है.
वर्शन 1.6.5
3 अप्रैल, 2024
androidx.compose.material:material-*:1.6.5
रिलीज़ हो गया है. वर्शन 1.6.5 में ये बदलाव शामिल हैं.
वर्शन 1.6.4
20 मार्च, 2024
androidx.compose.material:material-*:1.6.4
रिलीज़ हो गया है. वर्शन 1.6.4 में ये बदलाव शामिल हैं.
वर्शन 1.6.3
6 मार्च, 2024
androidx.compose.material:material-*:1.6.3
रिलीज़ हो गया है. वर्शन 1.6.3 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
ExposedDropdownMenu
में रेग्रेसन को ठीक करें, ताकि उस पर फिर से फ़ोकस किया जा सके. (c0e0ed, b/323694447)
वर्शन 1.6.2
21 फ़रवरी, 2024
androidx.compose.material:material-*:1.6.2
रिलीज़ हो गया है. 1.6.2 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.1
7 फ़रवरी, 2024
androidx.compose.material:material-*:1.6.1
रिलीज़ हो गया है. 1.6.1 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.0
24 जनवरी, 2024
androidx.compose.material:material-*:1.6.0
रिलीज़ हो गया है. 1.6.0 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.0-rc01
10 जनवरी, 2024
androidx.compose.material:material-*:1.6.0-rc01
रिलीज़ हो गया है. 1.6.0-rc01 वर्शन में ये कमिट शामिल हैं.
वर्शन 1.6.0-beta03
13 दिसंबर, 2023
androidx.compose.material:material-*:1.6.0-beta03
रिलीज़ हो गया है. 1.6.0-beta03 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.0-beta02
29 नवंबर, 2023
androidx.compose.material:material-*:1.6.0-beta02
रिलीज़ हो गया है. 1.6.0-beta02 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.0-beta01
15 नवंबर, 2023
androidx.compose.material:material-*:1.6.0-beta01
रिलीज़ हो गया है. 1.6.0-beta01 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.6.0-alpha08
18 अक्टूबर, 2023
androidx.compose.material:material-*:1.6.0-alpha08
रिलीज़ हो गया है. 1.6.0-alpha08 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
materialIcon
फ़ंक्शन को बंद करके, उसके ओवरलोड का इस्तेमाल करें. यह ओवरलोड,autoMirror
पैरामीटर लेता है. (Ia338d)
गड़बड़ियां ठीक की गईं - बड़े कॉन्टेंट के लिए, नेविगेशन आइटम की ऊंचाई अपने-आप बढ़ने की सुविधा जोड़ी गई है. (0c4ecc, b/272336962)
वर्शन 1.6.0-alpha07
4 अक्टूबर, 2023
androidx.compose.material:material-*:1.6.0-alpha07
रिलीज़ हो गया है. 1.6.0-alpha07 वर्शन में ये बदलाव शामिल हैं.
- डिपेंडेंसी से जुड़े अपडेट
वर्शन 1.6.0-alpha06
20 सितंबर, 2023
androidx.compose.material:material-*:1.6.0-alpha06
रिलीज़ हो गया है. 1.6.0-alpha06 वर्शन में ये बदलाव शामिल हैं.
ऐसा बदलाव जिससे व्यवहार में बदलाव हो सकता है
BottomSheetScaffold
से, ड्रॉअर से जुड़ी सुविधाएं हटाई गई हैं. पिछली सुविधाएं पाने के लिए, अपनेBottomSheetScaffold
को ड्रॉअर कॉम्पोनेंट में रैप करें. उदाहरण के लिएBottomSheetScaffoldWithDrawerSample
देखें. (I1dcc8)
एपीआई में हुए बदलाव
- हमने एक अस्थायी फ़्लैग जोड़ा है. इससे यह कंट्रोल किया जा सकता है कि मेज़रमेंट के दौरान या प्लेसमेंट के दौरान, स्कैफ़ोल्ड को अपने चाइल्ड को मेज़र करना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह मेज़रमेंट में मेज़र होगा. अगर आपको इस नए तरीके से समस्याएं आ रही हैं, तो कृपया समस्या दर्ज करें. (If6e3b)
वर्शन 1.6.0-alpha05
6 सितंबर, 2023
androidx.compose.material:material-*:1.6.0-alpha05
रिलीज़ हो गया है. 1.6.0-alpha05 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- दाईं से बाईं ओर के लेआउट में रेंडर किए जाने पर, आइकॉन को अपने-आप मिरर करने की सुविधा जोड़ी गई. material-icons-core और material-icons-extended मॉड्यूल में मौजूद आइकॉन, अब आइकॉन की अनुमति मिलने पर, अपने-आप मिरर होने की सुविधा के लिए अतिरिक्त आइकॉन सेट उपलब्ध करा रहे हैं. नए सेट में
Icons.AutoMirrored.Filled...
वगैरह प्रीफ़िक्स के तौर पर जोड़े जाते हैं. साथ ही, इनमें ऐसे आइकॉन होते हैं जो आरटीएल लेआउट पर अपने-आप मिरर हो जाएंगे. Material आइकॉन की सूची देखें. इसमें वे आइकॉन शामिल होते हैं जिन्हें अपने-आप मिरर किया जा सकता है और करना चाहिए.
एपीआई में हुए बदलाव
- दाईं से बाईं ओर के लेआउट में रेंडर किए जाने पर, आइकॉन को अपने-आप मिरर करने की सुविधा जोड़ी गई. material-icons-core और material-icons-extended मॉड्यूल में मौजूद आइकॉन, अब आइकॉन की अनुमति मिलने पर, अपने-आप मिरर होने की सुविधा के लिए अतिरिक्त आइकॉन सेट उपलब्ध करा रहे हैं. नए सेट में
Icons.AutoMirrored.Filled...
वगैरह प्रीफ़िक्स के तौर पर जोड़े जाते हैं. साथ ही, इनमें ऐसे आइकॉन होते हैं जो आरटीएल लेआउट पर अपने-आप मिरर हो जाएंगे. Material आइकॉन की सूची देखें. इसमें वे आइकॉन शामिल होते हैं जिन्हें अपने-आप मिरर किया जा सकता है और करना चाहिए. उन आइकॉन के लिए पहले दी गई आइकॉन प्रॉपर्टी को अब 'इस्तेमाल नहीं किया जा रहा' के तौर पर मार्क किया गया है. साथ ही, माइग्रेशन में मदद करने के लिए, बदलाव करने के लिए ब्लॉक का सुझाव दिया गया है. अगर आपने आरटीएल में आइकॉन को मिरर करने के लिए कोई खास तरीका नहीं अपनाया है, तो हमारा सुझाव है कि आप आइकॉन के नए सेट पर माइग्रेट करें. उदाहरण के लिए,Icons.Filled.ArrowBack
कोIcons.AutoMirrored.Filled.ArrowBack
में बदला जाना चाहिए. (I4b511)
वर्शन 1.6.0-alpha04
23 अगस्त, 2023
androidx.compose.material:material-*:1.6.0-alpha04
रिलीज़ हो गया है. 1.6.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- एक समस्या को ठीक किया गया है. इसमें,
LookaheadScope
के अंदर स्काफ़़्ल के अंदरSubcomposition
(उदाहरण के लिए,BottomSheetScaffold
) का इस्तेमाल करने वाले कुछ कॉम्पोनेंट, अपना साइज़ बहुत पहले पढ़ने की कोशिश कर रहे थे. (If2c5d) DropdownMenu
केoffset
कैलकुलेशन को ठीक किया गया है, ताकि x ऑफ़सेट सिर्फ़ स्थानीय लेआउट के डायरेक्शन पर निर्भर हो. साथ ही, मेन्यू के स्क्रीन पर सबसे नीचे होने पर, y ऑफ़सेट अब उलट नहीं किए जाएंगे. (Iccc74, b/294103942)BottomSheetScaffold
के लेआउट के इंटरनल को ऑप्टिमाइज़ किया गया. साथ ही,LookaheadLayout
मेंBottomSheetScaffold
से जुड़ी संभावित समस्या को ठीक किया गया. (Ic0afa)
वर्शन 1.6.0-alpha03
9 अगस्त, 2023
androidx.compose.material:material-*:1.6.0-alpha03
रिलीज़ हो गया है. 1.6.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Material2 कॉम्पोनेंट में अब एक अलग एपीआई है, ताकि Android में किनारे से किनारे तक की सुविधा के साथ काम करने के लिए,
windowInsets
को पास किया जा सके. material3 कॉम्पोनेंट के उलट, material2 कॉम्पोनेंट डिफ़ॉल्ट रूप से इनसेट के साथ काम नहीं करते. साथ ही, इनकी वैल्यू को मैन्युअल तरीके से पास करना ज़रूरी होता है. दिशा-निर्देशों के बारे में जानने के लिए, उससे जुड़े सैंपल देखें. (I655e8)
वर्शन 1.6.0-alpha02
26 जुलाई, 2023
androidx.compose.material:material-*:1.6.0-alpha02
रिलीज़ हो गया है. 1.6.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- हम डिसप्ले की पिक्सल डेंसिटी को कॉम्पोनेंट लेवल पर ले जा रहे हैं. यह इन कॉम्पोनेंट पर लागू होता है:
SwipeToDismiss
और शीट पर आधारित कॉम्पोनेंट. कृपया घनत्व के पैरामीटर के तौर पर दिए गए नए ओवरलोड का इस्तेमाल करें. (I1846e) - कॉम्पोज़ेबल में इस्तेमाल किए जा सकने वाले इनपुट की जानकारी देने के लिए अतिरिक्त एनोटेशन (I51109)
- काम न करने वाले वर्शन को एनोटेट करने के लिए, एपीआई फ़ाइलों को अपडेट किया गया (I8e87a, b/287516207)
FabPosition
(Ib7aea, b/170592777) के लिए, स्टार्ट का नया अलाइनमेंट जोड़ा गया- दूसरे मटीरियल में मौजूद
TextFieldColorsWithIcons
की जगह अबTextFieldColors
का इस्तेमाल किया जाता है.leadingIconColor
याtrailingIconColor
को ओवरराइड करते समय, ओवरलोड कोinteractionSource
से भी ओवरराइड करें. (Id57ed, b/199377790)
वर्शन 1.6.0-alpha01
21 जून, 2023
androidx.compose.material:material-*:1.6.0-alpha01
रिलीज़ हो गया है. 1.6.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
व्यवहार में बदलाव
- Material 2 टाइपोग्राफ़ी में,
includeFontPadding
अब डिफ़ॉल्ट रूप सेfalse
है. लाइन की डिफ़ॉल्ट ऊंचाई के स्टाइल को भीTrim.None
औरAlignment.Center
में बदल दिया गया है. साथ ही,Typography
केTextStyle
में साफ़ तौर परlineHeight
(sp में) जोड़ा गया है. अगर आपको इन वैल्यू को पसंद के मुताबिक बनाना है, तो एपीआई दस्तावेज़ देखें. साथ ही, इन बदलावों के बारे में ज़्यादा जानने के लिए, ब्लॉग पोस्ट पढ़ें. (Icabc3, I3f801, I04c03)
एपीआई में हुए बदलाव
- Material के
Swipeable
एपीआई अब काम नहीं करते. कृपया Foundation केAnchoredDraggable
एपीआई देखें. ये एपीआई, इस्तेमाल के आसान और मुश्किल, दोनों उदाहरणों के लिए ऑप्टिमाइज़ किए गए हैं. (I732e0)
गड़बड़ियां ठीक की गईं
BottomSheetState
,ModalBottomSheetState
, औरBottomDrawerState
अब एक प्रोग्रेस प्रॉपर्टी दिखाते हैं. इससे, स्वाइप की दिशा में मौजूदा (सेटल) ऐंकर और सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस का पता चलता है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
संस्करण 1.5
वर्शन 1.5.4
18 अक्टूबर, 2023
androidx.compose.material:material-*:1.5.4
रिलीज़ हो गया है. 1.5.4 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.5.3
4 अक्टूबर, 2023
androidx.compose.material:material-*:1.5.3
रिलीज़ हो गया है. इस वर्शन में कोई बदलाव नहीं हुआ है
संस्करण 1.5.2
27 सितंबर, 2023
androidx.compose.material:material-*:1.5.2
रिलीज़ हो गया है. 1.5.2 वर्शन में ये बदलाव शामिल हैं.
संस्करण 1.5.1
6 सितंबर, 2023
androidx.compose.material:material-*:1.5.1
को बिना किसी बदलाव के रिलीज़ किया जाता है. 1.5.1 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.5.0
9 अगस्त, 2023
androidx.compose.material:material-*:1.5.0
रिलीज़ हो गया है. 1.5.0 वर्शन में ये बदलाव शामिल हैं.
1.4.0 के बाद किए गए ज़रूरी बदलाव
एपीआई में हुए बदलाव
BottomSheetScaffold
में, Swipeable1 API में किए गए बदलाव शामिल किए गए.BottomSheetState
केconfirmStateChange
पैरामीटर का नाम बदलकरconfirmValueChange
कर दिया गया है.progress
अब फ़्लोट वैल्यू के तौर पर दिखती है.animateTo
औरsnapTo
इंटरनल हैं. इसके बजाय,expand()
औरcollapse()
का इस्तेमाल करें.direction
औरoverflow
को हटा दिया गया है.offset
कोrequireOffset()
से बदल दिया गया है. I323b4- ड्रॉअर में मौजूद
snapTo
फ़ंक्शन को, एक्सपेरिमेंटल एपीआई के तौर पर मार्क करें. (Ib9c18, b/261425368) - सर्कुलर प्रोग्रेस इंडिकेटर के लिए ट्रैक कलर पैरामीटर और सर्कुलर और लीनियर प्रोग्रेस इंडिकेटर, दोनों के लिए स्ट्रोक कैप पैरामीटर जोड़ा गया. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
, औरrememberModalBottomSheetState
केconfirmStateChange
कोconfirmValueChange
में बदला गया. (Ib48d1)Modifier.minimumInteractiveComponentSize
जोड़ें. इसका इस्तेमाल, टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48.dp के साइज़ को रिज़र्व करने के लिए किया जा सकता है. ऐसा तब किया जाता है, जब एलिमेंट का साइज़ छोटा हो. (I33f58, b/258495559)ModalBottomSheetLayout
में, स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए.ModalBottomSheetState
के animateTo फ़ंक्शन में अबanimationSpec
पैरामीटर नहीं दिया जाता. साथ ही, एक्सपोज़ किए गए ऑफ़सेट में अब वैल्यू नहीं हो सकती. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (Ia2e79)@JvmDefaultWithCompatibility
एनोटेशन जोड़ना (I8f206)ModalDrawer. DrawerState
केanimateTo
में, स्वाइप किए जा सकने वाले एपीआई में किए गए बदलावों को 'खोलें' और 'बंद करें' तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब शून्य हो सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (I3de9e)- ड्रॉअर और शीट को अपडेट किया गया है, ताकि जेस्चर के स्क्रोल इवेंट बनने की स्थिति में, प्रेस करने में सही समय लग सके.
- material और material3 टेक्स्ट,
TextField
, औरOutlinedTextField
मेंminLines
पैरामीटर जोड़ा गया है. इससे लाइन की संख्या के हिसाब से, कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है (I4af1d)
गड़बड़ियां ठीक की गईं
pullRefresh
वेग का इस्तेमाल नहीं कर रहा था, जिसकी वजह से ओवरस्क्रोल दिख रहा था.Modifier.pullRefresh
मेंonRelease
lambda के एपीआई हस्ताक्षर को भी बदला गया है, ताकि खर्च किए गए वेग के लिए फ़्लोट दिखाया जा सके (I7db65, b/266874741)BottomSheetState
,ModalBottomSheetState
, औरBottomDrawerState
अब एक प्रोग्रेस प्रॉपर्टी दिखाते हैं. इससे, स्वाइप की दिशा में मौजूदा (सेटल) ऐंकर और सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस का पता चलता है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)AlertDialog
'खारिज करें' कार्रवाई को, 'पुष्टि करें' कार्रवाई के नीचे दिखाने की समस्या को ठीक किया गया. ऐसा तब होता है, जब डायलॉग की चौड़ाई में फ़िट होने के लिए, कार्रवाइयां एक-दूसरे के ऊपर स्टैक की जाती हैं. इस सुधार से, Material Design के स्पेसिफ़िकेशन के मुताबिक लागू किया जा सकता है. (I029de, b/235454277)gesturesEnabled
को 'गलत है' पर सेट करने पर,BottomSheetScaffold
नेस्ट किए गए स्क्रोल में अब हिस्सा नहीं लेगा. (I634f3, b/215403277)- स्लॉट के लिए खाली कॉन्टेंट देने पर,
BottomSheetScaffold
क्रैश होने की गड़बड़ी को ठीक किया गया. (Ib24a5, b/235588730) PullRefreshIndicator
क्लिक/पॉइंटर इवेंट को इंटरसेप्ट करने की समस्या को ठीक करता है. (2494256, b/271777421)- उस समस्या को ठीक किया गया है जिसकी वजह से ओरिएंटेशन बदलने पर,
ModalBottomSheetLayout
ऐप्लिकेशन क्रैश हो जाता था. शीट के कॉन्टेंट में/पर लेआउट ऐनिमेशन (जैसे,Modifier.animateContentSize
) अब आसानी से काम करते हैं. (I2f981, b/266780234)
वर्शन 1.5.0-rc01
26 जुलाई, 2023
androidx.compose.material:material-*:1.5.0-rc01
रिलीज़ हो गया है. 1.5.0-rc01 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.5.0-beta03
28 जून, 2023
androidx.compose.material:material-*:1.5.0-beta03
रिलीज़ हो गया है. 1.5.0-beta03 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
BottomSheetState
,ModalBottomSheetState
, औरBottomDrawerState
अब एक प्रोग्रेस प्रॉपर्टी दिखाते हैं. इससे, स्वाइप की दिशा में मौजूदा (सेटल) ऐंकर और सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस का पता चलता है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
वर्शन 1.5.0-beta02
7 जून, 2023
androidx.compose.material:material-*:1.5.0-beta02
रिलीज़ हो गया है. 1.5.0-beta02 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.5.0-beta01
24 मई, 2023
androidx.compose.material:material-*:1.5.0-beta01
रिलीज़ हो गया है. 1.5.0-beta01 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
DrawerState
औरBottomDrawerState
के ऑफ़सेट के लिए, अब वैल्यू के तौर पर'शून्य' का इस्तेमाल नहीं किया जा सकता. इसके बजाय, ऑफ़सेट न होने की जानकारी देने के लिए, वेFloat.NaN
दिखाते हैं. (Ie9855)- दिखाए गए मेन्यू आइटम के वर्टिकल स्क्रोल स्टेटस को कंट्रोल करने के लिए,
DropdownMenu
याExposedDropdownMenu
बनाते समयScrollState
को पास करने का विकल्प जोड़ा गया. (Idb009, b/185304441) ModalBottomSheetLayout
के जेस्चर को चालू/बंद करने की सुविधा जोड़ें, ताकि उपयोगकर्ता इसे ज़्यादा सुविधाओं वाली बॉटमशीट के लिए कॉन्फ़िगर कर सकें (I40af0)BasicText
में कलर पैरामीटर जोड़ा गया है, ताकि टेक्स्ट का रंग बेहतर तरीके से ऐनिमेट किया जा सके या सेट किया जा सके. (Iffd88, b/246961787)- सेमेटिक प्रॉपर्टी
isContainer
का नाम बदलकरisTraversalGroup
(I121f6) किया गया
गड़बड़ियां ठीक की गईं
- जब कार्रवाइयां, डायलॉग की चौड़ाई में फ़िट होने के लिए एक-दूसरे के ऊपर स्टैक की जाती हैं, तो
AlertDialog
खारिज करें कार्रवाई को पुष्टि करने की कार्रवाई के नीचे दिखाने की समस्या को ठीक किया गया है. इस सुधार से, मटीरियल डिज़ाइन के स्पेसिफ़िकेशन के मुताबिक लागू किया जा सकता है. (I029de, b/235454277)
वर्शन 1.5.0-alpha04
10 मई, 2023
androidx.compose.material:material-*:1.5.0-alpha04
रिलीज़ हो गया है. 1.5.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- हम डिसप्ले की पिक्सल डेंसिटी को कॉम्पोनेंट लेवल पर ले जा रहे हैं. यह इन कॉम्पोनेंट पर लागू होता है:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. कृपया घनत्व के पैरामीटर के तौर पर दिए गए नए ओवरलोड का इस्तेमाल करें. (I8fbd8)
वर्शन 1.5.0-alpha03
19 अप्रैल, 2023
androidx.compose.material:material-*:1.5.0-alpha03
रिलीज़ हो गया है. 1.5.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- नए
SwipeableV2
एपीआई का इस्तेमाल करने के लिए,BottomDrawer
के इंटरनल अपडेट करें. इस वजह से,BottomDrawerState
में अब सिर्फ़ क्लास लेवल पर एपीआई तय किए जाएंगे. यहSwipeableState
से मेथड/प्रॉपर्टी इनहेरिट नहीं करेगा. हम किसी इंटरनलSwipeableV2State
के साथ कॉम्पोज़िशन का इस्तेमाल कर रहे हैं. ऑफ़सेट अब ऐसी फ़्लोटिंग-पॉइंट प्रॉपर्टी है जिसकी वैल्यू शून्य हो सकती है. हालांकि, मौजूदा वैल्यू और स्वाइप के टारगेट की वैल्यू को अब भी currentValue और targetValue प्रॉपर्टी से ऐक्सेस किया जा सकता है. क्लास लेवल के पुराने तरीके, जैसे कि open/expand/close औरisOpen/isClosed
जैसी प्रॉपर्टी अब भी काम करती रहेंगी. (Iad40c, b/178529942, b/220676296)
गड़बड़ियां ठीक की गईं
- स्विच कॉम्पोनेंट के अंदरूनी हिस्से को अपडेट किया गया. अब स्विच को खींचने पर, टारगेट स्टेटस की झलक दिखेगी. (Id90d4)
BottomSheetScaffold
में ऐनिमेशन वाला शीट कॉन्टेंट (जैसे, शीट कॉन्टेंट परModifier.animateContentSize
) को ऑप्टिमाइज़ कर दिया गया है. अब यह आसानी से काम करता है. (Ia913c, b/270518202, b/254446195)gesturesEnabled
कोfalse
पर सेट करने पर,BottomSheetScaffold
नेस्ट किए गए स्क्रोल में शामिल नहीं होगा. (I634f3, b/215403277)
वर्शन 1.5.0-alpha02
5 अप्रैल, 2023
androidx.compose.material:material-*:1.5.0-alpha02
रिलीज़ हो गया है. 1.5.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, स्लॉट के लिए खाली कॉन्टेंट देने पर
BottomSheetScaffold
क्रैश हो जाता था. (Ib24a5, b/235588730) - क्लिक / पॉइंटर इवेंट को इंटरसेप्ट करने से जुड़ी
PullRefreshIndicator
समस्या को ठीक करता है (2494256, b/271777421)
वर्शन 1.5.0-alpha01
22 मार्च, 2023
androidx.compose.material:material-*:1.5.0-alpha01
रिलीज़ हो गया है. 1.5.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- चिप ग्रुप का रीफ़्लो सैंपल जोड़ें. स्पेसिफ़िकेशन के मुताबिक, सिंगल लाइन वाले चिप ग्रुप के सैंपल में, चाइल्ड चिप के बीच में मौजूद हॉरिज़ॉन्टल पैडिंग को अपडेट करें. (I3b155)
- उस समस्या को ठीक किया गया है जिसकी वजह से ओरिएंटेशन बदलने पर,
ModalBottomSheetLayout
ऐप्लिकेशन क्रैश हो जाता था. शीट के कॉन्टेंट में/पर लेआउट ऐनिमेशन (जैसे,Modifier.animateContentSize
) अब आसानी से काम करते हैं. (I2f981, b/266780234)
वर्शन 1.4
वर्शन 1.4.3
3 मई, 2023
androidx.compose.material:material-*:1.4.3
को बिना किसी बदलाव के रिलीज़ किया गया है (सिर्फ़ वर्शन में बदलाव किया गया है).
वर्शन 1.4.2
19 अप्रैल, 2023
androidx.compose.material:material-*:1.4.2
रिलीज़ हो गया है. 1.4.2 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.4.1
5 अप्रैल, 2023
androidx.compose.material:material-*:1.4.1
रिलीज़ हो गया है. 1.4.1 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.4.0
22 मार्च, 2023
androidx.compose.material:material-*:1.4.0
रिलीज़ हो गया है. 1.4.0 वर्शन में ये बदलाव शामिल हैं.
1.3.0 के बाद किए गए अहम बदलाव
एपीआई में हुए बदलाव
Modifier.minimumInteractiveComponentSize
जोड़ें. इसका इस्तेमाल, टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48.dp के साइज़ को रिज़र्व करने के लिए किया जा सकता है. ऐसा तब किया जाता है, जब एलिमेंट का साइज़ छोटा हो. (I33f58, b/258495559)ModalDrawer
में, स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए.DrawerState
केanimateTo
को 'खोलें' और 'बंद करें' तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट के लिए अब शून्य वैल्यू दी जा सकती है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (I3de9e)- material और material3 टेक्स्ट में
minLines
पैरामीटर जोड़ा गया है.TextField
औरOutlinedTextField
की मदद से, लाइनों की संख्या के हिसाब से कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है (I4af1d) BasicText
औरBasicTextField
मेंminLines
पैरामीटर जोड़ा गया. इसकी मदद से, लाइनों की संख्या के हिसाब से इन कॉम्पोज़ेबल की कम से कम ऊंचाई सेट की जा सकती है (I24294, b/122476634)
वर्शन 1.4.0-rc01
8 मार्च, 2023
androidx.compose.material:material-*:1.4.0-rc01
को बिना किसी बदलाव के रिलीज़ किया जाता है. 1.4.0-rc01 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.4.0-beta02
22 फ़रवरी, 2023
androidx.compose.material:material-*:1.4.0-beta02
रिलीज़ हो गया है. 1.4.0-beta02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
BottomSheetScaffold
में, स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए.BottomSheetState
केconfirmStateChange
पैरामीटर का नाम बदलकरconfirmValueChange
कर दिया गया है.progress
अब फ़्लोट वैल्यू के तौर पर दिखती है.animateTo
औरsnapTo
इंटरनल हैं. इसके बजाय,expand()
औरcollapse()
का इस्तेमाल करें.direction
औरoverflow
को हटा दिया गया है.offset
कोrequireOffset()
से बदल दिया गया है. (I323b4)
गड़बड़ियां ठीक की गईं
- क्लिक किए जा सकने वाले और चुने जा सकने वाले प्लैटफ़ॉर्म से सेमैटिक भूमिकाओं को हटाया गया. साथ ही, उन कॉम्पोनेंट को अपडेट किया गया जिन्होंने modifier.semantics (Ibb4ba) का इस्तेमाल करके भूमिकाएं सेट करने के लिए उनका इस्तेमाल किया था
- बड़े किए गए Material आइकॉन में मामूली अपडेट, जिसमें भरे हुए
desktop_mac
,directions
, औरkitchen
आइकॉन में बदलाव किए गए हैं. (I65f5e)
वर्शन 1.4.0-beta01
8 फ़रवरी, 2023
androidx.compose.material:material-*:1.4.0-beta01
रिलीज़ हो गया है. 1.4.0-beta01 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
pullRefresh
वेग का इस्तेमाल नहीं कर रहा था, जिसकी वजह से ओवरस्क्रोल दिख रहा था. साथ ही,Modifier.pullRefresh
मेंonRelease
lambda के एपीआई हस्ताक्षर को बदला गया, ताकि खर्च किए गए वेग के लिए फ़्लोट दिखाया जा सके (I7db65, b/266874741)- प्रॉपर्टी के लिए गेट्टर
LocalMinimuTouchTargetEnforcement
को वापस लाया गया और उसे 'इस्तेमाल नहीं किया जा सकता' के तौर पर मार्क किया गया. साथ ही,LocalMinimumInteractiveComponentEnforcement
पर रीडायरेक्ट किया गया. (I60dd5)
वर्शन 1.4.0-alpha05
25 जनवरी, 2023
androidx.compose.material:material-*:1.4.0-alpha05
रिलीज़ हो गया है. 1.4.0-alpha05 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
ModalBottomSheetLayout's HalfExpanded
स्टेटस की गलत तरीके से गिनती होने और शीट के फ़्लोट होने की समस्या को ठीक किया गया. (I8c615, b/265610459)ModalBottomSheetLayout
में एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, कुछ मामलों में शीट को छिपाने से दिखाने पर, वह क्रैश हो जाती थी. (Ia9265, b/265444789)
वर्शन 1.4.0-alpha04
11 जनवरी, 2023
androidx.compose.material:material-*:1.4.0-alpha04
रिलीज़ हो गया है. 1.4.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Surfaces पर
IsContainer
सेमेटिक्स प्रॉपर्टी में जोड़ा गया. इस प्रॉपर्टी का इस्तेमाल, बाद में किए जाने वाले उस बदलाव में किया जाएगा जो सतहों जैसे एलिमेंट के सेमैनटिक मतलब के आधार पर, ट्रैवर्सल का क्रम तय करता है. (I63379) - ड्रॉअर में
snapTo
फ़ंक्शन को एक्सपेरिमेंटल एपीआई के तौर पर मार्क करें. (Ib9c18, b/261425368) - सर्कुलर प्रोग्रेस इंडिकेटर के लिए ट्रैक कलर पैरामीटर और सर्कुलर और लीनियर प्रोग्रेस इंडिकेटर, दोनों के लिए स्ट्रोक कैप पैरामीटर जोड़ा गया. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
, औरrememberModalBottomSheetState
केconfirmStateChange
कोconfirmValueChange
में बदला गया. (Ib48d1)- अब काम न करने वाले और छिपाए गए फ़ंक्शन के लिए, रिटर्न टाइप के तौर पर वैल्यू न होने की संभावना ज़्यादा है (Ibf7b0)
Modifier.minimumInteractiveComponentSize
जोड़ें. इसका इस्तेमाल, टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48.dp के साइज़ को रिज़र्व करने के लिए किया जा सकता है. ऐसा तब किया जाता है, जब एलिमेंट का साइज़ छोटा हो. (I33f58, b/258495559)ModalBottomSheetLayout
में, स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए.ModalBottomSheetState
काanimateTo
अबanimationSpec
पैरामीटर नहीं लेता. साथ ही, एक्सपोज़्डoffset
अब शून्य हो सकता है.offset
की ज़रूरत पड़ने पर,requireOffset
का इस्तेमाल करें. (Ia2e79)
गड़बड़ियां ठीक की गईं
ModalBottomSheetLayout
की शीट की चौड़ाई अब ज़्यादा से ज़्यादा 640 डीपी हो सकती है. (I71a4f, b/234927577)rememberPullRefreshState
, समय के साथrefreshThreshold
औरrefreshingOffset
को अपडेट नहीं कर रहा था. इस समस्या को ठीक किया गया है. (Ifed10, b/263159832)- प्रोग्रेस इंडिकेटर की प्रोग्रेस अब सही तरीके से, अनुमानित रेंज में दिखती है. (I8a7eb, b/262262727)
- अगर
ModalBottomSheetState
को अब तक कोई ऐंकर नहीं मिला है, तोsnapTo
याanimateTo
को कॉल करने पर, यह ऐनिमेशन के बिनाcurrentValue
को अपडेट कर देगा. ऐसा करने पर, कोई अपवाद नहीं दिखेगा. (I2c91b) - Material 2
FilterChip
लागू करने पर, चालू होने की स्थिति को ठीक किया गया. (Id326a, b/261329817) - पोर्ट्रेट से लैंडस्केप में घुमाने पर,
ModalBottomSheetLayout
के क्रैश होने की गड़बड़ी को ठीक किया गया है.HalfExpanded
कृपया पक्का करें कि आपने सहीinitialValue
डाला हो. उदाहरण के लिए, कॉन्फ़िगरेशन की जांच करके. (Ie8df7, b/182882364) - शीट का कॉन्टेंट खाली होने पर,
ModalBottomSheetLayout
क्रैश होने की समस्या को ठीक किया गया.ModalBottomSheetLayout
में अब खाली शीट का कॉन्टेंट शामिल किया जा सकता है. अगर शीट का कॉन्टेंट खाली है, तो उसकी स्थिति सिर्फ़ 'छिपाया गया' होगी. (Ic2288, b/200980998, b/216693030)
आम समस्या
androidx.compose.foundation:1.4.0-alpha03
सेandroidx.compose.foundation:1.4.0-alpha04
पर अपडेट करते समय, आपकोjava.lang.NoSuchFieldError
गड़बड़ी का मैसेज दिख सकता है. यहां समस्या की मूल शिकायत की गई थी. इस समस्या को ठीक करने के लिए एक सुधार सबमिट कर दिया गया है. यह सुधार, Compose के अगले अपडेट में उपलब्ध होगा. इस समस्या को हल करने के लिए, अपनीandroidx.compose.material
औरandroidx.compose.material3
लाइब्रेरी को नए वर्शन(1.1.0-alpha04) पर अपडेट करें याandroidx.compose.foundation
को 1.4.0-alpha03 पर डाउनग्रेड करें.
वर्शन 1.4.0-alpha03
7 दिसंबर, 2022
androidx.compose.material:material-*:1.4.0-alpha03
रिलीज़ हो गया है. 1.4.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
@JvmDefaultWithCompatibility
एनोटेशन जोड़ना (I8f206)ModalDrawer
मेंSwipeable
एपीआई में बदलाव किए गए.DrawerState
केanimateTo
कोopen
औरclose
तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब शून्य हो सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (I3de9e)- पैरंट पेज के स्क्रोल की जानकारी क्वेरी करने के लिए, मॉडिफ़ायर एपीआई जोड़ा गया. (I2ba9d, b/203141462)
Clickable
में इसका इस्तेमाल, प्रेस इंटरैक्शन में देरी करने के लिए किया जाता है. ऐसा तब किया जाता है, जब जेस्चर स्क्रोल इवेंट बन सकते हैं.Scrollable ViewGroup
के अंदर इस्तेमाल करने पर,Clickables
के रिपल सही तरीके से देर से नहीं दिखने की समस्या को ठीक किया गया.- ड्रॉअर और शीट को अपडेट किया गया है, ताकि जेस्चर के स्क्रोल इवेंट बनने की स्थिति में, प्रेस करने में सही समय लग सके.
गड़बड़ियां ठीक की गईं
onRefresh
को कॉल करने के बाद,PullRefreshIndicator
फ़ंक्शन के फ़्रीज़ होने की समस्या को ठीक किया गया है. ऐसा तब होता है, जब रीफ़्रेश करने की स्थिति को 'सही' में नहीं बदला जाता. (Ie2416, b/248274004)
डिपेंडेंसी से जुड़े अपडेट
- Compose UI और Compose Material अब Lifecycle 2.5.1 पर निर्भर करते हैं. (I05ab0, b/258038814)
वर्शन 1.4.0-alpha02
9 नवंबर, 2022
androidx.compose.material:material-*:1.4.0-alpha02
रिलीज़ हो गया है. 1.4.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
awaitFirstDown
औरwaitForUpOrCancellation
में अब ज़्यादा सुविधाओं के लिएPointerEventPass
का इस्तेमाल किया जा सकता है. (I7579a, b/212091796)- material और material3 टेक्स्ट,
TextField
, औरOutlinedTextField
मेंminLines
पैरामीटर जोड़ा गया है. इससे लाइन की संख्या के हिसाब से, कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है (I4af1d) BasicTex
t औरBasicTextField
मेंminLines
पैरामीटर जोड़ा गया. इसकी मदद से, लाइनों की संख्या के हिसाब से इन कॉम्पोज़ेबल की कम से कम ऊंचाई सेट की जा सकती है (I24294, b/122476634)
वर्शन 1.4.0-alpha01
24 अक्टूबर, 2022
androidx.compose.material:material-*:1.4.0-alpha01
रिलीज़ हो गया है. 1.4.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- जेस्चर डिटेक्टर के लिए,
awaitEachGesture()
नाम का एक नया तरीका जोड़ा गया. यहforEachGesture()
की तरह ही काम करता है. हालांकि, जेस्चर के ऊपर लूप पूरी तरह सेAwaitPointerEventScope
में काम करता है, ताकि दोहराव के बीच इवेंट न छूटें. forEachGesture()
के बजायawaitEachGesture()
का इस्तेमाल किया जा सकता है, क्योंकि इससे इवेंट के बीच में जेस्चर खोने की समस्या नहीं होती. (Iffc3f, b/251260206)
वर्शन 1.3
वर्शन 1.3.1
9 नवंबर, 2022
androidx.compose.material:material-*:1.3.1
रिलीज़ हो गया है. 1.3.1 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.3.0
24 अक्टूबर, 2022
androidx.compose.material:material-*:1.3.0
रिलीज़ हो गया है. 1.3.0 वर्शन में ये बदलाव शामिल हैं.
1.2.0 के बाद किए गए अहम बदलाव
व्यवहार में बदलाव
- डायलॉग और पॉप-अप में, ज़्यादा से ज़्यादा 8dp तक की ऊंचाई का इस्तेमाल किया जा सकता है.
एपीआई में हुए बदलाव
- Compose में 'खींचकर रीफ़्रेश करें' कॉम्पोनेंट जोड़ा गया (I29168).
- RangeSlider (I3b79a) में, पैरामीटर के नाम को वैल्यू से वैल्यू में बदलें.
वर्शन 1.3.0-rc01
5 अक्टूबर, 2022
androidx.compose.material:material-*:1.3.0-rc01
रिलीज़ हो गया है. 1.3.0-rc01 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.3.0-beta03
21 सितंबर, 2022
androidx.compose.material:material-*:1.3.0-beta03
रिलीज़ हो गया है. 1.3.0-beta03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Compose में 'खींचकर रीफ़्रेश करें' कॉम्पोनेंट जोड़ना (I29168)
वर्शन 1.3.0-beta02
7 सितंबर, 2022
androidx.compose.material:material-*:1.3.0-beta02
रिलीज़ हो गया है. 1.3.0-beta02 वर्शन में ये बदलाव शामिल हैं.
1.3.0-beta01 के बाद से कोई बदलाव नहीं किया गया
वर्शन 1.3.0-beta01
24 अगस्त, 2022
androidx.compose.material:material-*:1.3.0-beta01
रिलीज़ हो गया है. 1.3.0-beta01 वर्शन में ये बदलाव शामिल हैं.
व्यवहार में बदलाव
डायलॉग और पॉप-अप में, ज़्यादा से ज़्यादा 8dp तक की ऊंचाई का इस्तेमाल किया जा सकता है.
'लिखें' डायलॉग और पॉप-अप के लिए, एलिमेंट की ऊंचाई को 30dp से घटाकर 8dp कर दिया गया है. इस बदलाव का असर, मटीरियल और यूज़र इंटरफ़ेस (यूआई) के कस्टम डायलॉग और पॉप-अप, दोनों पर पड़ता है. यह बदलाव, Android S से पहले के वर्शन में सुलभता से जुड़ी गड़बड़ी को कम करने के लिए किया गया है. साथ ही, यह पक्का करने के लिए भी किया गया है कि उन विंडो में मौजूद सुलभता सेवाएं, डायलॉग या पॉप-अप में मौजूद कॉन्टेंट के साथ इंटरैक्ट कर सकें.
इस बदलाव का असर सिर्फ़ तब पड़ेगा, जब कस्टम डायलॉग या पॉप-अप लागू किया जा रहा हो और उसकी ऊंचाई 8dp से ज़्यादा हो. अपने डायलॉग या पॉप-अप की ऊंचाई कम करें. अगर आपको इस नए व्यवहार से ऑप्ट-आउट करना है, तो अपने हिसाब से ऊंचाई सेट करके, अपना डायलॉग या पॉप-अप बनाएं. इसका सुझाव नहीं दिया जाता, क्योंकि इससे सुलभता पर बुरा असर पड़ सकता है. यह डेवलपर की ज़िम्मेदारी है कि वह पक्का करे कि डायलॉग या पॉप-अप के सबसे नीचे मौजूद कॉन्टेंट को सुलभता सेवाओं से इंटरैक्ट किया जा सके और उसे पढ़ा जा सके.
वर्शन 1.3.0-alpha03
10 अगस्त, 2022
androidx.compose.material:material-*:1.3.0-alpha03
रिलीज़ हो गया है. 1.3.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.3.0-alpha02
27 जुलाई, 2022
androidx.compose.material:material-*:1.3.0-alpha02
रिलीज़ हो गया है. 1.3.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
बाहरी योगदान
- Scaffold में
FloatingActionButton
कीAnimatedVisibility
समस्या को ठीक करना (I3a0ae, b/224005027)
वर्शन 1.3.0-alpha01
29 जून, 2022
androidx.compose.material:material-*:1.3.0-alpha01
रिलीज़ हो गया है. 1.3.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
RangeSlider
(I3b79a) में पैरामीटर के नाम को वैल्यू से वैल्यू में बदलना
गड़बड़ियां ठीक की गईं
- कॉन्टेंट के बारे में ज़्यादा जानकारी देने के लिए, बैज का सैंपल अपडेट करें. (I10b9d)
वर्शन 1.2
वर्शन 1.2.1
10 अगस्त, 2022
androidx.compose.material:material-*:1.2.1
रिलीज़ हो गया है. 1.2.1 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.2.0
27 जुलाई, 2022
androidx.compose.material:material-*:1.2.0
रिलीज़ हो गया है. 1.2.0 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.2.0-rc03
29 जून, 2022
androidx.compose.material:material-*:1.2.0-rc03
रिलीज़ हो गया है. 1.2.0-rc03 वर्शन में ये बदलाव शामिल हैं.
- 1.2.0-rc02 के बाद से कोई बदलाव नहीं हुआ है.
वर्शन 1.2.0-rc02
22 जून, 2022
androidx.compose.material:material-*:1.2.0-rc02
रिलीज़ हो गया है. 1.2.0-rc02 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.2.0-rc01
15 जून, 2022
androidx.compose.material:material-*:1.2.0-rc01
रिलीज़ हो गया है. 1.2.0-rc01 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Compose लाइब्रेरी में इंटरफ़ेस, अब jdk8 के डिफ़ॉल्ट इंटरफ़ेस के तरीकों (I5bcf1) का इस्तेमाल करके बनाए जाते हैं
गड़बड़ियां ठीक की गईं
- आइकॉन के बजाय लेबल पर बैज जोड़ने के लिए, लीडिंग आइकॉन टैब के साथ बैज अपडेट करता है. (I90993)
वर्शन 1.2.0-beta03
1 जून, 2022
androidx.compose.material:material-*:1.2.0-beta03
रिलीज़ हो गया है. 1.2.0-beta03 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
BottomSheetScaffold
को सबसे ऊपर मौजूद ऐप्लिकेशन बार की छाया पर ड्रॉ करने से जुड़ी गड़बड़ी को ठीक किया गया है.BottomSheetScaffold
अब स्नैकबार डालते समय शीट की स्थिति को भी ध्यान में रखता है: छोटा किए गए स्टेटस में, स्नैकबार को शीट और फ़्लोटिंग ऐक्शन बटन (एफ़एबी) के ऊपर रखा जाता है. बड़े किए गए स्टेटस में, स्नैकबार को शीट के नीचे अटैच किया जाता है. (Ia80b5, b/187771422)
वर्शन 1.2.0-beta02
18 मई, 2022
androidx.compose.material:material-*:1.2.0-beta02
रिलीज़ हो गया है. 1.2.0-beta02 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.2.0-beta01
11 मई, 2022
androidx.compose.material:material-*:1.2.0-beta01
रिलीज़ हो गया है. 1.2.0-beta01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- यह 1.2 का पहला बीटा वर्शन है!
एपीआई में हुए बदलाव
TextFieldDefaults.BorderStroke
कॉम्पोज़ेबल का नाम बदलकरOutlinedTextField
सेTextFieldDefaults.BorderBox
कर दिया गया, जो बॉर्डर स्ट्रोक बनाता है. (I5f295)
वर्शन 1.2.0-alpha08
20 अप्रैल, 2022
androidx.compose.material:material-*:1.2.0-alpha08
रिलीज़ हो गया है. 1.2.0-alpha08 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
PointerInputChange
में, आंशिक खपत (डाउन या पोज़िशन) की सुविधा बंद कर दी गई है. बदलाव को पूरी तरह से लागू करने के लिए,consume()
का इस्तेमाल किया जा सकता है.isConsumed
का इस्तेमाल करके यह पता लगाया जा सकता है कि किसी और ने पहले से ही बदलाव का इस्तेमाल किया है या नहीं.PointerInputChange::copy()
अब हमेशा शैलो कॉपी बनाता है. इसका मतलब है किPointerInputChange
की एक कॉपी इस्तेमाल होने के बाद, उसकी बाकी कॉपी भी इस्तेमाल हो जाएंगी. अगर आपको अनबाउंडPointerInputChange
बनाना है, तो इसके बजाय कन्स्ट्रक्टर का इस्तेमाल करें. (Ie6be4, b/225669674)
वर्शन 1.2.0-alpha07
6 अप्रैल, 2022
androidx.compose.material:material-*:1.2.0-alpha07
रिलीज़ हो गया है. 1.2.0-alpha07 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.2.0-alpha06
23 मार्च, 2022
androidx.compose.material:material-*:1.2.0-alpha06
रिलीज़ हो गया है. 1.2.0-alpha06 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Surface API में हुए बदलावों को लागू करने के लिए, क्लिक किए जा सकने वाले कार्ड एपीआई में अपडेट (I56bcb)
- Material 2 Surface API में अपडेट, जो चुने जा सकने वाले और टॉगल किए जा सकने वाले प्लैटफ़ॉर्म के लिए, ओवरलोड किए गए अतिरिक्त फ़ंक्शन जोड़ता है. (Ifcca5)
वर्शन 1.2.0-alpha05
9 मार्च, 2022
androidx.compose.material:material-*:1.2.0-alpha05
रिलीज़ हो गया है. 1.2.0-alpha05 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
LazyVerticalGrid
औरLazyHorizontalGrid
अब स्थिर हैं. (I307c0)LazyVerticalGrid/LazyHorizontalGrid
और उससे जुड़े सभी एपीआई को .grid सब-पैकेज में ले जाया गया है. कृपया अपने इंपोर्ट को androidx.compose.foundation.lazy से androidx.compose.foundation.lazy.grid पर अपडेट करें. (I2d446, b/219942574)WindowInsetsControllerCompat
के लिए, सिर्फ़ व्यू पर भरोसा करने के पिछले बदलाव को वापस लाया गया है. साथ ही, अब भी विंडो की ज़रूरत होगी, जो कुछ विंडो फ़्लैग को मैनेज करने के लिए ज़रूरी है.ViewCompat.getWindowInsetsController
कोWindowCompat.getInsetsController
के लिए बंद कर दिया गया है, ताकि यह पक्का किया जा सके कि सही विंडो का इस्तेमाल किया जा रहा है. जैसे, अगर व्यू किसी डायलॉग में है. (I660ae, b/219572936)- टेक्स्ट:
includeFontPadding
अब डिफ़ॉल्ट रूप से बंद है.includeFontPadding=false
की वजह से, स्क्रीन पर दिखने वाले कॉन्टेंट के काटे जाने की समस्याएं हल हो गई हैं. साथ ही, लंबी स्क्रिप्ट के लिए काट-छांट नहीं की जानी चाहिए. (I31c84, b/171394808) - क्रॉस ऐक्सिस के साइज़ तय करने के लिए, नया
LazyVerticalGrid
एपीआई जोड़ा गया (I17723)
वर्शन 1.2.0-alpha04
23 फ़रवरी, 2022
androidx.compose.material:material-*:1.2.0-alpha04
रिलीज़ हो गया है. 1.2.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Add support for filter chips
(I39a6e, b/192585545)TextFieldDecorationBox
औरOutlinedTextFieldDecorationBox
को जोड़ा गया.BasicTextField
के साथ इनका इस्तेमाल करने से, आपको Material Design टेक्स्ट फ़ील्ड के आधार पर कस्टम टेक्स्ट फ़ील्ड बनाने में मदद मिलेगी. हालांकि, इसमें कस्टमाइज़ेशन के ज़्यादा विकल्प होंगे.- टेक्स्ट फ़ील्ड में हॉरिज़ॉन्टल और वर्टिकल पैडिंग में बदलाव करने का तरीका जोड़ा गया. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
ComposableTarget
,ComposableTargetMarker
, औरComposableOpenTarget
जोड़े गए हैं. इनकी मदद से, संकलन के समय यह रिपोर्ट किया जा सकता है कि किसी ऐसे ऐप्लिकेटर को टारगेट करने के लिए, कब किसी कंपोजेबल फ़ंक्शन को कॉल किया गया है जिसका इस्तेमाल करने के लिए उसे डिज़ाइन नहीं किया गया था.ज़्यादातर मामलों में, एनोटेशन का पता Compose के कंपाइलर प्लग इन से लगाया जा सकता है. इसलिए, इन एनोटेशन का सीधे तौर पर इस्तेमाल कम ही किया जाना चाहिए . जिन मामलों में अनुमान नहीं लगाया जा सकता उनमें कस्टम ऐप्लिकेटर बनाना और उसका इस्तेमाल करना, एब्स्ट्रैक्ट कंपोजेबल फ़ंक्शन (जैसे कि इंटरफ़ेस के तरीके), फ़ील्ड या वैश्विक वैरिएबल शामिल हैं. ये वैरिएबल, कंपोजेबल लैम्ब्डा (स्थानीय वैरिएबल और पैरामीटर का अनुमान लगाया जाता है) होते हैं. इसके अलावा,
ComposeNode
या उससे जुड़े कंपोजेबल फ़ंक्शन का इस्तेमाल करने पर भी अनुमान नहीं लगाया जा सकता.कस्टम लागू करने वाले फ़ंक्शन के लिए,
ComposeNode
याReusableComposeNode
को कॉल करने वाले कॉम्पोज़ेबल फ़ंक्शन को फ़ंक्शन और किसी भी कॉम्पोज़ेबल LAMBDA पैरामीटर टाइप के लिएCompoableTarget
एनोटेशन जोड़ना होगा. हालांकि, हमारा सुझाव है कि आप ऐसा एनोटेशन बनाएं जिसेComposableTargetMarker
के साथ एनोटेट किया गया हो. इसके बाद, सीधेComposableTarget
के बजाय, मार्क किए गए एनोटेशन का इस्तेमाल करें.ComposableTargetMarker
के साथ मार्क किया गया कॉम्पोज़ेबल एनोटेशन,ComposbleTarget
के बराबर होता है. इसमें एट्रिब्यूट क्लास का पूरी तरह क्वालिफ़ाइड नाम, लागू करने वाले पैरामीटर के तौर पर होता है.ComposableTargetMarker
का इस्तेमाल करने का उदाहरण देखने के लिए,anroidx.compose.ui.UiComposable
देखें. (I38f11)
वर्शन 1.2.0-alpha03
9 फ़रवरी, 2022
androidx.compose.material:material-*:1.2.0-alpha03
रिलीज़ हो गया है. 1.2.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- चिप ग्रुप का सैंपल जोड़ा गया (I97080, b/192585545)
वर्शन 1.2.0-alpha02
26 जनवरी, 2022
androidx.compose.material:material-*:1.2.0-alpha02
रिलीज़ हो गया है. 1.2.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- उन तरीकों में
NonRestartableComposable
जोड़ा गया है जो मौजूदा तरीकों के लिए, जटिल लॉजिक के बिना ओवरलोड होते हैं. इससे, उन सभी पैरामीटर के लिए, कंपाइलर से जनरेट की गई मेमोइज़ेशन जांच (बराबर) कम हो जाती है जिन्हें कॉल किए गए इनर फ़ंक्शन में दोहराया जाता है. (I90490) - ऐक्शन चिप के लिए सहायता जोड़ना (I07100, b/192585545)
वर्शन 1.2.0-alpha01
12 जनवरी, 2022
androidx.compose.material:material-*:1.2.0-alpha01
रिलीज़ हो गया है. 1.2.0-alpha01 वर्शन में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- अब यह Kotlin
1.6.10
पर निर्भर करता है.
बाहरी योगदान
ModalBottomSheetState
पर अबisSkipHalfExpanded
का फ़्लैग दिख रहा है. इसे कंस्ट्रक्टर की मदद से सेट किया जा सकता है या बाद मेंModalBottomSheetState
कीisSkipHalfExpanded
प्रॉपर्टी कोtrue
पर सेट करके अपडेट किया जा सकता है.isSkipHalfExpanded
की वैल्यू अपडेट करने पर, शीट फिर से बन जाती है. (I18b86, b/186669820)
वर्शन 1.1
वर्शन 1.1.1
23 फ़रवरी, 2022
androidx.compose.material:material-*:1.1.1
रिलीज़ हो गया है. 1.1.1 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
परNullPointerException
को ठीक करें (aosp/1947059, b/206677462)- Android पर क्लिपबोर्ड से कॉन्टेंट पढ़ते समय, क्लिपबोर्ड के कॉन्टेंट की वजह से क्रैश होने की समस्या को ठीक किया गया. (I06020, b/197769306)
LazyVerticalGrid
(aosp/1931080, b/207510535) में आरटीएल को ठीक किया गया
वर्शन 1.1.0
9 फ़रवरी, 2022
androidx.compose.material:material-*:1.1.0
रिलीज़ हो गया है. 1.1.0 वर्शन में ये बदलाव शामिल हैं.
1.0.0 के बाद किए गए अहम बदलाव
- Android 12 के ओवरस्क्रोल इफ़ेक्ट के लिए, बेहतर परफ़ॉर्मेंस
- टच टारगेट के साइज़ में सुधार
- ध्यान दें कि Compose 1.0 के साथ, Material कॉम्पोनेंट अपने लेआउट स्पेस को बड़ा कर देंगे, ताकि टच टारगेट साइज़ के लिए Material के सुलभता दिशा-निर्देशों को पूरा किया जा सके. उदाहरण के लिए, बटन के टच टारगेट का साइज़ कम से कम 48x48dp होगा. भले ही, आपने बटन का साइज़ छोटा सेट किया हो. इससे, Compose Material को Material Design कॉम्पोनेंट के काम करने के तरीके के हिसाब से अलाइन किया जाता है. इससे, व्यू और Compose को एक साथ इस्तेमाल करने पर, दोनों का काम करने का तरीका एक जैसा रहता है. इस बदलाव से यह भी पक्का होता है कि Compose के Material कॉम्पोनेंट का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाते समय, टच टारगेट की सुलभता से जुड़ी ज़रूरी शर्तें पूरी होंगी.
- नेविगेशन रेल के लिए बेहतर सहायता
- पहले एक्सपेरिमेंट के तौर पर उपलब्ध कई एपीआई को स्टेबल एपीआई के तौर पर उपलब्ध कराया गया
- Kotlin के नए वर्शन के लिए सहायता
वर्शन 1.1.0-rc03
26 जनवरी, 2022
androidx.compose.material:material-*:1.1.0-rc03
रिलीज़ हो गया है. 1.1.0-rc03 वर्शन में ये बदलाव शामिल हैं.
व्यवहार में बदलाव
ध्यान दें कि Compose 1.0 के साथ, Material कॉम्पोनेंट अपने लेआउट स्पेस को बड़ा कर देंगे, ताकि Material के सुलभता के दिशा-निर्देशों के टच टारगेट साइज़ को पूरा किया जा सके. उदाहरण के लिए, बटन के टच टारगेट का साइज़ कम से कम 48x48dp होगा. भले ही, आपने बटन का साइज़ छोटा सेट किया हो. इससे, Compose Material को Material Design कॉम्पोनेंट के काम करने के तरीके के हिसाब से अलाइन किया जाता है. इससे, व्यू और Compose को एक साथ इस्तेमाल करने पर, दोनों का काम करने का तरीका एक जैसा रहता है. इस बदलाव से यह भी पक्का होता है कि Compose के Material कॉम्पोनेंट का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाते समय, टच टारगेट की सुलभता से जुड़ी ज़रूरी शर्तें पूरी होंगी.
गड़बड़ियां ठीक की गईं
- टच टारगेट के लिए तय किए गए कम से कम वैल्यू वाले मॉडिफ़ायर की जांच करते समय, लेआउट इंस्पेक्टर के लिए डीबग करने से जुड़ी बेहतर जानकारी जोड़ी गई है. (aosp/1955036)
वर्शन 1.1.0-rc01
15 दिसंबर, 2021
androidx.compose.material:material-*:1.1.0-rc01
रिलीज़ हो गया है. 1.1.0-rc01 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
Checkbox
(I38b03, b/175198975, b/202309440) के लिए लागू किए गए कोने की त्रिज्या को ठीक करें
वर्शन 1.1.0-beta04
1 दिसंबर, 2021
androidx.compose.material:material-*:1.1.0-beta04
रिलीज़ हो गया है. 1.1.0-beta04 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- Kotlin
1.6.0
के साथ काम करने के लिए अपडेट किया गया
वर्शन 1.1.0-beta03
17 नवंबर, 2021
androidx.compose.material:material-*:1.1.0-beta03
रिलीज़ हो गया है. 1.1.0-beta03 वर्शन में ये बदलाव शामिल हैं.
वर्शन 1.1.0-beta02
3 नवंबर, 2021
androidx.compose.material:material-*:1.1.0-beta02
रिलीज़ हो गया है. 1.1.0-beta02 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- अब रिपल और अन्य इंडिकेशन सिर्फ़ तब देर से दिखेंगे, जब वे Modifier.scrollable() कंटेनर में होंगे. पहले, ये इंडिकेशन हमेशा देर से दिखते थे. (Ibefe0, b/203141462)
वर्शन 1.1.0-beta01
27 अक्टूबर, 2021
androidx.compose.material:material-*:1.1.0-beta01
रिलीज़ हो गया है. 1.1.0-beta01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- रिपल अब कर्सर घुमाने और फ़ोकस करने की स्थितियों के साथ काम करते हैं. इसलिए, बटन जैसे किसी कॉम्पोनेंट पर कर्सर घुमाने या फ़ोकस करने पर, अब सही स्टेटस ओवरले दिखेगा.
वर्शन 1.1.0-alpha06
13 अक्टूबर, 2021
androidx.compose.material:material-*:1.1.0-alpha06
रिलीज़ हो गया है. 1.1.0-alpha06 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- बेहतर परफ़ॉर्मेंस के साथ, लेआउट के लिए बिना चाइल्ड वाले ओवरलोड को जोड़ा गया (Ib0d9a)
ExposedDropdownMenuBox
के आधार परExposedDropdownMenu
को लागू करना. इसमेंTextField
औरDropdownMenu
शामिल हैं (If60b2)dismissOnOutsideClick
कोPopupProperties
में जोड़ा गया. इससे,dismissOnClickOutside
की जगह ले ली गई, जिसका इस्तेमाल अब नहीं किया जा सकता. नई प्रॉपर्टी को क्लिक की पोज़िशन और ऐंकर बाउंड मिलते हैं. इससे यह कंट्रोल करने में मदद मिलती है कि onDismissRequest को ट्रिगर किया जाना चाहिए या नहीं. उदाहरण के लिए, यह सुविधा, ऐंकर पर टच करने पर उसे हटाने से रोकने के लिए काम की हो सकती है.updateAndroidWindowManagerFlags
कोPopupProperties
में जोड़ा गया था. इससे, पॉप-अप से Android WindowManager को भेजे गए फ़्लैग पर लो-लेवल कंट्रोल मिलता है. लैम्ब्डा फ़ंक्शन का पैरामीटर, PopupProperties की वैल्यू से कैलकुलेट किए गए फ़्लैग होंगे. इन फ़्लैग से WindowManager फ़्लैग बनते हैं, जैसे कि फ़ोकस करने लायक. लैम्ब्डा फ़ंक्शन का नतीजा, फ़ाइनल फ़्लैग होगा. इसे Android WindowManager को पास किया जाएगा. डिफ़ॉल्ट रूप से, updateAndroidWindowManagerFlags, पैरामीटर से कैलकुलेट किए गए फ़्लैग में कोई बदलाव नहीं करेगा. इस एपीआई का इस्तेमाल सावधानी से करना चाहिए. इसका इस्तेमाल सिर्फ़ तब करना चाहिए, जब पॉप-अप के व्यवहार से जुड़ी खास ज़रूरतें हों. (I6e9f9)
वर्शन 1.1.0-alpha05
29 सितंबर, 2021
androidx.compose.material:material-*:1.1.0-alpha05
रिलीज़ हो गया है. 1.1.0-alpha05 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- उन Material कॉम्पोनेंट के लिए टच टारगेट का कम से कम साइज़ जोड़ता है जिनमें ऐक्सेस किया जा सकने वाला टच टारगेट नहीं होता. इससे कॉम्पोनेंट के चारों ओर ज़्यादा स्पेस जुड़ जाता है, ताकि यह पक्का किया जा सके कि उनका टच टारगेट काफ़ी बड़ा है. इससे, मौजूदा यूज़र इंटरफ़ेस (यूआई) में बदलाव हो सकता है. ये यूआई, इन कॉम्पोनेंट के साइज़ को उनके विज़ुअल साइज़ मानते हैं और टच टारगेट के साइज़ का ध्यान नहीं रखते. किसी हैरारकी में इस व्यवहार को बंद करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध
LocalMinimumTouchTargetEnforcement
कॉम्पोज़िशन लोकल का इस्तेमाल किया जा सकता है. हालांकि, इसका मकसद सिर्फ़ मौजूदा यूज़र इंटरफ़ेस (यूआई) को अपडेट करते समय, नए कम से कम साइज़ को ध्यान में रखकर, कुछ समय के लिए इस सुविधा को बंद करना है. (I9b966, b/149691127, b/171509422) - प्रयोग के तौर पर TextFieldColorsWithIcons इंटरफ़ेस जोड़ा गया है. इससे TextFieldColors को आगे और पीछे के रंग के लिए InteractionSource देने में मदद मिलती है. इससे फ़ोकस की स्थिति के हिसाब से, टेक्स्ट फ़ील्ड के दिखने का तरीका बदला जा सकता है. (I66923, b/198402662)
वर्शन 1.1.0-alpha04
15 सितंबर, 2021
androidx.compose.material:material-*:1.1.0-alpha04
रिलीज़ हो गया है. 1.1.0-alpha04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
performGesture
औरGestureScope
, जिन्हें अब इस्तेमाल नहीं किया जा सकता. इन्हेंperformTouchInput
औरTouchInjectionScope
से बदल दिया गया है. (Ia5f3f, b/190493367)touchBoundsInRoot
मेंSemanticsNode
जोड़ा गया है, जिसमें टच टारगेट का कम से कम साइज़ शामिल है. इससे डेवलपर यह पक्का कर सकते हैं कि टच टारगेट, सुलभता से जुड़ी ज़रूरी शर्तों को पूरा करते हैं. (I2e14b, b/197751214)
गड़बड़ियां ठीक की गईं
- कम से कम टच टारगेट के लिए, क्लिप को क्लिप क्षेत्र से परे टच टारगेट के दायरे को बढ़ाने की अनुमति दें. (I43e10, b/171509422)
Divider
composable को अपडेट किया गया है, ताकि डिसप्ले डेंसिटी के बावजूद, एक पिक्सल के डिवाइडर को ड्रॉ करने के लिए, thickness पैरामीटर के लिएDp.Hairline
का सम्मान किया जा सके. (I16ffb, b/196840810)
वर्शन 1.1.0-alpha03
1 सितंबर, 2021
androidx.compose.material:material-*:1.1.0-alpha03
रिलीज़ हो गया है. 1.1.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- Compose
1.1.0-alpha03
को Kotlin1.5.30
पर निर्भर करने के लिए अपडेट किया गया. (I74545)
एपीआई में हुए बदलाव
- क्लिप किए गए बाउंड पाने के लिए, टेस्ट करने का तरीका जोड़ा गया. (I6b28e)
- सुलभता को पक्का करने के लिए, सेमेटिक्स और पॉइंटर इनपुट में इस्तेमाल करने के लिए, ViewConfiguration में कम से कम टच टारगेट साइज़ जोड़ा गया है. (Ie861c)
वर्शन 1.1.0-alpha02
18 अगस्त, 2021
androidx.compose.material:material-*:1.1.0-alpha02
रिलीज़ हो गया है. 1.1.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
बाहरी योगदान
- अगर स्वाइप ऑफ़सेट, ऐंकर के राउंडिंग गड़बड़ी के अंदर है, तो SwipeableState के व्यवहार को ठीक करें. (I03d39, b/191993377)
वर्शन 1.1.0-alpha01
4 अगस्त, 2021
androidx.compose.material:material-*:1.1.0-alpha01
रिलीज़ हो गया है. 1.1.0-alpha01 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- अपडेट किया गया
DrawScope#drawImage
तरीका, जो वैकल्पिक FilterQuality पैरामीटर का इस्तेमाल करने के लिए, सोर्स और डेस्टिनेशन rects का इस्तेमाल करता है. यह पिक्सल आर्ट के लिए फ़ायदेमंद है, जिसे पिक्सल आर्ट के लिए स्केल अप करने पर पिक्सल में बदलना है. BitmapPainter + Image composable को अपडेट किया गया है, ताकि ज़रूरी नहीं होने वाले FilterQuality पैरामीटर का भी इस्तेमाल किया जा सके (Ie4fb0, b/180311607) - BadgeBox का नाम बदलकर BadgedBox कर दिया गया है. साथ ही, बैज वाले कॉम्पोनेंट को स्वीकार करने के लिए पैरामीटर में बदलाव किया गया है. बैज वाला कॉम्पोनेंट जोड़ा गया है. यह बैज वाले बॉक्स के लिए सामान्य बैज कॉन्टेंट होता है. (I639c6)
- NavigationRail कॉम्पोनेंट जोड़ा गया. इस्तेमाल से जुड़ी जानकारी के लिए दस्तावेज़ और सैंपल देखें (I8de77)
गड़बड़ियां ठीक की गईं
- नीचे अलाइन किए गए NavigationRail का सैंपल और कैटलॉग ऐप्लिकेशन का डेमो जोड़ा गया. (I3cffc)
- डायलॉग बॉक्स अब प्लैटफ़ॉर्म के साइज़ के हिसाब से काम करते हैं. इस व्यवहार को बदलने के लिए, usePlatformDefaultWidth को 'गलत है' पर सेट करें. (Iffaed, b/192682388)
- कैटलॉग ऐप्लिकेशन में नेविगेशन-रेल का डेमो जोड़ा गया. (I04960)
- कैटलॉग ऐप्लिकेशन में बैज का डेमो जोड़ा गया. (If285d)
संस्करण 1.0
वर्शन 1.0.5
3 नवंबर, 2021
androidx.compose.material:material-*:1.0.5
रिलीज़ हो गया है. 1.0.5 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- derivedStateOf इंस्टेंस को क्रैश ट्रैकिंग से जुड़ी समस्या ठीक की गई. (aosp/1792247)
वर्शन 1.0.4
13 अक्टूबर, 2021
androidx.compose.material:material-*:1.0.4
रिलीज़ हो गया है. 1.0.4 वर्शन में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.31
पर निर्भर करने के लिए अपडेट किया गया
वर्शन 1.0.3
29 सितंबर, 2021
androidx.compose.material:material-*:1.0.3
रिलीज़ हो गया है. 1.0.3 वर्शन में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.30
पर निर्भर करने के लिए अपडेट किया गया
वर्शन 1.0.2
1 सितंबर, 2021
androidx.compose.material:material-*:1.0.2
रिलीज़ हो गया है. 1.0.2 वर्शन में ये बदलाव शामिल हैं.
Compose 1.0.2
रिलीज़ के साथ काम करने के लिए अपडेट किया गया. Compose 1.0.2
, अब भी Kotlin 1.5.21
के साथ काम करता है.
वर्शन 1.0.1
4 अगस्त, 2021
androidx.compose.material:material-*:1.0.1
रिलीज़ हो गया है. 1.0.1 वर्शन में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.21
पर निर्भर करने के लिए अपडेट किया गया.
वर्शन 1.0.0
28 जुलाई, 2021
androidx.compose.material:material-*:1.0.0
रिलीज़ हो गया है. 1.0.0 वर्शन में ये बदलाव शामिल हैं.
1.0.0 के वर्शन की मुख्य सुविधाएं
यह Compose का पहला स्टेबल वर्शन है. ज़्यादा जानकारी के लिए, कृपया Compose रिलीज़ का आधिकारिक ब्लॉग देखें!
ऐसी समस्याएं जिनकी जानकारी पहले से है
अगर Android Studio Bumblebee Canary 4 या AGP
7.1.0-alpha04
/7.1.0-alpha05
का इस्तेमाल किया जा रहा है, तो आपको क्रैश होने की यह समस्या आ सकती है:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
इसे ठीक करने के लिए, अपनी
build.gradle
फ़ाइल में minSdkVersion को कुछ समय के लिए 24 या उसके बाद के वर्शन पर सेट करें. यह समस्या, Android Studio Bumblebee और AGP7.1
के अगले वर्शन में ठीक कर दी जाएगी. (b/194289155)
वर्शन 1.0.0-rc02
14 जुलाई, 2021
androidx.compose.material:material-*:1.0.0-rc02
रिलीज़ हो गया है. 1.0.0-rc02 वर्शन में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- डायलॉग बॉक्स अब प्लैटफ़ॉर्म के साइज़ के हिसाब से काम करते हैं. इस व्यवहार को बदलने के लिए,
usePlatformDefaultWidth
को 'गलत है' पर सेट करें. (Iffaed, b/192682388)
वर्शन 1.0.0-rc01
1 जुलाई, 2021
androidx.compose.material:material-*:1.0.0-rc01
रिलीज़ हो गया है. 1.0.0-rc01 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
BadgeBox
कॉम्पोनेंट जोड़ा गया. इस्तेमाल से जुड़ी जानकारी के लिए दस्तावेज़ और सैंपल देखें (I5e284)PopupProperties
में मौजूदuseDefaultMaxWidth
का नाम बदलकरusePlatformDefaultWidth
कर दिया गया. (I05710)- डायलॉग बॉक्स अब पूरी स्क्रीन की चौड़ाई का इस्तेमाल कर सकते हैं. (I83929, b/190810877)
- एक्सपेरिमेंट के तौर पर रेंज स्लाइडर लागू करने की सुविधा जोड़ी गई (I2f4b3)
गड़बड़ियां ठीक की गईं
- Material Design के स्पेसिफ़िकेशन के मुताबिक, अमान्य इनपुट वाले OutlinedTextField में लेबल के लिए गड़बड़ी के रंग का इस्तेमाल बंद कर दिया गया है. ऐसा तब किया जाता है, जब लेबल का इस्तेमाल प्लेसहोल्डर के तौर पर किया जा रहा हो. यह तब सही होता है, जब टेक्स्ट फ़ील्ड में कोई इनपुट टेक्स्ट न हो और टेक्स्ट फ़ील्ड फ़ोकस में न हो. इस बदलाव के बाद,
TextFieldColors.labelColor()
फ़ंक्शन मेंerror:Boolean
पैरामीटर का मतलब भी बदल गया है: अगर लेबल का इस्तेमाल प्लेसहोल्डर के तौर पर किया जा रहा है, तो अब इनपुट अमान्य होने पर भी यहfalse
दिखाएगा. (I45f78)
वर्शन 1.0.0-beta09
16 जून, 2021
androidx.compose.material:material-*:1.0.0-beta09
रिलीज़ हो गया है. 1.0.0-beta09 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- आउटलाइन वाले टेक्स्ट फ़ील्ड में शेप पैरामीटर जोड़ा गया, ताकि बॉर्डर का शेप पसंद के मुताबिक बनाया जा सके (I8f39e, b/181322957)
- TextOverflow को इनलाइन क्लास में बदल दिया गया है. (I433af)
गड़बड़ियां ठीक की गईं
- Color.Unspecified पास होने पर, BottomDrawer, BackdropScaffold, और ModalBottomSheetLayout में स्क्रीम गायब हो जाएगी (I2d899, b/182063309)
प्रोफ़ाइल के लिए नियम जोड़े गए
इस रिलीज़ में, इन कॉम्पोज़ मॉड्यूल (I14ed6) में प्रोफ़ाइल नियम जोड़े गए हैं:
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
प्रोफ़ाइल के नियम क्या होते हैं?
किसी लाइब्रेरी के लिए प्रोफ़ाइल के नियम,
src/main
या मिलती-जुलती डायरेक्ट्री में मौजूद टेक्स्ट फ़ाइलbaseline-prof.txt
में बताए जाते हैं. फ़ाइल में हर लाइन के लिए एक नियम तय किया जाता है. इस मामले में, नियम लाइब्रेरी में मौजूद तरीकों या क्लास से मैच करने के लिए एक पैटर्न होता है. इन नियमों का सिंटैक्स, ART प्रोफ़ाइल के ऐसे फ़ॉर्मैट का सुपरसेट है जिसे कोई भी व्यक्ति पढ़ सकता है. इसका इस्तेमालadb shell profman --dump-classes-and-methods ...
का इस्तेमाल करते समय किया जाता है. ये नियम, किसी भी तरीके या क्लास को टारगेट करने के लिए, इनमें से किसी एक फ़ॉर्म में होते हैं.किसी तरीके के नियम का पैटर्न इस तरह का होगा:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
क्लास के लिए बने नियम का पैटर्न इस तरह का होगा:
<CLASS_DESCRIPTOR>
यहां
<FLAGS>
,H
,S
, औरP
में से एक या उससे ज़्यादा वर्ण हैं. इनसे यह पता चलता है कि इस तरीके को "हॉट", "स्टार्टअप" या "स्टार्टअप के बाद" के तौर पर फ़्लैग किया जाना चाहिए या नहीं.<CLASS_DESCRIPTOR>
, उस क्लास का डिस्क्रिप्टर है जिससे टारगेट किया गया तरीका जुड़ा है. उदाहरण के लिए, क्लासandroidx.compose.runtime.SlotTable
का डिस्क्रिप्टरLandroidx/compose/runtime/SlotTable;
होगा.<METHOD_SIGNATURE>
, मेथड का सिग्नेचर होता है. इसमें मेथड का नाम, पैरामीटर टाइप, और रिटर्न टाइप शामिल होते हैं. उदाहरण के लिए,LayoutNode
पर मौजूदfun isPlaced(): Boolean
तरीके का हस्ताक्षरisPlaced()Z
है.इन पैटर्न में वाइल्डकार्ड (
**
,*
, और?
) हो सकते हैं, ताकि एक नियम में कई तरीके या क्लास शामिल हो सकें.
ये नियम क्या करते हैं?
जिस तरीके पर
H
फ़्लैग लगा होता है वह "हॉट" तरीका होता है. इसे समय से पहले कंपाइल किया जाना चाहिए.जिस तरीके पर
S
फ़्लैग लगा होता है उससे पता चलता है कि उसे स्टार्टअप के समय कॉल किया जाता है. साथ ही, स्टार्टअप के समय उसे कंपाइल करने और उसके बारे में जानकारी देने में लगने वाले समय को बचाने के लिए, उसे पहले से कंपाइल किया जाना चाहिए.जिस तरीके के साथ
P
फ़्लैग होता है उससे पता चलता है कि यह स्टार्टअप के बाद कॉल किया जाने वाला तरीका है.इस फ़ाइल में मौजूद किसी क्लास का मतलब है कि उसका इस्तेमाल स्टार्टअप के दौरान किया जाता है. साथ ही, क्लास लोड होने में लगने वाले समय को बचाने के लिए, उसे पहले से ही हेप में असाइन किया जाना चाहिए.
यह कैसे काम करता है?
- लाइब्रेरी ये नियम तय कर सकती हैं, जिन्हें AAR आर्टफ़ैक्ट में पैकेज किया जाएगा. जब इन आर्टफ़ैक्ट को शामिल करके कोई APK बनाया जाता है, तो इन नियमों को आपस में मर्ज कर दिया जाता है. इसके बाद, मर्ज किए गए नियमों का इस्तेमाल करके, APK के हिसाब से एक कॉम्पैक्ट बाइनरी ART प्रोफ़ाइल बनाई जाती है. इसके बाद, जब APK को डिवाइसों पर इंस्टॉल किया जाता है, तो ART इस प्रोफ़ाइल का फ़ायदा ले सकता है. इससे, ऐप्लिकेशन के किसी खास सबसेट को पहले से कंपाइल किया जा सकता है, ताकि ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सके. खास तौर पर, पहली बार चलाने पर. ध्यान दें कि इससे, डीबग किए जा सकने वाले ऐप्लिकेशन पर कोई असर नहीं पड़ेगा.
वर्शन 1.0.0-beta08
2 जून, 2021
androidx.compose.material:material-*:1.0.0-beta08
रिलीज़ हो गया है. 1.0.0-beta08 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
एपीआई के काम करने के तरीके में बदलाव
- व्यवहार में बदलाव: कार्ड अब क्लिक का इस्तेमाल करता है. इससे,
Card(Modifier.clickable)
के ज़रिए जोड़े गए क्लिक काम नहीं करते. कृपया, ऐसे कार्ड के नए एक्सपेरिमेंटल ओवरलोड का इस्तेमाल करें जो onClick को स्वीकार करता है. (Ia8744, b/183775620)- कार्ड के लिए एक नया ओवरलोड जोड़ा गया है, जो क्लिक के साथ-साथ क्लिक किए जा सकने वाले अन्य फ़ंक्शन को भी मैनेज करता है: इंडिकेशन, इंटरैक्शन सोर्स, चालू/बंद.
Modifier.clickable
के साथ, क्लिक न किए जा सकने वाले सामान्य कार्ड का इस्तेमाल नहीं किया जा सकता, क्योंकि ऐसे मामलों में कार्ड, रिपल इंंडिकेशन को क्लिप नहीं करेगा.
- कार्ड के लिए एक नया ओवरलोड जोड़ा गया है, जो क्लिक के साथ-साथ क्लिक किए जा सकने वाले अन्य फ़ंक्शन को भी मैनेज करता है: इंडिकेशन, इंटरैक्शन सोर्स, चालू/बंद.
- व्यवहार में बदलाव: अब Surface पर क्लिक किए जा सकते हैं. इससे,
Surface(Modifier.clickable)
के ज़रिए जोड़े गए क्लिक काम नहीं करते. कृपया, Surface के नए एक्सपेरिमेंटल ओवरलोड का इस्तेमाल करें, जो onClick को स्वीकार करता है. (I73e6c, b/183775620)- एक नया Surface overload जोड़ा गया है, जो क्लिक के साथ-साथ क्लिक किए जा सकने वाले अन्य फ़ंक्शन को भी मैनेज करता है: indication, interactionSource, enabled/disabled.
Modifier.clickable
के साथ, क्लिक न किए जा सकने वाले सामान्य प्लैटफ़ॉर्म का इस्तेमाल नहीं किया जा सकता, क्योंकि ऐसे मामलों में प्लैटफ़ॉर्म, रिपल इंंडिकेशन को क्लिप नहीं करेगा.
- एक नया Surface overload जोड़ा गया है, जो क्लिक के साथ-साथ क्लिक किए जा सकने वाले अन्य फ़ंक्शन को भी मैनेज करता है: indication, interactionSource, enabled/disabled.
एपीआई में हुए बदलाव
FabPosition
को आने वाले समय में संभावित तौर पर होने वाले विस्तार के लिए, enum से इनलाइन क्लास में बदल दिया गया है (I030fb)- जब नई वैल्यू जोड़ी जाती हैं, तब 'जब' स्टेटमेंट में समस्याओं से बचने के लिए, इनलाइन क्लास में वैल्यू का इस्तेमाल करने का तरीका बदला गया है. (I2b5eb)
- क्लिक किए जा सकने वाले / टॉगल किए जा सकने वाले आइटम पर टैप करने के लिए टाइम आउट जोड़ा गया है, ताकि स्क्रोल / खींचने और छोड़ने के दौरान रिपल न दिखे (Ia2704, b/168524931)
- ContentDescription और टेक्स्ट सेमेंटेक्स प्रॉपर्टी अब एक वैल्यू के बजाय सूचियां हैं. इससे, उन्हें जोड़ने के बजाय, वैसे ही मर्ज किया जा सकता है जैसे वे हैं. इन बदलावों का फ़ायदा पाने के लिए, बेहतर टेस्टिंग एपीआई भी उपलब्ध कराए गए हैं (Ica6bf, b/184825850)
Modifier.focusModifier()
का अब इस्तेमाल नहीं किया जा सकता. इसेModifier.focusTarget()
(I6c860) से बदल दिया गया हैFocusState
इंटरफ़ेस के साथFocusState
एनम को बदला गया (Iccc1a, b/187055290)LocalRippleNativeRendering
को हटा दिया गया है, क्योंकि व्यू के साथ रिपल इफ़ेक्ट लागू करने की सुविधा अब ठीक से काम कर रही है (I7fab3, b/188569367)
गड़बड़ियां ठीक की गईं
Modifier.onGloballyPositioned()
को बदला गया, ताकि सभी मॉडिफ़ायर लागू करने के बाद, लेआउट के निर्देशांक के बजाय मॉडिफ़ायर चेन में इस मॉडिफ़ायर के निर्देशांक रिपोर्ट किए जा सकें. इसका मतलब है कि अब मॉडिफ़ायर के क्रम से यह तय होगा कि कौनसे निर्देशांक रिपोर्ट किए जाएंगे. (Ieb67d, b/177926591)- Compose के मौजूदा कॉन्टेंट कैटलॉग के लिए, README जोड़ा गया. (If9191)
वर्शन 1.0.0-beta07
18 मई, 2021
androidx.compose.material:material-*:1.0.0-beta07
रिलीज़ हो गया है. 1.0.0-beta07 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- अब आपको नेविगेशन कंपोज में, रास्ते के सुझाव पाने के लिए एक्सटेंशन के तरीकों का इस्तेमाल करने की ज़रूरत नहीं है. (I22beb, b/172823546)
वर्शन 1.0.0-beta06
5 मई, 2021
androidx.compose.material:material-*:1.0.0-beta06
रिलीज़ हो गया है. 1.0.0-beta06 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Android डिवाइसों पर
RippleDrawable
का अंदरूनी इस्तेमाल करने के लिए, Ripple को माइग्रेट कर दिया गया है. इसका मतलब है कि रिपल ऐनिमेशन, RenderThread पर होंगे. इसलिए, यूज़र इंटरफ़ेस (यूआई) थ्रेड लोड होने पर भी, ये ऐनिमेशन आसानी से चलेंगे. जैसे, स्क्रीन के बीच नेविगेट करते समय. इससे, रिपल के एपीआई के प्लैटफ़ॉर्म में कोई बदलाव नहीं होता. हालांकि, इस बदलाव की वजह से, रिपल के काम करने के तरीके में बदलाव हो सकते हैं. माइग्रेशन में मदद करने के लिए,LocalRippleNativeRendering
जोड़ा गया है - CompositionLocalProvider में पिछले रिपल लागू करने के लिए, इस CompositionLocal कोfalse
की वैल्यू दें. यह एपीआई कुछ समय के लिए उपलब्ध है और इसे आने वाले समय में हटा दिया जाएगा. इसलिए, अगर आपको इस एपीआई का इस्तेमाल करने में समस्याएं आती हैं, तो कृपया बग की शिकायत करें. (I902f8, b/168777351, b/183019123) - CollectionInfo और CollectionItemInfo सुलभता एपीआई जोड़े गए हैं. इनकी मदद से, कलेक्शन और उसके आइटम को सुलभता सेवाओं के लिए मार्क किया जा सकता है (Id54ef, b/180479017)
- सुलभता एपीआई
error
जोड़ा गया है. इसकी मदद से, अमान्य इनपुट वाले नोड को मार्क किया जा सकता है (I12997, b/180584804, b/182142737)
गड़बड़ियां ठीक की गईं
- Compose में, कॉन्टेंट में शामिल किए जाने वाले कैटलॉग के इनसेट को लागू करने के लिए, https://github.com/google/accompanist/pull/365 पर जाएं. (I25dc3)
- weight(fill = false) वाले पंक्ति और कॉलम के बच्चे, अब पैरंट को मुख्य अक्ष के पूरे उपलब्ध स्पेस को भरने नहीं दे रहे हैं. (Ied94d, b/186012444, b/184355105)
वर्शन 1.0.0-beta05
21 अप्रैल, 2021
androidx.compose.material:material-*:1.0.0-beta05
रिलीज़ हो गया है. 1.0.0-beta05 वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- Compose के मौजूदा मटीरियल कैटलॉग में, कॉम्पोनेंट टाइल इमेज, थीम पिकर, और ज़्यादा सटीक मेन्यू यूआरएल जोड़े गए हैं. (I9b58e)
वर्शन 1.0.0-beta04
7 अप्रैल, 2021
androidx.compose.material:material-*:1.0.0-beta04
रिलीज़ हो गया है. 1.0.0-beta04 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- एपीआई में बदलाव:
DrawerState
स्टेटस अब एक्सपेरिमेंटल SwipeableState के साथ काम नहीं करता.- एपीआई में बदलाव:
BottomDrawerState
को अब एक्सपेरिमेंट के तौर पर मार्क किया गया है, ताकि यह पहले से एक्सपेरिमेंट के तौर पर उपलब्ध BottomDrawer कॉम्पोनेंट (I81114, b/181656094) से मैच कर सके
- एपीआई में बदलाव:
SoftwareKeyboardController
पर मौजूदhideSoftwareKeyboard
औरshowSoftwareKeyboard
का नाम बदलकर,hide()
औरshow()
करें.- LocalSoftwareKeyboardController के लिए, पूरा CompositionLocal इंटरफ़ेस उपलब्ध कराएं, ताकि इसे सेट किया जा सके. यह इंटरफ़ेस खास तौर पर टेस्ट के लिए ज़रूरी है (I579a6)
- LiveRegion accessibility API जोड़ा गया है. अगर नोड को लाइव रीजन के तौर पर मार्क किया गया है, तो सुलभता सेवाएं, उपयोगकर्ता को इसके बदलावों के बारे में अपने-आप सूचना देंगी (Idcf6f, b/172590946)
गड़बड़ियां ठीक की गईं
- मौजूदा मॉड्यूल में, कॉम्पोज़ मटीरियल कैटलॉग को लागू करने की सुविधा जोड़ी गई है. फ़िलहाल, ये सुविधाएं उपलब्ध नहीं हैं: कॉम्पोनेंट टाइल की इमेज, थीम पिकर (इन्हें फ़ॉलो-अप बदलावों में जोड़ा जाएगा). (Ie7a94)
वर्शन 1.0.0-beta03
24 मार्च, 2021
androidx.compose.material:material-*:1.0.0-beta03
रिलीज़ हो गया है. 1.0.0-beta03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
DefaultMonotonicFrameClock
का अब इस्तेमाल नहीं किया जा सकता.MonotonicFrameClock
के बिनाwithFrameNanos
याRecomposer.runRecomposeAndApplyChanges
को कॉल करने पर, अबIllegalStateException
दिखेगा. (I4eb0d)- टैब में आइकॉन और इनलाइन टेक्स्ट दिखाने के लिए, नया एपीआई
LeadingIconTab
जोड़ा गया है. (I23267)
बाहरी योगदान
- [जॉसी वुल्फ़ की ओर से]
BottomDrawer
अब ड्रॉअर स्लॉट के कॉन्टेंट को रैप करता है. जब पैरंट की ऊंचाई अनलिमिटेड होती है, तोBottomDrawer
कोईIllegalStateException
नहीं दिखाता. अगर ड्रॉवर, अपने पैरंट ड्रॉवर के 50% से छोटा है, तो वह अब बड़ा करके खुलेगा.BottomDrawerState
औरModalBottomSheetLayoutState
से जुड़े दस्तावेज़ अपडेट कर दिए गए हैं. अगरBottomDrawerState#isOpen
खुला या बड़ा किया गया है, तो यह अब 'सही' दिखाता है. (I87241)
वर्शन 1.0.0-beta02
10 मार्च, 2021
androidx.compose.material:material-*:1.0.0-beta02
रिलीज़ हो गया है. 1.0.0-beta02 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- TextField पर मौजूदा
SoftwareKeyboardController
इंटरफ़ेस की जगह नयाLocalSoftwareKeyboardController
कॉम्पोज़िशन लोकल एपीआई जोड़ा गया. (I5951e, b/168778053)
गड़बड़ियां ठीक की गईं
- एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई के सार्वजनिक इस्तेमाल पर पाबंदियां लगाना (I6aa29, b/174531520)
- Row (Ib2dc7) के हिसाब से, TopAppBar और BottomAppBar के लिए डिफ़ॉल्ट हॉरिज़ॉन्टल अलाइनमेंट को Start पर बदला गया
- Compose के मेटाडेटा कैटलॉग के लिए नया मॉड्यूल और प्लेसहोल्डर यूज़र इंटरफ़ेस (यूआई) जोड़ा गया है. फ़िलहाल, यह मौजूदा इंटिग्रेशन टेस्ट डेमो में नेस्ट किया गया है. (Idfcb3)
androidx.compose.ui:ui
अब AppCompat या फ़्रैगमेंट पर निर्भर नहीं करता. अगर आपके ऐप्लिकेशन में ComposeView का इस्तेमाल किया जा रहा है और आपने फ़्रैगमेंट और/या AppCompat का इस्तेमाल किया है, तो पक्का करें कि आपने AppCompat 1.3+ / फ़्रैगमेंट 1.3+ का इस्तेमाल किया हो. ComposeView के लिए, लाइफ़साइकल और सेव की गई स्थिति के मालिकों को सही तरीके से सेट करने के लिए, इन वर्शन की ज़रूरत होती है. (I1d6fa, b/161814404)
वर्शन 1.0.0-beta01
24 फ़रवरी, 2021
androidx.compose.material:material-*:1.0.0-beta01
रिलीज़ हो गया है. 1.0.0-beta01 वर्शन में ये बदलाव शामिल हैं.
यह Compose 1.0.0 बीटा वर्शन की पहली रिलीज़ है.
एपीआई में हुए बदलाव
- साइज़ मॉडिफ़ायर के नाम बदले गए. Modifier.width/height/size का नाम बदलकर, requiredWidth/requiredHeight/requiredSize कर दिया गया. Modifier.preferredWidth/preferredHeight/preferredSize का नाम बदलकर width/height/size कर दिया गया है. (I5b414)
- imageResource और vectorResource, अब ImageBitmap और ImageVector के साथ काम करने वाले एक्सटेंशन फ़ंक्शन हैं. load{Image,Vector,Font}Resource फ़ंक्शन मिटा दिए गए हैं. (I89130)
- अब इनट्रिन्सिक के साइज़ में बदलाव करने के लिए मॉडिफ़ायर, एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (I15744)
- dp एश्योरेशन हटाए गए (I798d2)
- सभी टेक्स्ट फ़ील्ड से SoftwareKeyboardController कॉलबैक हटा दिया गया है. इसे जल्द ही एक नए एपीआई से बदल दिया जाएगा. (Iae869, b/168778053)
- स्विच, चेकबॉक्स, और रेडियो बटन ऐक्शन के लिए, अब वैल्यू न देने पर भी काम किया जा सकता है. इस सुविधा का इस्तेमाल करने के लिए, क्लिक की जा सकने वाली लाइन में चेकबॉक्स के सैंपल अपडेट किए गए हैं. (If601b, b/171819073)
InteractionState
को[Mutable]InteractionSource
से बदल दिया गया है- इंटरफ़ेस, इंटरैक्शन इवेंट को उत्सर्जित / इकट्ठा करने के लिए ज़िम्मेदार होते हैं.
Button
औरModifier.clickable()
जैसे कॉम्पोनेंट मेंinteractionState = remember { InteractionState() }
पास करने के बजाय,interactionSource = remember { MutableInteractionSource() }
का इस्तेमाल करें.- इसके बजाय:
Interaction.Pressed in interactionState
आपको InteractionSource पर एक्सटेंशन फ़ंक्शन का इस्तेमाल करना चाहिए, जैसे कि InteractionSource.collectIsPressedAsState(). - जटिल इस्तेमाल के उदाहरणों के लिए, इंटरैक्शन की स्ट्रीम को देखने के लिए InteractionSource.interactions का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, InteractionSource दस्तावेज़ और सैंपल देखें.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals में AccessibilityMananger इंटरफ़ेस और LocalAccessibilityMananger जोड़ें (I53520)
- LayoutCoordinates के काम न करने वाले तरीकों को हटा दिया गया है. positionInParent और boundsInParent के लिए, प्रॉपर्टी के बजाय फ़ंक्शन का इस्तेमाल करें (I580ed, b/169874631, b/175142755)
- स्लाइडर अब चालू/बंद की स्थिति के साथ काम करता है (I6d56b, b/179793072)
- CoreTextField जैसे लो लेवल टेक्स्ट कॉम्पोनेंट से इनपुट सेशन के लिए, नया TextInputSession बनाया गया. (I8817f, b/177662148)
- AnimationEndReason.Interrupted को हटा दिया गया है. अगर ऐनिमेशन में रुकावट आती है, तो CancellationException का मैसेज दिखेगा. (I2cbbc, b/179695417)
@ExperimentalRippleApi
को हटाया गया औरRippleAlpha
को इंटरफ़ेस के बजाय प्रॉपर्टी वाली क्लास में बदला गया. (I6df7c)- TextFieldColors इंटरफ़ेस जोड़ा गया है, ताकि अलग-अलग स्थितियों में TextField और OutlinedTextField में इस्तेमाल किए गए अलग-अलग रंगों को दिखाया जा सके. डिफ़ॉल्ट तौर पर लागू करने के लिए, TextFieldDefaults.textFieldColors और TextFieldDefaults.outlinedTextFieldColors देखें.
- TextField और OutlinedTextField में मौजूद isErrorValue पैरामीटर का नाम बदलकर isError कर दिया गया है. (I831f9, b/171305338, b/168004067)
- सुलभता के मकसद से, टैब या रेडियो बटन के कलेक्शन को मार्क करने की सुविधा देने वाला selectionGroup मॉडिफ़ायर जोड़ा गया (Ie5c29)
LazyListState.animateScrollToItem जोड़ें
इस तरीके से, सूची में किसी खास आइटम पर आसानी से स्क्रोल किया जा सकता है. (I4bfd7)
ScrollableState.smoothScrollBy()
का नाम बदलकरanimateScrollBy()
कर दिया गयाLazyListState.snapToItemIndex()
का नाम बदलकरscrollToItem()
कर दिया गयाScrollState.smoothScrollTo()
का नाम बदलकरanimateScrollTo()
(I35ded) कर दिया गया@ReadOnlyComposable
के साथ मार्क किए गए सभी कॉम्पोज़ेबल की पुष्टि, अब कंपाइल करने के समय की जाती है. इससे यह पक्का किया जा सकता है कि वे सिर्फ़ दूसरे@ReadOnlyComposables
को कॉल करते हैं (I58961)TargetAnimation API को हटा दिया गया है. (If47d1, b/177457083)
Modifier.verticalScroll()/horizontalScroll() में स्क्रोल की स्थिति को अब Ints के साथ दिखाया जाता है (I81298)
smoothScrollBy और scrollBy तरीकों के पैकेज को
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) में बदल दिया गयाFlingConfig का नाम बदलकर FlingBehavior कर दिया गया है. अब इसमें, पहले से तय किए गए डेके के बजाय, निलंबित किए गए ऐनिमेशन को पसंद के मुताबिक बनाया जा सकता है. (I02b86, b/175294473)
साइज़ मॉडिफ़ायर के नाम बदले गए. Modifier.width/height/size का नाम बदलकर, requiredWidth/requiredHeight/requiredSize कर दिया गया. Modifier.preferredWidth/preferredHeight/preferredSize का नाम बदलकर width/height/size कर दिया गया है. (I5b414)
defaultMinSizeConstraints का नाम बदलकर defaultMinSize कर दिया गया है. (I4eaae)
ओरिएंटेशन को फ़ाउंडेशन पैकेज में ले जाया गया है. VelocityTracker को ui.gesture से ui.input.pointer में ले जाया गया. (Iff4a8, b/175294473)
drawerState.open() और drawerState.close() अब सस्पेंड फ़ंक्शन हैं. rememberCoroutineScope() का इस्तेमाल करके, कॉम्पोज़िशन का स्कोप पाएं, ताकि उन्हें कॉल किया जा सके (I16f60, b/175294473)
Providers का नाम बदलकर CompositionLocalProvider कर दिया गया है
- कॉम्पोज़िशन कंस्ट्रक्टर अब कोई कुंजी पैरामीटर स्वीकार नहीं करता और इसे बंद कर दिया गया है.
- currentCompositeKeyHash को, टॉप लेवल फ़ंक्शन के बजाय, टॉप लेवल की कंपोज की जा सकने वाली प्रॉपर्टी में बदल दिया गया है.
- CompositionData और CompositionGroup को androidx.compose.runtime.tooling नेमस्पेस में ले जाया गया है
- ComposableLambda को किसी खास क्लास के बजाय इंटरफ़ेस बनाया गया है. साथ ही, इसमें अब टाइप पैरामीटर नहीं हैं.
- ComposableLambdaN को कंक्रीट क्लास के बजाय इंटरफ़ेस बनाया गया है. साथ ही, अब इसमें टाइप पैरामीटर नहीं हैं.
- snapshotFlow फ़ंक्शन को androidx.compose.runtime नेमस्पेस में ले जाया गया है
- SnapshotMutationPolicy का मर्ज करने का तरीका अब एक्सपेरिमेंटल नहीं है
@TestOnly
टॉप लेवल का clearRoots फ़ंक्शन हटा दिया गया है. अब इसकी ज़रूरत नहीं है.- keySourceInfoOf और resetSourceInfo फ़ंक्शन हटा दिए गए हैं. अब इनकी ज़रूरत नहीं है.
- Composer.collectKeySourceInformation को हटा दिया गया है. अब इसकी ज़रूरत नहीं है.
- isJoinedKey, joinedKeyLeft, और joinedKeyRight तरीके हटा दिए गए हैं. अब इनकी ज़रूरत नहीं है.
- कई टॉप लेवल एपीआई को अलग-अलग फ़ाइलों में ले जाया गया है और उन्हें फिर से व्यवस्थित किया गया है. Kotlin की फ़ाइल क्लास के सेमेंटेक्स की वजह से, इससे बाइनरी के साथ काम करने की सुविधा बंद हो जाएगी, लेकिन सोर्स के साथ काम करने की सुविधा नहीं. इसलिए, ज़्यादातर उपयोगकर्ताओं को कोई समस्या नहीं होगी.
- (I99b7d, b/177245490)
Modifier.scrollable को फिर से काम करने लायक बनाया गया है. अब यह ScrollableController क्लास के बजाय, Scrollable इंटरफ़ेस का इस्तेमाल करता है (I4f5a5, b/174485541, b/175294473)
Modifier.draggable अब सामान्य लैम्ब्डा के बजाय DraggableState स्वीकार करता है. पहले जैसा व्यवहार पाने के लिए,
rememberDraggableState { delta -> }
की मदद से स्टेटस बनाया जा सकता है (Ica70f, b/175294473)ZoomableController.smoothScaleBy और ZoomableController.stopAnimation अब सस्पेंड फ़ंक्शन हैं. (I7f970, b/177457083)
पहले से बंद किए गए कुछ एपीआई मिटाए गए (Ice5da, b/178633932)
Material API में ये बदलाव किए गए हैं:
- डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाने के लिए, Top/BottomAppBar में contentPadding पैरामीटर जोड़ा गया है.
- BackdropScaffold में पैरामीटर का क्रम बदला गया है, ताकि ज़रूरी पैरामीटर, वैकल्पिक पैरामीटर से पहले दिखें. ऐसा, एपीआई के दिशा-निर्देशों का पालन करने के लिए किया गया है.
- BottomNavigationItem में
icon
पैरामीटर कोselected
औरonClick
के बाद ले जाया गया. - BottomNavigationItem में
alwaysShowLabels
पैरामीटर का नाम बदलकरalwaysShowLabel
किया गया. - कुछ कॉम्पोनेंट में
bodyContent
पैरामीटर का नाम बदलकर सिर्फ़content
कर दिया गया. ButtonDefaults.buttonColors()
में पैरामीटर का क्रम बदला गया. कृपया ध्यान दें कि पैरामीटर का टाइप नहीं बदला है. इसलिए, इससे आपके कोड में कोई गड़बड़ी नहीं होगी. कृपया पक्का करें कि आपने नाम वाले पैरामीटर का इस्तेमाल किया हो या क्रम को मैन्युअल तरीके से अपडेट किया हो. ऐसा न करने पर, आपका कोड पहले की तरह काम नहीं करेगा.darkColors()
मेंsecondaryVariant
पैरामीटर जोड़ा गया. आम तौर पर, यह रंग गहरे रंग वाली थीम मेंsecondary
जैसा ही होता है. हालांकि, इसे एक जैसा रखने और पसंद के मुताबिक बनाने के लिए जोड़ा गया है.- सार्वजनिक एपीआई के प्लैटफ़ॉर्म से ElevationDefaults और animateElevation() को हटा दिया गया है, क्योंकि इनका आम तौर पर इस्तेमाल नहीं किया जाता था या ये काम के नहीं थे.
Slider
में मौजूदonValueChangeEnd
का नाम बदलकरonValueChangeFinished
किया गया और इसे वैल्यू के बिना छोड़ने की अनुमति दी गई.- एक जैसा नाम रखने के लिए,
Snackbar
में मौजूदtext
पैरामीटर का नाम बदलकरcontent
किया गया. - डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाने के लिए,
DropdownMenuItem
मेंcontentPadding
पैरामीटर जोड़ा गया. साथ ही,content
कोRowScope
का एक्सटेंशन बनाया गया. ModalDrawerLayout
का नाम बदलकरModalDrawer
किया गया.BottomDrawerLayout
का नाम बदलकरBottomDrawer
किया गया.- (I1cc66)
BasicTextField अब पसंद के मुताबिक बनाने के लिए, कलर के बजाय ब्रश को स्वीकार करता है (I83a36)
imageResource और vectorResource, अब ImageBitmap और ImageVector के साथ काम करने वाले एक्सटेंशन फ़ंक्शन हैं. load{Image,Vector,Font}Resource फ़ंक्शन मिटा दिए गए हैं. (I89130)
Indication#createIndication() को Indication#rememberUpdatedIndication(InteractionState) में बदला गया है. साथ ही, IndicationInstance#drawIndication() से InteractionState पैरामीटर को हटा दिया गया है. IndicationInstance को सिर्फ़ विज़ुअल इफ़ेक्ट दिखाने की ज़िम्मेदारी होनी चाहिए. साथ ही, InteractionState में हुए बदलावों के जवाब में ऐनिमेशन लॉन्च करने या स्टेटस लिखने की ज़िम्मेदारी नहीं होनी चाहिए. ये ऐनिमेशन और स्टेटस लिखने की प्रोसेस,
rememberUpdatedIndication()
के अंदर होनी चाहिए.Modifier.indication
में मौजूदindication
पैरामीटर को भी ज़रूरी पैरामीटर में बदल दिया गया था. (Ic1764, b/152525426)
गड़बड़ियां ठीक की गईं
- TextField पर मौजूद, पिछले SoftwareKeyboardController इंटरफ़ेस की जगह लेने के लिए, नया LocalSoftwareKeyboardController कॉम्पोज़िशन लोकल एपीआई जोड़ा गया है. (I658b6, b/168778053)
वर्शन 1.0.0-alpha12
10 फ़रवरी, 2021
androidx.compose.material:material-*:1.0.0-alpha12
रिलीज़ हो गया है. 1.0.0-alpha12 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Modifier.pointerInput के लिए, अब याद रखने की सुविधा की ज़रूरत है, ताकि यह पता चल सके कि नई डिपेंडेंसी के लिए, पॉइंटर इनपुट का पता लगाने वाले कोरुटाइन को कब रीस्टार्ट करना चाहिए. (I849cd)
- BottomDrawerLayout और ListItem को @ExperimentalMaterialApi (Id766e) के तौर पर मार्क किया गया है
- PaddingValues.Absolute जोड़ा गया है. इसका इस्तेमाल, PaddingValues स्वीकार करने वाले एपीआई में किया जा सकता है. (Ia5f30)
- onImeActionPerformed का इस्तेमाल नहीं किया जाना चाहिए. इसके बजाय, KeyboardActions का इस्तेमाल करें (If0bbd, b/179071523)
- ImageBitmap और ImageVector के नाम रखने के तरीकों से बेहतर तरीके से मैच करने के लिए, ImagePainter का नाम बदलकर BitmapPainter कर दिया गया है, ताकि यह VectorPainter के साथ मिलता-जुलता हो. (Iba381, b/174565889)
- Animatable.snapTo और Animatable.stop अब सस्पेंड फ़ंक्शन हैं (If4288)
- ComponentActivity.setContent को androidx.activity:activity-compose मॉड्यूल में, androidx.activity.compose.setContent में ले जाया गया है. (Icf416)
- Destructuring और copy() तरीकों को कई क्लास से हटा दिया गया है, जहां इनका इस्तेमाल बहुत कम किया जाता था. (I26702, b/178659281)
- ModalBottomSheetState में halfExpand() और expand() को इंटरनल बनाएं (Ic914e)
- Indication#createInstance को @Composable में बदला गया. साथ ही, LocalIndication को Indication में बदला गया, न कि () -> Indication. (I5eeea, b/157150564)
- AlertDialog और DropdownMenu को फ़िलहाल सिर्फ़ Android के लिए उपलब्ध कराया गया है. मौजूदा पॉप-अप को और बेहतर तरीके से कॉन्फ़िगर करने के लिए, DropdownMenu में PopupProperties पैरामीटर जोड़ा गया. (I9c443)
- loadFontResource का इस्तेमाल नहीं किया जा सकता. इसके बजाय, fontResource का इस्तेमाल करें. imageResource, loadImageResource, vectorResource, और loadVectorResource अब काम नहीं करते. इसके बजाय, painterResource का इस्तेमाल करें. (I6b809)
- DropdownMenu से
toggle
औरtoggleModifier
पैरामीटर हटाए गए. साथ ही,dropdownModifier
,dropdownOffset
, औरdropdownContent
का नाम बदलकर क्रमशःmodifier
,offset
, औरcontent
कर दिया गया. DropdownMenu अबPopup
की तरह ही काम करता है. इसमें मेन्यू की पोज़िशन के लिए, पैरंट लेआउट का इस्तेमाल किया जाता है. ज़्यादातर मामलों में,toggle
कोDropdownMenu
के सिबलिंग के तौर पर ले जाया जा सकता है और दोनों कोBox
में रैप किया जा सकता है. इस एपीआई के इस्तेमाल के बारे में ज़्यादा जानकारी के लिए, दस्तावेज़ में अपडेट किया गया सैंपल देखें. (I884fb) - toIntPx() फ़ंक्शन का नाम बदलकर roundToPx() कर दिया गया. (I9b7e4, b/173502290)
- IntBounds का नाम बदलकर IntRect कर दिया गया और एपीआई को बेहतर बनाया गया. (I1f6ff)
- सेमेटिक्स ऐक्शन को बड़ा और छोटा करने की सुविधा जोड़ी गई. ModalBottomSheetState में, expand और halfExpand को जोड़ा गया (Ib5064)
- Modifier.dragGestureFilter को बंद कर दिया गया है. इसके बजाय,
Modifier.pointerInput { detectDragGestures (...)}
का इस्तेमाल करें. इसके अलावा, एक अक्ष पर खींचने और छोड़ने के लिए Modifier.draggable का इस्तेमाल करें (I0ba93, b/175294473) - ऐंबियंट -> कॉम्पोज़िशनलोकल के नाम से मेल खाने के लिए, ऐंबियंट का नाम बदला गया. ऐंबियंट को पहले AmbientFoo कहा जाता था. अब CompositionLocals को LocalFoo कहा जाता है. (I2d55d)
- चुने गए हिस्से को फ़ाउंडेशन पर ले जाया गया. (I7892b)
- हमने पहले
state { 0 }
कॉम्पोज़ेबल को हटा दिया था और अबremember { mutableStateOf(0) }
जैसे कॉम्पोज़ेबल के इस्तेमाल का प्रमोशन कर रहे हैं. इसी तरह, हमsavedInstanceState { 0 }
कॉम्पोज़ेबल को हटाने जा रहे हैं. इसके बजाय, आपकोrememberSaveable { mutableStateOf(0) }
का इस्तेमाल करना चाहिए. अगर MutableState में इस्तेमाल किए गए टाइप को बंडल में सेव किया जा सकता है, तो यह अपने-आप सेव और वापस आ जाएगा. अगर पहले कस्टम सेवर ऑब्जेक्ट पास किया जा रहा था, तो अब आपको rememberSaveable के नए ओवरलोड का इस्तेमाल करना होगा. इसमेंstateSaver
पैरामीटर है. इस्तेमाल इस तरह दिखेगा:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - सुलभता के लिए, प्रोग्रेस बार के उन हिस्सों को मार्क करने के लिए ProgressBarRangeInfo.Indeterminate जोड़ा गया है जो पूरी तरह से पूरे नहीं हुए हैं (I6fe05)
@ComposableContract को बंद कर दिया गया है. इसके बजाय, तीन और खास एनोटेशन इस्तेमाल किए जा सकते हैं.
@ComposableContract(restartable = false)
,@NonRestartableComposable
हो गया है@ComposableContract(readonly = true)
,@ReadOnlyComposable
हो गया है@ComposableContract(preventCapture = true)
,@DisallowComposableCalls
हो गया है@ComposableContract(tracked = true)
को हटा दिया गया है.- (I60a9d)
emptyContent()
और(@Composable () -> Unit).orEmpty()
की सुविधाओं को बंद कर दिया गया है, क्योंकि अब इनका परफ़ॉर्मेंस पर कोई अच्छा असर नहीं पड़ता या इनसे कोई फ़ायदा नहीं मिलता (I0484d)rememberSavedInstanceState() का नाम बदलकर rememberSaveable() कर दिया गया है. साथ ही, इसे androidx.compose.runtime.saveable पैकेज में ले जाया गया है. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), autoSaver को androidx.compose.runtime.savedinstancestate से androidx.compose.runtime.saveable में ले जाया गया (I77fe6)
आरटीएल (राइट टू लेफ़्ट) दिशा में आकार को अपने-आप मिरर करने की सुविधा देने के लिए, RounderCornerShape, CutCornerShape, और CornerBasedShape के पैरामीटर के नाम बदले गए हैं. अब इन पैरामीटर के नाम, left/right से start/end हो गए हैं. AbsoluteRounderCornerShape और AbsoluteCutCornerShape को उन मामलों के लिए लॉन्च किया गया था जिनमें अपने-आप मिरर होने की सुविधा नहीं चाहिए. (I61040, b/152756983)
Tab के
text
औरicon
पैरामीटर और BottomNavigationItem केlabel
पैरामीटर को शून्य किया जा सकता है. इससे, इन पैरामीटर के मौजूद होने या न होने पर, कॉम्पोनेंट के व्यवहार को बेहतर तरीके से बताया जा सकता है. ऐसा इसलिए, क्योंकि इन पैरामीटर से कॉम्पोनेंट के साइज़ और लेआउट पर असर पड़ता है. अगर फ़िलहाल कोई टेक्स्ट / आइकॉन / लेबल दिखाने के लिएemptyContent()
पास किया जा रहा है, तो आपको इसके बजायnull
का इस्तेमाल करना चाहिए. (I57ed4)contentColorFor कलर पैरामीटर का नाम बदलकर backgroundColor (I5bb67) कर दिया गया
TabDefaults को बंद कर दिया गया है और इसे TabRowDefaults से बदल दिया गया है. (I0f189)
ColorMatrix API को जोड़ा गया है. इसका इस्तेमाल, सोर्स कॉन्टेंट की आरजीबी वैल्यू में बदलाव करने के लिए किया जाता है. ColorFilter API को इंटरफ़ेस बनाने और PathEffect को लागू करने के लिए फिर से तैयार किया गया है. (Ica1e8)
AnimatedValue/Float का इस्तेमाल अब नहीं किया जा सकता. इसके बजाय, कृपया Animatable का इस्तेमाल करें. (I71345, b/177457083)
SemanticsProperties.PaneTitle API जोड़ें. (I20d5a)
Tab और BottomNavigationItem में चालू पैरामीटर जोड़े गए, ताकि उन पर क्लिक न किया जा सके. BottomNavigationItem को RowScope.BottomNavigationItem में बदला गया, ताकि एपीआई में लेआउट की ज़रूरी शर्तों को बेहतर तरीके से बताया जा सके. (Id683d)
tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter, और pressIndicaitonGestureFilter अब काम नहीं करते. इसके बजाय, detectTapGestures फ़ंक्शन के साथ Modifier.clickable या Modifier.pointerInput का इस्तेमाल करें. (I6baf9, b/175294473)
Shape के createOutline फ़ंक्शन में layoutDirection पैरामीटर जोड़ें. इससे लेआउट के डायरेक्शन के हिसाब से आकार बनाए जा सकते हैं. (I57c20, b/152756983)
Recomposer.current()
को हटा दिया गया है. [खास जानकारी]ComposeView अब डिफ़ॉल्ट रूप से, विंडो के लिए ViewTreeLifecycleOwner के ज़रिए, विंडो के स्कोप वाले रीकंपोज़र को धीरे-धीरे बनाता है. होस्ट के लाइफ़साइकल के रुकने पर, फिर से कॉम्पोज़ करने की प्रोसेस और withFrameNanos पर आधारित ऐनिमेशन टिक रुक जाते हैं. (I38e11)
गड़बड़ियां ठीक की गईं
- आइकॉन अब अपने साइज़ के हिसाब से स्केल हो जाएगा. इसके लिए, उस पर लागू किए गए साइज़ मॉडिफ़ायर का इस्तेमाल किया जाएगा. उदाहरण के लिए,
Icon(.., modifier = Modifier.size(50.dp)
अब 50x50dp के स्पेस में दिखेगा. (Ib2ba9, b/178796190)
वर्शन 1.0.0-alpha11
28 जनवरी, 2021
androidx.compose.material:material-*:1.0.0-alpha11
रिलीज़ हो गया है. 1.0.0-alpha11 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- कुछ Material API को
@Experimental
के तौर पर इस्तेमाल न करने का प्रमोशन करता है (I5d20e) - इमेज और आइकॉन में, कॉन्टेंट का ब्यौरा पैरामीटर जोड़ा गया है. इसका इस्तेमाल, सुलभता सेवाओं के बारे में जानकारी देने के लिए किया जाता है (I2ac4c)
- Material के स्टेटफ़ुल पैरामीटर इंटरफ़ेस में बदलाव करके,
State<T>
दिखाने वाले @Composable फ़ंक्शन जोड़ता है. ऐनिमेट किए जा सकने वाले एलिमेंट को स्टेटस में बदलने के लिए,Animatable.asState()
जोड़ता है. साथ ही, animateElevation को Animatable पर निलंबित किए जाने वाले एक्सटेंशन में बदलता है. (If613c) - Snackbar, SnackbarHost, SnackbarHostState अब
@ExperimentalMaterialAPI
नहीं हैं (Id1fb5) - टाइपोग्राफ़ी, शेप, और TabPosition को डेटा क्लास नहीं माना जाएगा. जनरेट किए गए टाइपोग्राफ़ी और शेप को बदलने के लिए, टाइपोग्राफ़ी और शेप के लिए कॉपी फ़ंक्शन जोड़ा गया है. (I40037)
- पहले से बंद किए गए कुछ Material एपीआई (Ifaa25) मिटाए गए
गड़बड़ियां ठीक की गईं
- SideEffect और DisposableEffect API के पक्ष में, onCommit, onDispose, और onActive को बंद कर दिया गया है (If760e)
- TransitionDefinition पर आधारित ट्रांज़िशन की सुविधा बंद कर दी गई है (I0ac57)
- updateTransition में Initial State का इस्तेमाल अब किया जा सकता है (Ifd51d)
- WithConstraints को BoxWithConstraints के तौर पर फिर से तैयार किया गया और foundation.layout में ले जाया गया. (I9420b, b/173387208)
scrollBy फ़ंक्शन के बिना काम करने वाले वर्शन को बंद करना और scrollTo फ़ंक्शन के बिना काम करने वाले वर्शन को हटाना
हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, 'रोकें' फ़ंक्शन का इस्तेमाल करें और स्क्रोल पूरा होने का इंतज़ार करें. इस बदलाव के तहत, हम इन फ़ंक्शन के ऐसे वर्शन को बंद कर रहे हैं जो निलंबित नहीं हैं और/या हटा रहे हैं. (Ie9ced)
smoothScrollBy फ़ंक्शन के बिना इस्तेमाल करने पर रोक लगाना हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, सस्पेंड फ़ंक्शन का इस्तेमाल करें और स्क्रोल पूरा होने का इंतज़ार करें. इस बदलाव के तहत, हम इन फ़ंक्शन के ऐसे वर्शन बंद कर रहे हैं जिन्हें निलंबित नहीं किया गया है. (I12880)
ComposeContentTestRule
को पेश किया गया, जोComposeTestRule
को बढ़ाता है औरsetContent
को परिभाषित करता है.setContent
कोComposeTestRule
से हटा दिया गया है. फ़ैक्ट्री मेथडcreateEmptyComposeRule()
जोड़ा गया है, जोComposeTestRule
दिखाता है और आपके लिए कोई गतिविधि शुरू नहीं करता. इसका इस्तेमाल तब करें, जब आपको टेस्ट के दौरान अपनी गतिविधि लॉन्च करनी हो. उदाहरण के लिए,ActivityScenario.launch
(I9d782, b/174472899) का इस्तेमाल करकेButton और FloatingActionButton में इस्तेमाल किए गए रिपल को, अब AmbientIndication की मदद से नया इंडिकेशन देकर पसंद के मुताबिक नहीं बनाया जा सकता. इन कॉम्पोनेंट को पसंद के मुताबिक बनाने के लिए, ऐसा कभी नहीं किया जाना चाहिए था. इससे अब ये कॉम्पोनेंट, Material के दूसरे कॉम्पोनेंट के साथ मिलते-जुलते हो जाते हैं. किसी ऐप्लिकेशन में रिपल को पसंद के मुताबिक बनाने के लिए, RippleTheme देखें. (I546c5)
animateAsState अब animateFooAsState हो गया है. इसमें Foo, ऐनिमेशन वाले वैरिएबल का टाइप होता है. जैसे, फ़्लोट, डीपी, ऑफ़सेट वगैरह (Ie7e25)
BasicTextField को
decorationBox
नाम का एक नया पैरामीटर मिला है. इसकी मदद से, टेक्स्ट फ़ील्ड में आइकॉन, प्लेसहोल्डर, लेबल वगैरह जोड़े जा सकते हैं. साथ ही, इसके हिट टारगेट एरिया को बढ़ाया जा सकता है. (I16996)एक गड़बड़ी को ठीक किया गया है, जिसकी वजह से मटीरियल टेक्स्ट फ़ील्ड की चौड़ाई को 280.dp से कम पर सेट नहीं किया जा सकता था (I78373)
Modifier.draggable से canDrag पैरामीटर हटा दिया गया है (Ic4bec, b/175294473)
displaySize को हटाएं, क्योंकि इसका इस्तेमाल नहीं किया जाना चाहिए. आम तौर पर, onRoot() या कम से कम विंडो साइज़ का इस्तेमाल करना बेहतर होता है. (I62db4)
अब सरफ़ेस में कई लेआउट चाइल्ड हो सकते हैं. (I66a92, b/144488459)
invalidate और compositionReference() फ़ंक्शन अब काम नहीं करते. इनकी जगह, currentRecomposeScope और rememberCompositionReference फ़ंक्शन का इस्तेमाल करें. (I583a8)
PopupPositionProvider को बदलकर, ग्लोबल निर्देशांक के बजाय विंडो के हिसाब से निर्देशांक का इस्तेमाल किया जा सके. parentGlobalBounds का नाम बदलकर anchorBounds कर दिया गया है. साथ ही, windowGlobalBounds को
windowSize: IntSize
में बदल दिया गया है (I2994a)'कुल समय' और 'अपटाइम' को लंबे मिलीसेकंड से बदल दिया जाएगा. साथ ही, इस चरण से उन क्लास पर पॉइंटर इनपुट की डिपेंडेंसी हट जाएगी. (Ia33b2, b/175142755, b/177420019)
FlingConfig को स्वीकार करने वाले AnimatedFloat.fling को हटा दिया गया है. इसके बजाय, कृपया suspend Animatable.animateDecay का इस्तेमाल करें. (I4659b, b/177457083)
क्लिक किए जा सकने वाले, टॉगल किए जा सकने वाले, और चुने जा सकने वाले आइटम अब कॉम्पोज़िशन के बाहर बनाए जा सकते हैं (I0a130, b/172938345, b/175294473)
Easing को फ़ंक्शनल इंटरफ़ेस (Ib14e5) में बदल दिया गया है
ScrollableColumn/Row एलिमेंट का इस्तेमाल बंद कर दिया गया है. अगर आपके पास ज़्यादा स्क्रोल करने वाला कॉन्टेंट है, तो ScrollableColumn का इस्तेमाल करने से कम फ़ायदा मिलता है. इसकी तुलना में, LazyColumn का इस्तेमाल करने से ज़्यादा फ़ायदा मिलता है. ऐसा इसलिए, क्योंकि LazyColumn की मदद से सिर्फ़ दिखने वाले एलिमेंट को कंपोज/मेज़र/ड्रॉ किया जा सकता है. हमने ScrollableColumn और ScrollableRow एलिमेंट का इस्तेमाल बंद करने का फ़ैसला लिया है. ऐसा इसलिए किया गया है, ताकि उपयोगकर्ता इन एलिमेंट का इस्तेमाल न करें. इसके बजाय, हम LazyColumn और LazyRow एलिमेंट का इस्तेमाल बढ़ावा देना चाहते हैं. उपयोगकर्ता अब भी यह तय कर सकते हैं कि उन्हें लेज़ी लोडिंग की ज़रूरत नहीं है और सीधे तौर पर मॉडिफ़ायर का इस्तेमाल करना है. इसके लिए, इस तरह का इस्तेमाल करें: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid के दायरे के लिए, नई
items(count: Int)
फ़ैक्ट्री मेथड.items(items: List)
औरitemsIndexed(items: List)
अब एक्सटेंशन फ़ंक्शन हैं. इसलिए, इनका इस्तेमाल करने पर, आपको इन्हें मैन्युअल तरीके से इंपोर्ट करना होगा. ऐरे के लिए नए एक्सटेंशन ओवरलोड:items(items: Array)
औरitemsIndexed(Array)
(I803fc, b/175562574)एक्सपेरिमेंट के तौर पर उपलब्ध monotonicFrameAnimationClockOf तरीकों को हटा दिया गया (Ib753f, b/170708374)
ग्लोबल निर्देशांक के पुराने तरीकों को बंद कर दिया गया है और विंडो पर आधारित निर्देशांक के नए तरीके जोड़े गए हैं. (Iee284)
Modifier.toolingGraphicsLayer जोड़ा गया है. यह जांच चालू होने पर, ग्राफ़िक लेयर मॉडिफ़ायर जोड़ता है. (I315df)
FocusRequester.createRefs को अब एक्सपेरिमेंट के तौर पर मार्क किया गया है, क्योंकि इसमें बदलाव हो सकता है. (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden का नाम बदलकर invisibleToUser कर दिया गया और उसे @ExperimentalComposeUiApi के तौर पर मार्क किया गया. AccessibilityRangeInfo का नाम बदलकर ProgressBarRangeInfo कर दिया गया. stateDescriptionRange का नाम बदलकर progressBarRangeInfo कर दिया गया. AccessibilityScrollState का नाम बदलकर ScrollAxisRange कर दिया गया. horizontalAccessibilityScrollState का नाम बदलकर horizontalScrollAxisRange कर दिया गया. verticalAccessibilityScrollState का नाम बदलकर verticalScrollAxisRange कर दिया गया. (Id3148)
टेस्टिंग में TestCoroutineDispatcher का इस्तेमाल करना (I532b6)
वेक्टर ग्राफ़िक के रूट पर लागू किए गए टिनटिंग को पार्स करने के लिए, वेक्टर ग्राफ़िक एपीआई को अपडेट किया गया. (Id9d53, b/177210509)
वर्शन 1.0.0-alpha10
13 जनवरी, 2021
androidx.compose.material:material-*:1.0.0-alpha10
रिलीज़ हो गया है. 1.0.0-alpha10 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- कॉम्पोनेंट के हिस्सों और गणितीय ऑपरेशन के लिए, वेग में बदलाव किया गया. (Ib0447)
@ExperimentalTesting
को@ExperimentalTestApi
में बदला गया, ताकि यह एपीआई के मिलते-जुलते एक्सपेरिमेंटल एनोटेशन (Ia4502, b/171464963) के मुताबिक हो- Position का नाम बदलकर DpOffset कर दिया गया और getDistance() को हटा दिया गया (Ib2dfd)
- Color.useOrElse() को Color.takeOrElse() (Ifdcf5) में बदला गया
- फ़ाउंडेशन Strings.kt में टॉगल जोड़ें (I4a5b7, b/172366489)
- FlowRow और FlowColumn का इस्तेमाल बंद कर दिया गया है. इसके बजाय, कृपया कस्टम लेआउट का इस्तेमाल करें. (I09027)
- Modifier.focus() और Modifier.focusRequester() अब काम नहीं करते. इसके बजाय, Modifier.focusModifier() और Modifier.focusReference() का इस्तेमाल करें. (I75a48, b/175160751, b/175160532, b/175077829)
- nativeClass को ui मॉड्यूल में ले जाया गया और इसे इंटरनल बनाया गया. equals लागू करने के लिए, नेटिव क्लास के इस्तेमाल को अपडेट किया गया है, ताकि इसके बजाय 'is MyClass' का इस्तेमाल किया जा सके. (I4f734)
गड़बड़ियां ठीक की गईं
- बंद और रीड-ओनली टेक्स्ट फ़ील्ड के लिए सहायता जोड़ी गई (I35279, b/171040474, b/166478534)
animate()
को अबanimateAsState()
से बदल दिया गया है, जोT
के बजायState<T>
दिखाता है. इससे परफ़ॉर्मेंस बेहतर होती है, क्योंकि अमान्य करने के दायरे को उस जगह तक सीमित किया जा सकता है जहां स्टेट वैल्यू को पढ़ा जाता है. (Ib179e)- Semantics role API जोड़ें और SemanticsModifier में क्लिक किए जा सकने वाले, चुने जा सकने वाले, और टॉगल किए जा सकने वाले पैरामीटर के तौर पर भूमिका जोड़ें. Modifier.progressSemantics को बदला गया, ताकि स्लाइडर भी इसका इस्तेमाल कर सके. (I216cd)
वर्शन 1.0.0-alpha09
16 दिसंबर, 2020
androidx.compose.material:material-*:1.0.0-alpha09
रिलीज़ हो गया है. 1.0.0-alpha09 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Modifier.swipeable में, सेटल होने वाले ऐनिमेशन को मैन्युअल तरीके से ट्रिगर करने और खींचने-छोड़ने की सुविधा के लिए एपीआई जोड़ा गया (Iaa17a, b/162408885)
- ButtonConstants जैसे *Constants ऑब्जेक्ट के नाम बदलकर, ButtonDefaults जैसे Defaults पर खत्म किए गए. यह इन नए ऑब्जेक्ट की प्रॉपर्टी से, ज़रूरत से ज़्यादा
default
प्रीफ़िक्स भी हटा देता है. (Ibb915, b/159982740) Compose, प्रॉपर्टी पाने वाले फ़ंक्शन के साथ काम करता है, जो कॉम्पोज़ेबल को कॉल कर सकते हैं. इस सुविधा का इस्तेमाल जारी रहेगा. हालांकि, प्रॉपर्टी के गेट्टर को @Composable के तौर पर घोषित करने का सिंटैक्स बदल रहा है.
ऐसा करने के लिए, प्रॉपर्टी में एनोटेशन जोड़ने का सिंटैक्स अब काम नहीं करता:
@Composable val someProperty: Int get() = ...
ऐसा करने के लिए, प्रॉपर्टी के गटर पर एनोटेट करें. यह सिंटैक्स अब सही है:
val someProperty: Int @Composable get() = ...
दोनों सिंटैक्स कुछ समय तक काम करेंगे, लेकिन काम न करने वाला पुराना सिंटैक्स, आखिरकार कंपाइल करने से जुड़ी गड़बड़ी बन जाएगा. (Id9197)
रिपल एपीआई वाली
androidx.compose.material:material-ripple
लाइब्रेरी जोड़ी गई है, ताकि अन्य Material लाइब्रेरी के बिना ही इंटरैक्टिव कॉम्पोनेंट बनाए जा सकें. rememberRippleIndication को बंद कर दिया गया है और इसे rememberRipple से बदल दिया गया है. (Ibdf11)
गड़बड़ियां ठीक की गईं
- ऑफ़सेट मॉडिफ़ायर में मौजूद Lambdas, अब Float के बजाय IntOffset दिखाते हैं. (Ic9ee5, b/174137212, b/174146755)
ShaderBrush को फिर से तैयार किया गया है, ताकि ड्रॉइंग एनवायरमेंट का साइज़ तय करने की जानकारी उपलब्ध होने पर, शेडर इंस्टेंस को धीरे-धीरे बनाया जा सके. यह उन ग्रेडिएंट को तय करने के लिए मददगार है जो कंपोज़िशन के समय, किसी कंपोज़ेबल के पूरे ड्रॉइंग बाउंड पर कब्जा कर लेते हैं. इसके लिए, कस्टम DrawModifier को लागू करने की ज़रूरत नहीं होती.
Gradient ऑब्जेक्ट पर फ़ैक्ट्री के तरीकों के पक्ष में, ग्रेडिएंट फ़ंक्शन के कन्स्ट्रक्टर एपीआई का इस्तेमाल बंद कर दिया गया है. (I511fc, b/173066799)
Modifier.focusObserver अब काम नहीं करता. इसके बजाय, Modifier.onFocusChanged या Modifier.onFocusEvent का इस्तेमाल करें (I30f17, b/168511863, b/168511484)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed, और LazyRowForIndexed फ़ंक्शन का इस्तेमाल बंद करें. इसके बजाय, LazyColumn और LazyRow का इस्तेमाल करें (I5b48c)
Dp.VectorConverter, Position.VectorConverter वगैरह को ऐनिमेशन-कोर में ले जाया गया है. साथ ही, पुराने VectorConveters (If0c4b) को बंद कर दिया गया है
ऑटोमैटिक भरने की सुविधा देने वाला एपीआई, अब एक्सपेरिमेंट के तौर पर उपलब्ध है. इसके लिए, आपको ऑप्ट-इन करना होगा (I0a1ec)
FocusRequester इंस्टेंस बनाने के लिए, डेस्ट्रक्चरिंग डिक्लेरेशन जोड़ना (I35d84, b/174817008)
accessibilityLabel का नाम बदलकर contentDescription कर दिया गया है. accessibilityValue का नाम बदलकर stateDescription कर दिया गया है. (I250f2)
InfiniteRepeatableSpec बनाने के लिए नया infiniteRepeatable फ़ंक्शन (I668e5)
Material स्पेसिफ़िकेशन के मुताबिक, ड्रॉपडाउन मेन्यू की पोज़िशनिंग में थोड़ा बदलाव किया गया है. (I34c72, b/168594123)
TextFields के लिए InteractionState की सुविधा जोड़ी गई है. (I61d91)
Modifier.clearAndSetSemantics जोड़ा गया, ताकि वंशजों के सेमेंटिक को हटाया जा सके और नए सेट किए जा सकें. (I277ca)
ContentDrawScope को DrawScope के साथ रखने के लिए, ui-graphics module में ले जाया गया. (Iee043, b/173832789)
वर्शन 1.0.0-alpha08
2 दिसंबर, 2020
androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
, और androidx.compose.material:material-icons-extended:1.0.0-alpha08
रिलीज़ हो गए हैं. 1.0.0-alpha08 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- MaterialTheme अब चुनने के लिए दिए गए हैंडल और चुनी गई चीज़ के बैकग्राउंड के लिए सही रंग सेट करता है. मटीरियल डिज़ाइन का इस्तेमाल न करने वाले ऐप्लिकेशन, चुनने के लिए इस्तेमाल किए जाने वाले रंगों को पसंद के मुताबिक बनाने के लिए, AmbientTextSelectionColors का मैन्युअल तरीके से इस्तेमाल कर सकते हैं. (I1e6f4, b/139320372, b/139320907)
- Compose के दिशा-निर्देशों के मुताबिक, कॉम्पोज़ेबल लैंब्डा पैरामीटर के नाम और पोज़िशन की जांच करने के लिए, लिंट की जांच जोड़ी गई है.
हमने कुछ एपीआई को भी माइग्रेट किया है. इनमें, लैम्ब्डा फ़ंक्शन के आखिर में
children
के तौर पर इस्तेमाल किए गए नाम कोcontent
में बदला गया है. यह बदलाव, लिंट की जांच और दिशा-निर्देशों के मुताबिक किया गया है. (Iec48e) - VectorAsset का नाम बदलकर ImageVector किया गया है एपीआई काउंसिल के दिशा-निर्देशों के मुताबिक, VectorAsset को ImageVector की इनर क्लास बनाने के लिए, इसे Builder में ले जाया गया है और इसका नाम बदल दिया गया है. काम करने के लिए, ImageVector.Builder से लिंक करने के लिए, VectorAssetBuilder का टाइपअलाइस जोड़ा गया. (Icfdc8)
- ImageAsset और उससे जुड़े तरीकों का नाम बदलकर ImageBitmap कर दिया गया. (Ia2d99)
- फ़ाउंडेशन सिमैंटिक्स प्रॉपर्टी को यूज़र इंटरफ़ेस (I6f05c) में ले जाया गया
fun RippleIndication()
को बंद कर दिया गया है और अन्य एपीआई के साथ एक जैसा रखने के लिए, इसेrememberRippleIndication()
से बदल दिया गया है. (Id8e2c)- BasicTextField, TextField, और OutlinedTextField में एक लाइन वाला पैरामीटर जोड़ा गया. टेक्स्ट फ़ील्ड को हॉरिज़ॉन्टल तौर पर स्क्रोल की जा सकने वाली एक लाइन बनाने के लिए, इस पैरामीटर को 'सही' पर सेट करें. (I57004, b/168187755)
गड़बड़ियां ठीक की गईं
- सिमेंटिक ऐक्शन 'खारिज करें' जोड़ें (I2b706)
- DrawModifier एपीआई को androidx.compose.ui पैकेज से androidx.compose.ui.draw पैकेज में ले जाया गया. DrawModifierDeprecated.kt फ़ाइल बनाई गई है, ताकि इस्तेमाल में न होने वाले एपीआई से मौजूदा एपीआई पर माइग्रेट करने में मदद करने के लिए, टाइप के दूसरे नाम/सहायक तरीके शामिल किए जा सकें. (Id6044, b/173834241)
- Modifier.drawLayer का नाम बदलकर Modifier.graphicsLayer कर दिया गया है. साथ ही, एपीआई के सुझाव के मुताबिक, इससे जुड़ी क्लास को GraphicsLayer में अपडेट कर दिया गया है. (I0bd29, b/173834241)
<T>
को SubcomposeLayout के एलान से हटा दिया गया था. अब किसी टाइप को बताए बिना भी इसका इस्तेमाल किया जा सकता है. (Ib60c8)- drawLayer के लिए, ज़्यादा सुविधा के तौर पर Modifier.scale/rotate एपीआई जोड़े गए हैं.
Modifier.drawOpacity
का नाम बदलकरModifier.alpha
किया गयाModifier.drawShadow
का नाम बदलकरModifier.shadow
किया गया (I264ca, b/173208140)
- बॉक्स के अलाइनमेंट पैरामीटर का नाम बदलकर contentAlignment कर दिया गया है. (I2c957)
- offsetPx मॉडिफ़ायर का नाम बदलकर offset कर दिया गया. अब ये स्टेट के बजाय, लैंब्डा पैरामीटर ले रहे हैं. (Ic3021, b/173594846)
- SweepGradientShader और SweepGradientBrush API को लॉन्च किया गया. (Ia22c1)
- Composable फ़ंक्शन में, मॉडिफ़ायर पैरामीटर के लिए लिंट की जांच जोड़ी गई है. यह लिंट जांच, पैरामीटर के नाम, रिटर्न टाइप, डिफ़ॉल्ट वैल्यू, और क्रम की जांच करती है, ताकि Compose के दिशा-निर्देशों के मुताबिक हो. (If493b)
- अपडेट किया गया TextFieldValue API
- TextFieldValue.composition को रीड-ओनली किया गया
- चुने गए डेटा की अमान्य रेंज की वजह से मिलने वाले अपवाद को हटाया गया (I4a675, b/172239032)
- नया
Modifier.drawLayer()
ओवरलोड जोड़ा गया. यह नए GraphicsLayerScope पर एक lambda ब्लॉक लेता है. यहां लेयर पैरामीटर को इस तरह से तय किया जाता है कि स्टेटस में बदलाव होने पर, रीकंपोज़िशन और रीलेआउट को स्किप किया जा सके. DrawLayerModifier अब अंदरूनी है, ताकि इसके लॉजिक को LayoutModifier केplaceable.placeWithLayer()
तरीके में माइग्रेट किया जा सके (I15e9f, b/173030831) Ambient
को सफ़िक्स के तौर पर इस्तेमाल करके बनाए गए ऐंबियंट को बंद कर दिया गया है. साथ ही, उन्हें ऐंबियंट के प्रीफ़िक्स वाली नई प्रॉपर्टी से बदल दिया गया है. ऐसा, ऐंबियंट और Compose API के अन्य दिशा-निर्देशों के मुताबिक किया गया है. (I33440)- मॉडिफ़ायर फ़ैक्ट्री को
@Composable
के तौर पर मार्क करने के बजाय, अंदरूनी तौर परandroidx.compose.ui.composed {}
का इस्तेमाल करने की जांच करने के लिए, लिंट की जांच जोड़ी गई है. (I3c4bc) - सेमेनटिक्स आर्ग्युमेंट mergeAllDescendants का नाम बदलकर, mergeDescendants कर दिया गया है. (Ib6250)
- टेस्ट में समय कंट्रोल (TestAnimationClock और इसका इस्तेमाल) अब एक्सपेरिमेंट के तौर पर उपलब्ध है (I6ef86, b/171378521)
- पुराने ui-test मॉड्यूल और उसके स्टब (I3a7cb) हटाएं
- TextUnit.Inherit का नाम बदलकर TextUnit.Unspecified कर दिया गया है, ताकि यह अन्य यूनिट के साथ मेल खा सके. (Ifce19)
- अलाइनमेंट इंटरफ़ेस को अपडेट किया गया और उसे काम करने लायक बनाया गया. (I46a07, b/172311734)
- LayoutIdParentData के लिए, id का नाम बदलकर layoutId कर दिया गया. Measurable.id का नाम बदलकर Measurable.layoutId कर दिया गया है. (Iadbcb, b/172449643)
वर्शन 1.0.0-alpha07
11 नवंबर, 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
, और androidx.compose.material:material-icons-extended:1.0.0-alpha07
रिलीज़ हो गए हैं. 1.0.0-alpha07 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Emphasis का इस्तेमाल बंद कर दिया गया है और इसे AmbientContentAlpha से बदल दिया गया है. AmbientContentAlpha एक आसान एब्स्ट्रैक्शन है, जो हैरारकी के किसी हिस्से के लिए पसंदीदा कॉन्टेंट का अल्फा दिखाता है. ठीक उसी तरह जैसे AmbientContentColor, पसंदीदा कॉन्टेंट का रंग दिखाता है. टेक्स्ट और आइकॉन अब डिफ़ॉल्ट रूप से AmbientContentAlpha से मौजूदा वैल्यू का इस्तेमाल करते हैं. साथ ही, अपने कॉम्पोनेंट में यही असर पाने के लिए, मैन्युअल रूप से:
color.copy(alpha = AmbientContentAlpha.current)
किया जा सकता है. ProvideEmphasis का इस्तेमाल करने के बजाय, सीधे AmbientContentAlpha के ज़रिए वैल्यू दी जा सकती है. साथ ही, EmphasisLevels की पुरानी वैल्यू को बदलने के लिए, ContentAlpha में नए डिफ़ॉल्ट लेवल का इस्तेमाल किया जा सकता है. (Idf03e, b/159017896) - androidx.compose.foundation.AmbientContentColor की जगह androidx.compose.material.AmbientContentColor जोड़ता है (I84f7b, b/172067770)
- androidx.compose.foundation.Text को हाई लेवल के थीम वाले टेक्स्ट कॉम्पोनेंट के तौर पर बदलने के लिए, androidx.compose.material.Text जोड़ता है. BasicText का इस्तेमाल, ऐसे बेसिक टेक्स्ट कॉम्पोनेंट के लिए करें जो थीम से रंग / टेक्स्ट स्टाइल का इस्तेमाल नहीं करता. (Ie6ae0)
- TextFields में maxLines जोड़ा गया (Ib2a5b)
- KeyboardOptions को स्वीकार करने के लिए TextFields को अपडेट करना (Ida7f3)
- अब ऊंचाई के ओवरले का हिसाब लगाते समय, सर्वर पूरी ऊंचाई का इस्तेमाल करता है. इसलिए, किसी दूसरे सर्वर में नेस्ट किया गया सर्वर, ओवरले को ड्रॉ करने के लिए कुल ऊंचाई का इस्तेमाल करेगा. (I7bd2b, b/171031040)
गड़बड़ियां ठीक की गईं
captureToBitmap
कोcaptureToImage
में ले जाया गया. (I86385)- फ़ाउंडेशन AmbientTextStyle, ProvideTextStyle, और AmbientContentColor अब काम नहीं करते. इसके बजाय, Material लाइब्रेरी में मौजूद नए वर्शन का इस्तेमाल करें. जो ऐप्लिकेशन Material नहीं हैं उनके लिए, आपको अपने डिज़ाइन सिस्टम के हिसाब से थीम वाले ऐसे ऐंबियंट बनाने चाहिए जिन्हें आपके कॉम्पोनेंट में इस्तेमाल किया जा सके. (I74acc, b/172067770)
- foundation.Text का इस्तेमाल बंद कर दिया गया है और इसे material.Text से बदल दिया गया है. अगर आपको कोई ऐसा बुनियादी टेक्स्ट एपीआई चाहिए जो किसी थीम की वैल्यू का इस्तेमाल न करता हो, तो androidx.compose.foundation.BasicText देखें. (If64cb)
- KeyboardOptions का नाम बदलकर ImeOptions करें (I82f36)
- KeyboardType और ImeAction को KeyboardOptions में ले जाया गया (I910ce)
- BaseTextField अब काम नहीं करता. इसके बजाय, BasicTextField का इस्तेमाल करें. (I896eb)
- ExperimentalSubcomposeLayoutApi एनोटेशन हटा दिया गया है. SubcomposeLayout का इस्तेमाल, अब @OptIn जोड़े बिना किया जा सकता है (I708ad)
- FirstBaseline और LastBaseline को androidx.compose.ui.layout पैकेज (Ied2e7) में ले जाया गया
- Icon API को अपडेट किया गया है, ताकि Color.Unspecified को टिन्ट कलर के तौर पर इस्तेमाल किया जा सके. इससे, दी गई एसेट या पेंटर को ColorFilter के बिना ड्रॉ किया जा सकेगा. पहले, Color.Unspecified का इस्तेमाल करके टिनटिंग को अनदेखा करने की कोशिश करने पर, ट्रांसफ़र किए गए डेटा को ट्रांसपैरंट कलर में टिन्ट किया जाता था. इस वजह से, डेटा को रेंडर नहीं किया जा सकता था. (I049e2, b/171624632)
- relativePaddingFrom का नाम बदलकर paddingFrom कर दिया गया. लेआउट के बाउंड से टेक्स्ट बेसलाइन तक की दूरी तय करने के लिए, paddingFromBaseline मॉडिफ़ायर जोड़ा गया है. (I0440a, b/170633813)
- SideEffect और DisposableEffect एपीआई के साथ एक जैसा बने रहने के लिए, LaunchedTask का नाम बदलकर LaunchedEffect कर दिया गया है. सबसे सही तरीकों को बढ़ावा देने के लिए, बिना विषय पैरामीटर वाले LaunchedEffect का इस्तेमाल करने की अनुमति नहीं है. (Ifd3d4)
- MeasureResult को MeasureScope से हटा दिया गया है. (Ibf96d, b/171184002)
- लेआउट से जुड़े कई सिंबल को androidx.compose.ui से androidx.compose.layout.ui में ले जाया गया. (I0fa98, b/170475424)
वर्शन 1.0.0-alpha06
28 अक्टूबर, 2020
androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
, और androidx.compose.material:material-icons-extended:1.0.0-alpha06
रिलीज़ हो गए हैं. 1.0.0-alpha06 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- androidx.compose.foundation.Icon को androidx.compose.material.Icon में ले जाया गया है. अगर आपको Material लाइब्रेरी का इस्तेमाल नहीं करना है, तो Painter के साथ Image component / Modifier.paint() का भी इस्तेमाल किया जा सकता है. (I9f622)
- अलग-अलग स्थितियों में FABs के इस्तेमाल किए गए एलिवेशन को दिखाने के लिए, FloatingActionButtonElevation जोड़ता है. डिफ़ॉल्ट तौर पर लागू करने के लिए, FloatingActionButtonConstants.defaultElevation() देखें (I2d4f5)
- SwitchColors इंटरफ़ेस जोड़ता है, ताकि अलग-अलग स्थितियों में स्विच के इस्तेमाल किए गए रंगों को दिखाया जा सके. इन रंगों को पसंद के मुताबिक बनाने के लिए, SwitchConstants.defaultColors देखें. (I93805)
- अलग-अलग स्टेटस में बटन के इस्तेमाल किए गए रंगों और ऊंचाई को दिखाने के लिए, ButtonElevation और ButtonColors इंटरफ़ेस जोड़ता है. इन पैरामीटर को पसंद के मुताबिक बनाने के लिए, ButtonConstants में डिफ़ॉल्ट फ़ंक्शन देखें. (Ic5b7b)
- अलग-अलग स्थितियों में रेडियो बटन के इस्तेमाल किए गए रंगों को दिखाने के लिए, RadioButtonColors इंटरफ़ेस जोड़ता है. अलग-अलग स्टेटस में इस्तेमाल किए जाने वाले रंगों को पसंद के मुताबिक बनाने के लिए, RadioButtonConstants.defaultColors() देखें. (I74130)
- अलग-अलग स्थितियों में चेकबॉक्स के इस्तेमाल किए गए रंगों को दिखाने के लिए, CheckboxColors इंटरफ़ेस जोड़ता है. अलग-अलग स्टेटस में इस्तेमाल किए जाने वाले रंगों को पसंद के मुताबिक बनाने के लिए, CheckboxConstants.defaultColors() देखें. (I7dbdb)
गड़बड़ियां ठीक की गईं
- मटीरियल कॉम्पोनेंट अब ऊंचाई को zIndex के तौर पर सेट नहीं करते. इसका मतलब है कि एक ही पैरंट में, बड़े शैडो साइज़ वाले बच्चे को छोटे शैडो साइज़ वाले बच्चे के ऊपर अपने-आप नहीं दिखाया जाएगा. अगर आपको अब भी इस तरह की सुविधा चाहिए, तो कृपया ज़रूरत पड़ने पर Modifier.zIndex() को मैन्युअल तरीके से सेट करें (I70417, b/170623932)
- VectorPainter को बंद करके, rememberVectorPainter का इस्तेमाल करें. इससे यह बेहतर तरीके से पता चलता है कि कॉम्पोज़ेबल एपीआई, सभी कॉम्पोज़िशन में डेटा सेव करने के लिए, 'याद रखें' फ़ंक्शन का इस्तेमाल करता है. (Ifda43)
- ComposeTestRule में ट्रांज़िशन चालू करें; ComposeTestRule से, ब्लिंक करने वाले कर्सर को चालू करने का विकल्प हटाएं. (If0de3)
- CoreTextField (I72e6d) में, एक लाइन वाले कीबोर्ड का विकल्प जोड़ा गया
- Radius API का नाम बदलकर CornerRadius कर दिया गया है, ताकि यह बेहतर तरीके से बताया जा सके कि Compose में इसका इस्तेमाल कैसे किया जाता है. दस्तावेज़ों को अपडेट किया गया, ताकि यह बताया जा सके कि नेगेटिव कोने रेडी को शून्य पर क्लैंप किया जाता है. (I130c7, b/168762961)
- DrawScope और ContentDrawScope को ऐब्स्ट्रैक्ट क्लास के बजाय, इंटरफ़ेस के तौर पर फिर से तैयार किया गया है
- DrawScope के CanvasDrawScope लागू किए गए
- CanvasScope का इस्तेमाल करने के लिए, DrawScope को फिर से लागू किया गया
- DrawScope के लिए डिपेंडेंसी को रैप करने के लिए, DrawContext बनाया गया
- DrawScope (I56f5e) पर, अब इस्तेमाल नहीं किए जा सकने वाले तरीके हटाए गए
- बॉक्स को इनलाइन फ़ंक्शन बनाया गया. (Ibce0c, b/155056091)
वर्शन 1.0.0-alpha05
14 अक्टूबर, 2020
androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
, और androidx.compose.material:material-icons-extended:1.0.0-alpha05
रिलीज़ हो गए हैं. 1.0.0-alpha05 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- पॉप-अप और डायलॉग अब पैरंट विंडो से FLAG_SECURE इनहेरिट करते हैं. इसे साफ़ तौर पर कॉन्फ़िगर करने का विकल्प भी जोड़ा गया है (I64966, b/143778148, b/143778149)
- Modifier.swipeable में, अब डिफ़ॉल्ट रूप से स्टेटस के लिए 56.dp थ्रेशोल्ड हैं (Iab825, b/168610267)
- सभी स्काफ़ोल्ड स्टेटस को @Stable के तौर पर मार्क किया गया. ScaffoldState में drawerGesturesEnabled को Scaffold में ले जाया गया. (I36645, b/168297016)
- यह स्काफ़़्ल्ड के लैम्ब्डा पैरामीटर से, शून्य वैल्यू वाले पैरामीटर को हटा देता है. किसी पैरामीटर के लिए कोई कॉन्टेंट न दिखाने के लिए, emptyContent() का इस्तेमाल किया जा सकता है. (I2b318, b/157633857, b/158551084)
contentColor() और currentTextStyle() एपीआई को बंद कर दिया गया है. साथ ही, उन्हें AmbientContentColor और AmbientTextStyle ऐंबियंट की जगह पर इस्तेमाल किया जा सकता है. किसी भी अन्य ऐंबियंट की तरह, ऐंबियंट प्रॉपर्टी पर
.current
का इस्तेमाल करके, मौजूदा वैल्यू को ऐक्सेस किया जा सकता है. यह बदलाव, एक ही काम को करने के लिए कई तरीकों से बचने और एक जैसी सुविधा देने के लिए किया गया था. इसके अलावा, कुछ ऐंबियंट प्रॉपर्टी के नाम बदले गए हैं, ताकि उनके मकसद के बारे में बेहतर तरीके से बताया जा सके. इन प्रॉपर्टी के नाम इस तरह हैं:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
AmbientElevationOverlay जोड़ा गया है. इससे, डार्क थीम में Surfaces पर लागू किए गए डिफ़ॉल्ट एलिवेशन ओवरले को पसंद के मुताबिक बनाया जा सकता है या बंद किया जा सकता है. (I5b74d)
गड़बड़ियां ठीक की गईं
- इनलाइन क्लास के लिए सेंटीनल वैल्यू को स्टैंडर्ड बनाने के तहत, अन्य इनलाइन क्लास (I97611, b/169797763) के साथ एक जैसा रखने के लिए, Color.Unset को Color.Unspecified में बदलें
- TextOverflow.None को शामिल किया गया है. जब overflow का कोई वैल्यू नहीं है, तो Text अब ओवरफ़्लो को मैनेज नहीं करेगा. साथ ही, यह LayoutNode को अपने असल साइज़ की जानकारी देगा. (I175c9, b/158830170)
- Compose API के दिशा-निर्देशों के मुताबिक, launchInComposition का नाम बदलकर LaunchedTask कर दिया गया है (I99a8e)
- OnPositionedModifier का नाम बदलकर OnGloballyPositionedModifier कर दिया गया है और onPositioned() का नाम बदलकर onGloballyPositioned कर दिया गया है. (I587e8, b/169083903)
वर्शन 1.0.0-alpha04
1 अक्टूबर, 2020
androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
, और androidx.compose.material:material-icons-extended:1.0.0-alpha04
रिलीज़ हो गए हैं. 1.0.0-alpha04 वर्शन में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- स्टेटफ़ुल Material कॉम्पोनेंट में InteractionState पैरामीटर दिखाता है, ताकि स्टेटस को होस्ट किया जा सके और उसे पढ़ा या कंट्रोल किया जा सके. (Iaca5f, b/168025711, b/167164434)
- RadioButton और TriStateCheckbox पर
*color
पैरामीटर बदलता है, ताकि हर स्टेटस में इस्तेमाल किए गए रंगों को पूरी तरह से पसंद के मुताबिक बनाया जा सके. साथ ही, अगर ज़रूरत हो, तो रंगों को एक स्टेटस से दूसरे स्टेटस में ऐनिमेट करने का तरीका भी बदला जा सकता है. ज़्यादा जानकारी के लिए, CheckboxConstants और RadioButtonConstants में नए animateDefault* कलर फ़ंक्शन देखें. (I1c532) - rememberBackdropState का नाम बदलकर rememberBackdropScaffoldState किया गया और ऐनिमेशन वाली घड़ी के लिए एक और पैरामीटर जोड़ा गया. BackdropScaffold के param backdropScaffoldState का नाम बदलकर सिर्फ़ scaffoldState कर दिया गया. BackdropConstants का नाम बदलकर BackdropScaffoldConstants कर दिया गया. (Ib644d)
- एक्सपेरिमेंट के तौर पर BottomSheetScaffold कॉम्पोनेंट जोड़ा गया. (Ie02f0, b/148996320)
- एक्सपेरिमेंट के तौर पर ModalBottomSheetLayout कॉम्पोनेंट जोड़ा गया. (Ic209e, b/148996320)
- ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation का नाम बदलकर defaultElevation कर दिया गया है. साथ ही, अब यह AnimatedValue के बजाय Dp वैल्यू दिखाता है. (I5f3ed)
गड़बड़ियां ठीक की गईं
- कई Graphics API अपडेट किए गए
- स्केल और रोटेशन ट्रांसफ़ॉर्मेशन एपीआई को अपडेट किया गया है, ताकि DrawScope और DrawTransform में x/y निर्देशांक के लिए अलग-अलग फ़्लोट पैरामीटर के बजाय, पिवट निर्देशांक दिखाने के लिए एक ऑफ़सेट पैरामीटर का इस्तेमाल किया जा सके
- Rect.expandToInclude और Rect.join के तरीकों को हटाया गया
- दायरे के दस्तावेज़ को अपडेट किया गया, ताकि अंडाकार के साथ-साथ, दीर्घवृत्ताकार के बारे में भी बताया जा सके
- दस्तावेज़ जोड़ा गया है, ताकि यह पता चल सके कि इनलाइन Radius क्लास के लिए, पब्लिक कन्स्ट्रक्टर को सीधे तौर पर नहीं बुलाया जाना चाहिए. इसके बजाय, Radius ऑब्जेक्ट को उनके फ़ंक्शन कन्स्ट्रक्टर के ज़रिए इंस्टैंशिएट किया जाना चाहिए
- topRight, bottomRight, bottomCenter वगैरह के बारे में क्वेरी करने के लिए, RoundRect API हटाए गए
- Rect.translate के पक्ष में Rect.shift को बंद कर दिया गया है
- RoundRect.grow और Rect.shrink एपीआई हटाए गए
- RoundRect.outerRect का नाम बदलकर Rect.boundingRect किया गया
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect और Rect.isStadium तरीकों को हटाया गया
- RoundRect.longestSide का नाम बदलकर RoundRect.maxDimension कर दिया गया
- RoundRect.shortestSide का नाम बदलकर RoundRect.minDimension कर दिया गया
- RoundRect.center को फ़ंक्शन के बजाय प्रॉपर्टी में बदला गया
- x/y त्रिज्या की वैल्यू के लिए, अलग-अलग पैरामीटर के बजाय त्रिज्या प्रॉपर्टी का इस्तेमाल करने के लिए, RoundRect कन्स्ट्रक्टर को अपडेट किया गया
- साइज़ एपीआई हटा दिए गए हैं, जो यह मानते थे कि यह 0,0 पर ऑरिजिन वाला रेक्टैंगल है
- Radius में डेस्ट्रक्टिंग एपीआई जोड़ा गया
- RoundRect एक्सटेंशन के अलग-अलग फ़ंक्शन को प्रॉपर्टी के तौर पर माइग्रेट किया गया
- (I8f5c7, b/168762961)
- foundation.Box का इस्तेमाल बंद कर दिया गया है. इसके बजाय, कृपया foundation.layout.Box का इस्तेमाल करें. (Ie5950, b/167680279)
- स्टैक का नाम बदलकर Box कर दिया गया. compose.foundation.layout में मौजूदा बॉक्स को हटा दिया जाएगा और इसके बजाय, नया बॉक्स जोड़ा जाएगा. नए बॉक्स में, एक से ज़्यादा चाइल्ड एलिमेंट होने पर, वे एक-दूसरे के ऊपर स्टैक हो जाते हैं. यह पिछले बॉक्स से अलग है, जो कॉलम की तरह काम करता था. (I94893, b/167680279)
- बॉक्स को सजाने के पैरामीटर अब काम नहीं करते. अगर आपको अपने बॉक्स में सजावट/पैडिंग करनी है, तो इसके बजाय मॉडिफ़ायर (Modifier.background, Modifier.border, Modifier.padding) का इस्तेमाल करें (Ibae92, b/167680279)
- कई Graphics API अपडेट किए गए
- स्कोप किए गए ट्रांसफ़ॉर्मेशन के तरीकों के साथ DrawScope API अपडेट किए गए हैं. इससे यह पता चलता है कि ट्रांसफ़ॉर्मेशन सिर्फ़ कॉलबैक में लागू होता है और कॉलबैक के ट्रिगर होने के बाद हट जाता है
- राउंडेड रेक्टैंगल के बजाय पाथ का रेफ़रंस देने के लिए, clipPath दस्तावेज़ को अपडेट किया गया
- clipPath में मौजूद राइट पैरामीटर के लिए, दस्तावेज़ में स्पेसिंग ठीक की गई
- DrawScope.drawCanvas का नाम बदलकर drawIntoCanvas किया गया और साइज़ पैरामीटर हटा दिया गया
- इनसेट तरीके में dx/dy पैरामीटर के नाम बदलकर, horisontal और vertical कर दिया गया
- इनसेट ओवरलोड जोड़ा गया है, जो सभी चार सीमाओं के लिए एक ही इनसेट वैल्यू देता है
- इनसेट करने के तरीके से जुड़े दस्तावेज़ हटा दिए गए हैं. इनसे यह पता चलता था कि इनसेट, चारों तरफ़ लागू होगा
- Rect क्लास के लिए दस्तावेज़ अपडेट किए गए
- kdoc के स्टाइल से मैच करने के लिए, Rect पैरामीटर पर अपडेट की गई टिप्पणियां
- Rect.join और Rect.expandToInclude को हटाया गया
- Rect.translate(offset) के लिए ओवरलोड बनाया गया और Rect.shift को बंद कर दिया गया
- (If086a, b/167737376)
- हमने लेआउट स्कोप के कॉन्टेंट के स्टैटिक इंपोर्ट को रोक दिया है. जैसे, RowScope में alignWithSiblings. इसके बजाय, स्कोप के लिए साफ़ तौर पर बताए गए विकल्प का इस्तेमाल किया जाना चाहिए:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
वर्शन 1.0.0-alpha03
16 सितंबर, 2020
androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
, और androidx.compose.material:material-icons-extended:1.0.0-alpha03
रिलीज़ हो गए हैं. 1.0.0-alpha03 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
BottomNavigationItem
केonSelect
पैरामीटर का नाम बदलकरonClick
किया गया (I91925, b/161809324)- BottomNavigationItem और Tab में InteractionState पैरामीटर जोड़ता है. इससे इस स्टेटस को होस्ट करने और अलग-अलग स्टेटस में कॉम्पोनेंट के दिखने के तरीके में बदलाव करने की सुविधा मिलती है. (Ia3e9e, b/168025711)
- बटन से
disabledBackgroundColor
औरdisabledContentColor
पैरामीटर हटाता है. इसके बजाय, आपको ButtonConstants में नए डिफ़ॉल्ट कलर फ़ंक्शन का इस्तेमाल करना चाहिए. अगर आपने contentColor / backgroundColor को पहले से ही साफ़ तौर पर सेट किया हुआ है, तो आपको इन डिफ़ॉल्ट फ़ंक्शन का इस्तेमाल करना चाहिए. साथ ही, कुछ / सभी पैरामीटर को पसंद के मुताबिक बनाना चाहिए, ताकि चालू / बंद दोनों स्थितियों के लिए रंग को ओवरराइट न किया जा सके. (If9b52) - टेक्स्टफ़ील्ड के बैकग्राउंड का रंग, अब ट्रांसपेरेंसी अल्फा को अपने-आप लागू नहीं करता. इसके बजाय, backgroundColor पैरामीटर की मदद से दिया गया कोई भी रंग सीधे लागू हो जाएगा. (Iecee9, b/167951441)
- InnerPadding का नाम बदलकर PaddingValues कर दिया गया है. (I195f1, b/167389171)
Modifier.swipeable
में मौजूद पैरामीटरresistanceFactorAtMin
औरresistanceFactorAtMax
को एक रेज़िस्टेंस पैरामीटर से बदल दिया गया.SwipeableConstants
में,defaultResistanceConfig
का नया तरीका जोड़ा गया था. (I54238)- Button और FloatingActionButton के लिए, ऐनिमेशन वाली स्टेटस वाली एलिवेशन सुविधा जोड़ता है. अब ऐलिवेशन, डिफ़ॉल्ट और दबाए जाने की स्थितियों के बीच ऐनिमेशन के साथ बदलता है. राज्यों के बीच ऊंचाई को पसंद के मुताबिक बनाने के लिए, कृपया सभी मामलों में एक जैसी Dp वैल्यू सेट करने के बजाय,
ButtonConstants.defaultAnimatedElevation()
औरFloatingActionButtonConstants.defaultAnimatedElevation()
का इस्तेमाल करें. (I37925) - TextField और OutlinedTextField में लेबल एक वैकल्पिक पैरामीटर बन गया है (I267f6, b/162234081)
गड़बड़ियां ठीक की गईं
onNode
याwaitForIdle
जैसे ग्लोबल टेस्टिंग फ़ंक्शन अब काम नहीं करते. कृपया ComposeTestRule (I7f45a) पर बताए गए नए फ़ंक्शन पर माइग्रेट करें- DpConstraints और इसका इस्तेमाल करने वाले एपीआई को बंद कर दिया गया है. (I90cdb, b/167389835)
- widthIn के पैरामीटर minWidth और maxWidth का नाम बदलकर min और max कर दिया गया. इसी तरह, preferredWidthIn, heightIn, और preferredHeightIn के लिए भी ऐसा किया गया. (I0e5e1, b/167389544)
- आगे/पीछे स्क्रोल करने से जुड़ी सेमेटिक्स ऐक्शन हटाएं. AccessibilityRangeInfo में चरण जोड़े गए. (Ia47b0)
- लेआउट एपीआई में अलाइन या अलाइनमेंट के लिए, ग्रेविटी के इस्तेमाल का नाम बदल दिया गया था. (I2421a, b/164077038)
- ComposeTestRule पर onNode और अन्य ग्लोबल तरीके जोड़े गए हैं, क्योंकि मौजूदा ग्लोबल तरीके बंद होने वाले हैं. (Ieae36)
createAndroidComposeRule
औरAndroidInputDispatcher
कोandroidx.ui.test.android
सेandroidx.ui.test
पर ले जाया गया (Idef08, b/164060572)
वर्शन 1.0.0-alpha02
2 सितंबर, 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
, और androidx.compose.material:material-icons-extended:1.0.0-alpha02
रिलीज़ हो गए हैं. 1.0.0-alpha02 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- एक्सपेरिमेंट के तौर पर BackdropScaffold कॉम्पोनेंट जोड़ा गया. (Iad908)
गड़बड़ियां ठीक की गईं
- Matrix4 को Matrix से बदल दिया गया. vectormath पैकेज के सभी अन्य हिस्सों को हटा दिया गया है. (Ibd665, b/160140398)
वर्शन 1.0.0-alpha01
26 अगस्त, 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
, और androidx.compose.material:material-icons-extended:1.0.0-alpha01
रिलीज़ हो गए हैं. 1.0.0-alpha01 वर्शन में ये कमिट शामिल हैं.
आम समस्या
= किसी मेटाफ़ाइल TextField
के पहले वर्ण को बैकस्पेस (b/165956313) का इस्तेमाल करके नहीं हटाया जा सकता
वर्शन 0.1.0-dev
वर्शन 0.1.0-dev17
19 अगस्त, 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
, और androidx.compose.material:material-icons-extended:0.1.0-dev17
रिलीज़ हो गए हैं. 0.1.0-dev17 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- पहले से बंद RadioGroup और RadioGroupItems को हटा दिया गया है. इसके बजाय, पंक्ति और रेडियो बटन का इस्तेमाल करें (I381b7, b/163806637)
- TextField से onFocusChanged कॉलबैक हटाए गए. इसके बजाय, Modifier.focusObserver का इस्तेमाल करें. (I51089, b/161297615)
- Modifier.drawBorder को बंद कर दिया गया है. इसके बजाय, Modifier.border का इस्तेमाल करें. Border data class को BorderStroke (I4257d, b/158160576) से बदल दिया गया है
- SwipeableState में कुछ प्रॉपर्टी के नाम बदले गए: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. SwipeableStates बनाने के लिए, rememberSwipeableState फ़ंक्शन जोड़ा गया. (I2fc9c, b/163129614, b/163132293)
- स्नैकबार की पोज़िशन तय करने और सही क्रम में दिखाने की सुविधा जोड़ी गई है. इसे
SnackbarHostState.showSnackbar
सस्पेंड फ़ंक्शन की मदद से ऐक्सेस करें. इसके अलावा:- SnackbarHost कॉम्पोनेंट जोड़े गए हैं. यह स्नैकबार को होस्ट करता है. साथ ही, स्नैकबार के बीच ट्रांज़िशन की सुविधा भी देता है.
- SnackbarHostState को जोड़ा गया है, ताकि स्नैकबार और स्नैकबार होस्ट को कंट्रोल किया जा सके. साथ ही, इसे ScaffoldState से अलग किया जा सके. इस स्टेटस को
scaffoldState.snackbarHostState
के ज़रिए भी ऐक्सेस किया जा सकता है. - स्नैकबार ओवरलोड को इसलिए जोड़ा गया है, ताकि snackbarHostState और स्नैकबार के बीच सामान्य इंटरफ़ेस काम कर सके. (I79aaa)
- IconButton में 'चालू है' पैरामीटर जोड़ता है और IconToggleButton में पैरामीटर का क्रम फिर से तय करता है (I0a941, b/161809385, b/161807956)
- स्ट्रिंग पर आधारित एपीआई के साथ ListItem का वर्शन हटा दिया गया है. इसके बजाय, स्लॉट वर्शन का इस्तेमाल करें. (Ib8f57, b/161804681)
- अब इस्तेमाल में न होने वाले FilledTextField कॉम्पोनेंट को हटा दिया गया है. फ़िल्ड टेक्स्ट फ़ील्ड को Material Design के मुताबिक बनाने के लिए, कृपया TextField का इस्तेमाल करें. (I5e889)
- AlertDialog अब बटन के लिए FlowRow का इस्तेमाल करता है (I00ec1, b/161809319, b/143682374)
- Modifier.swipeable में पैरामीटर जोड़े गए, ताकि सीमाओं से परे स्वाइप करने पर, रेज़िस्टेंस की मात्रा बदली जा सके. [min/max]Value पैरामीटर हटाए गए. (I93d98)
- LinearProgressIndicator में backgroundColor पैरामीटर जोड़ा गया और CircularProgressIndicator से इंटरनल पैडिंग हटाई गई. नई ProgressIndicatorConstants.DefaultProgressAnimationSpec जोड़ी गई है. इसका इस्तेमाल, वैल्यू के बीच प्रोग्रेस को ऐनिमेट करते समय, डिफ़ॉल्ट AnimationSpec के तौर पर किया जा सकता है (If38b5, b/161809914, b/161804677)
- Modifier.swipeable में वैकल्पिक पैरामीटर velocityThreshold जोड़ा गया. (I698ba)
- bottomBarSize, fabSize वगैरह, अब ScaffoldState में उपलब्ध नहीं हैं. आपको जिस कॉम्पोनेंट का साइज़ जानना है उसके बजाय, Modifier.onPosition का इस्तेमाल करें. Scaffold में contentColor और Modifier पैरामीटर जोड़े गए हैं (Ic6f7b, b/161811485, b/157174382)
- अन्य एपीआई (Ia2d12, b/161807532) के साथ एक जैसा रखने के लिए, Tab में कुछ पैरामीटर के नाम बदले गए हैं और उनका क्रम बदला गया है
- TabRow को TabRow और ScrollableTabRow में बांटता है. साथ ही, TabRow से isScrollable को हटाता है. यह ScrollableTabRow में edgePadding को भी दिखाता है. इससे टैब के पहले / बाद के खाली स्पेस को कंट्रोल किया जा सकता है. (I583e8, b/161809544)
TabRow
ऑब्जेक्ट को हटा दिया गया है और उसकी जगह TabConstants को ले लिया गया है. TabRow.TabPosition को टॉप लेवल (TabPosition) पर ले जाया गया है और indicatorContainer का नाम बदलकरindicator
कर दिया गया है. अपडेट किए गए एपीआई और डिफ़ॉल्ट वैल्यू का इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, सैंपल और दस्तावेज़ देखें. (I54d45, b/161809544)- Modifier.swipeable में थ्रेशोल्ड पैरामीटर में बदलाव किया गया है. अब यह (टाइप T) की दो स्थितियों को लेता है और ThresholdConfig के तौर पर उनके बीच का थ्रेशोल्ड दिखाता है. SwipeToDismiss में dismissThresholds पैरामीटर जोड़ा गया है. यह एक lambda (DismissDirection) -> ThresholdConfig है. (Ie1080)
- स्लाइडर में ज़्यादा रंग हैं, ताकि आप अपनी पसंद के मुताबिक बदलाव कर सकें (I73e64, b/161810475)
- कार्ड के रंग के पैरामीटर का नाम बदलकर backgroundColor कर दिया गया (I01fc1, b/161809546)
- स्नैकबार के बैकग्राउंड और कॉन्टेंट के रंग अब पसंद के मुताबिक चुने जा सकते हैं (I238f2, b/161804381)
- Drawers में, पसंद के मुताबिक बनाने के लिए modifier, backgroundColor, contentColor, और scrimColor पैरामीटर जोड़े गए हैं (I23655, b/161804378)
state { ... }
कॉम्पोज़ेबल का इस्तेमाल अब नहीं किया जा सकता. इसके बजाय,remember { mutableStateOf(...) }
को साफ़ तौर पर कॉल करें. इससे, एपीआई के पूरे प्लैटफ़ॉर्म और स्टेटस मैनेजमेंट के लिए कॉन्सेप्ट की संख्या कम हो जाती है. साथ ही, यह क्लास प्रॉपर्टी के डेलिगेशन के लिएby mutableStateOf()
पैटर्न से मेल खाता है. (Ia5727)- बटन के पैडिंग पैरामीटर का नाम बदलकर contentPadding कर दिया गया (Id252e, b/161809394)
- एक्सपेरिमेंट के तौर पर उपलब्ध, SwipeToDismiss नाम का कॉम्पोनेंट जोड़ें. (I129e5)
गड़बड़ियां ठीक की गईं
onChildPositioned
औरOnChildPositionedModifier
को हटाया गया. डेवलपर को इसके बजाय, चाइल्ड लेआउट परonPositioned
औरOnPositionedModifier
का इस्तेमाल करना चाहिए. (I4522e, b/162109766)- SemanticsPropertyKey में mergePolicy lambda जोड़ा गया. इसका इस्तेमाल, सभी वंश को मर्ज करने के लिए, सेमेंटेक्स को मर्ज करने की कस्टम नीति तय करने के लिए किया जा सकता है. डिफ़ॉल्ट नीति के मुताबिक, अगर पैरंट वैल्यू पहले से मौजूद है, तो उसका इस्तेमाल किया जाता है. अगर पैरंट वैल्यू मौजूद नहीं है, तो चाइल्ड वैल्यू का इस्तेमाल किया जाता है. (Iaf6c4, b/161979921)
- IntSize अब एक इनलाइन क्लास (I2bf42) है
PlacementScope.placeAbsolute()
का नाम बदलकरPlacementScope.place()
कर दिया गया है. साथ ही, पिछलेPlacementScope.place()
का नाम बदलकरPlacementScope.placeRelative()
कर दिया गया है. इस वजह से,PlacementScope.place()
तरीका अब दाईं से बाईं ओर के कॉन्टेक्स्ट में, पोज़िशन को अपने-आप मिरर नहीं करेगा. अगर आपको ऐसा करना है, तो इसके बजायPlacementScope.placeRelative()
का इस्तेमाल करें. (I873ac, b/162916675)- Rect के पक्ष में, PxBounds को बंद कर दिया गया है. PxBounds के सभी इस्तेमाल को रेक्ट के साथ अपडेट किया गया है. साथ ही, माइग्रेशन में मदद करने के लिए, एनोटेशन के साथ सही तरीके से 'इस्तेमाल न करें'/'इसकी जगह यह इस्तेमाल करें' जोड़ा गया है. (I37038, b/162627058)
- RRect का नाम बदलकर RoundRect किया गया, ताकि नाम तय करने के पैटर्न के हिसाब से बेहतर तरीके से काम किया जा सके. RRect और अब काम न करने वाले RRect फ़ंक्शन कंस्ट्रक्टर के जैसे फ़ंक्शन कंस्ट्रक्टर बनाए गए (I5d325)
वर्शन 0.1.0-dev16
5 अगस्त, 2020
androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
, और androidx.compose.material:material-icons-extended:0.1.0-dev16
रिलीज़ हो गए हैं. 0.1.0-dev16 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Colors अब इंटरफ़ेस के बजाय फ़ाइनल क्लास है. कस्टम थीम ऑब्जेक्ट को लागू करने के लिए, उसे एक्सटेंशन के तौर पर इस्तेमाल करने के बजाय, एक नया ऐंबियंट बनाएं. साथ ही, अपने कॉम्पोनेंट में नए ऐंबियंट की मदद से थीम ऑब्जेक्ट को ऐक्सेस करें. यह उसी तरह काम करता है जिस तरह MaterialTheme अंदरूनी तौर पर काम करता है. (Ibae84)
- ColorPalette का नाम बदलकर Colors कर दिया गया है, ताकि इसे Material कलर सिस्टम के साथ बेहतर तरीके से मैप किया जा सके. साथ ही, ColorPalette को 'सामान्य' थीमिंग ऑब्जेक्ट के तौर पर इस्तेमाल करने से जुड़ी गलतफ़हमी को दूर किया जा सके. यह Material कलर सिस्टम का खास हिस्सा है. साथ ही, lightColorPalette और darkColorPalette का नाम बदलकर, lightColors और darkColors कर दिया जाता है. (I9e976, b/161812111)
- BottomNavigationItem के
text
पैरामीटर का नाम बदलकरlabel
,onSelected
कोonSelect
,activeColor
कोselectedContentColor
, औरinactiveColor
कोunselectedContentColor
कर देता है. साथ ही, गाइडलाइन के मुताबिक पैरामीटर के क्रम को अपडेट करता है. (Icb605, b/161809324) Modifier.stateDraggable
को पूरी तरह से बदल दिया गया और इसका नाम बदलकर Modifier.swipeable कर दिया गया. SwipeableState की एक नई क्लास को पेश किया गया था. साथ ही, DrawerState और BottomDrawerState को फिर से तैयार किया गया, ताकि इनमें इस क्लास का इस्तेमाल किया जा सके. [Modal/Bottom]DrawerLayout अब onStateChange पैरामीटर नहीं लेता. (I72332, b/148023068)- foundation.shape.corner पैकेज को foundation.share में फ़्लैट कर दिया गया (I46491, b/161887429)
- ExperimentalMaterialApi एनोटेशन जोड़ा गया. RippleTheme को एक्सपेरिमेंट के तौर पर मार्क किया गया है (Ic5fa0, b/161784800)
- Material FilledTextField का नाम बदलकर TextField कर दिया गया है. साथ ही, फ़ाउंडेशनल TextField का नाम बदलकर BaseTextField कर दिया गया है, ताकि सबसे आसान एपीआई को आसानी से खोजा और इस्तेमाल किया जा सके (Ia6242, b/155482676)
गड़बड़ियां ठीक की गईं
- OnChildPositioned को बंद कर दिया गया है. इसके बजाय, चाइल्ड पर OnPositioned का इस्तेमाल करें. (I87f95, b/162109766)
- एपीआई से जुड़ी समस्याओं को ठीक करना (I077bc)
- इस्तेमाल न किए गए OffsetBase इंटरफ़ेस को हटाना
- एपीआई के एक जैसे प्लैटफ़ॉर्म के लिए, Offset और IntOffset क्लास को अलाइन करें
- Offset API के साथ काम करने के लिए, IntOffset.Origin का नाम बदलकर IntOffset.Zero करें
- उपयोगकर्ताओं को अपने कैनवस इंस्टेंस बनाने में मदद करने के लिए, nativeCanvas को कैनवस इंटरफ़ेस से हटा दिया गया है
- DrawScope को रीफ़ैक्टर करने के लिए, स्टब EmptyCanvas क्लास बनाई गई, ताकि इसे लेटिनिट के बजाय नॉन-नल पैरामीटर बनाया जा सके. साथ ही, यह पक्का किया जा सके कि फ़ील्ड नॉन-नल हो
- ClipOp के एन्यूम को Pascal Case में बदला गया
- FilterQuality के एन्म को Pascal Case में बदला गया
- StrokeJoin एनम को पास्कल केस में बदला गया
- PointMode के एन्म को पास्कल केस में बदला गया
- PaintingStyle के एन्म को Pascal Case में बदला गया
- PathFillType के एन्म को पास्कल केस में बदला गया
- StrokeCap के एनम को पास्कल केस में बदला गया
- DrawCache को अपडेट किया गया है, ताकि अब lateinit पैरामीटर का इस्तेमाल न किया जा सके
- DrawScope को अपडेट किया गया है, ताकि अब fillPaint और strokePaint के इंटरनल पैरामीटर के लिए, 'देर से डेलिगेट करना' सुविधा का इस्तेमाल न किया जा सके
- कम ओवरहेड के लिए, Box का इस्तेमाल करने से बचने के लिए, इमेज कॉम्पोज़ करने की सुविधा को अपडेट किया गया
- @Immutable एनोटेशन के लिए, आउटलाइन क्लास को अपडेट किया गया
- हर पाथ निर्देश के लिए @Immutable एनोटेशन रखने के लिए, PathNode को अपडेट किया गया
- वेक्टर सब-कंपोज़िशन को अपडेट किया गया है, ताकि बराबरी की जांच के लिए ज़रूरत से ज़्यादा शर्तों की जांच न की जाए. ऐसा इसलिए किया गया है, क्योंकि कंपोज पहले से ही इन शर्तों को मैनेज करता है
- फ़ंक्शन कंस्ट्रक्टर के पक्ष में, Rect के साथ काम करने वाले कंस्ट्रक्टर के पुराने तरीके बंद किए गए
- @Immutable और @Stable एपीआई के साथ ब्रश क्लास और फ़ंक्शन कंस्ट्रक्टर अपडेट किए गए
- VertexMode enum को PascalCase में अपडेट किया गया
- DrawScope के selectPaint तरीके को अपडेट किया गया है, ताकि पेंट के स्ट्रोक पैरामीटर बदलने पर, उन्हें कंडीशन के हिसाब से बदला जा सके
- डेस्ट्रक्चर करने वाले एपीआई को जोड़ने के लिए, साइज़ को अपडेट किया गया. साथ ही, UnspecifiedSize का नाम बदलकर Unspecified कर दिया गया और इस्तेमाल न किए गए तरीकों को हटा दिया गया
- डायलॉग को यूज़र इंटरफ़ेस (यूआई) पर ले जाना (I47fa6)
SemanticsNodeInteraction.performPartialGesture
को हटा दिया गया है. इसके बजाय,SemanticsNodeInteraction.performGesture
का इस्तेमाल करें. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()
का नाम बदलकरSemanticsNodeInteraction.getUnclippedBoundsInRoot()
किया गया (Icafdf, b/161336532)- दाएं से बाएं लिखने की सुविधा के लिए एपीआई अपडेट कर दिए गए हैं. LayoutDirectionAmbient जोड़ा गया है. इसका इस्तेमाल, लेआउट की दिशा को पढ़ने और बदलने के लिए किया जा सकता है. Modifier.rtl और Modifier.ltr को हटा दिया गया है. (I080b3)
- Modifier.deternimateProgress का नाम बदलकर Modifier.progressSemantics कर दिया गया है (I9c0b4)
- Material.io/icons में जोड़े गए नए आइकॉन के साथ, material-icons-extended को अपडेट करता है (I4b1d3)
- transitionDefinition के लिए, टाइप T को साफ़ तौर पर बताना ज़रूरी है. (I1aded)
- Modifier.plus को बंद कर दिया गया है. इसके बजाय, Modifier.then का इस्तेमाल करें. 'इसके बाद' में क्रम से लगाने का सिग्नल ज़्यादा होता है. साथ ही, इसमें
Modifier.padding().background() + anotherModifier
टाइप करने की अनुमति नहीं होती, जिससे चेन टूट जाती है और उसे पढ़ना मुश्किल हो जाता है (Iedd58, b/161529964) - createAndroidComposeRule के लिए, AndroidComposeTestRule का नाम बदलकर createAndroidComposeRule कर दिया गया. (I70aaf)
- isFocused() और isNotFocused() SemanticsMatcher जोड़ें. (I0b760)
BaseGestureScope.globalBounds
को हटा दिया गया है. इसका इस्तेमाल टेस्ट में नहीं किया जाना चाहिए. इसके बजाय, उस नोड के स्थानीय निर्देशांक का इस्तेमाल करें जिससे इंटरैक्ट किया जा रहा है. (Ie9b08)- कट-आउट डिसप्ले पर पॉप-अप की तय की गई जगह. (Idd7dd)
- Modifier.drawBackground का नाम बदलकर Modifier.background कर दिया गया है (I13677)
वर्शन 0.1.0-dev15
22 जुलाई, 2020
androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
, और androidx.compose.material:material-icons-extended:0.1.0-dev15
रिलीज़ हो गए हैं. 0.1.0-dev15 वर्शन में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़ा अपडेट
- Compose के
0.1.0-dev15
वर्शन का इस्तेमाल करने के लिए, आपको डिपेंडेंसी का एलान करना में ऊपर दिखाए गए नए कोड स्निपेट के हिसाब से, अपनी डिपेंडेंसी अपडेट करनी होंगी.
एपीआई में हुए बदलाव
@Model
एनोटेशन का अब इस्तेमाल नहीं किया जा सकता. इसके विकल्प के तौर पर, state और mutableStateOf का इस्तेमाल करें. इस सुविधा को बंद करने का फ़ैसला, बहुत सावधानी से की गई चर्चा के बाद लिया गया है.वजह बताएं
इसमें ये शामिल हैं, लेकिन इनके अलावा और भी चीज़ें शामिल हो सकती हैं:
- एपीआई के बारे में कम जानकारी देनी पड़ती है और कम कॉन्सेप्ट सिखाने पड़ते हैं
- यह अन्य टूलकिट (Swift UI, React, Flutter) के साथ ज़्यादा मिलता-जुलता है
- जिस फ़ैसले को बदला जा सकता है. हम
@Model
को बाद में कभी भी वापस ला सकते हैं. @Model
को कॉन्फ़िगर करने के बारे में, मुश्किल सवालों के जवाब देने और असामान्य मामलों में इस्तेमाल करने की ज़रूरत नहीं पड़ेगी@Model
डेटा क्लास, equals, hashcode वगैरह.- कुछ प्रॉपर्टी “निगरानी में” कैसे हैं और कुछ नहीं?
- मैं निगरानी में इस्तेमाल किए जाने वाले स्ट्रक्चरल बनाम रेफ़रंसल इक्विलिटी की जानकारी कैसे दूं?
- इससे सिस्टम में “मैजिक” कम हो जाता है. इससे, किसी व्यक्ति के यह मानने की संभावना कम हो जाएगी कि सिस्टम असल में जितने स्मार्ट है उससे ज़्यादा स्मार्ट है. जैसे, उसे सूची में अंतर करने का तरीका पता है
- इससे, डेटा को बारीकी से समझना आसान हो जाता है.
- क्लास में वैरिएबल -> प्रॉपर्टी से, रीफ़ैक्ट करने की सुविधा को बेहतर बनाता है
- इससे, राज्य के हिसाब से ऑप्टिमाइज़ेशन करने की संभावनाएं बढ़ती हैं
- यह बाकी इकोसिस्टम के साथ ज़्यादा मिलता-जुलता है. साथ ही, यह बदलाव न किए जा सकने वाले या “बदलाव किए जा सकने वाले स्टेटस को अपनाने” के बारे में किसी तरह की गलतफ़हमी को कम करता है
माइग्रेशन के बारे में जानकारी
@Model
के मौजूदा सभी इस्तेमालों को दो में से किसी एक तरीके से आसानी से बदला जा सकता है. नीचे दिए गए उदाहरण में, सिर्फ़ उदाहरण के लिए दो प्रॉपर्टी वाली@Model
क्लास है. साथ ही, इसका इस्तेमाल किसी कॉम्पोज़ेबल में किया जा रहा है.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
पहला विकल्प:
State<OriginalClass>
का इस्तेमाल करके कॉपी बनाएं.Kotlin की डेटा क्लास की मदद से, यह तरीका आसानी से अपनाया जा सकता है. असल में, पहले की सभी
var
प्रॉपर्टी को डेटा क्लास कीval
प्रॉपर्टी में बदलें. इसके बाद,remember
के बजायstate
का इस्तेमाल करें. साथ ही, डेटा क्लासcopy(...)
के सुविधाजनक तरीके का इस्तेमाल करके, ओरिजनल की क्लोन की गई कॉपी में स्टेटस वैल्यू असाइन करें.यह ध्यान रखना ज़रूरी है कि यह तरीका सिर्फ़ तब काम करता है, जब उस क्लास में सिर्फ़ वही बदलाव उसी दायरे में किए गए हों जिसमें
State
इंस्टेंस बनाया गया है. अगर क्लास, इस्तेमाल के दायरे से बाहर अपने-आप बदल रही है और आपने इसके आधार पर कोई फ़ैसला लिया है, तो आपको अगला तरीका अपनाना होगा.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
दूसरा विकल्प: mutableStateOf और प्रॉपर्टी डेलीगेट का इस्तेमाल करना
Kotlin के प्रॉपर्टी डेलिगेट और
mutableStateOf
एपीआई की मदद से, इस तरीके को आसान बनाया गया है. इसकी मदद से, कॉम्पोज़िशन के बाहर MutableState इंस्टेंस बनाए जा सकते हैं. मूल क्लास की सभीvar
प्रॉपर्टी कोvar
प्रॉपर्टी से बदलें. साथ ही,mutableStateOf
को प्रॉपर्टी के प्रतिनिधि के तौर पर सेट करें. इसका फ़ायदा यह है कि क्लास के इस्तेमाल में कोई बदलाव नहीं होगा. सिर्फ़ इसे लागू करने का तरीका बदलेगा. हालांकि, यह व्यवहार मूल उदाहरण से पूरी तरह मेल नहीं खाता, क्योंकि अब हर प्रॉपर्टी को अलग-अलग निगरानी/सदस्यता दी जाती है. इसलिए, इस रीफ़ैक्टर के बाद आपको दिखने वाले रीकंपोज़िशन, ज़्यादा सीमित हो सकते हैं.class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
टेक्स्ट फ़ील्ड में मौजूद onFocusChange कॉलबैक का नाम बदलकर onFocusChanged कर दिया गया है (Ida4a1)
ऐंकर के बीच थ्रेशोल्ड तय करने के लिए, stateDraggable में थ्रेशोल्ड पैरामीटर जोड़ा गया है. इसका इस्तेमाल, बॉटम ड्रॉअर में 56dp थ्रेशोल्ड सेट करने के लिए किया गया था. साथ ही, BottomDrawerLayout अब अलग BottomDrawerState एनम का इस्तेमाल करता है. (I533fa)
पहले से बंद किए गए Modifier.ripple को हटाता है. Clickable अब डिफ़ॉल्ट इंंडिकेशन के तौर पर रिपल का इस्तेमाल करता है. ऐसा तब होता है, जब आपके ऐप्लिकेशन में MaterialTheme {} सेट हो. इसलिए, ज़्यादातर मामलों में, सिर्फ़ Clickable का इस्तेमाल करके, रिपल इंंडिकेशन को बिना किसी शुल्क के पाया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंड पैरामीटर को पसंद के मुताबिक बनाना है, तो मैन्युअल रूप से RippleIndication बनाएं और उसे इंडिकेशन पैरामीटर के तौर पर क्लिक किए जा सकने वाले आइटम में पास करें. (I663b2, b/155375067)
FilledTextField कॉम्पोनेंट (I7f8f8) के लिए, इस्तेमाल से बाहर किए गए ओवरराइड को हटाया गया
Button ऑब्जेक्ट (इसमें Button फ़ंक्शन के इस्तेमाल किए गए डिफ़ॉल्ट वैल्यू शामिल हैं) का नाम बदलकर ButtonConstants (I7c5f7, b/159687878) करें
बटन का कॉन्टेंट स्लॉट अब लाइन की तरह काम करता है. यह तब काम आता है, जब आपको टेक्स्ट के साथ आइकॉन की ज़रूरत हो. बटन पर सैंपल देखें और जानें कि इसे कैसे लिखें (I0ff10, b/158677863)
RadioGroup और RadioGroupItem एलिमेंट का इस्तेमाल बंद कर दिया गया है. अपने डिज़ाइन के हिसाब से, रेडियो बटन के विकल्पों का सही सेट बनाने के लिए, Modifier.selectable, लाइन, और कॉलम के साथ बॉक्स का इस्तेमाल करें (I7f5cf, b/149528535)
आउटलाइन वाला कॉन्टेंट टेक्स्ट फ़ील्ड जोड़ा गया (I1a518)
androidx.ui.foundation.TextFieldValue और androidx.ui.input.EditorValue अब काम नहीं करते. इस टाइप का इस्तेमाल करने वाले TextField, FilledTextField, और CoreTextField कॉम्पोनेंट भी अब काम नहीं करेंगे. इसके बजाय, कृपया androidx.ui.input.TextFieldValue का इस्तेमाल करें (I4066d, b/155211005)
TabRow.TabPosition में Dp में पोज़िशन नहीं है, न ही IntPx में (I34a07, b/158577776)
IntPx के इस्तेमाल को Int से बदला गया. IntPxPosition को IntOffset से बदला गया. IntPxSize को IntSize से बदला गया. (Ib7b44)
साइज़ की जानकारी दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या को कम करने के लिए, PxSize के बजाय साइज़ क्लास के इस्तेमाल को स्टैंडर्ड बनाएं. इससे, इनलाइन क्लास के फ़ायदे मिलते हैं. इनसे, दो फ़्लोट वैल्यू को पैक करने के लिए लंबी वैल्यू का फ़ायदा मिलता है. इन वैल्यू से, चौड़ाई और ऊंचाई को फ़्लोट के तौर पर दिखाया जाता है. (Ic0191)
Modifier.ripple को बंद कर दिया गया है. Clickable अब डिफ़ॉल्ट इंंडिकेशन के तौर पर रिपल का इस्तेमाल करता है. ऐसा तब होता है, जब आपके ऐप्लिकेशन में MaterialTheme {} सेट हो. इसलिए, ज़्यादातर मामलों में, सिर्फ़ Clickable का इस्तेमाल करके, रिपल इंंडिकेशन को बिना किसी शुल्क के पाया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंड पैरामीटर को पसंद के मुताबिक बनाना है, तो मैन्युअल रूप से RippleIndication बनाएं और उसे इंडिकेशन पैरामीटर के तौर पर क्लिक किए जा सकने वाले आइटम में पास करें. (I101cd, b/155375067)
Scaffold API को फिर से तैयार किया गया है: कुछ पैरामीटर के नाम बदले गए हैं. साथ ही, बेहतर कस्टमाइज़ेशन के लिए नए पैरामीटर जोड़े गए हैं. Fab, TopBar, और BottomBar के साइज़ की क्वेरी के लिए, गेट्टर जोड़ा गया (I0e7ce)
ui-material में DropdownMenu कॉम्पोनेंट जोड़ा गया, जो मटीरियल डिज़ाइन मेन्यू को लागू करता है. (I9bb3d)
SoftwareKeyboardController का इस्तेमाल करके, सॉफ़्टवेयर कीबोर्ड को मैन्युअल तरीके से दिखाने/छिपाने की अनुमति दें (Ifb9d6, b/155427736)
फ़ाउंडेशन पैकेज में Modifier.indication जोड़ा गया है. इसका इस्तेमाल, इंटरैक्ट किए जा सकने वाले कस्टम एलिमेंट (I8425f, b/155287131) पर, दबाएं/खींचें/अन्य जानकारी दिखाने के लिए करें
CanvasScope को एक साथ लागू किया गया है, इसलिए अब सिर्फ़ DrawScope और ContentDrawScope है. साथ ही, CanvasScope का नाम बदलकर DrawScope कर दिया गया है. Density इंटरफ़ेस को लागू करने और LayoutDirection देने के लिए, DrawScope को अपडेट किया गया है ContentDrawScope में DrawScope सबक्लास को मिटा दिया गया है Painter और PainterModifier को अपडेट किया गया है, ताकि वे अब RTL प्रॉपर्टी को खुद मैनेज न करें, क्योंकि DrawScope पहले से ही इसे मैन्युअल तौर पर उपलब्ध कराता है (I1798e)
Emphasis.emphasize() को Emphasis.applyEmphasis() में बदला गया (Iceebe)
बंद किए गए बटन अब मटीरियल डिज़ाइन के स्टैंडर्ड (I47dcb, b/155076924) के मुताबिक दिखते हैं
FilledTextField में ime ऐक्शन, विज़ुअल ट्रांसफ़ॉर्मेशन, और कीबोर्ड टाइप की सुविधा मिलती है (I1f9cf, b/155075201)
स्ट्रोक के साइज़ को पसंद के मुताबिक बनाने के लिए, CircularProgressIndicator में strokeWidth पैरामीटर जोड़ता है. LinearProgressIndicator के स्ट्रोक का साइज़ (ऊंचाई) बदलने के लिए, Modifier.preferredHeight() या साइज़ के किसी दूसरे मॉडिफ़ायर का इस्तेमाल किया जा सकता है. (Icea16, b/154919081)
स्ट्रोक के साइज़ को पसंद के मुताबिक बनाने के लिए, CircularProgressIndicator में strokeWidth पैरामीटर जोड़ता है. LinearProgressIndicator के स्ट्रोक का साइज़ (ऊंचाई) बदलने के लिए, Modifier.preferredHeight() या साइज़ के किसी दूसरे मॉडिफ़ायर का इस्तेमाल किया जा सकता है. (Icea16, b/154919081)
FilledTextField में आखिर में और शुरुआत में दिखने वाले आइकॉन के लिए स्लॉट एपीआई जोड़ा गया. साथ ही, गड़बड़ी की स्थिति (Ic12e0) को मैनेज करने की सुविधा जोड़ी गई
फ़्लोटिंग ऐक्शन बटन (एफ़एबी) और बड़े किए गए फ़्लोटिंग ऐक्शन बटन (एक्सटेंडेड एफ़एबी) के डिफ़ॉल्ट रंग को MaterialTheme.colors.secondary में बदल दिया गया है. (I3b9b9, b/154118816)
एपीआई में, शून्य वैल्यू के तौर पर इस्तेमाल किए जा सकने वाले Color के सभी इस्तेमाल को, शून्य वैल्यू के तौर पर इस्तेमाल न किए जा सकने वाले Color से बदला गया. साथ ही, null के बजाय Color.Unset का इस्तेमाल किया गया (Iabaa7)
EdgeInsets का नाम बदलकर InnerPadding कर दिया गया. Material बटन के innerPadding पैरामीटर का नाम बदलकर padding कर दिया गया है. (I66165)
स्लाइडर अब स्टेटलेस है. उपयोगकर्ताओं को किसी भी अन्य कंट्रोल की तरह ही, स्टेटस को खुद पास और अपडेट करना होगा. (Ia00aa)
StaticDrawer को हटा दिया गया है. अगर आपको ज़रूरत है, तो इसके बजाय, Box का इस्तेमाल करें. इसके लिए, कॉन्टेंट की चौड़ाई, कॉन्टेंट के टाइप के हिसाब से तय की जानी चाहिए (I244a7)
भरे गए टेक्स्ट फ़ील्ड (Ic75cd) के लिए, मटीरियल डिज़ाइन लागू करने की सुविधा जोड़ी गई
ListItem में मॉडिफ़ायर पैरामीटर जोड़ा गया और आखिर में मौजूद lambda बॉडी को बढ़ावा देने के लिए, पैरामीटर का क्रम बदला गया (I66e21)
Typography में defaultFontFamily कन्स्ट्रक्टर पैरामीटर जोड़ता है. इससे, डिफ़ॉल्ट फ़ॉन्ट फ़ैमिली तय की जा सकती है. इसका इस्तेमाल, उन सभी TextStyles के लिए किया जाएगा जिनके लिए कोई फ़ैमिली सेट नहीं है. (I89d07)
एपीआई प्लैटफ़ॉर्म से, मटीरियल डेटा टेबल को कुछ समय के लिए हटा दिया गया है. (Iaea61)
Divider composable (Ic4373) में पैरामीटर के नाम बदले गए
children (Ia6d19)
MaterialTheme.emphasisLevels को हटाता है. इसके बजाय, EmphasisAmbient.current का इस्तेमाल करके, हाइलाइट के लेवल देखें (Ib5e40)
शेप थीमिंग सिस्टम को, मटीरियल डिज़ाइन की खास बातों के हिसाब से अपडेट किया गया है. अब ज़्यादातर कॉम्पोनेंट (Ifb4d1) के लिए, छोटे, मीडियम, और बड़े आकार दिए जा सकते हैं
MaterialTheme.colors(), MaterialTheme.typography() जैसे MaterialTheme API को फ़ंक्शन के बजाय प्रॉपर्टी में बदल दिया गया है. मौजूदा कॉल से ब्रैकेट हटाएं. इससे व्यवहार में कोई बदलाव नहीं होगा. (I3565a)
प्राइमिटिव के बजाय, कॉम्पोज़ेबल लैम्ब्डा स्वीकार करने के लिए, FloatingActionButton एपीआई को फिर से तैयार किया गया. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (I00622)
चेकबॉक्स, स्विच, और टॉगल करने की सुविधा के लिए
enabled
पैरामीटर जोड़ें (I41c16)रिपल अब एक मॉडिफ़ायर है. Clickable अभी तक बदला नहीं गया है. इसलिए, इसका इस्तेमाल करने का सुझाव दिया गया है
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Surface और कार्ड को androidx.ui.material.surface से androidx.ui.material पर ले जाया गया (I88a6d, b/150863888)
Button, FloatingActionButton, और Clickable के लिए अब एक अलग
enabled
पैरामीटर है. बटन पर मौजूद कुछ पैरामीटर के नाम बदले गए हैं या उनका क्रम बदला गया है. (I54b5a)इमेज का नाम बदलकर ImageAsset कर दिया गया है, ताकि इमेज डेटा और आने वाले समय में लॉन्च होने वाली इमेज कॉम्पोज़ेबल के बीच का अंतर बेहतर तरीके से बताया जा सके. इमेज कॉम्पोज़ेबल का इस्तेमाल, लेआउट में शामिल करने और कॉन्टेंट बनाने के लिए किया जाता है. _Body:ImageAsset का एक इंस्टेंस बनाने के लिए, android.graphics.Bitmap पर एक्सटेंशन का तरीका बनाया गया है, Bitmap.asImageAsset(), यह तरीका, Compose फ़्रेमवर्क के साथ पारंपरिक Android ऐप्लिकेशन डेवलपमेंट को जोड़ने के लिए मददगार है (Id5bbd)
स्ट्रिंग पैरामीटर वाले Snackbar API को हटा दिया गया है. ऐसा, ज़्यादा से ज़्यादा इस्तेमाल किए जाने वाले लैम्ब्डा फ़ंक्शन को स्वीकार करने वाले ओवरलोड का इस्तेमाल करने के लिए किया गया है. इस्तेमाल की जानकारी के लिए अपडेट किए गए सैंपल देखें (I55f80)
text
औरicon
लेम्ब्डा स्वीकार करने के लिए, Tab API को फिर से तैयार किया गया, (Ia057e)BottomNavigation कॉम्पोनेंट जोड़ा गया. इस्तेमाल से जुड़ी जानकारी के लिए दस्तावेज़ और सैंपल देखें (I731a0)
आइकॉन, आइकॉन बटन, और आइकॉन टॉगल बटन जोड़े गए. साथ ही, AppBarIcon को हटा दिया गया. AppBarIcon के मौजूदा इस्तेमाल को सीधे IconButton से बदला जा सकता है. इसके बाद, उनमें सही टच टारगेट होगा. इस्तेमाल से जुड़ी जानकारी के लिए सैंपल देखें. साथ ही, दिए गए Material आइकॉन के लिए आइकॉन देखें. इनका इस्तेमाल सीधे इन कॉम्पोनेंट के साथ किया जा सकता है. (I96849)
ButtonStyle को अलग-अलग फ़ंक्शन से बदल दिया गया है. साथ ही, टेक्स्ट (स्ट्रिंग) ओवरलोड हटा दिया गया है. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (If63ab, b/146478620, b/146482131)
Border
मॉडिफ़ायर का नाम बदलकरDrawBorder
(I8ffcc) करेंLayoutCoordinates में अब पोज़िशन प्रॉपर्टी नहीं है. LayoutModifiers, रोटेशन या स्केलिंग का इस्तेमाल करते समय, पोज़िशन प्रॉपर्टी का कोई मतलब नहीं है. इसके बजाय, डेवलपर को एक लेआउट कोऑर्डिनेट से दूसरे लेआउट कोऑर्डिनेट में बदलने का हिसाब लगाने के लिए, parentCoordinates और childToLocal() का इस्तेमाल करना चाहिए.
LayoutCoordinates, साइज़ प्रॉपर्टी के लिए PxSize के बजाय IntPxSize का इस्तेमाल करता है. लेआउट के लिए, पूर्णांक पिक्सल साइज़ का इस्तेमाल किया जाता है. इसलिए, सभी लेआउट साइज़ के लिए, फ़्लोटिंग पॉइंट वैल्यू के बजाय पूर्णांक का इस्तेमाल किया जाना चाहिए. (I9367b)
ambients API में होने वाले बदलावों के बारे में जानकारी. ज़्यादा जानकारी के लिए लॉग और
Ambient<T>
दस्तावेज़ देखें (I4c7ee, b/143769776)स्कैफ़ोल्ड मटीरियल कॉम्पोनेंट जोड़ा गया है. स्कैफ़ोल्ड लागू करता है (I7731b)
DrawBorder को बॉर्डर मॉडिफ़ायर (Id335a) से बदल दिया गया
गड़बड़ियां ठीक की गईं
- Modifier.focus, Modifier.focusRequester, Modifier.focusObserver के इस्तेमाल की वजह से, FocusModifier का इस्तेमाल बंद कर दिया गया है. FocusState और FocusDetailedState को बंद कर दिया गया है. अब इनकी जगह FocusState2 का इस्तेमाल किया जाएगा (I46919, b/160822875, b/160922136)
- VerticalScroller और HoriziontalScroller अब काम नहीं करते. कॉलम/लाइन के व्यवहार और पैरामीटर के साथ पहले से मौजूद सुविधा के लिए, ScrollableColumn और ScrollableRow का इस्तेमाल करें. इसके अलावा, अपने एलिमेंट पर Modifier.verticalScroll और Modifier.horizontalScroll का इस्तेमाल करें. इसी तरह, ScrollerPosition को ScrollState के लिए बंद कर दिया गया है' (I400ce, b/157225838, b/149460415, b/154105299)
- Modifier.draggable और Modifier.scrollable एपीआई में बदलाव किए गए हैं. ओरिएंटेशन के पक्ष में, DragDirection को हटा दिया गया था. स्क्रोल किए जा सकने वाले आइटम के लिए, 'स्थिति' की ज़रूरी शर्त को आसान बनाया गया है. ScrollableState का नाम बदलकर ScrollableController कर दिया गया है (Iab63c, b/149460415)
runOnIdleCompose
का नाम बदलकरrunOnIdle
कर दिया गया (I83607)- एक वैल्यू वाली सेमेटिक प्रॉपर्टी अब कॉलिंग स्टाइल का इस्तेमाल करती हैं. उदाहरण के लिए, 'semantics { hidden = true }' को अब इस तरह लिखा जाता है: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- जांच करने वाले कई एपीआई के नाम बदल दिए गए हैं, ताकि उन्हें इस्तेमाल करना आसान हो. सभी findXYZ एपीआई का नाम बदलकर onNodeXYZ कर दिया गया है. doXYZ वाले सभी एपीआई का नाम बदलकर performXYZ कर दिया गया है. (I7f164)
- Transition API को बदला गया है, ताकि वह बच्चों को TransitionState भेजने के बजाय, TransitionState दिखा सके. इससे एपीआई, animate() एपीआई के साथ ज़्यादा काम करता है. (I24e38)
- IntBounds यूनिट क्लास जोड़ी गई है, जो लेआउट से इंटीजर पिक्सल के बाउंड दिखाती है. इसका इस्तेमाल करने के लिए, PopupPositionProvider के एपीआई को अपडेट किया गया है. (I0d8d0, b/159596546)
- फ़ाइंडर की जांच करने के लिए, एक नया वैकल्पिक फ़्लैग useUnmergedTree जोड़ा गया है. (I2ce48)
- साइज़ की जांच करने वाले पुराने एपीआई हटा दिए गए. (Iba0a0)
- Shader इनलाइन क्लास को हटा दिया गया है, जो NativeShader expect क्लास को रैप करती थी. साथ ही, NativeShader का नाम बदलकर Shader कर दिया गया है. रैप की गई शेडर इनलाइन क्लास ने एपीआई प्लैटफ़ॉर्म में कोई अहम योगदान नहीं दिया और यह एक इनलाइन क्लास थी. इसलिए, सीधे तौर पर NativeShader क्लास का इस्तेमाल करें. (I25e4d)
- पॉप-अप, डायलॉग, और मेन्यू में अब कॉन्टेक्स्ट के हिसाब से MaterialTheme (Ia3665, b/156527485) का इस्तेमाल किया जा रहा है
- Material DropdownMenu अब स्क्रोल किए जा सकते हैं. (Ide699)
- Layout() फ़ंक्शन के मेज़र ब्लॉक से लेआउट डायरेक्शन पैरामीटर हटाया गया. हालांकि, लेआउट डायरेक्शन, मेज़र स्कोप ऑब्जेक्ट (Ic7d9d) के ज़रिए कॉलबैक में उपलब्ध है
- स्टैटिक ऐनिमेशन स्पेसिफ़िकेशन के कॉन्सेप्ट को साफ़ तौर पर बताने के लिए, टॉप लेवल एपीआई में AnimationBuilder के बजाय AnimationSpec का इस्तेमाल करें -Tween, स्प्रिंग जैसे AnimationSpecs बनाने के लिए, लैम्ब्डा की ज़रूरत को हटाकर ट्रांज़िशन डीएसएल को बेहतर बनाएं. इसके बजाय, वे सीधे तौर पर कंस्ट्रक्टर पैरामीटर लेते हैं. -बिल्डर पर भरोसा करने के बजाय, कंस्ट्रक्टर खोलकर, ऐनिमेशन स्पेसिफ़िकेशन के इस्तेमाल को आसान बनाएं -कीफ़्रेम और ट्वीन के लिए, अवधि और देरी को Int में बदलें. इससे, ज़रूरत के बिना टाइप कास्ट और मेथड ओवरलोडिंग (Long और Int, दोनों के साथ काम करने के लिए) की सुविधा हट जाती है. (Ica0b4)
enabled
को 'गलत' पर सेट करने पर, 'अभी स्विच करें' विकल्प बंद हो जाता है (If4624, b/155941869, b/159331694)- Modifier.tag का नाम बदलकर Modifier.layoutId कर दिया गया है, ताकि Modifier.testTag से कोई भ्रम न हो. (I995f0)
- Placeable#get(AlignmentLine) से मिली अलाइनमेंट लाइन की Int पोज़िशन अब शून्य नहीं हैं. अगर क्वेरी की गई अलाइनमेंट लाइन मौजूद नहीं है, तो AlignmentLine.Unspecified दिखेगा. (I896c5, b/158134875)
Radius क्लास को इनलाइन क्लास में बदला गया. डिफ़ॉल्ट पैरामीटर के साथ फ़ंक्शन कंस्ट्रक्टर का इस्तेमाल करके, साथी बनाने के तरीकों को हटा दिया गया है. इससे y-ऐक्सिस के साथ त्रिज्या, ज़रूरी x-ऐक्सिस त्रिज्या पैरामीटर से मैच कर पाएगी.
DrawScope.drawRoundRect को अपडेट किया गया है, ताकि x और y अक्ष के साथ त्रिज्या के लिए, दो अलग-अलग फ़्लोट वैल्यू के बजाय एक त्रिज्या पैरामीटर का इस्तेमाल किया जा सके (I46d1b)
पोज़िशन की जानकारी दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या को कम करने के लिए, PxPosition के बजाय Offset क्लास का इस्तेमाल करें. इससे, इनलाइन क्लास के फ़ायदे मिलते हैं. इनमें, दो फ़्लोट वैल्यू को पैक करने के लिए लॉन्ग का फ़ायदा लेना शामिल है. इन वैल्यू का इस्तेमाल, x और y ऑफ़सेट को फ़्लोट के तौर पर दिखाने के लिए किया जाता है. (I3ad98)
पिक्सल पैरामीटर के लिए सिर्फ़ Dp और प्राइमटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने के बड़े प्रयास के तहत, अलग-अलग compose क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है. पूरी Px क्लास मिटाई गई (I3ff33)
टॉगल किए जा सकने वाले कॉम्पोनेंट का इस्तेमाल बंद कर दिया गया है. इसके बजाय, Modifier.toggleable का इस्तेमाल करें (I35220, b/157642842)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्राइमटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने की बड़ी प्रोसेस के तहत, अलग-अलग compose क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (I086f4)
पिक्सल पैरामीटर (Id3434) के लिए, सिर्फ़ Dp और प्राइमिटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने की बड़ी कोशिश के तहत, अलग-अलग कंपोज क्लास में Px क्लास के इस्तेमाल को बदल दिया गया
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्राइमटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने की बड़ी कोशिश के तहत, अलग-अलग कॉम्पोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (I97a5a)
DropdonMenuItems के लिए, क्लिक करने पर ट्रिगर होने वाली इवेंट को ट्रिगर न होने की समस्या को ठीक किया गया. (I3998b, b/157673259)
MutuallyExclusiveSetItem अब काम नहीं करता. इसके बजाय, Modifier.selectable का इस्तेमाल करें. (I02b47, b/157642842)
TestTag अब काम नहीं करता. इसके बजाय, Modifier.testTag का इस्तेमाल करें. (If5110, b/157173105)
TextField के कर्सर में ब्लिंक करने वाला ऐनिमेशन है (Id10a7)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्राइमटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने की बड़ी कोशिश के तहत, अलग-अलग कॉम्पोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (I19d02)
VerticalScroller अब कॉलम की सुविधा पहले से उपलब्ध कराता है. HorizontalScroller अब पहले से ही लाइन की सुविधा देता है. (Ieca5d, b/157020670)
पिक्सल पैरामीटर (Iede0b) के लिए, सिर्फ़ Dp और प्राइमटिव टाइप पर भरोसा करने के लिए, रीफ़ैक्टर करने की बड़ी कोशिश के तहत, अलग-अलग compose क्लास में Px क्लास के इस्तेमाल को बदल दिया गया
Modifier.semantics को हटाने की प्रक्रिया रोक दी गई है, ताकि इसे हाई लेवल कॉम्पोनेंट के लिए इस्तेमाल किया जा सके. (I4cfdc)
DrawLayer modifiers api में बदलाव किया गया है: outlineShape का नाम बदलकर shape कर दिया गया है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू RectangleShape है और अब इसकी वैल्यू शून्य नहीं हो सकती; clipToOutline का नाम बदलकर clip कर दिया गया है; clipToBounds को हटा दिया गया है, क्योंकि यह RectangleShape के साथ clip == true के बराबर है (I7ef11, b/155075735)
अपडेट किए गए बेहतर लेवल के Compose API, जो CanvasScope को एक्सपोज़ करने के लिए Canvas को एक्सपोज़ करते हैं. इससे उपभोक्ताओं को अपने Paint ऑब्जेक्ट मैनेज करने की ज़रूरत नहीं पड़ती. जिन उपयोगकर्ताओं को अब भी कैनवस का ऐक्सेस चाहिए वे drawCanvas एक्सटेंशन के तरीके का इस्तेमाल कर सकते हैं. यह तरीका, कैनवस पर ड्रॉ करने के निर्देश देने के लिए कॉलबैक उपलब्ध कराता है. (I80afd)
AlignmentLineOffset composable अब काम नहीं करता. इसके बजाय, कृपया relativePaddingFrom() मॉडिफ़ायर का इस्तेमाल करें. CenterAlignmentLine कॉम्पोज़ेबल हटा दिया गया है. (I60107)
WithConstraints ट्रेलिंग लेम्ब्डा एपीआई को बदल दिया गया है. अब दो पैरामीटर के बजाय, इसमें एक रिसीवर स्कोप है. यह स्कोप, constraints और layoutDirection के अलावा, Dp (I91b9a, b/149979702) में minWidth, maxWidth, minHeight, और maxHeight प्रॉपर्टी देता है
defaultMinSizeConstraints लेआउट मॉडिफ़ायर जोड़ा गया है. यह सिर्फ़ तब रैप किए गए लेआउट के साइज़ की सीमाएं सेट करता है, जब इन सीमाओं के लिए कोई वैल्यू न दी गई हो. जैसे, कम से कम साइज़ के लिए 0 और ज़्यादा से ज़्यादा साइज़ के लिए अनंत. (I311ea, b/150460257)
FocusManagerAmbient को हटा दिया गया है. फ़ोकस पाने के लिए, FocusModifier.requestFocus का इस्तेमाल करें. (Ic4826)
CanvasScope API बनाया, जो Canvas ऑब्जेक्ट को रैप करता है, ताकि स्टेटलेस और डिक्लेरेटिव ड्रॉइंग एपीआई के प्लैटफ़ॉर्म को दिखाया जा सके. ट्रांसफ़ॉर्मेशन, अपने रिसीवर के दायरे में होते हैं. साथ ही, साइज़ की जानकारी भी इनसेट के बाउंड के दायरे में होती है. इसके लिए, उपभोक्ता को ड्रॉइंग ऑपरेशन कॉन्फ़िगर करने के लिए, अपने Paint स्टेटस ऑब्जेक्ट को मैनेज करने की ज़रूरत नहीं होती.
CanvasScopeSample जोड़ा गया. साथ ही, डेमो ऐप्लिकेशन को अपडेट किया गया, ताकि डेक्लेरेटिव ग्राफ़िक्स का डेमो (Ifd86d) शामिल किया जा सके
TextField में कर्सर के रंग को पसंद के मुताबिक बनाने की सुविधा जोड़ना (I6e33f)
TextField के साथ इस्तेमाल किए गए TextFieldValue को अब इस तरह इस्तेमाल करने पर, गतिविधि को फिर से शुरू करने पर भी वह मौजूद रहेगा:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)LayoutModifier2 का नाम बदलकर LayoutModifier कर दिया गया. (Id29f3)
अब इस्तेमाल में नहीं होने वाले LayoutModifier इंटरफ़ेस को हटा दिया गया है. (I2a9d6)
फ़ोकस सबसिस्टम के साथ इंटिग्रेट करने के लिए, CoreTextField/TextField focusIdentifier पैरामीटर को FocusNode से बदला गया. (I7ea48)
Layout और LayoutModifier2 में मौजूद इंट्रिन्सिक मेज़रमेंट फ़ंक्शन में अब IntrinsicMeasureScope रिसीवर है. यह इंट्रिन्सिक क्वेरी एपीआई को, लेआउट डायरेक्शन के साथ-साथ जानकारी देता है. (Id9945)
एक ही पैरंट लेआउट में चाइल्ड लेआउट के ड्रॉइंग क्रम को कंट्रोल करने के लिए, नया Modifier.zIndex() जोड़ा गया है. DrawLayerModifier पर मौजूद elevation प्रॉपर्टी का नाम बदलकर shadowElevation कर दिया गया है. यह अब ड्रॉइंग क्रम को कंट्रोल नहीं करती. DrawShadow के पैरामीटर का क्रम बदल गया है: अब ऊंचाई पहले और आकार दूसरे नंबर पर है. साथ ही, RectangleShape डिफ़ॉल्ट तौर पर लागू होता है. (I20150, b/152417501)
RectangleShape को androidx.ui.foundation.shape.* से androidx.ui.graphics.* में ले जाया गया है (Ia74d5, b/154507984)
TextField API अपडेट - onFocus और onBlur कॉलबैक को पैरामीटर के साथ एक ही onFocusChange(Boolean) कॉलबैक में मर्ज किया गया (I66cd3)
लाइन और कॉलम में, verticalGravity और horizontalGravity पैरामीटर जोड़े गए हैं. (I7dc5a)
wrapContentWidth और wrapContentHeight को अपडेट किया गया है, ताकि किसी भी अलाइनमेंट के बजाय वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट की उम्मीद की जा सके. वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट को स्वीकार करने के लिए, गुरुत्वाकर्षण मॉडिफ़ायर को अपडेट किया गया था. कस्टम ऐलाइनमेंट के साथ काम करने के लिए, लाइन, कॉलम, और स्टैक को अपडेट किया गया. (Ib0728)
ImageAsset से पिक्सल की जानकारी पाने के लिए, PixelMap API बनाया गया. (I69ad6)
ProvideContentColor को हटाता है. इसके बजाय, सीधे
Providers
के साथ ContentColorAmbient का इस्तेमाल करें (Iee942)ui-text-compose मॉड्यूल का नाम बदलकर ui-text कर दिया गया है. ui-text में अब CoreText और CoreTextField कॉम्पोज़ेबल शामिल हैं (Ib7d47)
ui-text मॉड्यूल का नाम बदलकर ui-text-core (I57dec) कर दिया गया है
ui-framework/CoreText, CoreTextField composables को ui-text-compose में ले जाया गया. हो सकता है कि आप अपने प्रोजेक्ट में ui-text-compose को शामिल करना चाहें. (I32042)
DrawModifier API को बेहतर बनाना:
- draw() ContentDrawScope के लिए रिसीवर स्कोप बनाया गया
- draw() से सभी पैरामीटर हटाए गए
- DrawScope का इंटरफ़ेस, CanvasScope जैसा ही है
- ContentDrawScope में drawContent() मेथड है (Ibaced, b/152919067)
runOnIdleCompose
औरrunOnUiThread
अब ComposeTestRule पर मौजूद तरीकों के बजाय, ग्लोबल फ़ंक्शन हैं. (Icbe8f)[बदली जा सकने वाली]Kotlin 1.4 प्रॉपर्टी के प्रतिनिधि के ऑप्टिमाइज़ेशन के साथ काम करने के लिए, स्टेट प्रॉपर्टी के प्रतिनिधि ऑपरेटर को एक्सटेंशन में ले जाया गया.
by state { ... }
याby mutableStateOf(...)
का इस्तेमाल जारी रखने के लिए, कॉल करने वाले लोगों को इंपोर्ट जोड़ने होंगे. (I5312c)LayoutCoordinates के लिए, positionInParent और boundsInParent जोड़े गए. (Icacdd, b/152735784)
ColoredRect फ़ंक्शन का इस्तेमाल बंद कर दिया गया है. इसके बजाय, Box(Modifier.preferredSize(width, height).drawBackground(color)) का इस्तेमाल करें. (I499fa, b/152753731)
LayoutResult का नाम बदलकर MeasureResult कर दिया गया. (Id8c68)
लेआउट में बदलाव करने वाले एलिमेंट तय करने के लिए, LayoutModifier2 नाम का नया एपीआई जोड़ा गया है. साथ ही, LayoutModifier (If32ac) को बंद कर दिया गया है
फ़ैक्ट्री एक्सटेंशन फ़ंक्शन (I225e4) के साथ मॉडिफ़ायर प्लस ऑपरेटर को बदला गया
Draggable को मॉडिफ़ायर (Id9b16, b/151959544) में ले जाया गया है
ParentData composable अब काम नहीं करता. आपको ऐसा मॉडिफ़ायर बनाना चाहिए जो ParentDataModifier इंटरफ़ेस को लागू करता हो. इसके अलावा, अगर आपको मेज़र ब्लॉक में लेआउट के चाइल्ड को पहचानने के लिए उन्हें टैग करना है, तो LayoutTag मॉडिफ़ायर का इस्तेमाल करें. (I51368, b/150953183)
अब काम न करने वाला सेंटर कॉम्पोज़ेबल. इसे LayoutSize.Fill + LayoutAlign.Center मॉडिफ़ायर से बदला जाना चाहिए. इसके अलावा, इसे Box या Stack कंपोज़ेबल में से किसी एक के साथ भी बदला जा सकता है. इसके लिए, उस पर सही मॉडिफ़ायर लागू करें (Idf5e0)
वेक्टर ग्राफ़िक्स के लिए, मौजूदा सब-कंपोज़िशन एपीआई को बदलने के लिए, VectorPainter API जोड़ा गया है. सब-कंपोज़िशन का नतीजा, DrawModifier के बजाय VectorPainter ऑब्जेक्ट होता है. VectorPainter के पक्ष में, पिछले DrawVector composables को हटा दिया गया है.
Image(Painter) API का नाम बदलकर PaintBox(Painter) किया गया एक ऐसा वेक्टर कॉम्पोज़ेबल बनाया गया है जो ImageAsset के बजाय, VectorAsset के साथ काम करता है. यह Image composable की तरह ही काम करता है (I9af9a, b/149030271)
LayoutFlexible का नाम बदलकर LayoutWeight कर दिया गया. भरने के लिए, टाइट पैरामीटर का नाम बदला गया. (If4738)
DrawLayerModifier (I00aa4) के पक्ष में RepaintBoundary को हटाया गया
DrawVector को सामान्य कॉम्पोज़ेबल फ़ंक्शन से बदलकर, मॉडिफ़ायर drawVector() में बदल दिया गया है. यह लेआउट के बैकग्राउंड के तौर पर वेक्टर को ड्रॉ करेगा. (I7b8e0)
ओपैसिटी कंपोज़ेबल फ़ंक्शन को drawOpacity मॉडिफ़ायर से बदल दिया गया है. (I5fb62)
composable फ़ंक्शन Clip को मॉडिफ़ायर drawClip() से बदलें. DrawClipToBounds एक ऐसा मॉडिफ़ायर है जिसका इस्तेमाल तब करना आसान होता है, जब आपको सिर्फ़ रेक्टैंगल आकार में लेयर के बाउंड्स तक क्लिप करना हो. (If28eb)
DrawShadow कॉम्पोज़ेबल फ़ंक्शन को drawShadow() में बदल दिया गया है. अब लेयर में बदलाव करने वाले टूल के हिस्से के तौर पर, परछाईयां बनाई जाती हैं. (I0317a)
LayerModifier जोड़ा गया है. यह एक ऐसा मॉडिफ़ायर है जिसकी मदद से, किसी लेआउट के लिए रेंडर नोड जोड़ा जा सकता है. इसकी मदद से, क्लिपिंग, ओपैसिटी, रोटेशन, स्केलिंग, और शैडो सेट किए जा सकते हैं. यह RepaintBoundary की जगह ले लेगा. (I7100d, b/150774014)
androidx.compose.ViewComposer को androidx.ui.node.UiComposer पर ले जाया गया है androidx.compose.Emittable को हटा दिया गया है. यह ComponentNode के साथ काम नहीं करता था. इसलिए, androidx.compose.ViewAdapters को हटा दिया गया है. अब इनका इस्तेमाल नहीं किया जा सकता. Compose.composeInto का इस्तेमाल नहीं किया जा सकता. इसके बजाय,
setContent
याsetViewContent
का इस्तेमाल करें. Compose.disposeComposition को बंद कर दिया गया है. इसके बजाय,setContent
से लौटने वालेComposition
परdispose
तरीके का इस्तेमाल करें. androidx.compose.Compose.subcomposeInto को androidx.ui.core.subcomposeInto में ले जाया गया है ComponentNode#emitInsertAt का नाम बदलकर ComponentNode#insertAt कर दिया गया है ComponentNode#emitRemoveAt का नाम बदलकर ComponentNode#removeAt कर दिया गया है ComponentNode#emitMode का नाम बदलकर ComponentNode#move कर दिया गया है (Idef00)स्क्रीन पर दी गई इमेज एसेट को ड्रॉ करने के साथ-साथ, साइज़/लेआउट को मैनेज करने के लिए, इमेज कॉम्पोज़ेबल बनाया गया. यह कॉम्पोज़ेबल, अपने मूल साइज़ के हिसाब से किसी भी Painter इंस्टेंस को ड्रॉ करने के साथ-साथ, तय किए गए साइज़ या कम से कम साइज़ (Ibcc8f) में भी ड्रॉ करने की सुविधा देता है
अब इस्तेमाल नहीं किया जा सकने वाला रैप कॉम्पोज़ेबल. इसे LayoutAlign मॉडिफ़ायर या स्टैक कॉम्पोज़ेबल (Ib237f) से बदला जा सकता है
WithConstraints में LayoutDirection पैरामीटर (I6d6f7) मिला
लेआउट डायरेक्शन को पैरंट लेआउट नोड से बच्चों तक पहुंचाया गया. लेआउट की दिशा में बदलाव करने वाला मॉडिफ़ायर जोड़ा गया. (I3d955)
स्टैक कॉम्पोनेंट, दाएं से बाएं की दिशा में काम करता है (Ic9e00)
DrawShape कॉम्पोज़ेबल को हटा दिया गया है. इसके बजाय, DrawBackground मॉडिफ़ायर का इस्तेमाल करें. (I7ceb2)
LayoutPadding मॉडिफ़ायर (I9e8da) में, दाईं से बाईं ओर की दिशा का इस्तेमाल करने की सुविधा जोड़ी गई
AdapterList जोड़ा गया, जो एक स्क्रोलिंग सूची कॉम्पोनेंट है. यह सिर्फ़ दिखने वाले आइटम को कॉम्पोज़ और लेआउट करता है. फ़िलहाल, इसकी कुछ समस्याओं के बारे में पता है. जैसे, यह सिर्फ़ वर्टिकल के लिए है और इसमें चाइल्ड एलिमेंट में होने वाले सभी बदलावों को पूरी तरह से मैनेज नहीं किया जाता. (Ib351b)
ComposeFlags.COMPOSER_PARAM
फ़्लैग कोtrue
पर अपडेट किया गया है. इससे, कॉम्पोज़ प्लग इन के लिए कोड जनरेशन की रणनीति बदल जाएगी. हाई लेवल पर, इससे @Composable फ़ंक्शन एक अतिरिक्त सिंथेटिक पैरामीटर के साथ जनरेट होते हैं. इसे बाद में @Composable कॉल में पास किया जाता है, ताकि रनटाइम सही तरीके से फ़ंक्शन को लागू कर सके. यह बाइनरी में एक अहम बदलाव है. हालांकि, यह बदलाव, कंपोज़ के सभी मंज़ूर किए गए इस्तेमाल में सोर्स-लेवल के साथ काम करना जारी रखेगा. (I7971c)कैनवस कॉम्पोनेंट जोड़ा गया. यह कॉम्पोज़ेबल कुछ जगह लेता है (उपयोगकर्ता से मिली जगह). साथ ही, आपको CanvasScope (I0d622) का इस्तेमाल करके ड्रॉ करने की सुविधा देता है
Density और DensityScope को एक इंटरफ़ेस में मर्ज कर दिया गया है. ambientDensity() के बजाय, अब DensityAmbient.current का इस्तेमाल किया जा सकता है. withDensity(density) के बजाय, सिर्फ़ with(density) (I11cb1)
LayoutCoordinates को बदलकर, दी गई AlignmentLines को मैप के बजाय सेट बनाया गया है. साथ ही, LayoutCoordinates को वैल्यू वापस पाने के लिए, get() ऑपरेटर लागू किया गया है. इससे, हर मॉडिफ़ायर के लिए नया कलेक्शन बनाए बिना, मॉडिफ़ायर के लिए सेट की एक या उससे ज़्यादा वैल्यू में बदलाव करना आसान हो जाता है. (I0245a)
स्क्रोलर अब Android के नेटिव फ़्लिंग मोशन व्यवहार को दिखाते हैं. (I922af, b/147493715)
पाबंदियों के एपीआई के प्लैटफ़ॉर्म में सुधार (I0fd15)