मटीरियल लिखना

मटीरियल डिज़ाइन कॉम्पोनेंट का इस्तेमाल करके, Jetpack Compose यूज़र इंटरफ़ेस बनाएं. यह Compose का हायर लेवल एंट्री पॉइंट है. इसे ऐसे कॉम्पोनेंट उपलब्ध कराने के लिए डिज़ाइन किया गया है जो www.material.io पर बताए गए कॉम्पोनेंट से मेल खाते हैं.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
09 सितंबर, 2026 1.12.1 - - 1.13.0-alpha03

संरचना

Compose, androidx में मौजूद सात Maven ग्रुप आईडी का कॉम्बिनेशन है. हर ग्रुप में, फ़ंक्शन का एक सबसेट होता है. हर ग्रुप के रिलीज़ नोट का अपना सेट होता है.

इस टेबल में, ग्रुप और रिलीज़ नोट के हर सेट के लिंक दिए गए हैं.

समूहब्यौरा
compose.animationउपयोगकर्ता अनुभव को बेहतर बनाने के लिए, Jetpack Compose ऐप्लिकेशन में ऐनिमेशन बनाएं.
compose.compilerKotlin कंपाइलर प्लगिन की मदद से, @Composable फ़ंक्शन को बदलें और ऑप्टिमाइज़ेशन चालू करें.
compose.foundationइस्तेमाल के लिए तैयार बिल्डिंग ब्लॉक की मदद से, Jetpack Compose ऐप्लिकेशन लिखें. साथ ही, अपने डिज़ाइन सिस्टम के कॉम्पोनेंट बनाने के लिए, फ़ाउंडेशन को बढ़ाएं.
compose.materialमटीरियल डिज़ाइन कॉम्पोनेंट का इस्तेमाल करके, Jetpack Compose यूज़र इंटरफ़ेस बनाएं. यह Compose का हायर लेवल एंट्री पॉइंट है. इसे ऐसे कॉम्पोनेंट उपलब्ध कराने के लिए डिज़ाइन किया गया है जो www.material.io पर बताए गए कॉम्पोनेंट से मेल खाते हैं.
compose.material3Material Design 3 कॉम्पोनेंट की मदद से, Jetpack Compose यूज़र इंटरफ़ेस (यूआई) बनाएं. ये कॉम्पोनेंट, Material Design का अगला वर्शन हैं. Material 3 में अपडेट की गई थीमिंग और कॉम्पोनेंट शामिल हैं. साथ ही, इसमें Material You की उपयोगकर्ता की गतिविधि और दिलचस्पी के हिसाब से उपलब्ध सुविधाएं भी हैं. जैसे, डाइनैमिक कलर. इसे Android 12 की नई विज़ुअल स्टाइल और सिस्टम यूज़र इंटरफ़ेस (यूआई) के साथ काम करने के लिए डिज़ाइन किया गया है.
compose.runtimeCompose के प्रोग्रामिंग मॉडल और स्टेट मैनेजमेंट के बुनियादी बिल्डिंग ब्लॉक. साथ ही, Compose Compiler Plugin के लिए मुख्य रनटाइम, ताकि उसे टारगेट किया जा सके.
compose.uiडिवाइस के साथ इंटरैक्ट करने के लिए, Compose यूज़र इंटरफ़ेस (यूआई) के बुनियादी कॉम्पोनेंट. इनमें लेआउट, ड्रॉइंग, और इनपुट शामिल हैं.

डिपेंडेंसी का एलान करना

Compose पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.12.1"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.12.1")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.13

वर्शन 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 का स्कोरminSdk अब 24 है. (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 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

वर्शन 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 के लिंट चेक चलाने के लिए, 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 के लिंट चेक चलाने के लिए, 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)
  • 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 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Scaffold contentPadding के व्यवहार को ऑप्टिमाइज़ किया गया है, ताकि contentPadding में बदलाव होने पर, बॉडी कॉन्टेंट को बार-बार फिर से कंपोज़ न करना पड़े. (I8c8e2, b/373904168)
  • कंट्रोल बटन दबाने पर, मटीरियल स्लाइडर की वैल्यू में बदलाव करें. (I1c442)

वर्शन 1.8.0-alpha04

16 अक्टूबर, 2024

androidx.compose.material:material-*:1.8.0-alpha04 रिलीज़ हो गया है. वर्शन 1.8.0-alpha04 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • स्टेबल फ़ाउंडेशन वर्शन पर पिन करने के लिए, TextFields' से readOnly हटाएं. (I3aaba)

गड़बड़ियां ठीक की गईं

  • Android S+ पर, कॉम्पोनेंट को बड़ा करने की सुविधा के लिए रिपल इफ़ेक्ट जोड़ा गया है. जैसे, क्लिक करने पर बड़ा होने वाला कार्ड. पहले, रिपल नए साइज़ के हिसाब से नहीं भरता था. हालांकि, अब यह नए साइज़ के हिसाब से बड़ा हो जाएगा. (If509a, b/183019123)

वर्शन 1.8.0-alpha02

18 सितंबर, 2024

androidx.compose.material:material-*:1.8.0-alpha02 रिलीज़ हो गया है. वर्शन 1.8.0-alpha02 में ये बदलाव शामिल हैं.

वर्शन 1.8.0-alpha01

4 सितंबर, 2024

androidx.compose.material:material-*:1.8.0-alpha01 रिलीज़ हो गया है. वर्शन 1.8.0-alpha01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • सुरक्षित आर्ग्युमेंट के साथ बॉटमशीट बनाने के लिए, नया NavGraphBuilder.bottomSheet बिल्डर जोड़ा गया ((I28589, I777db, b/351858980))
  • 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 क्लास जोड़ी गई है. इससे टेक्स्ट कंपोज़ेबल के पैरामीटर के तौर पर लिंक को स्टाइल किया जा सकता है. (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 में ये बदलाव शामिल हैं.

नई सुविधाएं

वर्शन 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 में ये बदलाव शामिल हैं.

  • Dependency updates

वर्शन 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's offset कैलकुलेशन को ठीक किया गया है, ताकि x ऑफ़सेट सिर्फ़ लेआउट की स्थानीय दिशा पर निर्भर करें. साथ ही, मेन्यू स्क्रीन पर सबसे नीचे होने पर, y ऑफ़सेट अब उलट नहीं जाएंगे. (Iccc74, b/294103942)
  • BottomSheetScaffold के लेआउट को ऑप्टिमाइज़ किया गया है. साथ ही, LookaheadLayout के अंदर मौजूद BottomSheetScaffold से जुड़ी संभावित समस्या को ठीक किया गया है. (Ic0afa)

वर्शन 1.6.0-alpha03

9 अगस्त, 2023

androidx.compose.material:material-*:1.6.0-alpha03 रिलीज़ हो गया है. वर्शन 1.6.0-alpha03 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Material2 कॉम्पोनेंट में अब एक अलग एपीआई है. इसकी मदद से, Android में एज-टू-एज फ़ंक्शन (काम करने का तरीका) के लिए windowInsets पास किया जा सकता है. Material3 कॉम्पोनेंट के उलट, Material2 कॉम्पोनेंट में डिफ़ॉल्ट रूप से इंसर्ट काम नहीं करते हैं. इसलिए, वैल्यू को मैन्युअल तरीके से पास किया जाना चाहिए. दिशा-निर्देशों के लिए, मिलते-जुलते सैंपल देखें. (I655e8)

वर्शन 1.6.0-alpha02

26 जुलाई, 2023

androidx.compose.material:material-*:1.6.0-alpha02 रिलीज़ हो गया है. वर्शन 1.6.0-alpha02 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • हम डेंसिटी की निर्भरता को कॉम्पोनेंट लेवल पर ले जा रहे हैं. यह इन कॉम्पोनेंट पर लागू होता है: SwipeToDismiss और शीट पर आधारित कॉम्पोनेंट. कृपया दिए गए नए ओवरलोड का इस्तेमाल करें, जहां डेंसिटी एक पैरामीटर है. (I1846e)
  • कंपोज़ेबल में इस्तेमाल किए जा सकने वाले इनपुट तय करने के लिए अतिरिक्त एनोटेशन (I51109)
  • एपीआई की फ़ाइलों को अपडेट किया गया है, ताकि यह बताया जा सके कि ऐप्लिकेशन को इंस्टॉल करने की सुविधा उपलब्ध नहीं है (I8e87a, b/287516207)
  • FabPosition (Ib7aea, b/170592777) के लिए, नई 'शुरुआत से अलाइन करें' सुविधा जोड़ी गई
  • मटीरियल 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)
  • BottomSheetScaffold को false पर सेट करने पर, BottomSheetScaffold अब नेस्ट किए गए स्क्रोल में हिस्सा नहीं लेगा.gesturesEnabled (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)
  • क्लिक / पॉइंटर इवेंट में रुकावट डालने वाली PullRefreshIndicator ठीक की गई हैं (2494256, b/271777421)

