यूज़र इंटरफ़ेस (यूआई) लिखें
androidx.compos.ui
androidx.compos.ui.geometry
androidx.compos.ui.graphics
androidx.compos.ui.platform
androidx.compos.ui.test
(सभी कंपोज़ पैकेज के लिए एपीआई रेफ़रंस दस्तावेज़ देखें)
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
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.runtime | Compose के प्रोग्रामिंग मॉडल और स्टेट मैनेजमेंट के बुनियादी बिल्डिंग ब्लॉक और टारगेट करने के लिए 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()
लॉन्च किया गया, ताकि मॉडिफ़ायर नोड मौजूदा AndroidView
को पा सकें और स्थानीय कंपोज़िशन को न पढ़ें. (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
फ़ंक्शन को कॉल करने के लिए, Kotlinin
सिंटैक्स के साथ काम करते हैं. (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
एक्सटेंशन प्रॉपर्टी की मदद से, डेवलपर AndroidWindowInsets
के इस्तेमाल की सुविधा बंद कर सकते हैं. इससे हर एक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
, दो छोटे विवरण के साथ:- डाउन इवेंट भेजते समय जब पॉइंटर बिना ले जाए गए थे
एक स्थानांतरण इवेंट भेज रहा है (दूसरे शब्दों में,
updatePointerTo()
का उपयोग किया जाता है, लेकिनmove()
नहीं, और फिरdown()
को कॉल किया जाता है), पिछला लागू करने पर, इवेंट का समय पहले ही शुरू हो जाएगा और प्रॉपर्टी को एक जगह से दूसरी जगह ले जाया जाएगा डाउन इवेंट भेजने से पहले. नया तरीका अब भी इवेंट को एक से दूसरे इवेंट में ले जाएं, लेकिन इस विकल्प के तहत इवेंट के समय को आगे नहीं बढ़ाता स्थिति के हिसाब से बदलें. - पॉइंटर के बिना माइग्रेट किए जाने के दौरान, अप इवेंट भेजते समय माइग्रेट करने का इवेंट भेजना (जैसा कि ऊपर बताया गया है), पिछली बार लागू होने की प्रक्रिया इवेंट के समय को आगे बढ़ाएगा और अप इवेंट. नए तरीके में ये दोनों काम नहीं करते: पॉइंटर सिर्फ़ अप इवेंट के ज़रिए दिखेंगे.
आखिर में,
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 और AGP7.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) को हटाया गयाफ़्लोरिंग कॉन्फ़िगरेशन का नाम बदलकर, फ़्लिंग व्यवहार कर दिया गया है. अब पहले से तय किए गए नुकसान के बजाय, निलंबित ऐनिमेशन को पसंद के मुताबिक बनाया जा सकता है. (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)
- इस्तेमाल नहीं किया गया ऑफ़सेट बेस इंटरफ़ेस हटाएं
- ऑफ़सेट और IntOffset क्लास को अलाइन करना एक जैसा एपीआई प्लैटफ़ॉर्म
- IntOffset.Origin का नाम बदलकर IntOffset.Zero रखें ऑफ़सेट एपीआई के साथ काम करता रहेगा
- NativeCanvas को कैनवस से बाहर ले जाया गया इंटरफ़ेस का उपयोग करें, जिससे उपभोक्ताओं को कैनवस इंस्टेंस
- रीफ़ैक्टर करने के लिए, EmptyCanvas का स्टब बनाया गया इसके बजाय, DrawScope का गैर-शून्य पैरामीटर होने के लिए Lateinit और यह पक्का करें कि फ़ील्ड के शून्य होने की संभावना न हो
- ClipOp के एनम का नाम बदलकर पास्कल केस किया गया
- फ़िल्टर क्वालिटी enum का नाम बदलकर पास्कल केस किया गया
- स्ट्रोक जॉइन एनम का नाम बदलकर पास्कल केस किया गया
- PointMode enum का नाम बदलकर पास्कल केस किया गया
- पेंटिंग स्टाइल एनम का नाम बदलकर पास्कल केस किया गया
- पाथFillType enum का नाम बदलकर पास्कल केस किया गया
- StrokeCap enum का नाम बदलकर पास्कल केस किया गया
- Drawकैश लागू करने की प्रोसेस को अब अपडेट नहीं किया गया है Letinit params का इस्तेमाल करें
- लेज़ी डेलिगेशन की सुविधा का इस्तेमाल बंद करने के लिए, DrawScope को अपडेट किया गया भराव
- Box के इस्तेमाल से बचने के लिए, इमेज कंपोज़ेबल को अपडेट किया गया कम खर्च में
- @Imम्यूटेबल एनोटेशन के लिए Outline क्लास को अपडेट किया गया
- पाथनोड को अपडेट किया गया, ताकि इसमें @Imम्यूटेबल एनोटेशन शामिल किए जा सकें हर पाथ के निर्देश
- अनावश्यक निकालने के लिए वेक्टर सबकंपोज़िशन अपडेट किया गया 'समानता' की स्थिति की जांच करना, जैसा कि कंपोज़ पहले से होता है उन्हें
- रेक्टैंगल कंपैनियन कंस्ट्रक्टर के तरीके के पक्ष में फ़ंक्शन कंस्ट्रक्टर का
- इसके साथ ब्रश क्लास और फ़ंक्शन कंस्ट्रक्टर अपडेट किए गए @Imम्यूटेबल और @Stable एपीआई
- VertexMode enum को PascalCase में अपडेट किया गया
- DrawScope SelectPaint तरीके को शर्तों के साथ अपडेट करने पर पेंट पर मौजूद स्ट्रोक पैरामीटर को ओवरराइट कर दें, अगर उनमें बदला गया
- 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)
-
- 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. कंपाइल किए जाने के समय, "स्टैटिक" पैरामीटर के तौर पर तय किए गए पैरामीटर की न तो तुलना की जाती है और न ही इन्हें रनटाइम में सेव किया जाता है. इससे तुलनाओं की संख्या कम हो जाती है और स्लॉट टेबल का साइज़ कम हो जाता है. 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) कर दिया गया है