मटेरियल लिखना
androidx.compose.material
androidx.compose.material.icons
(सभी कंपोज़ पैकेज के लिए, एपीआई रेफ़रंस दस्तावेज़ देखें)
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
16 जुलाई, 2025 | 1.8.3 | - | 1.9.0-beta03 | - |
संरचना
Compose, androidx
में मौजूद सात Maven Group Id का कॉम्बिनेशन है. हर ग्रुप में, फ़ंक्शन का टारगेट किया गया सबसेट होता है. हर ग्रुप के रिलीज़ नोट का अपना सेट होता है.
इस टेबल में, ग्रुप और रिलीज़ नोट के हर सेट के लिंक के बारे में बताया गया है.
ग्रुप | ब्यौरा |
---|---|
compose.animation | उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, Jetpack Compose ऐप्लिकेशन में ऐनिमेशन बनाएं. |
compose.compiler | @Composable फ़ंक्शन को बदलें और Kotlin कंपाइलर प्लगिन की मदद से ऑप्टिमाइज़ेशन चालू करें. |
compose.foundation | इस्तेमाल के लिए तैयार बिल्डिंग ब्लॉक की मदद से, Jetpack Compose ऐप्लिकेशन लिखें. साथ ही, अपने डिज़ाइन सिस्टम के कॉम्पोनेंट बनाने के लिए, फ़ाउंडेशन को बढ़ाएं. |
compose.material | इस्तेमाल के लिए तैयार मटीरियल डिज़ाइन कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. यह Compose का टॉप लेवल एंट्री पॉइंट है. इसे ऐसे कॉम्पोनेंट उपलब्ध कराने के लिए डिज़ाइन किया गया है जो www.material.io पर बताए गए कॉम्पोनेंट से मेल खाते हों. |
compose.material3 | मटीरियल डिज़ाइन 3 कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. ये कॉम्पोनेंट, मटीरियल डिज़ाइन का अगला वर्शन हैं. Material 3 में, अपडेट की गई थीमिंग और कॉम्पोनेंट शामिल हैं. साथ ही, इसमें Material You की मनमुताबिक बनाने की सुविधाएं भी हैं, जैसे कि डाइनैमिक कलर. इसे Android 12 की नई विज़ुअल स्टाइल और सिस्टम यूज़र इंटरफ़ेस (यूआई) के साथ काम करने के लिए डिज़ाइन किया गया है. |
compose.runtime | Compose के प्रोग्रामिंग मॉडल और स्टेट मैनेजमेंट के बुनियादी बिल्डिंग ब्लॉक. साथ ही, Compose Compiler Plugin के लिए कोर रनटाइम, ताकि उसे टारगेट किया जा सके. |
compose.ui | डिवाइस के साथ इंटरैक्ट करने के लिए, Compose यूज़र इंटरफ़ेस (यूआई) के बुनियादी कॉम्पोनेंट. इनमें लेआउट, ड्रॉइंग, और इनपुट शामिल हैं. |
डिपेंडेंसी का एलान करना
Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.compose.material:material:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.9
वर्शन 1.9.0-beta03
16 जुलाई, 2025
androidx.compose.material:material-*:1.9.0-beta03
रिलीज़ हो गया है. वर्शन 1.9.0-beta03 में ये कमिट शामिल हैं.
वर्शन 1.9.0-beta02
2 जुलाई, 2025
androidx.compose.material:material-*:1.9.0-beta02
रिलीज़ हो गया है. वर्शन 1.9.0-beta02 में ये कमिट शामिल हैं.
वर्शन 1.9.0-beta01
18 जून, 2025
androidx.compose.material:material-*:1.9.0-beta01
रिलीज़ हो गया है. वर्शन 1.9.0-beta01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
Text(AnnotatedString)
में मौजूद हाइपरलिंक में अब डिफ़ॉल्ट रूप से, मटीरियल स्टाइलिंग लागू होती है. (I0e8ed, b/339843816)
वर्शन 1.9.0-alpha04
4 जून, 2025
androidx.compose.material:material-*:1.9.0-alpha04
रिलीज़ हो गया है. वर्शन 1.9.0-alpha04 में ये कमिट शामिल हैं.
वर्शन 1.9.0-alpha03
20 मई, 2025
androidx.compose.material:material-*:1.9.0-alpha03
रिलीज़ हो गया है. वर्शन 1.9.0-alpha03 में ये कमिट शामिल हैं.
वर्शन 1.9.0-alpha02
7 मई, 2025
androidx.compose.material:material-*:1.9.0-alpha02
रिलीज़ हो गया है. वर्शन 1.9.0-alpha02 में ये कमिट शामिल हैं.
वर्शन 1.9.0-alpha01
23 अप्रैल, 2025
androidx.compose.material:material-*:1.9.0-alpha01
रिलीज़ हो गया है. वर्शन 1.9.0-alpha01 में ये कमिट शामिल हैं.
व्यवहार में बदलाव
- Compose के साथ शिप किए गए Lint चेक के लिए, अब AGP का कम से कम 8.8.2 वर्शन ज़रूरी है. अगर AGP को अपग्रेड नहीं किया जा सकता, तो
gradle.properties
मेंandroid.experimental.lint.version=8.8.2
(या नया वर्शन) का इस्तेमाल करके, Lint को अपग्रेड किया जा सकता है. आईडीई में कंपोज़ के लिंट चेक चलाने के लिए, Android Studio Ladybug या इसके बाद का वर्शन ज़रूरी है.
एपीआई में हुए बदलाव
- Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है. (Idb6b5)
- टेक्स्ट फ़ील्ड डेकोरेशन बॉक्स एपीआई अब एक्सपेरिमेंटल नहीं हैं (I7480f, b/269651160)
runWithTimingDisabled
को बंद करें औरrunWithMeasurementDisabled
का इस्तेमाल करें. इससे यह पता चलता है कि सभी मेट्रिक को रोक दिया गया है. इसके अलावा,MicrobenchmarkScope
सुपरक्लास को दिखाएं, क्योंकिrunWithMeasurementDisabled
फ़ंक्शन को फिर से एलान करके ऐक्सेस नहीं किया जा सकता. ऐसा इसलिए, क्योंकि यह इनलाइन है. (I9e23b, b/389149423, b/149979716)
गड़बड़ियां ठीक की गईं
ExposedDropdownMenu
, पुराने वर्शन के साथ बाइनरी तौर पर काम करता है. (I133f7)- अगर प्रोग्रेस के तौर पर
Float.NaN
पास किया जाता है, तो प्रोग्रेस और लोडिंग इंडिकेटर में क्रैश होने की समस्या को ठीक किया गया है. (I4fa96, b/352364576)
वर्शन 1.8
वर्शन 1.8.3
18 जून, 2025
androidx.compose.material:material-*:1.8.3
रिलीज़ हो गया है. वर्शन 1.8.3 में ये कमिट शामिल हैं.
वर्शन 1.8.2
20 मई, 2025
androidx.compose.material:material-*:1.8.2
रिलीज़ हो गया है. वर्शन 1.8.2 में ये कमिट शामिल हैं.
वर्शन 1.8.1
7 मई, 2025
androidx.compose.material:material-*:1.8.1
रिलीज़ हो गया है. वर्शन 1.8.1 में ये कमिट शामिल हैं.
वर्शन 1.8.0
23 अप्रैल, 2025
androidx.compose.material:material-*:1.8.0
रिलीज़ हो गया है. वर्शन 1.8.0 में ये कमिट शामिल हैं.
वर्शन 1.8.0-rc03
9 अप्रैल, 2025
androidx.compose.material:material-*:1.8.0-rc03
रिलीज़ हो गया है. वर्शन 1.8.0-rc03 में ये कमिट शामिल हैं.
वर्शन 1.8.0-rc02
26 मार्च, 2025
androidx.compose.material:material-*:1.8.0-rc02
रिलीज़ हो गया है. वर्शन 1.8.0-rc02 में ये कमिट शामिल हैं.
वर्शन 1.8.0-rc01
12 मार्च, 2025
androidx.compose.material:material-*:1.8.0-rc01
रिलीज़ हो गया है. वर्शन 1.8.0-rc01 में ये कमिट शामिल हैं.
वर्शन 1.8.0-beta03
26 फ़रवरी, 2025
androidx.compose.material:material-*:1.8.0-beta03
रिलीज़ हो गया है. वर्शन 1.8.0-beta03 में ये कमिट शामिल हैं.
वर्शन 1.8.0-beta02
12 फ़रवरी, 2025
androidx.compose.material:material-*:1.8.0-beta02
रिलीज़ हो गया है. वर्शन 1.8.0-beta02 में ये कमिट शामिल हैं.
वर्शन 1.8.0-beta01
29 जनवरी, 2025
androidx.compose.material:material-*:1.8.0-beta01
रिलीज़ हो गया है. वर्शन 1.8.0-beta01 में ये कमिट शामिल हैं.
वर्शन 1.8.0-alpha08
15 जनवरी, 2025
androidx.compose.material:material-*:1.8.0-alpha08
रिलीज़ हो गया है. वर्शन 1.8.0-alpha08 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- यह
displayCutout
को इनसेट के उस ग्रुप में जोड़ता है जिसे Material कॉम्पोनेंट डिफ़ॉल्ट रूप से ध्यान में रखते हैं, ताकि कॉन्टेंट, डिसप्ले कटआउट के साथ ओवरलैप न हो.- यह व्यवहार में होने वाला बदलाव है. इससे, डिसप्ले कटआउट के आस-पास मौजूद इंसर्ट-अवेयर कॉम्पोनेंट के काम करने के तरीके पर असर पड़ेगा. इसमें, Material 3 कॉम्पोनेंट के लिए
WindowInsets
पैरामीटर की डिफ़ॉल्ट वैल्यू और कॉम्पोनेंट में दी गईWindowInsets
वैल्यू शामिल होती हैं. - यह Material 2 और Material 3, दोनों के लिए डिफ़ॉल्ट ऑब्जेक्ट सेट करता है. अगर इस बदलाव की वजह से कोई समस्या होती है, तो हर कॉम्पोनेंट के लिए
WindowInsets
पैरामीटर को मैन्युअल तरीके से सेट करें. (I43ee9, b/362508045)
- यह व्यवहार में होने वाला बदलाव है. इससे, डिसप्ले कटआउट के आस-पास मौजूद इंसर्ट-अवेयर कॉम्पोनेंट के काम करने के तरीके पर असर पड़ेगा. इसमें, Material 3 कॉम्पोनेंट के लिए
ComposeContentTestRule.setContent
का इस्तेमाल करते समय, टेस्ट किए जा रहे कंपोज़ेबल के लिए होस्ट के तौर पर इस्तेमाल की जाने वाली गतिविधि अब थीमTheme.Material.Light.NoActionBar
का इस्तेमाल करती है. इससे एसडीके 35 को टारगेट करते समय,ActionBar
को टेस्ट कॉन्टेंट के साथ ओवरलैप होने से रोका जा सकेगा. इस व्यवहार से ऑप्ट आउट करने के लिए,ui-test-manifest
पर निर्भरता हटाएं. साथ ही, अपने टेस्ट ऐप्लिकेशन केAndroidManifest.xml
मेंComponentActivity
के लिए, अपनी पसंद की थीम के साथ गतिविधि की एंट्री जोड़ें. (I7ae1b, b/383368165)
बाहरी योगदान
ModalBottomSheetLayout
मेंsheetGesturesEnabled
को दिखाएं. (I3f032, b/329543529)
वर्शन 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 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- Optimize Scaffold
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
के स्टेबल वर्शन पर पिन करने के लिए,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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- सेफ़ आर्ग्युमेंट के साथ bottomSheet बनाने के लिए, नया
NavGraphBuilder.bottomSheet
बिल्डर जोड़ा गया है ((I28589, I777db, b/351858980)) TextField
औरOutlinedTextField
के नए ओवरलोड जोड़े गए हैं, जोTextFieldState
लेते हैं (I3b74c)
वर्शन 1.7
वर्शन 1.7.8
12 फ़रवरी, 2025
androidx.compose.material:material-*:1.7.8
रिलीज़ हो गया है. वर्शन 1.7.8 में ये कमिट शामिल हैं.
वर्शन 1.7.7
29 जनवरी, 2025
androidx.compose.material:material-*:1.7.7
रिलीज़ हो गया है. 1.7.6 वर्शन में कोई बदलाव नहीं किया गया है.
वर्शन 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
को स्वीकार करते हैं और डिफ़ॉल्ट रूप से शून्य पर सेट होते हैं. अगर आपने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 थीम वाले लिंक पाने के लिए एपीआई को अपडेट किया गया. खास तौर पर, थीम वाले
TextDefaults
बनाने के लिएTextDefaults
से तरीके हटा दिए गए हैं. साथ ही, थीम वाले लिंक के साथ एचटीएमएल पार्स करने की सुविधा भी हटा दी गई है.LinkAnnotations
इसके बजाय,TextLinkStyles
क्लास जोड़ी गई है. इससे टेक्स्ट कंपोज़ेबल के पैरामीटर के तौर पर लिंक को स्टाइल किया जा सकता है. (I31b93)
वर्शन 1.7.0-alpha08
1 मई, 2024
androidx.compose.material:material-*:1.7.0-alpha08
रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
TextFieldDecorationBox
औरOutlinedTextFieldDecorationBox
परbackgroundColor
लागू न होने की समस्या ठीक की गई. डेकोरेशन बॉक्स अबshape
पैरामीटर स्वीकार करते हैं. (I371c2, b/307694651)RippleConfiguration#isEnabled
को हटा दिया गया है औरLocalRippleConfiguration
को नल के तौर पर सेट किया गया है. रिपल बंद करने के लिए,isEnabled = false
के साथisEnabled = false
देने के बजाय,LocalRippleConfiguration
कोnull
दें.RippleConfiguration
(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
को अब इस Maven ग्रुप में हर आर्टफ़ैक्ट के एक ही वर्शन का इस्तेमाल करने की ज़रूरत नहीं है. उपयोगकर्ता, 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
आर्टफ़ैक्ट जोड़ा गया है. इससे Navigation Compose का इस्तेमाल करते समय, बॉटम शीट को डेस्टिनेशन के तौर पर इस्तेमाल किया जा सकता है. यह Accompanist Navigation Material library की जगह लेगी. (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
पैरामीटर अब आखिरी पैरामीटर नहीं है, ताकि ट्रेलिंग लैम्डा के साथ कोई भ्रम न हो.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 से हटा दिया गया है. साथ ही, material और अन्य डिज़ाइन सिस्टम लाइब्रेरी में नए रिपल औरRippleConfiguration
एपीआई जोड़े गए हैं.जिन कॉम्पोनेंट में पहले
MutableInteractionSource
स्वीकार किया जाता था और डिफ़ॉल्ट रूप से{ MutableInteractionSource() }
को याद रखा जाता था वे अब शून्य हो सकने वालेMutableInteractionSource
को स्वीकार करते हैं और डिफ़ॉल्ट रूप से शून्य पर सेट होते हैं. अगर आपने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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
autoMirror
पैरामीटर लेने वाले ओवरलोड के पक्ष में,materialIcon
फ़ंक्शन को बंद करें. (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
को Drawer कंपोज़ेबल में रैप करें. उदाहरण के लिए,BottomSheetScaffoldWithDrawerSample
देखें. (I1dcc8)
एपीआई में हुए बदलाव
- एक अस्थायी फ़्लैग जोड़ा गया है. इससे यह कंट्रोल किया जा सकेगा कि मेज़रमेंट के दौरान या प्लेसमेंट के दौरान, Scaffold को अपने चाइल्ड विजेट का मेज़रमेंट करना चाहिए या नहीं. डिफ़ॉल्ट रूप से, इसे मेज़रमेंट में मेज़र किया जाएगा. अगर आपको नई सुविधा से जुड़ी कोई समस्या आ रही है, तो कृपया इसकी शिकायत करें. (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
के अंदर मौजूद Scaffold के अंदरSubcomposition
का इस्तेमाल करने वाले कुछ कॉम्पोनेंट (जैसे,BottomSheetScaffold
) बहुत पहले ही अपना साइज़ पढ़ने की कोशिश कर रहे थे. (If2c5d) DropdownMenu
'soffset
की कैलकुलेशन में सुधार किया गया है, ताकि 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)- Material 2 में मौजूद
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)
एपीआई में हुए बदलाव
- मटेरियल के
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 एपीआई में किए गए बदलावों को शामिल किया गया है.BottomSheetState
केconfirmStateChange
पैरामीटर का नाम बदलकरconfirmValueChange
कर दिया गया है.progress
को अब फ़्लोट वैल्यू के तौर पर दिखाया जाता है.animateTo
औरsnapTo
इंटरनल हैं. इसके बजाय,expand()
औरcollapse()
का इस्तेमाल करें.direction
औरoverflow
को हटा दिया गया है.offset
कोrequireOffset()
से बदल दिया गया है. I323b4- Drawer में मौजूद
snapTo
फ़ंक्शन को, एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई के तौर पर मार्क करें. (Ib9c18, b/261425368) - सर्कुलर प्रोग्रेस इंडिकेटर के लिए, ट्रैक कलर पैरामीटर जोड़ा गया. साथ ही, सर्कुलर और लीनियर प्रोग्रेस इंडिकेटर, दोनों के लिए स्ट्रोक कैप पैरामीटर जोड़ा गया. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
, औरrememberModalBottomSheetState
केconfirmStateChange
का नाम बदलकरconfirmValueChange
कर दिया गया है. (Ib48d1)Modifier.minimumInteractiveComponentSize
जोड़ें. अगर एलिमेंट का साइज़ छोटा है, तो टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48dp साइज़ का इस्तेमाल किया जा सकता है. (I33f58, b/258495559)ModalBottomSheetLayout
में स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए हैं.ModalBottomSheetState
के animateTo फ़ंक्शन में अबanimationSpec
पैरामीटर का इस्तेमाल नहीं किया जा सकता. साथ ही, अब ऑफ़सेट को शून्य पर सेट किया जा सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (Ia2e79)@JvmDefaultWithCompatibility
एनोटेशन जोड़ा जा रहा है (I8f206)ModalDrawer. DrawerState
केanimateTo
में स्वाइप किए जा सकने वाले एपीआई में किए गए बदलावों को शामिल किया गया है. इन्हें खोलने और बंद करने के तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब शून्य हो सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (I3de9e)- ड्रॉवर और शीट को अपडेट किया गया है, ताकि अगर जेस्चर स्क्रोल इवेंट बन सकते हैं, तो प्रेस में सही तरीके से देरी हो.
- मटेरियल और मटेरियल3 टेक्स्ट,
TextField
, औरOutlinedTextField
मेंminLines
पैरामीटर जोड़ा गया है. इससे लाइनों की संख्या (I4af1d) के हिसाब से कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है
गड़बड़ियां ठीक की गईं
- इस अपडेट में, उस समस्या को ठीक किया गया है जिसमें
pullRefresh
, वेलोसिटी का इस्तेमाल नहीं कर रहा था. इस वजह से, ओवरस्क्रॉल दिख रहा था. साथ ही,Modifier.pullRefresh
मेंonRelease
लैम्ब्डा के एपीआई सिग्नेचर में बदलाव किया गया है, ताकि इस्तेमाल की गई वेलोसिटी के लिए फ़्लोट वैल्यू दिखाई जा सके (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
, औरBottomDrawerState
अब प्रोग्रेस प्रॉपर्टी दिखाते हैं. यह प्रॉपर्टी, मौजूदा (सेटल्ड) ऐंकर और स्वाइप की दिशा में सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस दिखाती है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- डायलॉग की चौड़ाई में फ़िट होने के लिए, कार्रवाइयों को एक-दूसरे के ऊपर स्टैक करने पर, पुष्टि करने की कार्रवाई के नीचे
AlertDialog
खारिज करने की कार्रवाई दिखने की समस्या ठीक की गई. इस फ़िक्स से, मटीरियल डिज़ाइन स्पेसिफ़िकेशन के मुताबिक लागू करने में मदद मिलती है. (I029de, b/235454277) gesturesEnabled
को false पर सेट करने पर,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 प्रॉपर्टी के ज़रिए ऐक्सेस किया जा सकता है. क्लास लेवल के पुराने तरीके, जैसे कि खोलें/बड़ा करें/बंद करें और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 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- chipgroup के रिफ़्लो का सैंपल जोड़ा गया. सिंगल लाइन चिपग्रुप के सैंपल में, चाइल्ड चिप के बीच हॉरिज़ॉन्टल पैडिंग को स्पेसिफ़िकेशन के मुताबिक अपडेट करें. (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
जोड़ें. अगर एलिमेंट का साइज़ छोटा है, तो टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48dp साइज़ का इस्तेमाल किया जा सकता है. (I33f58, b/258495559)ModalDrawer
में स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए हैं.DrawerState
केanimateTo
को ओपन और क्लोज़ करने के तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब नल हो सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffset
का इस्तेमाल करें. (I3de9e)- मटेरियल और मटेरियल3 टेक्स्ट,
TextField
, औरOutlinedTextField
मेंminLines
पैरामीटर जोड़ा गया है. इससे लाइनों की संख्या (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) का इस्तेमाल करके भूमिकाएं सेट करते थे
- एक्सटेंडेड मटीरियल आइकॉन में छोटा अपडेट किया गया है. इसमें भरे हुए
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
लैम्ब्डा के एपीआई सिग्नेचर में बदलाव किया गया है, ताकि इस्तेमाल की गई वेलोसिटी के लिए फ़्लोट वैल्यू दिखाई जा सके (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) - Drawer में मौजूद
snapTo
फ़ंक्शन को, एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई के तौर पर मार्क करें. (Ib9c18, b/261425368) - सर्कुलर प्रोग्रेस इंडिकेटर के लिए, ट्रैक कलर पैरामीटर जोड़ा गया. साथ ही, सर्कुलर और लीनियर प्रोग्रेस इंडिकेटर, दोनों के लिए स्ट्रोक कैप पैरामीटर जोड़ा गया. (Ie668c, b/216325962, b/222964817)
ModalBottomSheetState
,ModalBottomSheetState.Saver
, औरrememberModalBottomSheetState
केconfirmStateChange
का नाम बदलकरconfirmValueChange
कर दिया गया है. (Ib48d1)- बंद किए गए-छिपाए गए फ़ंक्शन के ज़्यादातर रिटर्न टाइप में null वैल्यू हो सकती है (Ibf7b0)
Modifier.minimumInteractiveComponentSize
जोड़ें. अगर एलिमेंट का साइज़ छोटा है, तो टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48dp साइज़ का इस्तेमाल किया जा सकता है. (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)- स्क्रोल करने की जानकारी के लिए, Modifier API जोड़ा गया. (I2ba9d, b/203141462)
- इस कुकी का इस्तेमाल
Clickable
में किया जाता है. इससे प्रेस इंटरैक्शन को सही तरीके से डिले किया जा सकता है. ऐसा तब किया जाता है, जब जेस्चर स्क्रोल इवेंट बन सकते हैं. Clickables
के अंदर इस्तेमाल किए जाने पर,Clickables
के रिपल इफ़ेक्ट को सही तरीके से डिले न करने की समस्या ठीक की गई.Scrollable ViewGroup
- ड्रॉवर और शीट को अपडेट किया गया है, ताकि अगर जेस्चर स्क्रोल इवेंट बन सकते हैं, तो प्रेस में सही तरीके से देरी हो.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसमें
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)- मटेरियल और मटेरियल3 टेक्स्ट,
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 में Pull-To-Refresh कॉम्पोनेंट जोड़ें (I29168).
- RangeSlider (I3b79a) में, पैरामीटर का नाम values से बदलकर value कर दिया गया है.
वर्शन 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 में Pull-To-Refresh कॉम्पोनेंट जोड़ें (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 तक कम कर दिया गया है.
Compose डायलॉग और पॉप-अप के लिए, ज़्यादा से ज़्यादा एलिवेशन को 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) में पैरामीटर का नाम values से बदलकर value करें
गड़बड़ियां ठीक की गईं
- बैज के सैंपल को अपडेट करें, ताकि कॉन्टेंट के ब्यौरे के बारे में ज़्यादा काम की जानकारी दी जा सके. (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
कंपोज़ेबल का नाम बदलकरTextFieldDefaults.BorderBox
कर दिया गया है. यह कंपोज़ेबल,OutlinedTextField
में बॉर्डर स्ट्रोक बनाता है. (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) में हुए बदलावों के मुताबिक, क्लिक किए जा सकने वाले Card API में अपडेट
- Material 2 Surface API में अपडेट किया गया है. इससे चुनने और टॉगल करने लायक़ Surface के लिए, ज़्यादा ओवरलोड किए गए फ़ंक्शन जोड़े गए हैं. (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
के लिए, सिर्फ़ व्यू पर भरोसा करने वाले पिछले बदलाव को वापस लाया गया है. साथ ही, अब फिर से विंडो की ज़रूरत है. कुछ विंडो फ़्लैग मैनेज करने के लिए, विंडो ज़रूरी है.WindowCompat.getInsetsController
के पक्ष मेंViewCompat.getWindowInsetsController
को बंद कर दिया गया है, ताकि यह पक्का किया जा सके कि सही विंडो का इस्तेमाल किया गया हो. जैसे, अगर व्यू किसी डायलॉग में है. (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
के साथ करने से, आपको मटीरियल डिज़ाइन टेक्स्ट फ़ील्ड के आधार पर कस्टम टेक्स्ट फ़ील्ड बनाने में मदद मिलेगी. हालांकि, इसमें आपको पसंद के मुताबिक बनाने के ज़्यादा विकल्प मिलेंगे.- टेक्स्ट फ़ील्ड में हॉरिज़ॉन्टल और वर्टिकल पैडिंग को अडजस्ट करने का तरीका बताया गया है. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
ComposableTarget
,ComposableTargetMarker
, औरComposableOpenTarget
जोड़े गए हैं. इनकी मदद से, कंपाइल टाइम रिपोर्टिंग की जा सकती है. इससे यह पता चलता है कि किसी ऐप्लिकेशन को टारगेट करने वाले कंपोज़ेबल फ़ंक्शन को कब कॉल किया गया था.ज़्यादातर मामलों में, कंपोज़ कंपाइलर प्लगिन से एनोटेशन का अनुमान लगाया जा सकता है. इसलिए, इन एनोटेशन का सीधे तौर पर इस्तेमाल कम ही करना चाहिए. ऐसे मामले जिनमें अनुमान नहीं लगाया जा सकता उनमें कस्टम ऐप्लिकेशन बनाना और उसका इस्तेमाल करना, ऐब्स्ट्रैक्ट कंपोज़ेबल फ़ंक्शन (जैसे कि इंटरफ़ेस के तरीके), कंपोज़ेबल लैम्ब्डा (स्थानीय वैरिएबल और पैरामीटर का अनुमान लगाया जाता है) वाले फ़ील्ड या ग्लोबल वैरिएबल या
ComposeNode
या उससे जुड़े कंपोज़ेबल फ़ंक्शन का इस्तेमाल करना शामिल है.कस्टम ऐप्लिकेशन के लिए,
ComposeNode
याReusableComposeNode
को कॉल करने वाले कंपोज़ेबल फ़ंक्शन को फ़ंक्शन और किसी भी कंपोज़ेबल लैम्डा पैरामीटर टाइप के लिए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
जोड़ा गया है जो कॉम्प्लेक्स लॉजिक के बिना मौजूदा तरीकों के ओवरलोड हैं. इससे, कंपाइलर के जनरेट किए गए मेमोइज़ेशन चेक (equals) कम हो जाते हैं. ये चेक, उन सभी पैरामीटर के लिए होते हैं जो कॉल किए गए इनर फ़ंक्शन में दोहराए जाते हैं. (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 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
NullPointerException
कोandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
पर ठीक किया गया (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 के हिसाब से, मटीरियल कॉम्पोनेंट अपने लेआउट स्पेस को बढ़ाएंगे, ताकि टच टारगेट साइज़ के लिए, मटीरियल सुलभता के दिशा-निर्देशों का पालन किया जा सके. उदाहरण के लिए, अगर आपने बटन का साइज़ छोटा सेट किया है, तब भी बटन का टच टारगेट कम से कम 48x48dp तक बढ़ जाएगा. इससे Compose Material, Material Design Components के जैसा ही काम करता है. साथ ही, Views और 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 Components के जैसा ही काम करता है. साथ ही, Views और Compose को एक साथ इस्तेमाल करने पर, दोनों एक जैसा काम करते हैं. इस बदलाव से यह भी पक्का होता है कि Compose Material कॉम्पोनेंट का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाते समय, टच टारगेट की पहुंच से जुड़ी ज़रूरी शर्तें पूरी हों.
गड़बड़ियां ठीक की गईं
- कम से कम टच टारगेट मॉडिफ़ायर की जांच करते समय, लेआउट इंस्पेक्टर के लिए डीबग करने से जुड़ी कुछ बेहतर जानकारी जोड़ी गई है. (aosp/1955036)
वर्शन 1.1.0-rc01
15 दिसंबर, 2021
androidx.compose.material:material-*:1.1.0-rc01
रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
Checkbox
es के लिए लागू किए गए कॉर्नर रेडियस को ठीक करें (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)
TextField
औरDropdownMenu
के साथExposedDropdownMenuBox
के आधार परExposedDropdownMenu
को लागू करना (If60b2)dismissOnOutsideClick
कोPopupProperties
में जोड़ा गया है. यहdismissOnClickOutside
की जगह पर जोड़ा गया है, जिसका अब इस्तेमाल नहीं किया जा सकता. नई प्रॉपर्टी को क्लिक की पोज़िशन और ऐंकर बाउंड्री मिलती है. इससे यह बेहतर तरीके से कंट्रोल किया जा सकता है कि onDismissRequest को लागू किया जाना चाहिए या नहीं. उदाहरण के लिए, यह ऐंकर पर किए गए टच के लिए ऐंकर को खारिज होने से रोकने के लिए काम आ सकता है.updateAndroidWindowManagerFlags
कोPopupProperties
में जोड़ा गया है. इससे Android WindowManager को पॉप-अप से पास किए गए फ़्लैग पर कम-लेवल का कंट्रोल मिलता है. लैंबडा का पैरामीटर, PopupProperties वैल्यू से कैलकुलेट किए गए फ़्लैग होंगे.इनसे WindowManager फ़्लैग मिलेंगे. उदाहरण के लिए, focusable. लैंबडा का नतीजा, फ़ाइनल फ़्लैग होगा. इसे 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 को बढ़ाता है, ताकि leadingColor और trailingColor को InteractionSource दिया जा सके. इससे, फ़ोकस की स्थिति के हिसाब से TextField के दिखने के तरीके में बदलाव किया जा सकता है. (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
कंपोज़ेबल को अपडेट किया गया है, ताकि डिसप्ले डेंसिटी के बावजूद सिंगल पिक्सल डिवाइडर बनाने के लिए, थिकनेस पैरामीटर के लिए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
तरीके को अपडेट किया गया है. यह सोर्स और डेस्टिनेशन रेक्ट का इस्तेमाल करता है, ताकि फ़िल्टर क्वालिटी के वैकल्पिक पैरामीटर का इस्तेमाल किया जा सके. यह पिक्सल आर्ट के लिए फ़ायदेमंद है. पिक्सल आर्ट को पिक्सल के आधार पर बड़ा करने पर, उसे पिक्सलेट किया जाता है. BitmapPainter और Image कंपोज़ेबल को अपडेट किया गया है, ताकि वे FilterQuality पैरामीटर का इस्तेमाल कर सकें. हालांकि, यह पैरामीटर इस्तेमाल करना ज़रूरी नहीं है (Ie4fb0, b/180311607)- BadgeBox का नाम बदलकर BadgedBox कर दिया गया है. साथ ही, Badge कंपोज़ेबल को स्वीकार करने के लिए पैरामीटर बदल दिए गए हैं. बैज कॉम्पोनेंट जोड़ा गया है. यह BadgedBox के लिए, बैज का सामान्य कॉन्टेंट होता है. (I639c6)
- NavigationRail कॉम्पोनेंट जोड़ा गया. इसे इस्तेमाल करने के बारे में जानने के लिए, दस्तावेज़ और सैंपल देखें (I8de77)
गड़बड़ियां ठीक की गईं
- बॉटम में अलाइन किए गए NavigationRail का सैंपल और Catalog ऐप्लिकेशन का डेमो जोड़ा गया. (I3cffc)
- डायलॉग बॉक्स अब प्लैटफ़ॉर्म के साइज़िंग के हिसाब से काम करते हैं. इस व्यवहार को बदलने के लिए, usePlatformDefaultWidth को false पर सेट करें. (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
को false पर सेट करें. (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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- OutlinedTextField में Shape पैरामीटर जोड़ा गया है, ताकि बॉर्डर के शेप को पसंद के मुताबिक बनाया जा सके (I8f39e, b/181322957)
- TextOverflow को इनलाइन क्लास में बदल दिया गया है. (I433af)
गड़बड़ियां ठीक की गईं
- BottomDrawer, BackdropScaffold, और ModalBottomSheetLayout में स्क्रिम तब गायब हो जाएगा, जब Color.Unspecified पास किया जाएगा (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
में दिए जाते हैं. फ़ाइल में हर लाइन के लिए एक नियम तय किया जाता है. इस मामले में, नियम एक ऐसा पैटर्न होता है जिसका इस्तेमाल लाइब्रेरी में मौजूद तरीकों या क्लास से मिलान करने के लिए किया जाता है. इन नियमों का सिंटैक्स, एआरटी प्रोफ़ाइल के ऐसे फ़ॉर्मैट का सुपरसेट है जिसे आसानी से पढ़ा जा सकता है. इसका इस्तेमाल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
फ़्लैग वाली किसी भी विधि से पता चलता है कि यह एक ऐसी विधि है जिसे स्टार्टअप के बाद कॉल किया जाता है.इस फ़ाइल में मौजूद क्लास से पता चलता है कि इसका इस्तेमाल स्टार्टअप के दौरान किया जाता है. इसलिए, इसे हीप में पहले से ही असाइन कर दिया जाना चाहिए, ताकि क्लास लोडिंग की लागत से बचा जा सके.
यह कैसे काम करता है?
- लाइब्रेरी इन नियमों को तय कर सकती हैं. ये नियम, एएआर आर्टफ़ैक्ट में पैकेज किए जाएंगे. इसके बाद, जब इन आर्टफ़ैक्ट को शामिल करके कोई APK बनाया जाता है, तो इन नियमों को एक साथ मर्ज कर दिया जाता है. मर्ज किए गए नियमों का इस्तेमाल, APK के लिए खास तौर पर तैयार की गई कॉम्पैक्ट बाइनरी एआरटी प्रोफ़ाइल बनाने के लिए किया जाता है. इसके बाद, जब डिवाइसों पर APK इंस्टॉल किया जाता है, तब ART इस प्रोफ़ाइल का इस्तेमाल कर सकता है. इससे ऐप्लिकेशन के किसी खास सबसेट को पहले से कंपाइल किया जा सकता है, ताकि ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सके. खास तौर पर, पहली बार ऐप्लिकेशन चलाने पर. ध्यान दें कि इससे डीबग किए जा सकने वाले ऐप्लिकेशन पर कोई असर नहीं पड़ेगा.
वर्शन 1.0.0-beta08
2 जून, 2021
androidx.compose.material:material-*:1.0.0-beta08
रिलीज़ हो गया है. वर्शन 1.0.0-beta08 में ये कमिट शामिल हैं.
नई सुविधाएं
एपीआई के काम करने के तरीके में बदलाव
- BEHAVIOUR-BREAKING: कार्ड अब क्लिक का इस्तेमाल करता है. इसलिए,
Card(Modifier.clickable)
के ज़रिए जोड़े गए क्लिक काम नहीं करेंगे. कृपया कार्ड के नए एक्सपेरिमेंटल ओवरलोड का इस्तेमाल करें, जो onClick को स्वीकार करता है. (Ia8744, b/183775620)- नया कार्ड ओवरलोड जोड़ा गया है. यह क्लिक के साथ-साथ क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, इंटरैक्शन सोर्स, चालू/बंद किया गया.
Modifier.clickable
के साथ, क्लिक न किए जा सकने वाले सामान्य कार्ड का इस्तेमाल नहीं किया जा सकता. ऐसा इसलिए, क्योंकि इन मामलों में कार्ड, रिपल इंडिकेशन को क्लिप नहीं करेगा.
- नया कार्ड ओवरलोड जोड़ा गया है. यह क्लिक के साथ-साथ क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, इंटरैक्शन सोर्स, चालू/बंद किया गया.
- BEHAVIOUR-BREAKING: Surface अब क्लिक का इस्तेमाल करता है. इसलिए,
Surface(Modifier.clickable)
के ज़रिए जोड़े गए क्लिक काम नहीं करेंगे. कृपया Surface के नए एक्सपेरिमेंटल ओवरलोड का इस्तेमाल करें, जो onClick को स्वीकार करता है. (I73e6c, b/183775620)- एक नया Surface ओवरलोड जोड़ा गया है. यह क्लिक के साथ-साथ क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, interactionSource, चालू/बंद.
Modifier.clickable
के साथ, क्लिक नहीं किए जा सकने वाले सामान्य Surface का इस्तेमाल नहीं किया जा सकता. इसकी वजह यह है कि ऐसे मामलों में, Surface पर रिपल इंडिकेशन नहीं दिखेगा.
- एक नया Surface ओवरलोड जोड़ा गया है. यह क्लिक के साथ-साथ क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, interactionSource, चालू/बंद.
एपीआई में हुए बदलाव
FabPosition
को enum से इनलाइन क्लास में बदल दिया गया है, ताकि आने वाले समय में इसे बढ़ाया जा सके (I030fb)- नए enum वैल्यू जोड़ने पर, when स्टेटमेंट के साथ होने वाली समस्याओं से बचने के लिए, enum के इस्तेमाल को इनलाइन क्लास में बदला गया है. (I2b5eb)
- इससे क्लिक किए जा सकने वाले / टॉगल किए जा सकने वाले एलिमेंट में टैप टाइमआउट जुड़ जाता है. इससे स्क्रोल / खींचने के दौरान रिपल इफ़ेक्ट नहीं दिखता (Ia2704, b/168524931)
- ContentDescription और Text सिमैंटिक्स प्रॉपर्टी अब सिंगल वैल्यू नहीं, बल्कि सूचियां हैं. इससे उन्हें जोड़ने के बजाय, मर्ज किया जा सकता है. इन बदलावों का इस्तेमाल करने के लिए, बेहतर टेस्टिंग एपीआई भी उपलब्ध कराए गए हैं (Ica6bf, b/184825850)
Modifier.focusModifier()
का अब इस्तेमाल नहीं किया जा सकता. इसकी जगहModifier.focusTarget()
(I6c860) का इस्तेमाल किया जा सकता हैFocusState
enum कोFocusState
इंटरफ़ेस (Iccc1a, b/187055290) से बदला गयाLocalRippleNativeRendering
को हटा दिया गया है, क्योंकि अब View-backed ripple का इस्तेमाल किया जा सकता है (I7fab3, b/188569367)
गड़बड़ियां ठीक की गईं
Modifier.onGloballyPositioned()
को बदलकर, इस मॉडिफ़ायर के कोऑर्डिनेट को मॉडिफ़ायर चेन में रिपोर्ट करने के लिए इस्तेमाल किया गया. इससे सभी मॉडिफ़ायर लागू करने के बाद लेआउट के कोऑर्डिनेट रिपोर्ट नहीं किए जाते. इसका मतलब है कि अब मॉडिफ़ायर के क्रम से यह तय होगा कि कौनसे कोऑर्डिनेट रिपोर्ट किए जाएंगे. (Ieb67d, b/177926591)- मौजूदा Compose Material कैटलॉग के लिए README जोड़ा गया. (If9191)
वर्शन 1.0.0-beta07
18 मई, 2021
androidx.compose.material:material-*:1.0.0-beta07
रिलीज़ हो गया है. वर्शन 1.0.0-beta07 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Navigation Compose में रूट सपोर्ट के लिए, अब आपको एक्सटेंशन के तरीकों का इस्तेमाल करने की ज़रूरत नहीं है. (I22beb, b/172823546)
वर्शन 1.0.0-beta06
5 मई, 2021
androidx.compose.material:material-*:1.0.0-beta06
रिलीज़ हो गया है. वर्शन 1.0.0-beta06 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Ripple को Android डिवाइसों पर,
RippleDrawable
का इस्तेमाल करने के लिए माइग्रेट किया गया है. इसका मतलब है कि रिपल ऐनिमेशन, RenderThread पर होंगे. इसलिए, यूज़र इंटरफ़ेस (यूआई) थ्रेड पर लोड होने पर भी, ये आसानी से दिखेंगे. जैसे, स्क्रीन के बीच नेविगेट करते समय. इससे रिपल के एपीआई में कोई बदलाव नहीं होता. हालांकि, इस बदलाव की वजह से, रिपल के व्यवहार में बदलाव हो सकते हैं. माइग्रेशन में मदद करने के लिए,LocalRippleNativeRendering
को जोड़ा गया है. इस CompositionLocal कोLocalRippleNativeRendering
की वैल्यू दें, ताकि CompositionLocalProvider में पिछले रिपल को लागू किया जा सके.false
यह एपीआई कुछ समय के लिए है और इसे आने वाले समय में हटा दिया जाएगा. इसलिए, अगर आपको ऐसी समस्याएं आती हैं जिनकी वजह से आपको इस एपीआई का इस्तेमाल करना पड़ता है, तो कृपया बग की रिपोर्ट करें. (I902f8, b/168777351, b/183019123) - CollectionInfo और CollectionItemInfo के सुलभता वाले एपीआई जोड़े गए हैं. इनकी मदद से, कलेक्शन और उसके आइटम को सुलभता सेवाओं के लिए मार्क किया जा सकता है (Id54ef, b/180479017)
- सुलभता एपीआई
error
जोड़ा गया है. इससे ऐसे नोड को मार्क किया जा सकता है जिनमें अमान्य इनपुट (I12997, b/180584804, b/182142737) शामिल है
गड़बड़ियां ठीक की गईं
- Compose Material कैटलॉग में इनसेट लागू करने की सुविधा को अपडेट किया गया है. यह सुविधा यहां उपलब्ध है: https://github.com/google/accompanist/pull/365. (I25dc3)
- वज़न(fill = false) वाले Row और Column चाइल्ड, अब पैरंट को उपलब्ध पूरी मुख्य ऐक्सिस की जगह नहीं भर रहे हैं. (Ied94d, b/186012444, b/184355105)
वर्शन 1.0.0-beta05
21 अप्रैल, 2021
androidx.compose.material:material-*:1.0.0-beta05
रिलीज़ हो गया है. वर्शन 1.0.0-beta05 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- Compose Material कैटलॉग में, कॉम्पोनेंट टाइल इमेज, थीम पिकर, और मेन्यू के ज़्यादा खास यूआरएल जोड़े गए हैं. (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)
गड़बड़ियां ठीक की गईं
- मौजूदा मॉड्यूल में, Compose Material कैटलॉग को लागू करने की सुविधा जोड़ी गई है. फ़िलहाल, ये सुविधाएं उपलब्ध नहीं हैं: कॉम्पोनेंट टाइल इमेज, थीम पिकर (इसे बाद में जोड़ा जाएगा). (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)
बाहरी योगदान
- [Jossi Wolf ने बनाया]
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) के सार्वजनिक इस्तेमाल पर पाबंदियां लागू करें
- TopAppBar और BottomAppBar के लिए, डिफ़ॉल्ट हॉरिज़ॉन्टल अलाइनमेंट को Start पर सेट किया गया है. यह Row के साथ काम करता है (Ib2dc7)
- Compose Material कैटलॉग के लिए, नया मॉड्यूल और प्लेसहोल्डर यूज़र इंटरफ़ेस (यूआई) जोड़ा गया है. फ़िलहाल, यह मौजूदा इंटिग्रेशन टेस्ट डेमो में नेस्ट किया गया है. (Idfcb3)
androidx.compose.ui:ui
अब AppCompat या Fragment पर निर्भर नहीं करता. अगर आपके ऐप्लिकेशन में ComposeView का इस्तेमाल किया जा रहा है और Fragment और/या AppCompat का इस्तेमाल किया जा रहा है, तो पक्का करें कि AppCompat 1.3+ / Fragment 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 Beta का पहला वर्शन है.
एपीआई में हुए बदलाव
- साइज़ मॉडिफ़ायर के नाम बदल दिए गए हैं. 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)
- डीपी दावे हटाए गए (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 कर दिया गया है. अब इसमें पहले से तय किए गए Decays के बजाय, सस्पेंड ऐनिमेशन को पसंद के मुताबिक बनाने की सुविधा मिलती है. (I02b86, b/175294473)
साइज़ मॉडिफ़ायर के नाम बदल दिए गए हैं. Modifier.width/height/size का नाम बदलकर requiredWidth/requiredHeight/requiredSize कर दिया गया है. Modifier.preferredWidth/preferredHeight/preferredSize का नाम बदलकर width/height/size कर दिया गया है. (I5b414)
defaultMinSizeConstraints का नाम बदलकर defaultMinSize कर दिया गया है. (I4eaae)
ओरिएंटेशन को फ़ाउंडेशन पैकेज में ले जाया गया है. VelocirtTracker को ui.gesture से ui.input.pointer में ले जाया गया. (Iff4a8, b/175294473)
drawerState.open() और drawerState.close() अब सस्पेंडिंग फ़ंक्शन हैं. कंपोज़िशन का स्कोप पाने के लिए, rememberCoroutineScope() का इस्तेमाल करें, ताकि उन्हें कॉल किया जा सके (I16f60, b/175294473)
Providers का नाम बदलकर CompositionLocalProvider कर दिया गया है
- Composition कंस्ट्रक्टर अब key पैरामीटर स्वीकार नहीं करता है. साथ ही, इसे बंद कर दिया गया है.
- 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 में ये बदलाव किए गए हैं:
- TopAppBar/BottomAppBar में contentPadding पैरामीटर जोड़ा गया है, ताकि डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाया जा सके.
- ज़रूरी पैरामीटर को वैकल्पिक पैरामीटर से पहले रखने के लिए, BackdropScaffold में पैरामीटर का क्रम बदला गया है, ताकि एपीआई के दिशा-निर्देशों का पालन किया जा सके.
- BottomNavigationItem में
icon
पैरामीटर कोselected
औरonClick
के बाद ले जाया गया. - BottomNavigationItem में
alwaysShowLabels
पैरामीटर का नाम बदलकरalwaysShowLabel
कर दिया गया है. - कुछ कॉम्पोनेंट में
bodyContent
पैरामीटर का नाम बदलकर सिर्फ़content
कर दिया गया है. ButtonDefaults.buttonColors()
में पैरामीटर का क्रम बदला गया है. कृपया ध्यान दें कि पैरामीटर के टाइप में कोई बदलाव नहीं हुआ है. इसलिए, आपके कोड में कोई गड़बड़ी नहीं होगी. कृपया पक्का करें कि आपने नाम वाले पैरामीटर का इस्तेमाल किया हो या क्रम को मैन्युअल तरीके से अपडेट किया हो. ऐसा न करने पर, आपका कोड पहले की तरह काम नहीं करेगा.secondaryVariant
पैरामीटर कोdarkColors()
में जोड़ा गया. आम तौर पर, यह रंग गहरे रंग वाली थीम मेंsecondary
जैसा ही होता है. हालांकि, इसे एक जैसा रखने और अपनी पसंद के मुताबिक बनाने के लिए जोड़ा गया है.- ElevationDefaults और animateElevation() को सार्वजनिक एपीआई से हटा दिया गया है, क्योंकि इनका इस्तेमाल आम तौर पर नहीं किया जाता था / ये काम के नहीं थे.
Slider
में मौजूदonValueChangeEnd
का नाम बदलकरonValueChangeFinished
कर दिया गया है. साथ ही, इसे नल वैल्यू स्वीकार करने वाला बना दिया गया है.- एक जैसा नाम रखने के लिए,
Snackbar
में मौजूदtext
पैरामीटर का नाम बदलकरcontent
कर दिया गया है. - डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाने की अनुमति देने के लिए,
DropdownMenuItem
मेंcontentPadding
पैरामीटर जोड़ा गया. साथ ही,content
कोRowScope
पर एक्सटेंशन बनाया गया. ModalDrawerLayout
का नाम बदलकरModalDrawer
कर दिया गया.BottomDrawerLayout
का नाम बदलकरBottomDrawer
कर दिया गया.- (I1cc66)
BasicTextField अब बेहतर तरीके से पसंद के मुताबिक बनाने के लिए, Color के बजाय Brush स्वीकार करता है (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)
- डिस्ट्रक्चरिंग और copy() तरीकों को उन क्लास से हटा दिया गया है जहां इनका इस्तेमाल कभी-कभार ही किया जाता था. (I26702, b/178659281)
- ModalBottomSheetState में halfExpand() और expand() को इंटरनल बनाएं (Ic914e)
- Indication#createInstance को @Composable के तौर पर बदला गया है. साथ ही, LocalIndication को () -> Indication के बजाय, Indication के तौर पर बदला गया है. (I5eeea, b/157150564)
- फ़िलहाल, AlertDialog और DropdownMenu को सिर्फ़ Android के लिए उपलब्ध कराया गया है. DropdownMenu में PopupProperties पैरामीटर जोड़ा गया है, ताकि Popup को और कॉन्फ़िगर किया जा सके. (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) - Ambients का नाम बदलकर, Ambient -> CompositionLocal के नाम के मुताबिक कर दिया गया है. पहले, ऐंबिएंट का नाम AmbientFoo होता था. अब कंपोज़िशन लोकल का नाम 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)
बदले गए टैब के
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 अब काम नहीं करते. इसके बजाय, Modifier.clickable या Modifier.pointerInput के साथ detectTapGestures फ़ंक्शन का इस्तेमाल करें. (I6baf9, b/175294473)
Shape के createOutline में layoutDirection पैरामीटर जोड़ा गया. इससे लेआउट की दिशा के हिसाब से शेप बनाए जा सकते हैं. (I57c20, b/152756983)
Recomposer.current()
को हटा दिया गया है. [Abstract]ComposeView अब डिफ़ॉल्ट रूप से, विंडो के लिए ViewTreeLifecycleOwner की मदद से चलाए जाने वाले, विंडो के दायरे में आने वाले Recomposers को लेज़ी तरीके से बनाता है. होस्ट के लाइफ़साइकल के रुकने पर, रीकंपोज़िशन और 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 के स्टेटफ़ुल पैरामीटर इंटरफ़ेस में बदलाव करता है, ताकि उनमें @Composable फ़ंक्शन शामिल किए जा सकें. ये फ़ंक्शन,
State<T>
वैल्यू दिखाते हैं.Animatable.asState()
जोड़ता है, ताकि ऐनिमेट किए जा सकने वाले ऑब्जेक्ट को स्टेट में बदलना आसान हो जाए. साथ ही, यह Animatable पर animateElevation को suspend एक्सटेंशन में बदलता है. (If613c) - Snackbar, SnackbarHost, SnackbarHostState अब
@ExperimentalMaterialAPI
नहीं हैं (Id1fb5) - टाइपोग्राफ़ी, शेप, और TabPosition में बदलाव करके, उन्हें अब डेटा क्लास नहीं माना जाएगा. इससे जनरेट किए गए टाइपोग्राफ़ी और शेप को बदलने के लिए, कॉपी करने की सुविधा जोड़ी जाती है. (I40037)
- पहले से बंद किए गए कुछ Material API मिटाए गए (Ifaa25)
गड़बड़ियां ठीक की गईं
- SideEffect और DisposableEffect API के पक्ष में onCommit, onDispose, और onActive को बंद कर दिया गया है (If760e)
- TransitionDefinition पर आधारित ट्रांज़िशन को बंद कर दिया गया है (I0ac57)
- updateTransition में Initial State का इस्तेमाल किया जा सकता है (Ifd51d)
- WithConstraints को BoxWithConstraints के तौर पर फिर से बनाया गया है और इसे foundation.layout में ले जाया गया है. (I9420b, b/173387208)
स्क्रोलबाय को बंद करें, scrollTo को हटाएं
हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने और स्क्रोल पूरा होने का इंतज़ार करने के लिए, निलंबित फ़ंक्शन का इस्तेमाल करें. हम इस बदलाव के तहत, इन फ़ंक्शन के ऐसे वर्शन को बंद कर रहे हैं जिन्हें निलंबित नहीं किया जा सकता और/या उन्हें हटा रहे हैं. (Ie9ced)
non-suspend smoothScrollBy को बंद कर दिया गया है हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, suspend फ़ंक्शन का इस्तेमाल करें और स्क्रोलिंग के खत्म होने का इंतज़ार करें. हम इस बदलाव के तहत, इन फ़ंक्शन के ऐसे वर्शन को बंद कर रहे हैं जिन्हें निलंबित नहीं किया जा सकता. (I12880)
ComposeContentTestRule
को पेश किया गया है. यहComposeTestRule
को बढ़ाता है औरsetContent
को तय करता है.setContent
कोComposeTestRule
से हटा दिया गया है.createEmptyComposeRule()
फ़ैक्ट्री मेथड जोड़ा गया है. यहComposeTestRule
दिखाता है और आपके लिए कोई गतिविधि लॉन्च नहीं करता. इस विकल्प का इस्तेमाल तब करें, जब आपको टेस्ट के दौरान अपनी गतिविधि लॉन्च करनी हो. उदाहरण के लिए,ActivityScenario.launch
(I9d782, b/174472899) का इस्तेमाल करनाबटन और फ़्लोटिंग ऐक्शन बटन में इस्तेमाल किए गए रिपल को अब AmbientIndication के ज़रिए नया इंडिकेशन देकर पसंद के मुताबिक नहीं बनाया जा सकता. इन कॉम्पोनेंट को पसंद के मुताबिक बनाने का यह तरीका कभी नहीं था. अब ये कॉम्पोनेंट, अन्य मटीरियल कॉम्पोनेंट के साथ काम करते हैं. किसी ऐप्लिकेशन में रिपल इफ़ेक्ट को पसंद के मुताबिक बनाने के लिए, RippleTheme देखें. (I546c5)
animateAsState को अब animateFooAsState कर दिया गया है. यहां Foo, ऐनिमेट किए जा रहे वैरिएबल का टाइप है. जैसे, फ़्लोट, डीपी, ऑफ़सेट वगैरह (Ie7e25)
BasicTextField को
decorationBox
नाम का एक नया पैरामीटर मिला है. इसकी मदद से, टेक्स्ट फ़ील्ड में आइकॉन, प्लेसहोल्डर, लेबल वगैरह जोड़े जा सकते हैं. साथ ही, इसके हिट टारगेट एरिया को बढ़ाया जा सकता है. (I16996)उस बग को ठीक किया गया है जिसकी वजह से, मटीरियल टेक्स्ट फ़ील्ड की चौड़ाई को 280.dp से कम पर सेट नहीं किया जा सकता था (I78373)
Modifier.draggable (Ic4bec, b/175294473) से canDrag पैरामीटर हटा दिया गया है
displaySize को हटाएं, क्योंकि इसका इस्तेमाल नहीं किया जाना चाहिए. आम तौर पर, onRoot() या कम से कम विंडो के साइज़ का इस्तेमाल करना बेहतर होता है. (I62db4)
अब Surface में कई लेआउट चाइल्ड हो सकते हैं. (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)
ईज़िंग को फ़ंक्शनल इंटरफ़ेस (Ib14e5) में बदल दिया गया है
ScrollableColumn/Row को बंद कर दिया गया है. अगर आपको स्क्रोल करने के लिए ज़्यादा कॉन्टेंट दिखाना है, तो LazyColumn के मुकाबले ScrollableColumn का इस्तेमाल करना कम असरदार होता है. ऐसा इसलिए, क्योंकि 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) के साथ काम कर सके- DpOffset के लिए, पोज़िशन का नाम बदला गया और getDistance() को हटाया गया (Ib2dfd)
- Color.useOrElse() का नाम बदलकर Color.takeOrElse() कर दिया गया (Ifdcf5)
- foundation 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 फ़ंक्शन में nativeClass के अपडेट किए गए इस्तेमाल, ताकि इसके बजाय 'is MyClass' का इस्तेमाल किया जा सके. (I4f734)
गड़बड़ियां ठीक की गईं
- बंद किए गए और सिर्फ़ पढ़ने के लिए उपलब्ध टेक्स्ट फ़ील्ड के लिए सहायता जोड़ी गई (I35279, b/171040474, b/166478534)
animate()
को अबanimateAsState()
से बदल दिया गया है. यहT
के बजायState<T>
दिखाता है. इससे परफ़ॉर्मेंस बेहतर होती है, क्योंकि अमान्य होने के दायरे को उस जगह तक सीमित किया जा सकता है जहां State वैल्यू पढ़ी जाती है. (Ib179e)- सेमैंटिक्स रोल एपीआई जोड़ें. साथ ही, क्लिक किए जा सकने वाले, चुने जा सकने वाले, और टॉगल किए जा सकने वाले SemanticsModifier में Role को पैरामीटर के तौर पर जोड़ें. Modifier.progressSemantics को बदला गया है, ताकि Slider भी इसका इस्तेमाल कर सके. (I216cd)
वर्शन 1.0.0-alpha09
16 दिसंबर, 2020
androidx.compose.material:material-*:1.0.0-alpha09
रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Modifier.swipeable में, सेटल ऐनिमेशन और ड्रैग को मैन्युअल तरीके से ट्रिगर करने के लिए एपीआई जोड़ा गया (Iaa17a, b/162408885)
- *Constants ऑब्जेक्ट के नाम बदले गए हैं. जैसे, ButtonConstants को बदलकर ButtonDefaults कर दिया गया है. साथ ही, इन नए ऑब्जेक्ट की प्रॉपर्टी से ग़ैर-ज़रूरी
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)
गड़बड़ियां ठीक की गईं
- ऑफ़सेट मॉडिफ़ायर में लैम्ब्डा अब फ़्लोट के बजाय 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 वगैरह को animation-core में ले जाया गया है. साथ ही, पुराने VectorConveters (If0c4b) को बंद कर दिया गया है
ऑटोमैटिक भरने वाला एपीआई अब एक्सपेरिमेंट के तौर पर उपलब्ध है. इसके लिए, ऑप्ट-इन (I0a1ec) करना ज़रूरी है
FocusRequester इंस्टेंस बनाने के लिए, डिस्ट्रक्चरिंग डिक्लेरेशन जोड़े गए (I35d84, b/174817008)
accessibilityLabel का नाम बदलकर contentDescription कर दिया गया है. accessibilityValue का नाम बदलकर stateDescription कर दिया गया है. (I250f2)
InfiniteRepeatableSpec बनाने के लिए, नया infiniteRepeatable फ़ंक्शन (I668e5)
Material स्पेसिफ़िकेशन के मुताबिक, DropdownMenus की पोज़िशनिंग के तरीके में थोड़ा बदलाव किया गया है. (I34c72, b/168594123)
TextFields के लिए, InteractionState की सुविधा जोड़ी गई है. (I61d91)
Modifier.clearAndSetSemantics को जोड़ा गया है, ताकि डिसेंडेंट के सेमेंटिक को मिटाया जा सके और नए सेमेंटिक सेट किए जा सकें. (I277ca)
DrawScope के साथ रखने के लिए, ContentDrawScope को ui-graphics मॉड्यूल में ले जाया गया. (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 को Builder में ले जाया गया है और इसका नाम बदलकर, API काउंसिल के दिशा-निर्देशों के मुताबिक ImageVector की इनर क्लास कर दिया गया है. VectorAssetBuilder का टाइपएलियास जोड़ा गया, ताकि इसे ImageVector.Builder से लिंक किया जा सके. (Icfdc8)
- ImageAsset और इससे जुड़े तरीकों का नाम बदलकर ImageBitmap कर दिया गया है. (Ia2d99)
- फ़ाउंडेशन सिमैंटिक्स प्रॉपर्टी को यूज़र इंटरफ़ेस (I6f05c) में ले जाया गया
fun RippleIndication()
को बंद कर दिया गया है और इसेrememberRippleIndication()
से बदल दिया गया है, ताकि अन्य एपीआई के साथ एक जैसा अनुभव मिल सके. (Id8e2c)- BasicTextField, TextField, और OutlinedTextField में singeLine पैरामीटर जोड़ा गया. टेक्स्ट फ़ील्ड को एक ही लाइन में दिखाने के लिए, इस पैरामीटर को सही पर सेट करें. इस लाइन को हॉरिज़ॉन्टल तरीके से स्क्रोल किया जा सकता है. (I57004, b/168187755)
गड़बड़ियां ठीक की गईं
- सिमैंटिक कार्रवाई खारिज करें (I2b706) जोड़ें
- DrawModifier API को 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 API जोड़े गए.
Modifier.drawOpacity
का नाम बदलकरModifier.alpha
किया गयाModifier.drawShadow
का नाम बदलकरModifier.shadow
कर दिया गया (I264ca, b/173208140)
- Box के अलाइनमेंट पैरामीटर का नाम बदलकर contentAlignment कर दिया गया है. (I2c957)
- offsetPx मॉडिफ़ायर का नाम बदलकर offset कर दिया गया है. अब ये State के बजाय लैम्डा पैरामीटर ले रहे हैं. (Ic3021, b/173594846)
- SweepGradientShader और SweepGradientBrush API पेश किए गए. (Ia22c1)
- Composable फ़ंक्शन में, Modifier पैरामीटर के लिए लिंट चेक जोड़ा गया. यह लिंट चेक, Compose के दिशा-निर्देशों के मुताबिक पैरामीटर के नाम, रिटर्न टाइप, डिफ़ॉल्ट वैल्यू, और क्रम की जांच करता है. (If493b)
- TextFieldValue API अपडेट किया गया
- TextFieldValue.composition को रीड ओनली बनाया गया
- अमान्य सिलेक्शन रेंज (I4a675, b/172239032) के लिए, अपवाद हटाया गया
- नया
Modifier.drawLayer()
ओवरलोड जोड़ा गया. यह नए GraphicsLayerScope पर एक लैम्ब्डा ब्लॉक लेता है. इसमें लेयर के पैरामीटर इस तरह से तय किए जाते हैं कि स्थिति में बदलाव होने पर, रीकंपोज़िशन और रीलआउट को स्किप किया जा सके. 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 के ज़रिए सीधे तौर पर वैल्यू दी जा सकती है. साथ ही, ContentAlpha में नए डिफ़ॉल्ट लेवल का इस्तेमाल करके, पुराने EmphasisLevels को बदला जा सकता है. (Idf03e, b/159017896) - androidx.compose.material.AmbientContentColor को androidx.compose.foundation.AmbientContentColor की जगह इस्तेमाल करने के लिए जोड़ा गया है (I84f7b, b/172067770)
- androidx.compose.material.Text को जोड़ा गया है, ताकि androidx.compose.foundation.Text को थीम के हिसाब से बनाए जा सकने वाले टेक्स्ट कॉम्पोनेंट के तौर पर बदला जा सके. अगर आपको ऐसा बेसिक टेक्स्ट कॉम्पोनेंट इस्तेमाल करना है जो थीम से रंग / टेक्स्ट स्टाइल का इस्तेमाल नहीं करता है, तो BasicText का इस्तेमाल करें. (Ie6ae0)
- TextFields में maxLines जोड़ा गया (Ib2a5b)
- KeyboardOptions को स्वीकार करने के लिए, TextFields को अपडेट करें (Ida7f3)
- ऊंचाई के ओवरले का हिसाब लगाते समय, Surface अब कुल ऊंचाई का इस्तेमाल करता है. इसलिए, किसी अन्य Surface में नेस्ट किया गया Surface, ओवरले बनाने के लिए कुल ऊंचाई का इस्तेमाल करेगा. (I7bd2b, b/171031040)
गड़बड़ियां ठीक की गईं
captureToBitmap
कोcaptureToImage
में ले जाया गया. (I86385)- AmbientTextStyle, ProvideTextStyle, और AmbientContentColor अब काम नहीं करते हैं. इसके बजाय, 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 कर दिया गया है. पैडिंगफ़्रॉमबेसलाइन मॉडिफ़ायर जोड़ा गया है, ताकि लेआउट की सीमाओं से टेक्स्ट बेसलाइन की दूरी तय करने में आसानी हो. (I0440a, b/170633813)
- LaunchedTask का नाम बदलकर LaunchedEffect कर दिया गया है, ताकि यह SideEffect और DisposableEffect एपीआई के साथ काम कर सके. सबसे सही तरीकों को बढ़ावा देने के लिए, LaunchedEffect में subject पैरामीटर के बिना इस्तेमाल करने की अनुमति नहीं है. (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 कॉम्पोनेंट / Modifier.paint() का इस्तेमाल भी किया जा सकता है. (I9f622)
- इससे FloatingActionButtonElevation जुड़ता है. यह अलग-अलग स्थितियों में, FAB के लिए इस्तेमाल की गई एलिवेशन को दिखाता है. डिफ़ॉल्ट तौर पर लागू करने के लिए, FloatingActionButtonConstants.defaultElevation() देखें (I2d4f5)
- SwitchColors इंटरफ़ेस जोड़ता है, ताकि अलग-अलग स्थितियों में स्विच के इस्तेमाल किए गए रंगों को दिखाया जा सके. इन रंगों को पसंद के मुताबिक बनाने के लिए, SwitchConstants.defaultColors देखें. (I93805)
- इस अपडेट में, ButtonElevation और ButtonColors इंटरफ़ेस जोड़े गए हैं. इनसे, अलग-अलग स्थितियों में बटन के लिए इस्तेमाल किए गए एलिवेशन और रंगों के बारे में पता चलता है. इन पैरामीटर को पसंद के मुताबिक बनाने के लिए, ButtonConstants में डिफ़ॉल्ट फ़ंक्शन देखें. (Ic5b7b)
- यह RadioButtonColors इंटरफ़ेस जोड़ता है, ताकि RadioButton की अलग-अलग स्थितियों में इस्तेमाल किए गए रंगों को दिखाया जा सके. अलग-अलग स्थितियों में इस्तेमाल किए गए रंगों को पसंद के मुताबिक बनाने के लिए, RadioButtonConstants.defaultColors() देखें. (I74130)
- यह CheckboxColors इंटरफ़ेस जोड़ता है, ताकि अलग-अलग स्थितियों में चेकबॉक्स के लिए इस्तेमाल किए गए रंगों को दिखाया जा सके. अलग-अलग स्थितियों में इस्तेमाल किए गए रंगों को पसंद के मुताबिक बनाने के लिए, CheckboxConstants.defaultColors() देखें. (I7dbdb)
गड़बड़ियां ठीक की गईं
- मटेरियल कॉम्पोनेंट अब zIndex के तौर पर एलिवेशन सेट नहीं करते हैं. इसका मतलब है कि एक ही पैरंट के अंदर, ज़्यादा शैडो साइज़ वाले बच्चे को कम शैडो साइज़ वाले बच्चे के ऊपर अपने-आप नहीं बनाया जाएगा. अगर आपको अब भी इस तरह के व्यवहार की ज़रूरत है, तो कृपया ज़रूरत के हिसाब से Modifier.zIndex() को मैन्युअल तरीके से सेट करें (I70417, b/170623932)
- VectorPainter को बंद कर दिया गया है. अब इसकी जगह rememberVectorPainter का इस्तेमाल किया जाएगा. इससे यह बेहतर तरीके से पता चलेगा कि कंपोज़ेबल एपीआई, कंपोज़िशन के बीच डेटा को बनाए रखने के लिए, 'remember' का इस्तेमाल करता है. (Ifda43)
- ComposeTestRule में ट्रांज़िशन चालू करें; ComposeTestRule से ब्लिंक करने वाले कर्सर को चालू करने का विकल्प हटाएं. (If0de3)
- CoreTextField में एक लाइन वाले कीबोर्ड का विकल्प जोड़ा गया (I72e6d)
- Radius API का नाम बदलकर CornerRadius कर दिया गया है, ताकि यह बेहतर तरीके से बताया जा सके कि इसका इस्तेमाल पूरे Compose में कैसे किया जाता है. दस्तावेज़ों को अपडेट किया गया है, ताकि यह बताया जा सके कि नेगेटिव कॉर्नर रेडियस को शून्य पर सेट किया जाता है. (I130c7, b/168762961)
- DrawScope और ContentDrawScope को ऐब्सट्रैक्ट क्लास के बजाय इंटरफ़ेस के तौर पर रीफ़ैक्टर किया गया है
- DrawScope का CanvasDrawScope लागू किया गया
- DrawScope के लागू किए गए फ़ंक्शन को फिर से व्यवस्थित किया गया है, ताकि CanvasScope का इस्तेमाल किया जा सके
- 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)
- सभी Scaffold स्टेट को @Stable के तौर पर मार्क किया गया है. ScaffoldState में मौजूद drawerGesturesEnabled को Scaffold में ले जाया गया है. (I36645, b/168297016)
- Scaffold लैंबडा पैरामीटर से, नल वैल्यू स्वीकार करने वाले टाइप को हटाता है. किसी पैरामीटर के लिए कोई कॉन्टेंट न होने पर, emptyContent() का इस्तेमाल किया जा सकता है. (I2b318, b/157633857, b/158551084)
contentColor() और currentTextStyle() एपीआई को बंद कर देता है. साथ ही, इनकी जगह AmbientContentColor और AmbientTextStyle ambients का इस्तेमाल करता है. किसी भी अन्य परिवेश की तरह, परिवेश की प्रॉपर्टी पर
.current
का इस्तेमाल करके, मौजूदा वैल्यू को ऐक्सेस किया जा सकता है. यह बदलाव इसलिए किया गया है, ताकि सभी प्लैटफ़ॉर्म पर एक जैसा अनुभव मिले. साथ ही, एक ही काम को पूरा करने के लिए कई तरीके न हों. इसके अलावा, कुछ ऐंबियंट प्रॉपर्टी के नाम बदले गए हैं, ताकि उनके मकसद के बारे में बेहतर तरीके से बताया जा सके. जैसे:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
AmbientElevationOverlay जोड़ता है. इससे गहरे रंग वाली थीम में, Surfaces पर लागू किए गए डिफ़ॉल्ट एलिवेशन ओवरले को पसंद के मुताबिक बनाया जा सकता है या बंद किया जा सकता है. (I5b74d)
गड़बड़ियां ठीक की गईं
- इनलाइन क्लास के लिए, सेंटिनल वैल्यू को स्टैंडर्ड बनाने के लिए, Color.Unset का नाम बदलकर Color.Unspecified कर दिया गया है. ऐसा इसलिए किया गया है, ताकि यह अन्य इनलाइन क्लास (I97611, b/169797763) के साथ काम कर सके
- TextOverflow.None को जोड़ा गया है. जब ओवरफ़्लो की वैल्यू None होती है, तब टेक्स्ट अब ओवरफ़्लो को मैनेज नहीं करेगा. साथ ही, यह LayoutNode को अपने साइज़ की जानकारी देगा. (I175c9, b/158830170)
- launchInComposition का नाम बदलकर LaunchedTask कर दिया गया है, ताकि यह Compose API के दिशा-निर्देशों (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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- यह स्टेटफ़ुल मटीरियल कॉम्पोनेंट में InteractionState पैरामीटर दिखाता है, ताकि स्टेट को ऊपर ले जाया जा सके और स्टेट को पढ़ा / कंट्रोल किया जा सके. (Iaca5f, b/168025711, b/167164434)
- यह RadioButton और TriStateCheckbox पर
*color
पैरामीटर बदलता है, ताकि हर स्थिति में इस्तेमाल किए गए रंगों को पूरी तरह से पसंद के मुताबिक बनाया जा सके. साथ ही, अगर चाहें, तो यह भी बदला जा सके कि स्थितियों के बीच रंग कैसे ऐनिमेट होते हैं. ज़्यादा जानकारी के लिए, CheckboxConstants और RadioButtonConstants में मौजूद, ऐनिमेटडिफ़ॉल्ट* कलर फ़ंक्शन देखें. (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)
गड़बड़ियां ठीक की गईं
- कई ग्राफ़िक्स एपीआई अपडेट किए गए
- स्केल और रोटेशन के लिए अपडेट किए गए ट्रांसफ़ॉर्मेशन एपीआई, DrawScope और DrawTransform में x/y कोऑर्डिनेट के लिए अलग-अलग फ़्लोट पैरामीटर के बजाय, पिवट कोऑर्डिनेट को दिखाने के लिए एक ही ऑफ़सेट पैरामीटर का इस्तेमाल करते हैं
- Rect.expandToInclude और Rect.join तरीकों को हटाया गया
- रेडियस के दस्तावेज़ को अपडेट किया गया है. इसमें एलिप्टिकल के साथ-साथ ओवल भी शामिल किया गया है
- दस्तावेज़ जोड़ा गया है. इससे पता चलता है कि इनलाइन रेडियस क्लास के लिए, सार्वजनिक कंस्ट्रक्टर को सीधे तौर पर कॉल नहीं किया जाना चाहिए. इसके बजाय, रेडियस ऑब्जेक्ट को उनके फ़ंक्शन कंस्ट्रक्टर के ज़रिए इंस्टैंटिएट किया जाना चाहिए
- RoundRect API हटा दिए गए हैं, ताकि topRight, bottomRight, bottomCenter वगैरह के बारे में क्वेरी की जा सके
- Rect.shift को Rect.translate के पक्ष में बंद कर दिया गया है
- RoundRect.grow और Rect.shrink एपीआई हटा दिए गए हैं
- RoundRect.outerRect का नाम बदलकर Rect.boundingRect किया गया
- RoundRect.middleRect/tallMiddleRect/wideMiddleRect और Rect.isStadium तरीके हटा दिए गए हैं
- RoundRect.longestSide का नाम बदलकर RoundRect.maxDimension कर दिया गया है
- RoundRect.shortestSide का नाम बदलकर RoundRect.minDimension कर दिया गया है
- RoundRect.center को फ़ंक्शन के बजाय प्रॉपर्टी के तौर पर बदला गया
- RoundRect कंस्ट्रक्टर को अपडेट किया गया है, ताकि वह x/y रेडियस वैल्यू के लिए अलग-अलग पैरामीटर के बजाय, रेडियस प्रॉपर्टी का इस्तेमाल कर सके
- ऐसे साइज़ एपीआई हटा दिए गए हैं जो यह मानते थे कि यह एक आयत है और इसका मूल 0,0 पर है
- Radius में डिस्ट्रक्टिंग एपीआई जोड़ा गया
- RoundRect एक्सटेंशन फ़ंक्शन को प्रॉपर्टी में माइग्रेट किया गया
- (I8f5c7, b/168762961)
- foundation.Box अब काम नहीं करता. इसके बजाय, कृपया foundation.layout.Box का इस्तेमाल करें. (Ie5950, b/167680279)
- स्टैक का नाम बदलकर Box कर दिया गया है. compose.foundation.layout में मौजूद नए Box के पक्ष में, पहले से मौजूद Box को बंद कर दिया जाएगा. नए बॉक्स में, एक से ज़्यादा आइटम होने पर उन्हें एक के ऊपर एक रखा जाता है. यह पिछले बॉक्स से अलग है, जो कॉलम की तरह काम करता था. (I94893, b/167680279)
- बॉक्स डेकोरेशन पैरामीटर अब काम नहीं करते. अगर आपको अपने बॉक्स में डेकोरेशन/पैडिंग चाहिए, तो इसके बजाय मॉडिफ़ायर का इस्तेमाल करें (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- कई ग्राफ़िक्स एपीआई अपडेट किए गए
- DrawScope API को अपडेट किया गया है. इनमें स्कोप किए गए ट्रांसफ़ॉर्मेशन के तरीके शामिल हैं. इससे यह पता चलता है कि ट्रांसफ़ॉर्मेशन सिर्फ़ कॉलबैक के अंदर लागू होता है और कॉलबैक शुरू होने के बाद इसे हटा दिया जाता है
- clipPath के दस्तावेज़ को अपडेट किया गया है, ताकि गोल आयत के बजाय Path का रेफ़रंस दिया जा सके
- clipPath में right पैरामीटर के लिए, दस्तावेज़ में स्पेसिंग से जुड़ी समस्या ठीक की गई
- DrawScope.drawCanvas का नाम बदलकर drawIntoCanvas कर दिया गया है. साथ ही, साइज़ पैरामीटर हटा दिया गया है
- इनसेट तरीके में dx/dy पैरामीटर का नाम बदलकर हॉरिज़ॉन्टल और वर्टिकल कर दिया गया है
- चारों सीमाओं के लिए एक जैसी इनसेट वैल्यू देने वाला इनसेट ओवरलोड जोड़ा गया
- इनसेट करने के तरीके के बारे में दस्तावेज़ हटा दिया गया है. इसमें बताया गया था कि इनसेट को चारों साइड पर लागू किया जाएगा
- Rect क्लास के लिए अपडेट किया गया दस्तावेज़
- kdoc स्टाइल से मेल खाने के लिए, आयत के पैरामीटर पर टिप्पणियां अपडेट की गईं
- 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 में addedOnNode और अन्य ग्लोबल तरीके जोड़े गए हैं, क्योंकि मौजूदा ग्लोबल तरीके बंद होने वाले हैं. (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 को हटा दिया गया है. इसके बजाय, Row और RadioButton का इस्तेमाल करें (I381b7, b/163806637)
- TextField से onFocusChanged कॉलबैक हटा दिए गए हैं. इसके बजाय, Modifier.focusObserver का इस्तेमाल करें. (I51089, b/161297615)
- Modifier.drawBorder को बंद कर दिया गया है. इसके बजाय, Modifier.border का इस्तेमाल करें. Border डेटा क्लास को 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 कॉम्पोनेंट को हटा दिया गया है. फ़िल्ड टेक्स्ट फ़ील्ड के लिए, कृपया TextField का इस्तेमाल करें, ताकि Material Design को लागू किया जा सके. (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) के साथ एक जैसा अनुभव देने के लिए, टैब में कुछ पैरामीटर के नाम बदले गए हैं और उन्हें फिर से क्रम में लगाया गया है
- यह 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 पैरामीटर जोड़ा गया है. यह एक लैम्डा (DismissDirection) -> ThresholdConfig है. (Ie1080)
- स्लाइडर में, ज़्यादा बारीकी से पसंद के मुताबिक बनाने के लिए ज़्यादा रंग मौजूद हैं (I73e64, b/161810475)
- कार्ड के कलर पैरामीटर का नाम बदलकर backgroundColor कर दिया गया है (I01fc1, b/161809546)
- स्नैकबार के बैकग्राउंड और कॉन्टेंट के रंगों को अब पसंद के मुताबिक बनाया जा सकता है (I238f2, b/161804381)
- Drawers (I23655, b/161804378) में modifier, backgroundColor, contentColor, और scrimColor को पसंद के मुताबिक बनाने के पैरामीटर जोड़े गए हैं
state { ... }
कंपोज़ेबल को अब बंद कर दिया गया है. इसके बजाय,remember { mutableStateOf(...) }
को साफ़ तौर पर कॉल करने की सुविधा उपलब्ध है. इससे, एपीआई के कुल सर्फ़ेस और स्टेट मैनेजमेंट के लिए कॉन्सेप्ट की संख्या कम हो जाती है. साथ ही, यह क्लास प्रॉपर्टी डेलिगेशन के लिएby mutableStateOf()
पैटर्न से मेल खाता है. (Ia5727)- बटन के पैडिंग पैरामीटर का नाम बदलकर contentPadding कर दिया गया है (Id252e, b/161809394)
- SwipeToDismiss नाम का एक्सपेरिमेंटल मटीरियल कॉम्पोनेंट जोड़ें. (I129e5)
गड़बड़ियां ठीक की गईं
onChildPositioned
औरOnChildPositionedModifier
को हटाया गया. डेवलपर को इसके बजाय, चाइल्ड लेआउट परonPositioned
औरOnPositionedModifier
का इस्तेमाल करना चाहिए. (I4522e, b/162109766)- SemanticsPropertyKey में mergePolicy lambda जोड़ा गया. इसका इस्तेमाल, mergeAllDescendants सिमैंटिक के लिए कस्टम नीति तय करने के लिए किया जा सकता है. डिफ़ॉल्ट नीति के तहत, अगर पैरंट वैल्यू मौजूद है, तो उसका इस्तेमाल किया जाता है. अगर पैरंट वैल्यू मौजूद नहीं है, तो चाइल्ड वैल्यू का इस्तेमाल किया जाता है. (Iaf6c4, b/161979921)
- IntSize अब एक इनलाइन क्लास (I2bf42) है
PlacementScope.placeAbsolute()
का नाम बदलकरPlacementScope.place()
कर दिया गया है. साथ ही, पिछलेPlacementScope.place()
का नाम बदलकरPlacementScope.placeRelative()
कर दिया गया है. इस वजह से,PlacementScope.place()
तरीके से अब दाएं से बाएं लिखे जाने वाले कॉन्टेक्स्ट में, अपने-आप पोज़िशन नहीं दिखेगी. अगर आपको ऐसा करना है, तो इसके बजायPlacementScope.placeRelative()
का इस्तेमाल करें. (I873ac, b/162916675)- Rect के पक्ष में PxBounds को बंद कर दिया गया है. PxBounds के सभी इस्तेमाल को rect से अपडेट किया गया है. साथ ही, माइग्रेशन में मदद करने के लिए, प्रॉपर डेप्रिकेट/रिप्लेस के साथ एनोटेशन जोड़े गए हैं. (I37038, b/162627058)
- RRect का नाम बदलकर RoundRect कर दिया गया है, ताकि यह Compose के नाम रखने के पैटर्न के हिसाब से बेहतर तरीके से काम कर सके 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 color system के साथ बेहतर तरीके से मैप किया जा सके. साथ ही, ColorPalette को 'सामान्य' थीमिंग ऑब्जेक्ट के तौर पर इस्तेमाल करने से जुड़ी उलझन को दूर किया जा सके. ऐसा इसलिए, क्योंकि यह Material color system का खास तौर पर लागू किया गया वर्शन है. इसके अलावा, यह 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 करें
- उपयोगकर्ताओं को अपने Canvas इंस्टेंस बनाने में मदद करने के लिए, nativeCanvas तरीके को Canvas इंटरफ़ेस से हटा दिया गया है
- DrawScope को रिफ़ैक्टर करने के लिए, EmptyCanvas क्लास का स्टब बनाया गया है, ताकि इसे lateinit के बजाय नॉन-नल पैरामीटर बनाया जा सके. साथ ही, यह पक्का किया जा सके कि फ़ील्ड नॉन-नल हो
- ClipOp एनम के नाम बदलकर, उन्हें पास्कल केस में कर दिया गया है
- FilterQuality enum का नाम बदलकर, पास्कल केस में कर दिया गया है
- StrokeJoin enum के नाम बदलकर, उन्हें पास्कल केस में बदला गया
- PointMode enums का नाम बदलकर, पास्कल केस में रखा गया
- PaintingStyle enum का नाम बदलकर, Pascal Case कर दिया गया है
- PathFillType enum का नाम बदलकर, पास्कल केस में किया गया
- StrokeCap enum का नाम बदलकर पास्कल केस किया गया
- DrawCache को लागू करने की सुविधा को अपडेट किया गया है, ताकि अब lateinit पैरामीटर का इस्तेमाल न किया जा सके
- DrawScope को अपडेट किया गया है, ताकि fillPaint और strokePaint इंटरनल पैरामीटर के लिए लेज़ी डेलिगेशन का इस्तेमाल न किया जा सके
- इमेज कंपोज़ेबल को अपडेट किया गया है, ताकि कम ओवरहेड के लिए Box का इस्तेमाल न करना पड़े
- @Immutable एनोटेशन के लिए, आउटलाइन क्लास को अपडेट किया गया
- हर पाथ के निर्देश के लिए, @Immutable एनोटेशन वाले PathNode को अपडेट किया गया है
- वेक्टर सबकंपोज़िशन को अपडेट किया गया है, ताकि समानता के लिए ज़रूरत से ज़्यादा शर्तों की जांच को हटाया जा सके. ऐसा इसलिए, क्योंकि कंपोज़ पहले से ही उन्हें हैंडल करता है
- फ़ंक्शन कंस्ट्रक्टर के पक्ष में, Rect कंपैनियन कंस्ट्रक्टर के तरीकों को बंद कर दिया गया है
- @Immutable और @Stable API के साथ, ब्रश क्लास और फ़ंक्शन कंस्ट्रक्टर अपडेट किए गए
- 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-icons-extended को Material.io/icons में जोड़े गए नए आइकॉन के साथ अपडेट करती है (I4b1d3)
- transitionDefinition के लिए, टाइप T को साफ़ तौर पर तय करना ज़रूरी है. (I1aded)
- Modifier.plus का इस्तेमाल अब नहीं किया जा सकता. इसके बजाय, Modifier.then का इस्तेमाल करें. 'फिर' शब्द से क्रम का ज़्यादा मज़बूत सिग्नल मिलता है. साथ ही, इसमें
Modifier.padding().background() + anotherModifier
टाइप करने की अनुमति नहीं है. इससे चेन टूट जाती है और इसे पढ़ना मुश्किल हो जाता है (Iedd58, b/161529964) - 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 में thresholds पैरामीटर जोड़ा गया है, ताकि ऐंकर के बीच थ्रेशोल्ड तय किया जा सके. इसका इस्तेमाल, बॉटम ड्रॉअर में 56dp थ्रेशोल्ड सेट करने के लिए किया गया था. साथ ही, BottomDrawerLayout अब BottomDrawerState enum का इस्तेमाल करता है. (I533fa)
इससे पहले से बंद किए गए Modifier.ripple को हटाया जाता है. अगर आपके ऐप्लिकेशन में MaterialTheme {} सेट है, तो अब क्लिक किए जा सकने वाले एलिमेंट के लिए, डिफ़ॉल्ट इंडिकेटर के तौर पर रिपल का इस्तेमाल किया जाता है. इसलिए, ज़्यादातर मामलों में, सिर्फ़ क्लिक किए जा सकने वाले एलिमेंट का इस्तेमाल करके, रिपल इंडिकेटर को बिना किसी शुल्क के इस्तेमाल किया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंडेड पैरामीटर को पसंद के मुताबिक बनाना है, तो RippleIndication को मैन्युअल तरीके से बनाएं. इसके बाद, इसे इंडिकेशन पैरामीटर के तौर पर clickable को पास करें. (I663b2, b/155375067)
FilledTextField कंपोज़ेबल (I7f8f8) के इस्तेमाल से बाहर किए गए ओवरराइड को हटाया गया
बटन ऑब्जेक्ट का नाम बदलकर ButtonConstants कर दिया गया है. इसमें Button फ़ंक्शन के इस्तेमाल किए गए डिफ़ॉल्ट शामिल हैं (I7c5f7, b/159687878)
बटन का कॉन्टेंट स्लॉट अब लाइन के तौर पर काम करता है. यह तब काम आता है, जब आपको टेक्स्ट के साथ कोई आइकॉन दिखाना हो. इसे लिखने का तरीका जानने के लिए, बटन के सैंपल देखें (I0ff10, b/158677863)
RadioGroup और RadioGroupItem को बंद कर दिया गया है. अपने डिज़ाइन के हिसाब से रेडियो बटन के सही विकल्प बनाने के लिए, Box with Modifier.selectable, Row, और Column का इस्तेमाल करें (I7f5cf, b/149528535)
Material Outlined Textfield (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 के बजाय Size क्लास के इस्तेमाल को स्टैंडर्ड बनाएं. इससे इनलाइन क्लास के फ़ायदे मिलते हैं. जैसे, दो फ़्लोट वैल्यू को एक साथ पैक करने के लिए, long का इस्तेमाल किया जा सकता है. इससे फ़्लोट के तौर पर दिखाई गई चौड़ाई और ऊंचाई को दिखाया जा सकता है. (Ic0191)
Modifier.ripple को बंद कर देता है. अगर आपके ऐप्लिकेशन में MaterialTheme {} सेट है, तो अब क्लिक किए जा सकने वाले एलिमेंट के लिए, डिफ़ॉल्ट इंडिकेटर के तौर पर रिपल का इस्तेमाल किया जाता है. इसलिए, ज़्यादातर मामलों में, सिर्फ़ क्लिक किए जा सकने वाले एलिमेंट का इस्तेमाल करके, रिपल इंडिकेटर को बिना किसी शुल्क के इस्तेमाल किया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंडेड पैरामीटर को पसंद के मुताबिक बनाना है, तो RippleIndication को मैन्युअल तरीके से बनाएं. इसके बाद, इसे इंडिकेशन पैरामीटर के तौर पर clickable को पास करें. (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)
FAB और Extended FAB के डिफ़ॉल्ट रंग को MaterialTheme.colors.secondary में बदल दिया गया है. (I3b9b9, b/154118816)
एपीआई में, Color के सभी ऐसे इस्तेमाल को बदला गया है जिनमें null वैल्यू इस्तेमाल की जा सकती थी. अब null वैल्यू इस्तेमाल नहीं की जा सकती. साथ ही, null की जगह Color.Unset का इस्तेमाल किया गया है (Iabaa7)
EdgeInsets का नाम बदलकर InnerPadding कर दिया गया है. Material Buttons के innerPadding पैरामीटर का नाम बदलकर padding कर दिया गया है. (I66165)
स्लाइडर अब स्टेटलेस है. उपयोगकर्ताओं को खुद ही राज्य की जानकारी देनी होगी और उसे अपडेट करना होगा. यह काम, किसी अन्य कंट्रोल की तरह ही किया जा सकता है. (Ia00aa)
StaticDrawer को हटा दिया गया है. अगर आपको इसकी ज़रूरत है, तो इसके बजाय Box का इस्तेमाल करें. इसकी चौड़ाई, मटीरियल स्पेसिफ़िकेशन के मुताबिक होती है (I244a7)
फ़िल्ड टेक्स्ट फ़ील्ड (Ic75cd) में मटीरियल डिज़ाइन लागू किया गया
ListItem में मॉडिफ़ायर पैरामीटर जोड़ा गया और पैरामीटर को फिर से क्रम में लगाया गया, ताकि ट्रेलिंग लैम्ब्डा बॉडी को प्रमोट किया जा सके (I66e21)
Typography में defaultFontFamily कंस्ट्रक्टर पैरामीटर जोड़ता है. इससे डिफ़ॉल्ट फ़ॉन्ट फ़ैमिली तय की जा सकती है. इसका इस्तेमाल उन सभी TextStyles के लिए किया जाएगा जिनमें फ़ैमिली सेट नहीं है. (I89d07)
एपीआई की सतह से, कुछ समय के लिए मटीरियल डेटा टेबल हटा दी गई हैं. (Iaea61)
Divider कंपोज़ेबल में पैरामीटर के नाम बदले गए (Ic4373)
बच्चे (Ia6d19)
MaterialTheme.emphasisLevels को हटाता है. इसके बजाय, EmphasisAmbient.current का इस्तेमाल करके, फ़ोकस लेवल (Ib5e40) को वापस पाएं
शेप थीमिंग सिस्टम को, मटीरियल डिज़ाइन की खास बातों के मुताबिक अपडेट किया गया है. अब ज़्यादातर कॉम्पोनेंट (Ifb4d1) के लिए, छोटे, सामान्य, और बड़े साइज़ के शेप दिए जा सकते हैं
MaterialTheme.colors() और MaterialTheme.typography() जैसे MaterialTheme API को फ़ंक्शन के बजाय प्रॉपर्टी के तौर पर बदला गया है. मौजूदा कॉल से पैरंटheses हटाएं. इससे व्यवहार में कोई बदलाव नहीं होगा. (I3565a)
FloatingActionButton API को फिर से फ़ैक्टर किया गया है, ताकि वे प्रिमिटिव के बजाय कंपोज़ेबल लैम्डा स्वीकार कर सकें. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (I00622)
Checkbox, Switch, और Toggleable में
enabled
पैरामीटर जोड़ें (I41c16)Ripple अब एक मॉडिफ़ायर है. Clickable को अभी तक नहीं बदला गया है. इसलिए, इसका इस्तेमाल करने का सुझाव
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) दिया गया हैSurface और Card को androidx.ui.material.surface से androidx.ui.material में ले जाया गया है (I88a6d, b/150863888)
Button, FloatingActionButton, और Clickable में अब अलग
enabled
पैरामीटर है. बटन पर मौजूद कुछ पैरामीटर के नाम बदल दिए गए हैं या उनका क्रम बदल दिया गया है. (I54b5a)हमने इमेज का नाम बदलकर ImageAsset कर दिया है, ताकि इमेज डेटा और लेआउट और ड्रॉ कॉन्टेंट में हिस्सा लेने के लिए इस्तेमाल किए जाने वाले आने वाले Image कंपोज़ेबल के बीच के अंतर को बेहतर तरीके से समझा जा सके. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)
Snackbar API में String पैरामीटर इस्तेमाल करने की सुविधा हटा दी गई है. अब कंपोज़ेबल लैम्डा स्वीकार करने वाले ओवरलोड का इस्तेमाल किया जा सकता है. इस्तेमाल की जानकारी के लिए अपडेट किए गए सैंपल देखें (I55f80)
text
औरicon
लैम्डा स्वीकार करने के लिए, Tab API को फिर से बनाया गया, (Ia057e)BottomNavigation कॉम्पोनेंट जोड़ा गया. इसे इस्तेमाल करने के बारे में जानने के लिए, दस्तावेज़ और सैंपल देखें (I731a0)
AppBarIcon को हटाकर Icon, IconButton, और IconToggleButton जोड़े गए. AppBarIcon के मौजूदा इस्तेमाल को सीधे तौर पर IconButton से बदला जा सकता है. इसके बाद, उनके पास सही टच टारगेट होगा. इस्तेमाल से जुड़ी जानकारी के लिए सैंपल देखें. साथ ही, दिए गए Material Icons के आइकॉन देखें. इनका इस्तेमाल इन कॉम्पोनेंट के साथ सीधे तौर पर किया जा सकता है. (I96849)
ButtonStyle को अलग-अलग फ़ंक्शन से बदल दिया गया है. साथ ही, टेक्स्ट (स्ट्रिंग) ओवरलोड को हटा दिया गया है. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (If63ab, b/146478620, b/146482131)
Border
मॉडिफ़ायर का नाम बदलकरDrawBorder
(I8ffcc) किया गयाLayoutCoordinates में अब position प्रॉपर्टी नहीं है. LayoutModifiers, रोटेशन या स्केलिंग के लिए, position प्रॉपर्टी का इस्तेमाल नहीं किया जा सकता. इसके बजाय, डेवलपर को एक LayoutCoordinate से दूसरे LayoutCoordinate में ट्रांसफ़ॉर्म का हिसाब लगाने के लिए, parentCoordinates और childToLocal() का इस्तेमाल करना चाहिए.
LayoutCoordinates, साइज़ प्रॉपर्टी के लिए PxSize के बजाय IntPxSize का इस्तेमाल करता है. लेआउट के लिए पूर्णांक पिक्सल साइज़ का इस्तेमाल किया जाता है. इसलिए, लेआउट के सभी साइज़ में पूर्णांक का इस्तेमाल किया जाना चाहिए, न कि फ़्लोटिंग पॉइंट वैल्यू का. (I9367b)
ambients API में बड़े बदलाव. ज़्यादा जानकारी के लिए, लॉग और
Ambient<T>
दस्तावेज़ देखें (I4c7ee, b/143769776)Scaffold मटीरियल कॉम्पोनेंट जोड़ दिया गया है. Scaffold implements (I7731b)
DrawBorder को Border Modifier (Id335a) के पक्ष में बदला गया
गड़बड़ियां ठीक की गईं
- FocusModifier को अब इस्तेमाल नहीं किया जा सकता. इसके बजाय, Modifier.focus, Modifier.focusRequester, और Modifier.focusObserver का इस्तेमाल करें. FocusState और FocusDetailedState को अब इस्तेमाल नहीं किया जा सकता. इनके बजाय, FocusState2 का इस्तेमाल करें (I46919, b/160822875, b/160922136)
- VerticalScroller और HoriziontalScroller अब काम नहीं करते. Column/Row के व्यवहार और पैरामीटर के साथ-साथ Modifier के साथ काम करने वाले ScrollableColumn और ScrollableRow का इस्तेमाल करें. इसके अलावा, अपने एलिमेंट पर Modifier.verticalScroll और Modifier.horizontalScroll का इस्तेमाल करें. इसी तरह, ScrollerPosition को ScrollState' (I400ce, b/157225838, b/149460415, b/154105299) के पक्ष में बंद कर दिया गया है
- Modifier.draggable और Modifier.scrollable एपीआई को फिर से बनाया गया है. DragDirection को हटा दिया गया है और इसकी जगह Orientation का इस्तेमाल किया जा रहा है. स्क्रोल करने की सुविधा के लिए, राज्य की जानकारी देने की प्रोसेस को आसान बनाया गया है. 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 कर दिया गया है. रैप की गई Shader इनलाइन क्लास ने एपीआई सर्फ़ेस में कोई काम की चीज़ नहीं जोड़ी. साथ ही, यह एक इनलाइन क्लास थी. इसलिए, NativeShader क्लास का सीधे तौर पर इस्तेमाल करें. (I25e4d)
- पॉपअप, डायलॉग, और मेन्यू अब कॉन्टेक्स्ट के हिसाब से MaterialTheme (Ia3665, b/156527485) को इनहेरिट कर रहे हैं
- Material DropdownMenu को अब स्क्रोल किया जा सकता है. (Ide699)
- Layout() फ़ंक्शन के मेज़र ब्लॉक से लेआउट की दिशा वाला पैरामीटर हटाया गया. हालांकि, लेआउट की दिशा को मेज़र स्कोप ऑब्जेक्ट (Ic7d9d) के ज़रिए, कॉलबैक के अंदर उपलब्ध कराया जाता है
- स्टैटिक ऐनिमेशन स्पेसिफ़िकेशन के कॉन्सेप्ट को बेहतर तरीके से समझने के लिए, टॉप लेवल के एपीआई में AnimationBuilder के बजाय AnimationSpec का इस्तेमाल करें -ट्रांज़िशन डीएसएल को बेहतर बनाएं. इसके लिए, ट्विन और स्प्रिंग जैसे AnimationSpec बनाने के लिए लैम्डा की ज़रूरत को हटाएं. इसके बजाय, वे सीधे तौर पर कंस्ट्रक्टर पैरामीटर लेते हैं. -AnimationSpec को इस्तेमाल करने में आसानी होगी, क्योंकि अब बिल्डर पर भरोसा करने के बजाय कंस्ट्रक्टर का इस्तेमाल किया जा सकेगा -KeyFrames और Tween के लिए अवधि और देरी को Int में बदलें. इससे, टाइप कास्ट और तरीके के ओवरलोडिंग की ज़रूरत नहीं होगी (Long और Int, दोनों के लिए). (Ica0b4)
enabled
को false पर सेट करने पर, 'अभी स्विच करें' विकल्प बंद दिखता है (If4624, b/155941869, b/159331694)- Modifier.tag का नाम बदलकर Modifier.layoutId कर दिया गया है, ताकि Modifier.testTag के साथ कोई भ्रम न हो. (I995f0)
- Placeable#get(AlignmentLine) से मिली अलाइनमेंट लाइन की इंट पोज़िशन अब शून्य नहीं हैं. अगर क्वेरी की गई अलाइनमेंट लाइन मौजूद नहीं है, तो AlignmentLine.Unspecified दिखेगा. (I896c5, b/158134875)
Radius क्लास को रिफ़ैक्टर करके, इनलाइन क्लास बनाया गया. फ़ंक्शन कंस्ट्रक्टर के पक्ष में, कंपैनियन ऑब्जेक्ट बनाने के तरीके हटा दिए गए हैं. साथ ही, डिफ़ॉल्ट पैरामीटर के साथ फ़ंक्शन कंस्ट्रक्टर का इस्तेमाल किया गया है, ताकि y-ऐक्सिस के साथ रेडियस, x-ऐक्सिस के रेडियस पैरामीटर से मेल खाए.
DrawScope.drawRoundRect को अपडेट किया गया है. अब यह x और y ऐक्सिस के साथ रेडियस के लिए, दो अलग-अलग फ़्लोट वैल्यू के बजाय, एक ही रेडियस पैरामीटर का इस्तेमाल करेगा (I46d1b)
पोजीशनिंग की जानकारी दिखाने के लिए इस्तेमाल की गई क्लास की संख्या को कम करने के लिए, PxPosition के बजाय Offset क्लास का इस्तेमाल करें. इससे इनलाइन क्लास के फ़ायदे मिलते हैं. जैसे, x और y ऑफ़सेट को फ़्लोट के तौर पर दिखाने के लिए, दो फ़्लोट वैल्यू को पैक करने के लिए long का इस्तेमाल करना. (I3ad98)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग के तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है. Px क्लास को पूरी तरह से मिटा दिया गया है (I3ff33)
टॉगल किए जा सकने वाले कॉम्पोनेंट का इस्तेमाल अब नहीं किया जा सकता. इसके बजाय, Modifier.toggleable का इस्तेमाल करें (I35220, b/157642842)
पिक्सल पैरामीटर के लिए सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग के तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (I086f4)
पिक्सल पैरामीटर (Id3434) के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग के तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है
पिक्सेल पैरामीटर के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग की गई. इसके तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया (I97a5a)
DropdonMenuItems के लिए, onClick को लागू न किए जाने की समस्या ठीक की गई. (I3998b, b/157673259)
MutuallyExclusiveSetItem अब काम नहीं करता. इसके बजाय, Modifier.selectable का इस्तेमाल करें. (I02b47, b/157642842)
TestTag अब सेवा में नहीं है. इसके बजाय, Modifier.testTag का इस्तेमाल करें. (If5110, b/157173105)
TextField के कर्सर में ब्लिंक करने वाला ऐनिमेशन है (Id10a7)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग के तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (I19d02)
VerticalScroller अब पहले से मौजूद कॉलम उपलब्ध कराता है. HorizontalScroller अब पहले से मौजूद Row उपलब्ध कराता है. (Ieca5d, b/157020670)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर भरोसा करने के लिए, बड़े पैमाने पर रीफ़ैक्टरिंग के तहत, अलग-अलग कंपोज़ क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है (Iede0b)
Modifier.semantics को फिर से इस्तेमाल किया जा सकता है, ताकि इसका इस्तेमाल हाई लेवल कॉम्पोनेंट के लिए किया जा सके. (I4cfdc)
DrawLayer मॉडिफ़ायर एपीआई में बदलाव किया गया है: outlineShape का नाम बदलकर shape कर दिया गया है. इसकी डिफ़ॉल्ट वैल्यू RectangleShape है और अब इसे शून्य नहीं किया जा सकता; clipToOutline का नाम बदलकर clip कर दिया गया है; clipToBounds को हटा दिया गया है, क्योंकि यह RectangleShape के साथ clip == true के बराबर है (I7ef11, b/155075735)
ज़्यादा लेवल वाले Compose API अपडेट किए गए हैं. ये Canvas को CanvasScope के बजाय Canvas को दिखाते हैं. इससे उपभोक्ताओं को अपने पेंट ऑब्जेक्ट बनाए रखने की ज़रूरत नहीं पड़ती. जिन उपभोक्ताओं को अब भी Canvas का ऐक्सेस चाहिए वे drawCanvas एक्सटेंशन का इस्तेमाल कर सकते हैं. यह तरीका, Canvas के साथ ड्राइंग कमांड जारी करने के लिए कॉलबैक उपलब्ध कराता है. (I80afd)
AlignmentLineOffset कंपोज़ेबल के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, कृपया relativePaddingFrom() मॉडिफ़ायर का इस्तेमाल करें. CenterAlignmentLine कंपोज़ेबल को हटा दिया गया है. (I60107)
WithConstraints ट्रेलिंग लैम्डा एपीआई को बदल दिया गया है. अब इसमें दो पैरामीटर के बजाय, रिसीवर स्कोप है. यह कंस्ट्रेंट और layoutDirection के साथ-साथ, Dp में minWidth, maxWidth, minHeight, और maxHeight प्रॉपर्टी भी उपलब्ध कराता है (I91b9a, b/149979702)
layout modifier में 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) शामिल है
Row और Column में, verticalGravity और horizontalGravity पैरामीटर जोड़े गए. (I7dc5a)
wrapContentWidth और wrapContentHeight को अपडेट किया गया है, ताकि किसी भी अलाइनमेंट के बजाय वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट का इस्तेमाल किया जा सके. वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट को स्वीकार करने के लिए, ग्रेविटी मॉडिफ़ायर को अपडेट किया गया. कस्टम अलाइनमेंट को लगातार इस्तेमाल करने की सुविधा के लिए, लाइन, कॉलम, और स्टैक को अपडेट किया गया. (Ib0728)
PixelMap API बनाया गया है, ताकि ImageAsset से पिक्सल की जानकारी क्वेरी की जा सके. (I69ad6)
ProvideContentColor को हटाता है. इसके बजाय, ContentColorAmbient को सीधे तौर पर
Providers
(Iee942) के साथ इस्तेमाल करेंui-text-compose मॉड्यूल का नाम बदलकर ui-text कर दिया गया है. ui-text में अब CoreText और CoreTextField कंपोज़ेबल शामिल हैं (Ib7d47)
ui-text मॉड्यूल का नाम बदलकर ui-text-core (I57dec) कर दिया गया है
ui-framework/CoreText और CoreTextField कंपोज़ेबल को 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) से बदला गया
ड्रैग करने की सुविधा को मॉडिफ़ायर में ले जाया गया है (Id9b16, b/151959544)
ParentData कंपोज़ेबल अब काम नहीं करता है. आपको या तो ऐसा मॉडिफ़ायर बनाना चाहिए जो ParentDataModifier इंटरफ़ेस लागू करता हो या LayoutTag मॉडिफ़ायर का इस्तेमाल करना चाहिए. ऐसा तब करें, जब आपको लेआउट के बच्चों को टैग करना हो, ताकि उन्हें मेज़र ब्लॉक में पहचाना जा सके. (I51368, b/150953183)
अब काम नहीं करने वाला Center कंपोज़ेबल. इसे LayoutSize.Fill + LayoutAlign.Center मॉडिफ़ायर से बदला जाना चाहिए. इसके अलावा, इसे Box या Stack कंपोज़ेबल में से किसी एक से भी बदला जा सकता है. हालांकि, इसके लिए ज़रूरी है कि इन पर सही मॉडिफ़ायर लागू किए गए हों (Idf5e0)
वेक्टर ग्राफ़िक के लिए, मौजूदा सबकंपोज़िशन एपीआई को बदलने के लिए VectorPainter API जोड़ा गया. सबकंपोज़िशन का नतीजा, DrawModifier के बजाय VectorPainter ऑब्जेक्ट होता है. VectorPainter के पक्ष में, DrawVector कंपोज़ेबल के पिछले वर्शन को बंद कर दिया गया है.
Image(Painter) API का नाम बदलकर PaintBox(Painter) कर दिया गया है एक ऐसा वेक्टर कंपोज़ेबल बनाया गया है जो Image कंपोज़ेबल की तरह काम करता है. हालांकि, इसमें ImageAsset के बजाय VectorAsset का इस्तेमाल किया जाता है (I9af9a, b/149030271)
LayoutFlexible का नाम बदलकर LayoutWeight कर दिया गया है. भरने के लिए टाइट पैरामीटर का नाम बदला गया. (If4738)
DrawLayerModifier के पक्ष में RepaintBoundary को हटाया गया (I00aa4)
DrawVector को सामान्य कंपोज़ेबल फ़ंक्शन से बदलकर, Modifier drawVector() में बदल दिया गया है. यह लेआउट के बैकग्राउंड के तौर पर वेक्टर को ड्रॉ करेगा. (I7b8e0)
ओपैसिटी कंपोज़ेबल फ़ंक्शन को drawOpacity मॉडिफ़ायर से बदल दिया गया है. (I5fb62)
कंपोज़ किए जा सकने वाले फ़ंक्शन Clip को modifier drawClip() से बदलें. DrawClipToBounds एक ऐसा मॉडिफ़ायर है जिसका इस्तेमाल करना आसान है. इसका इस्तेमाल तब किया जाता है, जब आपको सिर्फ़ रेक्टैंगल शेप के साथ लेयर की सीमाओं को काटना हो. (If28eb)
DrawShadow कंपोज़ेबल फ़ंक्शन को drawShadow() मॉडिफ़ायर से बदल दिया गया है. अब LayerModifier के हिस्से के तौर पर शैडो बनाई जाती हैं. (I0317a)
LayerModifier जोड़ा गया है. यह एक ऐसा मॉडिफ़ायर है जो लेआउट के लिए RenderNode जोड़ने की अनुमति देता है. इसकी मदद से, क्लिपिंग, ओपैसिटी, रोटेशन, स्केलिंग, और शैडो सेट की जा सकती हैं. यह 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)स्क्रीन पर दिए गए ImageAsset को दिखाने के साथ-साथ, साइज़/लेआउट को मैनेज करने के लिए, Image कंपोज़ेबल बनाया गया. यह कंपोज़ेबल, किसी भी आर्बिट्ररी पेंटर इंस्टेंस को भी ड्रॉ करने की सुविधा देता है. इसके लिए, यह इंस्टेंस के इंट्रिंसिक साइज़ का ध्यान रखता है. साथ ही, यह दिए गए फ़िक्स्ड साइज़ या कम से कम साइज़ (Ibcc8f) का भी ध्यान रखता है
इस्तेमाल से बाहर किया गया रैप कंपोज़ेबल. इसे LayoutAlign मॉडिफ़ायर या Stack कंपोज़ेबल (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 में बदलाव किया गया है, ताकि providedAlignmentLines को Map के बजाय Set बनाया जा सके. साथ ही, LayoutCoordinates में get() ऑपरेटर को लागू किया गया है, ताकि वैल्यू को वापस पाया जा सके. इससे मॉडिफ़ायर के लिए, सेट की एक या उससे ज़्यादा वैल्यू में बदलाव करना आसान हो जाता है. इसके लिए, उन्हें हर मॉडिफ़ायर के लिए नया कलेक्शन बनाने की ज़रूरत नहीं होती. (I0245a)
स्क्रोलर अब Android के फ़्लिंग मोशन के नेटिव व्यवहार को दिखाते हैं. (I922af, b/147493715)
Constraints (I0fd15) के एपीआई इंटरफ़ेस में सुधार