वर्शन 1.5.0-alpha01

22 मार्च, 2023

androidx.compose.material:material-*:1.5.0-alpha01 रिलीज़ हो गया है. वर्शन 1.5.0-alpha01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • chipgroup के रिफ़्लो का सैंपल जोड़ा गया. सिंगल लाइन चिपग्रुप के सैंपल में, चाइल्ड चिप के बीच हॉरिज़ॉन्टल पैडिंग को स्पेसिफ़िकेशन से मैच करने के लिए अपडेट करें. (I3b155)
  • ओरिएंटेशन बदलने पर, कुछ मामलों में ModalBottomSheetLayout क्रैश हो जाता था. इस समस्या को ठीक कर दिया गया है. शीट के कॉन्टेंट में लेआउट ऐनिमेशन (जैसे, Modifier.animateContentSize) अब आसानी से काम करते हैं. (I2f981, b/266780234)

वर्शन 1.4

वर्शन 1.4.3

3 मई, 2023

androidx.compose.material:material-*:1.4.3 को बिना किसी बदलाव के रिलीज़ किया गया है. इसमें सिर्फ़ वर्शन में बदलाव किया गया है.

वर्शन 1.4.2

19 अप्रैल, 2023

androidx.compose.material:material-*:1.4.2 रिलीज़ हो गया है. वर्शन 1.4.2 में ये बदलाव शामिल हैं.

वर्शन 1.4.1

5 अप्रैल, 2023

androidx.compose.material:material-*:1.4.1 रिलीज़ हो गया है. वर्शन 1.4.1 में ये बदलाव शामिल हैं.

वर्शन 1.4.0

22 मार्च, 2023

androidx.compose.material:material-*:1.4.0 रिलीज़ हो गया है. वर्शन 1.4.0 में ये बदलाव शामिल हैं.

1.3.0 के बाद हुए अहम बदलाव

एपीआई में हुए बदलाव

  • Modifier.minimumInteractiveComponentSize जोड़ें. अगर एलिमेंट का साइज़ छोटा है, तो टच इंटरैक्शन को अलग-अलग करने के लिए, कम से कम 48dp साइज़ का इस्तेमाल किया जा सकता है. (I33f58, b/258495559)
  • ModalDrawer में स्वाइप किए जा सकने वाले एपीआई में बदलाव किए गए हैं. DrawerState के animateTo को 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)
  • एक्सटेंडेड मटीरियल आइकॉन में छोटा अपडेट किया गया है. इससे भरे हुए desktop_mac, directions, और kitchen आइकॉन में बदलाव किया गया है. (I65f5e)

वर्शन 1.4.0-beta01

8 फ़रवरी, 2023

androidx.compose.material:material-*:1.4.0-beta01 रिलीज़ हो गया है. वर्शन 1.4.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • उस समस्या को ठीक किया गया है जिसमें pullRefresh वेलोसिटी का इस्तेमाल नहीं कर रहा था. इस वजह से, ओवरस्क्रोल दिख रहा था. साथ ही, onRelease में Modifier.pullRefresh लैम्डा के एपीआई सिग्नेचर को बदलकर, इस्तेमाल की गई वेलोसिटी के लिए फ़्लोट वैल्यू दिखाई गई है (I7db65, b/266874741)
  • प्रॉपर्टी के getter 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)
  • उस गड़बड़ी को ठीक किया गया है जिसमें पोर्ट्रेट से लैंडस्केप मोड में घुमाने पर, अगर ModalBottomSheetLayout HalfExpanded था, तो वह क्रैश हो जाता था. कृपया पक्का करें कि आपने सही initialValue वैल्यू दी हो. उदाहरण के लिए, कॉन्फ़िगरेशन की जांच करके ऐसा किया जा सकता है. (Ie8df7, b/182882364)
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से, शीट का कॉन्टेंट खाली होने पर ModalBottomSheetLayout क्रैश हो जाता था. ModalBottomSheetLayout में अब खाली शीट का कॉन्टेंट इस्तेमाल किया जा सकता है. अगर शीट का कॉन्टेंट खाली है, तो वह सिर्फ़ छिपी हुई स्थिति में होगी. (Ic2288, b/200980998, b/216693030)

आम समस्या

  • androidx.compose.foundation:1.4.0-alpha03 से androidx.compose.foundation:1.4.0-alpha04 पर अपडेट करने के दौरान, आपको java.lang.NoSuchFieldError गड़बड़ी दिख सकती है. समस्या की शिकायत यहां की गई थी. इस समस्या को ठीक करने के लिए, एक समाधान सबमिट किया गया है. यह Compose के अगले अपडेट में उपलब्ध होगा. इस समस्या को हल करने के लिए, androidx.compose.material और androidx.compose.material3 लाइब्रेरी को नए वर्शन(1.1.0-alpha04) पर अपडेट करें या androidx.compose.foundation को 1.4.0-alpha03 पर डाउनग्रेड करें.

वर्शन 1.4.0-alpha03

7 दिसंबर, 2022

