यूज़र इंटरफ़ेस (यूआई) लिखें

डिवाइस से इंटरैक्ट करने के लिए कंपोज़ यूज़र इंटरफ़ेस (यूआई) के बुनियादी कॉम्पोनेंट की ज़रूरत होती है. इसमें लेआउट, ड्रॉइंग, और इनपुट शामिल हैं.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
4 सितंबर, 2024 1.7.0 - - 1.8.0-ऐल्फ़ा01

संरचना

androidx में सात Maven ग्रुप आईडी, एक साथ मिलकर बनाए जाते हैं. हर ग्रुप इसमें सुविधा का एक खास सबसेट शामिल होता है, जिसमें हर सुविधा के लिए रिलीज़ का अपना सेट होता है नोट.

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

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

डिपेंडेंसी तय करना

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

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

ग्रूवी

dependencies {
    implementation "androidx.compose.ui:ui:1.7.0"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.ui:ui:1.7.0")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

सुझाव

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

नई समस्या जोड़ें

समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.

वर्शन 1.8

वर्शन 1.8.0-alpha01

4 सितंबर, 2024

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

वर्शन 1.7

वर्शन 1.7.0

4 सितंबर, 2024

androidx.compose.ui:ui-*:1.7.0 रिलीज़ हो गया है.

1.6.0 के बाद के अहम बदलाव

वर्शन 1.7.0 में हुए अहम बदलावों के बारे में इस ब्लॉग पोस्ट में बताया गया है.

वर्शन 1.7.0-rc01

21 अगस्त, 2024

androidx.compose.ui:ui-*:1.7.0-rc01 रिलीज़ हो गया है. वर्शन 1.7.0-rc01 में ये बातें शामिल हैं.

अहम बदलाव

  • ui:ui मॉड्यूल अब कम से कम 1.7.0-rc01 या उसके बाद का वर्शन होना ज़रूरी है. यह तरीका, 1.7.0-alpha01 की शुरुआत में हुए NestedScrollSource बदलावों को लेकर यूज़र इंटरफ़ेस (यूआई) और फ़ाउंडेशन के बीच के व्यवहार में गड़बड़ी को ठीक करने के लिए लागू किया गया है.

वर्शन 1.7.0-beta07

7 अगस्त, 2024

androidx.compose.ui:ui-*:1.7.0-beta07 रिलीज़ हो गया है. वर्शन 1.7.0-beta07 में ये प्रतिबद्धताएं शामिल हैं.

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

  • SemanticsNodeInteraction फ़ंक्शन से जुड़े टेक्स्ट इनपुट performTextReplacement, performTextInput, और performTextClearance अब दावा करने में होने वाली गड़बड़ियों को रीड ओनली TextFields पर कॉल करेंगे. (I4ae8f)

वर्शन 1.7.0-beta06

24 जुलाई, 2024

androidx.compose.ui:ui-*:1.7.0-beta06 रिलीज़ हो गया है. वर्शन 1.7.0-beta06 में ये प्रतिबद्धताएं शामिल हैं.

वर्शन 1.7.0-beta05

10 जुलाई, 2024

androidx.compose.ui:ui-*:1.7.0-beta05 रिलीज़ हो गया है. वर्शन 1.7.0-beta05 में ये प्रतिबद्धताएं शामिल हैं.

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

  • वह गड़बड़ी ठीक की गई है जिसमें सॉफ़्टवेयर कीबोर्ड बदलने से TextField तब तक नए कीबोर्ड से इनपुट स्वीकार नहीं करेगा, जब तक फ़ोकस हट नहीं जाता और वापस नहीं आता.
  • उस समस्या को ठीक किया गया है जिसकी वजह से लेयर के कॉन्टेंट को बनाए रखने की कोशिश करने पर, SurfaceView कॉन्टेंट के साथ रेंडर होने पर अनचाहे खराब असर पड़ सकते थे.

वर्शन 1.7.0-beta04

26 जून, 2024

androidx.compose.ui:ui-*:1.7.0-beta04 रिलीज़ हो गया है. वर्शन 1.7.0-beta04 में ये प्रतिबद्धताएं शामिल हैं.

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

  • टेक्स्ट की बहुत बड़ी लाइनों (जैसे कि 10 हज़ार वर्ण) (8157ab) को मेज़र करते समय क्रैश से बचें
  • GraphicsLayer API के लिए, सॉफ़्टवेयर रेंडरिंग की सुविधा बंद करें. (35ddd8)
  • लेयर परसिस्टेंस लॉजिक में हो रहे क्रैश की समस्या को ठीक किया गया. (70b13e)
  • लेयर ऑब्जेक्ट ऑप्टिमाइज़ेशन को फिर से इस्तेमाल करने की प्रोसेस को पहले जैसा कर दिया गया, क्योंकि इससे रेंडरिंग में समस्याएं आ रही थीं. (70b13e)

वर्शन 1.7.0-beta03

12 जून, 2024

androidx.compose.ui:ui-*:1.7.0-beta03 रिलीज़ हो गया है. वर्शन 1.7.0-beta03 में ये प्रतिबद्धताएं शामिल हैं.

वर्शन 1.7.0-beta02

29 मई, 2024

androidx.compose.ui:ui-*:1.7.0-beta02 रिलीज़ हो गया है. वर्शन 1.7.0-beta02 में ये प्रतिबद्धताएं शामिल हैं.

एपीआई में किए गए बदलाव

  • SemanticsProperties.Editable का नाम बदलकर IsEditable किया गया. साथ ही, SemanticsPropertyReceiver.editable को वैल्यू isEditable में बदल दिया गया है. प्रॉपर्टी अब बूलियन प्रॉपर्टी में बदल गई है और इसे हमेशा टेक्स्ट फ़ील्ड में बताया जाता है. (I8acd8)
  • सुलभता मानदंड के पैरामीटर का नाम बदलें. (I3d440)
  • लिंक की स्टाइल तय करने के लिए, अपडेट किया गया एपीआई: TextLinkStyles अब LinkAnnotation कंस्ट्रक्टर और AnnotatedString.fromHtml तरीके (I90b2b) का हिस्सा है. साथ ही, मटीरियल से TextDefaults को हटा दिया गया (I5477b)

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

  • इसके मकसद को बेहतर तरीके से दिखाने के लिए, LayoutCoordinates.introducesFrameOfReference का नाम बदलकर LayoutCoordinates.introducesMotionFrameOfReference किया गया. उस फ़्लैग के आधार पर निर्देशांकों की गणना करने के लिए संबंधित फ़ंक्शन का नाम बदला गया. (I3a330)

वर्शन 1.7.0-beta01

14 मई, 2024

androidx.compose.ui:ui-*:1.7.0-beta01 रिलीज़ हो गया है. वर्शन 1.7.0-beta01 में ये प्रतिबद्धताएं शामिल हैं.

एपीआई में किए गए बदलाव

  • performCustomAccessibilityActionLabelled का नाम बदलकर performCustomAccessibilityActionWithLabel और performCustomAccessibilityActionWhere का नाम बदलकर performCustomAccessibilityActionWithLabelMatching किया. (I5387f)
  • AnnotatedString.hasEqualsAnnotations अब hasEqualAnnotations है (I685c0)
  • टेक्स्ट में मटीरियल थीम वाले लिंक पाने के लिए, एपीआई को अपडेट किया गया. खास तौर पर, LinkAnnotations थीम को बनाने के लिए TextDefaults से तरीके हटाए गए हैं और थीम वाले लिंक के साथ एचटीएमएल को पार्स करने का तरीका बताया गया है. इसके बजाय, एक TextLinkStyles क्लास जोड़ी गई है, जो टेक्स्ट कंपोज़ेबल में पैरामीटर के तौर पर लिंक को स्टाइल करने की अनुमति देती है. (I31b93)

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

  • 63e1504 इवेंट के दौरान डाइनैमिक तरीके से पॉइंटर इनपुट मॉडिफ़ायर जोड़ते समय, इस्तेमाल के अतिरिक्त उदाहरणों को ठीक करता है

वर्शन 1.7.0-alpha08

1 मई, 2024

androidx.compose.ui:ui-*:1.7.0-alpha08 रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

  • बदलने लायक आकार को लागू करने की सुविधा देता है. Shape#createOutline को अब ग्राफ़िक लेयर के अंदर देखा जा सकता है. इसलिए, इसे पढ़ने से जुड़ी स्थिति बदलने पर अमान्य वैल्यू हो जाएंगी. इससे, बेहतर परफ़ॉर्म करने वाले ऐनिमेशन बनाए जा सकेंगे. (Id1629, b/326070216)
  • isPositionedByParentWithDirectManipulation का नाम बदलकर introducesFrameOfReference किया गया. ध्यान दें कि अब इसका उलटा असर होता है. इसका मतलब है कि डिफ़ॉल्ट रूप से, ज़्यादातर LayoutCoordinates में रेफ़रंस फ़्रेम होता है. साथ ही, प्रॉपर्टी में सीधे तौर पर छेड़छाड़ किए जाने पर ही, उसका नतीजा गलत माना जाता है. सिर्फ़ उन वीडियो के साथ क्वेरी की स्थिति के बारे में क्वेरी करने के लिए जो रेफ़रंस फ़्रेम पेश करते हैं, positionInLocalFrameOfReference(...) का इस्तेमाल करें. या LookaheadScope से positionInLocalLookaheadFrameOfReference. (Ifc5f7)
  • LookaheadScope के एपीआई को स्टेबल बनाया गया है (I21507)
  • एपीआई काउंसिल से मिले सुझाव के मुताबिक, getScrollViewportLength के लिए Action lambda को बदलें. (Ibc74a)
  • पूर्णांक के बजाय फ़्लोट पैरामीटर का इस्तेमाल करने के लिए, GraphicsLayer आउटलाइन एपीआई को अपडेट किया गया. फ़्लोट आधारित ऑफ़सेट और साइज़ इनलाइन क्लास (I2fb03, b/333863462) पर पहले से मौजूद 'अनिर्दिष्ट कॉन्सटेंट' के लिए UnsetOffset/UnsetSize IntSize सेंटीनल वैल्यू हटाई गईं
  • जांच के दौरान माउस इनपुट इंजेक्ट करते समय, MouseInjectionScope.click(), MouseInjectionScope.doubleClick(), MouseInjectionScope.tripleClick(), MouseInjectionScope.longClick() अब button: MouseButton पैरामीटर को स्वीकार करते हैं, ताकि इन्हें सभी पर लागू किया जा सके. सभी तरीकों के लिए, डिफ़ॉल्ट तौर पर वैल्यू MouseButton.Primary होती है. (I31a23, b/190493367, b/261439695)
  • LinkInteractionListener में onClicked का नाम बदलकर onClick किया. (Iaa35c)
  • TextInclusionStrategy.isInside का नाम बदलकर isIncluded करें. Paragraph/MultiParagraph#getRangeForRect() के रिटर्न टाइप को अमान्य न करें. (I51f26)

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

  • reverseScrolling=true वाले स्क्रोलिंग कंटेनर के लिए, लंबे स्क्रीनशॉट कैप्चर करने की समस्या ठीक की गई. (I7c59c)

बाहरी योगदान

  • नेस्ट किए गए LazyLists में आइटम प्रीफ़ेच करने के लिए सहायता जोड़ी गई (उदाहरण के लिए एक LazyColumn जो नेस्ट किए गए LazyRows को रेंडर करता है). इस बदलाव से, इन LazyLists के लिए स्क्रोल करने के दौरान फ़्रेम में आने वाली गिरावट को कम हो सकता है. डिफ़ॉल्ट तौर पर लागू होने वाला विकल्प, नेस्ट किए गए पहले दो आइटम को प्रीफ़ेच करने के लिए होता है. हालांकि, इस व्यवहार को नए LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) और LazyListPrefetchStrategy#onNestedPrefetch एपीआई से कंट्रोल किया जा सकता है. (I51952)

वर्शन 1.7.0-alpha07

17 अप्रैल, 2024

androidx.compose.ui:ui-*:1.7.0-alpha07 रिलीज़ हो गया है. वर्शन 1.7.0-alpha07 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

  • ClickableText को 'अब काम नहीं करता' के तौर पर मार्क किया गया है. टेक्स्ट में लिंक जोड़ने के लिए, अपने लिंक से जुड़े LinkAnnotation के साथ AnnotatedString बनाएं और इस AnnotatedString को टेक्स्ट कंपोज़ेबल में पास करें. (I34d4b, b/323346994)
  • हस्तलेखन जेस्चर के लिए ViewConfiguration.HandwritingGestureLineMargin का परिचय दें. BasicTextField (Ie6e13, b/325660505) के लिए, JoinOrSplit हाथ के जेस्चर के साथ काम करने की सुविधा
  • FocusProperties.enter और FocusProperties.exit अब प्रयोग के तौर पर नहीं हैं. FocusDirection.Enter और FocusDirection.Exit अब प्रयोग के तौर पर नहीं हैं. FocusRequester.Cancel अब प्रयोग के तौर पर उपलब्ध नहीं है (I461a1, b/261564106)
  • लेआउट कोऑर्डिनेट के बारे में क्वेरी करते समय, अब excludeDirectManipulationOffset आर्ग्युमेंट का इस्तेमाल किया जा सकता है. ऐसा उन पैरंट लेआउट को हटाने के लिए किया जा सकता है जिन्होंने उनके बच्चों को Placeable.PlacementScope.withDirectManipulationPlacement का इस्तेमाल करके सेट किया है. इसी तरह, ऐसा लेआउट जो अपने बच्चों की जगह बार-बार बदलता है, अब उन्हें withDirectManipulationPlacement का इस्तेमाल करके रखा जा सकता है (जैसे कि स्क्रोल, जो डिफ़ॉल्ट रूप से लागू होता है). इससे approachLayout पर आधारित ऐनिमेशन को ज़्यादा आसानी से समझने में मदद मिलती है. साथ ही, अब हमें यह फ़र्क़ करने का मौका मिलता है कि कौनसा ऑफ़सेट ऐनिमेट करना है और ऐनिमेशन का इस्तेमाल करते समय सीधे तौर पर क्या लागू करना है. (I60ec7)
  • लंबे स्क्रीनशॉट से जुड़ा फ़ीचर फ़्लैग हटा दिया गया है. (I28648, b/329128246)
  • LazyColumn अब बड़े स्क्रीनशॉट में स्टिकी हेडर को सही तरीके से रेंडर करेगा. (I8d239, b/329296635)
  • इन सोर्स की बढ़ी हुई परिभाषा के लिए NestedScroll सोर्स ड्रैग और फ़्लिंग को UserInput और SideEffect से बदला जा रहा है. इन सोर्स में अब ऐनिमेशन (साइड इफ़ेक्ट) और माउस व्हील और कीबोर्ड (UserInput) शामिल हैं. (I40579)
  • ApproachLayoutModifierNode और Modifier.approachLayout अब स्थिर हैं. पुराने isMeasurementApproachComplete() और isPlacementApproachComplete() की जगह नए isMeasurementApproachInProgress() हैं और isPlacementApproachInProgress() नए हैं.
  • अब काम नहीं करने वाला intermediateLayout मॉडिफ़ायर हटाया गया. (I3e91c)
  • GraphicsLayer#buildLayer का नाम बदलें, ताकि Displaylist पर काम करने वाले RenderNode और पिक्चर जैसे एपीआई के शुरुआती/endRecording तरीकों की डुप्लीकेट कॉपी बनाई जा सकें.
  • rememberObserver का फ़ायदा पाने के लिए, rememberGraphicsLayer को अपडेट किया गया. (I312c1, b/288494724, b/330758155)
  • UrlAnnotation के इस्तेमाल पर रोक लगा दी गई है, इसके बजाय LinkAnnotation.Url का इस्तेमाल करें. अगर मटीरियल थीमिंग का इस्तेमाल किया जा रहा है, तो TextDefaults ऑब्जेक्ट का इस्तेमाल करके, एनोटेशन को बनाने के लिए मटीरियल थीम वाली थीम का इस्तेमाल करें (I8d180, b/323346545)
  • टेक्स्ट लिंक को सामान्य स्टाइलिंग के अलावा, दबाया जा सकने वाला स्टाइलिंग विकल्प भी मिल गया
  • String.parseAsHtml का नाम बदलकर AnnotatedString.Companion.fromHtml किया गया. (I43dcd)
  • parseAsHtml तरीके का इस्तेमाल करने के लिए, स्टाइलिंग आर्ग्युमेंट (linkStyle, focusedLinkStyle, hoveredLinkStyle) और लिंक इंटरैक्शन लिसनर जोड़ा गया. यह तरीका, <a> टैग के साथ एचटीएमएल-टैग की गई स्ट्रिंग को पार्स करते समय, ऐसे हर टैग के लिए एक LinkAnnotation.Url बनाएगा. साथ ही, स्टाइलिंग ऑब्जेक्ट और हर एनोटेशन के साथ इंटरैक्शन लिसनर लिंक करेगा. (I7c977)
  • LinkAnnotation अब स्थिति के हिसाब से स्टाइलिंग आर्ग्युमेंट और LinkInteractionListener लेता है. हाइपरलिंक पाने के लिए, इस जानकारी को AnnotatedString में जोड़ें. focusedState और/या hoveredState को पास करके, लिंक के लिए विज़ुअल configuration तय किया जा सकता है. ऐसा तब किया जा सकता है, जब लिंक पर फ़ोकस किया गया हो और/या उन पर कर्सर घुमाया गया हो. (I81ce4, b/139312671)
  • ImeOptions.hintLocales अब शून्य नहीं हो सकता. अगर आपको एक खाली स्थान-भाषा की सूची पास करनी है, तो कृपया LocaleList.Empty का इस्तेमाल करें. (Ic5bc4)

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

  • खराब/गलत पुराने इनपुट इवेंट डेटा को अच्छी तरह हैंडल करता है (खराब ऑफ़सेट डेटा को अनदेखा करता है).
  • जब किसी ऐक्टिव पॉइंटर इनपुट इवेंट स्ट्रीम के दौरान, किसी अन्य पॉइंटर इनपुट मॉडिफ़ायर से पहले, डाइनैमिक तौर पर कोई पॉइंटर इनपुट मॉडिफ़ायर जोड़ा जाता है, तो अनचाहे पॉइंटर इवेंट को ठीक किया जा सकता है. उदाहरण के लिए, कर्सर घुमाने पर दिखने वाले एंटर और कर्सर से बाहर निकलने [mouse/स्टाइलस] के बीच में ऐसा करना.

वर्शन 1.7.0-alpha06

3 अप्रैल, 2024

androidx.compose.ui:ui-*:1.7.0-alpha06 रिलीज़ हो गया है. वर्शन 1.7.0-alpha06 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • स्टाइल वाली स्ट्रिंग के लिए parseAsHtml तरीका जोड़ा गया: इससे एचटीएमएल टैग वाली स्ट्रिंग को AnnotatedString में बदला जा सकता है. ध्यान दें कि सभी टैग काम नहीं करते. उदाहरण के लिए, अभी आप बुलेट सूचियां नहीं दिखा पाएंगे. (I84d3d, I30626, b/139326648)
  • आधिकारिक Android API (ScrollCaptureCallback) का इस्तेमाल करके, Compose के स्क्रोल कंटेनर में लंबे स्क्रीनशॉट के लिए एक्सपेरिमेंट के तौर पर सुविधा लागू की गई. यह सुविधा, एक्सपेरिमेंट के तौर पर उपलब्ध है. फ़िलहाल, ऐसा हो सकता है कि यह सभी मामलों को सही तरीके से हैंडल न कर पाए. इस वजह से, यह सुविधा फ़िलहाल डिफ़ॉल्ट रूप से बंद रहती है. ऑप्ट-इन करने के लिए, ComposeFeatureFlag_LongScreenshotsEnabled फ़्लैग को 'सही' पर सेट करें. (I2b055, b/329296471)

एपीआई में किए गए बदलाव

  • fun ClipEntry.getMetadata() को val ClipEntry.clipMetadata में बदल दिया गया है. (I50155)
  • ClipboardManager.getClipMetadata और ClipboardManager.hasClip फ़ंक्शन हटाए गए. क्लिप की मौजूदा एंट्री का मेटाडेटा पढ़ने के लिए, कृपया clipEntry.getMetadata() का इस्तेमाल करें. साथ ही, ClipboardManager.getClip का नतीजा देखें, अगर यह खाली है या जिससे यह पता नहीं चलता है कि क्लिपबोर्ड पर कोई मौजूदा क्लिप है या नहीं. (I50498)
  • अब GraphicsLayer ऑब्जेक्ट को placeable.placeWithLayer() फ़ंक्शन (I1b22f) में पास किया जा सकता है
  • ClipboardManager.setClip अब क्लिपबोर्ड से कॉन्टेंट हटाने के लिए, शून्य स्वीकार करता है. (I7d2e9)
  • बिल्ड टूल में लागू करने की जानकारी के तौर पर इस्तेमाल किए गए व्यू को छिपाने में मदद करने के लिए, संसाधन आईडी जोड़े गए (I99531)
  • बिट मैप के कॉन्टेंट को GraphicsLayer में रेंडर करने की सुविधा के लिए, GraphicsLayer#toImageBitmap निलंबित तरीका जोड़ा गया. यह, एपीआई लेवल 22 या इसके बाद के वर्शन पर काम करने वाली हार्डवेयर की तेज़ी से रेंडर करने की सुविधा है. यह सभी Android डिवाइसों में से 99% से ज़्यादा डिवाइसों पर काम करती है. Android के एपीआई लेवल 21 पर, फिर से सॉफ़्टवेयर रेंडरिंग शुरू हो जाती है. (I9e114)
  • Android RectF को ComposeRect (I39925, b/325660505) में बदलने का तरीका
  • अब सभी KeyboardOptions पैरामीटर में, डिफ़ॉल्ट रूप से एक अनजान वैल्यू होती है. KeyboardOptions.merge तरीका जोड़ा गया.
  • KeyboardOptions.autoCorrect का नाम बदलकर autoCorrectEnabled किया गया और इसे शून्य किया जा सकता है. यहां शून्य का मतलब है कि कोई वैल्यू नहीं बताई गई थी. (Ia8ba0, b/295951492)
  • सॉफ़्टवेयर कीबोर्ड से की गई कार्रवाइयों को प्रोसेस करने के लिए, BasicTextField(state) वैरिएंट और BasicSecureTextField अब KeyboardActions के बजाय KeyboardActionHandler का इस्तेमाल करते हैं. (I58dda)

वर्शन 1.7.0-alpha05

20 मार्च, 2024

androidx.compose.ui:ui-*:1.7.0-alpha05 रिलीज़ हो गया है. वर्शन 1.7.0-alpha05 में ये कमिट मौजूद हैं.

नई सुविधाएं

  • किसी डिसप्ले सूची में ड्रॉइंग कमांड रिकॉर्ड करने के लिए, नया GraphicsLayer एपीआई पेश करें. साथ ही, ऐसी अन्य प्रॉपर्टी जोड़ें जिनसे डिसप्ले सूची की रेंडरिंग पर असर पड़ता हो. इससे एक कॉम्प्लेक्स सीन को छोटे-छोटे हिस्सों में बांटने की सुविधा अलग-अलग हो जाती है. इन हिस्सों को पूरे सीन को फिर से बनाए बिना एक-दूसरे से अलग-अलग अपडेट किया जा सकता है. GraphicsLayer में किए गए बदलाव, डिसप्ले सूची को फिर से रिकॉर्ड किए बिना किए जा सकते हैं. Modifier.graphicsLayer के उलट, GraphicsLayer कंपोज़ेबल कॉन्टेंट को कहीं और रेंडर करने की अनुमति देता है. साथ ही, यह ऐनिमेशन वाले ऐसे मामलों में काम आता है जहां कॉन्टेंट को अलग-अलग सीन में रेंडर किए जाने की संभावना हो.

एपीआई में किए गए बदलाव

  • GraphicsLayer.draw(Canvas) अब सार्वजनिक एपीआई नहीं है. लेयर बनाने के लिए, कृपया DrawScope.drawLayer(GraphicsLayer) एक्सटेंशन फ़ंक्शन का इस्तेमाल करें. (I7a7c0)
  • restrictedConstraints() को दो तरीकों में बांटें: fitPrioritizingWidth() और fitPrioritizingHeight() (I6d7fd)
  • Android L के इस्तेमाल के लिए, HardwareCanvas स्टब लॉन्च किया गया (I1c3b5, b/288494724)
  • स्कोप वाले ऐक्सेस के लिए GraphicsContext का ऐक्सेस देने के लिए, कंपोज़िशन फ़्रेमवर्क को अपडेट करें, ताकि मालिक, DelegateableNode, और drawWithCache मॉडिफ़ायर को अपडेट करने के साथ-साथ GraphicsContext कंपोज़िशन को स्थानीय तौर पर दिखाया जा सके. इससे, मॉडिफ़ायर बंद होने पर GraphicsLayer के इंस्टेंस अपने-आप हट जाएंगे. (I64a2f, b/288494724)
  • InterceptPlatformTextInput की शुरुआत, लो-लेवल IME से जुड़े टेस्ट और कम लेवल के IME के इस्तेमाल के अन्य उदाहरणों को लिखने में मदद करने के लिए की गई. PlatformTextInputTestOverride के इस्तेमाल पर रोक लगा दी गई है. (I862ed, b/322680547)
  • GraphicsLayer.setOutline(Outline) एक्सटेंशन फ़ंक्शन जोड़ा गया. (Ib81f4)
  • GraphicsLayer इंस्टेंस (Ib98d6, b/288494724) बनाने के लिए फ़ैक्ट्री बनाने के लिए, GraphicsContext फ़ंक्शन कंस्ट्रक्टर का परिचय दें
  • GraphicsLayer API को उपलब्ध कराया गया, ताकि ड्रॉइंग कमांड को कैप्चर करने के लिए, डेवलपर को तय की गई सुविधा मिले. इनका इस्तेमाल ड्रॉ करने के लिए किया जा सकता है. साथ ही, आखिरी नतीजे पर अलग-अलग विज़ुअल इफ़ेक्ट भी लागू किया जा सकता है. (I80245, b/288494724)
  • Paragraph#getRangeForRect के बारे में बताएं. यह फ़ंक्शन, दिए गए रेक्टैंगल के एरिया से कवर किए गए टेक्स्ट की रेंज दिखाता है. (Iee516, b/325660505)
  • onLinkClicked तर्क से प्रयोग के तौर पर किए गए BasicText बदलाव को हटाया गया. आने वाले समय में, हाइपरलिंक की सुविधा के लिए एपीआई की जगह एक नया एपीआई लॉन्च किया जाएगा. (I107d5)

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

  • विज़ुअल इफ़ेक्ट और ट्रांसफ़ॉर्म की सुविधा के साथ, ड्रॉइंग के निर्देशों को कैप्चर और दोबारा चलाने के लिए, GraphicsLayer अपेक्षित/असल एपीआई की परिभाषा जोड़ी गई. ग्राफ़िक डिपेंडेंसी शामिल करने के लिए GraphicsContext इंटरफ़ेस का परिचय दें. इसमें GraphicsLayer इंस्टेंस बनाना और मैनेज करना भी शामिल है. (I4a8d6, b/288494724)
  • 1D फ़ोकस खोज के साथ इंटरऑप की समस्या को ठीक किया गया, जहां फ़ोकस, दूसरे व्यू के बीच एम्बेड किए गए ComposeView में अटक जाता था. (I08fd4)

बाहरी योगदान

  • LocalLifecycleOwner को Compose के यूज़र इंटरफ़ेस (यूआई) से lifecycle-runtime-compose पर ले जाया गया, ताकि इसके Compose पर आधारित हेल्पर एपीआई का इस्तेमाल, Compose के यूज़र इंटरफ़ेस (यूआई) के बाहर किया जा सके. योगदान के लिए धन्यवाद जेक व्हार्टन. (I6c41b, b/328263448)
  • मापदंड पर आधारित सभी अलाइनमेंट सब-टाइप पर बायस फ़्लोट प्रॉपर्टी को लगातार दिखाना. (I69f0f, b/328088992)

वर्शन 1.7.0-alpha04

6 मार्च, 2024

androidx.compose.ui:ui-*:1.7.0-alpha04 रिलीज़ हो गया है. वर्शन 1.7.0-alpha04 में ये कमिट मौजूद हैं.

एपीआई में किए गए बदलाव

  • Android U के बाद वाले डिवाइसों पर, BasicTextField2 के लिए स्टाइलस हैंडराइटिंग की सुविधा काम करती है. (I002e4)
  • इस CL में हम GetScrollViewportLength सिमैंटिक कार्रवाई जोड़ रहे हैं, ताकि हम a11y सिस्टम में स्क्रोल किए जा रहे कॉम्पोनेंट के बारे में जानकारी को पाइप-अप कर सकें. यह सीएल, फ़ाउंडेशन स्क्रोल की जा सकने वाली सूचियों में उस प्रॉपर्टी के इस्तेमाल को भी लागू करता है. (Ic5fa2)
  • FocusRequester.createRefs अब ठीक से काम कर रहा है (I4d92c, b/261436820)
  • DelegatableNode.requireView() लॉन्च किया गया, ताकि मॉडिफ़ायर नोड मौजूदा Android View को पा सकें और स्थानीय कंपोज़िशन को न पढ़ें. (I40768)
  • पाथ की दिशा बदलने के लिए नया एपीआई Path.reverse() (I36348)
  • hintLocales को KeyboardOptions में जोड़ा गया, ताकि TextFields को किसी पसंदीदा भाषा को प्रीसेट करने के लिए, खास स्थान-भाषा वाले IME के बारे में बताया जा सके.
  • Locale से platformLocale प्रॉपर्टी दिखाएं, जो बुनियादी प्लैटफ़ॉर्म ऑब्जेक्ट दिखाती है, उदाहरण के लिए java.util.Locale. (I921c6)

वर्शन 1.7.0-alpha03

21 फ़रवरी, 2024

androidx.compose.ui:ui-*:1.7.0-alpha03 रिलीज़ हो गया है. वर्शन 1.7.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • पेश है ContextualFlowRow और MaxLines और ओवरफ़्लो के साथ बेहतर FlowRow/Column. हमें यह बताते हुए खुशी हो रही है कि एक्सपेरिमेंट के तौर पर उपलब्ध, FlowRow और FlowColumn को बेहतर बनाया गया है. अब ContextualFlowRow और ContextualFlowColumn के लॉन्च होने के साथ-साथ, MaxLines और ओवरफ़्लो सहायता भी दी जा रही है. यह अपडेट परफ़ॉर्मेंस को बेहतर बनाने वाले कॉम्पोनेंट देने के लिए डिज़ाइन किया गया है. यहां ContextualFlow*, छोटे maxLines कॉन्फ़िगरेशन और डाइनैमिक +N के ज़्यादा बटन का इस्तेमाल करके कई आइटम के लिए बिलकुल सही है. वहीं, FlowRow और FlowColumn, 100 से कम आइटम वाले कुछ आइटम के लिए बिलकुल सही हैं. अहम जानकारी: FlowRow या FlowColumn में मौजूदा व्यवहार बनाए रखने के लिए, जहां सभी आइटम क्रॉस ऐक्सिस पर फ़िट होते हैं या नहीं, उन्हें बनाए रखने के लिए, शुरू करने के दौरान overflow को FlowRowOverflow.Visible या FlowColumnOverflow.Visible पर सेट करें. इन नई सुविधाओं के इस्तेमाल के उदाहरण देखने के लिए, ContextualFlowRowSample और FlowRowSample को एक्सप्लोर करें. (Ib9135, b/293577082)
  • maxTextLength सिमेंटिक्स प्रॉपर्टी जोड़ें, जिसे टेक्स्ट फ़ील्ड पर सेट किया जाना चाहिए. यह प्रॉपर्टी, वर्णों की तय सीमा को फ़िल्टर करने में मदद करती है. (I24d9f, b/170648072)
  • Modifier.inspectable रैपर अब काम नहीं करता. यह एपीआई ज़रूरत से ज़्यादा, आपके मॉडिफ़ायर की अमान्य वैल्यू बनाएगा. इसलिए, अब इसके इस्तेमाल का सुझाव नहीं दिया जाता. अगर डेवलपर टूल में, कार्रवाई बदलने वाली प्रॉपर्टी की जानकारी दिखाना चाहते हैं, तो डेवलपर को ModifierNodeElement पर inspectableProperties() तरीका लागू करने का सुझाव दिया जाता है. (Ib3236)
  • PopupProperties के लिए नया कंस्ट्रक्टर, जो WindowManager.LayoutParams फ़्लैग पर पूरा कंट्रोल देता है. (Ibb33e, b/312485503)
  • DelegatableNode.requireLayoutCoordinates() को, Modifier.Node का मौजूदा LayoutCoordinates पाने के तरीके के तौर पर पेश किया गया. इसके लिए, onPlaced को ओवरराइड करने और कोऑर्डिनेट को खुद स्टोर करने की ज़रूरत नहीं है. (Ia8657)
  • DelegatableNode.currentLayoutCoordinates को, Modifier.Node का मौजूदा LayoutCoordinates पाने के तरीके के तौर पर पेश किया गया. इसके लिए, onPlaced को ओवरराइड करने और निर्देशांकों को खुद किसी प्रॉपर्टी में सेव करने की ज़रूरत नहीं है. (Iaebaa)
  • androidx.compose.foundation.text2 पैकेज में, BasicTextField2 और उससे जुड़े एपीआई को androidx.compose.foundation.text में ले जाया गया. (I9f635)
  • नया ApproachLayoutModifierNode एपीआई जोड़ा गया है, ताकि साफ़ तौर पर दिखने वाले मॉडिफ़ायर नोड में, पसंद के मुताबिक अप्रोच लॉजिक बनाने में मदद मिल सके. साथ ही, उन ऐनिमेशन के लिए नया प्रयोग के तौर पर DeferredTargetAnimation API जोड़ा गया जिनका टारगेट इंस्टैंशिएट करते समय पता नहीं है. (I60745)
  • किसी पाथ की दिशा के बारे में क्वेरी करने और Path से कंटूर एक्सट्रैक्ट करने के लिए, नए Path एपीआई. (I63d04)
  • Path में कोई खास पॉइंट मौजूद है या नहीं, यह जांचने के लिए PathHitTest और Path.contains(Offset) को जोड़ा गया. (I3b218)
  • TextLayoutResult अब getLineBaseline(lineIndex) तरीका दिखाता है. इससे मौजूदा सुविधा प्रॉपर्टी firstBaseline और lastBaseline के अलावा, टेक्स्ट की आर्बिट्रेरी लाइन की बेसलाइन पढ़ने की सुविधा मिलती है. (Ide4e8, b/237428541)
  • सिर्फ़ दो AnnotatedStrings के एनोटेशन की तुलना करने के लिए तरीका जोड़ा गया. (I32659)

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

  • SemanticsPropertyReceiver.performImeAction और SemanticsActions.PerformImeAction के साथ, पुराने सिस्टम के साथ काम करने की सुविधा से जुड़ी समस्या ठीक की गई. (Id0528, b/322269946)

वर्शन 1.7.0-alpha02

7 फ़रवरी, 2024

androidx.compose.ui:ui-*:1.7.0-alpha02 रिलीज़ हो गया है. वर्शन 1.7.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • SemanticsPropertyReceiver.performImeAction के साथ बाइनरी अनुकूलता से जुड़ी समस्या ठीक की गई. (I65865, b/322269946)
  • usePlatformDefaultWidth पैरामीटर लेने वाला PopupProperties कंस्ट्रक्टर, अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं है. (I8f8d2)
  • ComposeTestRule.waitUntil का ओवरलोड जोड़ा गया, जो टाइम आउट मैसेज में शामिल करने के लिए, शर्त की स्ट्रिंग की जानकारी लेता है. (I9413e)
  • एक ही मॉडिफ़ायर चेन में जोड़ी गई सिमैंटिक प्रॉपर्टी को हटाने के लिए नया सिमैंटिक एपीआई unset(). नई सिमेंटिक्स प्रॉपर्टी isOpaque. (I8c583, b/317966058, b/246056649)
  • PointerInputChange के सार्वजनिक एपीआई में, कॉपी करने के तरीके से originalEventPosition को हटाया गया. (I7bead)

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

  • गैर-टैब और गैर-रेडियोबटन को चुने जाने पर क्लिक करने की अनुमति देने वाला a11y बग ठीक किया गया है. (I2181c)
  • VelocityTracker में, अब पॉइंट जोड़ने की सुविधा डिफ़ॉल्ट रूप से चालू हो जाएगी. अगर कोई समस्या है, तो VelocityTrackerAddPointsFix को 'गलत है' पर सेट करके, इस समस्या को हल किया जा सकता है. (Ib3877, b/269487059)
  • TextStyle और ParagraphStyle में, बैकवर्ड बाइनरी इनकंपैटबिलिटी को ठीक किया गया. (I179f0, b/320819734)

बाहरी योगदान

  • प्लैटफ़ॉर्म के हिसाब से पैरामीटर के बिना, नया DialogProperties कंस्ट्रक्टर जोड़ा गया है. (I45829)
  • प्लैटफ़ॉर्म के हिसाब से पैरामीटर के बिना, नया PopupProperties कंस्ट्रक्टर जोड़ा गया है. (I9a038)

वर्शन 1.7.0-alpha01

24 जनवरी, 2024

androidx.compose.ui:ui-*:1.7.0-alpha01 रिलीज़ हो गया है. वर्शन 1.7.0-alpha01 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • इमेज जैसे आर्बिट्रेरी कॉन्टेंट को सपोर्ट करने के लिए ClipEntry और ClipMetadata जोड़कर ClipboardManager को बड़ा किया गया.
  • स्थानीय तौर पर अनुमति देने के लिए, DeviceConfigurationOverride एपीआई को ui-test में जोड़ता है जांच में शामिल कॉन्टेंट के व्यवहार में बदलाव करना, जैसे कि साइज़, स्थान-भाषा, लेआउट डायरेक्शन, फ़ॉन्ट स्केल या थीम.

वर्शन 1.6

वर्शन 1.6.8

12 जून, 2024

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

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

  • जब फ़ॉन्ट स्केल सबसे कम तय की गई टेबल से कम हो, तो फ़ॉन्ट स्केलिंग में अंतर को ठीक किया गया. इस मामले में, अब हम लीनियर 1x स्केल और सबसे कम परिभाषित टेबल के बीच इंटरपोलेट करते हैं, ताकि स्केल बढ़ने पर फ़ॉन्ट का साइज़ एक ही हो. (Icbae3)

वर्शन 1.6.7

1 मई, 2024

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

वर्शन 1.6.6

17 अप्रैल, 2024

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

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

  • कभी-कभी होने वाले BasicTextField के क्रैश को ठीक करता है.

वर्शन 1.6.5

3 अप्रैल, 2024

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

वर्शन 1.6.4

20 मार्च, 2024

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

वर्शन 1.6.3

6 मार्च, 2024

androidx.compose.ui:ui-*:1.6.3 रिलीज़ हो गया है. वर्शन 1.6.3 में ये शर्तें शामिल हैं.

वर्शन 1.6.2

21 फ़रवरी, 2024

androidx.compose.ui:ui-*:1.6.2 रिलीज़ हो गया है. वर्शन 1.6.2 में ये कमियां शामिल हैं.

वर्शन 1.6.1

7 फ़रवरी, 2024 androidx.compose.ui:ui-*:1.6.1 रिलीज़ हो गया है. वर्शन 1.6.1 में ये कमियां शामिल हैं.

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

  • SemanticsPropertyReceiver.performImeAction और SemanticsActions.PerformImeAction के साथ, पुराने सिस्टम के साथ काम करने की सुविधा से जुड़ी समस्या ठीक की गई. (Ie0bb2, b/322269946)
  • जब कोई लेआउट असामान्य रूप से बड़ा साइज़ दिखाता है, तो लेआउट में गड़बड़ी होने लगती है. आम तौर पर, इस तरह की गड़बड़ी तब होती है, जब मेज़रमेंट, Constraints.Infinity की जांच किए बिना सीधे तौर पर ज़्यादा से ज़्यादा कंस्ट्रेंट का इस्तेमाल करता है. इस जांच से डेवलपर को गलत साइज़ वाले लेआउट की समस्या का पता लगाने में मदद मिलेगी. इससे, डेवलपर को गलत साइज़ वाले लेआउट की समस्या का पता लगाने में मदद मिलेगी. (I339a9)

वर्शन 1.6.0

24 जनवरी, 2024

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

वर्शन 1.6.0-rc01

10 जनवरी, 2024

androidx.compose.ui:ui-*:1.6.0-rc01 रिलीज़ हो गया है. वर्शन 1.6.0-rc01 में ये कमिट हैं.

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

  • वेक्टर ग्राफ़िक को ऑप्टिमाइज़ किया गया, ताकि परफ़ॉर्मेंस को बेहतर बनाया जा सके. इसके लिए, ज़रूरत के मुताबिक अतिरिक्त वेक्टर ग्राफ़िक का इस्तेमाल कम किया जाता है.

वर्शन 1.6.0-beta03

13 दिसंबर, 2023

androidx.compose.ui:ui-*:1.6.0-beta03 रिलीज़ हो गया है. वर्शन 1.6.0-beta03 में ये कमिट हैं.

नई सुविधाएं

  • अब नोड को अलग किए बिना LayoutCoordinates को डिटैच किया जा सकता है. इससे बचने के लिए, कंपोज़ लेआउट इंस्पेक्टर (If693) में जाकर ऐसा करें

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

  • PlatformImeOptions अब इंटरफ़ेस के बजाय एक कंक्रीट क्लास है. (If40a4)
  • हर बार रूट को दोबारा लिखने पर, LocalSoftwareKeyboardController और LocalTextInputService की वजह से होने वाले अतिरिक्त डाउनस्ट्रीम रीकंपोज़िशन को ठीक किया गया और नई वैल्यू दी जा रही हैं. (I42190, b/310510985)

वर्शन 1.6.0-beta02

29 नवंबर, 2023

androidx.compose.ui:ui-*:1.6.0-beta02 रिलीज़ हो गया है. वर्शन 1.6.0-beta02 में ये तय किए गए अपडेट शामिल हैं.

वर्शन 1.6.0-beta01

15 नवंबर, 2023

androidx.compose.ui:ui-*:1.6.0-beta01 रिलीज़ हो गया है. वर्शन 1.6.0-beta01 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • अब DragAndDropTarget मॉडिफ़ायर, पाने वाले DragAndDropTarget को साफ़ तौर पर ले लेता है. साथ ही, इसमें 'खींचें और छोड़ें' सेशन में ऑप्ट इन करने के लिए लैम्डा मौजूद है. DragAndDropModifierNode के लिए अब दो फ़ैक्ट्री फ़ंक्शन उपलब्ध हैं. एक ट्रांसफ़र पाने के लिए और दूसरा डेटा ट्रांसफ़र करने के लिए (I69481)
  • फ़्लोट के तौर पर दिखाने के लिए, maximumFlingVelocity को अपडेट किया गया. maximumFlingVelocity की एकता के बारे में ज़्यादा साफ़ तौर पर बताने के लिए, दस्तावेज़ों को अपडेट किया गया. (I8adc7)
  • DragAndDropModifierNode फ़ैक्ट्री में onDragAndDropStart का नाम बदलकर acceptDragAndDropTransfer कर दिया गया है.खींचें और छोड़ें सेशन से स्वीकार करने के लिए, acceptsDragAndDropTransfer को dragAndDropTarget मॉडिफ़ायर में जोड़ दिया गया है. अगर खींचें और छोड़ें सेशन में आपकी दिलचस्पी है, तो यह Lambda फ़ंक्शन, कारगर DragAndDropTarget दिखाता है. ड्रैग इवेंट प्रोसेस करने के लिए, अन्य Lambdas को इससे बदल दिया गया है. खींचें और छोड़ें सेशन से पाने के लिए, DragAndDropTarget फ़ैक्ट्री फ़ंक्शन जोड़ा गया है (Iebf3a)
  • DragAndDropInfo को DragAndDropModifierNode.drag टाइप के तौर पर हटाया गया. हालांकि, अब transferData, सजावट के साइज़, और ड्रैग डेकोरेशन DrawScope लैम्डा के पैरामीटर के हिसाब से पैरामीटर को हटाया जा सकता है

    DragAndDropTarget में किसी खास तरीके के बजाय, खींचें और छोड़ें इवेंट के खास तरीके हैं

    DragAndDropModifierNode के लिए फ़ैक्ट्री फ़ंक्शन में मौजूद onDragAndDropEvent का नाम बदलकर onDragAndDropStart कर दिया गया है, ताकि बेहतर तरीके से यह बताया जा सके कि दिया गया DragAndDropTarget, खींचें और छोड़ें सेशन के लिए ही मान्य है

    DragAndDropEventType को हटा दिया गया है (I645b1)

  • PlatformTextInputModifierNode.runTextInputSession का नाम बदलकर establishTextInputSession किया गया. (I03cd0)

  • ट्रैवर्सेबल नोड एपीआई नामों को बेहतर बनाता है, ताकि उन्हें आसानी से समझा जा सके. (Ia4474)

  • OriginalText को TextSubstitution से बदलें. (Ifa5a8)

  • PlatformTextInputModifierNode.textInputSession का नाम बदलकर runTextInputSession किया गया. (Ie9c6b)

  • SubcomposeLayout के बच्चों (और इस पर आधारित LazyColumn जैसे लेआउट) का, जिन्हें आने वाले समय में फिर से इस्तेमाल करने के लिए सेव रखा जाता है उन्हें बंद माना जाएगा. ऐसे नोड को टेस्ट करने के लिए, नया assertIsDeactivated() टेस्ट एपीआई लॉन्च किया गया था. जांच वाले एपीआई के बाकी हिस्से, बंद किए गए नोड को डिफ़ॉल्ट रूप से फ़िल्टर कर देंगे. (I2ef84, b/187188981)

  • FocusDirection.In और FocusDirection.Out को हटाया गया. इसके बजाय, FocusDirection.Enter और FocusDirection.Exit का इस्तेमाल किया गया (I2f660)

  • मटीरियल SwipeToReveal एपीआई (कार्ड और चिप के लिए) में स्लॉट बनाने के लिए, अब डेटा क्लास पर आधारित इंस्टेंस के बजाय, स्लॉट आधारित एपीआई (जैसा कि Compose ने सुझाव दिया है) का इस्तेमाल किया जाता है. यह एक नुकसान पहुंचा सकता है. एपीआई के नए वर्शन का इस्तेमाल करने के तरीके जानने के लिए, कृपया डेमो और सैंपल कोड देखें. (Ia8943)

  • FontStyle(int) कंस्ट्रक्टर अब काम नहीं करता है. इसके बजाय, FontStyle.Normal या FontStyle.Italic का इस्तेमाल करें. (I66610)

  • FontScalable इंटरफ़ेस का नाम बदलकर FontScaling किया गया (Ie804a)

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

  • अगर टेक्स्ट एडिटर पर फ़ोकस नहीं किया गया है, तो SoftwareKeyboardController.show() में सॉफ़्टवेयर कीबोर्ड नहीं दिखेगा. (I2165a, b/301477279)
  • उन कुंजियों के लिए हार्डवेयर मुख्य अप इवेंट जिन्हें एक ही 'लिखें' व्यू में, डाउन इवेंट नहीं मिला हो उन्हें अब अनदेखा कर दिया जाएगा. (Ib37b4, b/305518328)
  • ArcLine में स्वीप ग्रेडिएंट के लिए रेंडरर सहायता जोड़ें. (I4d5bb)
  • PageSize.Fixed के लिए बराबर और हैशकोड लागू करें. (Ie3ede, b/300134276)
  • विंडो इनसेट में बदलाव (Iee695) के साथ बाइनरी कंपैटबिलिटी से जुड़ी समस्या ठीक करना
  • Material3 चिप/बटन के लिए मटीरियल कोर लेयर हटाएं, क्योंकि माइक्रोबेंचमार्क इसके बिना बेहतर परफ़ॉर्मेंस दिखाते हैं. (I55555)
  • Compose में effectContext के तौर पर पास किए गए TestDispatcher का इस्तेमाल, अब जांच करने और फ़्रेम बनाने के लिए किया जाएगा. (Ia7178)

वर्शन 1.6.0-alpha08

18 अक्टूबर, 2023

androidx.compose.ui:ui-*:1.6.0-alpha08 रिलीज़ हो गया है. वर्शन 1.6.0-alpha08 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • Modifier.dragAndDrawSource ने onDrawDragShadow लैम्डा का नाम बदलकर drawDragDecoration कर दिया है. साथ ही, DragAndDropInfo का साइज़ पैरामीटर का नाम बदलकर dragDecorationSize कर दिया है. (Id0e30, b/303904810)
  • SemanticsNodeInteraction.isDisplayed() और SemanticsNodeInteraction.isNotDisplayed() के बारे में बताएं, ताकि यह पता चल सके कि मिलता-जुलता नोड दिख रहा है या नहीं. यह पता करने के लिए कि उस पर जोर देना भी ज़रूरी नहीं है. (I2c196, b/302100809)
  • null को बदलने के लिए, ParagraphTextStyle के TextAlign, TextDirection, Hyphens, और LineBreak फ़ील्ड के लिए, Unspecified की एक खास वैल्यू लॉन्च की गई. ये क्लास इनलाइन क्लास हैं. इसलिए, शून्य वाले एट्रिब्यूट को 'अनजान' फ़ॉर्मैट में बदलकर, हम प्रिमिटिव टाइप बॉक्सिंग से बचाते हैं. TextStyle और पैराग्राफ़ स्टाइल में कंस्ट्रक्टर, गेटर, और अन्य तरीकों को, बताए गए पैरामीटर को नॉन-शून्य टाइप के तौर पर स्वीकार करने के लिए अपडेट किया गया. (I4197e, b/299490814)
  • एक्सएमएल से GoogleFont को पढ़ने के लिए, GoogleFont ओवरलोड जोड़ें. (If8f59)
  • LoremIpsum PreviewParameterProvider को ओपन क्लास बनाया गया. (I41bf5, b/266918816, b/300116360)

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

  • FontFamilyResolver, अब कैश मेमोरी को मैनेज करने वाले कोरूटीन के लिए, Dispatchers.Main का इस्तेमाल करता है. (Ie8dd9)
  • AndroidViewBinding, commitNow का इस्तेमाल करके आपके लेआउट में FragmentContainerView को शामिल करके, Fragment इंस्टेंस को एक साथ हटा देता है. ऐसा commitNow का इस्तेमाल करके किया जाता है, न कि उस commit का इस्तेमाल करने पर जिसमें बदलाव करने पर कंपोज़िशन में बदलाव किया जाता है. इससे, लाइव एडिट करने के तरीके से जुड़ी समस्याएं ठीक हो जाती हैं.onRelease (I58fbf)

वर्शन 1.6.0-alpha07

4 अक्टूबर, 2023

androidx.compose.ui:ui-*:1.6.0-alpha07 रिलीज़ हो गया है. वर्शन 1.6.0-alpha07 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • कस्टम टेक्स्ट एडिटर के लिए, लिखने से जुड़े टेस्ट के लिए PlatformTextInputMethodTestOverride की सुविधा शुरू की गई. (आईडी159b)
  • खींचें और छोड़ें सेशन शुरू करने के लिए, dragAndDropSource मॉडिफ़ायर जोड़ा जाता है. साथ ही, खींचें और छोड़ें सेशन से पाने के लिए dragAndDropTarget मॉडिफ़ायर जोड़ा जाता है. (Ib7828, b/286038936)
  • ColorList और ColorSet कलेक्शन जोड़े गए, जिनमें किसी डेटा को असाइन करने की ज़रूरत नहीं होती. (I744bd)
  • नॉन-लीनियर फ़ॉन्ट स्केलिंग को बंद करने के लिए, DisableNonLinearFontScalingInCompose अस्थायी फ़्लैग जोड़ा गया. अगर आपको इसे खाली करने के लिए समय चाहिए, तो अपने टेस्ट में DisableNonLinearFontScalingInCompose = true सेट करें. यह फ़्लैग Compose 1.6.0-beta01 में हटा दिया जाएगा. (Ic9486)

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

  • ऑप्टिमाइज़ की गई एक्सएमएल वेक्टर की ड्रॉ करने लायक पार्सिंग की सुविधा. (Ibb015)

वर्शन 1.6.0-alpha06

20 सितंबर, 2023

androidx.compose.ui:ui-*:1.6.0-alpha06 रिलीज़ हो गया है. वर्शन 1.6.0-alpha06 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • मटीरियल आइकॉन के लिए अतिरिक्त ऑप्टिमाइज़ेशन. (I3e08d)
  • मिलते-जुलते नोड ढूंढने के लिए, अप/डाउन मॉडिफ़ायर ट्री को ट्रैवर्स करने की क्षमता जोड़ता है. (I2d234)
  • focusRestorer() मॉडिफ़ायर (Ie1d43) में onRestoreFailed() कॉलबैक जोड़ा गया
  • ColorInt, FloatRange, IntRange, Size वगैरह को साफ़ तौर पर बताने के लिए, अलग-अलग ग्राफ़िक एपीआई में androidx एनोटेशन जोड़े गए. (Id65c8, b/290950582)
  • showSystemUi=true को PreviewScreenSizes की परिभाषा में जोड़ें (Ib61d3)

व्यवहार में बदलाव

  • Compose में टेक्स्ट को आसानी से पढ़ने लायक बनाने और सुलभता के लिए, अब नॉन-लीनियर फ़ॉन्ट स्केलिंग का इस्तेमाल किया जाता है. जब फ़ॉन्ट स्केल > सिस्टम सेटिंग में 100%, छोटे टेक्स्ट का साइज़ सामान्य रूप से बढ़ जाएगा, लेकिन पहले से बड़ा टेक्स्ट थोड़ा ही बड़ा होगा. साथ ही, SP में तय की गई लाइन की ऊंचाई, 100% स्केल के मुताबिक तय की गई ऊंचाई के अनुपात में अपने-आप अडजस्ट हो जाएगी. ज़्यादा जानकारी के लिए, फ़ॉन्ट स्केलिंग के सबसे सही तरीके देखें. (I11518)

वर्शन 1.6.0-alpha05

6 सितंबर, 2023

androidx.compose.ui:ui-*:1.6.0-alpha05 रिलीज़ हो गया है. वर्शन 1.6.0-alpha05 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • AndroidComposeViewAccessibilityDelegateCompat में कॉन्टेंट कैप्चर करने की सुविधा चालू करें. (Ib2969)
  • ScrollView और RecyclerView जैसे व्यू कॉम्पोनेंट में फ़्लिंग की रफ़्तार ViewConfiguration.ScaledMaximumFlingVelocity तक सीमित है. Compose में अब maximumFlingVelocity का अपना वर्शन शामिल है. यह अब Draggable पर लागू होता है. (Ibf974)
  • प्लैटफ़ॉर्म 'खींचें और छोड़ें' एपीआई के साथ काम करने के लिए शुरुआती मचान जोड़ता है. (If84ce)
  • deviceId को RotaryScrollEvent (Iba3bf) में जोड़ें
  • नए डिवाइसों को शामिल करने के लिए, ui-tooling Devices API को अपडेट किया गया (Ib25b4)

वर्शन 1.6.0-alpha04

23 अगस्त, 2023

androidx.compose.ui:ui-*:1.6.0-alpha04 रिलीज़ हो गया है. वर्शन 1.6.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • ReusableComposition को बंद करने का तरीका जोड़ा गया. साथ ही, निगरानी करने की सुविधा को हटाया जा चुका है, लेकिन नोड एक ही जगह पर बने हुए हैं. बंद की गई कंपोज़िशन को फिर से setContent पर कॉल करके चालू किया जा सकता है. (Ib7f31)
  • सबकंपोज़िशन के लाइफ़साइकल और फिर से इस्तेमाल करने के तरीके को मैनेज करने के लिए, ReusableComposition इंटरफ़ेस जोड़ें. (I812d1, b/252846775)
  • Modifier.focusGroup को स्थिर एपीआई में अपग्रेड किया गया है. (I7ffa3)
  • ColorInt, FloatRange, IntRange, Size वगैरह को साफ़ तौर पर बताने के लिए, अलग-अलग ग्राफ़िक एपीआई में androidx एनोटेशन जोड़े गए. (I70487, b/290950582)
  • ColorFilter एपीआई को अपडेट किया गया, ताकि पैरामीटर की जांच बेहतर तरीके से की जा सके. इसके लिए, उसमें कंक्रीट सब-क्लास टाइप शामिल किए गए हैं. (I5fe29)
  • पहने जाने वाले उन डिवाइसों की सूची बनाने के लिए, Wear-tooling-preview लाइब्रेरी लॉन्च करें जिन्हें यूज़र इंटरफ़ेस (यूआई) की झलक के लिए इस्तेमाल किया जा सकता है (Ib036e)
  • डेंसिटी इंटरफ़ेस के फ़ॉन्ट स्केलिंग वाले हिस्से को मैनेज करने के लिए, FontScalable इंटरफ़ेस बनाया गया. (I2cf3f)

वर्शन 1.6.0-alpha03

9 अगस्त, 2023

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

एपीआई में किए गए बदलाव

  • एंट्री या एग्ज़िट का नया तरीका, जो कॉन्टेंट में ऑब्जेक्ट के अंदर और बाहर जाने पर, ऐनिमेशन कंटेनर के साइज़ के आधार पर कॉन्टेंट को स्केल करता है ऐनिमेशन बंद करें. LookaheadScope आसानी से मैनेज और छोटे किए जा सकने वाले इंटरफ़ेस पर, अब आसानी से स्विच किया जा सकता है. (Ifb2ce)
  • privateImeOptions को कॉन्फ़िगर करने के लिए अतिरिक्त सहायता (Idb772)

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

  • कैलकुलेशन में स्टेटस 'रीड' होने पर PopupPositionProvider.calculatePosition, पॉप-अप की पोज़िशन अपने-आप अपडेट कर देगा. (I676a1, b/292257547)
  • कीबोर्ड को दिखाने वाले और readOnly के सही होने पर बदलाव किए जा सकने वाले टेक्स्ट फ़ील्ड को ठीक किया गया. साथ ही, यह नीति ठीक की गई है कि फ़ोकस करने के दौरान, readOnly को 'सही' से 'गलत' में बदलने पर, कीबोर्ड न दिखे. (I34a19, b/246909589)
  • यूज़र इंटरफ़ेस (यूआई) टेस्टिंग में वैश्विक दावों को लागू करने की सुविधा का दायरा बढ़ाया गया. (I1f90d)

वर्शन 1.6.0-alpha02

26 जुलाई, 2023

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

एपीआई में किए गए बदलाव

  • एक सर्विस लोकेटर इंटरफ़ेस जोड़ा गया, जिसे कंपोज़िशन लागू करने वाले लोग लागू कर सकते हैं. यह कंपोज़िशन को लागू करने की अनुमति देता है, जो किसी दूसरे कंपोज़िशन डेलिगेट सेवा लुकअप को मूल कंपोज़िशन पर डेलिगेट करता है. इसे Directy नहीं कहा जाना चाहिए. साथ ही, इसका इस्तेमाल रनटाइम में एक्सपेरिमेंटल एपीआई बनाने के लिए किया जाता है, जो कंपोज़र के रैप किए गए वर्शन से मिल सकते हैं, जैसे कि यूज़र इंटरफ़ेस (यूआई) मॉड्यूल. (I296b9)
  • पूरी तरह से दोबारा डिज़ाइन किया गया PlatformTextInput* एपीआई. (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController और LocalSoftwareKeyboardController अब प्रयोग के तौर पर नहीं हैं. LocalSoftwareKeyboardController भी अब एक सही CompositionLocal है. (I4c364)
  • कुछ रिलीज़ के लिए LookaheadLayout और LookaheadLayoutScope के इस्तेमाल पर रोक लगा दी गई है और अब उन्हें हटा दिया गया है. रीप्लेसमेंट एपीआई LookaheadScope हैं, जो किसी भी लेआउट के साथ काम कर सकते हैं. (I12ac3)
  • जांचों में फ़ोकस का अनुरोध करने के लिए, SemanticsNodeInteraction.requestFocus को ज़्यादा आसान और खोजे जाने वाले तरीके के तौर पर जोड़ा गया. (Ie8722)
  • दुनिया भर में किए गए दावों को रजिस्टर करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध एपीआई जोड़ें, ताकि आने वाले समय में फ़्रेमवर्क को टेस्ट किया जा सके. (I12d77)

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

  • AndroidView के update कॉलबैक का पहला ट्रिगर, व्यू अटैच होने तक टाला जाएगा. यह AndroidView से जुड़ी कंपोज़िशन के लागू होने पर नहीं चलेगा. इससे वह गड़बड़ी ठीक हो जाती है जिसमें किसी इफ़ेक्ट की वजह से, पढ़े जाने वाली स्थिति को तुरंत बदल देने पर, update कॉलबैक को अमान्य नहीं माना जाता. (Ie9438, b/291094055)

वर्शन 1.6.0-alpha01

21 जून, 2023

androidx.compose.ui:ui-*:1.6.0-alpha01 रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये कमियां हैं.

नई सुविधाएं

  • LazyList में लीडर की जानकारी दें. इसकी मदद से, पहले से मौजूद पास में LazyList को किसी भी ऐनिमेशन (जैसे कि आइटम प्लेसमेंट का ऐनिमेशन, AnimatedVisibility वगैरह) को बायपास करने की अनुमति मिलती है. साथ ही, सभी बच्चों के लिए, आगे के साइज़ और पोज़िशन का हिसाब लगाने में भी मदद मिलती है. लुकआउट पास के बाद, LazyList के बच्चे असलियत के हिसाब से अपने-आप ऐनिमेशन कर सकते हैं, जैसा कि पहले ही पास में दिखाया गया था.

व्यवहार में बदलाव: इसमें शामिल करेंFontPadding अब 'लिखें' सेक्शन में डिफ़ॉल्ट रूप से गलत दिख रहा है

Compose में अब includeFontPadding डिफ़ॉल्ट रूप से (21d806) गलत है.

includeFontPadding, एक लेगसी एट्रिब्यूट है. इससे यह कंट्रोल किया जाता है कि टेक्स्ट की पहली और आखिरी लाइन के ऊपर अतिरिक्त पैडिंग (जगह) शामिल की जाए या नहीं, ताकि टेक्स्ट बेसलाइन के ऊपर या नीचे बड़े हो सकने वाले किसी भी वर्ण को शामिल किया जा सके.

लिखने के इस वर्शन को अपडेट करने से आपके यूज़र इंटरफ़ेस (यूआई) में सभी टेक्स्ट के रेंडर होने का तरीका बदल जाएगा. ऐसा करने पर, दिखाए जाने वाले हर टेक्स्ट की पहली लाइन और आखिरी लाइन के सबसे ऊपर मौजूद अतिरिक्त पैडिंग (जगह) को हटा दिया जाएगा.

आपके यूज़र इंटरफ़ेस (यूआई) की ज़रूरी शर्तों और इस्तेमाल की जा रही फ़ॉन्ट मेट्रिक के हिसाब से, बदलाव कम से कम होने चाहिए. हालांकि, आपको इस तरह की रुकावटें आ सकती हैं: - स्क्रीनशॉट की जांच में गड़बड़ी हुई है. अगर ज़रूरी हो, तो यूज़र इंटरफ़ेस (यूआई) को ठीक करें और गोल्डन इमेज फिर से जनरेट करें. - टेक्स्ट थोड़ा अलग है. अगर ज़रूरी हो, तो कस्टम नेगेटिव पैडिंग (जगह) हटाएं या पैडिंग (जगह) जोड़ें.

हर टेक्स्ट के लिए PlatformTextStyle का इस्तेमाल करके, includeFontPadding के लिए ऑप्ट-इन किया जा सकता है:

Text(
 text = myText,
 style = TextStyle(
   lineHeight = 2.5.em,
   platformStyle = PlatformTextStyle(
     includeFontPadding = true/false
   )
   /* … */
  )
)

मटीरियल स्टाइल कॉन्फ़िगर करके, अपने सभी टेक्स्ट के लिए includeFontPadding में ऑप्ट-इन किया जा सकता है. ध्यान दें कि M2 और M3 के बीच पैरामीटर के नाम अलग-अलग होंगे.

val Typography = Typography(
   body1 = TextStyle(
       fontFamily =    /* … */,
       fontSize =    /* … */,
       platformStyle = PlatformTextStyle(
           includeFontPadding = false
       )
   /* … */
   )
)

MaterialTheme(
   typography = Typography,
   /* … */
)

आपको डेवलपर दस्तावेज़ और इस ब्लॉग पोस्ट में, कंपोज़ includeFontPadding के बारे में ज़्यादा जानकारी मिल सकती है.

अगर इस बदलाव की वजह से आपको कोई समस्या या गड़बड़ी मिलती है, तो समस्या को ट्रैक करने वाले टूल का इस्तेमाल करके, गड़बड़ी की शिकायत करें.

एपीआई में किए गए बदलाव

  • सहायता करें InputConnection#requestCursorUpdates (I0c69b)
  • FocusRequester.saveFocusedChild और FocusRequester.restoreFocusedChild (Ic557e, b/272302679, b/275157318) को जोड़ा गया
  • लोड न हो पाने वाले ऐसेट पाथ की जानकारी के साथ बिटमैप ऐसेट को लोड करते समय, थ्रॉएबल थ्रेशोल्ड को रैप करने के लिए ResourceResolutionException टाइप जोड़ें. (I19f44, b/230166331, b/278424788)
  • परफ़ॉर्मेंस और मेमोरी के बंटवारे के लिए, बेहतर सुलभता सुविधाएं. (Iede48)
  • टेक्स्ट का अनुवाद करने में मदद करने के लिए, सिमेंटिक्स प्रॉपर्टी और कार्रवाइयां जोड़ी गईं. (I4a6bc)
  • IntrinsincMeasureScope और इसके लागू करने के तरीके (जैसे, MeasureScope) की नई प्रॉपर्टी से पता चलता है कि मौजूदा मेज़रमेंट पास, लुकअहेड पास है या नहीं. (I7a812)
  • रेंडरिंग को अन्य कैनवस पर फिर से टारगेट करने की सुविधा के बारे में बताने के लिए, DrawScope एपीआई अपडेट किया गया. इसमें, वैकल्पिक डेंसिटी/लेआउट डायरेक्शन और साइज़ की सुविधा शामिल है.
  • DrawContext को अपडेट किया गया, ताकि डेंसिटी और लेआउट की दिशा के कॉन्फ़िगरेशन के साथ-साथ कैनवस को कॉन्फ़िगर किया जा सके. (Ie1f9b, b/225408150)
  • वर्ण सीमा वाले बॉक्स की गिनती करने के लिए Paragraph#fillBoundingBoxes को जोड़ा गया. (If30ee)
  • कॉमन MultiPreviews (Ia5a27) का सेट जोड़ा गया

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

  • FocusTargetModifierNode इंटरफ़ेस जोड़ा गया, जिसका इस्तेमाल पसंद के मुताबिक FocusTarget बनाने के लिए किया जा सकता है. (I9790e)
  • TextMeasurer कंस्ट्रक्टर पर, fallback* पैरामीटर का नाम बदलकर default* किया गया. (I940a5)
  • SemanticsPropertyReceiver.performImeAction का नाम बदलकर onImeAction और SemanticsActions.PerformImeAction का नाम बदलकर OnImeAction किया. (I8e841)
  • नेस्ट की गई स्क्रोलिंग में माउस स्क्रोल को खींचने से अलग करने के लिए व्हील जोड़ता है (खास तौर पर, NestedScrollConnection में). (Ie57e4)
  • toComposePaint को बदलने के लिए, asComposePaint एपीआई जोड़ा गया, क्योंकि लौटाया गया ऑब्जेक्ट ओरिजनल android.graphics.Paint (I22b4c) को रैप करता है
  • SemanticsProperties.imeAction का इस्तेमाल बंद करें और SemanticsActions.performImeAction पैरामीटर से बदलें. (I4a587)
  • माउस से चुनने के लिए जोड़ी गई सुविधा. टच पर आधारित चुने गए हिस्से का दायरा, शब्द के हिसाब से बड़ा होगा और वर्ण के हिसाब से इसका साइज़ छोटा होगा. (Ic0c6c, b/180639271)
  • सीमा से बाहर के ऑफ़सेट के लिए AssertionError को थ्रो करने के लिए इस्तेमाल किए जाने वाले Paragraph तरीके अब IllegalArgumentException को MultiParagraph की तरह थ्रॉ करते हैं. (I549d3, b/243338896)

संस्‍करण 1.5

वर्शन 1.5.4

18 अक्टूबर, 2023

androidx.compose.ui:ui-*:1.5.4 रिलीज़ हो गया है. वर्शन 1.5.4 में ये कमिट हैं.

वर्शन 1.5.3

4 अक्टूबर, 2023

androidx.compose.ui:ui-*:1.5.3 रिलीज़ हो गया है. वर्शन 1.5.3 में ये कमियां शामिल हैं.

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

  • (b/301209788) TextField कभी-कभी कोरियन इनपुट पर फ़ोकस और इनपुट देते समय, पिछले निर्देशों को गलत तरीके से लागू कर सकता है. इससे, वर्ण गायब हो सकते हैं.

संस्‍करण 1.5.2

27 सितंबर, 2023

androidx.compose.ui:ui-*:1.5.2 रिलीज़ हो गया है. वर्शन 1.5.2 में ये कमियां शामिल हैं.

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

  • सुलभता स्क्रोल एपीआई को बैकग्राउंड थ्रेड से ऐक्सेस किए जाने पर, क्रैश होने की समस्या के लिए समाधान जोड़ा गया.
  • सिमैंटिक ट्री में जोड़े जा रहे ऐसे नोड ठीक करें जो अटैच नहीं हैं.

संस्‍करण 1.5.1

6 सितंबर, 2023

androidx.compose.ui:ui-*:1.5.1 रिलीज़ हो गया है. वर्शन 1.5.1 में ये कमियां शामिल हैं.

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

  • कीबोर्ड को दिखाने वाले और readOnly के सही होने पर बदलाव किए जा सकने वाले टेक्स्ट फ़ील्ड को ठीक किया गया. साथ ही, यह नीति ठीक की गई है कि फ़ोकस करने के दौरान, readOnly को 'सही' से 'गलत' में बदलने पर, कीबोर्ड न दिखे. (I34a19, b/246909589)

वर्शन 1.5.0

9 अगस्त, 2023

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

वर्शन 1.5.0-rc01

26 जुलाई, 2023

androidx.compose.ui:ui-*:1.5.0-rc01 रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये कमिट शामिल हैं.

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

  • movableContentOf() में SubcomposeLayout का इस्तेमाल किए जाने पर, क्रैश होने की समस्या को ठीक कर दिया गया है.

वर्शन 1.5.0-beta03

28 जून, 2023

androidx.compose.ui:ui-*:1.5.0-beta03 रिलीज़ हो गया है. वर्शन 1.5.0-beta03 में ये कमिट हैं.

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

  • FocusTargetModifierNode इंटरफ़ेस जोड़ा गया है. इसका इस्तेमाल करके, कस्टम FocusTarget बनाया जा सकता है. (Ifb1d6)
  • डायलॉग और पॉप-अप कंपोज़ेबल में आने वाली समस्या को ठीक कर दिया गया है. इसकी वजह से, usePlatformDefaultWidth=true के दौरान चाइल्ड विंडो का साइज़, उम्मीद के मुताबिक नहीं हो पा रहा था. (I112ee)

वर्शन 1.5.0-beta02

7 जून, 2023

androidx.compose.ui:ui-*:1.5.0-beta02 रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • android.graphics.Paint इंस्टेंस के इस्तेमाल की सुविधा चालू करने के लिए, asComposePaint एपीआई जोड़ा गया, ताकि उसे कंपोज़ में इस्तेमाल किया जा सके

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

  • toComposePaint को बदलने के लिए, asComposePaint एपीआई जोड़ा गया, क्योंकि लौटाया गया ऑब्जेक्ट ओरिजनल android.graphics.Paint (I22b4c) को रैप करता है

वर्शन 1.5.0-beta01

24 मई, 2023

androidx.compose.ui:ui-*:1.5.0-beta01 रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • फिर से कंपोज़िशन, कलर ऐनिमेशन, और AndroidComposeView (Ib2bfa) के लिए ऐलोकेशन को हटाया गया
  • ऐक्सेस देने की अनुमति देने के लिए, हेल्पर मज़ेदार CacheDrawModifierNode() (Icf8f9) को जोड़ें
  • पेश है isLookingAhead प्रॉपर्टी. इसे MeasureScope से ऐक्सेस किया जा सकता है. इससे आगे के नतीजों पर नज़र रखी जा सकती है और मुख्य पास पर असर पड़ सकता है. (Ibf4c3)
  • नई सिमैंटिक प्रॉपर्टी traversalIndex, एक फ़्लोट जिसका इस्तेमाल TalkBack ट्रेवर्सल में नोड को फिर से क्रम में लगाने के लिए किया जाता है (कम वैल्यू पहले आती हैं). (I9a81b, b/186443263)
  • सिमैंटिक प्रॉपर्टी का नाम isContainer से isTraversalGroup किया जा रहा है (I121f6)
  • ColorProducer के पास अब produce (I4a9a2) के बजाय operator fun invoke है
  • पाथ ऑब्जेक्ट पर अनुवाद/स्केल/घुमाव के ट्रांसफ़ॉर्मेशन लागू करने के लिए, Path ट्रांसफ़ॉर्म एपीआई जोड़ें. (I23434, b/233772232)
  • ColorProducer का तरीका produce कहलाता है. (I78bde)
  • toFrameworkColorSpace का नाम बदलकर toAndroidColorSpace करें (I4f547)
  • ColorLambda का नाम बदलकर ColorProducer करें. (I73b1a)
  • Android और Compose के कलरस्पेस टाइप को आपस में बदलने के लिए, एपीआई उपलब्ध कराएं. (Ie7db4, b/279979665)
  • BasicText में रंग का पैरामीटर जोड़ा गया है, ताकि टेक्स्ट के रंग को बेहतर तरीके से ऐनिमेट या सेट किया जा सके. (Iffd88, b/246961787)
  • TextRange.constrain का नाम बदलकर TextRange.coerceIn किया गया. (I31be2)
  • पूरे पैरामीटर सूची के साथ ऑप्टिमाइज़ की गई TextStyle.merge(...) को जोड़ा गया. (Iad234, b/246961787)
  • कई टेक्स्ट एपीआई को स्थिर किया गया, जिनमें Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) शामिल हैं. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding अब सेवा में नहीं है. हमारा मूल मकसद इस फ़ील्ड को हटाना था. हालांकि, सुझाव से पता चलता है कि डेवलपर को इस कॉन्फ़िगरेशन विकल्प की ज़रूरत है. इसलिए, फ़ील्ड से इस्तेमाल को हटाए जाने (I98e96, b/277703184) को हटाना
  • सार्वजनिक TextRange.constrain तरीका जोड़ा गया. (I97912)
  • AnnotatedString में मौजूद UrlAnnotation को अब TalkBack जैसी सुलभता सेवाओं के ज़रिए खोला जा सकता है. (If4d82, b/253292081)
  • टेक्स्ट फ़ील्ड के लिए InsertTextAtCursor सिमेंटिक्स कार्रवाई जोड़ी गई. (I11ed5)
  • LineHeightStyle.Alignment(topRatio) कंस्ट्रक्टर को, स्टेबल एपीआई पर अपग्रेड किया गया है. (I79c32, b/261565383)
  • TextMeasurer और उससे जुड़े एपीआई अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (I74647, b/261581753)
  • टेक्स्ट एडिटर नोड पर IME कार्रवाई शुरू करने के लिए, PerformImeAction सिमेंटिक्स कार्रवाई जोड़ी गई. (Ic606f, b/269633506)
  • Android के लिए, अब PlatformTextInput के एपीआई एक्सपेरिमेंट के तौर पर उपलब्ध नहीं हैं. (I668eb)
  • Enum.valueOf के लिए मान पैरामीटर का नाम बदला गया (Ia9b89)
  • enum valueOf (I818fe) से ज़्यादा निकाले गए अपवाद
  • प्लैटफ़ॉर्म एपीआई से सीधे तौर पर बात करने वाले कस्टम टेक्स्ट इनपुट को लागू करने के लिए, निचले लेवल के नए PlatformTextInputAdapter एपीआई की शुरुआत की गई. (I58df4)
  • कैनवस पर टेक्स्ट बनाते समय, ब्लेंड करने के अलग-अलग एल्गोरिदम के साथ काम करने के लिए, DrawScope.drawText, Paragraph.paint, और MultiParagraph.paint के तरीकों में BlendMode पैरामीटर जोड़ा गया. (I57508)
  • Font.MaximumAsyncTimeout का नाम बदलकर Font.MaximumAsyncTimeoutMillis करें. सिर्फ़ नाम बदलें. (I07af5)
  • @Preview रेफ़रंस डिवाइस की डीपीआई वैल्यू अपडेट की गई (Id6151, b/254528382)
  • बेहतर तरीके से ऐनिमेट या टेक्स्ट ब्रश सेट करने के लिए, brush, alpha पैरामीटर को BasicText में जोड़ें.
  • :ui:ui-unit (I6f18d, b/246961787) में, फ़्लोट, डबल, लॉन्ग, Int, Short के लिए बॉक्स-फ़्री लैम्डा टाइप तय करें

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

  • पॉइंटर वेलोसिटी ट्रैकिंग में एक से ज़्यादा ऐलोकेशन हटाई गईं (I26bae)
  • लेआउट और पॉइंटर इनपुट मैनेजमेंट में कम डेटा खर्च (I5333a)
  • वेक्टर मेमोरी के इस्तेमाल और फ़र्स्ट-फ़्रेम रेंडरिंग को ऑप्टिमाइज़ करें (I2f3c6)
  • कैनवस (I9f535) की मदद से लाइन और पॉइंट बनाते समय, असाइन किए गए सेगमेंट हटाए गए
  • AndroidFont.fontVariationSettings (I7d9e2) के लिए दस्तावेज़ जोड़ें

बाहरी योगदान

  • बेहतर परफ़ॉर्मेंस और वेक्टर एपीआई में एलोकेशन कम करना (I906cb)

वर्शन 1.5.0-alpha04

10 मई, 2023

androidx.compose.ui:ui-*:1.5.0-alpha04 रिलीज़ हो गया है. वर्शन 1.5.0-alpha04 में ये कमियां हैं.

नई सुविधाएं

  • Modifier.Node सौंपे जाने की प्रक्रिया में सुधार DelegatingNode से, अन्य Modifier.Node इंस्टेंस को ऐक्सेस देने की बेहतर सुविधा जोड़ी गई. यह कार्रवाई, delegate और undelegate एपीआई का इस्तेमाल करके की जा सकती है. इस बदलाव से पहले, डेलिगेट किए गए नोड के हर एपीआई को साफ़ तौर पर डेलिगेट किए गए नोड को सौंपना ज़रूरी होता था. इस बदलाव के बाद, जब तक DelegatingNode साफ़ तौर पर उनकी जगह नहीं लेता, तब तक नोड इंटरफ़ेस को सीधे तौर पर डेलिगेट नहीं किया जाएगा. (67352बीसी)

एपीआई में किए गए बदलाव

  • NestedScrollModifierNode के बारे में बताएं. यह एक NestedScroll Modifier.Node है, जिसका ऐक्सेस दिया जा सकता है. (I69513)
  • AndroidViewBinding कंपोज़ेबल में onReset और onRelease पैरामीटर जोड़े गए. साथ ही, AndroidView कंपोज़ेबल का डुप्लीकेट वर्शन बनाया गया और ViewBinding के साथ व्यू का दोबारा इस्तेमाल करने की सुविधा चालू की गई. (I00b1e, b/276802519)
  • कंपोज़ पाथ एपीआई को अपडेट किया गया, ताकि पाथ में तेज़ी से बदलाव किए जा सके और पाथ में बार-बार बदलाव किए जा सकें. इसके लिए, रिवाइंड करने की सुविधाओं का इस्तेमाल किया जा सके. (I7b797)
  • पूरे पैरामीटर सूची के साथ ऑप्टिमाइज़ की गई TextStyle.merge(...) को जोड़ा गया. (Iad234, b/246961787)
  • कई टेक्स्ट एपीआई को स्थिर किया गया, जिनमें Brush, DrawStyle, TextMotion, DrawScope.drawText, Paragraph.paint(Brush), MultiParagraph.paint(Brush) शामिल हैं. (I2f740, b/261581564, b/261581931, b/261561245)
  • PlatformTextStyle.includeFontPadding अब सेवा में नहीं है. हमारा मूल मकसद इस फ़ील्ड को हटाना था. हालांकि, सुझाव से पता चलता है कि डेवलपर को इस कॉन्फ़िगरेशन विकल्प की ज़रूरत है. इसलिए, फ़ील्ड से इस्तेमाल को हटाए जाने (I98e96, b/277703184) को हटाना

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

  • ऐसे डायलॉग बॉक्स में टेक्स्ट फ़ील्ड के लिए कीबोर्ड नहीं दिखाया जा रहा था जिन्हें Dialog कंपोज़ेबल ने नहीं बनाया है. इस रिग्रेशन की समस्या को ठीक कर दिया जाता है. (I82551, b/262140644)

वर्शन 1.5.0-alpha03

19 अप्रैल, 2023

androidx.compose.ui:ui-*:1.5.0-alpha03 रिलीज़ हो गया है. वर्शन 1.5.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • LookaheadScope में SubcomposeLayout के लिए नया डिफ़ॉल्ट व्यवहार: SubcomposeLayouts जिनमें कंडिशनल स्लॉट (जैसे कि TabRow, Scaffold, BoxWithConstraints वगैरह) नहीं होते, वे अब सामने वाले ऐनिमेशन के साथ अच्छे से काम करते हैं.

एपीआई में किए गए बदलाव

  • लुकअहेड पास की माप की नीति का फिर से इस्तेमाल करने वाले नए डिफ़ॉल्ट intermediateMeasurePolicy की मदद से, Scaffold, TabRow, और BoxWithConstraints जैसे कंडिशनल स्लॉट के बिना SubcomposeLayout सब-टाइप डिफ़ॉल्ट रूप से लुकहेड के साथ काम कर सकते हैं. (Id84c8)
  • Android विंडो के लिए बनाया गया रीकंपोज़र, अब ON_STOP सूचना मिलने पर सभी कंपोज़िशन के बजाय सिर्फ़ withFrameNanos को किए जाने वाले कॉल को ब्लॉक करेगा. इसका मतलब है कि जिन गतिविधियों को रोका गया है उनसे जुड़ी विंडो, डेटा में बदलाव करने के लिए फिर से काम करती रहेंगी. हालांकि, withFrameNanos का ऐनिमेशन या अन्य कॉलर, इन्हें ब्लॉक कर देंगे. (Id9e7f, b/240975572)
  • यह motionEventSpy को बदलकर, स्टेबल चैनल के तौर पर सेट करता है. (Ic5ec4, b/261560988)
  • सार्वजनिक TextRange.constrain तरीका जोड़ा गया. (I97912)
  • PlatformTextStyle.includeFontPadding को अब बंद नहीं किया गया है. अब डेवलपर को इस बात के लिए बढ़ावा दिया जाएगा कि वे includeFontPadding false को स्विच और टेस्ट करने के लिए इस एपीआई का इस्तेमाल करें. (I98e96, b/277703184)

वर्शन 1.5.0-alpha02

5 अप्रैल, 2023

androidx.compose.ui:ui-*:1.5.0-alpha02 रिलीज़ हो गया है. वर्शन 1.5.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • नया SubcomposeLayout एपीआई, जो लुक-अप पर आधारित ऐनिमेशन के दौरान मेज़र/लेआउट लॉजिक को हैंडल करने के लिए, इंटरमीडिएट मेज़र की एक अतिरिक्त नीति का इस्तेमाल करता है. (I017d3)
  • Pointerइनपुट अब लेज़ी है और बेहतर परफ़ॉर्मेंस के लिए Modifier.Node का इस्तेमाल करता है (व्यवहार में होने वाले मामूली बदलाव के बारे में पढ़ें). (15dab9)
  • यह एक्सपेरिमेंटल एपीआई को मुख्य इवेंट के साथ स्थिर में बदल देता है. (I9c7d8, b/261566839, b/261567368)
  • यह एक्सपेरिमेंटल एपीआई को PointerInputChange में स्थिर में बदल देता है. (I1b543, b/261560988, b/261565762, b/261565749)
  • यह नीति ज़्यादा जटिल Modifier.Node को लागू करने के लिए, SuspendingPointerInputModifierNode को इंस्टैंशिएट करने का तरीका जोड़ती है. (Ic4933)
  • AnnotatedString में मौजूद UrlAnnotation को अब TalkBack जैसी सुलभता सेवाओं के ज़रिए खोला जा सकता है. (If4d82, b/253292081)
  • सॉफ़्ट कीबोर्ड (I4f4c6, b/186800395) पर भेजे जाने से पहले, हार्डवेयर कुंजियों को इंटरसेप्ट करने के लिए एक एपीआई जोड़ा गया है
  • टेक्स्ट फ़ील्ड के लिए InsertTextAtCursor सिमेंटिक्स कार्रवाई जोड़ी गई. (I11ed5)
  • टेक्स्ट से जुड़ी जांच कार्रवाइयों (जैसे कि performTextInput) में अब फ़ील्ड पर क्लिक करने के बजाय, सीधे तौर पर फ़ोकस करने के लिए, सिमेंटिक्स कार्रवाई का इस्तेमाल किया जाएगा. (I6ed05)

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

  • टेक्स्ट की जांच करने के लिए, अब टेक्स्ट फ़ील्ड चालू करना ज़रूरी है. (Iab328)

वर्शन 1.5.0-alpha01

22 मार्च, 2023

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

एपीआई में किए गए बदलाव

  • अब Modifier.intermediateLayout को साफ़ तौर पर LookaheadScope की ज़रूरत नहीं है. इंटरमीडिएट लेआउट में मेज़र ब्लॉक में, रिसीवर के तौर पर IntermediatemeasureScope होता है. यह इस्तेमाल करने के लिए, कोoutineScope, LookaheadScope, और MeasurementScope की सुविधा के तौर पर इस्तेमाल करता है.(Ibe2e5)
  • LookaheadLayout को LookaheadScope से बदल दिया गया है, जो अब लेआउट नहीं है. इससे LookaheadScope में चिड के कॉन्टेंट को सीधे तौर पर, पैरंट की MeasurementPolicy से कंट्रोल किया जा सकता है. (Ibe2e5)
  • यह Modifier.Node#coroutineScope को जोड़ता है, ताकि Modifier.Nodes को कोरूटीन लॉन्च करने की अनुमति मिल सके. (I76ef9)
  • ComposeLocal ConsumerModifierNode इंटरफ़ेस को लागू करके Modifier.Nodes को कंपोज़िशनLocals पढ़ने की अनुमति दें. (Ib44df)
  • @Include क्लास को प्रॉपर्टी में लागू करना. (I882d1)

वर्शन 1.4

वर्शन 1.4.3

3 मई, 2023

androidx.compose.ui:ui-*:1.4.3 रिलीज़ हो गया है. वर्शन 1.4.3 में ये कमिट हैं.

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

  • उस समस्या को ठीक किया गया है जिसकी वजह से, कुछ मॉडिफ़ायर के साथ इस्तेमाल करने पर, AndroidView शायद सही तरीके से लेआउट नहीं कर रहा था. (I4dc77, b/274797771)
  • 2D फ़ोकस खोज में DropDown मेन्यू (b/276811828) पर असर डालने वाली गड़बड़ी को ठीक किया गया
  • कस्टम फ़ोकस एंटर/एग्ज़िट प्रॉपर्टी में हुई गड़बड़ी को ठीक कर दिया गया है, क्योंकि पहली बार लैम्डा को पहली बार शुरू करने पर ही Enter/निकास ब्लॉक चलाया गया था (b/277234245)
  • फ़ोकस सिस्टम में रिग्रेशन की समस्या को ठीक किया गया, जिसकी वजह से focusProperties को पढ़ते समय क्रैश हुआ था. (b/271324781, b/274897776)

वर्शन 1.4.2

19 अप्रैल, 2023

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

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

  • उस समस्या को ठीक किया गया है जहां AndroidView अपने मॉडिफ़ायर का सही तरीके से फिर से इस्तेमाल नहीं करता है. इस वजह से, ऐप्लिकेशन क्रैश होने की समस्या हो सकती है और यह गड़बड़ी हो सकती है. (Ib67ee, b/275919849)
  • फ़िक्स्ड रिग्रेशन, जहां Dialog कंपोज़ेबल (I82551, b/262140644) से नहीं बनाए गए डायलॉग में टेक्स्ट फ़ील्ड के लिए कीबोर्ड नहीं दिख रहा था

वर्शन 1.4.1

5 अप्रैल, 2023

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

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

  • ParentDataModifier की उस समस्या को हल करती है जिसका असर AndroidView पर नहीं पड़ता (b/274797771)

वर्शन 1.4.0

22 मार्च, 2023

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

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

  • एक नया PinnableContainer एपीआई जोड़ा गया, जो लेज़ी लिस्ट आइटम को पिन करने की अनुमति देता है, ताकि सीमा से बाहर स्क्रोल करने पर वे न मिटें. उदाहरण के लिए, Modifier.focusable() इस तरीके का इस्तेमाल करके, फ़ोकस किए गए मौजूदा आइटम को पिन करता है. (Ib8881, b/259274257, b/195049010)
  • नए प्रयोग वाले Modifier.Node APIs का इस्तेमाल करके, फ़ोकस सिस्टम को फिर से लिखा जाता है. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/19934, b/125184, b/125184)
  • Surfaces पर IsContainer सिमैंटिक प्रॉपर्टी में जोड़ा गया. इस प्रॉपर्टी का इस्तेमाल बाद के किसी बदलाव में किया जाएगा. यह बदलाव, सरफ़ेस जैसे एलिमेंट के मतलब के आधार पर ट्रैवर्सल ऑर्डर को तय करता है. (I63379)
  • सुलभता की नई भूमिका DropdownList जोड़ी गई. इसका इस्तेमाल, android.widget.Spinner पर फ़ोकस करने के दौरान TalkBack के काम करने के तरीके को दोहराने के लिए किया जा सकता है. (I177e5, b/236159001)
  • अब PlatformTextStyle(emojiSupportMatch) का इस्तेमाल करके, किसी एक पैराग्राफ़ के लिए इमोजी की सुविधा को प्रोसेस करने की सुविधा बंद की जा सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है. (Ia7100, b/139326806)
  • फ़्रेम को एक्ज़ीक्यूट करने पर, Android Compose के यूज़र इंटरफ़ेस (यूआई) की जांच अब हर फ़्रेम के लिए लेआउट पास चलाएंगी. उदाहरण के लिए, waitForIdle के ज़रिए. इसका असर उन जांचों पर पड़ सकता है जो लेआउट ऐनिमेशन के अलग-अलग फ़्रेम पर दावा करते हैं. (I8ea08, b/222093277)
  • टेक्स्ट को Static(default) या ऐनिमेटेड में तय करने के लिए, प्रयोग के तौर पर TextMotion को TextStyle में जोड़ा गया. अगर टेक्स्ट का साइज़ बढ़ाया जा रहा है, उसका अनुवाद किया जा रहा है या उसे ऐनिमेशन के ज़रिए घुमाया जा रहा है, तो TextMotion.Animated का इस्तेमाल करें. (I24dd7)

वर्शन 1.4.0-rc01

8 मार्च, 2023

androidx.compose.ui:ui-*:1.4.0-rc01 रिलीज़ हो गया है. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.

एपीआई में किए गए बदलाव

  • AndroidView कंपोज़ेबल फ़ंक्शन का ओवरलोड जोड़ा गया, जिसमें onReset पैरामीटर स्वीकार किए जाते हैं. इससे कंपोज़िशन में मौजूद नोड को खारिज करके, कंपोज़िशन के सही तरीके से फिर से इस्तेमाल करने पर व्यू इंस्टेंस को फिर से इस्तेमाल किया जा सकता है. यह खास तौर पर, LazyRows और LazyColumns व्यू के लिए काम का है. (I3f10d, b/230099236)
  • प्लैटफ़ॉर्म एपीआई से सीधे तौर पर बात करने वाले कस्टम टेक्स्ट इनपुट को लागू करने के लिए, निचले लेवल के नए PlatformTextInputAdapter एपीआई की शुरुआत की गई. (I58df4)

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

  • BasicTextField की SetText सिमैंटिक ऐक्शन, अब टेक्स्ट बफ़र को अपडेट करेगा. इसके लिए, IME अपडेट और टेस्टिंग फ़ंक्शन (जैसे, performTextReplacement) के कोड पाथ का ही इस्तेमाल किया जाएगा.
  • टेक्स्ट टेस्टिंग फ़ंक्शन performTextClearance, performTextReplacement, और performTextSelection अब SemanticsActions का इस्तेमाल करते हैं. (I0807d, b/269633168, b/269624358)

वर्शन 1.4.0-beta02

22 फ़रवरी, 2023

androidx.compose.ui:ui-*:1.4.0-beta02 रिलीज़ हो गया है. वर्शन 1.4.0-beta02 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • modifierElementOf() एपीआई हटाया गया. इसके बजाय, कृपया सीधे ModifierNodeElement से विस्तार करें. (I2256b)
  • एक नया Modifier.Node.onReset() कॉलबैक जोड़ा गया है. इससे, Layout को फिर से इस्तेमाल किए जाने पर (उदाहरण के लिए, LazyColumn के आइटम के तौर पर) मामले को सही तरीके से मैनेज करने के लिए, कुछ लोकल स्टेट को रीसेट किया जा सकता है. फ़ोकस की गई स्थिति को ठीक से रीसेट करने के लिए, FocusTargetModifierNode को ठीक किया गया. (I65495, b/265201972)
  • कैनवस पर टेक्स्ट बनाते समय, ब्लेंड करने के अलग-अलग एल्गोरिदम के साथ काम करने के लिए, DrawScope.drawText, Paragraph.paint, और MultiParagraph.paint के तरीकों में BlendMode पैरामीटर जोड़ा गया. (I57508)

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

  • सुलभता के फ़ोकस ऑर्डर के एल्गोरिदम में सुधार किया गया है. उदाहरण के लिए, सबसे ऊपर/सबसे नीचे वाले बार को अक्सर पहले या सबसे नीचे पढ़ा जाता है (74e9c5)

वर्शन 1.4.0-beta01

8 फ़रवरी, 2023

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

एपीआई में किए गए बदलाव

  • PinnableContainer.PinnedHandle.unpin() का नाम बदलकर release() (I4667a) कर दिया गया
  • waitUntilNodeCount, waitUntilAtLeastOneExists, waitUntilExactlyOneExists, और waitUntilDoesNotExist को प्रयोग के लिए एपीआई के तौर पर ComposeTestRule में जोड़ा गया. इससे, मैच करने वाले किसी भी उपयोगकर्ता और नोड की किसी भी संख्या को स्वीकार करने के लिए waitUntil एपीआई का दायरा बढ़ाया गया. ज़्यादा दस्तावेज़ के लिए, ComposeTestRule पर जाएं. (Ifa1b9, b/226934294)
  • Font.MaximumAsyncTimeout का नाम बदलकर Font.MaximumAsyncTimeoutMillis करें. (I07af5)
  • GoogleFont.Provider.AllFontsListUri को हटाया गया और इसे ktdoc में लिंक किया गया. (I16f29)

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

  • AndroidFont.fontVariationSettings (I7d9e2) के लिए दस्तावेज़ जोड़ें

वर्शन 1.4.0-alpha05

25 जनवरी, 2023

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

एपीआई में किए गए बदलाव

  • runComposeUiTest फ़ंक्शन और CoroutineContext पैरामीटर स्वीकार करने वाले create*ComposeRule फ़ंक्शन के लिए, नए एक्सपेरिमेंटल ओवरलोड दिखाए गए. संदर्भ का इस्तेमाल, टेस्ट कंपोज़िशन और उसमें मौजूद सभी LaunchedEffect और rememberCoroutineScope() कॉल के लिए किया जाएगा. (I10614, b/265177763)
  • 1 डाइमेंशन वाले वेलोसिटी (If5a82) को ट्रैक करने के लिए, नया एपीआई जोड़ें
  • FocusRequester को अब @Stable के तौर पर मार्क कर दिया गया है. (I580ee)
  • DialogProperties कंस्ट्रक्टर से, प्रयोग के तौर पर सेट की गई वह जानकारी हटाएं जो usePlatformDefaultWidth पैरामीटर लेता है. (Ic4048)
  • PathMeasure.getPosition() और PathMeasure.getTangent() (I3b47c) के साथ, पाथ पर दूरी पर कैलकुलेशन की पोज़िशन और टैंजेंट के लिए फ़ंक्शन जोड़ा गया
  • PlatformParagraphStyle पर गलती से सार्वजनिक सेटर निकाला गया. (I07f47)
  • इन-लाइन/छिपाए गए फ़ंक्शन के ज़्यादा टाइप/शून्य वैल्यू (I24f91)
  • बिना किसी बजट वाले एनोटेशन के लिए, क्वेरी में AnnotatedString.hasStringAnnotations जोड़ें. (I94dfe, b/246960758)
  • TextMeasurer.measure फ़ंक्शन के लिए नया ओवरलोड जोड़ा गया, जो String को टेक्स्ट के तौर पर लेता है. (I47b2d, b/242705342)
  • TextStyle में LineBreak और Hyphens एपीआई को स्थिर कर दिया गया है. (Ic1e1d)

बाहरी योगदान

  • TextInputSession और TextInputService में notifyFocusedRect तरीकों को फिर से बंद नहीं किया गया. (I23a04, b/262648050)

वर्शन 1.4.0-alpha04

11 जनवरी, 2023

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

नई सुविधाएं

  • एक नया PinnableContainer एपीआई जोड़ा गया, जो लेज़ी लिस्ट आइटम को पिन करने की अनुमति देता है, ताकि सीमा से बाहर स्क्रोल करने पर वे न मिटें. उदाहरण के लिए, Modifier.focusable() इस तरीके का इस्तेमाल करके, फ़ोकस किए गए मौजूदा आइटम को पिन करता है. (Ib8881, b/259274257, b/195049010)
  • नए प्रयोग वाले Modifier.Node APIs का इस्तेमाल करके, फ़ोकस सिस्टम को फिर से लिखा जाता है. (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/19934, b/125184, b/125184)
  • Surfaces पर IsContainer सिमैंटिक प्रॉपर्टी में जोड़ा गया. इस प्रॉपर्टी का इस्तेमाल बाद के किसी बदलाव में किया जाएगा. यह बदलाव, सरफ़ेस जैसे एलिमेंट के मतलब के आधार पर ट्रैवर्सल ऑर्डर को तय करता है. (I63379)
  • नई सुलभता भूमिका DropdownList जोड़ी गई. इसका इस्तेमाल android.widget.Spinner पर फ़ोकस करते समय TalkBack's के व्यवहार को कॉपी करने के लिए किया जा सकता है. (I177e5, b/236159001)
  • अब PlatformTextStyle(emojiSupportMatch) का इस्तेमाल करके, किसी एक पैराग्राफ़ के लिए इमोजी की सुविधा को प्रोसेस करने की सुविधा बंद की जा सकती है. हालांकि, ऐसा करना ज़रूरी नहीं है. (Ia7100, b/139326806)
  • फ़्रेम को एक्ज़ीक्यूट करने पर, Android Compose के यूज़र इंटरफ़ेस (यूआई) की जांच अब हर फ़्रेम के लिए लेआउट पास चलाएंगी. उदाहरण के लिए, waitForIdle के ज़रिए. इसका असर उन जांचों पर पड़ सकता है जो लेआउट ऐनिमेशन के अलग-अलग फ़्रेम पर दावा करते हैं. (I8ea08, b/222093277)
  • टेक्स्ट को Static(default) या ऐनिमेटेड में तय करने के लिए, प्रयोग के तौर पर TextMotion को TextStyle में जोड़ा गया. अगर टेक्स्ट का साइज़ बढ़ाया जा रहा है, उसका अनुवाद किया जा रहा है या उसे ऐनिमेशन के ज़रिए घुमाया जा रहा है, तो TextMotion.Animated का इस्तेमाल करें. (I24dd7)

एपीआई में किए गए बदलाव

  • drawText में maxSize: IntSize आर्ग्युमेंट को size: Size से बदला गया, ताकि DrawScope के अन्य फ़ंक्शन के साथ इनलाइन किया जा सके. size को डिफ़ॉल्ट रूप से Size.Unspecified पर सेट किया गया है. इसलिए, इससे पिछली डिफ़ॉल्ट सेटिंग में कोई बदलाव नहीं होना चाहिए. (Icd27d)
  • अब काम नहीं करने वाला फ़ॉन्ट कंस्ट्रक्टर हटाया गया. (I8a724, b/261435386)
  • यूज़र इंटरफ़ेस (यूआई) टूलिंग डेटा क्लास Group में अब isInline नाम का एक फ़ील्ड है. इससे पता चलता है कि इस ग्रुप को किसी इनलाइन कंपोज़ेबल फ़ंक्शन को कॉल करने के लिए भेजा गया है या नहीं. अगर isInline की वैल्यू true है, तो कॉल को इनलाइन कंपोज़ेबल फ़ंक्शन पर किया जाएगा. हालांकि, यह वैल्यू उन इनलाइन कंपोज़ेबल फ़ंक्शन के कॉल के लिए गलत हो सकती है जो ऐसे मॉड्यूल से हैं जिन्हें कंपोज़ कंपाइलर प्लगिन के वर्शन के साथ कंपाइल किया गया है और जो इनलाइन फ़ंक्शन की जानकारी जनरेट नहीं करते. (Idb846)
  • पहले के प्रयोग से जुड़े कई एपीआई को स्थिर में अपग्रेड किया
  • Rotary Scroll Event API अब स्थिर है (I42ad3, b/261561229)
  • FontVariation एपीआई अब बिना किसी रुकावट के काम कर रहा है (I8779f, b/241016309)
  • Font() के सभी कंस्ट्रक्टर, अब स्टेबल एपीआई (I5948b, b/261435386) हैं
  • DeviceFontFamilyName अब ठीक से काम कर रहा है (I8b640, b/261435386)
  • variationSettings वाला AndroidFont कंस्ट्रक्टर, अब ठीक से काम करने वाला एपीआई है. इसका इस्तेमाल, नए तरह के फ़ॉन्ट डिस्क्रिप्टर बनाने के लिए किया जा सकता है. (I5adcc, b/261565807)
  • createFontFamilyResolver एपीआई अब बेहतर तरीके से काम कर रहा है. इसका इस्तेमाल, एक साथ काम नहीं करने वाली फ़ॉन्ट लोडिंग के दौरान ऐसे अपवादों को पकड़ने के लिए किया जा सकता है जिनकी पहचान नहीं हो पाई है. (Ibb481, b/261435386)
  • Font.loadingStrategy एपीआई अब बेहतर तरीके से काम कर रहा है. (I5937c, b/261435386)
  • GoogleFont एपीआई अब बेहतर तरीके से काम कर रहा है. (Ic90b0, b/261435386)
  • TextUnit(float, TextUnitType) अब स्टेबल एपीआई के तौर पर काम कर रहा है. (I90c84, b/261561612)
  • pluralStringResource अब स्टेबल एपीआई के तौर पर काम कर रहा है. (I09849, b/261439703)

वर्शन 1.4.0-alpha03

7 दिसंबर, 2022

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

एपीआई में किए गए बदलाव

  • ExperimentalComposeUiApi को PointerIcon से हटाया जा रहा है (I23af8)
  • पेज की सुलभता सुविधाओं के बारे में जानकारी: PageUp, PageDown, PageLeft, PageRight. ध्यान दें कि ये सुविधाएं सिर्फ़ एपीआई 29 पर उपलब्ध हैं. (Ida4ab)
  • rememberNestedScrollConnection पैरामीटर व्यू को, रूट व्यू से होस्ट व्यू में अपडेट किया गया. (Ia5200)
  • क्वेरी ऐन्सेस्टर की स्क्रोल जानकारी में मॉडिफ़ायर एपीआई जोड़ा गया. (I2ba9d, b/203141462)
  • Clickable में इस्तेमाल किया जाता है, ताकि प्रेस इंटरैक्शन में देरी हो सके. ऐसा तब होता है, जब जेस्चर, स्क्रोल इवेंट बन सकते हैं.
  • Scrollable ViewGroup में इस्तेमाल किए जाने पर, Clickables को ठीक किया गया है, जिससे रिपल में देरी नहीं हो रही है.
  • अगर जेस्चर, स्क्रोल इवेंट बन सकते हैं, तो ड्रॉर और शीट को अपडेट किया गया है, ताकि दबाए जाने पर सही तरीके से कार्रवाई को रोका जा सके.
  • यह बताने के लिए कि graphicsLayer को हमेशा इंटरमीडिएट बफ़र (I47dc1) में रेंडर किया जाएगा, CompositingStrategy.Always का नाम बदलकर Offscreen किया गया
  • कई कॉन्टेंट स्लॉट वाला लेआउट ओवरलोड अब एक जैसा काम कर रहा है (I10566, b/248294649)
  • टेस्ट के तौर पर, टेस्ट के तौर पर परफ़ेटो ट्रेस (जिसे सिस्टम ट्रेस भी कहा जाता है) कैप्चर करने के लिए, एक्सपेरिमेंट के तौर पर नए एपीआई PerfettoTrace.record {} और PerfettoTraceRule जोड़े गए. इससे टेस्ट के व्यवहार और परफ़ॉर्मेंस की जांच की जा सकेगी. (I3ba16)
  • 'लिखें' नियम का इस्तेमाल करके किए गए यूज़र इंटरफ़ेस (यूआई) की जांच में, withFrameNanos कॉलबैक के दौरान फिर से शुरू किए गए क्रम को तब तक नहीं भेजा जाएगा, जब तक कि सभी फ़्रेम कॉलबैक नहीं चल जाते. यह सामान्य रूप से चलने पर कंपोज़ के व्यवहार से मेल खाता है. हालांकि, ऐसे टेस्ट में फ़ेल हो सकता है जो पुराने तरीके का इस्तेमाल करते हैं. इसका असर सिर्फ़ उस कोड पर होना चाहिए जो सीधे withFrameNanos या withFrameMillis को कॉल करता है. साथ ही, इसमें कॉलबैक के बाहर मौजूद उन फ़ंक्शन को पास किया गया लॉजिक होता है जिन्हें कॉलबैक के अंदर ले जाना पड़ सकता है. उदाहरणों के लिए इस CL में ऐनिमेशन टेस्ट में हुए बदलाव देखें.
  • withFrameNanos कॉलबैक के बाद, कॉलर को फिर से शुरू करने से पहले, कोड को चलाने के लिए, TestMonotonicFrameClock कंस्ट्रक्टर और फ़ैक्ट्री फ़ंक्शन में वैकल्पिक onPerformTraversals: (Long) -> Unit पैरामीटर जोड़ा गया कोरूटीन. (Idb413, b/254115946, b/222093277, b/255802670)
  • Compose में इमोजीकंपैट (Ibf6f9, b/139326806) जोड़ा है
  • डाइनैमिक रंग की सुविधा के लिए, @Preview में नया वॉलपेपर पैरामीटर जोड़ा गया (I9f512)

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

  • Recomposer के बदलाव लागू होने के बाद, स्नैपशॉट लागू होने की सूचनाएं अब भेजी जाती हैं. (Iad6c0, b/222093277)
  • मल्टी विंडो स्क्रीनशॉट लेने की अनुमति देने के लिए, captureToImage में बदलाव किए गए. यह उन स्क्रीनशॉट टेस्ट के लिए मददगार है जो कंपोज़ पॉप-अप का इस्तेमाल करते हैं. (I169c5)

डिपेंडेंसी से जुड़े अपडेट

  • यूज़र इंटरफ़ेस (यूआई) और कंपोज़ मटीरियल अब लाइफ़साइकल 2.5.1 पर निर्भर करते हैं. (I05ab0, b/258038814)

वर्शन 1.4.0-alpha02

9 नवंबर, 2022

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

एपीआई में किए गए बदलाव

  • graphicsLayer का मौजूदा साइज़ दिखाने के लिए, GraphicsLayerScope को अपडेट किया गया. यह, कंपोज़ेबल साइज़ के फ़ंक्शन के तौर पर, graphicsLayer ट्रांसफ़ॉर्मेशन ऐक्शन की गणना करने के लिए मददगार है. (If8c43,b/181387080)
  • CompositingStrategy लॉन्च किया गया, ताकि यह तय किया जा सके कि graphicsLayer कॉन्टेंट को रेंडर करने के लिए, ऑफ़स्क्रीन कंपोज़िटिंग लेयर का इस्तेमाल कब किया जाए. अपने-आप डिफ़ॉल्ट तरीका बनाए रखता है जो ऐल्फ़ा के लागू होने या RenderEffect/Overscroll के होने पर अंदरूनी रूप से लेयर का इस्तेमाल करता है. हमेशा एक ऑफ़स्क्रीन बफ़र पेश करेगा, जहां ModulateAlpha ऑफ़स्क्रीन बफ़र का इस्तेमाल नहीं करेगा. इसके बजाय, वह graphicsLayer में रिकॉर्ड किए गए हर ड्रॉइंग निर्देश में बदलाव करेगा. RenderEffect/Overscroll के इस्तेमाल के लिए, ModulateAlpha का इस्तेमाल अब भी ऑफ़स्क्रीन बफ़र का इस्तेमाल करेगा (I25e82, b/256382834)
  • लेआउट और ड्रॉइंग के पूरे क्रमों को अमान्य करने की अनुमति देने के लिए, invalidateSubtree() को Modifier.Node में जोड़ा गया. (I4bd90)
  • rememberNestedScrollInteropConnection को स्थिर बनाएं. rememberNestedScrollInteropConnection को रूट व्यू पास करने की सुविधा लॉन्च की गई. इसकी मदद से कस्टम व्यू, स्क्रोल करने से जुड़ी पाबंदियों के हिसाब से बेहतर तरीके से काम कर सकता है, खास तौर पर नॉन-स्टैंडर्ड व्यू में (जैसे, ModalBottomSheetDialog). (I9e107)
  • ObserverNode इंटरफ़ेस जोड़ा गया, जिसका इस्तेमाल Modifier.Node इंप्लिमेंटेशन के ज़रिए किया जा सकता है. इसे उस वैल्यू में बदलाव होने पर सूचना देने की ज़रूरत होती है जिसे पहले पढ़ा गया था (I5728b, b/247716483)
  • Paint में ऐसा नया कंस्ट्रक्टर जोड़ा गया है जो नेटिव android.graphics.Paint को स्वीकार करता है. साथ ही, एक एक्सटेंशन फ़ंक्शन toComposePaint() जोड़ा गया है, जो मौजूदा नेटिव पेंट ऑब्जेक्ट को Compose Paint में बदल देता है. (Ica91b)
  • Android पर इस्तेमाल करने के लिए, नया FontFamily.Resolver.resolveAsTypeface जोड़ें. (I8950b)
  • टूल को कंपोज़ेबल (Ie6614) की इंटरनल स्टेट बदलने की अनुमति देने के लिए, ToolingState जोड़ें
  • जोड़े गए नए ऐनिमेशन से जुड़ी बेहतर सहायता पाने के लिए, टूल को रीफ़ैक्टर करें (I8677b)
  • सामग्री और content3 Text, TextField, और OutlinedTextField में minLines पैरामीटर को जोड़ा गया. इसकी मदद से लाइनों की संख्या (I4af1d) के हिसाब से कॉम्पोनेंट की कम से कम ऊंचाई सेट की जा सकती है

वर्शन 1.4.0-alpha01

24 अक्टूबर, 2022

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

एपीआई में किए गए बदलाव

  • जेस्चर डिटेक्टर के लिए एक नई विधि awaitEachGesture() को जोड़ा गया. यह forEachGesture() की तरह काम करता है. हालांकि, जेस्चर (हाव-भाव) पर लूप पूरी तरह से AwaitPointerEventScope के अंदर काम करता है. इसलिए, बार-बार होने वाले इवेंट से कोई फ़र्क़ नहीं पड़ता.
  • forEachGesture() की जगह अब awaitEachGesture() का इस्तेमाल किया जा रहा है, क्योंकि यह जेस्चर के बीच इवेंट को छोड़कर जाने की अनुमति देता है. (Iffc3f, b/251260206)
  • androidx में ऐक्सेस होने की सुविधा वाले ऑब्जेक्ट को रीसाइकल करने की सुविधा बंद की जा रही है. हमने पाया है कि परफ़ॉर्मेंस में हुए बदलाव, सबसे पुराने वर्शन में भी न के बराबर होते हैं. (I0a961)
  • DrawStyle को TextStyle और SpanStyle में एक्सपेरिमेंटल एट्रिब्यूट के तौर पर जोड़ा गया, ताकि आउटलाइन किया गया टेक्स्ट चालू किया जा सके. (If24b8, b/155421273)
  • AnnotatedString.Builder अब kotlin.text.Appendable को लागू करता है. (I1a061, b/231030444)
  • AnnotatedString.Builder में अब AnnotatedString की सबस्ट्रिंग और इंटरसेक्ट करने वाली स्टाइल को जोड़ने के लिए, एक append(AnnotatedString, start: Int, end: Int) तरीका उपलब्ध है.
  • Paragraph और MultiParagraph पेंट फ़ंक्शन में DrawStyle पैरामीटर जोड़ा गया, जो आउटलाइन किए गए टेक्स्ट की ड्रॉइंग बनाने की सुविधा चालू करता है. (Ic8102, b/155421273)

बाहरी योगदान

  • झलक में टीवी डिवाइस जोड़ने के लिए, vighnesh का धन्यवाद (Ie15cd)

वर्शन 1.3

वर्शन 1.3.3

11 जनवरी, 2023

androidx.compose.ui:ui-*:1.3.3 रिलीज़ हो गया है. वर्शन 1.3.3 में ये कमिट हैं.

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

  • Android 9 वर्शन पर कभी-कभी होने वाले क्रैश की समस्या को ठीक किया गया है. ऐसा तब होता है, जब ऐक्टिविटी के दौरान, 'लिखें' व्यू में बदलाव करने की स्थिति सेव हो जाती है. (I0b755, b/260322832)

वर्शन 1.3.2

7 दिसंबर, 2022

androidx.compose.ui:ui-*:1.3.2 रिलीज़ हो गया है. वर्शन 1.3.2 में ये कमियां शामिल हैं.

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

  • Profobuf 3.21.8 का इस्तेमाल करने के लिए इसे अपडेट किया गया. इससे protobuf-javalite:3.19.4 (CVE-2022-3171) (b/255545055) में सुरक्षा से जुड़ी चेतावनी नहीं मिल पाएगी

वर्शन 1.3.1

9 नवंबर, 2022

androidx.compose.ui:ui-*:1.3.1 रिलीज़ हो गया है. वर्शन 1.3.1 में ये कमियां शामिल हैं.

वर्शन 1.3.0

24 अक्टूबर, 2022

androidx.compose.ui:ui-*:1.3.0 रिलीज़ हो गया है. वर्शन 1.3.0 में ये कमियां शामिल हैं.

01.2.0 के बाद के अहम बदलाव

  • नया प्रयोग करने वाला एपीआई सुइट LookaheadLayout (पहले से नामुमकिन वाले ऐनिमेशन चालू किए जा रहे हैं)
  • नया प्रयोग वाला एपीआई सुइट Modifier.Node (Modifier.composed की तुलना में बेहतर परफ़ॉर्मेंस वाला विकल्प)
  • बेहतर विंडो इनसेट समर्थन.
  • LazeLists में डी-पैड और हार्डवेयर कीबोर्ड पर फ़ोकस करने की सुविधा.
  • डायलॉग और पॉप-अप में ज़्यादा से ज़्यादा, 8dp की ऊंचाई को कम करके 8dp कर दिया गया है. पसंद के मुताबिक बनाए गए कुछ डिज़ाइन सिस्टम की परफ़ॉर्मेंस में बदलाव आया है – बीटा 01 प्रॉडक्ट की जानकारी में बताई गई वजह
  • एपीआई में किए गए कई छोटे-मोटे सुधार
  • कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस में सुधार किए गए हैं

वर्शन 1.3.0-rc01

5 अक्टूबर, 2022

androidx.compose.ui:ui-*:1.3.0-rc01 रिलीज़ हो गया है. वर्शन 1.3.0-rc01 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • टेक्स्ट में अपने-आप हाइफ़न लगा पाने की सुविधा के लिए, एक्सपेरिमेंट के तौर पर नए एपीआई हाइफ़न जोड़े गए (Iaa869)

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

  • DeviceFontFamilyName फ़ॉन्ट, लोड किए गए Typeface के लिए प्लैटफ़ॉर्म सेटिंग का इस्तेमाल करने के बजाय, डिफ़ॉल्ट रूप से wght और ital के अलग-अलग वर्शन की सेटिंग को कॉन्फ़िगर नहीं करेगा. (Ia7a6d, b/246989332)
  • LazyColumn मेमोरी लीक होने को ठीक किया गया - कार्रवाई बदलने वाली कुंजी का फिर से इस्तेमाल करते समय, onModifierLocalsUpdated को डिफ़ॉल्ट वैल्यू के साथ कॉल नहीं किया जा रहा था (b/230168389)

वर्शन 1.3.0-beta03

21 सितंबर, 2022

androidx.compose.ui:ui-*:1.3.0-beta03 रिलीज़ हो गया है. वर्शन 1.3.0-beta03 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • टेक्स्ट में लाइन ब्रेकिंग को पसंद के मुताबिक बनाने के लिए विकल्प जोड़ें. (I86907)
  • कम से कम चौड़ाई की सीमा के हिसाब से काम करने के लिए, TextMeasurer.measure तरीके में constraints: Constraints वाले size:IntSize आर्ग्युमेंट को बदला गया. (I37530, b/242707525)

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

  • AndroidX Activity का BackHandler API, अब Dialog कंपोज़ेबल में काम करता है. (I35342)

वर्शन 1.3.0-beta02

7 सितंबर, 2022

androidx.compose.ui:ui-*:1.3.0-beta02 रिलीज़ हो गया है. वर्शन 1.3.0-beta02 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • लेआउट में एक एक्सपेरिमेंटल ओवरलोड जोड़ा गया, जिसमें कई कंपोज़ेबल कॉन्टेंट lambdas की लिस्ट को स्वीकार किया गया है. इससे, lambdas के अलग-अलग कॉन्टेंट (Ic1b4e) में मेज़र किए जा सकने वाले कॉन्टेंट को अलग तरीके से खतरा हो सकता है

एक्सपेरिमेंट वाले फ़ोकस एपीआई में बदलाव:

  • FocusDirection.In और FocusDirection.Out के इस्तेमाल पर रोक लगा दी गई है. इनकी जगह FocusDirection.Enter और FocusDirection.Exit इस्तेमाल किए जाएंगे. (Ia4262, b/183746982)
  • FocusManager.moveFocus(Enter) और FocusManager.moveFocus(Exit) के लिए पसंद के मुताबिक व्यवहार तय करने के लिए, दो नई फ़ोकस प्रॉपर्टी जोड़ी गईं और बाहर निकलें. (I5f3f9, b/183746982)
  • अब FocusRequester.Cancel का इस्तेमाल करके, फ़ोकस मूव करना रद्द किया जा सकता है. FocusRequester.Cancel का इस्तेमाल इनमें से किसी भी फ़ोकस प्रॉपर्टी में किया जा सकता है: ऊपर, नीचे, बाएं, दाएं, अगला, पिछला, शुरू करें, खत्म करें, डालें और बाहर निकलें. (Ib300f)

वर्शन 1.3.0-beta01

24 अगस्त, 2022

androidx.compose.ui:ui-*:1.3.0-beta01 रिलीज़ हो गया है. वर्शन 1.3.0-beta01 में ये कमिट हैं.

मॉडिफ़ायर नोड रीफ़ैक्टर

Modifier/Modifier.Element इंस्टेंस को मैनेज करने और LayoutNodes पर इनके व्यवहार को कंट्रोल करने वाली लेयर में अहम बदलाव किए गए हैं. हालांकि, यह एक ऐसा रीफ़ैक्टर था जिससे Compose के किसी भी कई मॉडिफ़ायर के Public API पर कोई असर नहीं पड़ता. साथ ही, इसे सिर्फ़ लागू करने के तरीके में होने वाले बदलाव के तौर पर देखा जा सकता है. इसके बावजूद, कई वजहों से यह एक अहम बदलाव है. (Ie4313)

बदलाव की खास जानकारी

एक्सपेरिमेंट के तौर पर जोड़े गए Modifier.Node एपीआई से एक ऐब्स्ट्रक्शन मिलता है, जो स्टेट को उस इंस्टेंस पर बनाए रखने की अनुमति देता है जिसे लेआउट नोड के लाइफ़साइकल के साथ बनाए रखा जाएगा. साथ ही, इसे हर लेआउट-नोड और हर उस Modifier.Element के हर इस्तेमाल के हिसाब से असाइन किया जाएगा जिससे इसे बनाया गया था.

मोटे तौर पर, यह ऐब्स्ट्रैक्ट, Modifier.composed एपीआई की तकनीक पर भरोसा किए बिना, स्टेटफ़ुल मॉडिफ़ायर जनरेट करने का एक वैकल्पिक तरीका देता है.

जोखिम

यह बदलाव, पिछली रिलीज़ के साथ पूरी तरह से बाइनरी है. साथ ही, इसका मकसद निगरानी वाले व्यवहार के हिसाब से, पुराने सिस्टम के साथ काम करना है. हालांकि, कंपोज़ करने के कुछ ऐसे सबसिस्टम हैं जिनमें यह रीफ़ैक्टर नहीं चल पाया है. ऐसा हो सकता है कि इसके काम करने के तरीके में कुछ ऐसा बदलाव हुआ हो जो हमारे टेस्ट में शामिल नहीं था और जिसे अभी तक नहीं ढूंढा गया है और न ही इसे ठीक किया गया है.

कृपया सावधानी से इस रिलीज़ में अपग्रेड करें. अगर आपको लगता है कि इससे कोई परेशानी हुई है, तो कृपया हमें बताएं.

एक्सपेरिमेंट वाले एपीआई

प्रयोग के तौर पर इस्तेमाल किए जा रहे कई एपीआई जोड़े गए हैं. ये सभी "मॉडिफ़ायर नोड" के नए कॉन्सेप्ट से जुड़े हैं. मॉडिफ़ायर.नोड, इन चीज़ों के आधार पर बनाए जाते हैं

  • fun modifierElementOf(…): Modifier
  • abstract class ModifierNodeElement
  • abstract class Modifier.Node
  • abstract class DelegatingNode
  • interface LayoutModifierNode
  • interface DrawModifierNode
  • interface SemanticsNode
  • interface PointerInputNode
  • interface ModifierLocalNode
  • interface ParentDataModifierNode
  • interface LayoutAwareModifierNode
  • interface GlobalPositionAwareModifierNode
  • interface IntermediateLayoutModifierNode

व्यवहार पर असर डालने वाले बदलाव

डायलॉग और पॉप-अप में काम करने की सीमा को घटाकर 8dp कर दिया गया है.

'लिखें' डायलॉग और पॉप-अप के लिए, सुझाई गई ऊंचाई को 30 डीपी से घटाकर 8 डीपी पर कर दिया गया है. इस बदलाव से मटीरियल और यूज़र इंटरफ़ेस (यूआई) के कस्टम डायलॉग और पॉप-अप, दोनों पर असर पड़ेगा. यह बदलाव Android के, S से पहले के वर्शन पर सुलभता की गड़बड़ी को कम करने के लिए किया गया है. इसका मकसद यह भी पक्का करना है कि उन विंडो में सुलभता सेवाएं, डायलॉग या पॉप-अप में मौजूद कॉन्टेंट से इंटरैक्ट कर सकें.

इस बदलाव का असर आप पर सिर्फ़ तब पड़ेगा, जब 8dp से ज़्यादा के लेवल पर पसंद के मुताबिक डायलॉग या पॉप-अप लागू किया जाएगा. अपने डायलॉग या पॉप-अप की ऊंचाई को कम करें. अगर आपको इस नई सुविधा से ऑप्ट-आउट करना है, तो अपने डायलॉग या पॉप-अप को अपनी पसंद के हिसाब से सेट करें. हालांकि, इसका सुझाव नहीं दिया जाता है, क्योंकि सुलभता पर बुरा असर पड़ सकता है. साथ ही, यह डेवलपर की ज़िम्मेदारी होती है कि डायलॉग या पॉप-अप के निचले हिस्से से इंटरैक्ट किया जा सके और सुलभता सेवाओं उसे आसानी से पढ़ा जा सके.

एपीआई में किए गए बदलाव

  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से painterResource, कॉन्फ़िगरेशन में बदलाव होने पर अपडेट नहीं होता (I58e73, b/228862715)
  • rememberTextMeasurer में अब FontFamily.Resolver, Density या LayoutDirection पैरामीटर इस्तेमाल नहीं किए जाते. इन पैरामीटर के लिए कस्टम वैल्यू देने के लिए, कृपया TextMeasurer कंस्ट्रक्टर का इस्तेमाल करें. (Ia1da3)
  • DialogProperties.decorFitsSystemWindows प्रॉपर्टी जोड़ी गई ऐसा करने पर, डायलॉग बॉक्स WindowInsets पर काम कर सकेंगे. (I57742, b/229378542)
  • बाइनरी प्रोग्राम के साथ काम करने के लिए, फ़ॉन्ट कंस्ट्रक्टर को वापस मूल kotlin फ़ाइल पर ले जाया गया. पिछले स्थिर रिलीज़ की तुलना में कोई बदलाव नहीं हुआ है. (Ieb2f3)
  • कई बराबर परिभाषाओं से गै़र-ज़रूरी ऑपरेटर को हटाया गया - इससे कोई असर नहीं पड़ता. (I6c309)
  • FontVariation.Setting, सील किया गया इंटरफ़ेस है, जो आने वाले समय में क्लैंपिंग एपीआई को अनुमति देता है. (I11021, b/143703328)
  • SlotTree.kt में CompositionGroup.findParameters जोड़ें. इसकी मदद से, टूल, पूरी स्लॉट टेबल को पार्स किए बिना, CompositionGroup के लिए पैरामीटर हासिल कर सकते हैं. (I124fe)

वर्शन 1.3.0-alpha03

10 अगस्त, 2022

androidx.compose.ui:ui-*:1.3.0-alpha03 रिलीज़ हो गया है. वर्शन 1.3.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • LayoutCoordinates.findRootCoordinates() अब सार्वजनिक है (I7fa37, b/204723384)
  • PlacementScope में LayoutCoordinates पाने के लिए, एक्सपेरिमेंटल एपीआई जोड़ा गया. इससे डेवलपर को यह जानने में मदद मिलती है कि बच्चों को उसकी पोज़िशन के हिसाब से कहां दिखाया जा रहा है. (I5482b, b/238632578)
  • मैट्रिक्स को एक LayoutCoordinates से दूसरे में बदलने के लिए LayoutCoordinates.transformFrom को जोड़ा गया. (Ic5ab1, b/238632578)
  • SemanticsModifier.id को हटा दिया गया और सिमैंटिक आईडी को LayoutInfo.semanticsId पर ले जाया गया. (Iac808, b/203559524)
  • रिसोर्स फ़ॉन्ट अब सेटिंग फ़ॉन्ट वैरिएशन सेटिंग (एपीआई 26+) का समर्थन करते हैं. (I900dd, b/143703328)
  • DeviceFontFamilyNameFont (Ic1279, b/143703328) में वैरिएबल फ़ॉन्ट सपोर्ट
  • फ़ॉन्ट कंस्ट्रक्टर, अब O+ डिवाइसों पर वैरिएबल फ़ॉन्ट कॉन्फ़िगर करने के लिए FontVariation.Setting की सूची स्वीकार करते हैं. (I11a9d, b/143703328)
  • वैरिएबल फ़ॉन्ट तय करने और उनका इस्तेमाल करने के लिए, FontVariation एपीआई जोड़ें. (I3c40c, b/143703328)
  • LineHeightStyle.Alignment कंस्ट्रक्टर अब सार्वजनिक है (एक्सपेरिमेंट के तौर पर उपलब्ध) (I4bbbe, b/235876330)
  • पैराग्राफ़ अब उम्मीद के मुताबिक|असल और Android और डेस्कटॉप के लिए तय किया गया है. (Id387e, b/239962983)
  • इंटरफ़ेस पैराग्राफ़ को अब सील किया गया इंटरफ़ेस पैराग्राफ़ है. पैराग्राफ़ को सब-क्लास में शामिल करने के लिए, इस्तेमाल का कोई उदाहरण नहीं है. अगर इस बदलाव का आप पर कोई असर पड़ता है, तो हमारा सुझाव है कि आप हमसे संपर्क करें. (If5247, b/239962983)
  • एक्सपेरिमेंट के तौर पर शुरू की गई एनोटेशन को PlatformTextStyle और LineHeightStyle से हटाया गया. (I64bef)
  • TextInputService.show|hideSoftwareKeyboard का बहिष्कार करें. कृपया ऐप्लिकेशन कोड में SoftwareKeyboardController और IME-मैनेजमेंट कोड में TextInputSession का इस्तेमाल करें. (I14e4c, b/183448615)
  • मौजूदा ऐनिमेशन टाइप के लिए नया एपीआई जोड़ें (I26179)

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

  • @RequiresPermission को उन एपीआई में जोड़ा गया जिनके लिए SDK टूल 33 और इसके बाद के वर्शन पर, POST_NOTIFICATIONS की अनुमति देना ज़रूरी है. (Ie542e, b/238790278)

वर्शन 1.3.0-alpha02

27 जुलाई, 2022

androidx.compose.ui:ui-*:1.3.0-alpha02 रिलीज़ हो गया है. वर्शन 1.3.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • प्रेशर फिर से पाने के लिए, PointerInputChange#pressure नई प्रॉपर्टी जोड़ी गई. (I45a5e, b/205164819)
  • कंपोज़िशन में TextMeasurer इंस्टेंस आसानी से बनाने और याद रखने के लिए, rememberTextMeasurer को जोड़ा गया. (I8d66e)
  • Rect, RoundRect, और MutableRect अब contains फ़ंक्शन को कॉल करने के लिए, Kotlin in सिंटैक्स के साथ काम करते हैं. (Ie42b0, b/238642990)
  • KeyInjectionScope से गै़र-ज़रूरी फ़ंक्शन हटाएं, क्योंकि उन्हें एपीआई के आसान हिस्सों की मदद से आसानी से लागू किया जा सकता है. हटाए गए फ़ंक्शन में pressKeys, keysDown, और keysUp शामिल हैं. (I81d77)
  • 'Millis' सफ़िक्स को शामिल करने के लिए, KeyInjectionScope में कॉन्स्टेंट और पैरामीटर के नामों को रीफ़ैक्ट किया गया जहां बताए गए कॉन्सटेंट और पैरामीटर की इकाइयां मिलीसेकंड हैं. (Iabef5)
  • टेक्स्ट में बदलाव करने से जुड़ी समस्याओं को हल करने के लिए, EditCommand में toStringForLog() तरीका जोड़ा गया. (I53354, b/228862731)
  • DrawScope पर drawText एक्सटेंशन फ़ंक्शन जोड़ा गया, ताकि Canvas और drawBehind जैसे DrawScope पर ऑपरेट होने वाले कंपोज़ेबल और मॉडिफ़ायर पर कई स्टाइल वाले टेक्स्ट ड्रॉ किए जा सकें. (I16a62, b/190787898)
  • TextMeasurer नाम का एक नया एक्सपेरिमेंटल एपीआई पेश करें. यह आर्बिट्रेरी टेक्स्ट लेआउट कंप्यूटेशन की सुविधा देता है, जो BasicText से मिलते-जुलते नतीजे बनाता है. यह Compose के रनटाइम से अलग होता है. (I17101)
  • SlotTree.kt में mapTree जोड़ें. इससे टूल, asTree की तरह मेमोरी में कॉपी बनाए बिना SlotTree की जांच कर सकते हैं. लेआउट इंस्पेक्टर के लिए यह फ़ैक्टर 10. (I5e113)
  • कंपोज़ की झलक को बाइनरी आउटपुट फ़ाइलों में सेव करने के लिए बदला गया, ताकि डेवलपर लाइब्रेरी से MultiPreview एनोटेशन लिख सकें और उनका फिर से इस्तेमाल कर सकें. (I85699, b/233511976)

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

  • Velocity ट्रैकर में InputEventChange इवेंट जोड़ते समय, हम अब पोज़िशन के बजाय डेल्टा का इस्तेमाल करेंगे. इससे यह गारंटी मिलेगी कि टारगेट एलिमेंट के मूव होने पर भी (Icea9d, b/216582726, b/223440806, b/227709803) के बावजूद, सभी मामलों में वेलोसिटी का सही हिसाब लगाया जाएगा
  • एनोटेशन मौजूद होने पर, AnnotatedString.toUpperCase की वजह से होने वाली एनपीई की समस्या को ठीक करें. (I0aca2, b/210899140)

वर्शन 1.3.0-alpha01

29 जून, 2022

androidx.compose.ui:ui-*:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • नया LookaheadLayout, जो असल मेज़र/लेआउट से पहले, लुकअहेड पास की सुविधा देता है. इससे लेआउट में बदलाव होने पर, पहले से उसका हिसाब लगाया जा सकता है. साथ ही, पोस्ट-लुकहेड मेज़रमेंट/लेआउट को पहले से तय किए गए साइज़/पोज़िशन का इस्तेमाल करने की अनुमति मिल जाती है, ताकि टारगेट के लिए साइज़ और पोज़िशन को ऐनिमेट किया जा सके. SubcomposeLayouts की सुविधा अभी उपलब्ध नहीं है. हालांकि, आने वाली रिलीज़ में इसे इस्तेमाल किया जाएगा. (I477f5)
  • पूरे Text की ओपैसिटी में बदलाव करने के लिए, TextStyle और SpanStyle के ब्रश फ़्लेवर में वैकल्पिक ऐल्फ़ा पैरामीटर जोड़ें. (Ic2fac, b/234117635)
  • AnnotatedString में TalkBack लिंक काम करने की सुविधा देने के लिए, UrlAnnotation एनोटेशन टाइप और उससे जुड़े तरीकों की जानकारी दी गई. (I1c754, b/231495122)
  • उपयोगिता फ़ंक्शन को रनटाइम में ले जाना (I4f729)

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

  • TextLayoutResult.getLineForOffset ने थ्रो नहीं किया. (Idc5d6, b/235876324)

बाहरी योगदान

  • नया एपीआई WindowInfo.keyboardModifiers जोड़ा गया, ताकि कंपोज़ेबल फ़ंक्शन में या स्नैपशॉट Flow (Icdb8a) की मदद से इसकी स्थिति देखी जा सके

वर्शन 1.2

वर्शन 1.2.1

10 अगस्त, 2022

androidx.compose.ui:ui-*:1.2.1 रिलीज़ हो गया है. वर्शन 1.2.1 में ये कमियां शामिल हैं.

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

  • इंस्पेक्टर में कुछ नलपॉइंटर को ठीक कर दिया गया है (b/237987764)
  • इंस्पेक्टर में याद रखने के दौरान क्लास कास्ट के अपवाद को ठीक किया गया (b/235526153)

वर्शन 1.2.0

27 जुलाई, 2022

androidx.compose.ui:ui-*:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये कमियां शामिल हैं.

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

  • फ़ोकस ट्रैवर्सल में सुधार:

    • नए BeyondBoundsLayout Core API का इस्तेमाल करके, अब लेज़ी लिस्ट को फ़ोकस करके स्क्रोल किया जा सकता है
    • FocusOrder और FocusProperties में, व्यवहार को पसंद के मुताबिक बनाने के नए एपीआई
    • फ़िज़िकल कीबोर्ड या टीवी रिमोट की मदद से, डिवाइस के काम करने का तरीका बेहतर बनाया गया
  • इसके लिए नए API:

    • विंडो इनसेट
    • जेस्चर पर आधारित, इनफ़ाइनाइट, और लेआउट ऐनिमेशन के लिए बुनियादी बातें
    • GraphicsLayer सुविधाएं, जिनमें RenderEffect शामिल हैं
  • कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस में सुधार किए गए हैं

वर्शन 1.2.0-rc03

29 जून, 2022

androidx.compose.ui:ui-*:1.2.0-rc03 रिलीज़ हो गया है. वर्शन 1.2.0-rc03 में ये कमिट हैं.

  • 1.2.0-rc02 के बाद से कोई बदलाव नहीं किया गया है.

वर्शन 1.2.0-rc02

22 जून, 2022

androidx.compose.ui:ui-*:1.2.0-rc02 रिलीज़ हो गया है. वर्शन 1.2.0-rc02 में ये कमिट हैं.

वर्शन 1.2.0-rc01

15 जून, 2022

androidx.compose.ui:ui-*:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये कमिट शामिल हैं.

एपीआई में किए गए बदलाव

  • लिखने की सुविधा वाली लाइब्रेरी में इंटरफ़ेस अब jdk8 डिफ़ॉल्ट इंटरफ़ेस तरीकों (I5bcf1) का इस्तेमाल करके बनाए जाते हैं
  • बटन दबाए रखने के दौरान, KeyInjectionScope में हाई-ऑर्डर फ़ंक्शन जोड़े गए. ऐसा तब किया जाता है, जब दूसरे बटन दबाकर रखे जाते हैं या चालू रहते हैं. इन फ़ंक्शन में withKeysDown, withKeysToggled वगैरह शामिल हैं. साथ ही, किसी खास मेटा कुंजी के काम करने या न होने की जांच करने के लिए, कोई प्रॉपर्टी जोड़ी गई है. उदाहरण के लिए, isCtrlDown की मदद से पता लगाया जा सकता है कि दोनों में से किसी एक को कंट्रोल कुंजी का इस्तेमाल किया गया है या नहीं. हर फ़ंक्शन से जुड़े दस्तावेज़ देखने के लिए, KeyInjectionScope पर जाएं. (I9f6cd, b/229831515)
  • कस्टम ओवरस्क्रोल इफ़ेक्ट का इस्तेमाल करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध OverscrollEffect की सुविधा जोड़ी गई है. साथ ही, इसे स्वीकार करने वाले Modifier.scrollable ओवरलोड भी जोड़े गए हैं.
  • प्रयोगात्मक LocalOverScrollConfiguration को foundation.gesture से फ़ाउंडेशन पैकेज में ले जाया गया है और इसका नाम बदलकर LocalOverscrollConfiguration (If19fb, b/204650733) कर दिया गया है
  • runComposeUiTestWithoutActivity {} का नाम बदलकर runEmptyComposeUiTest {} करें, जो इसे createEmptyComposeRule() (I6fed7) से अलाइन करता है

वर्शन 1.2.0-beta03

1 जून, 2022

androidx.compose.ui:ui-*:1.2.0-beta03 रिलीज़ हो गया है. वर्शन 1.2.0-beta03 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • pressKeyTimes, isCapsLockOn, और दोस्तों को KeyInjectionScope में जोड़ा गया. इसके अलावा, यह एपीआई अब माउस और कीबोर्ड के मिले-जुले इंजेक्शन पैटर्न के साथ भी काम करता है. जैसे, मेटा कुंजी को दबाकर रखने वाले माउस बटन पर क्लिक करना. (I4c8da, b/229831515)
  • मुख्य इवेंट इंजेक्ट करने के लिए, प्रयोग के तौर पर सहायता जोड़ी गई. performMultiModalInput का इस्तेमाल करके, मल्टी मॉडल इनपुट जेस्चर के दौरान मुख्य इवेंट को भेजने के लिए, performKeyInput का इस्तेमाल करें या उन्हें MultiModalInjectionScope की key प्रॉपर्टी की मदद से भेजें. एपीआई के दस्तावेज़ के लिए, KeyInjectionScope पर जाएं. (Ic5000, b/229831515)
  • Android पर काम करने वाले Google फ़ॉन्ट के कैननिकल इंटरनेट सोर्स को वापस पाने के लिए, नया GoogleFont.Provider.AllFontsListUri जोड़ें.
  • कंपोज़ की सुविधा में GoogleFonts के लोड न हो पाने पर, गड़बड़ी के उन मैसेज को बेहतर बनाएं जिन्हें फिर से हटाया गया है. (I0416c)

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

  • वेलोसिटी ट्रैकर में InputEventChange इवेंट जोड़ते समय, हम अब पोज़िशन के बजाय डेल्टा का इस्तेमाल करेंगे. इससे यह गारंटी मिलेगी कि टारगेट एलिमेंट के मूव होने पर भी (I51ec3, b/216582726, b/223440806, b/227709803)
  • कंपोज़ेबल के लिए Show Layout Bounds सेटिंग को लागू करने के तुरंत बाद, उसे क्विक सेटिंग टाइल से टॉगल किया जाएगा. इसके लिए, आपको गतिविधि से बाहर नहीं जाना होगा और फिर से गतिविधि में शामिल होना होगा. (I843d5, b/225937688)
  • सुलभता स्ट्रिंग लुकअप, फ़ॉन्ट लोड होना ट्रिगर नहीं करता. पहले, यह StyleSpans के लिए फ़ॉन्ट लोड करने की कोशिश करता था, जिसमें अगर FontFamily.Resolver ओवरराइट कर दिया गया हो, तो क्रैश हो जाते हैं. (I4609d)
  • जब कर्सर टेक्स्ट फ़ील्ड के आखिर में हो, तो फ़ॉरवर्ड करने के बटन को दबाने से, अब कोई क्रैश नहीं होगा.
  • DeleteSurroundingTextCommand और DeleteSurroundingTextInCodePointsCommand के लिए अब उनके कंस्ट्रक्टर आर्ग्युमेंट, गैर-ऋणात्मक होने चाहिए. (Ica8e6, b/199919707)

वर्शन 1.2.0-beta02

18 मई, 2022

androidx.compose.ui:ui-*:1.2.0-beta02 रिलीज़ हो गया है. वर्शन 1.2.0-beta02 में ये तय किए गए हिस्से शामिल हैं.

एपीआई में किए गए बदलाव

  • झलक के अन्य टाइप में फ़ंक्शन का दोबारा इस्तेमाल करना (I19f39)

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

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer का नाम बदलकर DisposeOnDetachedFromWindowOrReleasedFromPool कर दिया गया है, ताकि यह बेहतर तरीके से दिखाया जा सके कि डिवाइस कब नष्ट होते हैं, न कि जब वे होते ही न हों. (If15ca)

वर्शन 1.2.0-beta01

11 मई, 2022

androidx.compose.ui:ui-*:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये तय किए गए हिस्से शामिल हैं.

नई सुविधाएं

  • यह 1.2 की पहली बीटा रिलीज़ है!

एपीआई में किए गए बदलाव

  • प्रयोग के तौर पर BeyondBoundsInterval को जोड़ा गया. इसका इस्तेमाल, LazyList को कस्टम तरीके से लागू करके किया जा सकता है. ऐसा तब किया जा सकता है, जब आइटम को दिखने वाली सीमाओं से बाहर के लेआउट वाले आइटम हों (Ifabfb, b/184670295)
  • Modifier.composed के पासकोड वाले वर्शन अब स्टेबल एपीआई हैं (Ie65e4, b/229988420)
  • rememberNestedScrollConnection एपीआई को आसान बनाया गया है, ताकि कंपोज़िशन लोकल का इस्तेमाल करके व्यू की मौजूदा जानकारी हासिल की जा सके (I67ca7)
  • @ComposableTargetMarker ने जो @ComposableTarget एनोटेशन और एनोटेशन मार्क किए हैं उन्हें अब फ़ाइल के दायरे में @file प्रीफ़िक्स का इस्तेमाल करके इस्तेमाल किया जा सकता है. फ़ाइल के स्कोप में टारगेट एनोटेशन का इस्तेमाल करने पर, कंपाइलर यह मान लेगा कि फ़ाइल के सभी कंपोज़ेबल फ़ंक्शन, संबंधित ऐप्लायर को टारगेट करने के लिए हैं. उदाहरण के लिए, @file:UiComposable का इस्तेमाल करने से एलान होता है कि सभी @Composable फ़ंक्शन, Compose यूज़र इंटरफ़ेस (यूआई) लागू करने वाले को टारगेट करते हैं. जिस फ़ंक्शन को किसी दूसरे ऐप्लायर को टारगेट करना है उसके लिए, टारगेट मार्कर एनोटेशन साफ़ तौर पर देना होगा. (I40804)
  • एक्सपेरिमेंट के लिए नए, प्लैटफ़ॉर्म इंडिपेंडेंट, टेस्ट एपीआई लॉन्च किया गया: interface ComposeUiTest और fun runComposeUiTest(block: ComposeUiTest.() -> Unit), जिनका इस्तेमाल Compose के यूज़र इंटरफ़ेस (यूआई) के टेस्ट करने के लिए किया जा सकता है इसके लिए, TestRule की ज़रूरत नहीं है. बिना किसी शुल्क के टेस्ट करने के लिए ComposeTestRule, runComposeUiTest में टेस्ट को लैम्डा के तौर पर पास करें और इसका इस्तेमाल करें पाने वाले स्कोप ComposeUiTest में तरीकों और सदस्यों की जानकारी दी गई है, जो कि वही हैं जो ComposeContentTestRule में हैं.

    Android के लिए खास interface AndroidComposeUiTest और fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) इसे बुनियादी ऐक्टिविटी का ऐक्सेस देने के लिए जोड़ा गया था. AndroidComposeTestRule. और भी ज़्यादा कंट्रोल के लिए, एक इंस्टैंशिएट करके खुद class AndroidComposeUiTestEnvironment.

    डेस्कटॉप इंप्लिमेंटेशन class DesktopComposeUiTest है, लेकिन कोई नहीं फ़िलहाल, डेस्कटॉप से रन करने के लिए उपलब्ध फ़ंक्शन ऑफ़र किए जा रहे हैं.

    टेस्ट को ComposeTestRule से ComposeUiTest पर माइग्रेट किया जा सकता है (Android का उदाहरण). From:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @get:Rule val rule = createComposeRule()
        @Test
        fun test() {
            rule.setContent {
                Text("Hello Compose!")
            }
            rule.onNodeWithText("Hello Compose!").assertExists()
        }
    }
    

    इन कार्रवाइयों के लिए नीचे दिया गया तरीका अपनाएं:

    @RunWith(AndroidJUnit4::class)
    class MyTest {
        @Test
        @OptIn(ExperimentalTestApi::class)
        fun test() = runComposeUiTest {
            setContent {
                Text("Hello Compose!")
            }
            onNodeWithText("Hello Compose!").assertExists()
        }
    }
    
  • फ़िलहाल, ComposeContentTestRule और ComposeTestRule, ComposeUiTest से काम नहीं करते. इसका मतलब है कि ComposeUiTest पर मौजूद एक्सटेंशन फ़ंक्शन, फ़िलहाल TestRule इंटरफ़ेस पर कॉल नहीं किए जा सकते. ComposeUiTest के, स्टेबल एपीआई में अपग्रेड होने पर, ComposeContentTestRule और ComposeTestRule को बदलकर, ComposeUiTest की जगह लागू कर दिया जाएगा. (Ib4e90)

  • LineHeightBehavior का नाम बदलकर LineHeightStyle कर दिया गया है

  • LineVerticalAlignment का नाम बदलकर LineHeightStyle.Alignment कर दिया गया है

  • LineHeightTrim का नाम बदलकर LineHeightStyle.Trim किया गया

  • LineHeightStyle की डिफ़ॉल्ट कंस्ट्रक्टर वैल्यू हटा दी गई हैं (I582bf, b/181155707)

  • टेक्स्ट ड्रॉ करने के लिए, ग्रेडिएंट कलरिंग का इस्तेमाल करने के लिए Brush को TextStyle और SpanStyle में जोड़ा गया. (I53869, b/187839528)

  • trimFirstLineTop, trimLastLineBottom एट्रिब्यूट LineHeightBehavior को एक enum में बदला गया: LineHeightTrim. LineHeightTrim में दो बूलियन के ज़रिए तय की गई 4 स्थितियों के मान हैं: FirstLineTop, LastLineBottom, दोनों और कोई नहीं (Ifc6a5, b/181155707)

  • LineHeightBehavior को TextStyle और ParagraphStyle में जोड़ा गया. LineHeightBehavior से यह कंट्रोल किया जाता है कि लाइन की ऊंचाई को पहली लाइन के ऊपर और आखिरी लाइन के सबसे नीचे वाले हिस्से पर लागू किया जाए या नहीं. यह TextStyle(lineHeight) के दिए गए स्पेस में लाइन की अलाइनमेंट के बारे में भी बताता है.

    उदाहरण के लिए, हो सकता है कि सीएसएस के जैसा व्यवहार LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) से परिभाषित करता है.

  • trimFirstLineTop, trimLastLineBottom कॉन्फ़िगरेशन सही तरीके से तब ही काम करता है, जब includeFontPadding गलत हो. (I97332, b/181155707)

  • PlatformParagraphStyle.lerp और PlatformSpanStyle.lerp फ़ंक्शन को टॉप लेवल में बदला गया फ़ंक्शन (I9a268)

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

  • PointerInputChange::copy दस्तावेज़ में अब सही तरीके से बताया गया है कि यह एक शैलो कॉपी है. (I182f5)
  • ऊंचाई सीमित होने और सभी टेक्स्ट लाइनों में फ़िट न होने पर, एलिप्सिस का इस्तेमाल किया जा सकता है (Ie528c, b/168720622)
  • includeFontPadding डिफ़ॉल्ट सेटिंग चालू की गई है. TextStyle.platformTextStyle एट्रिब्यूट का इस्तेमाल करके, includeFontPadding को बंद किया जा सकता है. आने वाले समय में हम डिफ़ॉल्ट व्यवहार को बदल देंगे. हालांकि, इससे हमें लाइन की ऊंचाई में सुधार (aosp/2058653) को बेहतर तरीके से इंटिग्रेट करने और क्लिप बनाने से जुड़ी TextField समस्याओं को हल करने में मदद मिलेगी. (I01423, b/171394808)

बाहरी योगदान

  • अगर हम वर्टिकल तरीके से स्क्रोल करते हैं, तो MouseInjectionScope.scroll(delta = someDelta) अब Android पर उलटा हो जाता है (अगर कुछ Delta पॉज़िटिव है, तो वह नीचे की ओर स्क्रोल होगा) (Ifb697, b/224992993)

वर्शन 1.2.0-alpha08

20 अप्रैल, 2022

androidx.compose.ui:ui-*:1.2.0-alpha08 रिलीज़ हो गया है. वर्शन 1.2.0-alpha08 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • pluralStringResource फ़ंक्शन को 'प्रयोग के तौर पर मार्क किया गया' के तौर पर मार्क किया गया, ताकि आने वाले समय में इसे बेहतर तरीके से अंतरराष्ट्रीय मानकों के मुताबिक बनाया जा सके. (If24e4)
  • पैराग्राफ़ और मल्टीपैराग्राफ़ अब Constraints पैरामीटर को स्वीकार कर रहे हैं. फ़िलहाल, Constraints.maxHeight पास करने में कोई समस्या नहीं है. हालांकि, आने वाले समय में आपको कुछ कैलकुलेशन करने की सुविधा मिलेगी. जैसे, ऊंचाई के आधार पर एलिप्साइज़ करना. (I6afee, b/168720622)
  • SubcomposeSlotReusePolicy.getSlotsToRetain() अब कस्टम म्यूटेबलसेट-जैसी क्लास स्वीकार करता है जो इसमें नए आइटम जोड़ने की अनुमति नहीं देती है. (Icd314)
  • PointerIcon अब एक @Stable इंटरफ़ेस (I9dafe) है
  • PointerInputChange में कुछ हद तक इस्तेमाल (डाउन या पोज़िशन) पर रोक लगा दी गई है. इस बदलाव का पूरा इस्तेमाल करने के लिए, consume() का इस्तेमाल किया जा सकता है. isConsumed का इस्तेमाल करके, यह पता लगाया जा सकता है कि पहले किसी दूसरे व्यक्ति ने इस बदलाव का इस्तेमाल किया है या नहीं.
  • PointerInputChange::copy() अब हमेशा कम जानकारी वाली कॉपी बनाता है. इसका मतलब है कि अगर किसी वीडियो की कॉपी मिटा दी जाती है, तो उस वीडियो की PointerInputChange कॉपी मिटा दी जाएंगी. अगर आपको अनबाउंड PointerInputChange बनाना है, तो इसके बजाय कंस्ट्रक्टर का इस्तेमाल करें. (Ie6be4, b/225669674)
  • लिखें और लिखें के बीच, लिखें > व्यू. इसका मतलब है कि कंपोज़ पैरंट, नेस्ट किए गए स्क्रोल व्यू से नेस्ट किए गए स्क्रोल डेल्टा पा सकेंगे. (If7949, b/174348612)
  • नया SemanticsProperty testTagsAsResourceId, जिसका इस्तेमाल व्यू सिस्टम के लिए डिज़ाइन किए गए UIAutomator परीक्षणों के साथ Compose को बनाने के लिए किया जा सकता है. (I39c20)
  • FontFamily.SansSerif का इस्तेमाल करते समय, Android पर सिस्टम फ़ॉन्ट के लिए उपलब्ध सभी वज़न दिखाएं. यह API 21-28 पर आंतरिक रूप से San-Serif-medium जैसे फ़ॉलबैक फ़ॉन्ट नामों का इस्तेमाल करेगा. यह व्यवहार में बदलाव है, क्योंकि पहले सिर्फ़ एपीआई 21-28 पर वेट 400 और 700 काम करते थे. (I380fe, b/156048036, b/226441992)
  • पैराग्राफ़ और मल्टीपैराग्राफ़र ने वैकल्पिक आर्ग्युमेंट से पहले, पोज़िशनल आर्ग्युमेंट का क्रम बदला. (इदाफ़ा)
  • AndroidFont अब typefaceLoader को कंस्ट्रक्टर पैरामीटर के तौर पर इस्तेमाल करता है. (I2c971)

वर्शन 1.2.0-alpha07

6 अप्रैल, 2022

androidx.compose.ui:ui-*:1.2.0-alpha07 रिलीज़ हो गया है. वर्शन 1.2.0-alpha07 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • नया फ़ंक्शन Snapshot.withoutReadObservation { ... } जोड़ा गया. इससे उपयोगकर्ता, इस ब्लॉक के दौरान पढ़े गए स्टेट वैल्यू में हुए बदलावों की सदस्यता लिए बिना, पास किए गए Lambda फ़ंक्शन को चला सकते हैं. यह विकल्प, इस्तेमाल के उन मामलों में फ़ायदेमंद साबित हो सकता है जब आपको स्नैपशॉट पर आधारित थ्रेड के सुरक्षित कॉन्टेंट/रीड से फ़ायदा पाना हो, लेकिन आपको बिना ज़रूरत के उसे बदले या फिर से मेज़र किए बिना वैल्यू को पढ़ना हो. (I9f365, b/214054486)
  • ComposeView की consumeWindowInsets एक्सटेंशन प्रॉपर्टी की मदद से, डेवलपर Android WindowInsets के इस्तेमाल की सुविधा बंद कर सकते हैं. इससे हर एक WindowInsets को लागू करने के लिए, क्रम में अलग-अलग ComposeViews का इस्तेमाल किया जा सकता है. इसके लिए एक-दूसरे की ज़रूरत नहीं पड़ती. (I0ef08, b/220943142)
  • खास तौर पर, IME में दशमलव सेपरेटर को शामिल करने के लिए, KeyboardType.Decimal को Keyboard.Number के विकल्प के तौर पर जोड़ा गया. (Iec4c8, b/209835363)
  • PointerEventType.Scroll और PointerEvent.scrollDelta अब स्टेबल एपीआई हैं (I574c5, b/225669674)
  • व्यू क्लास में सहयोग करने के लिए, View और Compose के बीच नेस्ट किए गए स्क्रोल इंटरऑप को चालू करें. इसका मतलब है कि अब कंपोज़ की सुविधा, स्क्रोल डेल्टा को (सहयोगी) व्यू पैरंट में भेज सकती है. (I5d1ac, b/174348612)
  • पूरे सिस्टम पर बोल्ड टेक्स्ट की सुलभता सेटिंग (I6c1e7) को इंटिग्रेट करने के लिए, FontFamily.Resolver को अपडेट किया गया
  • Font(AssetManager, String, ...) के इस्तेमाल पर रोक लगा दी गई है और इसे Font(String, AssetManager, ...) से बदल दिया गया है. इस एपीआई को एक्सपेरिमेंट के तौर पर शुरू किया गया है. (I1c7a4)
  • फ़ॉन्ट फ़ॉलबैक चेन के दौरान, सिस्टम से इंस्टॉल किए गए फ़ॉन्ट खोजने के लिए, नया फ़ॉन्ट डिस्क्रिप्टर Font(DeviceFontFamilyName) जोड़ें. (I30468, b/219754572)
  • TextStyle/ParagraphStyle में includeFontPadding के लिए, साथ काम करने से जुड़ा अस्थायी कॉन्फ़िगरेशन जोड़ा गया. includeFontPadding को TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) के ज़रिए बदला जा सकता है. यह, माइग्रेशन की सुविधा को चालू करने के लिए कुछ समय के लिए उपलब्ध कॉन्फ़िगरेशन का विकल्प है. इसे हटा दिया जाएगा. (If47be, b/171394808)
  • डीबग करने में मदद पाने के लिए, GoogleFont.Provider.isAvailableOnDevice एक्सटेंशन जोड़ें. (I64e31)
  • @ArrayRes (Ic5ee1, b/225984280) के साथ इस्तेमाल करने के लिए, GoogleFont.Provider कंस्ट्रक्टर जोड़ें
  • Compose GoogleFont को अब Font(GoogleFont) कहा जाता है. अगर ऐसा नहीं है, तो एपीआई ठीक से काम करेगा. (I125f2)

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

  • मटीरियल/स्कैफ़ोल्ड में लिंट की जांच जोड़ी गई, ताकि यह पक्का किया जा सके कि इनर पैडिंग का इस्तेमाल किया जा रहा है (Ifb111)

वर्शन 1.2.0-alpha06

23 मार्च, 2022

androidx.compose.ui:ui-*:1.2.0-alpha06 रिलीज़ हो गया है. वर्शन 1.2.0-alpha06 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • फ़ोकस करने लायक टारगेट पर फ़ोकस करने के अनुरोध के लिए, RequestFocus सिमेंटिक्स कार्रवाई जोड़ी गई. (I17b71)
  • अगर मौजूदा लेआउट हो, तो VectorPainter का कॉन्टेंट फ़्लिप करने के लिए, वेक्टर ड्रॉ करने लायक एलिमेंट की पार्सिंग अपडेट की गई दिशा RTL है. (I79cd9, b/185760237)
  • एपीआई के साथ काम करने के लिए, शैडो/ऐंबियंट कलर को Modifier.graphicsLayer के पीछे के पैरामीटर के तौर पर अपडेट किया गया है (I3f864, b/160665122)

  • एपीआई में लगातार बदलाव करने की सुविधा को पक्का करने के लिए, GraphicsLayerScope को शैडो/ऐंबियंट कलर में डिफ़ॉल्ट तौर पर लागू किया गया है

  • आरएसबी इवेंट (Ief8ae) में इवेंट का समय जोड़ा गया

  • FocusOrder को अब FocusProperties में मर्ज कर दिया गया है और focusProperties() के पास अब focusOrder() से जुड़ी सभी सुविधाएं हैं. FocusOrder और focusOrder() के इस्तेमाल पर रोक लगा दी गई है. focusRequester को स्वीकार करने वाले focusOrder() को focusProperties() के साथ, focusRequester() मॉडिफ़ायर से बदला जाना चाहिए. इससे मॉडिफ़ायर को बेहतर बनाने में मदद मिलती है. (I601b7)

  • RecyclerView और Compose, दोनों को अपग्रेड करने से, बच्चों के लिए कंपोज़ व्यू के साथ RecyclerViews के लिए भी बेहतर स्क्रोलिंग परफ़ॉर्मेंस मिलेगी.

  • पहले से मौजूद डिफ़ॉल्ट रणनीति को वापस पाने के लिए, ViewCompositionStrategy.Default को जोड़ें

  • ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer जोड़ें, जो कि नई डिफ़ॉल्ट रणनीति है और RecyclerView जैसे पूल करने वाले कंटेनर को सही तरीके से हैंडल करती है. (If7282)

  • मल्टीझलक सुविधा जोड़ने के पहले चरण के तौर पर, @Preview के साथ एनोटेशन क्लास की व्याख्या करने की सुविधा जोड़ी गई. इस तरह के एनोटेशन का इस्तेमाल, कंपोज़ेबल तरीकों या एनोटेशन क्लास के बारे में बताने के लिए किया जा सकता है. इसके बाद, उन्हें दिए गए @Preview के साथ सीधे तौर पर जानकारी देने वाला एनोटेशन माना जा सकता है. (I12eff)

  • @Preview (I071c9) के लिए डिवाइस की सूची में रेफ़रंस डिवाइस जोड़े गए

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

  • @UiComposable (I942bc) के बजाय, कंपोज़ेबल एनोटेशन का इस्तेमाल करने के लिए अपडेट किए गए वेक्टर ग्राफ़िक एपीआई
  • AnnotatedString.Builder.withStyle (If84d5) से क्रॉस-इनलाइन हटाएं

बाहरी योगदान

  • लिखें-ui: GraphicsLayerScope (I1ba1a, b/160665122) में ambientShadowColor और spotShadowColor प्रॉपर्टी जोड़ें
  • बहुवचन संसाधन अब pluralStringResource फ़ंक्शन के ज़रिए काम करते हैं. (Ib2f23, b/191375123)

वर्शन 1.2.0-alpha05

9 मार्च, 2022

androidx.compose.ui:ui-*:1.2.0-alpha05 रिलीज़ हो गया है. वर्शन 1.2.0-alpha05 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • TextToolbar अब इसके बजाय lambda आर्ग्युमेंट को इस्तेमाल करता है ActionCallback. (Ib2eb9, b/197950089)
  • तिरामीसु DP2 (I0cbb7) से मैच करने के लिए, कोर और ऐपकंपैट में शून्य होने की संभावना को अपडेट किया गया
  • मेज़र किया गया इंटरफ़ेस अब parentData प्रॉपर्टी (I3313f) को दिखाता है
  • Modifier.onPlaced और OnPlacedModifier इंटरफ़ेस अब स्थिर हो गया है. (Ib5482)
  • हुर्रे! 'लिखें' ऐनिमेशन अब काम करता है 'एनिमेटर अवधि का स्केल' 'डेवलपर के लिए सेटिंग और टूल' से सेटिंग. (I5a4fc, b/161675988)
  • एक BeyondBoundsLayout मॉडिफ़ायर स्थानीय जोड़ा गया (If8b51, b/184670295)
  • टेक्स्ट: includeFontPadding अब डिफ़ॉल्ट रूप से बंद है. कॉन्टेंट बनाने includeFontPadding=false की वजह से क्लिप बनाने से जुड़ी समस्याएं ठीक की गईं साथ ही, लंबी स्क्रिप्ट के लिए कोई क्लिपिंग नहीं होनी चाहिए. (I31c84, b/171394808)

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

  • ComposeContentTestRule.setContent अब एक अगर कॉन्टेंट पहले से मौजूद है, तो उसे सेट करने पर IllegalStateException कॉन्टेंट. (I888a5, b/199631334)
  • से पढ़ते समय क्लिपबोर्ड सामग्री के कारण होने वाला क्रैश ठीक किया गया Android पर क्लिपबोर्ड इस्तेमाल करें. (I06020, b/197769306)
  • आरएसबी स्क्रोलिंग सैंपल को बेहतर बनाएं. (I6a596)

बाहरी योगदान

  • Kotlinx कोरूटीन 1.6.0 (I3366d) का इस्तेमाल करने के लिए अपडेट किया गया

वर्शन 1.2.0-alpha04

23 फ़रवरी, 2022

androidx.compose.ui:ui-*:1.2.0-alpha04 रिलीज़ हो गया है. वर्शन 1.2.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • ComposableTarget, ComposableTargetMarker, और लोगों को जोड़ा गया ComposableOpenTarget जो कब के समय की रिपोर्टिंग को इकट्ठा करने की अनुमति देता है कंपोज़ेबल फ़ंक्शन को किसी ऐसे एप्लीयर को टारगेट करना कहते हैं जो पहले नहीं था जिन्हें इस्तेमाल करने के लिए डिज़ाइन किया गया है.

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

    कस्टम ऐप्लायर के लिए, कंपोज़ेबल फ़ंक्शन ComposeNode या ReusableComposeNode को जोड़ने की ज़रूरत है फ़ंक्शन और किसी भी फ़ंक्शन के लिए, ComposableTarget एनोटेशन कंपोज़ेबल लैम्डा पैरामीटर प्रकार. हालांकि, हमारा सुझाव है कि के साथ एक ऐसी व्याख्या बनाएं ComposableTargetMarker और फिर मार्क की गई जानकारी का इस्तेमाल करें ComposableTarget लिखने के बजाय बनाया गया है. कंपोज़ेबल एनोटेशन ComposableTargetMarker से मार्क की गई वैल्यू, इसके बराबर है एट्रिब्यूट के पूरी तरह क्वालिफ़ाइड नाम के साथ ComposbleTarget क्लास का इस्तेमाल applier पैरामीटर के तौर पर करें. उदाहरण के लिए, ComposableTargetMarker anroidx.compose.ui.UiComposable देखें. (I38f11)

  • Font(resId, ...), अब स्टेबल एपीआई के लिए लोड होने वाली रणनीति को इस्तेमाल करता है. (Ief3d2)

  • FontLoadingStrategy अब स्टेबल एपीआई के तौर पर काम कर रहा है. (I1ee35, b/174162090)

  • टेक्स्ट में एक साथ काम नहीं करने वाले फ़ॉन्ट लोड करने की सुविधा (I77057, b/214587005)

  • पसंद के मुताबिक Font.ResourceLoader को FontFamily.Resolver में बदलने के लिए ब्रिज एपीआई जोड़ें. (Ia0060)

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

  • दिए गए FontFamily.Resolver, सबकंपोज़िशन को पास किए गए हैं जैसे कि पॉप-अप.
  • दिए गए Font.ResourceLoader, सबकंपोज़िशन को पास किए गए हैं जैसे कि पॉप-अप. (I48fa5)

वर्शन 1.2.0-alpha03

9 फ़रवरी, 2022

androidx.compose.ui:ui-*:1.2.0-alpha03 रिलीज़ हो गया है. वर्शन 1.2.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • TextInputSession में notifyFocusedRect तरीके और TextInputService के इस्तेमाल पर रोक लगा दी गई है और उन्हें कॉल नहीं किया जाएगा. इस्तेमाल की जाने वाली चीज़ें अगर आपके पास इन फ़ॉर्मैट की फ़ाइल नहीं है, तो BringIntoViewRequester बटन का इस्तेमाल करें. (Ia4302, b/192043120, b/216842427, b/178211874)
  • destroyDisplayListData को पहली बार लॉन्च किया गया RenderNode के स्टब क्लास के लिए तरीका (I1e659, b/216660268)
  • एक नया एपीआई जोड़ा गया, जो पहले से बनाए गए SubcomposeLayout के बच्चों का पहले से आकलन करने की सुविधा देता है. (I857ea)
  • movableContentOf को जोड़ा गया, जो कंपोज़ेबल को कन्वर्ट कर देता है लैम्डा को एक लैम्डा में ले जाता है, जो उसे स्थिति और संबंधित नोड पर स्थानांतरित करता है, तो उसे किसी भी नए स्थान पर ले जाया जाएगा. पिछले कॉल के जाने पर स्थिति कुछ समय के लिए सेव रखी जाती है. साथ ही, अगर नया कॉल किया जाता है, पहले कंपोज़िशन के बाद राज्य और उससे जुड़े नोड, नए कॉल की जगह पर ले जाए जाते हैं. अगर कोई नया कॉल जोड़ा गया राज्य हमेशा के लिए हटा दिया जाता है और याद रखें कि ऑब्ज़र्वर सूचना दी गई.

    अगर movableContentOf लैम्डा को एक ही बार में कई बार कॉल किया जाता है कंपोज़िशन, नई स्थिति, और नोड हर कॉल के लिए बनाए जाते हैं. कॉल कंपोज़िशन से बाहर हो जाते हैं और नए कॉल आते हैं, तो स्थिति बदल गई है पहली बार छोड़ने वाले कॉल से लेकर दर्ज किए गए कॉल तक तो उन्हें कॉल किया जाता है. नए कॉल से जिन स्थितियों पर दावा नहीं किया गया है उन्हें हटा दिया गया है स्थायी रूप से. (Ib4850)

  • FontFamilyResolver अब LocalFontFamilyResolver.current पर उपलब्ध है

  • नया दस्तावेज़ बनाने के लिए, createFontFamilyResolver(context) और createFontFamilyResolver(context, coroutineScope) को जोड़ा गया ऐसा फ़ॉन्ट फ़ैमिली रिज़ॉल्वर, जिसमें कंपोज़ की सुविधा का इस्तेमाल नहीं किया जा सकता.

  • पैराग्राफ़ और मल्टीपैराग्राफ़ अब FontFamily.Resolver लेते हैं

  • TextLayoutResult.layoutInput.fontFamilyResolver में अब यह शामिल है इस लेआउट के लिए इस्तेमाल किया गया रिज़ॉल्वर, जो अब काम नहीं करता TextLayoutResult.layoutInput.resourceLoader का इस्तेमाल नहीं किया जा रहा है. (Id5a45, b/174162090)

  • फ़ॉलबैक के साथ, एक साथ काम नहीं करने वाली और वैकल्पिक फ़ॉन्ट लोडिंग के लिए सहायता व्यवहार. इस पाथ का इस्तेमाल Text और TextField में किया जाता है. साथ ही, इसे दिखाया जाता है फ़ॉन्ट फ़ैमिली रिज़ॉल्वर

  • FontFamilyResolver.preload के ज़रिए फ़ॉन्ट पहले से लोड करने की सुविधा

  • FontFamilyResolver.setAsyncLoadContext आपको यह सेट करने की अनुमति देता है: ग्लोबल कोरूटीन कॉन्टेक्स्ट का इस्तेमाल, एक साथ काम नहीं करने वाले फ़ॉन्ट लोड करने में किया जाता है. (I87fe8, b/174162090)

  • AndroidFont को जोड़ा गया. यह नए टाइप के लिए, कम लेवल का एक नया एपीआई है के फ़ॉन्ट रिसॉर्स डिस्क्रिप्टर का इस्तेमाल किया जाता है. उदाहरण के लिए, ऐप्लिकेशन पर आधारित बैकएंड, जो विकल्प के तौर पर पहले से इंस्टॉल किए गए फ़ॉन्ट की खोज करता हो डिवाइस पर सेव किया जा सकता है या ऐसे संसाधन से फ़ॉन्ट लोड किया जा रहा है जिसे मौजूदा फ़ॉन्ट की फ़ैक्ट्री.

  • Font.ResourceLoaded एपीआई को बड़ा किया गया, ताकि वह वैकल्पिक और एक साथ काम नहीं करने वाली सुविधाओं के साथ काम कर सके फ़ॉन्ट लोड हो रहा है. यह सुझाव नहीं दिया जाता है कि ऐप्लिकेशन डेवलपर इसका इस्तेमाल करें एपीआई को सीधे तौर पर इस्तेमाल किया जा सकता है. नए तरह के फ़ॉन्ट जोड़ने के लिए AndroidFont देखें.

  • Font.AndroidResourceLoader एक्सटेंशन फ़ंक्शन की अनुमति है कंपोज़िशन से बाहर होने पर Font.ResourceLoader का स्ट्रक्चर.

  • अनुमति देने के लिए, संसाधन-आधारित फ़ॉन्ट में loadingStrategy पैरामीटर जोड़ा गया जब संसाधन फ़ॉन्ट डाउनलोड किए जा सकने वाले फ़ॉन्ट एक्सएमएल का रेफ़रंस देता है, तो एसिंक्रोनस लोडिंग हो रही है. (Ie5aea, b/174162090)

  • Typeface(FontFamily) कंस्ट्रक्टर अब काम नहीं करता. यह था इसे पहले फ़ॉन्ट को प्रीलोड करने के लिए इस्तेमाल किया जाता था. इसे डाउनलोड किए जा सकने वाले फ़ॉन्ट. डाउनलोड किए जा सकने वाले फ़ॉन्ट का इस्तेमाल करने पर, हो सकता है कि यह कॉल 10 लोगों के लिए भी ब्लॉक हो जाए सेकंड. इसके बजाय, FontFamilyResolver.preload का इस्तेमाल करें.

  • fontResource(FontFamily): Typeface के इस्तेमाल पर रोक लगा दी गई है. यह था इसे पहले फ़ॉन्ट को प्रीलोड करने के लिए इस्तेमाल किया जाता था. इसे डाउनलोड किए जा सकने वाले फ़ॉन्ट. इसके बजाय, FontFamilyResolver.preload (If8e7c, b/174162090) का इस्तेमाल करें

  • maxSlotsToRetainForReuse को स्वीकार करने वाला SubcomposeLayoutState कंस्ट्रक्टर अब काम नहीं करता. इसके बजाय एक नया कंस्ट्रक्टर है, जो SubcomposeSlotReusePolicy को स्वीकार करता है - एक नया इंटरफ़ेस, जो इस बात पर ज़्यादा बेहतर कंट्रोल देता है कि आने वाले समय में फिर से इस्तेमाल करने के लिए, कौनसे स्लॉट सेव करके रखने चाहिए. (I52c4d)

  • Color के एचएसवी और एचएसएल फ़ंक्शन को, गैर-प्रयोग के तौर पर दिखाता है एपीआई. Oklab कलर स्पेस अब सार्वजनिक एपीआई हो गया है. (I08fb6, b/180731008)

  • AndroidComposeTestRule.AndroidComposeStatement अब सेवा में नहीं है, जो सार्वजनिक एपीआई में नहीं था और आपके लिए कोई काम नहीं किया है. (Ibc46b)

  • अंदरूनी तौर पर जनरेट की गई kt क्लास का नाम बदलना (Ia0b9e, b/174162090)

  • FontLoadingStrategy.values (I42a9d, b/174162090) को हटाया गया

  • ग्लोबल फ़ॉन्ट लोडर को अब FontFamilyResolver कहा जाता है. (I4f773, b/174162090)

  • डेस्कटॉप के लिए, नया फ़ॉन्ट लोडिंग सिस्टम इस्तेमाल करें. (I9ce5c, b/174162090)

  • FontFamily.Resolver.resolve, State<Any> (I4406c, b/174162090) लौटाता है

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

  • टेक्स्ट फ़ील्ड को अब कीबोर्ड के ऊपर तब रखा जाएगा, जब वे जब सॉफ़्ट इनपुट मोड चालू होता है, तब इस पर फ़ोकस किया जाता है और कीबोर्ड दिखता है ADJUST_PAN. (I8eaeb, b/190539358, b/192043120)
  • डेस्कटॉप, FontFamily.Resolver के लिए कंपोज़िशन स्थानीय का इस्तेमाल करता है
  • FontLoader डेस्कटॉप अब काम नहीं करता
  • डेस्कटॉप पर नई createFontFamilyResolver फ़ैक्ट्री (I6bbbb, b/174162090)
  • सॉफ़्ट कीबोर्ड इनपुट टाइप को बदलते समय, अब फ़्लिकर नहीं होता टेक्स्ट फ़ील्ड के बीच फ़ोकस करें. (I1bf50, b/187746439)

वर्शन 1.2.0-alpha02

26 जनवरी, 2022

androidx.compose.ui:ui-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • घुमावदार साइड बटन (I18bf5, b/210748686) वाले Wear डिवाइसों के लिए, Modifier.onRotaryScrollEvent() और Modifier.onPreRotaryScrollEvent() को जोड़ा गया
  • प्रयोग के तौर पर View.createLifecycleAwareRecomposer जोड़ें एक्सटेंशन (I0cde6)

बाहरी योगदान

  • PointerEvent.scrollDelta.y अब Android पर उलटा हो गया है (अगर हम माउस व्हील को दाईं ओर झुकाते हैं, तो अब यह -1 के बजाय 1 नतीजे दिखाता है) (Ia9811)

वर्शन 1.2.0-alpha01

12 जनवरी, 2022

androidx.compose.ui:ui-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • FontFamily.canLoadSynchronously अब काम नहीं करता. इस प्रॉपर्टी में ये शामिल हैं इसका कोई मतलब नहीं है. (Ica5ef)
  • जनरेट करने के लिए, आइडेंटिटी फ़ील्ड को CompositionData में जोड़ा गया में इनवैरिएंट आईडी का इस्तेमाल करें. (Ic116e)
  • झलक दिखाने वाले डिवाइसों की सूची में, Wear OS डिवाइस के आईडी जोड़े गए (I93232)

डिपेंडेंसी से जुड़े अपडेट

  • अब Kotlin 1.6.10 पर निर्भर करता है.

वर्शन 1.1

वर्शन 1.1.1

23 फ़रवरी, 2022

androidx.compose.ui:ui-*:1.1.1 रिलीज़ हो गया है. वर्शन 1.1.1 में ये कमियां शामिल हैं.

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

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462) पर जाकर, NullPointerException से जुड़ी गड़बड़ियों को ठीक करें
  • से पढ़ते समय क्लिपबोर्ड सामग्री के कारण होने वाला क्रैश ठीक किया गया Android पर क्लिपबोर्ड इस्तेमाल करें. (I06020, b/197769306)
  • LazyVerticalGrid में तय RTL (aosp/1931080, b/207510535)

वर्शन 1.1.0

9 फ़रवरी, 2022

androidx.compose.ui:ui-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये कमियां शामिल हैं.

1.0.0 के बाद के अहम बदलाव

  • Android 12 ओवरस्क्रोल इफ़ेक्ट के लिए बेहतर सहायता
  • टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) के साइज़ में सुधार
    • ध्यान दें कि Compose 1.0 के हिसाब से मटीरियल कॉम्पोनेंट अपने लेआउट स्पेस को बड़ा करेंगे, ताकि टच टारगेट साइज़ के लिए, मटीरियल सुलभता से जुड़े दिशा-निर्देश पूरे हो सकें. उदाहरण के लिए, बटन के टच टारगेट का साइज़ कम से कम 48x48dp तक हो जाएगा, भले ही आपने बटन का साइज़ छोटा सेट किया हो. यह कंपोज़ मटीरियल को मटीरियल डिज़ाइन कॉम्पोनेंट के समान व्यवहार से अलाइन करता है, ताकि व्यू और कंपोज़ को मिक्स करने पर उन्हें एक जैसा व्यवहार मिले. इस बदलाव से यह भी पक्का होगा कि जब Compose मटीरियल कॉम्पोनेंट का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाया जाता है, तब टच टारगेट की सुलभता से जुड़ी कम से कम ज़रूरी शर्तें पूरी हो जाएं.
  • नेविगेशन रेल के लिए बेहतर सुविधा
  • पहले के प्रयोग से जुड़े कई एपीआई को लगातार बेहतर बना देता है
  • Kotlin के नए वर्शन के लिए सहायता

वर्शन 1.1.0-rc03

26 जनवरी, 2022

androidx.compose.ui:ui-*:1.1.0-rc03 रिलीज़ हो गया है. वर्शन 1.1.0-rc03 में ये कमिट शामिल हैं.

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

  • Compose Material 1.1.0-rc03 के साथ काम करने के लिए अपडेट किया गया

वर्शन 1.1.0-rc01

15 दिसंबर, 2021

androidx.compose.ui:ui-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये कमिट शामिल हैं.

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

  • उस गड़बड़ी को ठीक किया गया जिसकी वजह से सुलभता स्क्रोल करने पर कार्रवाइयां नहीं की जा रही थीं (I7cbfb)
  • अगर HardwareRenderer.isDrawingEnabled(), false है, तो अब SemanticsNodeInteraction.captureToImage() भी काम करेगा. ऐसा करने के लिए, इसे कॉल के दौरान चालू करें (Idf3d0)

वर्शन 1.1.0-beta04

1 दिसंबर, 2021

androidx.compose.ui:ui-*:1.1.0-beta04 रिलीज़ हो गया है. वर्शन 1.1.0-beta04 में ये तय किए गए अपडेट शामिल हैं.

नई सुविधाएं

  • Kotlin 1.6.0 के साथ काम करने के लिए अपडेट किया गया

एपीआई में किए गए बदलाव

  • androidx.core.view (I7078a, b/204917439) में शून्य से जुड़ी वैल्यू हटाई गई
  • प्रयोग के तौर पर इस्तेमाल किए जाने वाले एपीआई जोड़े गए थे, जो उपयोगकर्ताओं को Pointerइनपुटchange का इस्तेमाल करने की सुविधा देते हैं. इसके अलावा, वे यह भी देख सकते हैं कि इस एपीआई का इस्तेमाल किया गया है या नहीं. (I2e59d)
  • यूज़र इंटरफ़ेस (यूआई) लेयर में, माउस स्क्रोल व्हील इवेंट के साथ काम करता है. (Ia14eb, b/198214718)
  • ऐसे Modifier.composed ओवरलोड जोड़ें जो प्रयोग के तौर पर जोड़े गए हैं और जिन्हें स्वीकार किया जाता है कुंजियों का इस्तेमाल करें, ताकि समानता की तुलना की जा सके और ऑप्टिमाइज़ेशन स्किप किया जा सके. (Ice799, b/205851704)
  • इसके बजाय, ComposeNotIdleException का समय अब Exception से बढ़ा है सीधे Throwable से. ध्यान दें कि इसका मतलब है कि कैच क्लॉज़ Exception को पकड़ने वाली ऑडियंस को ComposeNotIdleException का है, जहां वे पहले ऐसा नहीं करते थे. (I9c217)

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

  • IME के दिखने की सेटिंग में बदलाव होने पर, न हिलने वाले टेक्स्ट हैंडल की समस्या ठीक करें. (I25f2e)

वर्शन 1.1.0-beta03

17 नवंबर, 2021

androidx.compose.ui:ui-*:1.1.0-beta03 रिलीज़ हो गया है. वर्शन 1.1.0-beta03 में ये कमिट शामिल हैं.

एपीआई में किए गए बदलाव

  • अनुमति देने के लिए नया मॉडिफ़ायर Modifier.onPlaced जोड़ा गया प्लेसमेंट में बदलाव देखा जा सकता है. अतिरिक्त बदलाव इसलिए, चाइल्ड मॉडिफ़ायर का ऑफ़सेट इस आधार पर बनाया जा सकता है प्लेसमेंट में बदलाव हुआ है. (I558fd)
  • InjectionScope.flush() को हटाया गया और InjectionScope.dispose(). सभी घटनाओं को प्राथमिकता देना और स्कोप अब परफ़ॉर्म*इनपुट() तरीके के आखिर में होता है, जैसे से पहले. (I2bed8)
  • MultiModalInjectionScope.Touch को हटाया गया और MultiModalInjectionScope.Mouse. टच और माउस इंजेक्ट करने के लिए इवेंट के लिए, मल्टी-मोडल जेस्चर के लिए इवेंट सेट अप करें, जिनका इस्तेमाल अब किया जा सकता है MultiModalInjectionScope.touch() और MultiModalInjectionScope.mouse(), दोनों में एक Lambda फ़ंक्शन है, जो पाने वाले के पास इस सुविधा का स्कोप है. (Idde18)

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

  • इसके लिए durationMillis की डिफ़ॉल्ट वैल्यू TouchInjectionScope.swipeWithVelocity का हिसाब अब ऐसे लगाया जाता है कि स्वाइप करना संभव है. (I19deb)

वर्शन 1.1.0-beta02

3 नवंबर, 2021

androidx.compose.ui:ui-*:1.1.0-beta02 रिलीज़ हो गया है. वर्शन 1.1.0-beta02 में ये तय किए गए हिस्से शामिल हैं.

एपीआई में किए गए बदलाव

  • प्रयोग के तौर पर BringIntoView API जोड़ा गया. इसकी मदद से, माता-पिता को अनुरोध भेजा जा सकता है, ताकि वे किसी आइटम को देखने के लिए उसे स्क्रोल कर सकें (Ib918d, b/195353459)
  • सहायक टूलिंग के लिए नए ऐनिमेशन एपीआई. खास तौर पर, वे टूलिंग को ऐनिमेशन की जाँच करने और कॉन्फ़िगरेशन को ट्रांज़िशन. (I4116e)

बाहरी योगदान

  • Modifier.pointerHoverIcon (I95f01) जोड़ा गया

वर्शन 1.1.0-beta01

27 अक्टूबर, 2021

androidx.compose.ui:ui-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये तय किए गए हिस्से शामिल हैं.

एपीआई में किए गए बदलाव

  • प्रयोग के तौर पर BringIntoView एपीआई जोड़ा गया. इसकी मदद से माता-पिता को अनुरोध भेजा जा सकता है, ताकि वे किसी आइटम को देखने के लिए उसे स्क्रोल कर सकें (Ib918d, b/195353459)
  • सहायक टूलिंग के लिए नए ऐनिमेशन एपीआई. खास तौर पर, वे टूलिंग को ऐनिमेशन की जाँच करने और कॉन्फ़िगरेशन को ट्रांज़िशन. (I4116e)

वर्शन 1.1.0-alpha06

13 अक्टूबर, 2021

androidx.compose.ui:ui-*:1.1.0-alpha06 रिलीज़ हो गया है. वर्शन 1.1.0-alpha06 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • ViewRootForInspector से ExperimentalComposeUiApi हटाएं और LayoutInfo.ownerViewId (I5c2e3)
  • लेआउट के लिए, चाइल्ड-लेस ओवरलोड जोड़ा गया. साथ ही, इसकी क्षमता को बेहतर बनाया गया (Ib0d9a)
  • InternalCompilerApi को कंपोज़र के उन तरीकों से हटाया गया जो क्रॉस-मॉड्यूल (I1aa0b) नाम की ज़रूरत है
  • SemanticsNodeInteraction.performSemanticsAction का शुल्क अब वापस आ गया है SemanticsNodeInteraction जिस पर फ़ंक्शन को कॉल किया गया था. (I9e5db)
  • TouchMode/NonTouchMode का पता लगाने के लिए, LocalइनपुटModeManager ComposeLocal को जोड़ा गया. (I6a83c, b/175899786)
  • viewConfiguration: ViewConfiguration को LayoutInfo में जोड़ा गया इसका इस्तेमाल करने से, उपभोक्ताओं को लंबे समय तक दबाए रखकर कॉन्टेंट को सही तरीके से दिखाने में मदद मिलती है टाइम आउट हो गया. (I76ca6)
    • viewConfiguration: ViewConfiguration को इसमें जोड़ा गया InjectionScope, ताकि इन चीज़ों के आधार पर टेस्ट इनपुट इंजेक्शन को अडजस्ट किया जा सके टाइम आउट को दबाकर रखने या स्लोप को छुएं.
    • दोनों के लिए, देर तक दबाए रखने और दो बार टैप करने की डिफ़ॉल्ट अवधि बदली गई में दी गई वैल्यू पर आधारित टच और माउस इनपुट इस्तेमाल करें InjectionScope.viewConfiguration.
  • टेक्स्ट फ़ील्ड और ड्रॉपडाउन मेन्यू के साथ ExposedDropdown छहBox के आधार पर, ExposedDropdown ब्राउज़र को लागू करना (If60b2)
  • पॉप-अप प्रॉपर्टी में पेपरव्यू को खारिज करें. इसके बाद, इसे फ़िल्टर करने की सुविधा को हटा दें. हालांकि, यह सुविधा हटा दी गई है. नई प्रॉपर्टी को क्लिक का क्रम और ऐंकर बाउंड मिल जाते हैं. इससे, यह बेहतर कंट्रोल मिलता है कि onखारिजRequest को शुरू किया जाना चाहिए या नहीं. उदाहरण के लिए, इसका इस्तेमाल करके, ऐंकर को उसके टच को खारिज होने से रोका जा सकता है.
    • updatedAndroidWindowManagerFlags को PopupProperties में जोड़ा गया है. यह पॉप-अप के ज़रिए Android WindowManager को पास किए गए फ़्लैग पर कम लेवल का कंट्रोल देता है. लैम्डा का पैरामीटर, पॉपअप प्रॉपर्टी की उन वैल्यू से तय किए गए फ़्लैग होंगे जिनकी वजह से WindowManager फ़्लैग बनते हैं: जैसे, फ़ोकस करने लायक. Lambda फ़ंक्शन का नतीजा, आखिरी फ़्लैग होगा, जिसे Android WindowManager को भेजा जाएगा. डिफ़ॉल्ट रूप से, UpdateAndroidWindowManagerFlags पैरामीटर से तय किए गए फ़्लैग में कोई बदलाव नहीं करता. इस एपीआई का इस्तेमाल सावधानी से किया जाना चाहिए. यह सिर्फ़ उन मामलों में होना चाहिए जहां पॉप-अप के काम करने के लिए ज़रूरी शर्तें पूरी होती हों. (I6e9f9)
  • Recomposer.state को बंद कर दिया गया है और उसकी जगह ले ली गई है इसका टाइप बदलकर StateFlow (Ic2ab3, b/197773820) करने के लिए Recomposer.currentState
  • flush() और dispose() को InjectionScope में जोड़ा गया. उनका इस्तेमाल करें जब आप सूची में रखे गए सभी इवेंट को तुरंत हटाना चाहते हैं और जब को साथ-साथ हटाना भी चाहते हैं. (Ifb73a)
  • उसे performScrollToNode(matcher: SemanticsMatcher) जोड़ा स्क्रोल करने लायक कंटेनर को उस कॉन्टेंट पर स्क्रोल करता है जो दिया गया मैचर. (Ic1cb8)
  • InjectionScope अब Density को लागू करता है. इसकी मदद से, ये काम किए जा सकते हैं performTouchInput और दोस्तों में px और dp के बीच आसानी से कन्वर्ट करें. (I8fe1f)

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

  • AndroidView अब LocallifecycleOwner का प्रचार करता है और ViewTree LifecycleOwner के ज़रिए, इसके व्यू में LocalSavedStateRegistryOwner का इस्तेमाल कर रहा है और ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
  • कभी-कभी स्वाइप करने पर काम न करने वाले WearOS स्वाइप टु ख़ारिज को भी ठीक किया जा सकता है. (I9387e)
  • इंजेक्ट किए गए इनपुट इवेंट के बीच डिफ़ॉल्ट समय है 10 मि॰से॰ से बदलकर 16 मि॰से॰ किया गया. इससे जांच के नतीजे बदल सकते हैं जो इनपुट जेस्चर का इस्तेमाल करते हैं, जैसे कि कोई खास स्वाइप. (I829fd)

वर्शन 1.1.0-alpha05

29 सितंबर, 2021

androidx.compose.ui:ui-*:1.1.0-alpha05 रिलीज़ हो गया है. वर्शन 1.1.0-alpha05 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • इंटर-मॉडिफ़ायर कम्यूनिकेशन के लिए सहायता जोड़ी गई (Id5467, b/198826874)
  • PointerEventChange में, प्रयोग के तौर पर उपलब्ध पुराने पॉइंटर जोड़े गए. (Ic1fd8, b/197553056, b/199921305)
  • density: Density और layoutDirection: LayoutDirection को LayoutInfo में जोड़ा गया. इससे LayoutInfo के उपभोक्ताओं को अनुमति मिलती है LayoutInfo में दिखाए गए डाइमेंशन और पोज़िशन को समझने के लिए सही तरीके से. (I002f1)
  • माउस इवेंट इंजेक्ट करने के लिए, प्रयोग के तौर पर सहायता जोड़ी गई. इस्तेमाल की जाने वाली चीज़ें माउस इवेंट भेजने या माउस इवेंट भेजने के लिए performMouseInput MultiModalInjectionScope की Mouse प्रॉपर्टी के ज़रिए performMultiModalInput के साथ मल्टी मॉडल इनपुट जेस्चर. यहां जाएं: उपलब्ध एपीआई के दस्तावेज़ के लिए MouseInjectionScope. (Iaa4a8, b/190493367)

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

  • स्क्रोल करने लायक (लेज़ी और नॉन-लेज़ी) और स्क्रोलिंग के हिसाब से (I6cdb0)
  • TouchInjectionScope.swipeWithVelocity को बेहतर बनाया गया. इसे अभी करें और भी कई तरह के इनपुट वैरिएबल स्वीकार करता है और अगर स्वाइप नहीं किया जा सकता है, तो इनपुट करें (I40fbe, b/182477143)

वर्शन 1.1.0-alpha04

15 सितंबर, 2021

androidx.compose.ui:ui-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • PointerEvent के पास अब PointerEventType है होवर इवेंट का इस्तेमाल करने के लिए. (I091FA)
  • बच्चों को इसके बाहर पॉइंटर इनपुट स्वीकार करने की अनुमति दें माता-पिता के पॉइंटर की इनपुट सीमाएं. माता-पिता इन पाबंदियों को PointerइनपुटScope.alwaysInterceptChildEvents (I9eae3, b/192479655) के साथ कॉल
  • performGesture और GestureScope अब सेवा में नहीं हैं. इनमें ये शामिल हैं performTouchInput और TouchInjectionScope से बदल दिया गया है. (Ia5f3f, b/190493367)
  • SemanticsNode में touchBoundsInRoot को जोड़ा में कम से कम टच टारगेट साइज़ शामिल होता है, ताकि डेवलपर यह भी पक्का किया जा सकता है कि टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) सुलभता के कम से कम थ्रेशोल्ड को पूरा करते हैं. (I2e14b, b/197751214)
  • जांच करने लायक टूल को फिर से लागू करें (I927bc, b/191017532)
  • जांच किए जा सकने वाले पैरामीटर का नाम बदलकर, लिखा गया मिलान (I3a482, b/191017532) किया गया
  • performTouchInput और TouchInjectionScope को performTouchInput और TouchInjectionScope की जगह दूसरा रास्ता बनाया जा रहा है अन्य साधनों (जैसे माउस) के लिए इसका तरीका जानें.

    TouchInjectionScope में वही तरीके हैं जो GestureScope इस्तेमाल करते हैं. इन तरीकों में movePointerTo और movePointerBy के अपवाद हैं, जिन्हें का नाम बदलकर updatePointerTo और updatePointerBy किया गया. अन्य सभी तरीके एक जैसे हैं.

    TouchInjectionScope का व्यवहार करीब इसके समान है GestureScope, दो छोटे विवरण के साथ:

    1. डाउन इवेंट भेजते समय जब पॉइंटर बिना ले जाए गए थे एक स्थानांतरण इवेंट भेज रहा है (दूसरे शब्दों में, updatePointerTo() का उपयोग किया जाता है, लेकिन move() नहीं, और फिर down() को कॉल किया जाता है), पिछला लागू करने पर, इवेंट का समय पहले ही शुरू हो जाएगा और प्रॉपर्टी को एक जगह से दूसरी जगह ले जाया जाएगा डाउन इवेंट भेजने से पहले. नया तरीका अब भी इवेंट को एक से दूसरे इवेंट में ले जाएं, लेकिन इस विकल्प के तहत इवेंट के समय को आगे नहीं बढ़ाता स्थिति के हिसाब से बदलें.
    2. पॉइंटर के बिना माइग्रेट किए जाने के दौरान, अप इवेंट भेजते समय माइग्रेट करने का इवेंट भेजना (जैसा कि ऊपर बताया गया है), पिछली बार लागू होने की प्रक्रिया इवेंट के समय को आगे बढ़ाएगा और अप इवेंट. नए तरीके में ये दोनों काम नहीं करते: पॉइंटर सिर्फ़ अप इवेंट के ज़रिए दिखेंगे.

    आखिर में, TouchInjectionScope एक नया तरीका लॉन्च करता है मौजूदा स्थिति पाने के लिए currentPosition(pointerId: Int) दिया गया पॉइंटर. (If1191, b/190493367)

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

  • क्लिप को टच टारगेट की सीमाओं को पार करने की अनुमति दें टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) के लिए, क्लिप का हिस्सा. (I43e10, b/171509422)
  • Android 12 डिवाइसों पर, स्ट्रेच ओवरस्क्रोल की सुविधा जोड़ दी गई है. (Iccf3c, b/171682480)

वर्शन 1.1.0-alpha03

1 सितंबर, 2021

androidx.compose.ui:ui-*:1.1.0-alpha03 रिलीज़ हो गया है. वर्शन 1.1.0-alpha03 में ये कमियां हैं.

नई सुविधाएं

  • Kotlin 1.5.30 पर निर्भर करने के लिए, कंपोज़ 1.1.0-alpha03 को अपडेट किया गया. (I74545)

एपीआई में किए गए बदलाव

  • दूसरे मॉडिफ़ायर को रैप करने के लिए Modifier.inspectable को जोड़ा गया. (I1909b, b/191017532)
  • BlurredEdgeTreatment एपीआई जोड़ा गया ताकि ब्लर इफ़ेक्ट के इस्तेमाल को आसान बनाया जा सके क्लिप फ़्लैग के आम तौर पर इस्तेमाल होने वाले कॉम्बिनेशन और TileModes. ज़्यादातर मामलों में, धुंधला किए गए कॉन्टेंट को रेंडर करने में मूल कॉन्टेंट की सीमाओं से बाहर इन सीमाओं के बाहर के इलाकों को धुंधला करने के लिए किया जा सकता है जिसमें पारदर्शी काले रंग का या क्लिपिंग कॉन्टेंट हो कॉन्टेंट की सीमाओं के मुताबिक ब्लर कर्नेल के लिए जो कॉन्टेंट से परे आगे बढ़ते हैं सीमाओं. (I6b4b7, b/166927547)
  • रेंडर करने की सुविधा के लिए सहायता जोड़ी गई लिखें. ऑफ़सेटइफ़ेक्ट और साथ ही पेश किया ब्लर मॉडिफ़ायर का आसानी से इस्तेमाल किया जा सकता है. किसी हिस्से के लिए ब्लर विज़ुअल इफ़ेक्ट इस्तेमाल करना पर कम या ज़्यादा हो सकता है. (I0f6aa, b/166927547)
  • पेश किया गया Renderimpact API जिसे वैकल्पिक रूप से कॉन्फ़िगर किया जा सकता है बदलने के लिए Modifier.graphicsLayer परत की सामग्री को पढ़ सकता है. यह इसका इस्तेमाल किसी कंपोज़ेबल के कॉन्टेंट को धुंधला करने के लिए किया जा सकता है और कंपोज़िशन में चाइल्ड कंपोज़ेबल हैरारकी है. (I47c4d, b/166927547)
  • AwaitPointerEventScope में अब withTimeout() सुविधा उपलब्ध है और TimeoutOrNull() (I507f0, b/179239764, b/182397793) के साथ
  • ViewConfiguration में कम से कम टच टारगेट साइज़ जोड़ा गया को सिमैंटिक और पॉइंटर इनपुट में इस्तेमाल किया जा सकता है. (Ie861c)
  • TileMode.डेसिबल सहायता जोड़ें इसका इस्तेमाल करने पर, ब्लर इफ़ेक्ट के लिए दिए जाने वाले काम के बारे में जानें. (I7e8ed, b/166927547)
  • performScrollToIndex, performScrollToKey, hasScrollToIndexAction और hasScrollToKeyAction अब स्थिर एपीआई (I142ae, b/178483889) हैं
  • क्लिप की गई सीमाएं पाने के लिए, जांच का तरीका जोड़ा गया. (I6b28e)

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

  • isBounded तरीका हटाया गया ब्लररेडएजट्रीटमेंट से मिली जानकारी के आधार पर यह पता लगाने के लिए कि क्या पैरामीटर शून्य है. (I85d68)

वर्शन 1.1.0-alpha02

18 अगस्त, 2021

androidx.compose.ui:ui-*:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • PointerEvent अब पढ़ने के लिए काम करता है माउस बटन की स्थिति और कीबोर्ड मॉडिफ़ायर की स्थिति. (I6310c, b/180075467)
  • इंजेक्ट किए गए जेस्चर अब MainTestClock के समय का इस्तेमाल करते हैं यही सबसे अहम जगह है. इंजेक्ट किए गए इवेंट का मौजूदा समय performGesture को इस MainTestClock. (Ifb364, b/192064452)
  • DpRect(DpOffset, DpSize) कंस्ट्रक्टर जोड़ा गया (I2cf16, b/194219828)
  • DpSize क्लास को जोड़ा गया (I7abb1, b/194219828)

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

  • वेक्टर ग्राफ़िक xml अपडेट की गई ColorStateLists के साथ-साथ काम करने के लिए पार्स करना वेक्टरDrawables पर रूट कलर टिंट प्रॉपर्टी. (I86915, b/195668138)

वर्शन 1.1.0-alpha01

4 अगस्त, 2021

androidx.compose.ui:ui-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • RelocationRequester.bringIntoView अब रेक्टैंगल को पैरामीटर के तौर पर स्वीकार करता है. इसकी मदद से, हम किसी कंपोज़ेबल के किसी हिस्से को व्यू में ला सकते हैं (Ice2c5, b/194330245)
  • AnimatedImageVector और इससे जुड़े एपीआई अब नए वर्शन में उपलब्ध हैं androidx.compose.animation:animation-graphics मॉड्यूल. (I60873)
  • रीलोकेशन के अनुरोधों को मैनेज करने के लिए, एक्सपेरिमेंटल मॉडिफ़ायर जोड़ा गया. (I65a97, b/178211874)
  • ब्रशPainter API की शुरुआत की गई आर्बिट्रेरी ब्रश की ड्रॉइंग की मदद करने के लिए ColorPainter से मिलते-जुलते पेंटर में

    मूल साइज़ के लिए ब्रश एपीआई को अपडेट किया गया BringPainter (Ia2752, b/189466433) में क्वेरी किया गया पैरामीटर

  • वह DrawScope#drawImage तरीके को अपडेट किया गया सोर्स और डेस्टिनेशन रेक्टैंगल का इस्तेमाल करता है फ़िल्टर क्वालिटी का इस्तेमाल करने के लिए पैरामीटर. यह Pixel के लिए काम का है पिक्सलेट करने के लिए डिज़ाइन किया गया आर्ट जब इसे पिक्सल आधारित आर्ट के लिए बढ़ाया जा सकता हो. अपडेट किया गया BitmapPainter + इमेज कंपोज़ेबल इसके अलावा, फ़िल्टर क्वालिटी का एक वैकल्पिक फ़िल्टर भी इस्तेमाल किया जा सकता है. पैरामीटर (Ie4fb0, b/180311607)

  • ज़्यादा प्रॉम्प्ट देने के लिए, GestureScope.advanceEventTime तरीका जोड़ा गया इवेंट के समय को जेस्चर से कंट्रोल करें (Ibf3e2)

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

  • Google की सेवाओं का बेहतर इस्तेमाल करने के लिए, मॉडिफ़ायर बनाएं, तो यह पक्का करें कि Modifier.Paint लागू करने की प्रक्रिया पूरी हो कॉल आरेखण कॉन्टेंट बनाते हैं. पहले Modifier.Paint को लीफ नोड में होना चाहिए था हालाँकि, ऐसा करने से यह बदलाव लागू होने से रोकता है इसे किसी कंपोज़ेबल कंटेनर (उदाहरण के लिए, बॉक्स) पर कॉन्फ़िगर किए जाने से रोका गया हो या ऊपर सजावट का एक हिस्सा जोड़ा जा सकता है, जैसे कि Modifier.paint().border(). Modifier.Paint की मदद से दिए गए कॉन्टेंट का इस्तेमाल करने के बाद, पैनल के कॉन्टेंट को [व्यक्ति का नाम], हमारे व्यवहार में एक जैसा व्यवहार होता है. को चालू किया जा सकता है. (Ibb2a7, b/178201337, b/186213275)
  • डायलॉग, अब प्लैटफ़ॉर्म के साइज़ से जुड़े व्यवहार के हिसाब से होंगे. इस व्यवहार को बदलने के लिए, usePlatformDefaultWidth को 'गलत' पर सेट करें. (इफ़फ़ेड, b/192682388)
  • InfiniteAnimationPolicy को :compos:ui (I5eb09, b/160602714) में ले जाया गया
  • लेज़ी सूचियों और नियमित तौर पर स्क्रोल करने वाले कॉम्पोनेंट के लिए, सिमैंटिक ऐक्शन के ज़रिए स्क्रोल करने की सुविधा अब ऐनिमेटेड हो गई है (Id9066, b/190742024)

संस्करण 1.0

वर्शन 1.0.5

3 नवंबर, 2021

androidx.compose.ui:ui-*:1.0.5 रिलीज़ हो गया है. वर्शन 1.0.5 में ये कमियां शामिल हैं.

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

  • DiscoverStateOf इंस्टेंस से जुड़ी क्रैश ट्रैकिंग को ठीक किया गया है. (aosp/1792247)

वर्शन 1.0.4

13 अक्टूबर, 2021

androidx.compose.ui:ui-*:1.0.4 रिलीज़ हो गया है. वर्शन 1.0.4 में ये कमिट हैं.

डिपेंडेंसी से जुड़े अपडेट

  • Kotlin 1.5.31 पर निर्भर करने के लिए अपडेट किया गया

वर्शन 1.0.3

29 सितंबर, 2021

androidx.compose.ui:ui-*:1.0.3 रिलीज़ हो गया है. वर्शन 1.0.3 में ये कमियां शामिल हैं.

डिपेंडेंसी से जुड़े अपडेट

  • Kotlin 1.5.30 पर निर्भर करने के लिए अपडेट किया गया

वर्शन 1.0.2

1 सितंबर, 2021

androidx.compose.ui:ui-*:1.0.2 रिलीज़ हो गया है. वर्शन 1.0.2 में ये कमियां शामिल हैं.

कंपोज़ 1.0.2 रिलीज़ के साथ काम करने के लिए अपडेट किया गया. 1.0.2 लिखें, Kotlin 1.5.21 के साथ अब भी काम करता है.

वर्शन 1.0.1

4 अगस्त, 2021

androidx.compose.ui:ui-*:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये कमियां शामिल हैं.

डिपेंडेंसी से जुड़े अपडेट

  • Kotlin 1.5.21 पर निर्भर करने के लिए अपडेट किया गया.

वर्शन 1.0.0

28 जुलाई, 2021

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

1.0.0 की मुख्य सुविधाएं

यह Compose की पहली ऐसी रिलीज़ है जिसमें बदलाव नहीं किए जा सकते. ज़्यादा जानकारी के लिए, कृपया Compose की रिलीज़ से जुड़ा आधिकारिक ब्लॉग देखें!

आम समस्याएं

  • Android Studio Bumblebee Canary 4 या AGP 7.1.0-alpha04/7.1.0-alpha05 का इस्तेमाल करने पर, ये क्रैश हो सकते हैं:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    इसे ठीक करने के लिए, अपनी build.gradle फ़ाइल में minSdkVersion को कुछ समय के लिए बढ़ाकर 24+ करें. यह समस्या, Android Studio Bumblebee और AGP 7.1 के अगले वर्शन में ठीक कर दी जाएगी. (b/194289155)

वर्शन 1.0.0-rc02

14 जुलाई, 2021

androidx.compose.ui:ui-*:1.0.0-rc02 रिलीज़ हो गया है. वर्शन 1.0.0-rc02 में ये कमिट हैं.

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

  • डायलॉग, अब प्लैटफ़ॉर्म के साइज़ से जुड़े व्यवहार के हिसाब से होंगे. इस व्यवहार को बदलने के लिए, usePlatformDefaultWidth को 'गलत' पर सेट करें. (इफ़फ़ेड, b/192682388)

वर्शन 1.0.0-rc01

1 जुलाई, 2021

androidx.compose.ui:ui-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • यूज़र इंटरफ़ेस (यूआई) मॉड्यूल को ui-tooling और ui-tooling-preview में बांटें (Iefa28, b/190649014)

एपीआई में किए गए बदलाव

  • हटाए गए प्रयोग के तौर पर इस्तेमाल नहीं किया जा रहा FocusManager#moveFocusIn और FocusManager#moveFocusOut (I227d7, b/170154986, b/186567354, b/168510304)
  • कैनवस अब ContentDescription पैरामीटर के साथ काम करता है सुलभता. (Ib547c)
  • PopupProperties में useDefaultMaxWidth का नाम बदलकर usePlatformDefaultWidth कर दिया गया. (I05710)
  • डायलॉग बॉक्स अब स्क्रीन की पूरी चौड़ाई का इस्तेमाल कर सकते हैं. (I83929, b/190810877)
  • एचएसवी और एचएसएल कलर के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध सहायता जोड़ी गई प्रतिनिधित्व. (Id7cf8, b/180731008)

व्यवहार में बदलाव

  • लिखें @Preview अब यह उपलब्ध कराता है LocalActivityResultRegistryOwner, जो आपको ऐसे कंपोज़ेबल की झलक देखने के लिए जो एपीआई इस्तेमाल करते हैं, जैसे कि rememberLauncherForActivityResult(), जो निर्भर करता है मौजूदा मालिक पर लागू होती है. (Ib13d1, b/185693006)
  • लिखें @Preview अब यह उपलब्ध कराता है LocalOnBackPressedDispatcherOwner, जो आपको BackHandler जैसे एपीआई इस्तेमाल करने वाले कंपोज़ेबल की झलक देखने के लिए उस पर निर्भर करता है. (Ia1c05, b/185693006)

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

  • InfiniteAnimationPolicy को androidx.compose.ui:ui पर ले जाया गया (I5eb09, b/160602714)
  • मॉड्यूल का स्ट्रक्चर बदलने के लिए, ऐनिमेटेडइमेजवेक्टर को कुछ समय के लिए हटा दिया गया. (I41906, b/160602714)

वर्शन 1.0.0-beta09

16 जून, 2021

androidx.compose.ui:ui-*:1.0.0-beta09 रिलीज़ हो गया है. वर्शन 1.0.0-beta09 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • enum की भूमिका और LiveRegionMode को इनलाइन क्लास में बदलें प्राइवेट कंस्ट्रक्टर के साथ (Id1890)
  • कीबोर्ड के कैपिटल लेटर का इस्तेमाल, इनलाइन क्लास में किया जाता है. (Id5a1c)
  • HapticFeedbackType को इनलाइन क्लास में बदलें. (I255ec)
  • Modifier.pointerInteropFilter @experimentsComposeUiApi है. (Iede6c)
  • Textअलाइन, FontSynthesis, और TextDirection अब इनलाइन हैं क्लास. (I212fe)
  • TextOverflow को इनलाइन क्लास में बदला गया. (I433af)
  • फ़ॉन्ट स्टाइल अब एक इनलाइन क्लास है. (I9e48b)

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

  • फ़िलहाल, मुख्य कॉन्सटेंट @OptionalComposeUiApi हैं. उपभोग करना कोड, स्टेबलाइज़ेशन से पहले प्राइवेट कॉन्सटेंट की जानकारी दे सकता है. (Ia5d48)
  • Compose के टेस्ट अब Robolectric पर किए जा सकते हैं. नीचे दिए गए इन सीमाओं की जानकारी अब तक दी गई है:
    • कोई नेटिव बिट मैप नहीं है, इसलिए ImageBitmap() NullPointerअपवाद.
    • कोई ड्रॉइंग नहीं है, इसलिए captureToImage() हमेशा के लिए अगला ड्रॉ पास (उदाहरण के लिए, यह डेडलॉक) होता है.
    • कोई फ़ॉन्ट लोड नहीं किया गया है, इसलिए किसी भी टेक्स्ट को गलत तरीके से मेज़र किया जाएगा. सभी वर्णों की ऊंचाई करीब 20 पिक्सल और चौड़ाई 1 पिक्सल है.
    • ComposeTestRule.waitUntil {}, इंतज़ार करने के दौरान मुख्य थ्रेड को नहीं चलाता है. यह मुख्य थ्रेड को ComposeTestRule.mainClock.advanceTimeUntil {} की तरह ही बनाता है आने वाले समय में, इससे जुड़ी और सीमाओं के बारे में पता चल सकता है. (I284FA)

प्रोफ़ाइल के नियम जोड़े गए

इस रिलीज़ में, कंपोज़ की सुविधा वाले इन मॉड्यूल में प्रोफ़ाइल के नियम जोड़े गए हैं (I14ed6):

  • androidx.compos.animation
  • androidx.compos.animation-कोर
  • androidx.compos.foundation
  • androidx.compos.foundation-layout
  • androidx.compos.material
  • androidx.compos.material-reple
  • androidx.compos.runtime
  • androidx.compos.ui
  • androidx.compos.ui.geometry
  • androidx.compos.ui.graphics
  • androidx.compos.ui.text
  • androidx.compos.ui.text
  • androidx.compos.ui.unit
  • androidx.comose.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 फ़्लैग होता है वह बताता है कि यह एक तरीका है जिसे स्टार्टअप के बाद कॉल किया जाता है.

  • इस फ़ाइल में मौजूद क्लास से पता चलता है कि इसका इस्तेमाल स्टार्टअप के दौरान किया जाता है. साथ ही, क्लास को लोड होने में आने वाले खर्च से बचने के लिए, इस क्लास को हीप में पहले से ही तय किया जाना चाहिए.

यह कैसे काम करता है?

  • लाइब्रेरी ये नियम तय कर सकती हैं, जिन्हें एएआर आर्टफ़ैक्ट में पैकेज किया जाएगा. जब इन आर्टफ़ैक्ट वाले ऐप्लिकेशन बनाए जाते हैं, तो इन नियमों को एक साथ मर्ज कर दिया जाता है. इसके बाद, इन नियमों का इस्तेमाल एक ऐसी कॉम्पैक्ट बाइनरी ART प्रोफ़ाइल बनाने के लिए किया जाता है जो खास तौर पर ऐप्लिकेशन के लिए होती है. इसके बाद, डिवाइसों पर ऐप्लिकेशन इंस्टॉल होने पर ART इस प्रोफ़ाइल का इस्तेमाल कर सकता है, ताकि समय से पहले ऐप्लिकेशन का एक खास सबसेट कंपाइल किया जा सके. इससे ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है, ताकि उसे पहली बार इस्तेमाल किया जा सके. ध्यान दें कि डीबग करने लायक ऐप्लिकेशन पर इसका कोई असर नहीं होगा.

वर्शन 1.0.0-beta08

2 जून, 2021

androidx.compose.ui:ui-*:1.0.0-beta08 रिलीज़ हो गया है. वर्शन 1.0.0-beta08 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • NestedScrollSource enum को किसी इनलाइन क्लास से बदल दिया गया है. (Ie321b, b/187055290)
  • FocusManager.clearFocus(forcedClear = true) का नाम बदलकर FocusManager.clearFocus(force = true) किया गया (Ia0c41)
  • इनम के इस्तेमाल से बचने के लिए, इनलाइन क्लास में फिर से इस्तेमाल किया गया की वजह से, स्टेटमेंट में और चीज़ों को ईनम की नई वैल्यू जोड़ी गई हैं. (I2b5eb)
  • PopupProperties से @ExperimentalComposeUiApi हटाएं. (I01fa6)
  • PointerType को एक enum से इनलाइन क्लास (If5058) में बदला गया
  • ContentDescription और टेक्स्ट सिमैंटिक्स प्रॉपर्टी अब मौजूद नहीं हैं एकल मान लेकिन सूचियां. इससे, वे मैसेज को पहले जैसा होने के लिए मर्ज किया जा सकता है जोड़ने के तरीके हैं. साथ ही, बेहतर टेस्ट एपीआई भी उपलब्ध कराए, ताकि इनका इस्तेमाल किया जा सके बदलाव (Ica6bf, b/184825850)
  • Modifier.focusModifier() अब काम नहीं करता. इसे Modifier.focusTarget() (I6c860) से बदल दिया गया है
  • Modifier.onSizeChanged() और Modifier.onGloballyPositioned() अब इनलाइन फ़ंक्शन नहीं हैं (I727f6, b/186109675)
  • KeyboardType enum को किसी इनलाइन क्लास से बदल दिया गया है. (I73045, b/187055290)
  • FocusState enum को FocusState इंटरफ़ेस से बदला गया (IFCC1a, b/187055290)
  • ImeAction enum को इनलाइन क्लास से बदल दिया गया है. (I18be5, b/187055290)
  • PlaceholderVerticalAlign को इनलाइन क्लास में बदला गया. (If6290)
  • TextUnitType अब एक इनलाइन क्लास है. (I4cba9)
  • AnnotatedString.withAnnotation फ़ंक्शन यह हैं अब with ComposeApi की बजाय ExampleTextApi का इस्तेमाल कर रहा है. (I0cd0a)
    • TextUnitType के साथ TextUnit कंस्ट्रक्टर अब ExternalComposeApi के बजाय ExampleTextApi.

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

  • बीटा07 में पेश की गई गड़बड़ी को ठीक किया गया, जहां स्क्रोल करने के बाद LazyColumn/Row के आइटम कुछ हद तक दिखते हैं (I8c9ac, b/188566058)
  • अब detectDragGesures, detectVerticalGestures, और detectHorizontalGestures अपने-आप पोज़िशन में होने वाले बदलाव का इस्तेमाल करेंगे. इसके लिए, onDrag कॉलबैक में changes.consumPositionChange को कॉल करने की ज़रूरत नहीं है (I42fc4, b/185096350, b/187320697)
  • अलाइनमेंट लाइन देने वाले LayoutModifiers को ठीक कर दिया गया. जब बच्चों की अलाइनमेंट लाइनें बदल रही थीं, तब इस गड़बड़ी को ठीक कर दिया गया था, जिसकी वजह से पैरंट को फिर से मेज़र नहीं किया जा सका. (I4401f, b/174315652)
  • सभी मॉडिफ़ायर लागू करने के बाद, लेआउट कोऑर्डिनेट को शामिल करने के बजाय, Modifier.onGloballyPositioned() को मॉडिफ़ायर चेन में इस मॉडिफ़ायर के कोऑर्डिनेट की रिपोर्ट देने के लिए बदला गया है. इसका मतलब है कि अब मॉडिफ़ायर के क्रम से उन निर्देशांकों पर असर पड़ रहा है जिनके बारे में रिपोर्ट की जाएगी. (Ieb67d, b/177926591)

वर्शन 1.0.0-beta07

18 मई, 2021

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

एपीआई में किए गए बदलाव

  • इंस्पेक्टर में इस्तेमाल करने के लिए ViewRootForInspector इंटरफ़ेस जोड़ा गया (Ib70df)
  • SubcomposeLayoutState अब फिर से इस्तेमाल किए जा सकने वाले स्लॉट की संख्या सेट करने की सुविधा देता है. अगली बार जब हमें एक नए स्लॉट की ज़रूरत होगी, तब यह लेआउट इस्तेमाल करने के बजाय, इस गिनती स्लॉट को चालू रखेगा (Ieb981)
  • KeyEventType enum को इनलाइन क्लास से बदल दिया गया है. (Id670a, b/187055290)
  • FocusDirection enum को किसी इनलाइन क्लास से बदल दिया गया है. (Ib6d03, b/187055290, b/184086802)
  • यह SubcomposLayout स्थिति को रखने की क्षमता के बारे में जानकारी देता है. इसकी मदद से, कॉन्टेंट को पहले से ही एक ज़रूरी स्लॉटId में दिखाया जा सकता है. इसकी मदद से, अगले मेज़रमेंट पास को जल्दी किया जा सकता है. ऐसा इसलिए, क्योंकि अगली बार जब हम दिए गए स्लॉटId के साथ सबकंपोज़ करेंगे, तो अगली बार किसी कंपोज़िशन की ज़रूरत नहीं होगी. (I42580, b/184940225)
  • क्लिप चुनने के लिए हैंडल जोड़ा गया (Iff80d, b/183408447)
  • LayoutInspector से जुड़ी सहायता से जुड़े, इस्तेमाल नहीं किए गए एपीआई हटाए गए. (I2ac78)

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

  • LaZकॉलम/Row में अब ज़्यादा से ज़्यादा, पहले से दिखने वाले दो आइटम चालू रहेंगे (डिस्पोज़ नहीं किए गए). भले ही, उन्हें पहले ही स्क्रोल किया जा चुका हो. इससे कॉम्पोनेंट को चालू सब-कंपोज़िशन का फिर से इस्तेमाल करने की अनुमति मिलती है. ऐसा तब होता है, जब हमें कोई नया आइटम लिखने की ज़रूरत होती है. इससे, स्क्रोल की परफ़ॉर्मेंस बेहतर होती है. (Ie5555)
  • AnnotatedString पर TextGeomerticTransform और TextDecoration लागू की जाएगी. (I61900, b/184760917)

वर्शन 1.0.0-beta06

5 मई, 2021

androidx.compose.ui:ui-*:1.0.0-beta06 रिलीज़ हो गया है. वर्शन 1.0.0-beta06 में ये तय किए गए हैं.

एपीआई में किए गए बदलाव

  • नेविगेशन जेस्चर (I1145e) के साथ समस्या को हल करें
  • @ComposeCompilerApi अब @RequiresOptIn नहीं हैं (Iab690)
  • संग्रह जानकारी और collectionsItemInfo सुलभता एपीआई जोड़े गए हैं, जिनकी मदद से संग्रह और उसके आइटम को सुलभता सेवाओं के लिए मार्क किया जा सकता है (Id54ef, b/180479017)
  • सूची को स्क्रोल करने के लिए, SemanticsActions.ScrollToIndex को जोड़ा गया किसी खास इंडेक्स वाले आइटम के लिए इंडेक्स किए गए आइटम और सूची में मौजूद किसी आइटम का इंडेक्स पाने के लिए SemanticsProperties.IndexForKey कुंजी वाले आइटम के साथ. दोनों कार्रवाइयां LazyList की मदद से लागू की जाती हैं.
    • उसे SemanticsNodeInteraction.performScrollToIndex जोड़ा दिए गए इंडेक्स पर सूची स्क्रोल करता है, और SemanticsNodeInteraction.performScrollToKey जो सूची को स्क्रोल करके दी गई कुंजी वाले आइटम. (I4fe63, b/178483889, b/161584524)
  • GraphiclayerInfo (I19f62) में ownerViewId जोड़ा गया
  • फ़ॉन्ट लोड करने के लिए Font() ओवरलोड जोड़ा गया ऐसेट, File और FileDescriptor (I5d382) से
  • Accessibility API error जोड़ा गया, जो अमान्य इनपुट वाले नोड को मार्क करने की अनुमति देता है (I12997, b/180584804, b/182142737)
  • फ़ॉन्ट लोड करने में, Font() ओवरलोड जोड़ा गया ऐसेट, File और FileDescriptor (I43007) से
  • AnnotateString फ़ाइल को इसके लिए सेव करने की सुविधा मिलती है TextFieldValue.Saver. addTtsAnnotation को जोड़ा गया और withAnnotation यूटिलिटी फ़ंक्शन से जुड़े होते हैं AnnotatedString.Builder (I8cbdc, b/178446304)
  • TextUnit कंस्ट्रक्टर फ़ंक्शन जोड़ा गया TextUnit(value: Float, type: TextUnitType) (I7ecce, b/178446304)

वर्शन 1.0.0-beta05

21 अप्रैल, 2021

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

एपीआई में किए गए बदलाव

  • प्रयोग के तौर पर FocusManager.moveFocus(In) और FocusManager.moveFocus(Out) (Ic5534, b/183746743) को जोड़ा गया
  • प्रयोग के तौर पर जोड़ा गया performTextInputSelection API (I2dcbb, b/178510628)
  • InputEventCallback इंटरफ़ेस अब काम नहीं करता. इस इंटरफ़ेस का उपयोग किसी भी सार्वजनिक एपीआई; और इसका कोई इस्तेमाल नहीं हुआ कोड. (I34a02, b/184003208)
  • TextLayoutResult/createTextLayoutResult अब काम नहीं करता फ़ंक्शन का इस्तेमाल करना होगा. यह इस्तेमाल नहीं किया गया सार्वजनिक फ़ंक्शन है, जिसे इस टूल का इस्तेमाल किया जा सकता है. फ़ंक्शन ऐसा कुछ नहीं करता है, जिसका इस्तेमाल किया जा सकता है टेक्स्ट एपीआई कंपोज़ करें. यह फ़ंक्शन अब बंद कर दिया गया है. बाद में हटा दिया जाएगा. (I80413)

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

  • ACTION_SCROLL_FORWARD, ACTION_SCROLL_BACKWARD को ठीक किया गया, accessibilityActionScrollLeft, accessibilityActionScrollUp, accessibilityActionScrollRight और accessibilityActionScrollDown सुलभता वाली स्क्रोल कार्रवाइयां. स्क्रोल करने के बजाय आखिर तक करने योग्य हो, तो अब वह दी गई दिशा में एक स्क्रीन पर स्क्रॉल होगा. (Ieccb0)
  • ui-test-मेनिफ़ेस्ट से और ui-tooling-data, अब Android 12 (I6f9de, b/184718994) के साथ काम करता है

वर्शन 1.0.0-beta04

7 अप्रैल, 2021

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

एपीआई में किए गए बदलाव

  • hideSoftwareKeyboard और showSoftwareKeyboard का नाम बदलें SoftwareKeyboardController से hide() और show().
    • इसके लिए, कंपोज़िशन Local का पूरा इंटरफ़ेस उपलब्ध कराएं LocalSoftwareClassroomController, इसे सेट करने की अनुमति देता है (खास तौर पर) टेस्ट में उपयोगी) (I579a6)
  • LiveRegion का सुलभता एपीआई जोड़ा गया है. अगर नोड को लाइव क्षेत्र के तौर पर मार्क किया गया है, तो सुलभता सेवाएं उपयोगकर्ता को उसके बदलावों के बारे में अपने-आप सूचना देगा (Idcf6f, b/172590946)
  • TextOverflow.Visible पेश किया गया है. (Ic8f89)

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

  • किनारों पर मौजूद LazyColumn/LazyRow के आइटम, फ़ास्ट फ़्लिंग (Ie4d13, b/183877420) के बाद, गलत पोज़िशन में पोज़िशन होने पर समस्या को ठीक कर दिया गया है
  • AndroidViewBinding अब ठीक से निकाल देता है फ़्रैगमेंट FragmentContainerView से तब बढ़ाए गए, जब AndroidViewBinding को कंपोज़ से हटा दिया गया है हैरारकी है. (Ib0248, b/179915946)
  • AndroidViewBinding अब सही तरीके से नेस्ट किया गया है फ़्रैगमेंट FragmentContainerView से तब बढ़ाए गए, जब आपका ComposeView, Fragment के अंदर है. इसे ठीक किया जा रहा है की स्थिति को सेव और वापस लाने में समस्याएं होती हैं फ़्रैगमेंट. (I70eb0, b/179915946)
  • ViewBinding लिखें, यह इस पर निर्भर करता है फ़्रैगमेंट 1.3.2 और अब खंडित टुकड़ों को कॉन्फ़िगरेशन बदलने के बाद, FragmentContainerView. (I0743d, b/179915946)

वर्शन 1.0.0-beta03

24 मार्च, 2021

androidx.compose.ui:ui-*:1.0.0-beta03 रिलीज़ हो गया है. वर्शन 1.0.0-beta03 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • ComposeView की ViewTree डिपेंडेंसी के लिए स्थगित जांच (I8dbbf, b/182466548)
  • वैकल्पिक startX/endX और startY/endY पैरामीटर जोड़े गए से लेकर swipeUp/swipeDown/swipeLeft/swipeRight फ़ंक्शन में GestureScope. (I49e2d, b/182063305)

वर्शन 1.0.0-beta02

10 मार्च, 2021

androidx.compose.ui:ui-*:1.0.0-beta02 रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये तय किए गए अपडेट शामिल हैं.

एपीआई में किए गए बदलाव

  • नई LocalSoftwareKeyboardController कंपोज़िशन स्थानीय भाषा में जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I5951e, b/168778053)
  • नई LocalSoftwareKeyboardController कंपोज़िशन स्थानीय भाषा में जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I84472, b/168778053)
  • ये SemanticsMatcher हटाए गए:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (If16bd)
  • निम्न SemanticsMatchers को इसके रूप में चिह्नित किया गया @प्रायोगिकTestApi:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (Ia600c)
  • ये SemanticsMatcher जोड़े गए:
    • hasWidth(width, tolerance)
    • hasHeight(height, tolerance)
    • hasLeftPosition(left, tolerance)
    • hasTopPosition(top, tolerance)
    • hasRightPosition(right, tolerance)
    • hasBottomPosition(bottom, tolerance) (I2f502)

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

  • एक्सपेरिमेंटल एपीआई के सार्वजनिक इस्तेमाल पर पाबंदियां लागू करें (I6aa29, b/174531520)
  • androidx.compose.ui:ui अब AppCompat या फ़्रैगमेंट पर निर्भर नहीं है. अगर आपके ऐप्लिकेशन में ComposeView का इस्तेमाल किया जा रहा है और फ़्रैगमेंट और/या AppCompat का इस्तेमाल किया जा रहा है, तो पक्का करें कि AppCompat 1.3+ / फ़्रैगमेंट 1.3+ का इस्तेमाल किया जा रहा हो - ये वर्शन ComposeView के लिए ज़रूरी लाइफ़साइकल और सेव किए गए स्टेट मालिकों को सेट करने के लिए ज़रूरी हैं. (I1d6fa, b/161814404)
  • नेविगेशन-कंपोज़ के डेस्टिनेशन में इस्तेमाल किए जाने पर, काम न करने वाले rememberSaveable { mutableStateOf(0) } को ठीक किया गया. (I1312b, b/180042685, b/180701630)
  • नई LocalSoftwareKeyboardController कंपोज़िशन स्थानीय भाषा में जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I658b6, b/168778053)
  • ComposeRootRegistry की tearDownRegistry() (Iddce1)

वर्शन 1.0.0-beta01

24 फ़रवरी, 2021

androidx.compose.ui:ui-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये कमिट मौजूद हैं.

यह Compose 1.0.0 बीटा की पहली रिलीज़ है.

एपीआई में किए गए बदलाव

  • onStart कॉलबैक को detectDragGestures (I67269, b/179995594) में जोड़ दिया गया है
  • एलिमेंट का साइज़ बताने वाले मॉडिफ़ायर को अब एक्सपेरिमेंट के तौर पर इस्तेमाल नहीं किया जा रहा है. (I15744)
  • मेज़रमेंटब्लॉक का नाम बदलकर, MeasurementPolicy रखा गया. यह एक मज़ेदार इंटरफ़ेस बन गया. मेज़रमेंट नीति का इस्तेमाल करने के लिए, लेआउट एपीआई को अपडेट / आसान बनाया गया है. (Icab48, b/167662468, b/156751158)
  • InteractionState को [Mutable]InteractionSource से बदल दिया गया है
    • इंटरफ़ेस, इंटरैक्शन इवेंट को बाहर निकालने / इकट्ठा करने के लिए ज़िम्मेदार हैं.
    • Button और Modifier.clickable() जैसे कॉम्पोनेंट को interactionState = remember { InteractionState() } पास करने के बजाय, interactionSource = remember { MutableInteractionSource() } का इस्तेमाल करें.
    • इसके बजाय: Interaction.Pressed in interactionState आपको इसके बजाय इंटरैक्शनSource पर एक्सटेंशन फ़ंक्शन का उपयोग करना चाहिए, जैसे InteractionSource.collectIsPressedAsState().
    • जटिल उपयोग के उदाहरणों के लिए, आप इंटरैक्शनSource.Interacts का इस्तेमाल करके इंटरैक्शन की स्ट्रीम पर नज़र रख सकते हैं. ज़्यादा जानकारी के लिए इंटरैक्शनSource दस्तावेज़ और नमूने देखें.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • Accessibility Manager इंटरफ़ेस जोड़ें और LocalAccessibilityMannger in ComposeLocals (I53520)
  • अब काम नहीं करने वाले LayoutCoordanates के तरीकों को हटाए गए. इसके लिए, स्थिति
  • टाइपालियास को दिए गए टाइप से बदल दिया गया है:
    • ColorStop अब Pair<Float, Color> हो गया है
    • SpanStyleRange का नाम अब `AnnotatedString.Range है
    • ParagraphStyleRange अब AnnotatedString.Range<ParagraphStyle> हो गया है
    • StringAnnotation अब AnnotatedString.Range<String> हो गया है
    • (I8dd1a)
  • CoreTextField जैसे लो लेवल के टेक्स्ट कॉम्पोनेंट से इनपुट सेशन के लिए, नया Textइनपुटसेशन बनाया गया. (I8817f, b/177662148)
  • इसका पता लगाने के लिए, मेज़रमेंट किया गया साइज़ दिखाया जाता है. इससे उस साइज़ के बारे में पता चलता है जिसे चाइल्ड लेआउट ने असल में मेज़र किया है. हो सकता है कि यह साइज़, मेज़रमेंट के लिए तय की गई शर्तों के मुताबिक न हो. (Ib2729, b/172560206, b/172338608)
  • SelectGroup मॉडिफ़ायर जोड़ें, जो सुलभता के मकसद से टैब या रेडियोबटन इकट्ठा करने की सुविधा को मार्क करने की अनुमति देता हो (Ie5c29)
  • compositionLocalOf के लिए defaultFactory और अब इसकी जगह staticCompositionLocalOf की ज़रूरत है ज़रूरी नहीं.

    यह बदलाव ऐसी गड़बड़ी को हटा देता है जो शून्य नहीं हो सकती जहां डिफ़ॉल्ट फ़ैक्ट्री नहीं दिया गया था. पहले यह शून्य न हो सकने वाले टाइप के लिए शून्य संदर्भ उपलब्ध कराएगा.

    शून्य वाले टाइप के लिए, { null } को डिफ़ॉल्ट के तौर पर दें फ़ैक्ट्री में किया गया था.

    हम ऐसे लोकल टाइप का इस्तेमाल करने का सुझाव नहीं देते जो शून्य वाले नहीं हैं एक सही डिफ़ॉल्ट वैल्यू दी जा सकती है. अगर कोई डिफ़ॉल्ट डिफ़ॉल्ट वैल्यू मौजूद नहीं है, defaultFactory लैम्डा को अपवाद देना चाहिए. हालांकि अपवाद का मतलब है कि स्थानीय उपभोक्ताओं के पास दिए जाने पर एक इंप्लिसिट डिपेंडेंसी जो लागू नहीं की गई है का इस्तेमाल किया जाता है. (Ifbd2a)

  • यूज़र इंटरफ़ेस (यूआई) मॉड्यूल से ऐसे तरीके हटा दिए गए हैं जो अब काम नहीं करते (I646f6)

  • साइज़ मॉडिफ़ायर के नाम बदले गए. Modifier.width/height/size का नाम बदलकर, बचाने के लिए ज़रूरी चौड़ाई/ज़रूरी/ज़रूरी/ज़रूरत वाला साइज़ कर दिया गया है. Modifier.referwidth/PreferenceHight/प्राथमिकता साइज़ का नाम बदलकर, चौड़ाई/height/size में बदल दिया गया. (I5b414)

  • Modifier.tapGestureFilter को हटा दिया गया है. इसके बजाय, Modifier.pointerInput { detectTapGestures(...) } का इस्तेमाल करें. (I266ed, b/175294473)

  • पॉइंटर इनपुट सिस्टम से आंशिक इस्तेमाल को हटा दिया गया. आंशिक उपभोग के लिए Modifier.nestedscroll का इस्तेमाल करने का सुझाव दिया जाता है. (Ie9c9b)

  • ओरिएंटेशन को फ़ाउंडेशन पैकेज पर ले जाया गया. VerocirtTracker को ui.जेस्चर से, ui.input.pointer पर ले जाया गया. (Iff4a8, b/175294473)

  • ImageResource और vectorResource अब एक्सटेंशन फ़ंक्शन हैं पर इस्तेमाल किया जा सकता है. load{Image,Vector,Font}Resource फ़ंक्शन मिटा दिए गए हैं. (I89130)

  • AssetClockObservable और सब-क्लास हटाया गया. ऐनिमेटेडफ़्लोट को हटा दिया गया है. (Icde52, b/177457083)

  • सेवा देने वाली कंपनियों का नाम बदलकर ComposeLocalProvider कर दिया गया है

    • कंपोज़िशन कंस्ट्रक्टर अब कुंजी पैरामीटर को स्वीकार नहीं करता और इसे बंद कर दिया गया है.
    • currentCompositeKeyHash को कंपोज़ेबल टॉप लेवल फ़ंक्शन के बजाय, कंपोज़ेबल टॉप लेवल प्रॉपर्टी में बदल दिया गया है.
    • कंपोज़िशन डेटा और कंपोज़िशन ग्रुप को androidx.compos.runtime.tooling नेमस्पेस में ले जाया गया है
    • ComposableLambda को कंक्रीट क्लास के बजाय एक इंटरफ़ेस बनाया गया. इसमें अब टाइप पैरामीटर नहीं हैं.
    • ComposableLambdaN को कंक्रीट की क्लास के बजाय एक इंटरफ़ेस बनाया गया. इसमें अब टाइप पैरामीटर नहीं हैं.
    • स्नैपशॉट Flow फ़ंक्शन को androidx.compos.runtime की जगह पर ले जाया गया है
    • स्नैपशॉटMutationPolicy को मर्ज करने का तरीका अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं है
    • @TestOnly शीर्ष लेवल का clearRoots फ़ंक्शन हटा दिया गया है. अब इसकी ज़रूरत नहीं है.
    • keySourceInfoOf और रीसेटSourceInfo फ़ंक्शन हटा दिए गए हैं. अब इनकी ज़रूरत नहीं है.
    • Composer.collectKeySourceInfo को हटा दिया गया है. अब इसकी ज़रूरत नहीं है.
    • isjoinedKey, includeKeyleft, औरjoinKeyRight विधियों को हटा दिया गया है. अब इनकी ज़रूरत नहीं है.
    • कई टॉप लेवल एपीआई को दूसरी फ़ाइलों में ले जाया गया है और उन्हें अलग-अलग फ़ाइलों में फिर से व्यवस्थित किया गया है. Kotlin के फ़ाइल क्लास सिमैंटिक्स की वजह से, यह बाइनरी कंपैटबिलिटी को तोड़ देगा, लेकिन सोर्स के साथ काम नहीं करेगा. इसलिए, ज़्यादातर उपयोगकर्ताओं के लिए यह समस्या नहीं होनी चाहिए.
    • (I99b7d, b/177245490)
  • ComponentActivity.setContent() को लिखें:ui से हटा दिया गया है. androidx.activity:activity-compose:1.3.0-alpha01 में से चुने गए तरीके का इस्तेमाल करें. viewModel() और LocalViewModelStoreOwner कोCompose:ui से हटाया गया. androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 (I6f36b) में से किसी एक का इस्तेमाल करें

  • Modifier.scrollable को फिर से बनाया गया है. अब यह ScrollableController क्लास (I4f5a5, b/174485541, b/175294473) के बजाय, स्क्रोल किए जा सकने वाले इंटरफ़ेस का इस्तेमाल करता है

  • PointerइनपुटModifier का CustomElevens सपोर्ट हटा दिया गया है (I02707, b/175294473)

  • स्नैपशॉट स्टेट ऑब्ज़र्वर को अब एक्सपेरिमेंट के तौर पर इस्तेमाल नहीं किया जा सकता (Id2e6a)

  • पहले से काम न करने वाले कुछ एपीआई मिटाए गए (Ice5da, b/178633932)

  • लंबा बटन जेस्चर और डबलक्लिक जेस्चर फ़िल्टर हटा दिया गया है. सहायता करने वाले फ़ंक्शन के साथ Modifier.pointerइनपुट का इस्तेमाल करें.जैसे, didTapMessages (I2fedf, b/175294473)

  • String.format API को हटाया गया अलग-अलग सेवाओं में रीफ़ैक्टरिंग ऐसी टूस्ट्रिंग विधि जिनका फ़ायदा न लिया जाए String.format. (आईडी1290)

  • dp दावे हटाए गए (I798d2)

  • androidx.compos.runtime:runtime-dispatch (I55feb) को हटाया गया

  • टेक्स्ट से जुड़ी कार्रवाइयां, अब फ़ोकस की जांच अपने-आप करती हैं (I13777, b/179648629)

  • runBlockingWithManualClock (I15cdc, b/179664814) को हटाया गया

  • Modifier.मिटाए गए

  • फ़्लोरिंग कॉन्फ़िगरेशन का नाम बदलकर, फ़्लिंग व्यवहार कर दिया गया है. अब पहले से तय किए गए नुकसान के बजाय, निलंबित ऐनिमेशन को पसंद के मुताबिक बनाया जा सकता है. (I02b86, b/175294473)

  • हेल्पर फ़ंक्शन जोड़ा गया, जो सभी ImeAction कॉलबैक (I63447, b/179226323) के लिए एक जैसी कार्रवाई सेट करें

  • सभी टेक्स्ट से सॉफ़्टवेयर कीबोर्ड कंट्रोलर कॉलबैक हटाया गया फ़ील्ड को जल्द ही नए एपीआई से बदला जाएगा. (Iae869, b/168778053)

  • FontSpan और FontWeigthStyleSpan का अब उपयोग नहीं किया जाता है और न ही उसे निकाला जाता है. (Ie5b56, b/177423444)

  • Material API में ये बदलाव किए गए हैं:

    • डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाने के लिए, Top/BottomAppBar में contentPadding पैरामीटर जोड़ा गया है.
    • ज़रूरी पैरामीटर से पहले, वैकल्पिक पैरामीटर में होने वाले एपीआई के दिशा-निर्देशों का पालन करने के लिए, BackdropScaffold में फिर से क्रम में लगाए गए पैरामीटर.
    • BottomनेविगेशनItem में icon पैरामीटर को selected और onClick के बाद ले जाया गया.
    • BottomनेविगेशनItem में alwaysShowLabels पैरामीटर का नाम बदलकर alwaysShowLabel किया गया.
    • कुछ कॉम्पोनेंट में bodyContent पैरामीटर का नाम बदलकर, सिर्फ़ content किया गया.
    • ButtonDefaults.buttonColors() में पैरामीटर फिर से क्रम में लगाए गए. कृपया ध्यान दें कि पैरामीटर के टाइप में बदलाव नहीं होने की वजह से, आपके कोड में कोई गड़बड़ी नहीं होगी. कृपया पक्का करें कि नाम वाले पैरामीटर का इस्तेमाल किया जा रहा हो या मैन्युअल तरीके से ऑर्डर को अपडेट किया जा रहा हो. अगर ऐसा नहीं होता है, तो आपका कोड पहले की तरह काम नहीं करेगा.
    • darkColors() में secondaryVariant पैरामीटर जोड़ा गया. आम तौर पर, गहरे रंग वाली थीम का यह रंग secondary जैसा ही होता है. हालांकि, इसे एक जैसा रखने और अपनी पसंद के मुताबिक बनाने के लिए, इस रंग का इस्तेमाल किया जा सकता है.
    • ElegationDefaults और animateElegation() को सार्वजनिक एपीआई की प्लैटफ़ॉर्म से हटा दिया गया है. ऐसा इसलिए किया गया, क्योंकि इनका इस्तेमाल आम तौर पर नहीं किया जाता था या ये काम के नहीं होते थे.
    • Slider में मौजूद onValueChangeEnd का नाम बदलकर, onValueChangeFinished कर दिया गया है. साथ ही, इसे शून्य कर दिया गया है.
    • Snackbar में मौजूद text पैरामीटर का नाम बदलकर content किया गया, ताकि सब कुछ एक जैसा रखा जा सके.
    • डिफ़ॉल्ट पैडिंग को पसंद के मुताबिक बनाने की अनुमति देने के लिए, contentPadding पैरामीटर को DropdownMenuItem में जोड़ा गया. साथ ही, content को RowScope पर एक्सटेंशन के तौर पर बनाया गया.
    • ModalDrawerLayout का नाम बदलकर ModalDrawer किया गया.
    • BottomDrawerLayout का नाम बदलकर BottomDrawer किया गया.
    • (I1cc66)

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

  • Compose में Drawings में जनरेट करने वाले संसाधनों का इस्तेमाल करने के लिए, एपीआई जोड़ा गया. इस्तेमाल की जाने वाली चीज़ें ऐनिमेटेडइमेज वेक्टर के तौर पर <animated-vector> एक्सएमएल को लोड करना और उसे ऐनिमेट करना पेंटर के साथ (I8ea91)
  • नया LocalSoftwareClassroomController कंपोज़िशन जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I658b6, b/168778053)

वर्शन 1.0.0-alpha12

10 फ़रवरी, 2021

androidx.compose.ui:ui-*:1.0.0-alpha12 रिलीज़ हो गया है. वर्शन 1.0.0-alpha12 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • UiApplier से ViewGroups की सुविधा हटा दी गई है. ऐसे emitView कंपोज़ेबल हटा दिए गए हैं जो अब काम नहीं करते. (Ifb214)
  • Modifier.pointerइनपुट को संकेत देने के लिए अब याद रखने वाली कुंजियों की ज़रूरत है जब पॉइंटर इनपुट डिटेक्शन कोरूटीन नए के लिए रीस्टार्ट होना चाहिए निर्भरता. (I849cd)
  • कंपोज़िशन रेफ़रंस का नाम बदलकर कंपोज़िशन कॉन्टेक्स्ट (I53fcb) का नाम बदला गया है
  • सीमाओं का नाम बदलकर DpRect (I4b32a) कर दिया गया है
  • टेस्टिंग से जुड़ा अपडेट: hasText(), टेक्स्ट फ़ील्ड (Iab803) में इनपुट और लेबल/hint/placeholder टेक्स्ट, दोनों की जांच करेगा
  • viewModel() कंपोज़ेबल और LocalViewModelStoreOwner को androidx.lifecycle.viewmodel.com बावजूद में ले जाया गया है. अब इसका इस्तेमाल करने के लिए, आपको एक अलग डिपेंडेंसी androidx.lifecycle:lifecycle-viewmodel-compos:1.0.0-alpha01 जोड़ना होगा. (I7a374)
  • AccessibilityAction में शून्य करने लायक कार्रवाई को अनुमति दें, कार्रवाई बदलें की मदद से, AccessibilityAction और CustomAccessibilityAction में दिया गया लेबल CharSequence टू स्ट्रिंग (I0dc82)
  • नाम का बेहतर तरीके से मिलान करने के लिए ImageBitmap और Image पक्ष के साथ कन्वेंशन, ImagePainter का नाम बदलकर BitmapPainter कर दिया गया है साथ-साथ वेक्टरPainter. (Iba381, b/174565889)
  • अब तर्क के तौर पर सबस्ट्रिंग के साथ बेहतर सबस्ट्रिंग टेस्ट एपीआई (Icbe78)
  • एक Modifier.focusOrder() जोड़ा निर्देश दिए बिना, FocusRequester को स्वीकार करता है पसंद के हिसाब से फ़ोकस करने के लिए, Lambda फ़ंक्शन. यह काम का है जब हमें सिर्फ़ एक संदर्भ बताना होता है, कंपोज़ेबल (I4f52a, b/179180978) के लिए, कस्टम फ़ोकस ऑर्डर नहीं है
  • componentActivity.setContent इस जगह पर भेजा गया androidx.activity.compos.setContent में androidx.activity:activity-compos मॉड्यूल में नहीं है. (Icf416)
  • डिस्ट्रक्चरिंग और Copy() तरीके को इस यूआरएल से हटा दिया गया है ऐसी क्लास के बारे में बात करते हैं जहाँ इनका इस्तेमाल बहुत कम किया जाता था. (I26702, b/178659281)
  • पॉप-अप को प्लैटफ़ॉर्म के हिसाब से बनाया गया. AndroidPopupProperties का नाम बदलकर पॉप-प्रॉपर्टी कर दिया गया है. साथ ही, isFocusable को PopupProperties (Ieeea5) में focusable पैरामीटर में ले जाया गया है
  • डायलॉग को प्लैटफ़ॉर्म के हिसाब से ले जाया गया. AndroidDialogProperties का नाम बदलकर DialogProperties कर दिया गया है. (I4ef69, b/179138130)
  • बनाया गया LayoutNode इंटरनल (I8a7b1, b/175103944)
  • Constraints.enforce को Constraints.constrain से बदला गया. (I8b8ea)
  • loadFontResource अब काम नहीं करता. इसके बजाय, fontResource का इस्तेमाल करें. ImageResource, loadImageResource, vectorResource, और loadvectorResource के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, PaintterResource का इस्तेमाल करें. (I6b809)
  • परफ़ॉर्मेंस की वजहों से, ScrollAxisRange सिमेंटिक्स अब सीधे फ़्लोट वैल्यू के बजाय, Lambdas फ़्लोटिंग वैल्यू पर लौटता है. (If4a35, b/178657186)
  • सुलभता और संबंधित जांच के तरीकों के लिए, टेक्स्ट फ़ील्ड के बदलाव किए जा सकने वाले इनपुट टेक्स्ट को मार्क करने के लिए, एडिट किए जा सकने वाले टेक्स्ट सिमैंटिक को जोड़ा गया (I8e07a)
  • Madeownerlayer/OwnerScope/OwnerSnapshotObserver का इंटरनल इस्तेमाल करता है (I4ffaf, b/175103944)
  • toIntPx() का नाम बदलकर, {8/}ToPx() किया गया. (I9b7e4, b/173502290)
  • IntBounds का नाम बदलकर IntRect किया गया. एपीआई को बेहतर बनाया गया. (I1f6ff)
  • स्नैपशॉट एपीआई को अपडेट किया गया, ताकि उसे एपीआई के दिशा-निर्देश और इंटरनल क्लास को छिपाने की सुविधा को सार्वजनिक एपीआई से हटा दिया जाता है. (Id9e32)
  • 'बड़ा करें और छोटा करें' सुविधा जोड़ी गई. जोड़े गए ModleBottomSheetState (Ib5064) में, बड़ा करें और थोड़ा बड़ा करें
  • Modifier.drag प्रोसेसFilter बंद कर दिया गया है. इसके बजाय, Modifier.pointerInput { detectDragGestures (...)} का इस्तेमाल करें. इसके अलावा, एक ऐक्सिस ड्रैग (I0ba93, b/175294473) के लिए, Modifier.draggable का इस्तेमाल करें
  • ऐंबियंट के हिसाब से नाम बदला गया -> कंपोज़िशन लोकल का नाम बदलना. पहले ऐंबियंट्स को AmbientFoo कहा जाता था, लेकिन अब ComposeLocals को LocalFoo कहा जाता है. (I2d55d)
  • काम न करने वाले BaseTextField को अब हटा दिया गया है. इसके बजाय, BasicTextField का इस्तेमाल करें. (I71368)
  • चुने गए हिस्से को फ़ाउंडेशन में ले जाया गया. (I7892b)
  • जिस तरह हमने पहले state { 0 } कंपोज़ेबल को हटाया था और अब remember { mutableStateOf(0) } जैसे उसके इस्तेमाल को बढ़ावा दिया था उसी तरह हम savedInstanceState { 0 } कंपोज़ेबल को हटाने जा रहे हैं. इसके बजाय, आपको rememberSaveable { mutableStateOf(0) } का इस्तेमाल करना चाहिए. अगर म्यूटेबलस्टेट में इस्तेमाल किए गए टाइप को बंडल में सेव किया जा सकता है, तो यह अपने-आप सेव और वापस आ जाएगा. अगर पहले एक कस्टम सेवर ऑब्जेक्ट पास किया जा रहा था, तो अब आपको RememberSaveable के एक नए ओवरलोड का इस्तेमाल करना होगा जिसमें stateSaver पैरामीटर हो. इस्तेमाल इस तरह दिखेगा: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • सुलभता के लिए पासवर्ड सिमैंटिक जोड़ा (I231ce)
  • AccessibilityBarRangeInfo.सुलभता के लिए अनिश्चित प्रोग्रेस बार को मार्क करने के लिए इसे जोड़ा गया (I6fe05)
  • emptyContent() और (@Composable () -> Unit).orEmpty() सुविधाएं बंद कर दी गई हैं, क्योंकि अब इनकी परफ़ॉर्मेंस पर कोई अच्छा असर या वैल्यू नहीं है (I0484d)
  • snapshotFlow और withMutableSnapshot अब नहीं हैं एक्सपेरिमेंटल (I6a45f)
  • रीकंपोज़र अब बंद किए जा सकते हैं. बंद रिकंपोज़र जब तक चाइल्ड कोरूटीन पूरा नहीं हो जाता, तब तक बदलाव करना जारी रखें. बंद के कंट्रास्ट के लिए रद्द करने के लिए Recomposer.shutDown का नाम बदला गया. (Ib6d76)
  • UiSavedStateRegistry का नाम बदलकर सेव किए जा सकने वाला राज्य कर दिया गया है. वहीं, AmbientUiSavedStateRegistry का नाम बदलकर AmbientSaveableStateRegistry कर दिया गया है. साथ ही, दोनों को androidx.compos.runtime.saveable पैकेज पर ले जाया गया है. (I30224)
  • आर्टफ़ैक्ट androidx:compos:runtime:runtime-Saved-instance-state का नाम बदलकर androidx:compos:runtime:runtime-saveable (I6dcac) कर दिया गया है
  • यूज़र इंटरफ़ेस (यूआई) पैकेज में, लंबे समय से इस्तेमाल नहीं किए जा रहे कई एपीआई मिटा दिए गए हैं. (I2f2dc)
  • कंपोज़:रनटाइम-डिस्पैच आर्टफ़ैक्ट अब काम नहीं करता है. MonotonicFrameClock को अब लिखें:runtime और AndroidUiDispatcher, लिखें:UI में देखा जा सकता है. (Ib5c36)
  • Outline.* क्लास अब डेटा क्लास नहीं हैं (I4879e, b/178001427)
  • बिना किसी बदलाव के view.captureToImage() को हटा दिया गया. (I7fcd2)
  • इस्तेमाल किया गया ColorMatrix API का इस्तेमाल सोर्स कॉन्टेंट की आरजीबी वैल्यू में बदलाव करने के लिए रीफ़ैक्टर किया गया ColorFilter API को इंटरफ़ेस और इंप्लिमेंटेशन से मैच करता है पाथइफ़ेक्ट की ज़रूरत है. (Ica1e8)
  • आकृति के createOutline में defaultDirection पैरामीटर जोड़ें. इससे लेआउट दिशा निर्देश वाले आकार बनाए जा सकते हैं. (I57c20, b/152756983)
  • onImeActionPerformanceed अब काम नहीं करता है. इसके बजाय Keyboard Actions का इस्तेमाल करें (If0bbd, b/179071523)
  • InfiniteAnimationPolicy कोरूटीन कॉन्टेक्स्ट पेश किया गया जिसे असीमित ऐनिमेशन में लागू किया जाएगा. डिफ़ॉल्ट रूप से नहीं नीति इंस्टॉल की गई है. हालांकि, ComposeTestRule का इस्तेमाल करके जांच करने पर नहीं. (I50ec4, b/151940543)
  • कैन खींचें और Modifier से हटा दिया गया है.इसे स्क्रोल किया जा सकता है. (Id66e7, b/175294473)
  • LayoutCoordingates.parentCoordanates का नाम बदलकर इससे किया गया नए पैरंट कोऑर्डिनेट प्रॉपर्टी. पैरंट कॉर्डिनेट प्रॉपर्टी अब पैरंट मॉडिफ़ायर के LayoutCoordantes की पेशकश करते हैं. इससे onSizeChanged() के लिए और पूरे इस्तेमाल के उदाहरण बनाना onGloballyPositioned() (Idfbfd, b/177926591)
  • टैपजेस्चर, डबल टैपजेस्चरFilter, longPress प्रोसेसFilter, और PressIndicaitonCatFilter काम नहीं कर रहा है. इसके बजाय, preventTap Gesturess फ़ंक्शन के साथ, Modifier.clickable या Modifier.pointerइनपुट का इस्तेमाल करें. (I6baf9, b/175294473)
  • सेव किए जा सकने वाले रजिस्ट्री का UnregisterProvider हटाया गया. इसके बजाय,registerProvider() अबSaveableStateRegistry.Entry ऑब्जेक्ट दिखाता है जिसका इस्तेमाल करके रजिस्ट्रेशन रद्द किया जा सकता है (Ic4274, b/178583739)
  • याद रखें कि सेव किए गए उदाहरण() का नाम बदलकर, RememberSaveable() का नाम बदला गया और androidx.compos.runtime.saveable पैकेज पर ले जाया गया. (I1366e, b/177338004)
  • सार्वजनिक एपीआई से CoreText और CoreTextField को हटाया गया
    • चुने गए कंटेनर से अब काम नहीं करने वाले ओवरलोड को हटाया गया
    • (I99c19)
  • वे टेस्ट जिनमें Compose का इस्तेमाल हैरारकी को किया गया है सीधे WindowManager में जोड़ा/हटाया गया, अब ज़्यादा स्थिर हो गया है. (Ie81ed, b/175765614)
  • Recomposer.current() हटाया गया. [Absact]Compose अभी व्यू में है डिफ़ॉल्ट रूप से, लेज़ी तरीके से बनाए गए विंडो के स्कोप वाले रीकंपोज़र, विंडो के लिए ViewTreelifecycleOwner. चीज़ों को फिर से व्यवस्थित करें और होस्ट लाइफ़साइकल के दौरान, withFrameNanos पर आधारित ऐनिमेशन के टिक रोक दिए गए हैं को रोक दिया गया है. (I38e11)
  • Recomposer.दौड़ना के लिए Recomposers अब ग्लोबल StateFlow ऑफ़र करते हैं में कंपोज़िशन की मौजूदा स्थिति को देखने के लिए, रीड-ओनली RecomposerInfo प्रक्रिया से बचा जा सकता है. इस एपीआई को Recomposer.current() पर पसंद करें, जो कि अब है बंद कर दिया गया है. (If8ebe)
  • सेवर, listSaver(), MapSaver(), autoSaver को androidx.compos.runtime.Savedinstancestate से androidx.compos.runtime.saveable (I77fe6) में ले जाया गया है
  • एडिट कमांड, AnnotatedString को स्वीकार करते हैं. हालांकि, यह है केवल एपीआई में बदलाव होता है और बहु-स्टाइल टेक्स्ट में बदलाव नहीं होता अभी तक लागू नहीं किया गया है. (I4c3ea)
  • अपटाइम और अवधि को हटा दिया गया है. (Ib9bf4, b/177420019)
  • ComposeData.asTree() और इससे जुड़े एपीआई को दूसरी जगह ले जाया गया ui-tooling-data मॉड्यूल को अलग करने और प्रयोग के तौर पर मार्क करने के लिए (Ic95b8)
  • राउंडर कॉर्नर शेप, कट कॉर्नर शेप, और कॉर्नर बेस्ड शेप के पैरामीटर का नाम, बाएं/दाएं से बदलकर, शुरू/खत्म हो गया. ऐसा इसलिए किया गया, ताकि आरटीएल की दिशा में शेप के ऑटो मिररिंग को काम किया जा सके. जब ऑटो-मिररिंग की सुविधा काम नहीं करती, तब ऐसे मामलों के लिए शेड्यूल होने वाली कूलरूंडिंग कॉर्नर और TotalCutCornerSize की सुविधा शुरू की गई है. (I61040, b/152756983)
  • वह एपीआई जिसे Compose कंपाइलर प्लगिन टारगेट करता है के बजाय इंटरफ़ेस का इस्तेमाल करने के लिए रीफ़ैक्टर किया गया है कंक्रीट क्लास के रूप में पेश किया. इंटरफ़ेस अब एक प्रकार पैरामीटर है.

    यह एक अंदरूनी बदलाव है, जिससे सोर्स पर कोई असर नहीं पड़ना चाहिए कोड के साथ काम करता है, लेकिन यह बाइनरी ब्रेकिंग बदलाव है. (I3b922, b/169406779)

  • अनजाने में सार्वजनिक StringBuilder.deleteAt फ़ंक्शन (Id6ed9) को हटाएं

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

  • व्यू हैरारकी में मौजूद ComposeViews जो इसके चाइल्ड हैं एक अन्य कंपोज़िशन अब अपने पूर्वजों के चाइल्ड कंपोज़िशन होस्ट करती है (I92883)
  • कंपोज़ की ImageFromResource को अपडेट किया गया एपीआई, जिससे ड्रॉ हो सकने वाली कैश मेमोरी का फिर से इस्तेमाल किया जा सकता है ImageBitmap ऑब्जेक्ट लोड करते समय. (If3627, b/178751994)

वर्शन 1.0.0-alpha11

28 जनवरी, 2021

androidx.compose.ui:ui-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • withConstraints को BoxWithConstraints के तौर पर फिर से बनाया गया और फ़ाउंडेशन के लेआउट का इस्तेमाल शुरू किया गया. (I9420b, b/173387208)
  • Key.DpadUp अब काम नहीं करता है. इसके बजाय, Key.DirectionUp का इस्तेमाल करें. (Iab335, b/177954892)
  • अब से डोमेन के मालिक का इंटरफ़ेस. (If8e35)
  • प्रोग्राम के हिसाब से फ़ोकस को मूव करने के लिए, FocusManager.moveFocus() एपीआई जोड़ा गया. (I045cb, b/177681839)
  • विंडो-रिलेटिव निर्देशांक इस्तेमाल करने के लिए, पॉप-पोज़िशन प्रोवाइडर को बदलता है, न कि ग्लोबल निर्देशांक का. parentGlobalBounds का नाम बदलकर anchorBounds करता है, और windowGlobalBounds को windowSize: IntSize (I2994a) में बदल देता है
  • अवधि और अपटाइम को लंबे मिलीसेकंड से बदल दिया जाएगा. इससे, उन पर पॉइंटर इनपुट की डिपेंडेंसी हट जाती है क्लास. (Ia33b2, b/175142755, b/177420019)
  • AmbientSavedStateRegistryOwner को पहले से मौजूद Ambient LifecycleOwner और AmbientViewModelStoreOwner (I9a3e8, b/176756365) की तरह ही जोड़ा गया है
  • अपडेट किए गए वेक्टर ग्राफ़िक टिनिंग को पार्स करने की सुविधा के लिए एपीआई वेक्टर ग्राफ़िक के रूट पर लागू होता है. (Id9d53, b/177210509)
  • अलग-अलग डिवाइसों के बीच फ़र्क़ करने के लिए, Pointer InputChange में deviceType जोड़ा गया (Iac787, b/175142755)
  • AmbientWindowManager का नाम बदलकर AmbientWindowInfo (I2686a, b/177084714, b/177084983) कर दिया गया है
  • ग्लोबल कोऑर्डिनेट के वे तरीके जिन्हें अब इस्तेमाल नहीं किया जा रहा है और बनाया गया है नए विंडो-आधारित कोऑर्डिनेट के तरीके का इस्तेमाल करता है. (Iee284)
  • Modifier.toolingGraphicslayer को जोड़ा गया जो जांच के चालू होने पर ग्राफ़िक लेयर मॉडिफ़ायर जोड़ता है. (I315df)
  • FocusRequester.createRefs को अब प्रयोग के तौर पर मार्क कर दिया गया है, क्योंकि यह बदल सकता है. (I2d898, b/177000821)
  • SemanticspropertyReceiver.hidden का नाम invisibleToUser में बदल दिया गया है और @ExampleComposeUiApi को मार्क किया गया है. AccessibilityRangeInfo का नाम बदलकर, ProgressBarRangeInfo. statusDescriptionRange का नाम बदलकर, ProgressBarRangeInfo. Accessibility ScrollState का नाम बदलकर, ScrollAxisRange किया गया. हॉरिज़ॉन्टलAccessibility ScrollState का नाम बदलकर हॉरिज़ॉन्टल ScrollAxisRange किया गया. वर्टिकलAccessibility ScrollState का नाम बदलकर,verticalscrollAxisRange किया गया. (आईडी3148)
  • PointerइनपुटData और बदलाव करने वाला Pointer InputChange हटाया गया ताकि वह PointerइनपुटData के सभी फ़ील्ड दे सकें. बनाया गया PointerइनपुटEvent और PointerइनपुटEventData, क्योंकि उनका इस्तेमाल इनमें नहीं किया जाता कोई भी सार्वजनिक एपीआई. (Ifff97, b/175142755)
  • अपडेट किया गया GraphicslayerScope लागू करना डेंसिटी का इस्तेमाल करके, डीपी रॉ पिक्सल. (Ied528, b/176819695)
  • पंक्ति को फ़ॉलो करने के लिए, मैट्रिक्स एपीआई को अपडेट किया गया प्रमुख क्रम और इंडेक्स स्थिरांक उपलब्ध कराएं अलग-अलग विषयों के बीच कन्वर्ज़न में मदद करने के लिए फ़्रेमवर्क से मेल खाने के लिए मैट्रिक्स निरूपण SkMatrix और Matrix4 के बीच कन्वर्ज़न लॉजिक मिल सकता है. (I432e6)
  • एक्सपेरिमेंट के लिए, monotonicFrameAnimationClockOf तरीके हटाए गए (Ib753f, b/170708374)
  • String.fintPrecedingBreak और String.fingफ़ॉलोब्रेक को InternalTextApi पर ले जाएं. (I657c4)
  • androidx.compos.ui.util.isSurrogatePair को सार्वजनिक एपीआई से हटा दिया गया है. (Ia9494)
  • TransformText.transFormatText का नाम बदलकर TransformText.text किया गया
    • TransformText अब एक डेटा क्लास नहीं है (Ie672a)
  • data class को इन क्लास से हटाया गया:
    • इनलाइन टेक्स्ट-कॉन्टेंट
    • LocaleList (I605c7)
  • नीचे दी गई क्लास, अब डेटा क्लास नहीं हैं:
    • एनोटेटेड स्ट्रिंग
    • ParagraphStyle
    • स्पैन-स्टाइल
    • TextStyle
    • फ़ॉन्टवेट
    • टेक्स्ट डेकोरेशन
    • टेक्स्टजियोमेट्रिक ट्रांसफ़ॉर्म
    • टेक्स्टइंडेक्स
    • टेक्स्टलेआउट-नतीजे
    • TextLayoutइनपुट (Iaff99)
  • विज़ुअल ट्रांसफ़ॉर्मेशन को फ़ंक्शनल इंटरफ़ेस में बदला गया (I3bba4)
  • फ़ंक्शन रेफ़रंस पैरामीटर टाइप (I5e1bd) जोड़ा गया
  • InspectorNode (Ice42f) में बदली गई सीमाएं जोड़ें

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

  • onCommit, onDispos, और onActive को Sideimpact और Disposableimpact API (If760e) का इस्तेमाल करने की सुविधा नहीं दी है
  • फ़ॉन्ट/फ़ॉन्ट फ़ैमिली/टाइपफ़ेस के लिए फ़ैक्ट्री फ़ंक्शन में बदलाव करना

    • कैपिटल लेटर से शुरू होने वाले फ़ैक्ट्री फ़ंक्शन जोड़े गए
    • लोअरकेस वाले पिछले फ़ैक्ट्री फ़ंक्शन अब काम नहीं करते पहला अक्षर
    • नए फ़ैक्ट्री फ़ंक्शन, इसके बजाय FontFamily दिखाते हैं सब-क्लास
    • सब-क्लास के कंस्ट्रक्टर छिपाए गए, ताकि वे इन्हें सिर्फ़ फ़ैक्ट्री फ़ंक्शन से बनाया जा सकता हो.
    • Font.asFontFamily का नाम बदलकर Font.toFontFamily (I42aa7) किया गया
  • ComposeContentTestRule के बारे में जानकारी. यह विस्तार से भी उपलब्ध होगी ComposeTestRule और setContent को परिभाषित करता है, जिसे यहां से हटा दिया गया है ComposeTestRule. createEmptyComposeRule() एट्रिब्यूट की वैल्यू में फ़ैक्ट्री का तरीका जोड़ा गया जो ComposeTestRule दिखाता है और आपको. इसका इस्तेमाल तब करें, जब आपको टेस्ट के दौरान अपनी ऐक्टिविटी लॉन्च करनी हो, उदाहरण के लिए, ActivityScenario.launch (I9d782, b/174472899) का इस्तेमाल करके

  • animateAsState का नाम अब animateFooAsState हो गया है, जहां Foo यह है ऐनिमेट किए जा रहे वैरिएबल का टाइप. उदाहरण के लिए, फ़्लोट, Dp, ऑफ़सेट वगैरह (Ie7e25)

  • इमेज और आइकॉन में कॉन्टेंट की जानकारी वाला पैरामीटर जोड़ दिया गया है. इसका इस्तेमाल सुलभता सेवाओं का ब्यौरा देने के लिए किया जाता है (I2ac4c)

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

  • OnSizeChanged लेआउट के साइज़ की रिपोर्ट कर रहा था कॉन्टेंट. अब यह, कार्रवाई बदलने वाली चेन. (I36b78, b/177562900)

  • emit() एपीआई और सभी ओवरलोड को बंद कर दिया गया है. इसका नाम बदलकर ComposeNode कर दिया गया है. एपीआई एक जैसे होते हैं. ये सिर्फ़ एक अलग नाम हैं, ताकि Compose (I4137b) के नाम रखने के तरीकों का पालन किया जा सके

  • TextFieldValue, AnnotatedString को स्वीकार करता है. हालांकि, यह है केवल एपीआई में बदलाव होता है और बहु-स्टाइल टेक्स्ट में बदलाव नहीं होता अभी तक लागू नहीं किया गया है.

    • initial को AdvertisingBuffer कंस्ट्रक्टर पैरामीटर से हटाया गया. (I326d5)
  • इन अमान्य और कंपोज़िशन रेफ़रंस() की जगह को अबcurrentRecomposScope और RememberPositionReference की जगह रोक दिया जाता है. (I583a8)

  • AnnotatedString को kotlin.CharSequence से बढ़ाने के लिए बदला जाता है. इसलिए, लंबाई और उप-क्रम अब इंस्टेंस फ़ंक्शन हैं. और एक्सटेंशन फ़ंक्शन हटा दिए जाते हैं. (Iaf429)

  • Composeलाइफ़साइकल ऑब्ज़र्वर की जगह, RememberObserver को शामिल किया जाता है और कंपोज़िशनलाइफ़साइकल ऑब्ज़र्वर को अब बंद कर दिया गया है.

    RememberObserver इसकी जगह ले रहा है बदले गए सिमेंटिक्स के साथ CompositionLifecycleObserver और नए नाम वाले तरीके. नए एपीआई को मैन्युअल तरीके से बदला जा सकता है उन चीज़ों के लिए जिन्हें सिर्फ़ एक बार याद किया जाता है, जो कि हैं और जारी हैं होना चाहिए. हालांकि, अगर रेफ़रंस फ़ाइल onRemembered कंपोज़िशन में एक से ज़्यादा बार याद रखा गया को कॉल किया गया जहां onEnter को सिर्फ़ एक बार कॉल किया जाता है. onEnter अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है अगर ऑब्जेक्ट का इस्तेमाल सब-कंपोज़िशन में किया गया है, तो इसे एक से ज़्यादा बार कॉल किया गया था, जैसे, WithConstraints और Scaffold ने सिंगल बनाया onEnter की कॉल गारंटी गलत है. इसलिए, इसे इस वजह से हटा दिया गया RememberObserver.

    RememberObserver, onAbandoned को जोड़ता है. इस प्रक्रिया को तब इस्तेमाल किया जाता है, जब पास किए गए कॉलबैक से RememberObserver इंस्टेंस लौटाया जाता है remember को किया गया, लेकिन कंपोज़िशन स्थिति में याद नहीं रखा गया और इसलिए, onRemembered को कभी कॉल नहीं किया जाएगा. यह काम कर सकता है तब होता है जब कोई अपवाद कंपोज़िशन को पूरा करने से पहले खत्म कर देता है या कंपोज़िशन को खारिज कर दिया गया है, क्योंकि राज्य के लिए कंपोज़िशन अब मौजूदा नहीं है या अब नहीं है की ज़रूरत नहीं है. अगर किसी सिंगल कॉलम के बाद RememberObserver का इंस्टेंस ऊपर दिया गया संदर्भ सुझाव किसी बाहरी संसाधन को ट्रैक कर रहा है onForgotten और onAbandoned, दोनों बताते हैं कि संसाधन की अब ज़रूरत नहीं है. अगर ऑब्जेक्ट काम को ट्रैक कर रहा है शुरू किया गया या onRemembered, onAbandoned में दिए गए संसाधन को अनदेखा किया जा सकता है, क्योंकि अगर onRemembered कॉल किया गया. (I02c36)

  • दो या उससे ज़्यादा TextUnits के बीच, अंकगणित की ऐसी कार्रवाइयां जो अब काम नहीं करतीं. Int.sp और Int.em जैसे एक्सटेंशन फ़ंक्शन को प्राथमिकता देने के लिए, अब काम नहीं करने वाले TextUnit.Sp और TextUnit.Em फ़ंक्शन. (I48369)

  • लाइब्रेरी में उपलब्ध संसाधन, जिनके बारे में साफ़ तौर पर जानकारी नहीं दी गई है (जैसे, Public.xml के ज़रिए) अब डिफ़ॉल्ट रूप से निजी है. (Ia1dcc, b/170882230)

  • Scrollableकॉलम/पंक्ति बहिष्कृत कर दी गई थी. जब आपके पास बड़ा स्क्रोल करने वाला कॉन्टेंट होता है, तो स्क्रोल करने लायक कॉलम का इस्तेमाल करना, LazyColumn की तुलना में कम कारगर होता है. इसकी वजह यह है कि LazyColumn की मदद से, हम सिर्फ़ दिखने वाले एलिमेंट को तैयार/मेज़र/ड्रॉ कर सकते हैं. लोगों को गलत तरीके से काम करने से रोकने के लिए, हमने Scrollableकॉलम और ScrollableRow के इस्तेमाल को बंद करने का फ़ैसला किया है. साथ ही, इसकी जगह LazyColumn और LazyRow के इस्तेमाल को बढ़ावा देने का फ़ैसला लिया गया है. उपयोगकर्ता अब भी यह तय कर सकते हैं कि उन्हें लेज़ी बिहेवियर की ज़रूरत नहीं है और वे सीधे तौर पर इस तरह मॉडिफ़ायर का इस्तेमाल कर सकते हैं: कॉलम(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)

  • कृपया ImeAction.NoAction के बजाय ImeAction.None का इस्तेमाल करें

    • कृपया ImeAction.Unspecified (Ie1bcc) के बजाय ImeAction.Default का इस्तेमाल करें
  • टेस्टिंग में TestCoroutineDispatcher का फ़ायदा लें (I532b6)

  • TextइनपुटService.onStateUpdated का नाम updatedState (Id4853) के तौर पर बदला गया

  • ट्रांज़िशन की परिभाषा पर आधारित ट्रांज़िशन की सुविधा अब काम नहीं करती (I0ac57)

  • TextUnitType.Inherit हटा दी गई है. इसके बजाय, कृपया TextUnitType.Unspecified का इस्तेमाल करें. (I9ff64)

वर्शन 1.0.0-alpha10

13 जनवरी, 2021

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

ज़बरदस्त बदलाव

  • इंटरनल कंपाइलर को फिर से बनाना एपीआई, जनरेट किए गए नोड में बदलावों के बैच बनाने की अनुमति देता है "बदलाव लागू करें" में कंपोज़िशन की वजह से सभी @Composable फलनों के बाद, कंपोज़िशन का फ़ेज़ पूरा हो चुका है.

    यह व्यवहार पर असर डाल रहा है परिवर्तन जो ऐप्लिकेशन कोड को इस रूप में प्रभावित कर सकता है: नोड अब आंतरिक और एक्सपेरिमेंटल एपीआई, बदलावों के लागू होने के बाद तक लागू किया गया. आम तौर पर, यह तरीका अपनाया जा सकता है: के आस-पास के कोड में ऐसी डिपेंडेंसी के साथ SideEffect कंपोज़ेबल, जिसकी वजह से नोड बनाए जाने तक कोड शुरू किया गया. (I018da)

एपीआई में किए गए बदलाव

  • Modifier.focusOrder() जोड़ा गया, जिसका इस्तेमाल कस्टम फ़ोकस ट्रैवर्सल क्रम (I90cf5, b/175899543, b/170155556, b/170155429) के बारे में बताने के लिए किया जा सकता है
  • इसके बजाय, फ़ोकस के लिए काम न करने वाले onFocusChanged या onFocusEvent का इस्तेमाल करने पर (I3ecb9, b/175156387) हटाएं
  • बदलाव करने के एपीआई में किए गए बदलाव
    • बदलाव का नाम बदलकर एडिट कमांड किया गया
    • एडिट ऑपरेशन कंक्रीट लागू करने के लिए कमांड सफ़िक्स जोड़ा गया
    • एडिट कमांड की मदद से, अब डेटा क्लास का इस्तेमाल नहीं किया जा सकेगा
    • अप्लाई करने के लिए एडिट ऑपरेटरेशन.प्रोसेस फ़ंक्शन का नाम बदला गया
    • InputEventListener का नाम बदलकर InputEventCallback कर दिया गया
    • (I0a366)
  • इस्तेमाल नहीं किए गए PxSquared, PxCubed, PxInverse को हटाया गया. साइज़.center() को प्रॉपर्टी में बदला गया. (I973f7)
  • ui-test मॉड्यूल अब टेस्ट में हैं यूज़र इंटरफ़ेस (यूआई) के लिए रीकंपोज़र (Ibebd8)
  • कॉम्पोनेंट के हिस्से और गणित के लिए, वेलोसिटी में बदलाव किया गया कार्रवाइयां. (Ib0447)
  • @ExperimentalTesting का नाम बदलकर @ExperimentalTestApi किया इससे मिलते-जुलते एक्सपेरिमेंट वाले एपीआई एनोटेशन (Ia4502, b/171464963) से मेल खाते हैं
  • Color.useOrElse() का नाम बदलकर Color.takeOrElse() (Ifdcf5) पर सेट किया गया
  • इस्तेमाल नहीं की गई DpInverse, DpSquared, और DpCubed क्लास हटाई गईं. (I4d62b)
  • Constraints#stisfiedBy का नाम बदलकर isSatisfiedBy किया गया. (I9cf5c)
  • लेआउटनोड की सीमाएं बदलने पर, मालिक को इसकी सूचना देने के लिए कॉलबैक जोड़ें. (I72fd1)
  • जोड़ा गया बताया गया है, isUnspecified, और इसके लिएOrElse का इस्तेमाल किया जाता है इन-लाइन क्लास में तय नहीं किया गया कॉन्स्टेंट शामिल है. (I93f7b, b/174310811)
  • [Abstracker]ComposeView को बड़ा करके रीसाइकल करने की अनुमति देना कंपोज़िशन पर आधारित व्यू, जो उनकी कंपोज़िशन को दोबारा इस्तेमाल करने के लिए इस्तेमाल करते हैं बाद में. विंडो के स्कोप वाले रिकंपोज़र इंस्टॉल करने और खोजने के लिए, एपीआई जोड़ें और चाइल्ड कंपोज़िशन बनाने के लिए CompanionReferences.

    कंपोज़िशन डिस्पोज़ल को कॉन्फ़िगर करने के लिए, Viewकंपोज़िशन रणनीति को जोड़ें [Absact]ComposeViews; डिफ़ॉल्ट तरीके से 'डिसपोज़ करें' चालू है विंडो अलग करना. (I860ab)

  • Any.identityHashCode() सार्वजनिक एपीआई (I025d7) को हटाया गया

  • toStringAsFixed हटाया गया String.format का इस्तेमाल करने के लिए एपीआई स्ट्रीम करने की सुविधा मिलती है. (IAB6b)

  • Foundation Strings.kt (I4a5b7, b/172366489) में टॉगल जोड़ें

  • NativeClass को यहां ले जाया गया ui मॉड्यूल और इसे अंदरूनी बनाया गया है. NativeClass के अपडेट किए गए इस्तेमाल लागू करने के लिए बराबर कार्रवाइयां 'क्या MyClass है' आज़माएं. (I4f734)

  • Modifier.focus() और Modifier.focusRequester() अब काम नहीं करती है. इसके बजाय, Modifier.focusModifier() और Modifier.focusReference() का इस्तेमाल करें. (I75a48, b/175160751, b/175160532, b/175077829)

  • SelectionManager को चुने जा सकने वाले अपडेट की सूचना देने के लिए, Selection रजिस्ट्रार.notifySelectableChange की शुरुआत की गई. (I6ff30, b/173215242)

  • Outline.bounds की शुरुआत की गई बाउंडिंग रेक्टैंगल पाने के लिए प्रॉपर्टी जिसमें अलग-अलग आउटलाइन लागू की जा सकती हैं. (I16e74, b/175093504)

  • अब इस्तेमाल नहीं किया जा सकने वाला TestUiDispatcher. इसके बजाय, Dispatchers.Main का इस्तेमाल करें (Ic171f, b/175385255)

  • ImeOptions और KeyboardOptions अब डेटा क्लास नहीं हैं (I3c898, b/168684531)

  • VisualTransformation API में बदलाव

    • ऑफ़सेट मैप का नाम बदलकर ऑफ़सेट मैप किया गया
    • OffsetMapping.identityOffsetmap का नाम बदलकर, OffsetMapping.Identity
    • PasswordTransformation अब डेटा-क्लास नहीं है
    • ऑफ़सेट मैपिंग को इसकी अपनी फ़ाइल में ले जाया गया
    • (I0bdf3)
  • पोज़िशन का नाम बदलकर DpOffset किया गया और getडिस्टेंस() (Ib2dfd) को हटाया गया

  • मज़ेदार Dp.isFinite() को val Dp.isFinite (I50e00) में बदला गया

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

  • रीकंपोज़र अब अपनी मौजूदा स्थिति का फ़्लो दिखाता है, जिससे उसकी गतिविधि और उससे जुड़े असर पर नज़र रखी जा सकती है. (Ifb2b9)
  • नेटिव keyEvent को अब keyEvent.nativeKeyEvent (I87c57, b/173086397) से ऐक्सेस किया जा सकता है
  • animate() को अब animateAsState() से बदल दिया गया है, इससे T के बजाय, State<T> दिखेगा. इससे बेहतर तरीके से परफ़ॉर्मेंस बेहतर न हो, क्योंकि अमान्य होने के दायरे को कम किया जा सकता है जहां स्टेट वैल्यू को पढ़ा जाता है. (Ib179e)
  • सिमैंटिक रोल एपीआई जोड़ें और इसमें पैरामीटर के तौर पर भूमिका जोड़ें क्लिक किया जा सकने वाला, चुना जा सकने वाला, और टॉगल किया जा सकने वाला SemanticsModifier. बदल दिया जाए Modifier.progressSemantics ताकि स्लाइडर भी इसका इस्तेमाल कर सके. (I216cd)
  • कोरूटीन पर आधारित नया एपीआई Animatable, जो यह पक्का करता है कि सभी को एक-दूसरे के साथ बेहतर अनुभव मिल सके ट्रैक करने में मदद मिलती है.
    • इसके अलावा, कई डाइमेंशन में नुकसान पहुंचाने वाले ऐनिमेशन के साथ काम करने के लिए तैयार करने के लिए नया बनाना
    • (I820f2, b/168014930)

वर्शन 1.0.0-alpha09

16 दिसंबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • अब काम नहीं करने वाले KeyEvent.Alt को हटा दिया गया है. इसके बजाय, KeyEvent.isAltPressed का इस्तेमाल करें. (आईडी695)
  • Modifier.keyinputFilter और Modifier.previewKeyTextFilter अब काम नहीं करता है. इसके बजाय, Modifier.onKeyEvent और Modifier.onPreviewKeyEvent का इस्तेमाल करें (Idbf1b, b/175156384)
  • Modifier.focusObserver अब काम नहीं करता. इसके बजाय, Modifier.onFocusChanged या Modifier.onFocusEvent का इस्तेमाल करें (I30f17, b/168511863, b/168511484)
  • पॉइंटर इनपुट एपीआई को निलंबित करने के लिए, नाम बदला गया HandlePointerinputScope से AwaitPointerEventScope और हैंडलर की इनपुट वैल्यू को WwaitPointerEventScope() में ले जाएगा. (Idf0a1, b/175142755)
  • 'ऑटोमैटिक भरने की सुविधा' एपीआई अब एक प्रयोग के तौर पर उपलब्ध एपीआई है और इसके लिए ऑप्ट-इन करना ज़रूरी है (I0a1ec)
  • FocuSRequester इंस्टेंस (I35d84, b/174817008) बनाने के लिए, नुकसान पहुंचाने वाले एलान जोड़ना
  • AccessibilityLabel का नाम बदलकर contentDescription कर दिया गया है. AccessibilityValue का नाम बदलकर statusDescription कर दिया गया है. (I250f2)
  • पॉइंटर इनपुट एपीआई (Ia54d5, b/175142755) को निलंबित करने की वजह से, कस्टम इवेंट हटाए गए
  • सेलेक्शन रजिस्ट्रार में कई नए फ़ंक्शन लॉन्च किए गए. साथ ही, onPositionChange का नाम बदलकर, InformationPositionChange रखा गया. (Ifbaf7)
  • LayoutNode के और सदस्य जिन्हें हमने इंटरनल के तौर पर मार्क किया है (I443c6)
  • LayoutInfo को टूलिंग और टेस्टिंग (I9b190) में इस्तेमाल करने के लिए पेश किया गया था
  • Androidमालिक का बनाया गया इंटरनल (Ibcad0, b/170296980)
  • प्रयोग के तौर पर पॉइंटर जोड़ने के लिए इस्तेमाल किया गया एनोटेशन (Ia7a24) हटाया गया
  • नेस्ट किया गया स्क्रोल सिस्टम जोड़ा गया. ज़्यादा जानकारी के लिए, Modifier.nestedscroll पर जाएं (I36e15, b/162408885)
  • subcomposInto(LayoutNode) को अंदरूनी (Id724a) बनाया गया था
  • Applier इंटरफ़ेस को आसान बनाने के लिए बदल दिया गया है पेड़ों को ऊपर से नीचे की ओर न रखकर, उन्हें नीचे की ओर दिखाना.

    insert() तरीके का नाम बदलकर, insertTopDown() कर दिया गया है.

    नया तरीका insertBottomUp() जोड़ा गया.

    Applier, जिस ट्री में बदलाव कर रहा है उसमें नोड जोड़ता है insertTopDown() या insertBottomUp() का इस्तेमाल किया जा रहा है. यह इस पर निर्भर करता है कि जो बेहतर परफ़ॉर्म करता है.

    LayoutNode और View जैसे कुछ पेड़ बहुत ज़्यादा दिखते हैं और टॉप-डाउन के मुकाबले बॉटम-डाउन को बनाने में ज़्यादा असरदार होते हैं. इस बदलाव से पहले, बॉटम-अप को लागू करने के लिए, कई निवेशनों की ज़रूरत थी. की ज़रूरत होती है. इसे हर ऐप्लायर में कॉपी किया जाता है, जिसे बॉटम-अप की ज़रूरत होती है. परफ़ॉर्मेंस के लिए कंस्ट्रक्शन. इस बदलाव के साथ Applier एक ट्री बनाने के लिए insertBottomUp() को ओवरराइड करता है ट्री टॉप-डाउन बनाने के लिए insertTopDown(). (Icbdc2)

  • AndroidDialogProperties में speechOnBackPress और setOnClickOutside प्रॉपर्टी को जोड़ने के बाद, उसे जोड़ा गया. ये कॉन्फ़िगर करने की अनुमति तब देते हैं, जब डायलॉग के onखारिजRequest lambda को शुरू किया जाएगा. (If5e17)

  • PaintterResource एपीआई जोड़ा गया ओपैक लोडिंग पेंटर ऑब्जेक्ट को हैंडल करने के लिए रास्टराइज़ किए गए ऐसेट फ़ॉर्मैट, जैसे कि PNG या वेक्टरDrawables. उपभोक्ताओं के पास अब इससे पहले कि ऐसेट के टाइप का पता चल सके, और पेंटर ऑब्जेक्ट पाने के लिए इस तरीके को कॉल कर सकते हैं इमेज कंपोज़ेबल या पेंटर मॉडिफ़ायर में इस्तेमाल करने के लिए. (I2c703, b/173818471)

  • डिसेंडेंट 'साफ़ तौर पर तय करें' में Modifier.clearAndSetSemantics जोड़ा गया और नए वाक्य सेट करें. (I277ca)

  • ContentDrawScope को यूज़र इंटरफ़ेस (यूआई-ग्राफ़िक) में ले जाया गया मॉड्यूल को DrawScope के साथ जोड़ना होता है. (Iee043, b/173832789)

  • पाथइफ़ेक्ट ग्राफ़िक एपीआई की शुरुआत की गई का इस्तेमाल करें. पक्ष में NativePathimpact का इस्तेमाल बंद किया गया पाथइफ़ेक्ट को लागू करने की उम्मीद करता है/असल में. (I5e976, b/171072166)

  • Compose में IdlingResource इंटरफ़ेस जोड़ा गया, जिसे 'लिखें' के तौर पर जोड़ा गया है का इस्तेमाल किया जा सकता है. उन्हें रजिस्टर किया जा सकता है और ComposeTestRule (I433f3) के ज़रिए रजिस्टर किया गया है

  • ComposeIdlingResource का ग्लोबल (अन)रजिस्ट्रेशन हटाया गया और ComposeIdlingResource (I32660) में घड़ियों का ग्लोबल (अन)रजिस्ट्रेशन

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

  • ऑफ़सेट मॉडिफ़ायर में Lambdas, अब फ़्लो के बजाय IntOffset को लौटाता है. (Ic9ee5, b/174137212, b/174146755)
  • स्लॉटटेबल, स्लॉटरीडर, और सार्वजनिक एपीआई का इस्तेमाल करके, खास ऐप्लिकेशन को बदलने की सुविधा. इन्हें इसके तौर पर मार्क किया गया था InternalComposeAPI पहले से था. अब ये अंदरूनी इस्तेमाल के लिए हैं लिखें.

    कंपोज़िशन डेटा और कंपोज़िशन ग्रुप को निकालने के लिए ui-tooling API का इस्तेमाल करना कंपोज़िशन जानकारी. ये सार्वजनिक हैं, लेकिन यह ui-tooling API के बाहर इस्तेमाल किया जाता है, जो वह रॉ जानकारी जिसे ui-tooling API (एपीआई) बताता है (I31a9c)

  • इसके लिए ShaderBrush का रिफ़ैक्टर किया गया जब लेज़ी तरीके से शेडर इंस्टेंस बनाया जाता है, ड्रॉइंग के साइज़ की जानकारी आस-पास की कोई जगह उपलब्ध हो. यह ऐसे ग्रेडिएंट निर्धारित करने में उपयोगी होता है किसी कंपोज़ेबल की ड्रॉइंग का पूरा हिस्सा इस्तेमाल करें कंपोज़िशन के समय पर, पसंद के मुताबिक DrawModifier लागू करने होंगे.

    अब काम नहीं करने वाले ग्रेडिएंट फ़ंक्शन कंस्ट्रक्टर एपीआई एक ग्रेडिएंट ऑब्जेक्ट पर फैक्ट्री तरीकों के पक्ष में. (I511fc, b/173066799)

  • LazColumnFor, LazyRowFor, LazyColumnForIndexed, और LazyRowForIndexed का इस्तेमाल बंद कर दें. इसके बजाय, LaZColumn और LazyRow का इस्तेमाल करें (I5b48c)

  • BuildCompat.isAtLeastR (Idb37e) को बंद कर दिया गया है

  • BuildAnnotatedString फ़ैक्ट्री फ़ंक्शन को क्रम से जोड़ा गया है AnnotatedString को बनाने के लिए. ऐसी व्याख्या वाली स्ट्रिंग जो अब काम नहीं करती बिल्डर फ़ंक्शन का इस्तेमाल करें. (Idfe0b)

  • एक्सटेंशन के तरीके हटाए गए वैल्यू बदलने के लिए, फ़्लोट और Doubleclick पर शामिल हैं. निजी फ़ंक्शन के तौर पर ले जाया गया पाथParser को लागू करने के दौरान सिर्फ़ इसी जगह पर इसका इस्तेमाल किया गया था (I25f52)

वर्शन 1.0.0-alpha08

2 दिसंबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये कमिट शामिल हैं.

एपीआई में किए गए बदलाव

  • सिमेंटिक्स कार्रवाई खारिज करें (I2b706)
  • DrawModifier API को androidx.compos.ui पैकेज को androidx.compos.ui.draw पैकेज को देख सकते हैं. यहां DrawModifierExpiration.kt फ़ाइल बनाई गई इसमें सहायता के लिए टाइपएलियास/हेल्पर मेथड शामिल हैं माइग्रेशन की प्रोसेस को रोकने से, एपीआई. (Id6044, b/173834241)
  • Modifier.drawlayer का नाम बदलकर Modifier.graphicslayer किया गया साथ ही, मिलती-जुलती क्लास को Graphicslayer के हिसाब से अपडेट किया गया एपीआई से मिले सुझाव. (I0bd29, b/173834241)
  • इसकी मदद से, playable.placeWithlayer() और playable.placeRelativeWithlayer() को जोड़ा गया. इसकी मदद से, कस्टम लेआउट और लेआउट मॉडिफ़ायर की मदद से, बच्चे की ड्रॉइंग के लिए ग्राफ़िक लेयर का इस्तेमाल किया जा सकता है. हम सबसे पहले रीड्रॉइंग को ऑप्टिमाइज़ कर पाते हैं, ताकि जब हमें किसी बच्चे का कॉन्टेंट फिर से ड्रॉ न करना पड़े, तो दूसरा तरीका हो (Ibd8f6, b/170296989, b/171493718, b/173030831)
  • <T> को SubcomposLayout के एलान से हटा दिया गया. इसका इस्तेमाल, टाइप तय किए बिना किया जा सकता है. (Ib60c8)
  • Modifier.Scale/किताब को जोड़ा गया ड्रॉलेयर के लिए सुविधा के तौर पर एपीआई.
    • Modifier.drawOpacity का नाम बदलकर Modifier.alpha किया गया
    • Modifier.drawShadow का नाम बदलकर Modifier.shadow किया गया (I264ca, b/173208140)
  • Made PointerइनपुटData का अपटाइम और स्थान फ़ील्ड अमान्य नहीं हो सकते. (Id468a)
  • Materialथीम अब चुने गए हैंडल और बैकग्राउंड के लिए सही रंग सेट करती है. चुने गए कलर को पसंद के मुताबिक बनाने के लिए, नॉन-मटीरियल ऐप्लिकेशन मैन्युअल तरीके से AmbientTextSelectionColors इस्तेमाल कर सकते हैं. (I1e6f4, b/139320372, b/139320907)
  • WindowManager.isWindowFocus किया गया यह पता लगाने के लिए किया गया है कि होस्ट विंडो फ़ोकस में है या नहीं. साथ ही, WindowFocusDetailsr जोड़ा गया है, जो onWindowFocusChanged कॉलबैक उपलब्ध कराता है. (I53b2a, b/170932874)
  • अपडेट किया गया TransformOrigin API वापस लौटाने के लिए विनाशकारी सिंटैक्स रखने के लिए pivotFractionX और pivotFractionY component1 और component2 (If43c4, b/173586560)
  • कंपोज़ेबल लैम्डा पैरामीटर के नाम और उसकी पोज़िशन के लिए लिंट की जांच जोड़ी गई, ताकि यह पता लगाया जा सके कि वह कंपोज़ेबल के दिशा-निर्देशों के मुताबिक है या नहीं. साथ ही, लिंट की जांच और दिशा-निर्देश के मुताबिक, कुछ एपीआई को children का इस्तेमाल करके उनके पीछे के लैम्डा के नाम के तौर पर content पर माइग्रेट किया गया. (Iec48e)
  • एपीआई जोड़ा गया, ताकि यह पता लगाया जा सके कि keyevent डिस्पैच करते समय, Alt, Ctrl, Meta या Shift कार्रवाई बदलने वाली कुंजियां दबाई गई थीं या नहीं. (I50ed9)
  • नया Modifier.drawLayer() ओवरलोड जोड़ा गया. यह एक नए GraphicslayerScope पर लैम्डा ब्लॉक को लेता है, जहां आप लेयर पैरामीटर को इस तरह से तय करते हैं कि स्थिति बदलने पर, लेयर के रीकंपोज़िशन और रिलेआउट को स्किप किया जा सकता है. DrawlayerModifier अब अंदरूनी तौर पर अपने लॉजिक को LayoutModifier (I15e9f, b/173030831) केplaceable.placeWithlayer() तरीके में माइग्रेट करने की तैयारी कर रहा है
  • अब काम नहीं करने वाले ऐंबियंट के नाम में Ambient जुड़ा हुआ है. ऐंबियंट और कंपोज़ एपीआई के दिशा-निर्देशों के मुताबिक, इनकी जगह ऐंबियंट प्रीफ़िक्स के तौर पर नई प्रॉपर्टी जोड़ी गई हैं. (I33440)
  • androidx.compose.ui.text.Typeface को यहां ले जाया गया androidx.compose.ui.text.font.Typeface (Ic2b81)
  • सिमैंटिक आर्ग्युमेंटmergeAllDescendants का नाम बदलकर यह किया गया MergeDescendants. (आईबी6250)
  • हाथ के जेस्चर का नया डिटेक्टर, जिसमें कर्सर को निलंबित किया गया है स्क्रीन की दिशा को लॉक करने के साथ-साथ इनपुट एपीआई. (Icef25)
  • वेक्टरऐसेट का नाम बदलकर Imageवेक्टर किया गया वेक्टरऐसेट को बिल्डर में ले जाया गया और इसका नाम बदला गया की एक इनर क्लास होनी चाहिए एपीआई से जुड़े दिशा-निर्देश. वेक्टरAssetBuilder के टाइपालिया को इसमें जोड़ा गया Compat के लिए Imageवेक्टर.Builder का लिंक. (Icfdc8)
  • ImageAsset का नाम बदला और से संबंधित तरीके का इस्तेमाल करें. (Ia2d99)
  • PlanScope केplace() के लिए zIndex पैरामीटर जोड़ें, ताकि Modifier.zIndex() अब LayoutModifier के तौर पर काम कर सके. साथ ही, कोई भी कस्टम लेआउट सीधे प्लेसमेंट ब्लॉक (I711f7, b/171493718) में अपने बच्चों के लिए zIndexs सेट कर सके
  • फ़ाउंडेशन सिमेंटिक्स प्रॉपर्टी को ui (I6f05c) में ले जाया गया
  • प्लेस(ऑफ़सेट) और प्लेसरिलेटिव(ऑफ़सेट) का बहिष्कार करें. इसके बजाय, int ऑफ़सेट वाले ओवरलोड का इस्तेमाल करें (I4c5e7)
  • पहले काम न करने वाले एपीआई हटा दिए गए थे: Modifier.onPositioned को हटाया गया. Modifier.onGloballyPositioned का इस्तेमाल करें. Modifier.onDraw को हटा दिया गया है. Modifier.onDrawBehind का इस्तेमाल करें. Modifier.plus को हटा दिया गया है. Modifier.here का इस्तेमाल करें. रंग.अनसेट को हटाया गया.रंग की जानकारी नहीं है का इस्तेमाल करें. PxBounds क्लास हटा दी गई है. इसके बजाय, Rect का इस्तेमाल करें. (Ie9d02, b/172562222)
  • अलाइनमेंट इंटरफ़ेस को अपडेट करके चालू कर दिया गया है. (I46a07, b/172311734)
  • टैप करने, दो बार टैप करने, और दबाकर रखने के लिए, जेस्चर डिटेक्टर. नए सस्पेंडिंग पॉइंटर का इस्तेमाल करके, प्रेस इंडिकेटर इनपुट. इसमें कुछ सुविधाएं भी जोड़ी गई हैं, ताकि ताकि डेवलपर खुद के जेस्चर डिटेक्टर लिख सकें. (I00807)
  • LayoutIdParentData के लिए, id का नाम बदलकर layoutId कर दिया गया. Measurable.id का नाम बदलकर Measurable.layoutId कर दिया गया. (Iadbcb, b/172449643)
  • नया मल्टीटच जेस्चर डिटेक्टर, जिसमें यह शामिल है रोटेशन, ज़ूम और पैनिंग का पता लगाने के लिए सहायक. (Ic459d)
  • SweepgradientShader की शुरुआत की गई और SweepGradientBrush API का इस्तेमाल करना चाहिए. (Ia22c1)
  • टेस्ट में समय नियंत्रण (TestAnimationClock और इसके इस्तेमाल) है अब प्रयोग के तौर पर उपलब्ध (I6ef86, b/171378521)
  • कोरूटीन पर आधारित स्क्रोलिंग एपीआई जोड़ें:

    यह नीति, LazyListState.stapToItem और LazyListState.smoothscrollBy के निचले लेवल को जोड़ती है स्क्रोल कंट्रोल के लिए एपीआई. ये एपीआई, स्क्रोलिंग को कंट्रोल करने के लिए सस्पेंड इंटरफ़ेस उपलब्ध कराते हैं जो वापस आने से पहले स्क्रोल के खत्म होने का इंतज़ार करता है. (Ie5642)

  • Modifier.focusable को फ़ाउंडेशन में जोड़ा गया है. इसका इस्तेमाल किसी कॉम्पोनेंट में, सही सिमेंटिक्स और सुलभता के साथ, फ़ोकस करने लायक व्यवहार जोड़ने के लिए करें. (I41eb9, b/152525426, b/162865824)

  • इसमें तरीकों और प्रॉपर्टी को डिफ़ॉल्ट रूप से लागू करें AttributionClockTestRule का इस्तेमाल अपने clock (I7ea3d, b/173399709) में किया जा सकता है

  • AndroidComposeTestRule अब पसंद के मुताबिक गतिविधि को स्वीकार कर सकती है लॉन्चर (Ib8288, b/153623653, b/154135019)

  • TextLayoutresults.getLineDisplayEnd अब काम नहीं करता. इसकी जगह TextLayoutresults.getLineEnd में अब एक नया पैरामीटर जोड़ा गया है. (I73282)

  • अपडेट किया गया TextFieldValue API

    • TextFieldValue.composition को रीड ओनली किया गया
    • चुनी गई रेंज (I4a675, b/172239032) की वजह से, हटाया गया अपवाद
  • लिखाई को बोली में बदलने वाले इंजन के लिए TtsAnnotation की मदद से काम करना. (I54cc6)

  • कोरूटीन में ऐनिमेशन चलाने के लिए नए एपीआई (Ied662)

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

  • Box के अलाइनमेंट पैरामीटर का नाम बदलकर, contentalignment कर दिया गया है. (I2c957)
  • ऑफ़सेटPx मॉडिफ़ायर का नाम बदलकर ऑफ़सेट कर दिया गया. वे अब स्टेट के बजाय, लैम्डा पैरामीटर को इस्तेमाल कर रहे हैं. (Ic3021, b/173594846)
  • TextइनपुटService#onStateUpdated (I3e8f5, b/172239032, b/171860947) में queryइनपुट पैरामीटर जोड़ा गया
  • कंपोज़ेबल फ़ंक्शन में मॉडिफ़ायर पैरामीटर के लिए लिंट की जांच जोड़ी गई. यह लिंट जांच, कंपोज़ के दिशा-निर्देशों के हिसाब से पैरामीटर के नाम, रिटर्न टाइप, डिफ़ॉल्ट वैल्यू, और ऑर्डर की जांच करती है. (If493b)
  • TestAnimationClock को कुछ समय के लिए जोड़ने का विकल्प MonotonicFrameClock (I1403b, b/173402197) की मदद से
  • Android टाइपफ़ेस रैपर जोड़ा गया. कोई Android डिवाइस लोड किया जा सकता है typeface फ़ंक्शन यानी typeface(Typeface.DEFAULT) के ज़रिए टाइपफ़ेस. typefaceFromFontFamily() का नाम बदलकर typeface() (I52ab7) भी किया गया
  • यह जांचने के लिए लिंट चेक जोड़ा गया कि मॉडिफ़ायर के फ़ैक्ट्री फ़ंक्शन, मॉडिफ़ायर पर एक्सटेंशन के रूप में परिभाषित किए गए हैं या नहीं, ताकि उन्हें आसानी से एक साथ जोड़ा जा सके. (I07981)
  • पुराना ui-test मॉड्यूल और उसके स्टब हटाएं (I3a7cb)
  • रीकंपोज़र अब EmbeddingContext को स्वीकार नहीं करता; आवश्यक शेड्यूल डिपेंडेंसी, ImpactCoroutineContext से लिए जाती हैं. FrameManager अब काम नहीं करता; प्लैटफ़ॉर्म इंटिग्रेशन शुरू होना चाहिए वह भी ग्लोबल स्नैपशॉट को मैनेज कर रही है. (I02369)
  • सुलभता नोड में शैली की जानकारी पास करें. (If5e8d)
  • TextUnit.Inherit का नाम बदलकर, TextUnit.Unपिन किया गया है, ताकि यह अन्य यूनिट के साथ एक जैसा हो. (Ifce19)

यूज़र इंटरफ़ेस (यूआई) वर्शन 1.0.0-alpha07 लिखें

11 नवंबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये कमिट हैं.

एपीआई में किए गए बदलाव

  • पेश किया गया स्केलफ़ैक्टर स्केल दिखाने के लिए इनलाइन क्लास हॉरिज़ॉन्टल और वर्टिकल के लिए फ़ैक्टर एक-दूसरे से अलग ऐक्सिस के क्रम में का इस्तेमाल करें.
    • कंप्यूटस्केलफ़ैक्टर तरीका इसमें जोड़ा गया: कॉन्टेंट स्केल
    • परफ़ॉर्म करने के लिए ContentScale.FillBounds जोड़ा गया सोर्स को बढ़ाने के लिए नॉन-यूनिफ़ॉर्म स्केलिंग डेस्टिनेशन का पूरी तरह से इस्तेमाल कर लेता है.
    • कंप्यूट करने के लिए ऑपरेटर के तरीके जोड़े गए साइज़ पैरामीटर के साथ स्केल फ़ैक्टर पैरामीटर.
    • (Ic96a6, b/172291582)
  • अलाइनमेंट बनाने के लिए, बायसअलाइनमेंट और बायसबिलकुल अलाइनमेंट फ़ैक्ट्री जोड़ी गईं. (Iac836, b/169406772)
  • डेवलपर को ज़बरदस्ती फ़ोकस हटाने की अनुमति दें. (I90372)
  • एक गड़बड़ी की वजह से, Compose में व्यू के लिए ऊंचाई नहीं मापी जा सकी. इस गड़बड़ी को ठीक किया गया. (If7782)
  • ContentDrawScope में onDrawBehind API बनाया गया है का इस्तेमाल करें. (I4fc3a, b/171955269)
  • कैमरे की दूरी तय करने की सुविधा जोड़ें 3d ट्रांसफ़ॉर्मेशन को पूरा करने के लिए लेयर एपीआई पर रोटेशनX/rotationY का इस्तेमाल करें. (I40213, b/171492100)
  • कॉलबैक के बिना SelectionContainer जोड़ा गया (Ibfadb)
  • प्रयोग के तौर पर इस्तेमाल किया जाने वालाSubcomposLayoutApi एनोटेशन को हटाया गया. SubcomposLayout को अब बिना @OptIn (I708ad) जोड़े इस्तेमाल किया जा सकता है
  • FirstBaseline और LastBaseline को androidx.compos.ui.layout पैकेज (Ied2e7) में ले जाया गया है
  • ओपैसिटी को उसी तरीके से हटाया गया, जिस तरह से खोज के नतीजे दिखते हैं उलझन पैदा करने वाला होता है. (I82c62, b/171624638)
  • मेज़रमेंटनतीजे को MeasurementScope से बाहर ले जाया गया. (Ibf96d, b/171184002)
  • लेआउट से जुड़े कई सिंबल को androidx.compos.ui से androidx.compos.layout.ui में ट्रांसफ़र कर दिया गया है. (I0fa98, b/170475424)
  • अवमानित FocusState2 (I686cb, b/168686446) को हटाया गया
  • ZIndexModifier को अब अंदरूनी तौर पर इस्तेमाल किया जा सकता है (I1808b, b/171493718)
  • lerp का अपडेट किया गया रिटर्न टाइप रिटर्न के लिए साइज़ पैरामीटर का तरीका गैर-शून्य साइज़ से बचने के लिए बॉक्सिंग. (Ib0044)
  • टेस्ट करने के लिए इस्तेमाल होने वाले कोड के लिए TestMonotonicFrameClock जोड़ा गया, जो कंपोज़िशन फ़्रेम इवेंट का इंतज़ार करने के लिए, Compose का MonotonicFrameClock kotlinx-coroutines-test's runningBlockTest (I4402f) का इस्तेमाल करके
  • MessageScope.localToGlobal (I15299, b/171462785) को हटाया गया
  • onAllNodesWithSubstring फ़ाइंडर जोड़ा गया (I81dd7, b/171462889)
  • androidx.ui.test मॉड्यूल अब काम नहीं करता. कृपया इस पर माइग्रेट करें androidx.compos.ui.test और androidx.compos.ui.test.junit4 (I452e8)

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

  • CaptureToBitmap CaptureToImage में ले जाया गया. (I86385)
  • Foundation.Text को अब हटा दिया गया है और उसे content.Text से बदल दिया गया है. ऐसी बेसिक और बिना सोचे-समझी हुई टेक्स्ट एपीआई के लिए, androidx.compos.foundation.BasicText देखें, जो किसी थीम की वैल्यू का इस्तेमाल नहीं करती. (If64cb)
  • KeyboardOptions (Ida7f3) को स्वीकार करने के लिए, TextFields को अपडेट करें
  • KeyboardOptions का नाम बदलकर ImeOptions (I82f36) रखें
  • KeyboardType और ImeAction को KeyboardOptions (I910ce) में ले जाया गया
  • providerDefault को ऐंबियंट वैल्यू देने के विकल्प के तौर पर जोड़ा गया था. इसका इस्तेमाल, ऐंबियंट वैल्यू तय करने के लिए किया जा सकता है. ये वैल्यू सिर्फ़ तब सेट की जाएंगी, जब पहले से कोई ऐंबियंट वैल्यू न दी गई हो. (आईडी6635, b/171024925)
  • BaseTextField को बंद कर दिया गया है. इसके बजाय, BasicTextField का इस्तेमाल करें. (I896eb)
  • ui-test-junit4 मॉड्यूल (Ib91f8) की शुरुआत करें
  • relativePaddingFrom का नाम बदलकर paddingFrom कर दिया गया. लेआउट बाउंड से टेक्स्ट बेसलाइन तक की दूरी तय करने की सुविधा के लिए, paddingFromBaseline मॉडिफ़ायर जोड़ा गया. (I0440a, b/170633813)
  • एक जैसी सुविधाओं का इस्तेमाल करने के लिए, LaunchedTask का नाम बदलकर Launchedimpact का इस्तेमाल करें. बिना किसी के लॉन्च किया गया इफ़ेक्ट सबसे सही तरीकों को बढ़ावा देने के लिए, विषय पैरामीटर की अनुमति नहीं है. (Ifd3d4)
  • कॉन्फ़िगरेशन अपडेट होने पर फिर से बनाए जाने वाले संसाधनों की जानकारी दी गई. (I6387c, b/167352819)
  • Recomposer को अब बनाते समय, CoroutineContext की ज़रूरत होती है (Ic4610)
  • एक से ज़्यादा Modifier.zIndex() लागू करने पर zIndex मान का योग. पहले पहला गेम जीत रहा था. (Ic514c, b/170623936)
  • अंदरूनी स्लॉट टेबल के लागू होने में हुए बदलाव, जो सार्वजनिक एपीआई पर इसका कोई असर नहीं पड़ना चाहिए. (If9828)
  • जोड़ा गया कीबोर्ड अपने-आप सही IME विकल्प (I57b8d)
  • androidx.ui.test को androidx.compos.ui.test (I9ffdb) में ले जाया गया
  • सार्वजनिक एपीआई से KeyboardOptions.toImeOptions को हटाया गया. (Ic2e45)

बाहरी योगदान

  • इंटरनल आर्टफ़ैक्ट androidx.compos.ui:ui-text-android (Ib93fa) का पब्लिकेशन बंद कर दिया गया है

वर्शन 1.0.0-alpha06

28 अक्टूबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • रीकंपोज़र एक कंपोज़िशन रेफ़रंस है और अब यह मान्य है कंपोज़िशन पैरंट. एक्सप्लिसिट रिकंज़र अब कुछ ही जगहों पर ज़रूरी है. (I4036f)
  • इसमें वेक्टरPainter का बहिष्कार करें एक बेहतर, यह बताता है कि कंपोज़ेबल एपीआई 'याद रखें' का इस्तेमाल करता है Google की सभी सेवाओं का डेटा सुरक्षित रखने के लिए, कंपोज़िशन. (Ifda43)
  • अपडेट किया गया Modifier.drawWithcache एपीआई ContentDrawScope को रिसीवर स्कोप के तौर पर दिखाने के लिए DrawScope के बजाय दोबारा ऑर्डर करने की सुविधा लागू करना ड्रॉइंग कमांड. यह ब्लेंड करने में काम आता है/ टिनिंग के ऐसे इस्तेमाल के उदाहरण जिनमें कॉन्टेंट के पिक्सल पहले रेंडर होने के क्रम में लगने वाले ब्लेंड मोड एल्गोरिदम को ठीक से लागू किया जाएगा. (Ie7ec8)
  • SimpleContainer को PopupTestUtils.kt में ले जाएं (I78c57)
  • ConsumedData अब डेटा क्लास नहीं है. ज़्यादा जानकारी के लिए, https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 पर जाएं (I1737f)
  • Rtl हैंडल की पोज़िशन ठीक करें. (I6e1e0)
  • DrawScope का रीफ़ैक्टर किया गया और इंटरफ़ेस बनाने के लिए ContentDrawScope एब्सट्रैक्ट क्लास के बजाय
    • CanvasDrawScope लागू करने की नई प्रोसेस बनाई गई DrawScope का
    • नए तरीकों से लागू करना इसके बजाय, CanvasScope का इस्तेमाल करने के लिए DrawScope
    • डिपेंडेंसी रैप करने के लिए DrawContext बनाया गया DrawScope के लिए
    • DrawScope पर काम न करने वाले तरीकों को हटाया गया (I56f5e)
  • ब्रेकिंग बदलाव: PointerInputFilter.onPointerEvent(...) से रिटर्न वैल्यू हटा दी गई है, क्योंकि पॉइंटर इवेंट में सिर्फ़ इस्तेमाल से जुड़ा डेटा ही बदला जा सकता है. PointerInputFilter.onPointerEvent(...) से डेटा लौटाने के बजाय, अब आप सिर्फ़ पास किए गए पॉइंटर के इस्तेमाल के डेटा में बदलाव कर सकते हैं. (I6acd0)
  • मेज़रScope और IntrinsicmeasureScope को इंटरफ़ेस के तौर पर बनाया गया है. (I1a087, b/170461665)
  • अलाइनमेंटलाइन के लिए मर्ज फ़ंक्शन छिपा हुआ था. (I9da1a, b/170612900, b/170611568)
  • बनाए गए मॉडिफ़ायर (Idee08, b/163494569) में, इंस्पेक्टर की जानकारी देने की सुविधा जोड़ें
  • चुनने के मेन्यू में SelectAll विकल्प जोड़ा गया (Ief02b)
  • इसे लेने के लिए, DrawTransform.स्क्रीन को अपडेट किया गया मिलान करने के लिए Center का एक डिफ़ॉल्ट पिवट पैरामीटर दस्तावेज़.
    • इस बदलाव के अन्य तरीकों से मिलान करने के लिए पिवट पॉइंट.
    • इस्तेमाल नहीं किया गया DrawScope.rotateRad ओवरलोड जो अब इस्तेमाल में नहीं है पिवट के x और y निर्देशांक के लिए फ़्लोट करता है.
    • (Iffcbb, b/170434992)

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

  • androidx (I4bbea, b/138602561) के लिए RememberGetterMatchingBuilder के लिए एपीआई लिंट जांच चालू है
  • टेस्ट जोड़ें. (I6b8ae)
  • ComposeTestRule में ट्रांज़िशन चालू करें; इसके लिए विकल्प निकालें ComposeTestRule से ब्लिंक करने वाले कर्सर को चालू करें. (If0de3)
  • जोड़ा गया कीबोर्ड-कैपिटलाइज़ेशन IME विकल्प (I8ac38)
  • CoreTextField (I72e6d) में सिंगल लाइन वाले कीबोर्ड का विकल्प जोड़ा गया
  • SimpleContainer को PopupTestUtils.kt (I65c3e) में ले जाएं
  • दायरा एपीआई का नाम बदलकर यह किया गया बेहतर तरीके से अपनी भावनाएं ज़ाहिर करने के लिए CornerRadious चैनल इसका इस्तेमाल कैसे किया जाता है. यह बताने के लिए दस्तावेज़ अपडेट किए गए नेगेटिव कोने की रेडिया को आपस में जोड़ा गया है शून्य तक. (I130c7, b/168762961)
  • बच्चों के Android व्यू को MotionEvents भेजना जारी रखकर Android इंटरऑप को बेहतर बनाया गया है. यह ACTION_DOWN (I94c5a, b/170320973) को छोड़कर, सभी कार्रवाइयों के लिए onTouchEvent के लिए गलत नतीजे दिखाता है
  • Box को एक इनलाइन फ़ंक्शन बनाया गया. (Ibce0c, b/155056091)

बाहरी योगदान

  • AnnotatedString.capitalize और AnnotatedString.decapitalize (I4aa7f) के लिए अलग-अलग भाषाओं का इस्तेमाल करना

वर्शन 1.0.0-alpha05

14 अक्टूबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • इंस्पेक्टर की जानकारी देने के लिए डीएसएल जोड़ें (Ic9a22)
  • लाॅन्ग प्रेस को टेक्स्ट में ले जाएँ. (Iff2bc)
  • प्रयोग के तौर पर इस्तेमाल किए जाने वाले Modifier.pointerइनपुट इनपुट मॉडिफ़ायर को निलंबित करने की सुविधा (Ia77d2)
  • कॉपी करें/चिपकाएं/कट करें सुलभता कार्रवाइयां जोड़ी गईं (I6db4f)
  • Androidमालिक के लिए सार्वजनिक कंस्ट्रक्टर को हटा दिया गया है (Iacaef)
  • पॉप-अप और डायलॉग अब FLAG_SECURE को पैरंट विंडो से इनहेरिट करते हैं. इसे साफ़ तौर पर कॉन्फ़िगर करने के लिए भी विकल्प जोड़ा गया (I64966, b/143778148, b/143778149)
  • इस्तेमाल के डेटा में अब बदलाव किया जा सकता है. साथ ही कॉल-टू-एक्सटेंशन फ़ंक्शन, जो इस्तेमाल किए जाते हैं अब नया PointerइनपुटChange नहीं दिखाता है, लेकिन इसके बजाय, दिए गए PointerइनपुटChange को म्यूट करें.

    दो चरणों में होने वाली प्रोसेस का यह पहला चरण है, PointerEvent डेटा को इस तरह बदला जा सकता है कि पॉइंटर डेटा में, उपयोगकर्ता कोड से बदलाव नहीं किया जा सकता. कॉन्टेंट बनाने दूसरा चरण: List<PointerInputChange> से रिटर्न टाइप PointerInputFilter.onPointerEvent(...). (Id067e)

  • टेक्स्ट और डेमो मोड में चुनने की सुविधा बंद करें. (Ie7e97)

  • onGloballyPositioned पर एक इनलाइन फ़ंक्शन बनाया गया (I15830)

  • OnPositionedModifier का नाम बदलकर OnGloballyPositionedModifier किया गया और onPositioned() का नाम बदलकर, onGloballyPositioned() कर दिया जाता है. (I587e8, b/169083903)

  • मालिक में has PendingmaOrLayout प्रॉपर्टी जोड़ी गई, जिससे यह पता चला कि मालिक के पास कोई लेआउट काम बाकी है या नहीं. (I3d9f8, b/169038599)

  • प्रोग्राम के हिसाब से फ़ोकस को साफ़ करने के लिए, एपीआई को जोड़ा गया (Ie1dc2, b/161487952)

  • PointerInputFilter.onPointerInput(...) को हटा दिया गया है. इसकी जगह PointerInputFilter.onPointerEvent(...) का इस्तेमाल किया जाना चाहिए. (I6f04a)

  • साइज़ में बदलाव

    • साइज़.getFlip को हटाया गया
    • साइज़.rem हटाया गया
    • साइज़.truncDiv (Ief44d, b/169790720) को हटाया गया
  • मानक तय करने के हिस्से के तौर पर , तो इनलाइन क्लास के लिए सेंटिनल वैल्यू रंग का नाम बदलें.रंग को अनसेट करें.इसकी जानकारी नहीं है अन्य इनलाइन क्लास (I97611, b/169797763) के साथ समानता के लिए

  • TextOverflow.कोई जानकारी नहीं दी गई है. जब ओवरफ़्लो कोई नहीं होता है, तो टेक्स्ट ओवरफ़्लो को हैंडल नहीं करेगा और यह LayoutNode को अपने असली आकार की रिपोर्ट करेगा. (I175c9, b/158830170)

  • AnnotatedString.Builder.addStringAnnotation में स्कोप पैरामीटर का नाम बदलकर, एपीआई की एक जैसी खासियत को टैग करने के लिए किया जा सकता है. (I7c8cb)

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

  • हर स्क्रोल पर, सबकॉम्पोिशन में कम काम करने से, LazyColumn/Row की स्क्रोलिंग परफ़ॉर्मेंस बेहतर हो जाती है. कंपोज़िशन क्लास के लिए, has invalidations() वाला नया तरीका जोड़ा गया. Recomposer से hasPending changes() तरीके का नाम बदलकर has invalidations() (Ib2f32, b/168293643, b/167972292, b/165028371)
  • साइज़ अपडेट किया गया.इसके बारे में जानकारी नहीं है पैरामीटर के बजाय Flood.NaN होना चाहिए Flood.POSITIVE_INFINITY. Painter को लागू करने की सेटिंग को यहां अपडेट किया गया साइज़ की भी जांच करें.साथ ही, तय नहीं है छोटे साइज़ के तौर पर. (I95a7e)
  • कस्टम लेआउट में प्लेस() कॉल का क्रम अब बच्चों के लिए ड्रॉइंग का क्रम तय करता है (Ibc9f6)
  • सुलभता के लिए, AnnotatedString से SpannableString में बदलने की सुविधा का इस्तेमाल करना. (Ief907)
  • उन Android क्लास के लिए स्टब जोड़े गए जो चालू हैं पुराने प्लैटफ़ॉर्म का इस्तेमाल किया जा रहा है, ताकि जब भी मुमकिन हो, तब मनोदशा का डेटा इकट्ठा न किया जाए. (Ia1790)
  • गड़बड़ी को ठीक किया गया: अगर सॉफ़्टवेयर कीबोर्ड की वजह से जिस ऐप्लिकेशन का अनुवाद करना है, पॉइंटर इनपुट कोऑर्डिनेट बन जाएंगे गलत. (Ic4cec, b/163077821)

वर्शन 1.0.0-alpha04

1 अक्टूबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • इकट्ठा करने की अनुमति देने के लिए,मालिक का दायरा जोड़ा गया लेआउट और ड्रॉइंग के स्कोप तय करने के बाद अब मान्य नहीं है. (Ic4cf8)
  • OnRemeasuredModifier और onSizeChanged() को इसमें जोड़ा गया कॉन्टेंट के लेआउट का फिर से आकलन होने पर, आपको कॉलबैक मिलता है और साथ ही, साइज़ भी बदल गया है. (I657cf, b/154108792)
  • लंबी क्लिक वाली सिमैंटिक कार्रवाई जोड़ें (I6281b, b/156468846)
  • फ़ोकस मैनेजर को निजी बनाया गया. (I7872f)
  • बनाने के लिए, लागू करने की प्रोसेस को अपडेट किया गया खास तौर पर बनाया गया DrawकैशModifier लागू करने की प्रक्रिया विकल्प प्रॉपर्टी जोड़ने की ज़रूरत नहीं है.

    कई तरीकों से जुड़े दस्तावेज़ अपडेट किए गए (Ibd166)

  • ऑब्जेक्ट बनाने से बचने के लिए, TextRange इनलाइन बनाएं. (Id034b)

  • placementScope#parentwidth और placementScope#parentLayoutDirection को अब किसी कस्टम लेआउट के प्लेसमेंट ब्लॉक से नहीं पढ़ा जा सकता. (Icc1ae, b/168295623)

  • सिमैंटिक प्रॉपर्टी में Accessibility ScrollState जोड़ें. (Ifeda9)

  • Modifier.drawWithcache की शुरुआत की गई ड्रॉइंग ऑब्जेक्ट बनाने में मदद करने के लिए जो कंडिशनल तौर पर डिपेंडेंसी को फिर से बनाती है जो साइज़/स्टेट की जानकारी पर निर्भर होते हैं (I376dc)

  • पैराग्राफ़ कंस्ट्रेंट हटा दिया गया है. अब चौड़ाई सीधे पैराग्राफ़ को पास कर दी जाती है. (Ica712)

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

  • कई Graphics API को अपडेट किया गया
    • अपडेट किया गया स्केल और रोटेशन एक ही डेटा का इस्तेमाल करने के लिए ट्रांसफ़ॉर्मेशन एपीआई पिवट दिखाने के लिए ऑफ़सेट पैरामीटर अलग फ़्लोट के बजाय निर्देशांक x/y निर्देशांक के लिए पैरामीटर DrawScope और DrawTransform
    • Rect.expandToInclude और Rect.join को हटाया गया तरीका
    • ओवल दिखाने के लिए, रेडियस के दस्तावेज़ अपडेट किए गए एलिप्टिकल ट्रेनर के अलावा
    • यह जानकारी देने के लिए दस्तावेज़ जोड़े गए इनलाइन रेडियस के लिए सार्वजनिक कंस्ट्रक्टर क्लास को सीधे कॉल नहीं करने के बजाय, इसे सीधे कॉल किया जाना चाहिए दायरा वाले ऑब्जेक्ट के ज़रिए इंस्टैंशिएट किया जाना चाहिए उनके फ़ंक्शन कंस्ट्रक्टर
    • टॉपराइट की क्वेरी करने के लिए, राउंडआरेक्ट एपीआई हटाया गया, बॉटमराइट, बॉटमसेंटर वगैरह.
    • Rect.translate के पक्ष में Rect.shift को रोक दिया गया
    • OutlineRect.grow और Rect.shrink एपीआई हटाए गए
    • LevelRect.outerRect का नाम बदलकर Rect.boundingRect किया गया
    • राउंडआरेक्ट.मिडिलरेक्ट/tallMiddleRect/wideMiddleRect को हटाया गया और Rect.isStadium तरीके
    • राउंडRect.longestSide का नाम बदलकर राउंडRect.max जबकि किया गया
    • इसका नाम राउंडRect.shortestSide से बदलकर राउंडआरेक्ट.मिनिएशन किया गया
    • ScoreRect.center को फ़ंक्शन के बजाय प्रॉपर्टी में बदला गया
    • रेडियस प्रॉपर्टी का इस्तेमाल करने के लिए, राउंडआररेक्टर को अपडेट किया गया x/y दायरे के मानों के लिए अलग-अलग पैरामीटर के बजाय
    • साइज़ एपीआई हटाए गए, जो यह मानते थे कि यह एक रेक्टैंगल है 0,0 पर मूल
    • रेडियस में नुकसान पहुंचाने वाला एपीआई जोड़ा गया
    • कई राउंड-आरेक्ट एक्सटेंशन फ़ंक्शन को माइग्रेट किया गया इसके बजाय प्रॉपर्टी
    • (I8f5c7, b/168762961)
  • Foundation.Box का इस्तेमाल नहीं किया जा सकता. इसके बजाय, कृपया Foundation.layout.Box का इस्तेमाल करें. (Ie5950, b/167680279)
  • स्टैक का नाम बदलकर Box किया गया. लिखें.foundation.layout में, नए Box की जगह, पहले से मौजूद Box की जगह हटा दी जाएगी. नए Box का तरीका यह है कि एक से ज़्यादा बच्चे होने पर, बच्चों को एक के ऊपर एक स्टैक किया जाए - यह पिछले Box से अलग है, जो कॉलम की तरह व्यवहार कर रहा था. (I94893, b/167680279)
  • बॉक्स डेकोरेशन पैरामीटर अब काम नहीं करते. अगर आपको अपने बॉक्स पर सजावट/पैडिंग की सुविधा चाहिए, तो इसके बजाय मॉडिफ़ायर का इस्तेमाल करें (Modifier.background, Modifier.background, Modifier.जगह) (Ibae92, b/167680279)
  • कई Graphics API को अपडेट किया गया
    • स्कोप वाले DrawScope के एपीआई अपडेट किए गए बदलाव के तरीकों से पता चलता है कि ट्रांसफ़ॉर्मेशन ऐक्शन सिर्फ़ कॉलबैक किया जाता है और कॉलबैक शुरू होने के बाद हटा दिया जाता है
    • पाथ के बारे में बताने के लिए,ClipPath से जुड़ा दस्तावेज़ अपडेट किया गया राउंडेड रेक्टैंगल के बजाय
    • सही पैरामीटर के लिए, दस्तावेज़ में तय की गई स्पेसिंग क्लिप में है
    • DrawScope.drawCanvas का नाम बदलकर,draIntoCanvas और साइज़ पैरामीटर हटाया गया
    • इनसेट तरीके में dx/dy पैरामीटर का नाम बदलकर यह किया गया हॉरिज़ॉन्टल और वर्टिकल
    • इनसेट ओवरलोड जोड़ा गया, जो एक जैसा काम करता है सभी चार सीमाओं के लिए इनसेट वैल्यू
    • इनसेट तरीके से जुड़े दस्तावेज़ हटाए गए जो दिखाते हैं वह इनसेट सभी चारों तरफ़ लागू होगा
    • Rect क्लास के लिए अपडेट किए गए दस्तावेज़
    • kdoc से मेल खाने के लिए, Rect पैरामीटर पर की गई टिप्पणियों को अपडेट किया गया स्टाइल
    • Rect.join और Rect.expandToInclude को हटाया गया
    • Rect.translate(offset) के लिए ओवरलोड बनाया गया और Rect.shift अब काम नहीं करता
    • (If086a, b/167737376)
  • एनोटेट किया गया रूटAnimationClockफ़ैक्ट्री, trafficsEnabled, blinkingCursorEnabled और textinputServiceFunction को @VisibleForTesting, ऐप्लिकेशन को इंटरनल एपीआई बनाएं और उसके kdoc (I554eb, b/168308412) को छिपाएं
  • डिफ़ॉल्ट रूप से चुने गए विकल्प को बंद करने और अचानक होने वाले व्यवहार से बचने के लिए, SelectionContainer को टॉप से हटाएं. इसके बजाय, चुने जाने लायक कॉन्टेंट को रैप करने के लिए, खास तौर पर SelectionContainer का इस्तेमाल किया जा सकता है. (I8dfe0, b/158459594)

वर्शन 1.0.0-alpha03

16 सितंबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • आगे/पीछे जाने वाली सिमेंटिक्स कार्रवाइयों को हटाएं. जोड़े गए चरण AccessibilityRangeInfo में. (Ia47b0)
  • onInvalidate() को Owner से हटाया गया -- OwnedLayer अमान्य होने का पता लगाता है. (Ica72b, b/162061312)
  • साइज़ के लिए ऑपरेटर के तरीके हटाए गए ऑफ़सेट पैरामीटर का इस्तेमाल करने वाला एपीआई. कॉन्टेंट बनाने इन कार्रवाइयों का नतीजा साफ़ तौर पर नहीं बताया गया और इस तरह का नतीजा उम्मीद के मुताबिक नहीं है इन सबके लिए. जैसे, चाहिए - ऑफ़सेट रिटर्न ऑफ़सेट या साइज़ के नतीजे के साथ क्या अंतर है?

    साइज़ क्लास से अब काम नहीं करने वाले तरीके भी हटाए गए. (Iec902, b/166514214)

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

  • कभी-कभी गलत ढंग से ड्रॉ किए जाने वाले LazyColumn के आइटम की समस्या ठीक करने की वजह से भी कुछ स्थितियों में क्रैश की समस्या हो रही थी. (Ibcf17, b/163066980, b/165921895)
  • इसका इस्तेमाल करने वाले DpConstraints और एपीआई अब काम नहीं करते. (I90cdb, b/167389835)
  • createAndroidComposeRule और AndroidInputDispatcher को यहां से ले जाया गया androidx.ui.test.android से androidx.ui.test (Idef08, b/164060572)
  • लेआउट एपीआई में अलाइन या अलाइन करने के लिए, गुरुत्वाकर्षण के इस्तेमाल के नाम लगातार बदले गए. (I2421a, b/164077038)
  • ComposeTestRule पर onNode और अन्य ग्लोबल तरीके इस तौर पर जोड़े गए हैं दुनिया भर में इस्तेमाल होने वाली टेक्नोलॉजी बंद कर दी जाएंगी. (Ieae36)

वर्शन 1.0.0-alpha02

2 सितंबर, 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये कमियां हैं.

एपीआई में किए गए बदलाव

  • लेटनोड की सीमाओं में बदलाव होने पर मालिक को सूचित करने के लिए कॉलबैक हटाएं. (If654e, b/166106882)
  • फ़िलटाइप के लिए सहायता जोड़ी गई वेक्टर ग्राफ़िक पाथ पर पैरामीटर आकृतियों के कटआउट का समर्थन करने के लिए विषम या नॉनज़ीरो पाथ फ़िल नियमों तक. (I43dd2)
  • अपटाइम और वेलोसिटी, अब इनलाइन क्लास (I48f4a) हैं
  • अवधि अब एक इनलाइन क्लास है (I565eb)
  • लेआउटनोड की सीमाएं बदलने पर, मालिक को इसकी सूचना देने के लिए कॉलबैक जोड़ें. (Ic40b3)
  • रेक्ट फ़ंक्शन कंस्ट्रक्टर की वजह से होने वाली समस्या को ठीक किया गया ऑफ़सेट और रेडियस के साथ रेक्टैंगल, इसके बजाय लेफ़्ट, राइट, टॉप, बॉटम का क्रम लेफ़्ट, टॉप, राइट, बॉटम.

    Rect इन पर काम न करने वाले कंपैनियन मेथड हटाए गए ज़रूरत होती है.

    Rect.kt (I08460, b/165822356) में तरीकों की पुष्टि करने के लिए, टेस्ट जोड़े गए

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

  • म्यूटेबलआरेक्ट जोड़ा गया, जो एक रेक्टैंगल है. इसमें बदलाव किया जा सकता है. (I71bd2, b/160140398)
  • Matrix4 को Matrix से बदल दिया गया. अन्य सभी हिस्से में से वेक्टरmath पैकेज हटा दिया गया है. (Ibd665, b/160140398)
  • कंपोज़ेबल फ़ंक्शन के लिए कॉलिंग कन्वेंशन में बदल दिया गया है. यह बाइनरी ब्रेकिंग बदलाव है. सभी लाइब्रेरी कंपोज़ कंपाइलर प्लगिन के इस वर्शन के साथ काम करने के लिए फिर से कंपाइल किया गया.

    इस बदलाव से, सोर्स लेवल पर नुकसान पहुंचाने वाला कोई बदलाव नहीं होता, क्योंकि जो एपीआई बदले गए हैं वे सिर्फ़ ऐसे कंपाइलर एपीआई हैं जिनमें ऑप्ट-इन करें. (I7afd2, b/158123185)

  • क्रैश होने की समस्या को ठीक किया गया, जब Pointerइनपुट फ़िल्टर के इस्तेमाल की वजह से डिसपैच हो सकता है पॉइंटर इनपुट फ़िल्टर को सिंक्रोनस रूप से हटाना होगा. (I58f25)

वर्शन 1.0.0-alpha01

26 अगस्त, 2020

androidx.compose.ui:ui-*:1.0.0-alpha01 रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये कमियां हैं.

वर्शन 0.1.0-dev

वर्शन 0.1.0-dev17

19 अगस्त, 2020

androidx.compose.ui:ui-*:0.1.0-dev17 रिलीज़ हो गया है. वर्शन 0.1.0-dev17 में ये कमियां शामिल हैं.

एपीआई में किए गए बदलाव

  • emitView के इस्तेमाल पर रोक लगा दी गई. अगर हो सके, तो Compose में व्यू निकलने के लिए, AndroidView का इस्तेमाल करें. ध्यान दें कि आने वाले समय में, सीधे तौर पर View और ViewGroups बनाने की सुविधा काम नहीं करेगी, जब तक इन्हें कंपोज़िशन ट्री में नहीं रखा जाता. ऐसा होने पर AndroidView का इस्तेमाल करके ऐसा किया जा सकता है. (I29b1e, b/163871221)
  • FocusState2 अब काम नहीं करता है और इसे FocusState (Ia8b79, b/160822876, b/160923332) से बदल दिया गया है
  • ऐसे AndroidView ओवरलोड हटा दिए गए हैं जो काम नहीं करते. (I946b9, b/163802393)
  • कस्टम उत्सर्जन से अब यह पता चल सकता है कि इसके एक या एक से ज़्यादा सेटर इन्हें छोड़ा जा सकता है और उत्सर्जन से अलग, फिर से शामिल किया जा सकता है. (Ibbd13)
  • वेक्टर क्लास को अब नहीं में बदला गया डेटा क्लास जैसी होनी चाहिए, जैसे कि एक ही ऑब्जेक्ट इंस्टेंस हो इसका इस्तेमाल कंपोज़िशन के लिए किया जाता है.

    वेक्टरPainter के लिए म्यूटेबलस्टेटऑफ़ फ़्लैग जोड़ा गया अगर वेक्टर में बदलाव.

    रीफ़ैक्टरिंग वेक्टर कॉम्पोनेंट का इंस्टेंस का हिस्सा है, क्योंकि इसका फिर से इस्तेमाल किया जाता है ट्रैक करने में मदद मिलती है.

    अपडेट किया गया Groupकॉम्पोनेंट और पाथकॉम्पोनेंट उनके नाम फ़ील्ड बदले जा सकने वाले हों (Ieae45, b/151378808)

  • onChildPositioned और OnChildPositionedModifier हटाए गए. डेवलपर को onPositioned और OnPositionedModifier का इस्तेमाल करना चाहिए चाइल्ड लेआउट पर स्विच कर सकते हैं. (I4522e, b/162109766)

  • ऑफ़सेट एक इनलाइन क्लास (Iaec70) बन गया है

  • SelectContainer में एक कार्रवाई बदलने वाला पैरामीटर जोड़ा गया (I4aada, b/161487952)

  • फ़ोकसModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940) को हटाया गया

  • mergePolicy lambda को SemanticsPropertyKey में जोड़ा गया. यह काम किया जा सकता है इसका इस्तेमाल,MergeAllDescendants सिमैंटिक के लिए कस्टम नीति तय करने के लिए किया जाता है मर्ज करना. अगर पहले से ही पैरंट वैल्यू मौजूद है, तो डिफ़ॉल्ट नीति यह है कि पैरंट वैल्यू का इस्तेमाल किया जाए मौजूद नहीं है, नहीं तो चाइल्ड मान. (Iaf6c4, b/161979921)

  • कंस्ट्रेंट अब एक इनलाइन क्लास है (I88736)

  • फ़ोकस मैनेजर को जोड़ा गया, जो सामान्य फ़ोकस लॉजिक को AndroidComposeView (I528ef, b/161487952, b/162206799) से बाहर ले जाता है

  • ऐल्फ़ा रिलीज़ के लिए, PointerEventPass के नाम अपडेट किए गए. (Ifda6f)

  • IntOffset अब एक इनलाइन क्लास (Iac0bf) है

  • IntSize अब एक इनलाइन क्लास (I2bf42) है

  • PlacementScope.placeAbsolute() का नाम बदलकर PlacementScope.place() कर दिया गया था. साथ ही, पिछले PlacementScope.place() का नाम बदलकर PlacementScope.placeRelative() कर दिया गया था. इस वजह से, PlacementScope.place() तरीका अब अपने-आप दाएं-से-बाएं कॉन्टेक्स्ट में पोज़िशन को शेयर नहीं करेगा. अगर यह ज़रूरी है, तो PlacementScope.placeRelative() का इस्तेमाल करें. (I873ac, b/162916675)

  • AlertsDialog, अब बटन (I00ec1, b/161809319, b/143682374) के लिए FlowRow का इस्तेमाल करता है

  • जांच के लिए इस्तेमाल होने वाली कुछ सुविधाओं को गैर-ज़रूरी किया गया है सार्वजनिक रहेगी, क्योंकि वे लोग जहां रहते हैं संबंधित हैं. इसे आने वाले समय में सार्वजनिक किया जाएगा. (I32ab1)

  • पॉइंटर इनपुट का रिफ़ैक्टर किया गया संगठन कोड. (Ie3f45)

  • इसमें बहिष्कृत PxBounds रेक्टैंगल के पक्ष में सभी इस्तेमाल अपडेट किए गए रेक्ट और जोड़े गए PxBounds के साथ उचित बहिष्कार करें/इससे बदलें व्याख्या करने के लिए माइग्रेशन. (I37038, b/162627058)

  • अब काम नहीं करने वाले KeyEvent2 को हटाया गया. इसके बजाय, KeyEvent का इस्तेमाल करें. (Ied2d0, b/162097587)

  • KeyEvent में एक यूनिकोड प्रॉपर्टी है, जिसका इस्तेमाल किसी खास कुंजी और मेटा कुंजी की स्थिति के कॉम्बिनेशन (If3 मुश्किल) से जनरेट होने वाले यूनिकोड वर्ण को पाने के लिए किया जा सकता है

  • delayUp कस्टम इवेंट बनाया और संबंधित क्लास, जैसे कि यह एपीआई बदलाव होने की संभावना है. (I56d6f)

  • ऐसे दो PointerEventPass हटाए गए जो अब काम नहीं करते की ज़रूरत नहीं है. (I3dd9d)

  • पैराग्राफ़.पेंट में पैरामीटर का रंग, शैडो, और टेक्स्टडेकरेशन जोड़ें. यह फ़ंक्शन गै़र-ज़रूरी पैराग्राफ़ मनोरंजन से बचने के लिए काम का है. (I81689)

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

  • TextField से onFocusChanged कॉलबैक को हटाया गया. इसके बजाय, Modifier.focusObserver का इस्तेमाल करें. (I51089, b/161297615)
  • Modifier.drawBorder की सुविधा अब काम नहीं करती. इसके बजाय, Modifier.background का इस्तेमाल करें. बॉर्डर डेटा क्लास को BorderStroke से बदल दिया गया है (I4257d, b/158160576)
  • ऐसे FrameManager कॉल हटाए गए जो अब काम नहीं करते.

    आंतरिक कंपोज़ API में बदलाव स्टेट ऑब्जेक्ट, जैसे कि mutableStateof() (I80ba6) को ट्रैक करने के लिए ओवरहेड

  • वर्टिकल स्क्रोलर और हॉरिज़ॉन्टलस्क्रोलर को हटा दिया गया है. इसके बजाय, Scrollableकॉलम/पंक्ति का इस्तेमाल करें. Modifier.drawBackground को हटा दिया गया है. Modifier.background (I73b0d, b/163019183) का इस्तेमाल करें

  • स्थिति को सेव करने वाली किसी चीज़ का लूप के अंदर इस्तेमाल किए जाने पर क्रैश हो जाता है. अब से पैसे सेव किए जाने पर, एक ही कुंजी मौजूद होने से UiSavedStateRegistry के एपीआई को अब नई ज़रूरी शर्त के हिसाब से बदल दिया गया है (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561

  • state { ... } कंपोज़ेबल को अब इसका इस्तेमाल करके रोक दिया गया है साफ़ तौर पर जानकारी देने के लिए, remember { mutableStateOf(...) } पर अश्लील कॉल किया गया हो. इससे, राज्य के लिए एपीआई प्लैटफ़ॉर्म और कॉन्सेप्ट की संख्या कम हो जाती है और क्लास के लिए by mutableStateOf() पैटर्न से मेल खाता है प्रॉपर्टी सौंपना. (Ia5727)

  • RRect का नाम बदलकर राउंडआरेक्ट किया गया नाम रखने के पैटर्न को बेहतर तरीके से फ़िट करने के लिए मिलते-जुलते फ़ंक्शन कंस्ट्रक्टर बनाए गए RRect और नामंजूर RRect फ़ंक्शन कंस्ट्रक्टर (I5d325)

वर्शन 0.1.0-dev16

5 अगस्त, 2020

androidx.compose.ui:ui-*:0.1.0-dev16 रिलीज़ हो गया है. वर्शन 0.1.0-dev16 में ये कमियां शामिल हैं.

एपीआई में किए गए बदलाव

  • OnchildPositioned की सुविधा को बंद कर दिया गया है. OnPosition का इस्तेमाल करें बच्चे पर टैप करें. (I87f95, b/162109766)
  • setViewContent के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, setContent का इस्तेमाल किया जाना चाहिए. (I7e497, b/160335130)
  • ViewBinding के आधार पर, लेआउट रिसॉर्स को इनफ़्लेट और कंपोज़ करने के लिए AndroidViewBinding API जोड़ा गया. (I081c6)
  • KeyEvent2 को KeyEvent (I2d770, b/162097585) से बदल दिया गया है
  • Alt हार्डवेयर कुंजी (I9036b) के लिए सहायता जोड़ी गई
  • फ़ोकस मैनेजर अब सेवा में नहीं है. इसके बजाय, Modifier.focus(), Modifier.focusObserver(), और Modifier.focusRequester() का इस्तेमाल किया गया. (I74ae4, b/162211322)
  • लोड वेक्टर संसाधन ट्रिम पाथ एट्रिब्यूट (I808fe) का इस्तेमाल करता है
  • डायलॉग को ui (I47fa6) में ले जाएं
  • ऐसे दो PointerEventPass हटाए गए जो अब काम नहीं करते की ज़रूरत नहीं है. (I33ca7)
  • PointerInteropModifier को लागू किया गया. यह मुहैया कराने पर, Motionevents मिलने और Compose के साथ इंटरैक्ट करने की सुविधा जैसे कि आपने किसी Android View को लागू किया हो. (Ieb08c)
  • ऐसे टैग मॉडिफ़ायर को हटाया गया जो अब काम नहीं करता. इसके बजाय, कृपया leadId का इस्तेमाल करें. (Idaa05, b/162023919)
  • दाएं से बाएं सहायता के लिए एपीआई अपडेट किए गए हैं. LayoutDirectionAmbient जोड़ा गया है, जिसका इस्तेमाल लेआउट की दिशा पढ़ने और बदलने के लिए किया जा सकता है. Modifier.rtl और Modifier.ltr को हटा दिया गया है. (I080b3)
  • वेक्टर ग्राफ़िक में पाथ को ट्रिम करने की सुविधा (Ie16c9, b/158188351)
  • Modifier.layout() को जोड़ा गया, जो आसानी से कस्टम लेआउट मॉडिफ़ायर बनाने की अनुमति देता है (I73b69, b/161355194)
  • नया AndroidView API जोड़ा गया है और मौजूदा एपीआई को बंद कर दिया गया है. (I5bcfd)
  • Modifier.plus को बंद कर दिया गया है. इसके बजाय, Modifier.here का इस्तेमाल करें. 'फिर' यह ऑर्डर करने की प्रोसेस को बेहतर तरीके से दिखाता है. हालांकि, यह Modifier.padding().background() + anotherModifier टाइप करने पर भी पाबंदी लगाता है. इससे चेन टूट जाती है और पढ़ना मुश्किल हो जाता है (Iedd58, b/161529964)
  • [Abstric] कॉन्टेंट को क्रम से देखें. (I46357)
  • Row और Column अब काफ़ी हद तक इनलाइन फ़ंक्शन के साथ काम करते हैं कम से कम खर्च हो. (I75c10)
  • SubcomposLayout जोड़ा गया. यह एक लो लेवल प्रिमिटिव है. इससे मेज़रमेंट के दौरान बच्चों को कंपोज़ करने में मदद मिलती है. ऐसा तब होता है, जब हमें कुछ ऐसी वैल्यू का इस्तेमाल करना हो जो सबट्री कंपोज़िशन को मेज़र करने के दौरान ही इस्तेमाल की जाती हैं. उदाहरण के लिए, SubcomoseLayout का इस्तेमाल करके withConstraints को लागू नहीं किया गया है. (I25cc8)
  • स्थिति पाने के लिए SemanticsNode.positionInRoot को जोड़ा गया: SemanticsNode, कंपोज़ की हैरारकी के रूट से मिलता-जुलता है (Icdf26, b/161336532)
  • मोशन इवेंट पूरे हो गए Android से, Compose में, और उन्हें Android पर भी ऐक्सेस किया जा सकता है. (I14be8, b/158034713)
  • ड्रॉपडाउन पॉप-अप हटाया गया. (I00430)
  • कट-आउट डिसप्ले पर पॉप-अप की जगह तय की गई. (Idd7dd)
  • TextLayoutLayout (I9d6e6) पाने के लिए, सुलभता से जुड़ी कार्रवाई जोड़ें
  • RemeasurementModifier जोड़ा गया. तो इससे लेआउट को फिर से मापा जा सकता है. आम तौर पर, आपको इसकी ज़रूरत कभी नहीं होती, क्योंकि फिर से मेज़रमेंट/रिलेआउट अपने-आप हो रहा है. हालांकि, हम स्क्रोल के दौरान इसका इस्तेमाल LazyColumnITEMS में करते हैं. (I5f331, b/160791058)
  • getLineEllipsisOffset/getLineEllipsisCount हटाएं. इस्तेमाल की जाने वाली चीज़ें इसके बजाय, getLine visibilityEnd/getLineEnd/isLineEllip शब्दों में. (I85aa2)
  • सबसे सही तरीके के लिए, कुछ मार्क/एनोटेशन जोड़ें. (I66b20)
  • TextLayoutLayout में ज़्यादा लाइन वाले एपीआई दिखाएं. (I79bd2)
  • बिल्ट-इन वेक्टर कन्वर्टर इकाइयां अब Foo.vectorConverter से ऐक्सेस की जा सकती हैं. उदाहरण के लिए, Dp.vectorConverter, Color.vectorConverter, Flood.vectorConverter, वगैरह (I3e273)

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

  • बेहतर एपीआई से जुड़ी समस्याओं को हल करें (I077bc)
    1. इस्तेमाल नहीं किया गया ऑफ़सेट बेस इंटरफ़ेस हटाएं
    2. ऑफ़सेट और IntOffset क्लास को अलाइन करना एक जैसा एपीआई प्लैटफ़ॉर्म
    3. IntOffset.Origin का नाम बदलकर IntOffset.Zero रखें ऑफ़सेट एपीआई के साथ काम करता रहेगा
    4. NativeCanvas को कैनवस से बाहर ले जाया गया इंटरफ़ेस का उपयोग करें, जिससे उपभोक्ताओं को कैनवस इंस्टेंस
    5. रीफ़ैक्टर करने के लिए, EmptyCanvas का स्टब बनाया गया इसके बजाय, DrawScope का गैर-शून्य पैरामीटर होने के लिए Lateinit और यह पक्का करें कि फ़ील्ड के शून्य होने की संभावना न हो
    6. ClipOp के एनम का नाम बदलकर पास्कल केस किया गया
    7. फ़िल्टर क्वालिटी enum का नाम बदलकर पास्कल केस किया गया
    8. स्ट्रोक जॉइन एनम का नाम बदलकर पास्कल केस किया गया
    9. PointMode enum का नाम बदलकर पास्कल केस किया गया
    10. पेंटिंग स्टाइल एनम का नाम बदलकर पास्कल केस किया गया
    11. पाथFillType enum का नाम बदलकर पास्कल केस किया गया
    12. StrokeCap enum का नाम बदलकर पास्कल केस किया गया
    13. Drawकैश लागू करने की प्रोसेस को अब अपडेट नहीं किया गया है Letinit params का इस्तेमाल करें
    14. लेज़ी डेलिगेशन की सुविधा का इस्तेमाल बंद करने के लिए, DrawScope को अपडेट किया गया भराव
    15. Box के इस्तेमाल से बचने के लिए, इमेज कंपोज़ेबल को अपडेट किया गया कम खर्च में
    16. @Imम्यूटेबल एनोटेशन के लिए Outline क्लास को अपडेट किया गया
    17. पाथनोड को अपडेट किया गया, ताकि इसमें @Imम्यूटेबल एनोटेशन शामिल किए जा सकें हर पाथ के निर्देश
    18. अनावश्यक निकालने के लिए वेक्टर सबकंपोज़िशन अपडेट किया गया 'समानता' की स्थिति की जांच करना, जैसा कि कंपोज़ पहले से होता है उन्हें
    19. रेक्टैंगल कंपैनियन कंस्ट्रक्टर के तरीके के पक्ष में फ़ंक्शन कंस्ट्रक्टर का
    20. इसके साथ ब्रश क्लास और फ़ंक्शन कंस्ट्रक्टर अपडेट किए गए @Imम्यूटेबल और @Stable एपीआई
    21. VertexMode enum को PascalCase में अपडेट किया गया
    22. DrawScope SelectPaint तरीके को शर्तों के साथ अपडेट करने पर पेंट पर मौजूद स्ट्रोक पैरामीटर को ओवरराइट कर दें, अगर उनमें बदला गया
    23. deस्ट्रक्चरिंग एपीआई जोड़ने के लिए, साइज़ को अपडेट किया गया, नाम बदलें इस्तेमाल न किए गए तरीकों के हिसाब से तय नहीं किया गया साइज़ और इस्तेमाल न किए गए तरीकों को हटाना
  • अपडेट की गई कंपोज़ ब्लेंडमोड एपीआई खपत के ज़रिए और PorterDuff मोड उपलब्ध हैं. कार्रवाई करने के लिए, iOSMode#isSupported API का इस्तेमाल करना यह तय करने के लिए क्षमता क्वेरी के रूप में: इस्तेमाल किए जाने से पहले, डिवाइस पर काम करता हो. (I0ef42)
  • लेज़ी सूचियों के itemContent पैरामीटर के लिए, LazyItemScope को जोड़ा गया था. यह पैरंट के सबसे बड़े साइज़ को भरने के लिए मॉडिफ़ायर उपलब्ध कराता है. इससे इस्तेमाल का उदाहरण उस समय हल हो जाता है जब आइटम को व्यूपोर्ट में भरना होता है. साथ ही, सामान्य Modifier.fillMaxSize() काम नहीं करता है, क्योंकि आइटम को इनफ़िनिटी कंस्ट्रेंट के साथ मेज़र किया जाता है. (Ibd3b2, b/162248854)
  • SemanticsNodeInteraction.performPartialGesture को हटा दिया गया है. इस्तेमाल की जाने वाली चीज़ें अगर आपके पास इन फ़ॉर्मैट की फ़ाइल नहीं है, तो SemanticsNodeInteraction.performGesture बटन का इस्तेमाल करें. (आईडी9b62)
  • LazyColumnItems का नाम बदलकर LazyColumnFor कर दिया गया. LazyRowItems का नाम बदलकर LazyRowFor किया गया (I84f84)
  • foundation.shape.corner पैकेज को foundation.share (I46491, b/161887429) पर फ़्लैट किया गया
  • AndroidComposeTestRule का नाम बदलकर createAndroidComposeRule किया गया. (I70aaf)
  • TextLayoutResult में ज़्यादा एपीआई जोड़े गए. (Id7e04)
  • सबसे आसान एपीआई को खोजने और इस्तेमाल करने में आसान बनाने के लिए, FilledTextField कॉन्टेंट का नाम बदलकर TextField और बुनियादी TextField का नाम बदलकर BaseTextField कर दिया गया है (Ia6242, b/155482676)
  • Modifier.drawbackground का नाम बदलकर Modifier.background (I13677) कर दिया गया है

वर्शन 0.1.0-dev15

22 जुलाई, 2020

androidx.compose.ui:ui-*:0.1.0-dev15 रिलीज़ हो गया है. वर्शन 0.1.0-dev15 में ये कमियां शामिल हैं.

डिपेंडेंसी अपडेट

  • लिखें के 0.1.0-dev15 वर्शन का इस्तेमाल करने के लिए, आपको अपनी डिपेंडेंसी अपडेट करनी होगी दिए गए नए कोड स्निपेट के मुताबिक, ऊपर डिपेंडेंसी के बारे में एलान में बताया गया है.

एपीआई में किए गए बदलाव

  • FocusModifier को Modifier.focus, Modifier.focusRequester, Modifier.focusObserver के लिए बंद कर दिया गया. FocusState और FocusState को फ़ोकसState2 के लिए हटा दिया गया है. I46919, b/160822875, b/160922136
  • फ़ोकस की स्थिति में हुए बदलाव की जानकारी देने के लिए, कार्रवाई बदलने वाली कुंजी जोड़ी गई. (I05866, b/160924455, b/160923326)
  • फ़ोकस बदलने के अनुरोध के लिए एक मॉडिफ़ायर जोड़ा गया (I8dd73, b/161182057, b/160924778)
  • कॉपी करने, काटने, और ठीक से चिपकाने के लिए टूलबार मेन्यू में बदलाव करें. (आईडी3955)
  • सिंगल-वैल्यू वाली सिमैंटिक प्रॉपर्टी, अब कॉलिंग स्टाइल का इस्तेमाल करती हैं. उदाहरण के लिए, 'semantics {hidden = true }' अब इस रूप में लिखा जाता है: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • Modifier.Focus जोड़ा गया, जो FocusModifier की जगह ले लेता है. (Ib852a, b/160924778)
  • टेक्स्ट फ़ील्ड चुनने के लिए फ़्लोटिंग टूलबार जोड़ें. (Ie8b07)
  • कुंजी इनपुट से जुड़े एपीआई के लिए, प्रयोग के तौर पर उपलब्ध एपीआई एनोटेशन जोड़ा गया (I53c0a)
  • फ़ोकस से जुड़े सभी एपीआई (I53b24, b/160903352) के लिए, प्रयोग के तौर पर इस्तेमाल होने वाला एपीआई एनोटेशन जोड़ा गया
  • FocusState2 को जोड़ा गया. यह FocusState (I0a3ba, b/160822595) की जगह लेगा
  • ExternalFocus जोड़ा गया है. यह फ़ोकस एपीआई के लिए, @OptIn एनोटेशन है. (I1544b, b/160820961)
  • एक IntBounds यूनिट क्लास जोड़ी गई है, जो लेआउट से पूर्णांक पिक्सल बाउंड दिखाती है. पॉप-अपपोज़िशन प्रोवाइडर का एपीआई इस्तेमाल करने के लिए, इसे अपडेट किया गया है. (I0d8d0, b/159596546)
  • Applier को नष्ट करने के लिए अब एक clear() तरीके की ज़रूरत है कंपोज़िशन (Ibe697)
  • KeyEvent अब काम नहीं करता है और इसे KeyEvent2 (I68730) से बदल दिया गया है
  • जांच करने वाले लोगों के लिए, एक नया वैकल्पिक फ़्लैग userUnmergedTree जोड़ा गया. (I2ce48)
  • Made LayoutNode एक्सपेरिमेंट के लिए उपलब्ध एपीआई (I4f2e9)
  • अलग-अलग सोर्स में कॉपी करने के तरीके जोड़े गए इनलाइन क्लास टाइप, जिनमें ये शामिल हैं:

    • ऑफ़सेट
    • साइज़
    • दायरा
    • मोशन
    • ट्रांसफ़ॉर्मऑरिजिन

    • अब इस्तेमाल नहीं किया जा सकने वाला साइज़.copy कंपैनियन ऑब्जेक्ट तरीका इंस्टेंस कॉपी मेथड के पक्ष में (Ife290, b/159905651)

  • पॉप-अप, डायलॉग, और मेन्यू में अब कॉन्टेक्स्चुअल मटीरियल थीम का इस्तेमाल किया जा रहा है (Ia3665, b/156527485)

  • TextDirection का नाम बदलकर रिज़ॉल्व्डTextDirection किया गया (I3ff38)

  • Layout() फ़ंक्शन के माप ब्लॉक से लेआउट डायरेक्शन पैरामीटर हटाया गया. हालांकि, लेआउट दिशा-निर्देश, मेज़र स्कोप ऑब्जेक्ट (Ic7d9d) के ज़रिए कॉलबैक में उपलब्ध है

  • फिर से इस्तेमाल करने के लिए, SelectHandles को दोबारा इस्तेमाल करें. (I420e0)

  • क्लिक किए जा सकने वाले एलिमेंट को हटा दिया गया है. Modifier.clickable (I84bdf) का इस्तेमाल करें

  • TestTag और सिमैंटिक मिटा दिए गए हैं. इसके बजाय, Modifier.testTag और Modifier.semantics का इस्तेमाल करें (I15ff0, b/158841414)

  • इस बदलाव से पहले, (I5205a, b/158123804) होने पर, कंपोज़ कंपाइलर प्लगिन, @Composable फ़ंक्शन के अंदर कंस्ट्रक्टर को किए गए कॉल को इंटरसेप्ट नहीं करता था

  • Modifier.tag का नाम बदलकर Modifier.layoutId कर दिया गया, ताकि Modifier.testTag के साथ भ्रम की स्थिति न पैदा हो. (I995f0)

  • Placesable#get(alignmentLine) से वापस लौटाए गए अलाइनमेंट लाइन की पोज़िशन खाली हैं. अगर क्वेरी की गई अलाइनमेंट लाइन मौजूद नहीं है, तो चौड़ाई में अलाइनमेंट लाइन होती है.इस लाइन के बारे में कोई जानकारी नहीं दी जाती है. (I896c5, b/158134875)

  • AndroidView कंपोज़ेबल में एक मॉडिफ़ायर पैरामीटर जोड़ा गया है. (I48a88, b/158746303)

  • Semantics() अब काम नहीं करता है. इसके बजाय, Modifier.semantics() का इस्तेमाल करें. (I72407, b/158841414)

  • ViewModel() कंपोज़ेबल जोड़ें, जो आपको ऐक्टिविटी या फ़्रैगमेंट (I5fdd1) में काम करने के तरीके जैसा ही पहले से बनाया गया ViewModel बनाने या पाने की अनुमति देता है

  • IntPx के इस्तेमाल को Int. से बदला गया. IntPxPosition बदला गया IntOffset के साथ. IntPxSize को IntSize से बदला गया. (Ib7b44)

  • सभी विज्ञापनों को एक साथ दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या साइज़ की जानकारी, मानकों के हिसाब से इसकी जगह साइज़ क्लास का इस्तेमाल किया जा सकता है का PxSize. इससे ये फ़ायदे मिलते हैं एक इनलाइन क्लास की मदद से, दिखाने के लिए 2 फ़्लोट वैल्यू को पैक करने के लिए चौड़ाई और ऊंचाई को फ़्लोट के तौर पर दिखाया गया है. (Ic0191)

  • सभी विज्ञापनों को एक साथ जोड़ने के लिए दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या पोज़िशनिंग की जानकारी, स्टैंडर्ड इसके बजाय ऑफ़सेट क्लास के इस्तेमाल पर का PxPosition. इससे ये फ़ायदे मिलते हैं एक इनलाइन क्लास की मदद से, x को दिखाने के लिए, 2 फ़्लोट वैल्यू को पैक करने के लिए और y ऑफ़सेट को फ़्लोट के रूप में दिखाया गया है. (I3ad98)

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सेल पैरामीटर के लिए प्रिमिटिव टाइप. Px क्लास को पूरी तरह से मिटाया गया (I3ff33)

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I086f4) के लिए प्रिमिटिव टाइप

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (Id3434) के लिए प्रिमिटिव टाइप

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I97a5a) के लिए प्रिमिटिव टाइप

  • TestTag अब काम नहीं करता. इसके बजाय, Modifier.testTag का इस्तेमाल करें. (If5110, b/157173105)

  • ParentDataModifier#modifyParentData का डिफ़ॉल्ट, नो-ऑप, लागू करने का तरीका हटा दिया गया है - यह इंटरफ़ेस को पहली जगह लागू न करने के बराबर था. (I0deaa)

  • ScaleFit को पहले इस तौर पर बंद किया गया था हटाया गया. इसके बजाय, ContentScale का इस्तेमाल करें. (Ifbc5b)

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I19d02) के लिए प्रिमिटिव टाइप

  • ui-material, (मटीरियल डिज़ाइन मेन्यू) को लागू करने के तरीके में ड्रॉपडाउनमेन्यू कॉम्पोनेंट जोड़ा गया. (I9bb3d)

  • अब काम नहीं करने वाले LayoutTag() को हटाया गया. इसके बजाय, कृपया Modifier.tag() का इस्तेमाल करें. अब काम नहीं करने वाले Modifier.matchParent() को हटा दिया गया है. इसके बजाय, कृपया Modifier.matchParentSize() का इस्तेमाल करें. (If8044)

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I57bff) के लिए प्रिमिटिव टाइप

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

  • सभी के लिए CanvasScope की सेवाएं लागू करना इसलिए, अब सिर्फ़ DrawScope और कॉन्टेंट ड्रॉ का दायरा CanvasScope का नाम बदलकर DrawScope. डेंसिटी को लागू करने के लिए, DrawScope को अपडेट किया गया का इंटरफ़ेस देखें और LayoutDirection मुहैया कराएं ContentDrawScope में ड्रॉस्कोप सब-क्लास को मिटाया गया Painter और PainterModifier अपडेट कर दी गई हैं आरटीएल प्रॉपर्टी का रखरखाव नहीं किया जाएगा क्योंकि DrawScope पहले से ही यह मैन्युअल तरीके से दिए बिना (I1798e)

  • अभी DoubleTap GesturesFilter सिंगल टैप जेस्चरफ़िल्टर को साफ़ तौर पर दिखाता है पेड़ से होकर गुज़रते हैं. (If92b1)

  • अलाइनमेंट एपीआई को अपडेट किया गया और ऐब्सलूट अलाइनमेंट के लिए सपोर्ट किया गया है (यह आरटीएल कॉन्टेक्स्ट में अपने-आप मिरर नहीं होता है) (I38cd3)

  • Drawlayer मॉडिफ़ायर का api बदल दिया गया है: Outlineअब का नाम आकार में बदल दिया गया है. इसके लिए, RectanglePattern की डिफ़ॉल्ट वैल्यू मौजूद है और अब इसका वैल्यू शून्य नहीं हो सकती; ClipToOutline का नाम क्लिप में बदला गया; ClipToBounds हटा दिया गया है, क्योंकि यह रेक्टैंगल शेप के साथ, क्लिप == true की तरह है (I7ef11, b/155075735)

  • हायर लेवल अपडेट किया गया ऐसे एपीआई जो कैनवस को अनुमति देते हैं इसके बजाय, CanvasScope का डेटा दिखाएं. यह हटा देता है इसलिए, उपभोक्ताओं को अपने Paint ऑब्जेक्ट. उन उपभोक्ताओं के लिए जो अब भी कैनवस का ऐक्सेस चाहिए वे आरेखण कैनवास एक्सटेंशन का इस्तेमाल कर सकते हैं वह तरीका जो समस्या के लिए कॉलबैक उपलब्ध कराता है ड्रॉइंग कमांड को कैनवस. (I80afd)

  • WithConstraints पीछे lambda API को बदल दिया गया है. अब दो पैरामीटर के बजाय, इसका रिसीवर स्कोप है

  • LayoutModifier2 का नाम बदलकर LayoutModifier किया गया. (Id29f3)

  • अब काम नहीं करने वाले LayoutModifier इंटरफ़ेस को हटाया गया. (I2a9d6)

  • Layout और LayoutModifier2 के इंट्रिंसिक मेज़रमेंट फ़ंक्शन में अब IntrinsicmeasureScope रिसीवर है. यह इंप्लिसिक्स क्वेरी एपीआई उपलब्ध कराता है, जिसमें लिखे गए लेआउट को पूरी तरह से प्रोसेस किया जाता है. (आईडी9945)

  • Layout और LayoutModifier चिल्ड्रेन को अलग-अलग लेआउट डायरेक्शन में मेज़र किया जा सकता है. (Ibd731)

  • एक ही पैरंट लेआउट में, बच्चों के ड्रॉइंग ऑर्डर को कंट्रोल करने के लिए नया Modifier.zIndex() जोड़ा गया है. DrawlayerModifier पर मौजूद एलिवेशन प्रॉपर्टी का नाम बदलकर ShadowEevation कर दिया गया है. इससे अब ड्रॉइंग के क्रम को कंट्रोल नहीं किया जाता. DrawShadow के पैरामीटर का क्रम बदल गया है: ऊंचाई को अब पहला मान दिया गया है और रेक्टैंगल शेप डिफ़ॉल्ट तौर पर, दूसरा आकार है. (I20150, b/152417501)

  • मालिक में onSizeChange और onPositionChange हटाया गया. (I5c718)

  • Constraints2, उन Constraints की एक कॉपी है जो IntPx के बजाय, सिर्फ़ Int Connstraints वैल्यू के साथ काम करता है. आईएनटीपीएक्स को निकाल दिया जाएगा और सभी पूर्णांक प्रतिबंधों को Android जैसे पिक्सल नहीं होने चाहिए.

    • साथ ही, IntSize को जोड़ा गया, जो समय के साथ IntPxSize की जगह ले लेगा. (I4b43a)
  • अलाइनमेंट को आर्बिट्रेरी वैल्यू के साथ झटपट बनाया जा सकता है. 1D अलाइनमेंट जोड़े गए. (Ia0c05)

  • अलाइनमेंट की सुविधा की मदद से, अब 'जगह के बारे में जानकारी' के बजाय 'मेज़र किया गया' को स्वीकार किया जाता है. (I5788d)

  • (I45f09, b/152842521)

    • ScaleFit का नाम बदलकर ContentScale किया गया
    • ContentScale को यूज़र इंटरफ़ेस (यूआई-ग्राफ़िक) से यूज़र इंटरफ़ेस (यूआई-कोर) पर ले जाया गया अलाइनमेंट के जैसे मॉड्यूल में लाइव होने के लिए मॉड्यूल एपीआई.
    • FullMaxडाइमेंशन का नाम बदलकर क्रॉप किया गया
    • FillMinडाइमेंशन का नाम बदलकर 'फ़िट' किया गया
    • बेहतर मैच के लिए, इसका नाम बदलकर 'अंदरूनी' कर दिया गया है
    • ImageView.ScaleType के समतुल्य
    • जोड़ा गया ऐसा दस्तावेज़ जिससे पता चलता है कि क्रॉप और alignment.Center से एक जैसे नतीजे मिलते हैं ImageView.ScaleType.CENTER_CROP और Fit के तौर पर अलाइनमेंट.केंद्र के साथ इस्तेमाल करने पर वैसा ही नतीजा मिलता है जैसे ImageView.ScaleType.FIT_CENTER alignment.Center के साथ इस्तेमाल किए गए अंदर से यही नतीजा मिलता है ImageView.ScaleType.CENTER_INSIDE के रूप में नतीजा
  • ड्रॉ मॉडिफ़ायर के लिए Rtl सहायता. (I0aaf9)

  • एक्सएमएल से Android व्यू बढ़ाने के लिए, एपीआई रिलीज़ किया गया. ज़्यादा जानकारी के लिए ViewInCompose डेमो देखें. (I42916)

  • DrawModifier एपीआई को बेहतर बनाएं:

    • आरेखण() ContentDrawScope के लिए पाने वाले का स्कोप बनाया गया
    • आरेखण() पर सभी पैरामीटर हटाए गए
    • DrawScope का इंटरफ़ेस पुराने CanvasScope जैसा ही है
    • ContentDrawScope मेंDrawContent() तरीका (Ibaced, b/152919067) है
  • LayoutCoordanates के लिए statusInParent और boundsInParent जोड़ा गया. (Icacdd, b/152735784)

  • DrawlayerModifier और Notlayer() अब डिफ़ॉल्ट ClipsToBounds औरClipToOutline गलत पर सेट करें. (I0eb8b, b/152810850)

  • LayoutLayout का नाम बदलकर,मेज़रमेंट नतीजा किया गया. (Id8c68)

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

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

  • सहायता में translateX/Y प्रॉपर्टी जोड़ी गईं ड्रॉइंग कमांड की डिसप्ले सूची को ऑफ़सेट करके दी गई लेयर. यह कॉन्टेंट को एक से दूसरी जगह ले जाने में मदद करता है ऐनिमेशन या टच इवेंट के जवाब में. (I8641c)

  • pivotX, pivotY पैरामीटर जोड़ा गया रोटेशन और स्केलिंग में मदद करने के लिए लेयर एपीआई लेयर पर किसी खास पॉइंट के आस-पास (Icf7c3)

  • OnPositionedModifier और OnChildPositionedModifier जोड़ें OnPositioned और OnChildPositioned कंपोज़ेबल को बदलने के लिए फ़ंक्शन. (I2ec8f)

  • लेयरModifier जोड़ा गया. यह ऐसा मॉडिफ़ायर है जो अनुमति देता है लेआउट के लिए RenderNode जोड़ना. इससे सेटिंग में क्लिपिंग, ओपैसिटी, रोटेशन, स्केलिंग, और शैडो. यह Re PaintBoundary की जगह ले लेगा. (I7100d, b/150774014)

  • लेआउट की दिशा को पैरंट लेआउट नोड से बच्चों में लागू किया गया हो. लेआउट डायरेक्शन मॉडिफ़ायर जोड़ा गया. (I3d955)

  • स्टैक कॉम्पोनेंट, दाएं से बाएं दिशा-निर्देश (Ic9e00) के साथ काम करता है

  • Compose के लेआउट में Rtl के लिए शुरुआती सहायता (Ia5519)

  • डेंसिटी और डेंसिटीस्कोप को एक इंटरफ़ेस में मर्ज किया गया. Pendingdensity() के बजाय, DensityAmbient.current का इस्तेमाल करें. withडेंसिटी(डेंसिटी) के बजाय, सिर्फ़ इसके साथ(डेंसिटी) (I11cb1)

  • दिए गए अलाइनमेंटलाइन बनाने के लिए लेआउट कोऑर्डिनेट बदले गए के बजाय, किसी सेट कोई मान प्राप्त करने के बजाय get() ऑपरेटर का उपयोग करें. इससे यह आसान हो जाता है के लिए, सेट के एक या ज़्यादा मान को बिना हर मॉडिफ़ायर के लिए नया कलेक्शन बना सकते हैं. (I0245a)

  • LayoutCoordingates में अब पोज़िशन प्रॉपर्टी नहीं है. कॉन्टेंट बनाने लेआउट मॉडिफ़ायर के बारे में विचार करते समय पोज़िशन प्रॉपर्टी का कोई मतलब नहीं बनता. रोटेशन या स्केलिंग. इसके बजाय, डेवलपर को parentनिर्देश का इस्तेमाल करना चाहिए और childToLocal() फ़ंक्शन की मदद से एक से ट्रांसफ़ॉर्म की गणना करें लेआउट को दूसरे से सिंक करें.

    लेआउट कोऑर्डिनेटर, साइज़ प्रॉपर्टी के लिए इसके बजाय IntPxSize का इस्तेमाल करता है PxSize. लेआउट, लेआउट के लिए पूर्णांक पिक्सल साइज़ का इस्तेमाल करते हैं, इसलिए सभी लेआउट साइज़ को पूर्णांक का इस्तेमाल करना चाहिए, फ़्लोटिंग पॉइंट वैल्यू का नहीं. (I9367b)

  • कंस्ट्रेंट के एपीआई सरफ़ेस में सुधार (I0fd15)

  • एक ऐसा CanvasScope API बनाया गया, जिसमें एक क्वेरी के तौर पर कैनवस ऑब्जेक्ट, एक स्टेटलेस, डिक्लेरेटिव टोन को दिखाता है ड्रॉइंग एपीआई सरफ़ेस. ट्रांसफ़ॉर्मेशन ऐक्शन शामिल हैं रिसीवर के लिए, अलग-अलग स्कोप और साइज़ की जानकारी भी मिलती-जुलती इनसेट सीमाओं तक सीमित है. उपभोक्ता को अपने पेंट की स्थिति खुद बनाए रखने की ज़रूरत नहीं पड़ती ऑब्जेक्ट है.

    • CanvasScopeSample और साथ ही जोड़ा गया डिक्लेरेटिव ग्राफ़िक शामिल करने के लिए, डेमो ऐप्लिकेशन को अपडेट किया गया डेमो (Ifd86d)
  • इस्तेमाल नहीं किया गया MaskFilter एपीआई हटाया गया क्योंकि इसका इस्तेमाल कम होता है और इसे ऑप्टिमाइज़ नहीं किया जाता है ज़्यादातर मामलों में, हार्डवेयर से तेज़ी लाने के लिए (I54f76)

  • रेक्टैंगल शेप को androidx.ui.foundation.shape.* से androidx.ui.graphics में ले जाया गया.* (Ia74d5, b/154507984)

  • एपीआई में शून्य रंग वाले सभी इस्तेमाल को इससे बदला गया अमान्य हो सकता है. साथ ही, शून्य के बजाय Color.Unset का इस्तेमाल करें (Iavaa7)

  • अतिरिक्त वैकल्पिक रेक्टैंगल के बारे में जानकारी मदद करने के लिए ImagePainter का पैरामीटर पहले से मौजूद ImageAsset (I0ea9e) का सब-सेक्शन बनाकर

  • वैल्यू के बिना, सेट नहीं की गई वैल्यू को दिखाने के लिए 'रंग सेट न करें' जोड़ा गया बॉक्सिंग के रंग. (If901a)

  • Canvas.Market जोड़ा गया और Canvas.Scale का एक्सटेंशन इस्तेमाल करने का तरीका पिवट निर्देशांक के लिए, गणितीय समीकरण का इस्तेमाल करें बदलाव लाने के लिए किया जा सकता है. ये डिफ़ॉल्ट सबसे ऊपर बाईं ओर मौजूदा कैनवस अनुवाद.

    साथ ही, Canvas.मैनेजमेंट रेंज को अनुकूलता के लिए एक्सटेंशन का तरीका (Ibaca6)

  • इस पर काम करने के लिए PixelMap API बनाया गया ImageAsset से पिक्सल की जानकारी मांगना. (I69ad6)

  • toFrameworkRect/toFrameworkRectF का नाम बदलकर यह किया गया नाम रखने के तरीके से मेल खाने के लिए toAndroidRect/toAndroidRectF लिखें और Android के बीच ऑब्जेक्ट रूपांतरण के लिए फ़्रेमवर्क एपीआई के साथ बनाए गए हैं. यह भी अपडेट किया गया इन एपीआई पर दस्तावेज़ (I86337)

  • वेक्टरPainter API इसमें जोड़ा गया इसके लिए मौजूदा Subcomposition API को बदलें वेक्टर ग्राफ़िक. सबकंपोज़िशन का नतीजा एक DrawModifier. पिछला Drawवेक्टर वेक्टरPainter के लिए ज़रूरी कंपोज़ेबल.

    इमेज(पेंटर) एपीआई का नाम बदलकर, PaintBox(पेंटर) किया गया वेक्टर कंपोज़ेबल बनाया गया जो इस तरह काम करता है इसके बजाय, VendorAsset के साथ इमेज कंपोज़ करने लायक ImageAsset का प्रतिशत (I9af9a, b/149030271)

  • इमेज डेटा और लेआउट में इस्तेमाल किए जाने वाले और कॉन्टेंट ड्रॉ करने के लिए इस्तेमाल होने वाले आने वाले इमेज कंपोज़ेबल के बीच के अंतर को बेहतर तरीके से समझने के लिए, इमेज का नाम बदलकर ImageAsset पर रखा गया है. _Body:android.graphics.Bitmap पर एक्सटेंशन बनाने का तरीका बनाया गया, Bitmap.asImageAsset() का इस्तेमाल करके, किसी ImageAsset, पारंपरिक Android को एक साथ जोड़ने में काम आता है कंपोज़ फ़्रेमवर्क (Id5bbd) की मदद से ऐप्लिकेशन डेवलपमेंट

  • TextDirection.Content (I48f36) को जोड़ा गया

  • Textdecoration.plus ऑपरेटर (I0ad1a) जोड़ा गया

  • Force को TextDirectionAlgorithm enum वैल्यू से हटा दिया गया है (Icc944)

  • TextDirectionAlgorithm का नाम बदलकर TextDirection (I75ce8) कर दिया गया है

  • टेक्स्ट फ़ील्ड चुनने के लिए, longPressAnd टास्क लागू करता है. (I17919)

  • AnnotatedString.getString पकवानों को जोड़ा गया, जो रेंज में मौजूद सभी एनोटेशन दिखाता है. (I1fa00)

  • स्थान-भाषा और LocaleList के लिए पैकेज का नाम बदलकर androidx.ui.text से androidx.ui.intl (I8132c)

  • टेक्स्ट फ़ील्ड के कर्सर में ब्लिंक करने वाला ऐनिमेशन (Id10a7) है

  • एपीआई में बदलाव: AnnotatedString(बिल्डर: बिल्डर) का नाम बदलकर,notdString(बिल्डर: बिल्डर) किया गया है. (Ia6377)

  • एपीआई में बदलाव: AnnotatedString.Item का नाम बदलकर AnnotatedString.Range. (I2d44d)

  • AnnotatedString.Builder.addAnnotationString का नाम बदलकर addStringAnnotation. (I5059e)

  • अब सॉफ़्टवेयर कीबोर्ड को छिपाने/दिखाने के लिए, अब सॉफ़्टवेयर कीबोर्ड कंट्रोलर जो onTextइनपुटStarted के ज़रिए डिलीवर किया जाता है कॉलबैक (I8dc44, b/151860051)

  • (टेक्स्ट/पैराग्राफ़/स्पैन) स्टाइल के लिए प्लस ऑपरेटर जोड़ा गया, जो मर्ज() फ़ंक्शन के लिए डेलिगेट. (Ia1add)

  • FontWeight.lerp अब फ़ोटो में नहीं है. यह अब भी डेटा क्लास है. (I521c2)

  • FontWeight कंस्ट्रक्टर अब सार्वजनिक है, यह अब डेटा क्लास नहीं है. (Id6b1f)

  • getLineStart, getLineEnd, getEllipsisOffset और getEllipsisCount को TextLayoutresults (Ibc801) में जोड़ें

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

  • इस्तेमाल नहीं किया गया साइज़ क्लास हटाया गया क्योंकि यहां डुप्लीकेट साइज़ क्लास मौजूद है यूआई-ज्यामिति मॉड्यूल में है, जो इस्तेमाल किया जा रहा है. (I1b602)

  • AdapterList जोड़ा गया. यह स्क्रोल करने की सूची का एक ऐसा कॉम्पोनेंट है जो सिर्फ़ दिखने वाले आइटम लिखता और लेआउट करता है. वर्तमान में ज्ञात समस्याएं शामिल करें कि यह केवल-वर्टिकल है और पूरी तरह से हैंडल नहीं करता है बच्चों में हुए खास बदलावों के मामले में ऐसा ही होता है. (Ib351b)

  • Box (I05027, b/148147281) में पैडिंग (जगह), बॉर्डर, आकार, और बैकग्राउंड पैरामीटर जोड़ें

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

  • टेक्स्ट फ़ील्ड में onFocusChange कॉलबैक का नाम onFocusChanged (Ida4a1) में बदला गया
  • वर्टिकल स्क्रोलर और हॉराइज़नॉल स्क्रोलर की सुविधा बंद कर दी गई है. कॉलम/पंक्ति के व्यवहार और पैरामीटर के साथ बिल्ड-इन अनुभव के लिए Scrollableकॉलम और ScrollableRow का इस्तेमाल करें या अपने खुद के एलीमेंट पर Modifier.verticalscroll और Modifier.हॉरिज़ॉन्टलंज़ का इस्तेमाल करें. इसी तरह, ScrollerPosition की जगह अब ScrollState के बजाय (I400ce, b/157225838, b/149460415, b/154105299)
  • runOnIdleCompose का नाम बदलकर runOnIdle किया गया (I83607)
  • ज़्यादा आसान बनाने के लिए, कई टेस्टिंग एपीआई के नाम बदले गए. सभी findXYZ के एपीआई का नाम बदलकर, onNodeXYZ कर दिया गया है. सभी doXYZ के एपीआई का नाम बदलकर यह कर दिया गया परफ़ॉर्म करने वाली सेटिंगXYZ. (I7f164)
  • कंपोज़ यूज़र इंटरफ़ेस (यूआई) को अब ViewGroups में बनाया जा सकता है और इसके लिए किसी नई कंपोज़िशन की ज़रूरत नहीं है. उदाहरण के लिए ViewInteropDemo देखें. (I9ab0b, b/160455080)
  • म्यूटेबल वेक्टर (Icccf7) में सॉर्ट विथ और इसे हटाने वाली रेंज जोड़ी गई
  • TextField के लिए चुने गए विकल्प को बदलने के लिए ड्रैग सलेक्शन हैंडल लागू करें. (I27032)
  • Shader इनलाइन क्लास हटाई गई NativeShader अपेक्षित श्रेणी को रैप कर दिया है NativeShader का नाम बदलकर Shader किया गया. रैप की गई शेडर इनलाइन क्लास ने यह किया एपीआई प्लैटफ़ॉर्म पर कोई अहम जानकारी नहीं जोड़नी चाहिए और एक इनलाइन क्लास थी, इसलिए NativeShader का इस्तेमाल करें क्लास का इस्तेमाल करें. (I25e4d)
  • रीफ़ैक्टर किया गया PainterModifier के आधार पर स्केलिंग की ज़रूरत नहीं है. दी गई कंस्ट्रेंट और ContentScale पैरामीटर. पेंटर का इस्तेमाल कॉन्टेंट बनाने के अलग-अलग तरीकों का इस्तेमाल करके, अपने-आप जनरेट होने वाले विज्ञापनों के लिए, वे जिस DrawScope में ड्राइंग बना रहे हैं.

    वेक्टरPainter के कैश की समस्या को ठीक किया गया बिट मैप का आकार उसके डिफ़ॉल्ट आकार में किया गया बनाने के लिए दिए गए आकार के बजाय.

    अपने कैंपेन को स्केल करने के लिए, ImagePainter को अपडेट किया गया पर निर्भर रहने के बजाय, सीधे तौर पर करने के लिए कहा जाएगा. (I6ba90)

  • ऐनिमेशन टाइमिंग के लिए, टॉप-लेवल withFrameNanos फ़ंक्शन जोड़ें (Ie34c5)

  • @बिना ट्रैक की गई एनोटेशन को बंद कर दिया गया है. @ComposableConact(tracked=false) (Id211e) से बदलें

  • androidx.ui.foundation.TextFieldValue और androidx.ui.input.EditorValue अब काम नहीं करता. टेक्स्ट फ़ील्ड, FilledTextField और CoreTextField कंपोज़ेबल, जो इनका इस्तेमाल करते हैं यह टाइप अब काम नहीं करता. कृपया इस्तेमाल करें इसके बजाय androidx.ui.input.TextFieldValue (I4066d, b/155211005)

  • पॉइंटर इनपुट के दौरान होने वाली समस्या को ठीक कर दिया गया है डिस्पैच होने से क्रैश हो सकता है, अगर Pointerइनपुट फ़िल्टर, इसके ज़रिए हटाए गए डिस्पैच करने के दौरान सब-कंपोज़िशन. अब यह समस्या ठीक कर दी गई है. (I1f48b, b/157998762)

  • पॉइंटर इनपुट डिस्पैच होने की समस्या को ठीक कर दिया गया है अगर Pointerइनपुट फ़िल्टर का इस्तेमाल करके, इन्हें हटा दिया जाता है, तो इससे ऐप्लिकेशन क्रैश हो जाएगा डिस्पैच करने के दौरान सब-कंपोज़िशन. अब यह समस्या ठीक कर दी गई है. (Iab398, b/157998762)

  • रेडियस क्लास की फिर से गणना की गई इनलाइन क्लास. कंपैनियन मोड का इस्तेमाल करके बनाया गया वीडियो हटाया गया फ़ंक्शन कंस्ट्रक्टर के पक्ष में मेथड इसमें रेडियस के लिए डिफ़ॉल्ट पैरामीटर का इस्तेमाल किया गया है y-ऐक्सिस के साथ दिखने वाली वैल्यू x-ऐक्सिस का रेडियस पैरामीटर.

    इस्तेमाल करने के लिए, DrawScope.drawRoundRect को अपडेट किया गया दो अलग-अलग पैरामीटर के बजाय, सिर्फ़ एक रेडियस पैरामीटर x और y के आस-पास की रेडियस के फ़्लोट वैल्यू ऐक्सिस (I46d1b)

  • रीकंपोज़ेबल कंपोज़ेबल, अब एक मददगार ऐब्स्ट्रैक्ट नहीं है. ज़्यादातर बदलाव, म्यूटेबलस्टेट असाइनमेंट के नतीजे के तौर पर होना चाहिए. इसके अलावा, किसी और चीज़ के लिए हमारा सुझाव है कि आप invalidate फ़ंक्शन का इस्तेमाल करके, मौजूदा स्कोप को फिर से बनाने की प्रोसेस को ट्रिगर करें. (Ifc992)

  • अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (Iede0b) के लिए प्रिमिटिव टाइप

  • यह कंपोज़ कंपाइलर की कोड जनरेट करने की रणनीति को बदलता है. बदलाव से पहले, कंपोज़ कंपाइलर कॉल को कंपोज़ेबल फ़ंक्शन में बदल देता था. इस बदलाव के बाद, अब हम कंपोज़ेबल फ़ंक्शन की बॉडी को पूरी तरह बदल देते हैं और ज़्यादातर मामलों में कॉलसाइट में कोई बदलाव नहीं करते.

    इसका मतलब है कि कंपोज़ रनटाइम के साथ बातचीत करने वाले ज़्यादातर लॉजिक, कॉलसाइट के बजाय फ़ंक्शन के मुख्य हिस्से की शुरुआत में होते हैं.

    यह कंपोज़ की सुविधा के सभी इस्तेमाल के लिए, स्रोत के साथ काम करने वाला बदलाव होना चाहिए. 'लिखें' सुविधा का इस्तेमाल करने वाले ज़्यादातर लोगों को इस बदलाव की वजह से कोई कोड अपडेट नहीं करना पड़े.

    यह काम बेहतर हो सके, इसके लिए सभी कंपोज़ेबल फ़ंक्शन के JVM हस्ताक्षर में बदलाव किया गया है. किसी एक पैरामीटर को स्वीकार करने वाला कंपोज़ेबल फ़ंक्शन, तीन पैरामीटर वाले फ़ंक्शन में बदल जाता है. साथ ही, कंपोज़र एक 'कुंजी' पूर्णांक भी होता है. कॉल के ज़रिए मेटाडेटा लागू करने के लिए इस्तेमाल किया जाने वाला बिटमास्क पूर्णांक.

    Compose अब डिफ़ॉल्ट आर्ग्युमेंट को कंपोज़ेबल फ़ंक्शन में बदलता है. ऐसा करने के लिए, फ़ंक्शन का अतिरिक्त सिंथेटिक डिफ़ॉल्ट ओवरलोड लागू नहीं होता. इसलिए, इस बदलाव की वजह से कम फ़ंक्शन तय होंगे.

    इसके नतीजे के तौर पर, जान-बूझकर व्यवहार में होने वाले बदलाव:

    1. कुछ कॉल ऐसे कॉल स्किप कर देंगे जो पहले नहीं हो सकते थे
    2. डिफ़ॉल्ट आर्ग्युमेंट एक्सप्रेशन में, कंपोज़ेबल एक्सप्रेशन की सदस्यता अब सही तरीके से ली गई है और उन्हें मैनेज किया जा रहा है

    इस काम में कुछ ऑप्टिमाइज़ेशन शामिल थे: 1. पैरामीटर की तुलना के नतीजों को कॉल ग्राफ़ के ज़रिए, कंपोज़ेबल फ़ंक्शन के साथ दिखाया जाता है. इससे रनटाइम के दौरान तुलनाएं कम होंगी और स्लॉट टेबल का साइज़ कम हो जाएगा. साथ ही, कंपोज़ेबल फ़ंक्शन को स्किप किया जा सकेगा जिन्हें पहले स्किप नहीं किया गया था 2. कंपाइल किए जाने के समय, "स्टैटिक" पैरामीटर के तौर पर तय किए गए पैरामीटर की न तो तुलना की जाती है और न ही इन्हें रनटाइम में सेव किया जाता है. इससे तुलनाओं की संख्या कम हो जाती है और स्लॉट टेबल का साइज़ कम हो जाता है. 3. फ़ंक्शन के बॉडी के कंट्रोल फ़्लो स्ट्रक्चर का इस्तेमाल, जनरेट होने वाले ग्रुप की संख्या को कम करने के लिए किया जाता है. इससे स्लॉट टेबल का साइज़ कम हो जाता है और रनटाइम में कम काम होता है 4. फ़ंक्शन के लिए इस्तेमाल न किए गए डिस्पैच और रिसीवर पैरामीटर को, फ़ंक्शन के मुख्य भाग के अंदर इस्तेमाल न किए जाने पर, फ़ंक्शन को स्किप करने की क्षमता का पता लगाने के लिए शामिल नहीं किया जाता.

    ज़्यादातर नुकसान पहुंचा सकने वाले बदलाव, उन एपीआई के लिए थे जिन्हें कंपाइलर सीधे टारगेट करता है. इससे कंपोज़ की सुविधा के सामान्य इस्तेमाल पर कोई असर नहीं पड़ेगा: 1. कंपोज़र::startExpr हटाया गया 2. कंपोज़र::endExpr को हटा दिया गया 3. Composer::call अब काम नहीं करता 4. key के नॉन-वैरर्ग ओवरलोड हटा दिए गए हैं. आने वाले समय में, vararg वर्शन का इस्तेमाल करें. 5. पिवटल एनोटेशन अब काम नहीं करता. इसकी जगह key का इस्तेमाल करें. 6. ScopeUpdateScope::updateScope फ़ंक्शन1 के बजाय Function3 की उम्मीद के लिए बदला गया था 7. RereableFunction और रीस्टार्ट करने लायक फ़ंक्शनN को अपडेट किया गया था, ताकि इकट्ठा किए जाने वाले अतिरिक्त समय के पैरामीटर शामिल किए जा सकें (I60756, b/143464846)

  • ऐसे LayoutLayout मॉडिफ़ायर हटाए गए जो अब काम नहीं करते. (I10877)

  • DrawlayerModifier (I00aa4) के पक्ष में Re PaintBoundary हटाए गए

  • बटन, फ़्लोटिंग एक्शन बटन और क्लिक करने लायक बटन के पास अब एक अलग enabled पैरामीटर है. बटन के कुछ पैरामीटर के नाम बदले गए या उनका क्रम बदला गया. (I54b5a)

  • ButtonStyle को अलग-अलग फ़ंक्शन से बदला गया और टेक्स्ट (स्ट्रिंग) ओवरलोड हटाया गया. इस्तेमाल की जानकारी के लिए, अपडेट किए गए सैंपल देखें. (If63ab, b/146478620, b/146482131)

  • ऐंबियंट एपीआई में बदलाव किए जा रहे हैं. ज़्यादा जानकारी के लिए, लॉग और Ambient<T> का दस्तावेज़ देखें (I4c7ee, b/143769776)

  • तय किए जाने वाले डिफ़ॉल्ट TextDirection के व्यवहार को बदला गया LayoutDirection के हिसाब से. इसका मतलब है कि अगर LayoutDirection रीयल टाइम में है, तो डिफ़ॉल्ट TextDirection, RTL होगा. पहले यह था TextDirection.ContentOrLtr/Rtl (I4e803)

  • गड़बड़ी ठीक की गई: जब फ़ॉन्ट की मोटाई और फ़ॉन्ट स्टाइल एक AnnotatedString पर नेस्ट की गई हो, तो टेक्स्ट सही तरीके से रेंडर नहीं हो पाता है. (I77a9d)

  • Text() में आम तौर पर इस्तेमाल होने वाले पैरामीटर जोड़ता है. अगर फ़िलहाल इन पैरामीटर, जैसे Text(style = TextStyle(textalign = Textअर बढ़ाना.Center) को पास करने के लिए कोई लोकल टेक्स्ट स्टाइल बनाई जा रही है, तो अब सिर्फ़ पैरामीटर को सीधे तौर पर उपलब्ध कराया जा सकता है: Text(textalign = TextAI.Center) (I82768)

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