मटीरियल तैयार करना
androidx.compose.material
androidx.compose.material.icons
(सभी Compose पैकेज के लिए, एपीआई का संदर्भ देने वाले दस्तावेज़ देखें)
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 07 अक्टूबर, 2026 | 1.12.1 | - | 1.13.0-beta01 | - |
संरचना
Compose, androidx में मौजूद सात Maven ग्रुप आईडी का कॉम्बिनेशन है. हर ग्रुप में, फ़ंक्शन का एक सबसेट होता है. हर ग्रुप के रिलीज़ नोट का अपना सेट होता है.
इस टेबल में, ग्रुप और रिलीज़ नोट के हर सेट के लिंक दिए गए हैं.
| समूह | ब्यौरा |
|---|---|
| compose.animation | उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, Jetpack Compose ऐप्लिकेशन में ऐनिमेशन बनाएं. |
| compose.compiler | Kotlin कंपाइलर प्लगिन की मदद से, @Composable फ़ंक्शन को बदलें और ऑप्टिमाइज़ेशन चालू करें. |
| compose.foundation | इस्तेमाल के लिए तैयार बिल्डिंग ब्लॉक की मदद से, Jetpack Compose ऐप्लिकेशन लिखें. साथ ही, अपने डिज़ाइन सिस्टम के कॉम्पोनेंट बनाने के लिए, फ़ाउंडेशन को बढ़ाएं. |
| compose.material | मटीरियल डिज़ाइन कॉम्पोनेंट का इस्तेमाल करके, Jetpack Compose यूज़र इंटरफ़ेस बनाएं. यह Compose का हायर लेवल एंट्री पॉइंट है. इसे www.material.io पर बताए गए कॉम्पोनेंट के हिसाब से डिज़ाइन किया गया है. |
| compose.material3 | Material Design 3 कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. ये कॉम्पोनेंट, Material Design का अगला वर्शन हैं. Material 3 में अपडेट की गई थीमिंग और कॉम्पोनेंट शामिल हैं. साथ ही, इसमें Material You की उपयोगकर्ता की गतिविधि और दिलचस्पी के हिसाब से उपलब्ध सुविधाएं भी हैं. जैसे, डाइनैमिक कलर. इसे Android 12 की नई विज़ुअल स्टाइल और सिस्टम यूज़र इंटरफ़ेस (यूआई) के साथ काम करने के लिए डिज़ाइन किया गया है. |
| compose.runtime | Compose के प्रोग्रामिंग मॉडल और स्टेट मैनेजमेंट के बुनियादी बिल्डिंग ब्लॉक. साथ ही, Compose Compiler Plugin के लिए कोर रनटाइम, ताकि उसे टारगेट किया जा सके. |
| compose.ui | डिवाइस के साथ इंटरैक्ट करने के लिए, Compose यूज़र इंटरफ़ेस (यूआई) के बुनियादी कॉम्पोनेंट. इनमें लेआउट, ड्रॉइंग, और इनपुट शामिल हैं. |
डिपेंडेंसी का एलान करना
Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
plugins { id 'org.jetbrains.kotlin.plugin.compose' } dependencies { implementation "androidx.compose.material:material:1.12.1" } android { buildFeatures { compose true } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
plugins { kotlin("plugin.compose") } dependencies { implementation("androidx.compose.material:material:1.12.1") } android { buildFeatures { compose = true } kotlinOptions { jvmTarget = "1.8" } }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.13
वर्शन 1.13.0-beta01
07 अक्टूबर, 2026
androidx.compose.material:material-*:1.13.0-beta01 रिलीज़ हो गया है. वर्शन 1.13.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- लाइब्रेरी अब Kotlin 2.2 को टारगेट करती हैं और इसके लिए kotlinc 2.2 की ज़रूरत होती है (I82396, b/498369605)
वर्शन 1.13.0-alpha03
09 सितंबर, 2026
androidx.compose.material:material-*:1.13.0-alpha03 रिलीज़ हो गया है. वर्शन 1.13.0-alpha03 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Material 2 के टेक्स्ट फ़ील्ड के ऐसे ओवरलोड अब काम नहीं करते जो
value, onValueChangeपैरामीटर स्वीकार करते हैं. कृपया उस ओवरलोड पर माइग्रेट करें जो अपनी स्थिति को ऊपर ले जाने के लिएTextFieldStateका इस्तेमाल करता है. (I6b841, b/556234973)
गड़बड़ियां ठीक की गईं
compileSdkके लिए, Compose लाइब्रेरी को 37.1 पर अपडेट किया गया. इसके लिए, Compose का इस्तेमाल करने वाले सभी ऐप्लिकेशन और लाइब्रेरी के लिए,compileSdkको अपडेट करना होगा. (I05b0f)SecureTextFieldऔरOutlinedSecureTextFieldकॉम्पोनेंट के साथ-साथ, बंद किए गएBasicSecureTextFieldओवरलोड को अपडेट किया गया है. अबTextObfuscationMode.RevealLastTypedके बजाय,TextObfuscationMode.Systemको डिफ़ॉल्ट अस्पष्टता मोड के तौर पर इस्तेमाल किया जाएगा. (I76c7e)
वर्शन 1.13.0-alpha02
26 अगस्त, 2026
androidx.compose.material:material-*:1.13.0-alpha02 रिलीज़ हो गया है. वर्शन 1.13.0-alpha02 में ये बदलाव शामिल हैं.
वर्शन 1.13.0-alpha01
12 अगस्त, 2026
androidx.compose.material:material-*:1.13.0-alpha01 रिलीज़ हो गया है. वर्शन 1.13.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
androidx.benchmarkके पास अब 24 काminSdkहै. (Ic2a85)
गड़बड़ियां ठीक की गईं
- डाइनैमिक गेटर का इस्तेमाल करके,
materialटॉप-लेवल वैल्यू क्लास की प्रॉपर्टी के फ़ाइल-लेवल के इनिशियलाइज़ेशन को ऑप्टिमाइज़ किया गया है. (Iae591) - डाइनैमिक गेटर का इस्तेमाल करके,
materialवैल्यू क्लास (FabPositionऔरStrings) के कंपैनियन ऑब्जेक्ट के इनिशियलाइज़ेशन को ऑप्टिमाइज़ किया गया. (I0c7c0) compileSdk 37(If78b4) के लिए ज़रूरी शर्त हटाएं
वर्शन 1.12
वर्शन 1.12.1
09 सितंबर, 2026
androidx.compose.material:material-*:1.12.1 रिलीज़ हो गया है. वर्शन 1.12.1 में ये बदलाव शामिल हैं.
वर्शन 1.12.0
12 अगस्त, 2026
androidx.compose.material:material-*:1.12.0 रिलीज़ हो गया है. वर्शन 1.12.0 में ये बदलाव शामिल हैं.
1.11.0 के बाद हुए अहम बदलाव:
वर्शन 1.12.0-rc01
29 जुलाई, 2026
androidx.compose.material:material-*:1.12.0-rc01 रिलीज़ हो गया है. वर्शन 1.12.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.12.0-beta02
01 जुलाई, 2026
androidx.compose.material:material-*:1.12.0-beta02 रिलीज़ हो गया है. वर्शन 1.12.0-beta02 में ये बदलाव शामिल हैं.
वर्शन 1.12.0-beta01
17 जून, 2026
androidx.compose.material:material-*:1.12.0-beta01 रिलीज़ हो गया है. वर्शन 1.12.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.12.0-alpha03
19 मई, 2026
androidx.compose.material:material-*:1.12.0-alpha03 रिलीज़ हो गया है. वर्शन 1.12.0-alpha03 में ये बदलाव शामिल हैं.
वर्शन 1.12.0-alpha02
6 मई, 2026
androidx.compose.material:material-*:1.12.0-alpha02 रिलीज़ हो गया है. वर्शन 1.12.0-alpha02 में ये बदलाव शामिल हैं.
वर्शन 1.12.0-alpha01
22 अप्रैल, 2026
androidx.compose.material:material-*:1.12.0-alpha01 रिलीज़ हो गया है. वर्शन 1.12.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
VelocityTrackerको Android फ़्रेमवर्क की ओर से उपलब्ध कराए गए तरीके का इस्तेमाल करने के लिए बदला गया है. इसेAndroidComposeUiFlags.isFrameworkVelocityTrackerEnabledके साथ कॉन्फ़िगर किया जा सकता है. (Ibc7e2, b/359962905)
गड़बड़ियां ठीक की गईं
- Compose
compileSdkको एपीआई 37 पर अपडेट किया गया. इसका मतलब है कि Compose का इस्तेमाल करने के लिए, AGP का कम से कम 9.2.0 वर्शन होना ज़रूरी है. (Id45cd, b/413674743)
वर्शन 1.11
वर्शन 1.11.4
01 जुलाई, 2026
androidx.compose.material:material-*:1.11.4 रिलीज़ हो गया है. वर्शन 1.11.4 में ये बदलाव शामिल हैं.
वर्शन 1.11.3
17 जून, 2026
androidx.compose.material:material-*:1.11.3 रिलीज़ हो गया है. वर्शन 1.11.3 में ये बदलाव शामिल हैं.
वर्शन 1.11.2
19 मई, 2026
androidx.compose.material:material-*:1.11.2 रिलीज़ हो गया है. वर्शन 1.11.2 में ये बदलाव शामिल हैं.
वर्शन 1.11.1
6 मई, 2026
androidx.compose.material:material-*:1.11.1 रिलीज़ हो गया है. वर्शन 1.11.1 में ये बदलाव शामिल हैं.
वर्शन 1.11.0
22 अप्रैल, 2026
androidx.compose.material:material-*:1.11.0 रिलीज़ हो गया है. वर्शन 1.11.0 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-rc01
08 अप्रैल, 2026
androidx.compose.material:material-*:1.11.0-rc01 रिलीज़ हो गया है. वर्शन 1.11.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-beta02
25 मार्च, 2026
androidx.compose.material:material-*:1.11.0-beta02 रिलीज़ हो गया है. वर्शन 1.11.0-beta02 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-beta01
11 मार्च, 2026
androidx.compose.material:material-*:1.11.0-beta01 रिलीज़ हो गया है. वर्शन 1.11.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha06
25 फ़रवरी, 2026
androidx.compose.material:material-*:1.11.0-alpha06 रिलीज़ हो गया है. वर्शन 1.11.0-alpha06 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha05
11 फ़रवरी, 2026
androidx.compose.material:material-*:1.11.0-alpha05 रिलीज़ हो गया है. वर्शन 1.11.0-alpha05 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha04
28 जनवरी, 2026
androidx.compose.material:material-*:1.11.0-alpha04 रिलीज़ हो गया है. वर्शन 1.11.0-alpha04 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha03
14 जनवरी, 2026
androidx.compose.material:material-*:1.11.0-alpha03 रिलीज़ हो गया है. वर्शन 1.11.0-alpha03 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha02
17 दिसंबर, 2025
androidx.compose.material:material-*:1.11.0-alpha02 रिलीज़ हो गया है. वर्शन 1.11.0-alpha02 में ये बदलाव शामिल हैं.
वर्शन 1.11.0-alpha01
03 दिसंबर, 2025
androidx.compose.material:material-*:1.11.0-alpha01 रिलीज़ हो गया है. वर्शन 1.11.0-alpha01 में ये बदलाव शामिल हैं.
वर्शन 1.10
वर्शन 1.10.6
25 मार्च, 2026
androidx.compose.material:material-*:1.10.6 रिलीज़ हो गया है. वर्शन 1.10.6 में ये बदलाव शामिल हैं.
वर्शन 1.10.5
11 मार्च, 2026
androidx.compose.material:material-*:1.10.5 रिलीज़ हो गया है. वर्शन 1.10.5 में ये बदलाव शामिल हैं.
वर्शन 1.10.4
25 फ़रवरी, 2026
androidx.compose.material:material-*:1.10.4 रिलीज़ हो गया है. वर्शन 1.10.4 में ये बदलाव शामिल हैं.
वर्शन 1.10.3
11 फ़रवरी, 2026
androidx.compose.material:material-*:1.10.3 रिलीज़ हो गया है. वर्शन 1.10.3 में ये बदलाव शामिल हैं.
वर्शन 1.10.2
28 जनवरी, 2026
androidx.compose.material:material-*:1.10.2 रिलीज़ हो गया है. वर्शन 1.10.2 में ये बदलाव शामिल हैं.
वर्शन 1.10.1
14 जनवरी, 2026
androidx.compose.material:material-*:1.10.1 रिलीज़ हो गया है. वर्शन 1.10.1 में ये बदलाव शामिल हैं.
वर्शन 1.10.0
03 दिसंबर, 2025
androidx.compose.material:material-*:1.10.0 रिलीज़ हो गया है. वर्शन 1.10.0 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-rc01
19 नवंबर, 2025
androidx.compose.material:material-*:1.10.0-rc01 रिलीज़ हो गया है. वर्शन 1.10.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-beta02
05 नवंबर, 2025
androidx.compose.material:material-*:1.10.0-beta02 रिलीज़ हो गया है. वर्शन 1.10.0-beta02 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-beta01
22 अक्टूबर, 2025
androidx.compose.material:material-*:1.10.0-beta01 रिलीज़ हो गया है. वर्शन 1.10.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-alpha05
08 अक्टूबर, 2025
androidx.compose.material:material-*:1.10.0-alpha05 रिलीज़ हो गया है. वर्शन 1.10.0-alpha05 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-alpha04
24 सितंबर, 2025
androidx.compose.material:material-*:1.10.0-alpha04 रिलीज़ हो गया है. वर्शन 1.10.0-alpha04 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-alpha03
10 सितंबर, 2025
androidx.compose.material:material-*:1.10.0-alpha03 रिलीज़ हो गया है. वर्शन 1.10.0-alpha03 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-alpha02
27 अगस्त, 2025
androidx.compose.material:material-*:1.10.0-alpha02 रिलीज़ हो गया है. वर्शन 1.10.0-alpha02 में ये बदलाव शामिल हैं.
वर्शन 1.10.0-alpha01
13 अगस्त, 2025
androidx.compose.material:material-*:1.10.0-alpha01 रिलीज़ हो गया है. वर्शन 1.10.0-alpha01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डिफ़ॉल्ट
minSdkको एपीआई 21 से एपीआई 23 पर ले जाना. (Ibdfca, b/380448311, b/435705964, b/435705223)
वर्शन 1.9
वर्शन 1.9.5
19 नवंबर, 2025
androidx.compose.material:material-*:1.9.5 रिलीज़ हो गया है. वर्शन 1.9.5 में ये बदलाव शामिल हैं.
वर्शन 1.9.4
22 अक्टूबर, 2025
androidx.compose.material:material-*:1.9.4 रिलीज़ हो गया है. वर्शन 1.9.4 में ये बदलाव शामिल हैं.
वर्शन 1.9.3
08 अक्टूबर, 2025
androidx.compose.material:material-*:1.9.3 रिलीज़ हो गया है. वर्शन 1.9.3 में ये बदलाव शामिल हैं.
वर्शन 1.9.2
24 सितंबर, 2025
androidx.compose.material:material-*:1.9.2 रिलीज़ हो गया है. वर्शन 1.9.2 में ये बदलाव शामिल हैं.
वर्शन 1.9.1
10 सितंबर, 2025
androidx.compose.material:material-*:1.9.1 रिलीज़ हो गया है. वर्शन 1.9.1 में ये बदलाव शामिल हैं.
वर्शन 1.9.0
13 अगस्त, 2025
androidx.compose.material:material-*:1.9.0 रिलीज़ हो गया है. वर्शन 1.9.0 में ये बदलाव शामिल हैं.
1.8.0 के बाद हुए अहम बदलाव
व्यवहार में बदलाव
- Compose के साथ शिप किए गए Lint चेक के लिए, अब AGP का कम से कम 8.8.2 वर्शन ज़रूरी है. अगर AGP को अपग्रेड नहीं किया जा सकता, तो gradle.properties में
android.experimental.lint.version=8.8.2(या नया वर्शन) का इस्तेमाल करके, Lint को अलग से अपग्रेड किया जा सकता है. आईडीई में Compose lint की जांच करने के लिए, Android Studio Ladybug या इसके बाद का वर्शन ज़रूरी है.
एपीआई में हुए बदलाव
- Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट का इस्तेमाल करने के लिए, KGP 2.0.0 या इसके बाद के वर्शन की ज़रूरत होती है. (Idb6b5)
- टेक्स्ट फ़ील्ड डेकोरेशन बॉक्स एपीआई अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (I7480f)
गड़बड़ियां ठीक की गईं
ExposedDropdownMenu, पुराने वर्शन के साथ बाइनरी तौर पर काम करता है. (I133f7)
वर्शन 1.9.0-rc01
30 जुलाई, 2025
androidx.compose.material:material-*:1.9.0-rc01 रिलीज़ हो गया है. वर्शन 1.9.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 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)में मौजूद हाइपरलिंक में अब डिफ़ॉल्ट रूप से, Material स्टाइलिंग होती है. (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 को अपग्रेड किया जा सकता है. आईडीई में Compose 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 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
contentPaddingमें बदलाव होने पर, बॉडी कॉन्टेंट को बार-बार फिर से कंपोज़ करने से बचने के लिए, ScaffoldcontentPaddingके व्यवहार को ऑप्टिमाइज़ करें. (I8c8e2, b/373904168)- कंट्रोल बटन दबाने पर, मटीरियल स्लाइडर की वैल्यू में बदलाव करें. (I1c442)
वर्शन 1.8.0-alpha04
16 अक्टूबर, 2024
androidx.compose.material:material-*:1.8.0-alpha04 रिलीज़ हो गया है. वर्शन 1.8.0-alpha04 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
TextFields' सेreadOnlyहटाएं, ताकि इसे स्टेबल फ़ाउंडेशन वर्शन पर पिन किया जा सके. (I3aaba)
गड़बड़ियां ठीक की गईं
- Android S+ पर, यह सुविधा कार्ड जैसे कॉम्पोनेंट को बड़ा करने पर रिपल इफ़ेक्ट दिखाती है. जैसे, क्लिक करने पर बड़ा होने वाला कार्ड. पहले, रिपल नए साइज़ के हिसाब से नहीं भरता था. हालांकि, अब यह नए साइज़ के हिसाब से बड़ा हो जाएगा. (If509a, b/183019123)
वर्शन 1.8.0-alpha02
18 सितंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha02 रिलीज़ हो गया है. वर्शन 1.8.0-alpha02 में ये बदलाव शामिल हैं.
वर्शन 1.8.0-alpha01
4 सितंबर, 2024
androidx.compose.material:material-*:1.8.0-alpha01 रिलीज़ हो गया है. वर्शन 1.8.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- सेफ़ आर्ग्युमेंट के साथ 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 थीम वाले लिंक पाने के लिए एपीआई को अपडेट किया गया है. खास तौर पर, थीम वाले
LinkAnnotationsबनाने और थीम वाले लिंक के साथ एचटीएमएल पार्स करने के लिए,TextDefaultsसे तरीकों को हटा दिया गया है. इसके बजाय, एकTextLinkStylesक्लास जोड़ी गई है. इससे लिंक को Text कंपोज़ेबल के पैरामीटर के तौर पर स्टाइल किया जा सकता है. (I31b93)
वर्शन 1.7.0-alpha08
1 मई, 2024
androidx.compose.material:material-*:1.7.0-alpha08 रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
backgroundColorकोTextFieldDecorationBoxऔरOutlinedTextFieldDecorationBoxपर लागू न होने की समस्या ठीक की गई. डेकोरेशन बॉक्स अबshapeपैरामीटर स्वीकार करते हैं. (I371c2, b/307694651)RippleConfiguration#isEnabledको हटा दिया गया है औरLocalRippleConfigurationको नल किया जा सकता है. रिपल बंद करने के लिए,isEnabled = falseके साथRippleConfigurationदेने के बजाय,LocalRippleConfigurationकोnullदें. (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 का इस्तेमाल करते समय, बॉटम शीट को डेस्टिनेशन के तौर पर इस्तेमाल किया जा सकता है. यह संगीत के साथ गाने वाले लोगों के लिए नेविगेशन मटीरियल लाइब्रेरी की जगह लेगी. (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)
एपीआई में हुए बदलाव
- Material के
Swipeableएपीआई अब काम नहीं करते. कृपया Foundation केAnchoredDraggableएपीआई देखें. इन्हें इस्तेमाल के आसान और मुश्किल, दोनों उदाहरणों के लिए ऑप्टिमाइज़ किया गया है. (I732e0)
गड़बड़ियां ठीक की गईं
BottomSheetState,ModalBottomSheetState, औरBottomDrawerStateअब प्रोग्रेस प्रॉपर्टी दिखाते हैं. इससे, मौजूदा (सेटल्ड) ऐंकर और स्वाइप की दिशा में सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस का पता चलता है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
संस्करण 1.5
वर्शन 1.5.4
18 अक्टूबर, 2023
androidx.compose.material:material-*:1.5.4 रिलीज़ हो गया है. वर्शन 1.5.4 में ये बदलाव शामिल हैं.
वर्शन 1.5.3
4 अक्टूबर, 2023
androidx.compose.material:material-*:1.5.3 रिलीज़ हो गया है. इस वर्शन में कोई बदलाव नहीं किया गया है
संस्करण 1.5.2
27 सितंबर, 2023
androidx.compose.material:material-*:1.5.2 रिलीज़ हो गया है. वर्शन 1.5.2 में ये बदलाव शामिल हैं.
संस्करण 1.5.1
6 सितंबर, 2023
androidx.compose.material:material-*:1.5.1 को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.5.1 में ये बदलाव शामिल हैं.
वर्शन 1.5.0
9 अगस्त, 2023
androidx.compose.material:material-*:1.5.0 रिलीज़ हो गया है. वर्शन 1.5.0 में ये बदलाव शामिल हैं.
1.4.0 के बाद हुए अहम बदलाव
एपीआई में हुए बदलाव
BottomSheetScaffoldमें Swipeable1 एपीआई में किए गए बदलावों को शामिल किया गया है.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 टेक्स्ट में
minLinesपैरामीटर जोड़ा गया. साथ ही,TextFieldऔरOutlinedTextFieldजोड़े गए. इससे लाइनों की संख्या (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को 'गलत है' पर सेट करने पर,BottomSheetScaffoldअब नेस्ट किए गए स्क्रोल में हिस्सा नहीं लेगा. (I634f3, b/215403277)- उस गड़बड़ी को ठीक किया गया है जिसमें स्लॉट के लिए खाली कॉन्टेंट दिए जाने पर,
BottomSheetScaffoldक्रैश हो जाता था. (Ib24a5, b/235588730) PullRefreshIndicatorक्लिक/पॉइंटर इवेंट को इंटरसेप्ट करने की समस्या ठीक की गई. (2494256, b/271777421)- उस समस्या को ठीक किया गया है जिसकी वजह से ओरिएंटेशन बदलने पर,
ModalBottomSheetLayoutक्रैश हो जाता था. शीट के कॉन्टेंट में लेआउट ऐनिमेशन (जैसे,Modifier.animateContentSize) अब आसानी से काम करते हैं. (I2f981, b/266780234)
वर्शन 1.5.0-rc01
26 जुलाई, 2023
androidx.compose.material:material-*:1.5.0-rc01 रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.5.0-beta03
28 जून, 2023
androidx.compose.material:material-*:1.5.0-beta03 रिलीज़ हो गया है. वर्शन 1.5.0-beta03 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
BottomSheetState,ModalBottomSheetState, औरBottomDrawerStateअब प्रोग्रेस प्रॉपर्टी दिखाते हैं. इससे, मौजूदा (सेटल्ड) ऐंकर और स्वाइप की दिशा में सबसे नज़दीकी ऐंकर के बीच की प्रोग्रेस का पता चलता है. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
वर्शन 1.5.0-beta02
7 जून, 2023
androidx.compose.material:material-*:1.5.0-beta02 रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये बदलाव शामिल हैं.
वर्शन 1.5.0-beta01
24 मई, 2023
androidx.compose.material:material-*:1.5.0-beta01 रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
DrawerStateऔरBottomDrawerStateके ऑफ़सेट को अब शून्य पर सेट नहीं किया जा सकता. इसके बजाय, येFloat.NaNवैल्यू दिखाते हैं, ताकि यह पता चल सके कि ऑफ़सेट मौजूद नहीं है. (Ie9855)- दिखाए गए मेन्यू आइटम के वर्टिकल स्क्रोल की स्थिति को कंट्रोल करने के लिए,
DropdownMenuयाExposedDropdownMenuबनाते समयScrollStateपास करने का विकल्प जोड़ा गया. (Idb009, b/185304441) ModalBottomSheetLayoutके लिए, जेस्चर की सुविधा चालू/बंद करने की सुविधा जोड़ें, ताकि उपयोगकर्ता इसे ज़्यादा सुविधाओं वाली बॉटमशीट (I40af0) के लिए कॉन्फ़िगर कर सकेBasicTextमें कलर पैरामीटर जोड़ा गया है, ताकि टेक्स्ट के रंग को आसानी से ऐनिमेट किया जा सके या सेट किया जा सके. (Iffd88, b/246961787)- सेमैंटिक्स प्रॉपर्टी
isContainerका नाम बदलकरisTraversalGroup(I121f6) किया जा रहा है
गड़बड़ियां ठीक की गईं
AlertDialogखारिज करें कार्रवाई को ठीक किया गया है, ताकि जब कार्रवाइयां एक-दूसरे के ऊपर स्टैक हो जाएं, तो यह कार्रवाई पुष्टि करें कार्रवाई के नीचे दिखे. ऐसा तब होता है, जब कार्रवाइयों को डायलॉग की चौड़ाई में फ़िट किया जाता है. इस सुधार से, मटीरियल डिज़ाइन स्पेसिफ़िकेशन के साथ लागू करने की सुविधा को अलाइन किया गया है. (I029de, b/235454277)
वर्शन 1.5.0-alpha04
10 मई, 2023
androidx.compose.material:material-*:1.5.0-alpha04 रिलीज़ हो गया है. वर्शन 1.5.0-alpha04 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- हम डेंसिटी की निर्भरता को कॉम्पोनेंट लेवल पर ले जा रहे हैं. यह इन कॉम्पोनेंट पर लागू होता है:
BottomDrawer,ModalBottomSheetLayout,BottomSheetScaffold,Switch,ModalDrawer. कृपया दिए गए नए ओवरलोड का इस्तेमाल करें, जहां डेंसिटी एक पैरामीटर है. (I8fbd8)
वर्शन 1.5.0-alpha03
19 अप्रैल, 2023
androidx.compose.material:material-*:1.5.0-alpha03 रिलीज़ हो गया है. वर्शन 1.5.0-alpha03 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- नए
SwipeableV2एपीआई का इस्तेमाल करने के लिए,BottomDrawerके इंटरनल को अपडेट किया गया है. इस वजह से,BottomDrawerStateमें अब सिर्फ़ क्लास लेवल पर तय किए गए एपीआई होंगे. यहSwipeableStateसे तरीके/प्रॉपर्टी इनहेरिट नहीं करेगा. हम इंटरनलSwipeableV2Stateके साथ कंपोज़िशन का इस्तेमाल कर रहे हैं. ऑफ़सेट अब एक फ़्लोटिंग पॉइंट प्रॉपर्टी है, जिसमें शून्य वैल्यू हो सकती है. मौजूदा वैल्यू और स्वाइप टारगेट वैल्यू को अब भी currentValue और targetValue प्रॉपर्टी के ज़रिए ऐक्सेस किया जा सकता है. क्लास लेवल के पिछले तरीके, जैसे कि open/expand/close औरisOpen/isClosedजैसी प्रॉपर्टी अब भी काम करती हैं. (Iad40c, b/178529942, b/220676296)
गड़बड़ियां ठीक की गईं
- Switch कॉम्पोनेंट के इंटरनल को अपडेट किया गया. अब स्विच को खींचते समय, सबसे मिलती-जुलती (टारगेट स्टेट) झलक दिखेगी. (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) - क्लिक / पॉइंटर इवेंट (2494256, b/271777421) को इंटरसेप्ट करने वाली
PullRefreshIndicatorठीक की गई हैं
वर्शन 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को open और close तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब शून्य हो सकता है. ऑफ़सेट की ज़रूरत होने पर,requireOffsetका इस्तेमाल करें. (I3de9e)- मटीरियल और मटीरियल3 टेक्स्ट में
minLinesपैरामीटर जोड़ा गया. साथ ही,TextFieldऔरOutlinedTextFieldजोड़े गए. इससे लाइनों की संख्या (I4af1d) के हिसाब से, कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है BasicTextऔरBasicTextFieldमेंminLinesपैरामीटर जोड़ा गया. इससे लाइनों की संख्या के हिसाब से, इन कंपोज़ेबल की कम से कम ऊंचाई सेट की जा सकती है (I24294, b/122476634)
वर्शन 1.4.0-rc01
8 मार्च, 2023
androidx.compose.material:material-*:1.4.0-rc01 को बिना किसी बदलाव के रिलीज़ किया गया है. वर्शन 1.4.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.4.0-beta02
22 फ़रवरी, 2023
androidx.compose.material:material-*:1.4.0-beta02 रिलीज़ हो गया है. वर्शन 1.4.0-beta02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
BottomSheetScaffoldमें स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए हैं.BottomSheetStateकेconfirmStateChangeपैरामीटर का नाम बदलकरconfirmValueChangeकर दिया गया है.progressको अब फ़्लोट वैल्यू के तौर पर दिखाया जाता है.animateToऔरsnapToइंटरनल हैं. इसके बजाय,expand()औरcollapse()का इस्तेमाल करें.directionऔरoverflowको हटा दिया गया है.offsetकोrequireOffset()से बदल दिया गया है. (I323b4)
गड़बड़ियां ठीक की गईं
- क्लिक किए जा सकने वाले और चुने जा सकने वाले कॉम्पोनेंट से सिमैंटिक रोल हटा दिए गए हैं. साथ ही, उन कॉम्पोनेंट को अपडेट कर दिया गया है जो modifier.semantics (Ibb4ba) का इस्तेमाल करके रोल सेट करते थे
- एक्सटेंड किए गए Material आइकॉन में छोटा-सा अपडेट किया गया है. इससे भरे हुए
desktop_mac,directions, औरkitchenआइकॉन में बदलाव किया गया है. (I65f5e)
वर्शन 1.4.0-beta01
8 फ़रवरी, 2023
androidx.compose.material:material-*:1.4.0-beta01 रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- उस समस्या को ठीक किया गया है जिसमें
pullRefreshवेलोसिटी का इस्तेमाल नहीं कर रहा था. इस वजह से, ओवरस्क्रोल दिख रहा था. साथ ही,Modifier.pullRefreshमेंonReleaseलैम्ब्डा के एपीआई सिग्नेचर में बदलाव किया गया है, ताकि इस्तेमाल की गई वेलोसिटी के लिए फ़्लोट वैल्यू दिखाई जा सके (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)- अब काम न करने वाले और छिपे हुए फ़ंक्शन के रिटर्न टाइप में, नल वैल्यू की अनुमति देने से जुड़ी ज़्यादा जानकारी (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) - उस गड़बड़ी को ठीक किया गया है जिसमें पोर्ट्रेट से लैंडस्केप मोड में घुमाने पर, अगर
ModalBottomSheetLayoutHalfExpandedथा, तो वह क्रैश हो जाता था. कृपया पक्का करें कि आपने सही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को ठीक किया गया है.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 टेक्स्ट में
minLinesपैरामीटर जोड़ा गया. साथ ही,TextFieldऔरOutlinedTextFieldजोड़े गए. इससे लाइनों की संख्या (I4af1d) के हिसाब से, कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है BasicTexऔर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के लिए, सिर्फ़ व्यू पर भरोसा करने के पिछले बदलाव को वापस लाया गया है. साथ ही, अब फिर से विंडो की ज़रूरत है. कुछ विंडो फ़्लैग मैनेज करने के लिए, विंडो की ज़रूरत होती है. इस फ़ंक्शन को बंद कर दिया गया हैViewCompat.getWindowInsetsController. इसके बजाय,WindowCompat.getInsetsControllerका इस्तेमाल करें, ताकि सही विंडो का इस्तेमाल किया जा सके. जैसे, अगर व्यू किसी डायलॉग में है. (I660ae, b/219572936)- टेक्स्ट:
includeFontPaddingकी सुविधा अब डिफ़ॉल्ट रूप से बंद होती है.includeFontPadding=falseकी वजह से होने वाली क्लिपिंग की समस्याओं को ठीक कर दिया गया है. साथ ही, लंबी स्क्रिप्ट के लिए क्लिपिंग नहीं होनी चाहिए. (I31c84, b/171394808) - क्रॉस ऐक्सिस के साइज़ तय करने के लिए, नया
LazyVerticalGridAPI जोड़ा गया (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जोड़ा गया है जो जटिल लॉजिक के बिना, मौजूदा तरीकों के ओवरलोड हैं. इससे, कॉल किए गए इनर फ़ंक्शन में दोहराए गए सभी पैरामीटर के लिए, कंपाइलर के जनरेट किए गए मेमोइज़ेशन चेक (बराबर) कम हो जाते हैं. (I90490) - ऐक्शन चिप के लिए सहायता जोड़ी गई (I07100, b/192585545)
वर्शन 1.2.0-alpha01
12 जनवरी, 2022
androidx.compose.material:material-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- अब Kotlin
1.6.10पर निर्भर करता है.
बाहरी योगदान
ModalBottomSheetStateके पास अबisSkipHalfExpandedफ़्लैग है. इसे कंस्ट्रक्टर के ज़रिए सेट किया जा सकता है. इसके अलावा, बाद मेंModalBottomSheetStateकीisSkipHalfExpandedप्रॉपर्टी कोtrueपर सेट करके भी इसे अपडेट किया जा सकता है.isSkipHalfExpandedकी वैल्यू अपडेट करने से, शीट फिर से कंपोज़ होती है. (I18b86, b/186669820)
वर्शन 1.1
वर्शन 1.1.1
23 फ़रवरी, 2022
androidx.compose.material:material-*:1.1.1 रिलीज़ हो गया है. वर्शन 1.1.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayListपरNullPointerExceptionठीक करें (aosp/1947059, b/206677462)- Android पर क्लिपबोर्ड से कॉन्टेंट पढ़ते समय, क्लिपबोर्ड के कॉन्टेंट की वजह से ऐप्लिकेशन क्रैश होने की समस्या को ठीक किया गया है. (I06020, b/197769306)
LazyVerticalGrid(aosp/1931080, b/207510535) में आरटीएल से जुड़ी समस्या ठीक की गई
वर्शन 1.1.0
9 फ़रवरी, 2022
androidx.compose.material:material-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.
1.0.0 के बाद हुए अहम बदलाव
- Android 12 के ओवरस्क्रॉल इफ़ेक्ट के लिए स्टेबल सपोर्ट
- टच टारगेट के साइज़ में सुधार
- ध्यान दें कि Compose 1.0 के हिसाब से, मटीरियल कॉम्पोनेंट, लेआउट स्पेस को बढ़ाएंगे, ताकि टच टारगेट साइज़ के लिए, मटीरियल सुलभता के दिशा-निर्देशों का पालन किया जा सके. उदाहरण के लिए, अगर आपने बटन का साइज़ छोटा सेट किया है, तब भी बटन का टच टारगेट कम से कम 48x48dp तक बढ़ जाएगा. इससे Compose Material, मटीरियल डिज़ाइन कॉम्पोनेंट के साथ काम करता है. साथ ही, 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, मटीरियल डिज़ाइन कॉम्पोनेंट के साथ काम करता है. साथ ही, Views और Compose को एक साथ इस्तेमाल करने पर, एक जैसा व्यवहार करता है. इस बदलाव से यह भी पक्का होता है कि Compose Material कॉम्पोनेंट का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाते समय, टच टारगेट की ऐक्सेसिबिलिटी से जुड़ी ज़रूरी शर्तें पूरी होंगी.
गड़बड़ियां ठीक की गईं
- कम से कम टच टारगेट मॉडिफ़ायर की जांच करते समय, लेआउट इंस्पेक्टर के लिए डीबग करने से जुड़ी कुछ बेहतर जानकारी जोड़ी गई है. (aosp/1955036)
वर्शन 1.1.0-rc01
15 दिसंबर, 2021
androidx.compose.material:material-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
Checkboxes के लिए लागू किए गए कॉर्नर रेडियस को ठीक किया गया (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 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Ripples अब होवर और फ़ोकस स्टेट के साथ काम करते हैं. इसलिए, Button जैसे किसी कॉम्पोनेंट पर होवर / फ़ोकस करने पर, अब सही स्टेट ओवरले दिखेगा.
वर्शन 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 फ़्लैग मिलते हैं. उदाहरण के लिए, फ़ोकस किया जा सकने वाला. लैंबडा का नतीजा, फ़ाइनल फ़्लैग होंगे. इन्हें 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)SemanticsNodeमेंtouchBoundsInRootजोड़ा गया है. इसमें टच टारगेट का कम से कम साइज़ शामिल है, ताकि डेवलपर यह पक्का कर सकें कि टच टारगेट, सुलभता से जुड़े कम से कम मानकों को पूरा करते हों. (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 सैंपल और कैटलॉग ऐप्लिकेशन का डेमो जोड़ा गया. (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 Release का आधिकारिक ब्लॉग देखें!
आम समस्याएं
अगर 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 में ये बदलाव शामिल हैं.
नई सुविधाएं
एपीआई के काम करने के तरीके में हुआ अहम बदलाव
- व्यवहार में बदलाव: कार्ड अब क्लिक का इस्तेमाल करता है. इसलिए,
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 ओवरलोड जोड़ा गया है. यह क्लिक के साथ-साथ, क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, interactionSource, चालू/बंद.
एपीआई में हुए बदलाव
FabPositionको enum से इनलाइन क्लास में बदल दिया गया है, ताकि आने वाले समय में इसे बढ़ाया जा सके (I030fb)- नई enum वैल्यू जोड़े जाने पर, when स्टेटमेंट के साथ पूरी तरह से काम करने से जुड़ी समस्याओं से बचने के लिए, enum के इस्तेमाल को इनलाइन क्लास में बदला गया है. (I2b5eb)
- क्लिक किए जा सकने वाले / टॉगल किए जा सकने वाले एलिमेंट में टैप टाइम आउट जोड़ता है. इससे स्क्रोल / खींचने के दौरान रिपल इफ़ेक्ट नहीं दिखता (Ia2704, b/168524931)
- ContentDescription और Text सिमैंटिक्स प्रॉपर्टी अब सिंगल वैल्यू नहीं, बल्कि सूचियां हैं. इससे उन्हें जोड़ने के बजाय, मर्ज किया जा सकता है. इन बदलावों का इस्तेमाल करने के लिए, बेहतर टेस्टिंग एपीआई भी उपलब्ध कराए गए हैं (Ica6bf, b/184825850)
Modifier.focusModifier()का अब इस्तेमाल नहीं किया जा सकता. इसेModifier.focusTarget()से बदल दिया गया है (I6c860)FocusStateenum कोFocusStateइंटरफ़ेस से बदला गया (Iccc1a, b/187055290)LocalRippleNativeRenderingको हटा दिया गया है, क्योंकि अब व्यू-बैकड रिपल का इस्तेमाल किया जा सकता है (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 कोfalseकी वैल्यू दें, ताकि CompositionLocalProvider में पिछले रिपल को लागू किया जा सके. यह एपीआई कुछ समय के लिए है और इसे आने वाले समय में हटा दिया जाएगा. इसलिए, अगर आपको ऐसी समस्याएं आती हैं जिनकी वजह से आपको इस एपीआई का इस्तेमाल करना पड़ता है, तो कृपया बग की शिकायत करें. (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) वाले पंक्ति और कॉलम के चाइल्ड, अब पैरंट को पूरे उपलब्ध मुख्य ऐक्सिस स्पेस में नहीं भर रहे हैं. (Ied94d, b/186012444, b/184355105)
वर्शन 1.0.0-beta05
21 अप्रैल, 2021
androidx.compose.material:material-*:1.0.0-beta05 रिलीज़ हो गया है. वर्शन 1.0.0-beta05 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- मौजूदा कंपोज़ मटीरियल कैटलॉग में, कॉम्पोनेंट टाइल इमेज, थीम पिकर, और ज़्यादा खास मेन्यू यूआरएल जोड़े गए हैं. (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)
- dp दावे हटाए गए (I798d2)
- सभी टेक्स्ट फ़ील्ड से SoftwareKeyboardController कॉलबैक को हटा दिया गया है. इसकी जगह जल्द ही एक नया एपीआई ले लेगा. (Iae869, b/168778053)
- Switch, Checkbox, और RadioButton के ऐक्शन लैम्डा अब शून्य हो सकते हैं. क्लिक की जा सकने वाली लाइन में मौजूद चेकबॉक्स के सैंपल को इस सुविधा का इस्तेमाल करने के लिए अपडेट किया गया है. (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() में स्क्रोल की पोज़िशन को अब पूर्णांकों से दिखाया जाता है (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 क्लास के बजाय, स्क्रोल किए जा सकने वाले इंटरफ़ेस का इस्तेमाल करता है (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 के लिए उपलब्ध कराया गया है. ड्रॉपडाउन मेन्यू में PopupProperties पैरामीटर जोड़ा गया है, ताकि पॉप-अप को और कॉन्फ़िगर किया जा सके. (I9c443)
- loadFontResource का अब इस्तेमाल नहीं किया जा सकता. इसके बजाय, fontResource का इस्तेमाल करें. imageResource, loadImageResource, vectorResource, और loadVectorResource अब काम नहीं करते. इसके बजाय, painterResource का इस्तेमाल करें. (I6b809)
- DropdownMenu से
toggleऔरtoggleModifierपैरामीटर हटा दिए गए हैं. साथ ही,dropdownModifier,dropdownOffset, औरdropdownContentका नाम बदलकर क्रमशःmodifier,offset, औरcontentकर दिया गया है. DropdownMenu अबPopupके साथ एक जैसा काम करता है. इसमें मेन्यू की पोज़िशन के लिए, पैरंट लेआउट का इस्तेमाल किया जाता है. ज़्यादातर मामलों में,toggleकोDropdownMenuका सिबलिंग बनाया जा सकता है. साथ ही, दोनों कोBoxमें रैप किया जा सकता है. इस एपीआई के इस्तेमाल के बारे में ज़्यादा जानने के लिए, दस्तावेज़ में अपडेट किया गया सैंपल देखें. (I884fb) - toIntPx() का नाम बदलकर roundToPx() कर दिया गया है. (I9b7e4, b/173502290)
- IntBounds का नाम बदलकर IntRect कर दिया गया है. साथ ही, एपीआई को बेहतर बनाया गया है. (I1f6ff)
- सेमैंटिक ऐक्शन को बड़ा और छोटा करने की सुविधा जोड़ी गई. ModalBottomSheetState में expand और halfExpand को जोड़ा गया (Ib5064)
- Modifier.dragGestureFilter अब काम नहीं करता है. इसके बजाय,
Modifier.pointerInput { detectDragGestures (...)}का इस्तेमाल करें. इसके अलावा, एक ऐक्सिस पर ड्रैग करने के लिए, Modifier.draggable का इस्तेमाल करें (I0ba93, b/175294473) - Ambient -> CompositionLocal का नाम बदलने के हिसाब से, Ambients का नाम बदला गया. पहले, ऐम्बिएंट को AmbientFoo कहा जाता था. अब CompositionLocals को LocalFoo कहा जाता है. (I2d55d)
- चुने गए हिस्से को फ़ाउंडेशन में ले जाया गया. (I7892b)
- जिस तरह हमने पहले
state { 0 }कंपोज़ेबल को हटाया था और अबremember { mutableStateOf(0) }के इस्तेमाल को बढ़ावा दे रहे हैं, उसी तरह हमsavedInstanceState { 0 }कंपोज़ेबल को हटाने जा रहे हैं. आपको इसके बजायrememberSaveable { mutableStateOf(0) }का इस्तेमाल करना चाहिए. अगर MutableState में इस्तेमाल किया गया टाइप, बंडल में सेव किया जा सकता है, तो यह अपने-आप सेव और रीस्टोर हो जाएगा. अगर आपने पहले कस्टम सेवर ऑब्जेक्ट पास किया था, तो अब आपको rememberSaveable का नया ओवरलोड इस्तेमाल करना होगा. इसमेंstateSaverपैरामीटर होता है. इसका इस्तेमाल कुछ इस तरह किया जाएगा:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - सुलभता के लिए, लोड हो रहे प्रोग्रेस बार को मार्क करने के लिए ProgressBarRangeInfo.Indeterminate जोड़ा गया (I6fe05)
@ComposableContract को बंद कर दिया गया है. इसके बजाय, तीन अन्य एनोटेशन का इस्तेमाल किया जा सकता है.
@ComposableContract(restartable = false)को@NonRestartableComposableकर दिया गया है@ComposableContract(readonly = true)को@ReadOnlyComposableकर दिया गया है@ComposableContract(preventCapture = true)को@DisallowComposableCallsकर दिया गया है@ComposableContract(tracked = true)को हटा दिया गया है.- (I60a9d)
emptyContent()और(@Composable () -> Unit).orEmpty()यूटिलिटी का इस्तेमाल अब नहीं किया जा सकता, क्योंकि अब इनसे परफ़ॉर्मेंस पर कोई फ़र्क़ नहीं पड़ता या इनकी कोई वैल्यू नहीं है (I0484d)rememberSavedInstanceState() का नाम बदलकर rememberSaveable() कर दिया गया है. साथ ही, इसे androidx.compose.runtime.saveable पैकेज में ले जाया गया है. (I1366e, b/177338004)
Saver, listSaver(), mapSaver(), और autoSaver को androidx.compose.runtime.savedinstancestate से androidx.compose.runtime.saveable में ले जाया गया है (I77fe6)
RounderCornerShape, CutCornerShape, और CornerBasedShape पर मौजूद पैरामीटर के नाम बदलकर, बाएं/दाएं से शुरू/खत्म कर दिए गए हैं. ऐसा इसलिए किया गया है, ताकि आरटीएल दिशा में शेप की ऑटो मिररिंग की सुविधा काम कर सके. AbsoluteRounderCornerShape और AbsoluteCutCornerShape को उन मामलों के लिए पेश किया गया था जहां ऑटो-मिररिंग की ज़रूरत नहीं होती. (I61040, b/152756983)
Changed टैब के
textऔरiconपैरामीटर, और BottomNavigationItem केlabelपैरामीटर को नल के तौर पर सेट किया गया है, ताकि यह बताया जा सके कि इन पैरामीटर के मौजूद होने या न होने पर कॉम्पोनेंट कैसा काम करता है. ऐसा इसलिए किया गया है, क्योंकि इससे कॉम्पोनेंट के साइज़ और लेआउट पर असर पड़ता है. अगर फ़िलहाल, टेक्स्ट / आइकॉन / लेबल नहीं दिखाने के लिएemptyContent()का इस्तेमाल किया जा रहा है, तो आपकोnullका इस्तेमाल करना चाहिए. (I57ed4)color पैरामीटर का नाम बदलकर 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 अब डिफ़ॉल्ट रूप से, विंडो के स्कोप वाले Recomposer को लेज़ी तरीके से बनाता है. ये Recomposer, विंडो के लिए ViewTreeLifecycleOwner से मैनेज होते हैं. होस्ट के लाइफ़साइकल के रुकने पर, रीकंपोज़िशन और withFrameNanos पर आधारित ऐनिमेशन टिक रुक जाते हैं. (I38e11)
गड़बड़ियां ठीक की गईं
- अब आइकॉन को उसके साइज़ के हिसाब से बड़ा किया जाएगा. साथ ही, आइकॉन पर लागू किए गए साइज़ मॉडिफ़ायर का भी ध्यान रखा जाएगा. उदाहरण के लिए,
Icon(.., modifier = Modifier.size(50.dp)अब 50x50dp स्पेस में दिखेगा. (Ib2ba9, b/178796190)
वर्शन 1.0.0-alpha11
28 जनवरी, 2021
androidx.compose.material:material-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- कुछ Material API को अब
@Experimentalके तौर पर प्रमोट नहीं किया जाएगा (I5d20e) - इमेज और आइकॉन में, कॉन्टेंट का ब्यौरा देने वाला पैरामीटर जोड़ा गया है. इस कुकी का इस्तेमाल, सुलभता सेवाओं (I2ac4c) के बारे में जानकारी देने के लिए किया जाता है
- यह फ़ंक्शन, Material के स्टेटफ़ुल पैरामीटर इंटरफ़ेस में बदलाव करता है, ताकि उनमें @Composable फ़ंक्शन शामिल किए जा सकें. ये फ़ंक्शन
State<T>दिखाते हैं. ऐनिमेट किए जा सकने वाले ऑब्जेक्ट को स्टेट में बदलने की प्रोसेस को आसान बनाने के लिए,Animatable.asState()जोड़ा गया है. यह Animatable पर animateElevation को निलंबित एक्सटेंशन के तौर पर भी बदलता है. (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)
scrollBy के नॉन-सस्पेंड वर्शन को बंद करें और scrollTo के नॉन-सस्पेंड वर्शन को हटाएं
हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, निलंबित फ़ंक्शन का इस्तेमाल करें और स्क्रोल पूरा होने का इंतज़ार करें. इस बदलाव के तहत, हम इन फ़ंक्शन के उन वर्शन को बंद कर रहे हैं जिन्हें निलंबित नहीं किया जा सकता. साथ ही, हम उन्हें हटा रहे हैं. (Ie9ced)
smoothScrollBy को निलंबित करने की सुविधा बंद कर दी गई है हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, निलंबित करने की सुविधा वाले फ़ंक्शन का इस्तेमाल करें. साथ ही, स्क्रोलिंग खत्म होने का इंतज़ार करें. इस ट्रांज़िशन के तहत, हम इन फ़ंक्शन के ऐसे वर्शन को बंद कर रहे हैं जिन्हें निलंबित नहीं किया जा सकता. (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)
canDrag पैरामीटर को Modifier.draggable (Ic4bec, b/175294473) से हटा दिया गया है
डिसप्ले साइज़ को हटाएं, क्योंकि इसका इस्तेमाल नहीं करना चाहिए. आम तौर पर, onRoot() या कम से कम विंडो के साइज़ का इस्तेमाल करना बेहतर होता है. (I62db4)
अब Surface में, लेआउट के कई चाइल्ड हो सकते हैं. (I66a92, b/144488459)
invalidate और compositionReference() को अब बंद कर दिया गया है. इनके बजाय, currentRecomposeScope और rememberCompositionReference का इस्तेमाल करें. (I583a8)
PopupPositionProvider में बदलाव किया गया है. अब यह ग्लोबल कोऑर्डिनेट के बजाय, विंडो के हिसाब से कोऑर्डिनेट का इस्तेमाल करता है. यह parentGlobalBounds का नाम बदलकर anchorBounds कर देता है. साथ ही, windowGlobalBounds को
windowSize: IntSize(I2994a) में बदल देता हैDuration और Uptime को Long milliseconds से बदल दिया जाएगा. साथ ही, इस चरण में उन क्लास पर पॉइंटर इनपुट की निर्भरता को हटा दिया जाएगा. (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)monotonicallyFrameAnimationClockOf के एक्सपेरिमेंटल तरीके हटा दिए गए (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)
- Add Toggle to 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 (I668e5) बनाने के लिए, नया infiniteRepeatable फ़ंक्शन
Material स्पेसिफ़िकेशन के मुताबिक, DropdownMenus की पोज़िशनिंग के तरीके में थोड़ा बदलाव किया गया है. (I34c72, b/168594123)
TextFields के लिए InteractionState की सुविधा जोड़ी गई है. (I61d91)
Modifier.clearAndSetSemantics को जोड़ा गया है, ताकि डिसेंडेंट के सिमैंटिक को मिटाया जा सके और नए सिमैंटिक सेट किए जा सकें. (I277ca)
ContentDrawScope को ui-graphics मॉड्यूल में ले जाया गया है, ताकि वह DrawScope के साथ रहे. (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 में एक सिंगललाइन पैरामीटर जोड़ा गया. टेक्स्ट फ़ील्ड को हॉरिज़ॉन्टल तौर पर स्क्रोल की जा सकने वाली एक लाइन बनाने के लिए, इस पैरामीटर को सही पर सेट करें. (I57004, b/168187755)
गड़बड़ियां ठीक की गईं
- सिमैंटिक ऐक्शन Dismiss (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 एपीआई जोड़े गए हैं.
Modifier.drawOpacityका नाम बदलकरModifier.alphaकिया गयाModifier.drawShadowका नाम बदलकरModifier.shadowकिया गया (I264ca, b/173208140)
- Box के अलाइनमेंट पैरामीटर का नाम बदलकर contentAlignment कर दिया गया है. (I2c957)
- offsetPx मॉडिफ़ायर का नाम बदलकर offset कर दिया गया है. अब ये स्टेट की जगह लैंबडा पैरामीटर ले रहे हैं. (Ic3021, b/173594846)
- SweepGradientShader और SweepGradientBrush API लॉन्च किए गए. (Ia22c1)
- कंपोज़ेबल फ़ंक्शन में, मॉडिफ़ायर पैरामीटर के लिए लिंट चेक जोड़ा गया. यह लिंट चेक, 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)
- Remove old ui-test module and its stubs (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)
- Box को इनलाइन फ़ंक्शन बनाया गया. (Ibce0c, b/155056091)
वर्शन 1.0.0-alpha05
14 अक्टूबर, 2020
androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05, और androidx.compose.material:material-icons-extended:1.0.0-alpha05 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- पॉप-अप और डायलॉग अब पैरंट विंडो से FLAG_SECURE को इनहेरिट करते हैं. इसे साफ़ तौर पर कॉन्फ़िगर करने का विकल्प भी जोड़ा गया है (I64966, b/143778148, b/143778149)
- Modifier.swipeable में अब डिफ़ॉल्ट रूप से, स्थितियों के लिए 56 dp थ्रेशोल्ड होते हैं (Iab825, b/168610267)
- सभी स्कैफ़ोल्ड स्टेटस को @Stable के तौर पर मार्क किया गया है. ScaffoldState में मौजूद drawerGesturesEnabled को Scaffold में ले जाया गया है. (I36645, b/168297016)
- यह 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 होती है, तब Text, ओवरफ़्लो को मैनेज नहीं करेगा. साथ ही, यह LayoutNode को अपने साइज़ की जानकारी देगा. (I175c9, b/158830170)
- Compose API के दिशा-निर्देशों (I99a8e) के मुताबिक, launchInComposition का नाम बदलकर LaunchedTask कर दिया गया है
- 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 के 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 तरीके हटाए गए
- दायरे के दस्तावेज़ को अपडेट किया गया है. इसमें अंडाकार के साथ-साथ दीर्घवृत्ताकार भी बताया गया है
- दस्तावेज़ में यह जानकारी जोड़ी गई है कि इनलाइन रेडियस क्लास के लिए, पब्लिक कंस्ट्रक्टर को सीधे तौर पर कॉल नहीं किया जाना चाहिए. इसके बजाय, रेडियस ऑब्जेक्ट को उनके फ़ंक्शन कंस्ट्रक्टर के ज़रिए इंस्टैंटिएट किया जाना चाहिए
- topRight, bottomRight, bottomCenter वगैरह के बारे में क्वेरी करने के लिए, RoundRect API हटा दिए गए हैं
- 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 पैरामीटर पर टिप्पणियां अपडेट की गईं
- 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 के लिए, ऐनिमेशन वाली स्टेटफ़ुल एलिवेशन की सुविधा जोड़ी गई. अब एलिवेशन, डिफ़ॉल्ट और दबाए गए स्टेटस के बीच ऐनिमेट होता है. अलग-अलग स्थितियों के बीच एलिवेशन को पसंद के मुताबिक बनाने के लिए, कृपया हर मामले में एक जैसी डीपी वैल्यू सेट करने के बजाय,
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 और RadioBotton का इस्तेमाल करें (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के ज़रिए भी ऐक्सेस किया जा सकता है. - Snackbar overload को इसलिए जोड़ा गया है, ताकि snackbarHostState और स्नैकबार के बीच सामान्य इंटरफ़ेस काम कर सके. (I79aaa)
- IconButton में enabled पैरामीटर जोड़ा गया. साथ ही, IconToggleButton में पैरामीटर का क्रम बदला गया (I0a941, b/161809385, b/161807956)
- स्ट्रिंग पर आधारित एपीआई वाले ListItem वर्शन को हटा दिया गया है. इसके बजाय, स्लॉट वर्शन का इस्तेमाल करें. (Ib8f57, b/161804681)
- FilledTextField कॉम्पोनेंट को हटाया गया. यह कॉम्पोनेंट अब इस्तेमाल में नहीं है. फ़िल किए गए टेक्स्ट फ़ील्ड के Material Design को लागू करने के लिए, कृपया TextField का इस्तेमाल करें. (I5e889)
- AlertDialog अब बटन के लिए FlowRow का इस्तेमाल करता है (I00ec1, b/161809319, b/143682374)
- Modifier.swipeable में पैरामीटर जोड़े गए हैं. इनसे, तय सीमा से ज़्यादा स्वाइप करने पर मिलने वाले प्रतिरोध की मात्रा को बदला जा सकता है. [min/max]Value पैरामीटर हटा दिए गए हैं. (I93d98)
- LinearProgressIndicator में backgroundColor पैरामीटर जोड़ा गया है. साथ ही, CircularProgressIndicator से इंटरनल पैडिंग हटा दी गई है. ProgressIndicatorConstants.DefaultProgressAnimationSpec नाम का नया कॉन्स्टेंट जोड़ा गया है. इसका इस्तेमाल, वैल्यू के बीच प्रोग्रेस को ऐनिमेट करते समय डिफ़ॉल्ट AnimationSpec के तौर पर किया जा सकता है (If38b5, b/161809914, b/161804677)
- Modifier.swipeable में वैकल्पिक पैरामीटर velocityThreshold जोड़ा गया. (I698ba)
- bottomBarSize, fabSize वगैरह अब ScaffoldState में उपलब्ध नहीं हैं. आपको जिस कॉम्पोनेंट का साइज़ जानना है उसके लिए, Modifier.onPosition का इस्तेमाल करें. Scaffold में contentColor और Modifier पैरामीटर जोड़े गए हैं (Ic6f7b, b/161811485, b/157174382)
- यह टैब में कुछ पैरामीटर के नाम बदलता है और उन्हें फिर से क्रम में लगाता है, ताकि वे अन्य एपीआई (Ia2d12, b/161807532) के साथ अनुकूलता रख सकें
- यह 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 में modifier, backgroundColor, contentColor, और scrimColor को पसंद के मुताबिक बनाने के लिए पैरामीटर जोड़े गए हैं (I23655, b/161804378)
state { ... }कंपोज़ेबल को अब बंद कर दिया गया है. इसके बजाय,remember { mutableStateOf(...) }को साफ़ तौर पर कॉल करने की सुविधा उपलब्ध है. इससे स्टेट मैनेजमेंट के लिए, एपीआई की कुल सतह और कॉन्सेप्ट की संख्या कम हो जाती है. साथ ही, यह क्लास प्रॉपर्टी डेलिगेशन के लिएby mutableStateOf()पैटर्न से मेल खाता है. (Ia5727)- बटन के पैडिंग पैरामीटर का नाम बदलकर contentPadding कर दिया गया है (Id252e, b/161809394)
- एक्सपेरिमेंट के तौर पर उपलब्ध SwipeToDismiss कॉम्पोनेंट जोड़ें. (I129e5)
गड़बड़ियां ठीक की गईं
onChildPositionedऔरOnChildPositionedModifierको हटाया गया. डेवलपर को इसके बजाय, चाइल्ड लेआउट परonPositionedऔरOnPositionedModifierका इस्तेमाल करना चाहिए. (I4522e, b/162109766)- SemanticsPropertyKey में mergePolicy लैम्डा जोड़ा गया. इसका इस्तेमाल, 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)
- Compose के नाम रखने के पैटर्न के हिसाब से, RRect का नाम बदलकर RoundRect कर दिया गया है RRect के लिए, मिलते-जुलते फ़ंक्शन कंस्ट्रक्टर बनाए गए हैं RRect फ़ंक्शन कंस्ट्रक्टर (I5d325) को बंद कर दिया गया है
वर्शन 0.1.0-dev16
5 अगस्त, 2020
androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16, और androidx.compose.material:material-icons-extended:0.1.0-dev16 रिलीज़ किए गए हैं. वर्शन 0.1.0-dev16 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- Colors अब इंटरफ़ेस के बजाय फ़ाइनल क्लास है. कस्टम थीम ऑब्जेक्ट को बढ़ाने और कस्टम तरीके से लागू करने के बजाय, आपको अपने कस्टम थीम ऑब्जेक्ट के लिए एक नया ऐम्बिएंट बनाना चाहिए. साथ ही, अपने कॉम्पोनेंट में नए ऐम्बिएंट के ज़रिए थीम ऑब्जेक्ट को ऐक्सेस करना चाहिए. यह ठीक उसी तरह काम करता है जिस तरह MaterialTheme अंदरूनी तौर पर काम करता है. (Ibae84)
- ColorPalette का नाम बदलकर Colors कर दिया गया है, ताकि इसे Material 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 कर दिया गया है
- nativeCanvas तरीके को Canvas इंटरफ़ेस से हटा दिया गया है, ताकि उपभोक्ता अपने Canvas इंस्टेंस बना सकें
- DrawScope को रिफ़ैक्टर करने के लिए, EmptyCanvas क्लास बनाई गई है, ताकि इसे lateinit के बजाय नॉन-नल पैरामीटर बनाया जा सके. साथ ही, यह पक्का किया जा सके कि फ़ील्ड नॉन-नल हो
- ClipOp enum के नाम बदलकर, उन्हें पास्कल केस में बदला गया
- FilterQuality enum का नाम बदलकर, पास्कल केस में कर दिया गया है
- StrokeJoin enum का नाम बदलकर, पास्कल केस में रखा गया
- PointMode enum के नाम बदलकर, पास्कल केस कर दिए गए हैं
- PaintingStyle एनम का नाम बदलकर, पास्कल केस कर दिया गया है
- PathFillType enum का नाम बदलकर Pascal Case कर दिया गया है
- StrokeCap enums का नाम बदलकर पास्कल केस कर दिया गया है
- DrawCache को लागू करने के तरीके को अपडेट किया गया है, ताकि अब lateinit पैरामीटर का इस्तेमाल न किया जा सके
- DrawScope को अपडेट किया गया है. अब यह fillPaint और strokePaint इंटरनल पैरामीटर के लिए, लेज़ी डेलिगेशन का इस्तेमाल नहीं करेगा
- इमेज कंपोज़ेबल को अपडेट किया गया है, ताकि कम ओवरहेड के लिए Box का इस्तेमाल न किया जा सके
- आउटलाइन क्लास को अपडेट किया गया है, ताकि उसमें @Immutable एनोटेशन शामिल किए जा सकें
- हर पाथ के निर्देश के लिए @Immutable एनोटेशन पाने के लिए, PathNode को अपडेट किया गया
- वेक्टर सबकंपोज़िशन को अपडेट किया गया है, ताकि समानता के लिए गैर-ज़रूरी शर्तों की जांच को हटाया जा सके. ऐसा इसलिए, क्योंकि कंपोज़ पहले से ही इन्हें हैंडल करता है
- फ़ंक्शन कंस्ट्रक्टर के पक्ष में, Rect कंपैनियन कंस्ट्रक्टर के तरीकों को बंद किया गया
- @Immutable और @Stable एपीआई के साथ अपडेट की गई ब्रशिंग क्लास और फ़ंक्शन कंस्ट्रक्टर
- VertexMode enum को PascalCase में अपडेट किया गया
- DrawScope की selectPaint विधि को अपडेट किया गया है, ताकि पेंट पर स्ट्रोक पैरामीटर को शर्तों के आधार पर बदला जा सके. ऐसा तब किया जाएगा, जब वे बदल गए हों
- साइज़ को अपडेट किया गया है, ताकि इसमें डिस्ट्रक्चरिंग एपीआई जोड़ा जा सके. साथ ही, UnspecifiedSize का नाम बदलकर Unspecified कर दिया गया है और इस्तेमाल न किए गए तरीकों को हटा दिया गया है
- डायलॉग को यूज़र इंटरफ़ेस (यूआई) (I47fa6) पर ले जाएं
SemanticsNodeInteraction.performPartialGestureको हटाया गया. इसके बजाय,SemanticsNodeInteraction.performGestureका इस्तेमाल करें. (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()का नाम बदलकरSemanticsNodeInteraction.getUnclippedBoundsInRoot()किया गया (Icafdf, b/161336532)- दाएं से बाएं लिखने की सुविधा के लिए, एपीआई अपडेट कर दिए गए हैं. LayoutDirectionAmbient को जोड़ा गया है. इसका इस्तेमाल लेआउट की दिशा को पढ़ने और बदलने के लिए किया जा सकता है. Modifier.rtl और Modifier.ltr को हटा दिया गया है. (I080b3)
- Modifier.deternimateProgress का नाम बदलकर Modifier.progressSemantics कर दिया गया है (I9c0b4)
- यह कुकी, material-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 को हटाता है. Clickable अब डिफ़ॉल्ट इंडिकेशन के तौर पर रिपल का इस्तेमाल करता है. ऐसा तब होता है, जब आपके ऐप्लिकेशन में MaterialTheme {} सेट हो. इसलिए, ज़्यादातर मामलों में, सिर्फ़ clickable का इस्तेमाल करके रिपल इंडिकेशन को मुफ़्त में पाया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंडेड पैरामीटर को पसंद के मुताबिक बनाना है, तो RippleIndication को मैन्युअल तरीके से बनाएं. इसके बाद, इसे clickable को indication पैरामीटर के तौर पर पास करें. (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 क्लास का इस्तेमाल करें. इससे इनलाइन क्लास के फ़ायदे मिलते हैं. इससे दो फ़्लोट वैल्यू को एक साथ पैक करने में मदद मिलती है, ताकि चौड़ाई और ऊंचाई को फ़्लोट के तौर पर दिखाया जा सके. (Ic0191)
Modifier.ripple को बंद कर देता है. Clickable अब डिफ़ॉल्ट इंडिकेशन के तौर पर रिपल का इस्तेमाल करता है. ऐसा तब होता है, जब आपके ऐप्लिकेशन में MaterialTheme {} सेट हो. इसलिए, ज़्यादातर मामलों में, सिर्फ़ clickable का इस्तेमाल करके रिपल इंडिकेशन को मुफ़्त में पाया जा सकता है. अगर आपको रिपल के लिए रंग / साइज़ / बाउंडेड पैरामीटर को पसंद के मुताबिक बनाना है, तो RippleIndication को मैन्युअल तरीके से बनाएं. इसके बाद, इसे clickable को indication पैरामीटर के तौर पर पास करें. (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 इंटरफ़ेस को लागू करने के लिए, DrawScope को अपडेट किया गया है. साथ ही, LayoutDirection उपलब्ध कराया गया है 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 के सभी इस्तेमाल को, नल नहीं हो सकने वाले Color से बदल दिया गया है. साथ ही, null की जगह Color.Unset का इस्तेमाल किया गया है (Iabaa7)
EdgeInsets का नाम बदलकर InnerPadding कर दिया गया है. Material Buttons के innerPadding पैरामीटर का नाम बदलकर padding कर दिया गया है. (I66165)
स्लाइडर अब स्टेटलेस है. उपयोगकर्ताओं को राज्य की जानकारी खुद ही अपडेट करनी होगी. ठीक वैसे ही जैसे किसी अन्य कंट्रोल में किया जाता है. (Ia00aa)
StaticDrawer को हटा दिया गया है. अगर आपको इसकी ज़रूरत है, तो इसके बजाय Box कॉम्पोनेंट का इस्तेमाल करें. इसकी चौड़ाई, मटीरियल स्पेसिफ़िकेशन के मुताबिक होती है (I244a7)
भरे हुए टेक्स्ट फ़ील्ड (Ic75cd) में मटीरियल डिज़ाइन लागू किया गया
ListItem में मॉडिफ़ायर पैरामीटर जोड़ा गया और पैरामीटर को फिर से क्रम में लगाया गया, ताकि ट्रेलिंग लैम्डा बॉडी को प्रमोट किया जा सके (I66e21)
Typography में defaultFontFamily कंस्ट्रक्टर पैरामीटर जोड़ता है. इससे डिफ़ॉल्ट फ़ॉन्ट फ़ैमिली तय की जा सकती है. इसका इस्तेमाल उन सभी TextStyles के लिए किया जाएगा जिनमें फ़ैमिली सेट नहीं है. (I89d07)
एपीआई की सतह से, कुछ समय के लिए मटीरियल डेटा टेबल हटा दी गई हैं. (Iaea61)
डिवाइडर कंपोज़ेबल (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)Image का नाम बदलकर 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लैम्डा स्वीकार करने के लिए, टैब एपीआई को फिर से बनाया गया है (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 प्रॉपर्टी का इस्तेमाल नहीं किया जा सकता. इसके बजाय, डेवलपर को parentCoordinates और childToLocal() का इस्तेमाल करना चाहिए, ताकि एक LayoutCoordinate से दूसरे LayoutCoordinate में ट्रांसफ़ॉर्म की गणना की जा सके.
LayoutCoordinates, साइज़ प्रॉपर्टी के लिए PxSize के बजाय IntPxSize का इस्तेमाल करता है. लेआउट के लिए, लेआउट में पूर्णांक पिक्सल साइज़ का इस्तेमाल किया जाता है. इसलिए, लेआउट के सभी साइज़ में पूर्णांक का इस्तेमाल किया जाना चाहिए, न कि फ़्लोटिंग पॉइंट वैल्यू का. (I9367b)
ambients API में नुकसान पहुंचा सकने वाले बदलाव. ज़्यादा जानकारी के लिए, लॉग और
Ambient<T>दस्तावेज़ देखें (I4c7ee, b/143769776)स्काफ़ोल्ड मटीरियल कॉम्पोनेंट जोड़ा गया है. स्काफ़ोल्ड लागू करता है (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 का इस्तेमाल करें -ट्रांज़िशन डीएसएल को बेहतर बनाएं. इसके लिए, tween और spring जैसे 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 ऑफ़सेट को दिखाने के लिए, दो फ़्लोट वैल्यू को पैक करने के लिए एक लॉन्ग का इस्तेमाल किया जा सकता है. (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 अब पहले से मौजूद Column उपलब्ध कराता है. HorizontalScroller अब पहले से मौजूद Row उपलब्ध कराता है. (Ieca5d, b/157020670)
पिक्सल पैरामीटर के लिए, सिर्फ़ Dp और प्रिमिटिव टाइप पर निर्भर रहने के लिए, Compose की अलग-अलग क्लास में Px क्लास के इस्तेमाल को बदल दिया गया है. यह बड़े पैमाने पर रिफ़ैक्टरिंग के तहत किया गया है (Iede0b)
Modifier.semantics को अब इस्तेमाल किया जा सकता है, ताकि इसका इस्तेमाल हाई लेवल कॉम्पोनेंट के लिए किया जा सके. (I4cfdc)
DrawLayer मॉडिफ़ायर एपीआई में बदलाव किया गया है: outlineShape का नाम बदलकर shape कर दिया गया है. इसकी डिफ़ॉल्ट वैल्यू RectangleShape है और अब इसे शून्य पर सेट नहीं किया जा सकता; clipToOutline का नाम बदलकर clip कर दिया गया है; clipToBounds को हटा दिया गया है, क्योंकि यह RectangleShape के साथ clip == true के बराबर है (I7ef11, b/155075735)
ज़्यादा लेवल के Compose API अपडेट किए गए हैं. ये Canvas को CanvasScope के बजाय दिखाते हैं. इससे उपभोक्ताओं को अपने Paint ऑब्जेक्ट बनाए रखने की ज़रूरत नहीं पड़ती. जिन उपभोक्ताओं को अब भी Canvas का ऐक्सेस चाहिए वे drawCanvas एक्सटेंशन के तरीके का इस्तेमाल कर सकते हैं. यह तरीका, Canvas के साथ ड्राइंग के निर्देश जारी करने के लिए कॉलबैक उपलब्ध कराता है. (I80afd)
AlignmentLineOffset कंपोज़ेबल के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, कृपया relativePaddingFrom() मॉडिफ़ायर का इस्तेमाल करें. CenterAlignmentLine कंपोज़ेबल को हटा दिया गया है. (I60107)
WithConstraints ट्रेलिंग लैम्ब्डा एपीआई में बदलाव किया गया है. अब इसमें दो पैरामीटर के बजाय, रिसीवर स्कोप है. यह कंस्ट्रेंट और layoutDirection के साथ-साथ, Dp में minWidth, maxWidth, minHeight, और maxHeight प्रॉपर्टी भी उपलब्ध कराता है (I91b9a, b/149979702)
डिफ़ॉल्ट रूप से सबसे छोटे साइज़ की सीमा तय करने वाले लेआउट मॉडिफ़ायर को जोड़ा गया है. यह रैप किए गए लेआउट के लिए साइज़ की सीमाएं सिर्फ़ तब सेट करता है, जब आने वाली संबंधित सीमाएं तय न की गई हों. जैसे, कम से कम सीमा के लिए 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 पर मौजूद एलिवेशन प्रॉपर्टी का नाम बदलकर 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)
अब इस्तेमाल नहीं किया जा सकने वाला सेंटर कंपोज़ेबल. इसे 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)
Opacity कंपोज़ेबल फ़ंक्शन को 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)CreatedImage कंपोज़ेबल को बनाया गया है. यह स्क्रीन पर दिए गए ImageAsset को दिखाने के साथ-साथ, साइज़/लेआउट को भी मैनेज करता है. इस कंपोज़ेबल में, किसी भी आर्बिट्ररी पेंटर इंस्टेंस को भी ड्रा किया जा सकता है. इसके लिए, इसके इंट्रिंसिक साइज़ का ध्यान रखा जाता है. साथ ही, इसमें दिए गए निश्चित साइज़ या कम से कम साइज़ (Ibcc8f) का भी ध्यान रखा जाता है
इस्तेमाल से बाहर किया गया रैप कंपोज़ेबल. इसे LayoutAlign मॉडिफ़ायर या Stack कंपोज़ेबल (Ib237f) से बदला जा सकता है
WithConstraints को LayoutDirection पैरामीटर मिला (I6d6f7)
लेआउट की दिशा को पैरंट लेआउट नोड से चाइल्ड नोड तक ले जाने की सुविधा जोड़ी गई. लेआउट की दिशा बदलने वाला मॉडिफ़ायर जोड़ा गया. (I3d955)
स्टैक कॉम्पोनेंट, दाएं से बाएं की ओर लिखने की सुविधा के साथ काम करता है (Ic9e00)
DrawShape कंपोज़ेबल को हटा दिया गया है. इसके बजाय, DrawBackground मॉडिफ़ायर का इस्तेमाल करें. (I7ceb2)
LayoutPadding मॉडिफ़ायर में, दाएं से बाएं की दिशा में लिखने की सुविधा जोड़ी गई (I9e8da)
AdapterList जोड़ा गया है. यह स्क्रोल करने लायक सूची वाला कॉम्पोनेंट है. यह सिर्फ़ दिखने वाले आइटम को कंपोज़ और लेआउट करता है. फ़िलहाल, इसकी कुछ समस्याएं सामने आई हैं. जैसे, यह सिर्फ़ वर्टिकल है और अपने चाइल्ड नोड में होने वाले सभी बदलावों को पूरी तरह से हैंडल नहीं करता है. (Ib351b)
ComposeFlags.COMPOSER_PARAMफ़्लैग कोtrueके तौर पर अपडेट किया गया है. इससे कंपोज़ प्लगिन के लिए कोड जनरेट करने की रणनीति बदल जाएगी. ऊपरी तौर पर, इसकी वजह से @Composable फ़ंक्शन, एक अतिरिक्त सिंथेटिक पैरामीटर के साथ जनरेट होते हैं. इस पैरामीटर को बाद के @Composable कॉल में पास किया जाता है, ताकि रनटाइम, एक्ज़ीक्यूशन को सही तरीके से मैनेज कर सके. यह बाइनरी में किया गया एक अहम बदलाव है. हालांकि, Compose के सभी मान्य इस्तेमाल में, सोर्स-लेवल की कंपैटिबिलिटी बनी रहनी चाहिए. (I7971c)कैनवस कॉम्पोनेंट जोड़ा गया. यह कंपोज़ेबल, उपयोगकर्ता के दिए गए साइज़ के हिसाब से जगह लेता है. साथ ही, आपको CanvasScope (I0d622) का इस्तेमाल करके ड्रॉ करने की अनुमति देता है
Density और DensityScope को एक ही इंटरफ़ेस में मर्ज कर दिया गया है. ambientDensity() के बजाय, अब DensityAmbient.current का इस्तेमाल किया जा सकता है. withDensity(density) के बजाय सिर्फ़ with(density) (I11cb1)
LayoutCoordinates में बदलाव किया गया है, ताकि providedAlignmentLines को Map के बजाय Set बनाया जा सके. साथ ही, LayoutCoordinates में वैल्यू वापस पाने के लिए, get() ऑपरेटर को लागू किया जा सके. इससे मॉडिफ़ायर के लिए, हर मॉडिफ़ायर के लिए नया कलेक्शन बनाए बिना, सेट की एक या उससे ज़्यादा वैल्यू में बदलाव करना आसान हो जाता है. (I0245a)
स्क्रोलर अब Android के फ़्लिंग मोशन के हिसाब से काम करते हैं. (I922af, b/147493715)
पाबंदियों (I0fd15) के एपीआई सरफ़ेस में सुधार किए गए हैं