androidx.compose.material:material-*:1.4.0-alpha03 रिलीज़ हो गया है. वर्शन 1.4.0-alpha03 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • @JvmDefaultWithCompatibility एनोटेशन जोड़ा जा रहा है (I8f206)
  • ModalDrawer में Swipeable एपीआई में हुए बदलावों को शामिल किया गया है. DrawerState के animateTo को open और close तरीकों से बदल दिया गया है. साथ ही, ऑफ़सेट अब शून्य हो सकता है. ऑफ़सेट की ज़रूरत होने पर, requireOffset का इस्तेमाल करें. (I3de9e)
  • स्क्रोल करने की जानकारी के लिए, Modifier API जोड़ा गया. (I2ba9d, b/203141462)
  • इस कुकी का इस्तेमाल Clickable में किया जाता है. इससे प्रेस इंटरैक्शन को सही तरीके से डिले किया जा सकता है. ऐसा तब किया जाता है, जब जेस्चर स्क्रोल इवेंट बन सकते हैं.
  • Clickables को ठीक किया गया है. 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.getWindowInsetsControllerWindowCompat.getInsetsController का इस्तेमाल किया जाता है. इससे यह पक्का किया जा सकता है कि सही Window का इस्तेमाल किया गया हो. जैसे, अगर View किसी डायलॉग में है. (I660ae, b/219572936)
  • टेक्स्ट:includeFontPadding की सुविधा अब डिफ़ॉल्ट रूप से बंद होती है. includeFontPadding=false की वजह से होने वाली क्लिपिंग की समस्याओं को ठीक कर दिया गया है. साथ ही, लंबी स्क्रिप्ट के लिए क्लिपिंग नहीं होनी चाहिए. (I31c84, b/171394808)
  • क्रॉस ऐक्सिस के साइज़ तय करने के लिए, नया LazyVerticalGrid API जोड़ा गया (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 अब होवर और फ़ोकस स्टेट के साथ काम करते हैं. इसलिए, बटन जैसे किसी कॉम्पोनेंट पर होवर / फ़ोकस करने पर, अब सही स्टेट ओवरले दिखेगा.

वर्शन 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 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • इससे उन कॉम्पोनेंट के लिए टच टारगेट का कम से कम साइज़ तय किया जाता है जिनमें ऐक्सेस किया जा सकने वाला टच टारगेट नहीं होता. इससे कॉम्पोनेंट के आस-पास अतिरिक्त जगह जुड़ जाती है, ताकि यह पक्का किया जा सके कि उनके पास टच टारगेट के लिए काफ़ी जगह है. इससे मौजूदा यूज़र इंटरफ़ेस (यूआई) में बदलाव हो सकता है. ऐसा इसलिए, क्योंकि ये यूज़र इंटरफ़ेस (यूआई) यह मानते हैं कि इन कॉम्पोनेंट का साइज़, उनके विज़ुअल साइज़ के बराबर है. साथ ही, वे टच टारगेट के साइज़ को ध्यान में नहीं रखते. पूरी हैरारकी के लिए इस सुविधा को बंद करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध 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 को Kotlin 1.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 और AGP 7.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 overload जोड़ा है. यह क्लिक के साथ-साथ, क्लिक की जा सकने वाली अन्य सुविधाओं को भी मैनेज करता है: इंडिकेशन, interactionSource, चालू/बंद. Modifier.clickable के साथ, क्लिक न किए जा सकने वाले सामान्य डिसप्ले का इस्तेमाल नहीं किया जा सकता. ऐसा इसलिए, क्योंकि इन मामलों में डिसप्ले, रिपल इंडिकेशन को क्लिप नहीं करेगा.

एपीआई में हुए बदलाव

  • FabPosition को enum से इनलाइन क्लास में बदल दिया गया है, ताकि आने वाले समय में इसे और बेहतर बनाया जा सके (I030fb)
  • नई enum वैल्यू जोड़े जाने पर, when स्टेटमेंट के साथ पूरी तरह से काम करने से जुड़ी समस्याओं से बचने के लिए, enum के इस्तेमाल को इनलाइन क्लास में बदला गया है. (I2b5eb)
  • क्लिक किए जा सकने वाले / टॉगल किए जा सकने वाले आइटम में टैप टाइमआउट जोड़ा गया है, ताकि स्क्रोल / खींचने के दौरान रिपल इफ़ेक्ट न दिखे (Ia2704, b/168524931)
  • ContentDescription और Text सिमैंटिक्स प्रॉपर्टी अब सिंगल वैल्यू नहीं, बल्कि सूचियां हैं. इससे उन्हें जोड़ने के बजाय, मर्ज किया जा सकता है. इन बदलावों का इस्तेमाल करने के लिए, बेहतर टेस्टिंग एपीआई भी उपलब्ध कराए गए हैं (Ica6bf, b/184825850)
  • Modifier.focusModifier() का अब इस्तेमाल नहीं किया जा सकता. इसे Modifier.focusTarget() (I6c860) से बदल दिया गया है
  • FocusState enum को FocusState इंटरफ़ेस से बदला गया (Iccc1a, b/187055290)
  • LocalRippleNativeRendering को हटा दिया गया है, क्योंकि अब View-backed ripple का इस्तेमाल किया जा सकता है (I7fab3, b/188569367)

गड़बड़ियां ठीक की गईं

  • Modifier.onGloballyPositioned() को बदलकर, इस मॉडिफ़ायर के कोऑर्डिनेट को मॉडिफ़ायर चेन में रिपोर्ट करने के लिए इस्तेमाल किया गया. इसमें सभी मॉडिफ़ायर लागू करने के बाद, लेआउट के कोऑर्डिनेट रिपोर्ट नहीं किए जाते. इसका मतलब है कि अब मॉडिफ़ायर के क्रम से यह तय होगा कि कौनसे कोऑर्डिनेट रिपोर्ट किए जाएंगे. (Ieb67d, b/177926591)
  • मौजूदा Compose Material कैटलॉग के लिए README जोड़ा गया. (If9191)

वर्शन 1.0.0-beta07

18 मई, 2021

androidx.compose.material:material-*:1.0.0-beta07 रिलीज़ हो गया है. वर्शन 1.0.0-beta07 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Navigation Compose में रूट सपोर्ट के लिए, अब आपको एक्सटेंशन के तरीकों का इस्तेमाल करने की ज़रूरत नहीं है. (I22beb, b/172823546)

वर्शन 1.0.0-beta06

5 मई, 2021

androidx.compose.material:material-*:1.0.0-beta06 रिलीज़ हो गया है. वर्शन 1.0.0-beta06 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Ripple को Android डिवाइसों पर, RippleDrawable का इस्तेमाल करने के लिए माइग्रेट कर दिया गया है. इसका मतलब है कि रिपल ऐनिमेशन, RenderThread पर होंगे. इसलिए, यूज़र इंटरफ़ेस (यूआई) थ्रेड पर लोड होने पर भी ये ऐनिमेशन आसानी से दिखेंगे. जैसे, जब स्क्रीन के बीच नेविगेट किया जा रहा हो. इससे रिपल के एपीआई में कोई बदलाव नहीं होता. हालांकि, इस बदलाव की वजह से, रिपल के व्यवहार में बदलाव हो सकते हैं. माइग्रेशन में मदद करने के लिए, LocalRippleNativeRendering को जोड़ा गया है. इस CompositionLocal को 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) वाले Row और Column के चाइल्ड, अब पैरंट को उपलब्ध पूरी मुख्य ऐक्सिस स्पेस में नहीं भर रहे हैं. (Ied94d, b/186012444, b/184355105)

वर्शन 1.0.0-beta05

21 अप्रैल, 2021

androidx.compose.material:material-*:1.0.0-beta05 रिलीज़ हो गया है. वर्शन 1.0.0-beta05 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • मौजूदा कंपोज़ मटीरियल कैटलॉग में, कॉम्पोनेंट टाइल इमेज, थीम पिकर, और ज़्यादा खास मेन्यू यूआरएल जोड़े गए हैं. (I9b58e)

वर्शन 1.0.0-beta04

7 अप्रैल, 2021

androidx.compose.material:material-*:1.0.0-beta04 रिलीज़ हो गया है. वर्शन 1.0.0-beta04 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • एपीआई में बदलाव: DrawerState state अब experimental 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)
  • स्विच, चेकबॉक्स, और रेडियोबटन ऐक्शन लैम्डा अब नल हो सकते हैं. क्लिक की जा सकने वाली लाइन में मौजूद चेकबॉक्स के सैंपल को इस सुविधा का इस्तेमाल करने के लिए अपडेट किया गया है. (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 के लिए उपलब्ध कराया गया है. DropdownMenu में PopupProperties पैरामीटर जोड़ा गया है, ताकि Popup को और कॉन्फ़िगर किया जा सके. (I9c443)
  • loadFontResource का अब इस्तेमाल नहीं किया जा सकता. इसके बजाय, fontResource का इस्तेमाल करें. imageResource, loadImageResource, vectorResource, और loadVectorResource अब काम नहीं करते. इसके बजाय, painterResource का इस्तेमाल करें. (I6b809)
  • DropdownMenu से toggle और toggleModifier पैरामीटर हटा दिए गए हैं. साथ ही, dropdownModifier, dropdownOffset, और dropdownContent का नाम बदलकर क्रमशः modifier, offset, और content कर दिया गया है. DropdownMenu अब Popup के साथ एक जैसा काम करता है. इसमें मेन्यू की पोज़िशन के लिए, पैरंट लेआउट का इस्तेमाल किया जाता है. ज़्यादातर मामलों में, toggle को DropdownMenu का सिबलिंग बनाया जा सकता है. साथ ही, दोनों को Box में रैप किया जा सकता है. इस एपीआई के इस्तेमाल के बारे में ज़्यादा जानने के लिए, दस्तावेज़ में अपडेट किया गया सैंपल देखें. (I884fb)
  • toIntPx() का नाम बदलकर roundToPx() कर दिया गया है. (I9b7e4, b/173502290)
  • IntBounds का नाम बदलकर IntRect कर दिया गया है. साथ ही, एपीआई को बेहतर बनाया गया है. (I1f6ff)
  • सेमैंटिक कार्रवाइयों को बड़ा और छोटा करने की सुविधा जोड़ी गई. ModalBottomSheetState में expand और halfExpand को जोड़ा गया (Ib5064)
  • Modifier.dragGestureFilter अब काम नहीं करता है. इसके बजाय, Modifier.pointerInput { detectDragGestures (...)} का इस्तेमाल करें. इसके अलावा, एक ऐक्सिस पर ड्रैग करने के लिए, Modifier.draggable का इस्तेमाल करें (I0ba93, b/175294473)
  • 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)

  • बदलाव किए गए टैब के 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 में शुरुआती स्थिति अब काम करती है (Ifd51d)
  • WithConstraints को BoxWithConstraints के तौर पर फिर से बनाया गया है और इसे foundation.layout में ले जाया गया है. (I9420b, b/173387208)
  • scrollBy के नॉन-सस्पेंड वर्शन को बंद करें और scrollTo के नॉन-सस्पेंड वर्शन को हटाएं

    हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने और स्क्रोल पूरा होने का इंतज़ार करने के लिए, निलंबित फ़ंक्शन का इस्तेमाल करें. इस बदलाव के तहत, हम इन फ़ंक्शन के उन वर्शन को बंद कर रहे हैं जिन्हें निलंबित नहीं किया जा सकता. साथ ही, हम उन्हें हटा रहे हैं. (Ie9ced)

  • smoothScrollBy को निलंबित करने की सुविधा बंद कर दी गई है हमारा सुझाव है कि अब स्क्रोलिंग को कंट्रोल करने के लिए, निलंबित करने की सुविधा वाले फ़ंक्शन का इस्तेमाल करें. साथ ही, स्क्रोलिंग खत्म होने का इंतज़ार करें. इस ट्रांज़िशन के तहत, हम इन फ़ंक्शन के ऐसे वर्शन को बंद कर रहे हैं जिनमें खाते को निलंबित नहीं किया जाता. (I12880)

  • ComposeContentTestRule को पेश किया गया है, जो ComposeTestRule को बढ़ाता है. साथ ही, 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) से हटा दिया गया है

  • displaySize को हटाएं, क्योंकि इसका इस्तेमाल नहीं किया जाना चाहिए. आम तौर पर, onRoot() या कम से कम विंडो के साइज़ का इस्तेमाल करना बेहतर होता है. (I62db4)

  • Surface में अब एक से ज़्यादा लेआउट चाइल्ड हो सकते हैं. (I66a92, b/144488459)

  • invalidate और compositionReference() को अब बंद कर दिया गया है. इनके बजाय, currentRecomposeScope और rememberCompositionReference का इस्तेमाल करें. (I583a8)

  • यह कुकी, PopupPositionProvider में बदलाव करती है, ताकि वह ग्लोबल कोऑर्डिनेट के बजाय विंडो के हिसाब से कोऑर्डिनेट का इस्तेमाल कर सके. parentGlobalBounds का नाम बदलकर anchorBounds कर देता है. साथ ही, windowGlobalBounds को windowSize: IntSize (I2994a) में बदल देता है

  • अवधि और अपटाइम को लंबे मिलीसेकंड से बदल दिया जाएगा. साथ ही, इस चरण में उन क्लास पर पॉइंटर इनपुट की डिपेंडेंसी को हटा दिया जाएगा. (Ia33b2, b/175142755, b/177420019)

  • FlingConfig को स्वीकार करने वाले AnimatedFloat.fling को हटा दिया गया है. इसके बजाय, कृपया suspend Animatable.animateDecay का इस्तेमाल करें. (I4659b, b/177457083)

  • अब क्लिक किए जा सकने वाले, टॉगल किए जा सकने वाले, और चुने जा सकने वाले आइटम को कंपोज़िशन के बाहर बनाया जा सकता है (I0a130, b/172938345, b/175294473)

  • ईज़िंग को फ़ंक्शनल इंटरफ़ेस (Ib14e5) में बदल दिया गया है

  • ScrollableColumn/Row को अब इस्तेमाल नहीं किया जा सकता. अगर आपको स्क्रोल करने के लिए ज़्यादा कॉन्टेंट दिखाना है, तो LazyColumn के मुकाबले ScrollableColumn का इस्तेमाल करना कम असरदार होता है. ऐसा इसलिए, क्योंकि LazyColumn में सिर्फ़ दिखने वाले एलिमेंट को कंपोज़/मेज़र/ड्रॉ किया जा सकता है. उपयोगकर्ताओं को कम असरदार तरीके से स्क्रोल करने से रोकने के लिए, हमने ScrollableColumn और ScrollableRow को बंद करने का फ़ैसला किया है. इसके बजाय, हम LazyColumn और LazyRow के इस्तेमाल को बढ़ावा देंगे. उपयोगकर्ता अब भी यह तय कर सकते हैं कि उन्हें लेज़ी बिहेवियर की ज़रूरत नहीं है. वे सीधे तौर पर इस तरह से मॉडिफ़ायर का इस्तेमाल कर सकते हैं: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • LazyColumn/LazyRow/LazyVerticalGrid के स्कोप के लिए, नई items(count: Int) फ़ैक्ट्री मेथड. items(items: List) और itemsIndexed(items: List) अब एक्सटेंशन फ़ंक्शन हैं. इसलिए, इनका इस्तेमाल करते समय आपको इन्हें मैन्युअल तरीके से इंपोर्ट करना होगा. ऐरे के लिए नए एक्सटेंशन ओवरलोड: items(items: Array) और itemsIndexed(Array) (I803fc, b/175562574)

  • monotonicFrameAnimationClockOf के एक्सपेरिमेंटल तरीके हटा दिए गए हैं (Ib753f, b/170708374)

  • ग्लोबल कोऑर्डिनेट के तरीकों का इस्तेमाल बंद कर दिया गया है. साथ ही, विंडो पर आधारित कोऑर्डिनेट के नए तरीके बनाए गए हैं. (Iee284)

  • Modifier.toolingGraphicsLayer जोड़ा गया है. इससे जांच चालू होने पर, ग्राफ़िक्स लेयर मॉडिफ़ायर जुड़ जाता है. (I315df)

  • FocusRequester.createRefs को अब एक्सपेरिमेंट के तौर पर मार्क किया गया है, क्योंकि इसमें बदलाव हो सकता है. (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden का नाम बदलकर invisibleToUser कर दिया गया है. साथ ही, इसे @ExperimentalComposeUiApi के तौर पर मार्क किया गया है. AccessibilityRangeInfo का नाम बदलकर ProgressBarRangeInfo कर दिया गया है. stateDescriptionRange का नाम बदलकर progressBarRangeInfo कर दिया गया है. AccessibilityScrollState का नाम बदलकर ScrollAxisRange कर दिया गया है. horizontalAccessibilityScrollState का नाम बदलकर horizontalScrollAxisRange कर दिया गया है. verticalAccessibilityScrollState का नाम बदलकर verticalScrollAxisRange कर दिया गया है. (Id3148)

  • टेस्टिंग में TestCoroutineDispatcher का इस्तेमाल करना (I532b6)

  • वेक्टर ग्राफ़िक एपीआई को अपडेट किया गया है, ताकि वेक्टर ग्राफ़िक के रूट पर लागू किए गए टिंटिंग को पार्स किया जा सके. (Id9d53, b/177210509)

वर्शन 1.0.0-alpha10

13 जनवरी, 2021

androidx.compose.material:material-*:1.0.0-alpha10 रिलीज़ हो गया है. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • वेलोसिटी में बदलाव किया गया है, ताकि इसमें कॉम्पोनेंट पार्ट और गणितीय ऑपरेशन शामिल किए जा सकें. (Ib0447)
  • @ExperimentalTesting का नाम बदलकर @ExperimentalTestApi कर दिया गया है, ताकि यह इसी तरह के एक्सपेरिमेंटल एपीआई एनोटेशन (Ia4502, b/171464963) के साथ काम कर सके
  • Position का नाम बदलकर 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)
  • Semantics role API जोड़ें. साथ ही, क्लिक किए जा सकने वाले, चुने जा सकने वाले, और टॉगल किए जा सकने वाले 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)

  • DrawScope के साथ रखने के लिए, ContentDrawScope को ui-graphics मॉड्यूल में ले जाया गया. (Iee043, b/173832789)

वर्शन 1.0.0-alpha08

2 दिसंबर, 2020

androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08, और androidx.compose.material:material-icons-extended:1.0.0-alpha08 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • MaterialTheme अब चुनने के हैंडल और चुनने के बैकग्राउंड के लिए सही रंग सेट करता है. नॉन-मटेरियल ऐप्लिकेशन, AmbientTextSelectionColors का इस्तेमाल करके, चुनने के लिए इस्तेमाल किए गए रंगों को पसंद के मुताबिक बना सकते हैं. (I1e6f4, b/139320372, b/139320907)
  • कंपोज़ेबल लैम्डा पैरामीटर के नाम और पोज़िशन के लिए, लिंट चेक की सुविधा जोड़ी गई है. इससे Compose के दिशा-निर्देशों के मुताबिक, अनुकूलता की जांच की जा सकेगी. इसके अलावा, कुछ एपीआई को माइग्रेट किया गया है. इनमें, children का इस्तेमाल ट्रेलिंग लैम्डा के नाम के तौर पर किया गया था. इन्हें लिंट चेक और दिशा-निर्देशों के मुताबिक content में माइग्रेट किया गया है. (Iec48e)
  • VectorAsset का नाम बदलकर ImageVector कर दिया गया है VectorAsset को Builder में ले जाया गया है और इसका नाम बदल दिया गया है, ताकि यह API काउंसिल के दिशा-निर्देशों के मुताबिक ImageVector की इनर क्लास बन सके. VectorAssetBuilder का टाइपएलियास जोड़ा गया, ताकि ImageVector.Builder के साथ काम कर सके. (Icfdc8)
  • ImageAsset और इससे जुड़े तरीकों का नाम बदलकर ImageBitmap कर दिया गया है. (Ia2d99)
  • फ़ाउंडेशन सिमैंटिक्स प्रॉपर्टी को यूज़र इंटरफ़ेस (I6f05c) में ले जाया गया
  • fun RippleIndication() को बंद कर दिया गया है और इसकी जगह rememberRippleIndication() को इस्तेमाल किया जा रहा है, ताकि अन्य एपीआई के साथ एक जैसा अनुभव मिल सके. (Id8e2c)
  • BasicTextField, TextField, और OutlinedTextField में एक singeLine पैरामीटर जोड़ा गया. टेक्स्ट फ़ील्ड को हॉरिज़ॉन्टल तौर पर स्क्रोल की जा सकने वाली एक लाइन बनाने के लिए, इस पैरामीटर को सही पर सेट करें. (I57004, b/168187755)

गड़बड़ियां ठीक की गईं

  • सिमैंटिक ऐक्शन Dismiss (I2b706) जोड़ा गया
  • DrawModifier एपीआई को androidx.compose.ui पैकेज से androidx.compose.ui.draw पैकेज में ले जाया गया है. DrawModifierDeprecated.kt फ़ाइल बनाई गई है, ताकि टाइपएलियास/सहायता करने वाले तरीकों को शामिल किया जा सके. इससे, पुराने एपीआई से मौजूदा एपीआई पर माइग्रेट करने में मदद मिलेगी. (Id6044, b/173834241)
  • Modifier.drawLayer का नाम बदलकर Modifier.graphicsLayer कर दिया गया है साथ ही, एपीआई के सुझाव के मुताबिक, GraphicsLayer से जुड़ी क्लास भी अपडेट की गई हैं. (I0bd29, b/173834241)
  • <T> को SubcomposeLayout के एलान से हटा दिया गया है. अब इसका इस्तेमाल, टाइप की जानकारी दिए बिना किया जा सकता है. (Ib60c8)
  • drawLayer के लिए, Modifier.scale/rotate API जोड़े गए हैं.
    • Modifier.drawOpacity का नाम बदलकर Modifier.alpha किया गया
    • Modifier.drawShadow का नाम बदलकर Modifier.shadow किया गया (I264ca, b/173208140)
  • Box के अलाइनमेंट पैरामीटर का नाम बदलकर contentAlignment कर दिया गया है. (I2c957)
  • offsetPx मॉडिफ़ायर का नाम बदलकर offset कर दिया गया है. अब ये State के बजाय लैम्डा पैरामीटर ले रहे हैं. (Ic3021, b/173594846)
  • SweepGradientShader और SweepGradientBrush API लॉन्च किए गए. (Ia22c1)
  • Composable फ़ंक्शन में, Modifier पैरामीटर के लिए लिंट चेक जोड़ा गया. यह लिंट चेक, Compose के दिशा-निर्देशों के मुताबिक पैरामीटर के नाम, रिटर्न टाइप, डिफ़ॉल्ट वैल्यू, और क्रम की जांच करता है. (If493b)
  • TextFieldValue API अपडेट किया गया
    • TextFieldValue.composition को रीड ओनली बनाया गया
    • चुनी गई अमान्य रेंज (I4a675, b/172239032) के लिए थ्रो किया गया अपवाद हटाया गया
  • नया Modifier.drawLayer() ओवरलोड जोड़ा गया. यह नए GraphicsLayerScope पर एक लैम्ब्डा ब्लॉक लेता है. इसमें लेयर के पैरामीटर इस तरह से तय किए जाते हैं कि स्थिति में बदलाव होने पर, दोबारा कंपोज़ करने और फिर से लेआउट करने की प्रोसेस को स्किप किया जा सके. DrawLayerModifier अब इंटरनल है. ऐसा इसलिए किया गया है, ताकि इसके लॉजिक को LayoutModifier के placeable.placeWithLayer() तरीके में माइग्रेट किया जा सके (I15e9f, b/173030831)
  • Ambient सफ़िक्स वाली पुरानी एंबिएंट प्रॉपर्टी को बंद कर दिया गया है. साथ ही, उन्हें नई प्रॉपर्टी से बदल दिया गया है. नई प्रॉपर्टी के नाम से पहले, एंबिएंट जोड़ा गया है. ये प्रॉपर्टी, अन्य एंबिएंट प्रॉपर्टी और Compose API के दिशा-निर्देशों के मुताबिक हैं. (I33440)
  • लिंट चेक जोड़ा गया है. इससे यह पता चलेगा कि मॉडिफ़ायर फ़ैक्ट्रियां, @Composable के तौर पर मार्क होने के बजाय, अंदरूनी तौर पर androidx.compose.ui.composed {} का इस्तेमाल करती हैं. (I3c4bc)
  • सिमैंटिक आर्ग्युमेंट mergeAllDescendants का नाम बदलकर mergeDescendants कर दिया गया है. (Ib6250)
  • टेस्ट में टाइम कंट्रोल (TestAnimationClock और इसके इस्तेमाल) की सुविधा अब एक्सपेरिमेंटल है (I6ef86, b/171378521)
  • 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)
  • TextField में 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 API के साथ अनुकूलता रख सके. सबसे सही तरीकों को बढ़ावा देने के लिए, 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)
  • launchInComposition का नाम बदलकर LaunchedTask कर दिया गया है, ताकि यह Compose API के दिशा-निर्देशों (I99a8e) के मुताबिक हो
  • OnPositionedModifier का नाम बदलकर OnGloballyPositionedModifier कर दिया गया है. साथ ही, onPositioned() का नाम बदलकर onGloballyPositioned() कर दिया गया है. (I587e8, b/169083903)

वर्शन 1.0.0-alpha04

1 अक्टूबर, 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04, और androidx.compose.material:material-icons-extended:1.0.0-alpha04 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • यह स्टेटफ़ुल मटीरियल कॉम्पोनेंट में InteractionState पैरामीटर दिखाता है, ताकि स्टेट को ऊपर ले जाया जा सके और उसे पढ़ा / कंट्रोल किया जा सके. (Iaca5f, b/168025711, b/167164434)
  • RadioButton और TriStateCheckbox पर *color पैरामीटर में बदलाव करता है, ताकि हर स्थिति में इस्तेमाल किए गए रंगों को पूरी तरह से पसंद के मुताबिक बनाया जा सके. साथ ही, अगर चाहें, तो यह भी बदला जा सके कि स्थितियों के बीच रंग कैसे ऐनिमेशन करते हैं. ज़्यादा जानकारी के लिए, CheckboxConstants और RadioButtonConstants में मौजूद, ऐनिमेटडिफ़ॉल्ट* कलर फ़ंक्शन देखें. (I1c532)
  • rememberBackdropState का नाम बदलकर rememberBackdropScaffoldState कर दिया गया है. साथ ही, ऐनिमेशन क्लॉक के लिए एक और पैरामीटर जोड़ा गया है. BackdropScaffold के 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 API हटा दिए गए हैं
    • 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 में ये बदलाव शामिल हैं.

आम समस्या

= बैकस्पेस (b/165956313) का इस्तेमाल करके, किसी मटीरियल TextField का पहला वर्ण नहीं हटाया जा सकता

वर्शन 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)
    1. इस्तेमाल नहीं किए गए OffsetBase इंटरफ़ेस को हटाएं
    2. Offset और IntOffset क्लास को अलाइन किया गया है, ताकि एपीआई का एक जैसा इंटरफ़ेस हो
    3. Offset API के साथ एक जैसा रखने के लिए, IntOffset.Origin का नाम बदलकर IntOffset.Zero कर दिया गया है
    4. उपयोगकर्ताओं को अपने Canvas इंस्टेंस बनाने में मदद करने के लिए, nativeCanvas तरीके को Canvas इंटरफ़ेस से हटा दिया गया है
    5. DrawScope को refactor करने के लिए, EmptyCanvas क्लास का स्टब बनाया गया है, ताकि इसे lateinit के बजाय non-null पैरामीटर बनाया जा सके. साथ ही, यह पक्का किया जा सके कि फ़ील्ड में null वैल्यू न हो
    6. ClipOp एनम का नाम बदलकर, पास्कल केस में रखा गया
    7. FilterQuality enum का नाम बदलकर, पास्कल केस में कर दिया गया है
    8. StrokeJoin enum का नाम बदलकर, पास्कल केस में रखा गया
    9. PointMode enum के नाम बदलकर, उन्हें पास्कल केस में कर दिया गया है
    10. PaintingStyle enum के नाम बदलकर, उन्हें पास्कल केस में कर दिया गया है
    11. PathFillType enum का नाम बदलकर, पास्कल केस में कर दिया गया है
    12. StrokeCap enum का नाम बदलकर पास्कल केस कर दिया गया है
    13. DrawCache को लागू करने के तरीके को अपडेट किया गया है, ताकि अब lateinit पैरामीटर का इस्तेमाल न किया जा सके
    14. DrawScope को अपडेट किया गया है. अब यह fillPaint और strokePaint इंटरनल पैरामीटर के लिए, लेज़ी डेलिगेशन का इस्तेमाल नहीं करेगा
    15. इमेज कंपोज़ेबल को अपडेट किया गया है, ताकि कम ओवरहेड के लिए Box का इस्तेमाल न करना पड़े
    16. @Immutable एनोटेशन के लिए, आउटलाइन क्लास को अपडेट किया गया
    17. हर पाथ के निर्देश के लिए @Immutable एनोटेशन पाने के लिए, PathNode को अपडेट किया गया
    18. वेक्टर सबकंपोज़िशन को अपडेट किया गया है, ताकि समानता के लिए ज़रूरत से ज़्यादा शर्तों की जांच न हो. ऐसा इसलिए, क्योंकि कंपोज़ पहले से ही इनकी जांच करता है
    19. फ़ंक्शन कंस्ट्रक्टर के पक्ष में, Rect कंपैनियन कंस्ट्रक्टर के तरीकों को बंद कर दिया गया है
    20. @Immutable और @Stable एपीआई के साथ अपडेट की गई ब्रशिंग क्लास और फ़ंक्शन कंस्ट्रक्टर
    21. VertexMode enum को PascalCase में अपडेट किया गया
    22. DrawScope की selectPaint विधि को अपडेट किया गया है, ताकि पेंट पर स्ट्रोक पैरामीटर को शर्तों के आधार पर बदला जा सके. ऐसा तब किया जाएगा, जब वे बदल गए हों
    23. साइज़ को अपडेट किया गया है, ताकि इसमें डिस्ट्रक्चरिंग एपीआई जोड़ा जा सके. साथ ही, UnspecifiedSize का नाम बदलकर Unspecified कर दिया गया है. इसके अलावा, इस्तेमाल न किए गए तरीकों को हटा दिया गया है
  • डायलॉग को यूज़र इंटरफ़ेस (यूआई) पर ले जाएं (I47fa6)
  • SemanticsNodeInteraction.performPartialGesture को हटाया गया. इसके बजाय, SemanticsNodeInteraction.performGesture का इस्तेमाल करें. (Id9b62)
  • SemanticsNodeInteraction.getBoundsInRoot() का नाम बदलकर SemanticsNodeInteraction.getUnclippedBoundsInRoot() किया गया (Icafdf, b/161336532)
  • दाएं से बाएं लिखने की सुविधा के लिए, एपीआई अपडेट कर दिए गए हैं. LayoutDirectionAmbient को जोड़ा गया है. इसका इस्तेमाल, लेआउट की दिशा को पढ़ने और बदलने के लिए किया जा सकता है. Modifier.rtl और Modifier.ltr को हटा दिया गया है. (I080b3)
  • Modifier.deternimateProgress का नाम बदलकर Modifier.progressSemantics कर दिया गया है (I9c0b4)
  • यह Material.io/icons में जोड़े गए नए आइकॉन के साथ, material-icons-extended को अपडेट करता है (I4b1d3)
  • transitionDefinition के लिए, टाइप T को साफ़ तौर पर बताना ज़रूरी है. (I1aded)
  • Modifier.plus अब काम नहीं करता. इसके बजाय, Modifier.then का इस्तेमाल करें. 'फिर' शब्द से, क्रम के बारे में ज़्यादा जानकारी मिलती है. साथ ही, इसमें Modifier.padding().background() + anotherModifier टाइप करने की अनुमति नहीं है. इससे चेन टूट जाती है और इसे पढ़ना मुश्किल हो जाता है (Iedd58, b/161529964)
  • 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 कर दिया गया है. MaterialButton के innerPadding पैरामीटर का नाम बदलकर padding कर दिया गया है. (I66165)

  • स्लाइडर अब स्टेटलेस है. उपयोगकर्ताओं को खुद ही राज्य की जानकारी देनी होगी और उसे अपडेट करना होगा. यह काम, किसी अन्य कंट्रोल की तरह ही किया जाएगा. (Ia00aa)

  • StaticDrawer को हटा दिया गया है. अगर आपको इसकी ज़रूरत है, तो इसके बजाय Box कॉम्पोनेंट का इस्तेमाल करें. इसकी चौड़ाई, मटीरियल स्पेसिफ़िकेशन के मुताबिक होती है (I244a7)

  • फ़िल्ड टेक्स्ट फ़ील्ड (Ic75cd) में मटीरियल डिज़ाइन लागू किया गया

  • ListItem में मॉडिफ़ायर पैरामीटर जोड़ा गया और पैरामीटर को फिर से क्रम में लगाया गया, ताकि ट्रेलिंग लैम्डा बॉडी को प्रमोट किया जा सके (I66e21)

  • Typography में defaultFontFamily कंस्ट्रक्टर पैरामीटर जोड़ता है. इससे डिफ़ॉल्ट फ़ॉन्ट फ़ैमिली तय की जा सकती है. इसका इस्तेमाल उन सभी TextStyles के लिए किया जाएगा जिनमें फ़ैमिली सेट नहीं है. (I89d07)

  • एपीआई की सतह से, कुछ समय के लिए मटीरियल डेटा टेबल हटा दी गई हैं. (Iaea61)

  • Divider कंपोज़ेबल में पैरामीटर के नाम बदले गए (Ic4373)

  • बच्चे (Ia6d19)

  • MaterialTheme.emphasisLevels को हटाता है. इसके बजाय, EmphasisAmbient.current का इस्तेमाल करके, फ़ोकस लेवल (Ib5e40) को वापस पाएं

  • शेप थीमिंग सिस्टम को, मटीरियल डिज़ाइन स्पेसिफ़िकेशन के मुताबिक अपडेट किया गया है. अब ज़्यादातर कॉम्पोनेंट (Ifb4d1) के लिए, छोटे, मध्यम, और बड़े साइज़ के शेप दिए जा सकते हैं

  • MaterialTheme.colors() और MaterialTheme.typography() जैसे MaterialTheme API को फ़ंक्शन के बजाय प्रॉपर्टी के तौर पर बदला गया है. मौजूदा कॉल से पैरंटheses हटा दिए गए हैं. व्यवहार में कोई बदलाव नहीं होगा. (I3565a)

  • FloatingActionButton API को फिर से फ़ैक्टर किया गया है, ताकि वे प्रिमिटिव के बजाय कंपोज़ेबल लैम्डा स्वीकार कर सकें. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (I00622)

  • Checkbox, Switch, और Toggleable में enabled पैरामीटर जोड़ा गया (I41c16)

  • Ripple अब एक मॉडिफ़ायर है. Clickable को अब तक नहीं बदला गया है. इसलिए, इसका इस्तेमाल करने का सुझाव Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763) है

  • Surface और Card को androidx.ui.material.surface से androidx.ui.material में ले जाया गया है (I88a6d, b/150863888)

  • Button, FloatingActionButton, और Clickable में अब अलग enabled पैरामीटर है. बटन पर मौजूद कुछ पैरामीटर के नाम बदल दिए गए हैं या उनका क्रम बदल दिया गया है. (I54b5a)

  • 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)

  • Tab API को रीफ़ैक्टर किया गया है, ताकि वे 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)

  • स्काफ़ोल्ड मटीरियल कॉम्पोनेंट जोड़ा गया है. Scaffold लागू करता है (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 को फ़ॉल्स पर सेट करने पर, स्विच अब बंद स्थिति में दिखता है (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)

  • Px क्लास का इस्तेमाल, अलग-अलग कंपोज़ क्लास में किया गया था. इसे बड़े पैमाने पर रीफ़ैक्टर करने के दौरान, सिर्फ़ Dp और प्रिमिटिव टाइप पर निर्भर रहने के लिए बदल दिया गया है. ऐसा पिक्सल पैरामीटर के लिए किया गया है (Iede0b)

  • Modifier.semantics को फिर से इस्तेमाल किया जा सकता है, ताकि इसका इस्तेमाल हाई लेवल कॉम्पोनेंट के लिए किया जा सके. (I4cfdc)

  • DrawLayer मॉडिफ़ायर एपीआई में बदलाव किया गया है: outlineShape का नाम बदलकर shape कर दिया गया है. इसकी डिफ़ॉल्ट वैल्यू RectangleShape है और अब इसे शून्य नहीं किया जा सकता; clipToOutline का नाम बदलकर clip कर दिया गया है; clipToBounds को हटा दिया गया है, क्योंकि यह RectangleShape के साथ clip == true के बराबर है (I7ef11, b/155075735)

  • ज़्यादा लेवल वाले Compose API अपडेट किए गए हैं. ये Canvas को CanvasScope के बजाय Canvas को दिखाते हैं. इससे उपभोक्ताओं को अपने 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 पर मौजूद elevation प्रॉपर्टी का नाम बदलकर shadowElevation कर दिया गया है. साथ ही, अब यह ड्रॉइंग ऑर्डर को कंट्रोल नहीं करती है. DrawShadow के पैरामीटर का क्रम बदल गया है: एलिवेशन अब पहला पैरामीटर है और शेप दूसरा पैरामीटर है. इसका डिफ़ॉल्ट मान RectangleShape है. (I20150, b/152417501)

  • RectangleShape को androidx.ui.foundation.shape.* से androidx.ui.graphics.* में ले जाया गया है (Ia74d5, b/154507984)

  • TextField API अपडेट - onFocus और onBlur कॉलबैक को एक ही onFocusChange(Boolean) कॉलबैक में मर्ज कर दिया गया है. इसमें पैरामीटर (I66cd3) शामिल है

  • Row और Column में, verticalGravity और horizontalGravity पैरामीटर जोड़े गए. (I7dc5a)

  • wrapContentWidth और wrapContentHeight को अपडेट किया गया है, ताकि किसी भी अलाइनमेंट के बजाय वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट का इस्तेमाल किया जा सके. ग्रैविटी मॉडिफ़ायर को वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट स्वीकार करने के लिए अपडेट किया गया है. कस्टम कंटीन्यूअस अलाइनमेंट की सुविधा के साथ काम करने के लिए, लाइन, कॉलम, और स्टैक को अपडेट किया गया. (Ib0728)

  • PixelMap API बनाया गया है, ताकि ImageAsset से पिक्सल की जानकारी क्वेरी की जा सके. (I69ad6)

  • ProvideContentColor को हटाता है. इसके बजाय, ContentColorAmbient को सीधे Providers (Iee942) के साथ इस्तेमाल करें

  • ui-text-compose मॉड्यूल का नाम बदलकर ui-text कर दिया गया है. ui-text में अब CoreText और CoreTextField कंपोज़ेबल शामिल हैं (Ib7d47)

  • ui-text मॉड्यूल का नाम बदलकर ui-text-core कर दिया गया है (I57dec)

  • ui-framework/CoreText और CoreTextField कंपोज़ेबल को ui-text-compose में ले जाया गया. आपको अपने प्रोजेक्ट में ui-text-compose शामिल करना पड़ सकता है. (I32042)

  • DrawModifier API को बेहतर बनाया गया है:

    • draw() के लिए रिसीवर स्कोप को ContentDrawScope बनाया गया
    • draw() पर मौजूद सभी पैरामीटर हटा दिए गए हैं
    • DrawScope का इंटरफ़ेस, CanvasScope जैसा ही है
    • ContentDrawScope में drawContent() तरीका है (Ibaced, b/152919067)
  • runOnIdleCompose और runOnUiThread अब ComposeTestRule पर मौजूद तरीकों के बजाय, ग्लोबल फ़ंक्शन हैं. (Icbe8f)

  • [बदला जा सकता है]स्टेट प्रॉपर्टी डेलिगेट ऑपरेटर को एक्सटेंशन में ले जाया गया है, ताकि Kotlin 1.4 प्रॉपर्टी डेलिगेट ऑप्टिमाइज़ेशन का इस्तेमाल किया जा सके. by state { ... } या by mutableStateOf(...) का इस्तेमाल जारी रखने के लिए, कॉल करने वालों को इंपोर्ट जोड़ने होंगे. (I5312c)

  • LayoutCoordinates के लिए, positionInParent और boundsInParent जोड़े गए. (Icacdd, b/152735784)

  • ColoredRect को बंद कर दिया गया है. इसके बजाय, Box(Modifier.preferredSize(width, height).drawBackground(color)) का इस्तेमाल करें. (I499fa, b/152753731)

  • LayoutResult का नाम बदलकर MeasureResult कर दिया गया है. (Id8c68)

  • लेआउट मॉडिफ़ायर तय करने के लिए, नया एपीआई LayoutModifier2 जोड़ा गया; LayoutModifier (If32ac) अब काम नहीं करता

  • मॉडिफ़ायर प्लस ऑपरेटर को फ़ैक्ट्री एक्सटेंशन फ़ंक्शन (I225e4) से बदल दिया गया है

  • ड्रैग करने की सुविधा को मॉडिफ़ायर में ले जाया गया है (Id9b16, b/151959544)

  • ParentData कंपोज़ेबल अब काम नहीं करता है. आपको ऐसा मॉडिफ़ायर बनाना चाहिए जो ParentDataModifier इंटरफ़ेस लागू करता हो. इसके अलावा, अगर आपको सिर्फ़ लेआउट के बच्चों को टैग करना है, ताकि उन्हें मेज़र ब्लॉक में पहचाना जा सके, तो LayoutTag मॉडिफ़ायर का इस्तेमाल करें. (I51368, b/150953183)

  • अब सेवा में नहीं है कंपोज़ेबल. इसे 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)

  • Created Image कंपोज़ेबल, स्क्रीन पर दिए गए 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) के एपीआई सरफ़ेस में सुधार किए गए हैं