कंपोज़ फ़ाउंडेशन
androidx.compos.foundation
androidx.compos.foundation.layout
androidx.compos.foundation.hastures
androidx.compos.foundation.selection
androidx.compos.foundation.laze
androidx.compos.foundation.इंटरैक्शन
androidx.compos.foundation.text
(सभी कंपोज़ पैकेज के लिए एपीआई रेफ़रंस दस्तावेज़ देखें)
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
7 अगस्त, 2024 | 1.6.8 | - | 1.7.0-बीटा07 | - |
संरचना
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 रिपॉज़िटरी को अपने प्रोजेक्ट. Google की Maven रिपॉज़िटरी पढ़ें हमारा वीडियो देखें.
उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको build.gradle
फ़ाइल में ज़रूरत है
आपका ऐप्लिकेशन या मॉड्यूल:
ग्रूवी
dependencies { implementation "androidx.compose.foundation:foundation:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको नई समस्याओं का पता चलता है या आपको इस लाइब्रेरी को बेहतर बनाने के लिए आइडिया मिल सकते हैं. कृपया, इस मौजूदा समस्याएं इस लाइब्रेरी में जोड़ें. किसी मौजूदा समस्या के लिए अपना वोट दें. इसके लिए ये तरीके अपनाएं: स्टार बटन पर क्लिक करके ऐसा किया जा सकता है.
समस्या को ट्रैक करने वाले टूल से जुड़ा दस्तावेज़ देखें हमारा वीडियो देखें.
वर्शन 1.7
वर्शन 1.7.0-beta07
7 अगस्त, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
रिलीज़ हो गया है. वर्शन 1.7.0-beta07 में ये प्रतिबद्धताएं शामिल हैं.
गड़बड़ियां ठीक की गईं
SemanticsNodeInteraction
फ़ंक्शन से जुड़े टेक्स्ट इनपुटperformTextReplacement
,performTextInput
, औरperformTextClearance
अब दावा करने में होने वाली गड़बड़ियों को रीड ओनलीTextFields
पर कॉल करेंगे. (I4ae8f)- हाइपरलिंक में एक विज़ुअल गड़बड़ी को ठीक किया गया. (I23311)
- ठीक किया गया
contentReceiver
मॉडिफ़ायर, कुछ IME के साथ काम नहीं कर रहा है. - वेलोसिटी जनरेट करना: Compose के यूज़र इंटरफ़ेस (यूआई) और फ़ाउंडेशन में NaN वैल्यू को दिखने से रोकें.
वर्शन 1.7.0-beta06
24 जुलाई, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06
रिलीज़ हो गया है. वर्शन 1.7.0-beta06 में ये बातें शामिल की गई हैं.
वर्शन 1.7.0-beta05
10 जुलाई, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05
रिलीज़ हो गया है. वर्शन 1.7.0-beta05 में ये प्रतिबद्धताएं शामिल हैं.
गड़बड़ियां ठीक की गईं
SnapFlingBehavior
और पेजर में नैन वैल्यू को मैनेज करने के दौरान, इस गड़बड़ी को ठीक किया गया.
वर्शन 1.7.0-beta04
26 जून, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04
रिलीज़ हो गया है. वर्शन 1.7.0-beta04 में ये बातें शामिल की गई हैं.
गड़बड़ियां ठीक की गईं
- टेक्स्ट की बहुत बड़ी लाइनों (जैसे कि 10 हज़ार वर्ण) (8157ab) को मेज़र करते समय क्रैश से बचें
- नए
BasicTextField
(6b7575) में क्रैश की वजह से, बहुत बड़े टेक्स्ट के मेज़रमेंट को ठीक करता है - लाइन या कॉलम मेज़रमेंट में व्यवहार में बदलाव को पहले जैसा करता है, जो कुछ खास स्थितियों में टेक्स्ट के इस्तेमाल में रुकावट डालता है (69e8ba)
वर्शन 1.7.0-beta03
12 जून, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03
रिलीज़ हो गया है. वर्शन 1.7.0-beta03 में ये प्रतिबद्धताएं शामिल हैं.
वर्शन 1.7.0-beta02
29 मई, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02
रिलीज़ हो गया है. वर्शन 1.7.0-beta02 में ये प्रतिबद्धताएं शामिल हैं.
एपीआई में बदलाव
- यह नीति
LazyLists
के लिए, प्रयोग के मौजूदा एपीआई की तरह हीLazyGrids
के प्रीफ़ेच व्यवहार को कॉन्फ़िगर करने के लिए, प्रयोग के तौर पर इस्तेमाल होने वाला एपीआई जोड़ती है. इसमें नेस्ट किए गएLazyGrids
में आइटम प्रीफ़ेच करने की सुविधा शामिल है.LazyListPrefetchStrategy
की तरह, डिफ़ॉल्ट तौर पर लागू करने की प्रोसेस में हर ग्रिड के नेस्ट किए गए पहले दो आइटम प्रीफ़ेच किए जाते हैं. हालांकि, इसे नएLazyGridPrefetchStrategy(nestedPrefetchItemCount)
औरLazyListPrefetchStrategy#onNestedPrefetch
एपीआई की मदद से कॉन्फ़िगर किया जा सकता है. (I591c4) SemanticsProperties.Editable
का नाम बदलकरIsEditable
किया गया. साथ ही,SemanticsPropertyReceiver.editable
को वैल्यूisEditable
में बदल दिया गया है. प्रॉपर्टी अब बूलियन प्रॉपर्टी में बदल गई है और इसे हमेशा टेक्स्ट फ़ील्ड में बताया जाता है. (I8acd8)basicMarquee
डिफ़ॉल्ट वैल्यू कोMarqueeDefaults
ऑब्जेक्ट में ले जाया गया. (I12ff6)basicMarquee
केdelayMillis
पैरामीटर का नाम बदलकरrepeatDelayMillis
किया गया. (I12ff6)- लिंक को स्टाइल देने के लिए, एपीआई को अपडेट करें:
TextLinkStyles
कोTextStyle
में ले जाया औरTextDefaults
को कॉन्टेंट से हटाया (I5477b)
गड़बड़ियां ठीक की गईं
- इसके मकसद को बेहतर तरीके से दिखाने के लिए,
LayoutCoordinates.introducesFrameOfReference
का नाम बदलकरLayoutCoordinates.introducesMotionFrameOfReference
किया गया. उस फ़्लैग के आधार पर निर्देशांकों की गणना करने के लिए संबंधित फ़ंक्शन का नाम बदला गया. (I3a330) - 'डिफ़ॉल्ट' हटाई गई
MarqueeDefaults
प्रॉपर्टी से. (I1d8a0) - 'मार्की' को हटाया गया
MarqueeDefaults
प्रॉपर्टी से. (Iad4f4) TextLinkStyles
कोTextStyle
क्लास से हटाया गया. इसके बजाय,TextLinkStyles
,LinkAnntation
कंस्ट्रक्टर औरAnnotatedString.fromHtml
मेथड (I90b2b) का हिस्सा है- गड़बड़ी को ठीक किया गया है, जहां पेजर किसी बाउंड की ओर उड़ान भरते समय स्नैप करता था, जबकि पहले ही सीमा पर सेट हो जाता था. (I9f373, b/339171222)
- BTF2 में अब माउस चुनने के सही जेस्चर उपलब्ध हैं. (Ibe8c6)
बाहरी योगदान
- 'कॉन्टेंट टाइप को बेहतर बनाने के लिए प्रीफ़ेच के आधार पर, लिखने या मेज़र करने के समय का हिसाब लगाने की सुविधा' फिर से सबमिट करें (Iea622)
- डेटा को सटीक बनाने के लिए प्रीफ़ेच के आधार पर, लिखने या मेज़र करने के समय का हिसाब लगाने के कॉन्टेंट का टाइप बनाएं (Ibccb1)
- सामान्य सोर्स सेट (I070b2) से
WindowInsetsPadding
मॉडिफ़ायर उपलब्ध कराएं
वर्शन 1.7.0-beta01
14 मई, 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01
रिलीज़ हो गया है. वर्शन 1.7.0-beta01 में ये बातें शामिल हैं.
एपीआई में बदलाव
- बाइनरी के साथ काम करने की वजह से,
KeyboardOptions.shouldShowKeyboardOnFocus
प्रॉपर्टी को 'अब काम नहीं करता' के तौर पर 'छिपाया गया' के तौर पर जोड़ा गया. (I15cfe) Modifier.anchoredDraggable
अब आरटीएल लेआउट में इस्तेमाल किए जाने पर, हॉरिज़ॉन्टल ओरिएंटेशन वाले कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से ड्रैग डेल्टा को उलट देता है. (I3c6d9)AnnotatedString.hasEqualsAnnotations
अबhasEqualAnnotations
है. (I685c0)- टेक्स्ट में मटीरियल थीम वाले लिंक पाने के लिए, एपीआई को अपडेट किया गया. खास तौर पर,
LinkAnnotations
थीम को बनाने के लिएTextDefaults
से तरीके हटाए गए हैं और थीम वाले लिंक के साथ एचटीएमएल को पार्स करने का तरीका बताया गया है. इसके बजाय, एकTextLinkStyles
क्लास जोड़ी गई है, जो टेक्स्ट कंपोज़ेबल में पैरामीटर के तौर पर लिंक को स्टाइल करने की अनुमति देती है. (I31b93) onDragStarted
औरonDragStopped
को नॉन-सस्पेंड कॉलबैक से बदला गया. (I59de8)
गड़बड़ियां ठीक की गईं
- गड़बड़ी को ठीक किया गया है, जहां
contentPadding
के आने वाले कंस्ट्रेंट से ज़्यादा बड़े होने पर पेजर क्रैश हो जाता था. पेजर अबPageSize
से 0 पर लौटाए गए नेगेटिव वैल्यू को कॉपी करता है. (Iba5d8, b/314008560)
वर्शन 1.7.0-alpha08
1 मई, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
रिलीज़ हो गया है. वर्शन 1.7.0-alpha08 में ये कमिट मौजूद हैं.
नई सुविधाएं
BasicTextField
औरSelectionContainer
के लिए, राइट-क्लिक करके संदर्भ मेन्यू जोड़ा गया. इसमें काटने, कॉपी करने, चिपकाने, और चुनने की सभी कार्रवाइयों के लिए आइटम जोड़े गए. (If8c93, Ia2b49, I6f268)
एपीआई में बदलाव
LazyLayout
प्रीफ़ेच अनुरोध को अब 'ज़रूरी' के तौर पर मार्क किया जा सकता है. इसका मतलब है कि हमें अगले फ़्रेम में इस आइटम की ज़रूरत होगी. साथ ही, हम फ़्रेम बजट को अनदेखा करना चाहते हैं, ताकि आप पहले से ज़्यादा काम (Id513f) कर सकेंisPositionedByParentWithDirectManipulation
का नाम बदलकरintroducesFrameOfReference
किया गया. ध्यान दें कि अब इसका उलटा असर होता है. इसका मतलब है कि डिफ़ॉल्ट रूप से, ज़्यादातरLayoutCoordinates
में रेफ़रंस फ़्रेम होता है. साथ ही, प्रॉपर्टी में सीधे तौर पर छेड़छाड़ किए जाने पर ही, उसका नतीजा गलत माना जाता है. सिर्फ़ उन वीडियो के साथ क्वेरी की स्थिति के बारे में क्वेरी करने के लिए जो रेफ़रंस फ़्रेम पेश करते हैं,positionInLocalFrameOfReference(...)
का इस्तेमाल करें. याLookaheadScope
सेpositionInLocalLookaheadFrameOfReference
. (Ifc5f7)LinkInteractionListener
(Iaa35c) मेंonClicked
का नाम बदलकरonClick
किया गया- एपीआई काउंसिल से मिले सुझाव के मुताबिक,
getScrollViewportLength
के लिए Action lambda को बदलें. (Ibc74a) - स्टाइलस हैंडराइटिंग डेलिगेशन एपीआई का नाम बदला गया. (Ica45f, b/327271923)
TextInclusionStrategy.isInside
का नाम बदलकरisIncluded
करें.Paragraph/MultiParagraph#getRangeForRect()
के रिटर्न टाइप को अमान्य न करें. (I51f26)
गड़बड़ियां ठीक की गईं
- "सभी चुनें" जोड़ा गया
SelectionContainer
में सभी टेक्स्ट प्रासंगिक मेन्यू पर लागू करें. (Ib750e, b/240143283) reverseScrolling=true
वाले स्क्रोलिंग कंटेनर के लिए, लंबे स्क्रीनशॉट कैप्चर करने की समस्या ठीक की गई. (I7c59c)- उस समस्या को ठीक किया गया है जिसकी वजह से
AnchoredDraggableState
केcurrentValue
, राज्य की सीमाओं के अंदर आने पर बदल जाते थे. (Iea30b, b/333846848)
बाहरी योगदान
PrefetchExecutor
का नाम बदला गया ->PrefetchScheduler
अपनी ज़िम्मेदारियों को बेहतर तरीक़े से दिखाने के लिए किया जा सकता है. (Ib9154)- नेस्ट किए गए
LazyLists
में आइटम प्रीफ़ेच करने के लिए सहायता जोड़ी गई (उदाहरण के लिए एकLazyColumn
जो नेस्ट किए गएLazyRows
को रेंडर करता है). इस बदलाव से, इनLazyLists
के लिए स्क्रोल करने के दौरान फ़्रेम में आने वाली गिरावट को कम हो सकता है. डिफ़ॉल्ट तौर पर लागू होने वाला विकल्प, नेस्ट किए गए पहले दो आइटम को प्रीफ़ेच करने के लिए होता है. हालांकि, इस व्यवहार को नएLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
औरLazyListPrefetchStrategy#onNestedPrefetch
एपीआई से कंट्रोल किया जा सकता है. (I51952)
वर्शन 1.7.0-alpha07
17 अप्रैल, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
रिलीज़ हो गया है. वर्शन 1.7.0-alpha07 में ये कमिट मौजूद हैं.
नई सुविधाएं
- एक
TextDefaults
ऑब्जेक्ट जोड़ा गया, जिसमेंLinkAnnotation
बनाने और लिंक परMaterialTheme
लागू करने वाली एचटीएमएल टैग की गई स्ट्रिंग को पार्स करने के तरीके हैं. (I98532, b/139312671) LazyVerticalGrid
औरLazyHorizontalGrid
में, आइटम के दिखने और उसके गायब होने से जुड़े ऐनिमेशन की सुविधा जोड़ी गई. पहले, प्लेसमेंट (फिर से क्रम में लगाने) वाले ऐनिमेशन के साथ काम करने के लिएModifier.animateItemPlacement()
मॉडिफ़ायर जोड़ा जा सकता था. हमने इस मॉडिफ़ायर को बंद कर दिया है. साथ ही,Modifier.animateItem()
नाम का एक नया गैर-प्रयोग वाला मॉडिफ़ायर लॉन्च किया है. इसकी मदद से, सभी तीन तरह के ऐनिमेशन इस्तेमाल किए जा सकते हैं: अपीयरेंस (फ़ेड इन), फ़ेड होना (फ़ेड आउट) और फिर से क्रम में लगाना. (Ib7d12, b/330510929)LazyVerticalStaggeredGrid
औरLazyHorizontalStaggeredGrid
में, आइटम के दिखने और उसके गायब होने से जुड़े ऐनिमेशन की सुविधा जोड़ी गई. पहले, प्लेसमेंट (फिर से क्रम में लगाने) वाले ऐनिमेशन के साथ काम करने के लिएModifier.animateItemPlacement()
मॉडिफ़ायर जोड़ा जा सकता था. हमने इस मॉडिफ़ायर को बंद कर दिया है. साथ ही,Modifier.animateItem()
नाम का एक नया गैर-प्रयोग वाला मॉडिफ़ायर लॉन्च किया है. इसकी मदद से, सभी तीन तरह के ऐनिमेशन इस्तेमाल किए जा सकते हैं: अपीयरेंस (फ़ेड इन), गायब (फ़ेड आउट) और फिर से क्रम में लगाना. (I69bc9, b/330511290)
एपीआई में बदलाव
ContextMenuColors
और उससे जुड़ेLocalContextMenuTheme
ProvidableCompositionLocal
को जोड़ता है. टेक्स्ट फ़ील्ड और चुने जा सकने वाले टेक्स्ट पर मौजूद संदर्भ मेन्यू के रंगों में बदलाव किया जा सकता है. इसके लिए, कंपोज़िशन की स्थानीय जानकारी का इस्तेमाल करना होगा. (Ifa154)- टेक्स्ट लिंक को सामान्य स्टाइलिंग के अलावा, दबाया जा सकने वाला स्टाइल चुनने का विकल्प भी मिल जाता है. इस स्टाइलिंग के दौरान कर्सर को घुमाया और फ़ोकस किया जा सकता है. (I5f864, b/139312671)
- हस्तलेखन जेस्चर के लिए
ViewConfiguration.HandwritingGestureLineMargin
का परिचय दें.BasicTextField
के लिए हैंडराइटिंग जेस्चर की सुविधा उपलब्ध है. (Ie6e13, b/325660505) DelegatableNode.scrollIntoView
को 1.7 रिलीज़ के लिए हटा दिया गया, क्योंकि हमारे पास एपीआई से जुड़े बाकी प्लैटफ़ॉर्म को स्थिर करने का समय नहीं था. यह फ़ंक्शन 1.8 (I6cf61, b/333421581, b/332900232) में फिर से शुरू किया जाएगा- लेआउट कोऑर्डिनेट के बारे में क्वेरी करते समय, अब
excludeDirectManipulationOffset
आर्ग्युमेंट का इस्तेमाल किया जा सकता है. ऐसा उन पैरंट लेआउट को हटाने के लिए किया जा सकता है जिन्होंने उनके बच्चों कोPlaceable.PlacementScope.withDirectManipulationPlacement
का इस्तेमाल करके सेट किया है. इसी तरह, ऐसा लेआउट जो अपने बच्चों की जगह बार-बार बदलता है, अब उन्हेंwithDirectManipulationPlacement
का इस्तेमाल करके रखा जा सकता है (जैसे कि स्क्रोल, जो डिफ़ॉल्ट रूप से लागू होता है). इससेapproachLayout
पर आधारित ऐनिमेशन को ज़्यादा आसानी से समझने में मदद मिलती है. साथ ही, अब हमें यह फ़र्क़ करने का मौका मिलता है कि कौनसा ऑफ़सेट ऐनिमेट करना है और ऐनिमेशन का इस्तेमाल करते समय सीधे तौर पर क्या लागू करना है. (I60ec7) LazyStaggeredGrid
के लिएrequestScrollToItem
के बारे में जानकारी दें. हर मेज़र-पास के लिए, क्लाइंट अबrequestScrollToItem
को कॉल करके कुंजी के आधार पर इंडेक्स बनाए रखने की सुविधा से ऑप्ट-आउट कर सकता है. इससे मौजूदा व्यवहार में तब तक कोई बदलाव नहीं होता, जब तकrequestScrollToItem
को कॉल नहीं किया जाता. (I63983)- पेजर में
requestScrollToPage
के बारे में बताएं. हर मेज़र-पास के लिए, क्लाइंट अबrequestScrollToPage
को कॉल करके कुंजी के आधार पर इंडेक्स बनाए रखने की सुविधा से ऑप्ट-आउट कर सकता है. इससे मौजूदा व्यवहार में तब तक कोई बदलाव नहीं होता, जब तकrequestScrollToPage
को कॉल नहीं किया जाता. (Ic4213) LazyGrids
के लिएrequestScrollToItem
को लॉन्च किया गया. हर मेज़र-पास के लिए, क्लाइंट अबrequestScrollToItem
को कॉल करके कुंजी के आधार पर इंडेक्स बनाए रखने की सुविधा से ऑप्ट-आउट कर सकता है. इससे मौजूदा व्यवहार में तब तक कोई बदलाव नहीं होता, जब तकrequestScrollToItem
को कॉल नहीं किया जाता. (I0a7a0)ClickableText
को 'अब काम नहीं करता' के तौर पर मार्क किया गया है. टेक्स्ट में लिंक जोड़ने के लिए, अपने लिंक से जुड़ेLinkAnnotation
के साथAnnotatedString
बनाएं और इसAnnotatedString
कोText
कंपोज़ेबल (I34d4b, b/323346994) में पास करें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
को पास करके, लिंक के लिए विज़ुअल कॉन्फ़िगरेशन तय किया जा सकता है. ऐसा तब किया जाता है, जब लिंक पर फ़ोकस किया जाता है और/या उन पर कर्सर घुमाया जाता है. (I81ce4, b/139312671)- लंबे स्क्रीनशॉट से जुड़ा फ़ीचर फ़्लैग हटा दिया गया है. (I28648, b/329128246)
LazyColumn
अब बड़े स्क्रीनशॉट में स्टिकी हेडर को सही तरीके से रेंडर करेगा. (I8d239, b/329296635)- नए
BasicTextField
के साथ पेश किए गए बाकी एक्सपेरिमेंटल एपीआई में से ज़्यादातर एपीआई को स्थिर कर दिया गया है. (I714e2) BasicSecureTextField
मेंtextObfuscationCharacter
पैरामीटर जोड़ा गया. इससे यह कंट्रोल किया जाता है कि कॉन्टेंट को अस्पष्ट बनाते समय, किस वर्ण का इस्तेमाल किया जाए. (I0588b)- इन सोर्स की बढ़ी हुई परिभाषा के लिए
NestedScroll
सोर्स ड्रैग और फ़्लिंग कोUserInput
औरSideEffect
से बदला जा रहा है. इन सोर्स में अब ऐनिमेशन (साइड इफ़ेक्ट) और माउस व्हील और कीबोर्ड (UserInput
) शामिल हैं. (I40579) LocalBringIntoViewSpec
के बारे में जानकारी. यह प्लैटफ़ॉर्म डिपेंडेंट फ़ोकस स्क्रोलिंग व्यवहार है, जो स्क्रोल किए जा सकने वाले मॉडिफ़ायर की लेयर पर लागू होता है. (I27aa5, b/317453911)TextFieldCharSequence
को हटा दिया गया है.TextFieldBuffer.originalValues
कोTextFieldBuffer.originalText
औरTextFieldBuffer.originalSelection
से बदल दिया गया है. (I2c7d6)ImeOptions.hintLocales
अब शून्य नहीं हो सकता. अगर आपको एक खाली स्थान-भाषा की सूची पास करनी है, तो कृपयाLocaleList.Empty
का इस्तेमाल करें. (Ic5bc4)getOffsetFractionForPage
का नाम बदलकरgetOffsetDistanceInPages
किया गया. (Ia05e2)
गड़बड़ियां ठीक की गईं
- जब
InputTransformations
कोnext
से जोड़ा जाता है, तो उसकेKeyboardOptions
को अबKeyboardOptions.merge
के नए तरीके का इस्तेमाल करके, अलग-अलग विकल्पों के हिसाब से सही तरीके से मर्ज कर दिया जाता है. (Ie5304, b/295951492) AnchoredDraggableState
काtargetValue
, अब पोज़िशनल थ्रेशोल्ड को नहीं मानता. अब इसमें 50% का इंप्लिसिट थ्रेशोल्ड है. इसका मतलब है कि दो ऐंकर के बीच के बीच मेंtargetValue
बदल जाता है. (I82c2c)
बाहरी योगदान
- दो स्क्रोल एपीआई का नाम बदला गया (I56a75)
वर्शन 1.7.0-alpha06
3 अप्रैल, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
रिलीज़ हो गया है. वर्शन 1.7.0-alpha06 में ये कमिट मौजूद हैं.
नई सुविधाएं
LazyColumn
औरLazyRow
में, आइटम के दिखने और गायब होने से जुड़े ऐनिमेशन की सुविधा जोड़ी गई. पहले, प्लेसमेंट (फिर से क्रम में लगाने) वाले ऐनिमेशन के साथ काम करने के लिएModifier.animateItemPlacement()
मॉडिफ़ायर जोड़ा जा सकता था. हमने इस मॉडिफ़ायर को बंद कर दिया है. साथ ही,Modifier.animateItem()
नाम का एक नया गैर-प्रयोग वाला मॉडिफ़ायर लॉन्च किया है. इसकी मदद से, सभी तीन तरह के ऐनिमेशन इस्तेमाल किए जा सकते हैं: अपीयरेंस (फ़ेड इन), फ़ेड होना (फ़ेड आउट) और फिर से क्रम में लगाना. (I2d7f7, b/150812265)LazyColumn/LazyRow
के क्लाइंट, अब किसी बिना निलंबित किए गएLazyListState.requestToScroll
को कॉल करके, आने वाले मेज़र-पास की कुंजी के आधार पर, इंडेक्स बनाए रखने से ऑप्ट-आउट कर सकते हैं. (I98036, b/209652366)- स्टाइल वाली स्ट्रिंग के लिए
parseAsHtml
तरीका जोड़ा गया: इससे एचटीएमएल टैग वाली स्ट्रिंग कोAnnotatedString
में बदला जा सकता है. ध्यान दें कि सभी टैग काम नहीं करते, उदाहरण के लिए आप अभी बुलेट सूचियां नहीं दिखा पाएंगे. (I84d3d) - आधिकारिक Android API (
ScrollCaptureCallback
) का इस्तेमाल करके, 'लिखें' स्क्रोल कंटेनर में लंबे स्क्रीनशॉट के लिए एक्सपेरिमेंट के तौर पर सहायता जोड़ी गई. यह सुविधा, एक्सपेरिमेंट के तौर पर उपलब्ध है. इसलिए, ऐसा हो सकता है कि फ़िलहाल यह सभी मामलों को सही तरीके से हैंडल न कर पाए. इस वजह से, यह सुविधा फ़िलहाल डिफ़ॉल्ट रूप से बंद रहती है. ऑप्ट-इन करने के लिए,ComposeFeatureFlag_LongScreenshotsEnabled
फ़्लैग को 'सही' पर सेट करें. यह फ़्लैग 1.7 बीटा वर्शन से पहले हटा दिया जाएगा. (I2b055, b/329296471) - नए
GraphicsLayer
एपीआई के बारे में जानकारी दें, ताकिGraphicsLayer
इंस्टेंस की प्लेसमेंट और रेंडरिंग में ज़्यादा आसानी हो. साथ ही, रेंडरिंग की अंदरूनी सुविधाओं के साथ काम करने में भी मदद मिले. इसके लिए,GraphicsLayer
मॉडिफ़ायर इंस्टेंस तय करने के लिए, कंपोज़ेबल इंप्लिमेंटेशन के साथ तालमेल बनाने की ज़रूरत नहीं है.
एपीआई में बदलाव
- अब सभी
KeyboardOptions
पैरामीटर में, डिफ़ॉल्ट रूप से एक अनजान वैल्यू होती है.KeyboardOptions.merge
तरीका जोड़ा गया. KeyboardOptions.autoCorrect
का नाम बदलकरautoCorrectEnabled
किया गया और इसे शून्य किया जा सकता है. यहां शून्य का मतलब है कि कोई वैल्यू नहीं बताई गई थी. (Ia8ba0, b/295951492)outOfBoundsPageCount
का नाम बदलकरbeyondViewportPageCount
किया गया. (I129c6)fun ClipEntry.getMetadata()
कोval ClipEntry.clipMetadata
में बदल दिया गया है. (I50155)TextFieldState.valueAsFlow()
को हटा दिया गया है.snapshotFlow { state.text }
याsnapshotFlow { TextFieldCharSequence(state.text, state.selection) }
(I7d629) का इस्तेमाल करना हैInputTransformation.transformInput
पैरामीटर फिर से व्यवस्थित किए गए.originalValue: TextFieldCharSequence
को हटाया गया. इसके बजाय,TextFieldBuffer
अब इसी नाम से इस वैल्यू का इस्तेमाल करता है. साथ ही,valueWithChanges: TextFieldBuffer
पैरामीटर को हटाया गया.TextFieldBuffer
अब फ़ंक्शन पर रिसीवर का स्कोप है. (I919सीसी)- सॉफ़्टवेयर कीबोर्ड से की गई कार्रवाइयों को प्रोसेस करने के लिए,
BasicTextField(state)
वैरिएंट औरBasicSecureTextField
अबKeyboardActions
के बजायKeyboardActionHandler
का इस्तेमाल करते हैं. (I58dda) - "नकली" टेक्स्ट पर स्टाइलस हैंडराइटिंग की सुविधा देने के लिए, स्टाइलस हैंडराइटिंग डेलिगेशन एपीआई टेक्स्ट इनपुट फ़ील्ड. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus
का नाम बदलकरshowKeyboardOnFocus
किया गया. (Ib4b7a, b/295951492)hintMediaTypes
पैरामीटर कोModifier.contentReceiver
से हटाया गया. डेवलपर को पहले ही,TransferableContent
के लिए मिले मीडिया टाइप की जांच करने के लिए कहा गया था. ऐसा इसलिए, क्योंकि हो सकता है कि यह, कॉन्फ़िगर किए गएhintMediaTypes
के साथ काम न करे. (I82f99)BasicSecureTextField
के पैरामीटर फिर से क्रम में लगाए गए.keyboardType
औरimeAction
पैरामीटर को बदलकर, पूरीKeyboardOptions
क्लास के लिए सुझाव दिया गया. साथ ही,BasicSecureTextField
के लिए डिफ़ॉल्ट सेटिंग को पहले जैसा ही रखा गया. साथ ही,scrollState
पैरामीटर को हटाया गया. (Ibbfa9)TextFieldState.text
का टाइप,TextFieldCharSequence
से बदलकर सिर्फ़CharSequence
कर दिया गया है. इसलिए, चुनी गई मौजूदा वैल्यू और कंपोज़िशन वैल्यू को सीधे स्टेट ऑब्जेक्ट से पढ़ने के लिए,TextFieldState.selection: TextRange
औरTextFieldState.composition: TextRange?
को जोड़ा गया.TextFieldState.forEachTextValue
को हटा दिया गया है. (Idb2a2)ClipboardManager.getClipMetadata
औरClipboardManager.hasClip
फ़ंक्शन हटाए गए. क्लिप की मौजूदा एंट्री का मेटाडेटा पढ़ने के लिए, कृपयाclipEntry.getMetadata()
का इस्तेमाल करें. साथ ही,ClipboardManager.getClip
का नतीजा देखें, अगर यह खाली है या जिससे यह पता नहीं चलता है कि क्लिपबोर्ड पर कोई मौजूदा क्लिप है या नहीं. (I50498)ClipboardManager.setClip
अब क्लिपबोर्ड से कॉन्टेंट हटाने के लिए, शून्य स्वीकार करता है. (I7d2e9)ReceiveContentListener
को फ़ंक्शन इंटरफ़ेस में बदला गया. साथ ही, लैम्डा को लेने वालाModifier.receiveContent
ओवरलोड हटा दिया जाता है, क्योंकिReceiveContentListener
अब एक फ़ंक्शन इंटरफ़ेस है.Modifier.receiveContent
का नाम बदलकरModifier.contentReceiver
कर दिया गया है. (I1e6af)TransferableContent.consumeEach
का नाम बदलकरTransferableContent.consume
किया गया. (I1e462)rememberTextFieldState
, अब स्टेबल एपीआई पर अपग्रेड हो गया है. (I37999)
गड़बड़ियां ठीक की गईं
- वह गड़बड़ी ठीक की गई है जिसमें सीजेके(कंपोज़िशन पर आधारित) कीबोर्ड के साथ
BasicTextField(state)
वैरिएंट काम नहीं करता था. (I54425) - वह गड़बड़ी ठीक की गई है जहां
Modifier.dragAndDropTarget()
, कुछ मामलों मेंModifier.Node
के फिर से इस्तेमाल करके पुराने डेटा का रेफ़रंस दे सकता है. (I05bb1) - हाल ही में किए गए कॉन्ट्रैक्ट में हुए बदलाव को पहले जैसा किया गया है. इसमें
anchoredDrag
की कार्रवाई के खत्म होने पर,AnchoredDraggableState#anchoredDrag
कॉल स्नैप किए जाएंगे. (I95715)
वर्शन 1.7.0-alpha05
20 मार्च, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
रिलीज़ हो गया है. वर्शन 1.7.0-alpha05 में ये कमिट मौजूद हैं.
एपीआई में बदलाव
- हाइपरलिंक को शैली में ढालने के लिए, प्रयोग के तौर पर
LocalTextLinkStyle
कंपोज़िशन लोकल को हटाया गया. (Iebfa7) onLinkClicked
तर्क से प्रयोग के तौर पर किए गएBasicText
बदलाव को हटाया गया. आने वाले समय में, हाइपरलिंक की सुविधा के लिए एपीआई की जगह एक नया एपीआई लॉन्च किया जाएगा. (I107d5)TextFieldState
औरTextFieldBuffer
में, कोडपॉइंट से जुड़े तरीके और प्रॉपर्टी हटाई गईं. साथ ही, बाकी चुने गए और कंपोज़िशन से जुड़े एपीआई सेinChars
सफ़िक्स हटा दिए गए हैं. (Ief7ce)- किसी ऐंकर पॉइंट से गुज़रते समय,
AnchoredDraggable
काcurrentValue
अब अपडेट हो जाएगा. पिछलेcurrentValue
सिमैंटिक पाने के लिए,settledValue
का इस्तेमाल करें. इसे सिर्फ़ ऐंकर के हिसाब से सेट करते समय अपडेट किया जा सकता है. प्रोग्रेस को अब प्रॉपर्टी के बजाय फ़ंक्शन के तौर पर दिखाया जाता है. इसके लिए, शुरुआती और आखिरी पॉइंट की ज़रूरत होती है. (Ibe6e8, b/318707189, b/298271489, b/294991954) BasicTextField(state)
,TextFieldState
,InputTransformation
,OutputTransformation
,TextFieldLineLimits
,TextFieldDecorator
, अब पहले से ज़्यादा स्टेबल हैं. (I9582b)InterceptPlatformTextInput
की शुरुआत, लो-लेवल IME से जुड़े टेस्ट और कम लेवल के IME के इस्तेमाल के अन्य उदाहरणों को लिखने में मदद करने के लिए की गई.PlatformTextInputTestOverride
के इस्तेमाल पर रोक लगा दी गई है. (I862ed, b/322680547)restrictedConstraints()
को दो तरीकों में बांटें:fitPrioritizingWidth()
औरfitPrioritizingHeight()
(I6d7fd)
बाहरी योगदान
- स्क्रोल करने की दिशा की जांच करने के लिए, 2 नए एपीआई
isLastScrollForward
/isLastScrollBackward
को जोड़ा गया. स्क्रोल करके नई कार्रवाई के बारे में जाना जा सकता है. अगर अभी तक स्क्रोल करने पर कोई कार्रवाई नहीं हुई है, तो 'गलत' वैल्यू मिलेगी. (I63a0e)
वर्शन 1.7.0-alpha04
6 मार्च, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
रिलीज़ हो गया है. वर्शन 1.7.0-alpha04 में ये कमिट मौजूद हैं.
एपीआई में बदलाव
- Android U के बाद वाले डिवाइसों पर, स्टाइलस हैंडराइटिंग की सुविधा काम करती है. (I002e4)
hintLocales
कोKeyboardOptions
में जोड़ा गया, ताकिTextFields
को किसी पसंदीदा भाषा को प्रीसेट करने के लिए, खास स्थान-भाषा वाले IME के बारे में बताया जा सके. (Id18c2)- एक्सपेरिमेंटल
BasicTextField2
औरBasicSecureTextField
ओवरलोड हटाए गए, जिनमेंvalue: String
औरonValueChange: () -> String
पैरामीटर लगे. (I568b4) - जिस
BasicTextField2
पर इसे लागू किया गया है उसके सिमेंटिक्स को प्रभावित करने के लिए,InputTransformation
में एक वैकल्पिकapplySemantics
फ़ंक्शन जोड़ें. (I74a2f, b/170648072) - इस CL में हम
GetScrollViewportLength
सिमैंटिक कार्रवाई जोड़ रहे हैं, ताकि हम a11y सिस्टम में स्क्रोल किए जा रहे कॉम्पोनेंट के बारे में जानकारी को पाइप-अप कर सकें. यह सीएल, फ़ाउंडेशन स्क्रोल की जा सकने वाली सूचियों में उस प्रॉपर्टी के इस्तेमाल को भी लागू करता है. (Ic5fa2) BasicTextField2
का नाम बदलकरBasicTextField
कर दिया गया है. (Ie5713)FocusRequester.createRefs
अब ठीक से काम कर रहा है (I4d92c, b/261436820)DelegatableNode.scrollIntoView()
लॉन्च किया गया, ताकि मॉडिफ़ायर नोड सीधेscrollIntoView
अनुरोध कर सकें. (I2b3b7, b/299939840)DelegatableNode.requireView()
लॉन्च किया गया, ताकि मॉडिफ़ायर नोड मौजूदा AndroidView
को पा सकें और स्थानीय कंपोज़िशन को न पढ़ें. (I40768)- यह है कॉन्टेक्स्ट के हिसाब से फ़्लो लाइन के स्कोप और कॉन्टेक्स्चुअल फ़्लो कॉलम के स्कोप में लेआउट की जानकारी. इसमें, तय पोज़िशन में रहने के लिए, लाइन इंडेक्स, पोज़िशन, और ज़्यादा से ज़्यादा चौड़ाई और ऊंचाई के कंस्ट्रेंट को शामिल किया गया है. ज़्यादा से ज़्यादा चौड़ाई/ऊंचाई से ज़्यादा वाले आइटम अगली लाइन में जा सकते हैं या उन्हें ओवरफ़्लो सेटिंग के आधार पर हटाया जा सकता है. (Id13f8, b/292114798)
गड़बड़ियां ठीक की गईं
- गड़बड़ी को ठीक किया गया है, जहां कुछ स्थितियों में
TextField
केenabled
याreadOnly
एट्रिब्यूट को टॉगल करने से क्रैश हो सकता था. (Iae17b)
वर्शन 1.7.0-alpha03
21 फ़रवरी, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03
रिलीज़ हो गया है. वर्शन 1.7.0-alpha03 में ये कमिट हैं.
एपीआई में बदलाव
DelegatableNode.requireLayoutCoordinates()
को,Modifier.Node
का मौजूदाLayoutCoordinates
पाने के तरीके के तौर पर पेश किया गया. इसके लिए,onPlaced
को ओवरराइड करने और निर्देशांकों को खुद किसी प्रॉपर्टी में सेव करने की ज़रूरत नहीं है. (Ia8657)DelegatableNode.currentLayoutCoordinates
को,Modifier.Node
का मौजूदाLayoutCoordinates
पाने के तरीके के तौर पर पेश किया गया. इसके लिए,onPlaced
को ओवरराइड करने और निर्देशांकों को खुद किसी प्रॉपर्टी में सेव करने की ज़रूरत नहीं है. (Iaebaa)DraggableAnchors
में परफ़ॉर्मेंस ऑप्टिमाइज़ेशन का इस्तेमाल,AnchoredDraggable
ने किया. (I89cff)androidx.compose.foundation.text2
पैकेज में,BasicTextField2
और उससे जुड़े एपीआई कोandroidx.compose.foundation.text
में ले जाया गया. (I9f635)BasicTextField2
अबCodepointTransformation
पैरामीटर को स्वीकार नहीं करता.BasicSecureTextField
याOutputTransformation
का इस्तेमाल करें. (आईडी34ff)- सिर्फ़ दो
AnnotatedStrings
के एनोटेशन की तुलना करने के लिए तरीका जोड़ा गया. (I32659) - पेश है
ContextualFlowRow
औरMaxLines
औरOverflow
के साथ बेहतर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)
गड़बड़ियां ठीक की गईं
- कर्सर ऐनिमेशन, अब चालू और बंद स्थितियों के बीच फ़्रेम का अनुरोध नहीं करता. (Ia2253)
KeyboardOptions
' काम न करने वाले कॉपी कंस्ट्रक्टर, अब सभी प्रॉपर्टी को सही तरीके से कॉपी करेंगे. (If12de)
वर्शन 1.7.0-alpha02
7 फ़रवरी, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02
रिलीज़ हो गया है. वर्शन 1.7.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
HorizontalPager
,VerticalPager
, औरPagerState
को सामान्य पर सेट कर दिया गया है. (I67660, b/316966909)LocalTextLinkStyle
कंपोज़िशन लोकल जोड़ा गया, जिससे पूरे ऐप्लिकेशन में टेक्स्ट में दिए गए लिंक की स्टाइल बदली जा सकती है. अगर आप ऐप्लिकेशन में अपनी खुद की थीम का इस्तेमाल कर रहे हैं, तो आपको इस कंपोज़िशन को अपनी थीम के मुताबिक स्थानीय थीम पर सेट करना चाहिए. मटीरियल थीम का इस्तेमाल करते समय, लिंक का रंग डिफ़ॉल्ट रूप से मटीरियल के मुख्य रंग पर सेट होगा. (I7eb10)receiveContent
मॉडिफ़ायर लॉन्च किया गया, जो डेवलपर को Jetpack Compose में रिच कॉन्टेंट पाने का तरीका मुहैया कराता है.- सॉफ़्टवेयर कीबोर्ड या क्लिपबोर्ड पर चिपकाने की कार्रवाई के ज़रिए उपलब्ध कराए गए रिच कॉन्टेंट को स्वीकार करने के लिए,
receiveContent
,BasicTextField2
के साथ इंटिग्रेट होता है. (I81b72) - इस बदलाव के तहत, हम पेजर में
SnapFlingBehavior
कोTargetedFlingBehavior
से बदल रहे हैं, ताकि इस्तेमाल के अन्य उदाहरण अनलॉक किए जा सकें और उन्हें ज़्यादा आसानी से इस्तेमाल किया जा सके. (I762ea) - इस बदलाव में, हम Snapping API को स्थायी बना रहे हैं. हम कुछ टेस्टिंग कोड भी हटा रहे हैं और Snapping में ज़्यादा सैंपल जोड़ रहे हैं. (Id8da9)
TargetedFlingBehavior
के बारे में जानकारी दें. यह एकFlingBehavior
है, जो चल रहे ऐनिमेशन की स्थिति और इसके टारगेट स्क्रोल ऑफ़सेट के बारे में जानकारी का प्रचार करने की अनुमति देता है. (I6a207)
गड़बड़ियां ठीक की गईं
- जब स्क्रोल करते समय कर्सर को व्यू से बाहर कर दिया जाता है या इनपुट की वजह से वह व्यू से बाहर चला जाता है, तब
BasicTextField2
अब कर्सर को व्यू में रखता है. (Ieb856, b/237190748)
बाहरी योगदान
- LazyLists के प्रीफ़ेच व्यवहार को कॉन्फ़िगर करने के लिए, प्रयोग के तौर पर एक एपीआई जोड़ता है. (I022a4)
वर्शन 1.7.0-alpha01
24 जनवरी, 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
रिलीज़ हो गया है. वर्शन 1.7.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
- एक नया
Indication API
,IndicationNodeFactory
जोड़ा गया. इस वजह से, पिछले (अब काम नहीं करता)rememberUpdatedInstance
एपीआई की तुलना में,Indication
बेहतर तरीके से लागू किया जा सकता है. डेटा को दूसरी जगह भेजने से जुड़ी जानकारी के लिए, developer.android.com पर जाएं. clickable / combinedClickable / selectable / toggleable
अब शून्य लागू किए जा सकने वालेMutableInteractionSource
पैरामीटर को स्वीकार करता है. अगर यह वैल्यू शून्य है और दिया गयाIndication
,IndicationNodeFactory
है, तोIndication
को ज़रूरत पड़ने पर ही लेज़ी तरीके से बनाया जा सकता है. इससे परफ़ॉर्मेंस बेहतर होती है. अगरMutableInteractionSource
का इस्तेमाल करके लिफ़्ट नहीं की जा रही है, तो हमारा सुझाव है कि इसे शून्य कर दें.
एपीआई में बदलाव
AnchoredDraggable
मेंDecayAnimation
के बारे में जानकारी देने पर, यह बदलावAnchoredDraggable
मेंdecayAnimationSpec
पैरामीटर जोड़ता है. यह किसी एक ऐंकर में सेट होते समय, नुकसान पहुंचाने वाले ऐनिमेशन का इस्तेमाल करने की अनुमति देता है. इस बदलाव में, मौजूदाanimationSpec
का नाम बदलकरsnapAnimationSpec
करना भी शामिल है. इससे हर स्पेसिफ़िकेशन के इस्तेमाल के उदाहरण को समझने में मदद मिलेगी.BasicTextField2
को एक्सपेरिमेंट के तौर पर इस्तेमाल किया जा सकता है. यह ज़रूरी है कि आईडी,BasicTextField
जैसी सभी सुविधाओं के बराबर हो. साथ ही, उपयोगकर्ताओं के काम करने का तरीका, प्रोडक्शन के लिए तैयार हो. हालांकि, फ़िलहाल एपीआई पर प्रयोग जारी है. स्टेबलाइज़ करने से पहले, इसका नाम बदलकरBasicTextField
कर दिया जाएगा और उसी पैकेज में ले जाया जाएगा.BasicTextField2
के लिएOutputTransformation
एपीआई का पहला ड्राफ़्ट लॉन्च किया गया. यह एपीआई, पुरानेBasicTextField
मेंVisualTransformation
के इस्तेमाल के ज़्यादातर उदाहरणों की जगह ले लेता है. हालांकि, यह अभी तक पूरी नहीं हुई है और कुछ चीज़ें ठीक से काम नहीं करेंगी. हालांकि, आपके इस्तेमाल के उदाहरणों के लिए, एपीआई के इस्तेमाल से जुड़े आपके सुझाव या राय का इंतज़ार रहेगा. (aosp/2708848)LinkAnnotation
की शुरुआत की गई. इसकी मदद से टेक्स्ट में लिंक और क्लिक किए जा सकने वाले आइटम जोड़े जा सकते हैं. लिंक जोड़ने की सुविधा अभी पूरी नहीं हुई है. एपीआई में और बदलाव किए जा रहे हैं.receiveContent
मॉडिफ़ायर लॉन्च किया गया, जो डेवलपर को Jetpack Compose में रिच कॉन्टेंट पाने का तरीका मुहैया कराता है.- सॉफ़्टवेयर कीबोर्ड से या क्लिपबोर्ड से चिपकाने के बाद, बेहतर कॉन्टेंट स्वीकार करने के लिए
receiveContent
,BasicTextField2
के साथ इंटिग्रेट होता है. KeyboardOptions.shouldShowKeyboardOnFocus
आपको फ़ोकस पर सॉफ़्टवेयर कीबोर्ड का अनुरोध करने केBasicTextField
के डिफ़ॉल्ट व्यवहार को बंद करने देता है.TextInputService
औरLocalTextInputService
अब काम नहीं करते. इसके बजाय, प्लैटफ़ॉर्म IME API के साथ सीधे तौर पर इंटिग्रेट करने के लिए,PlatformTextInputModifierNode
का इस्तेमाल करें. (aosp/2862698)Indication#rememberUpdatedInstance
के इस्तेमाल पर रोक लगा दी गई है. इस वजह से, परफ़ॉर्मेंस से जुड़ी ऐसी कार्रवाई होती है जिसे रोका नहीं जा सकता. साथ ही, यह अन्य ऑप्टिमाइज़ेशन को रोकता है. इसके बजाय, आपको नएIndicationNodeFactory
एपीआई का इस्तेमाल करना चाहिए.
गड़बड़ियां ठीक की गईं
VisualTransformation
के पास हो जाने पर,BasicTextField
अब ऑफ़सेट मैपिंग के कुछ चुने गए विकल्पों की पहले से पुष्टि करेगा. इससे, कोडिंग में होने वाली आम गड़बड़ियों का पता लगाने में मदद मिलती है. इन गड़बड़ियों की वजह से, बाद में पास ड्रॉ करने या मेज़र करने में समस्या आती है. कंपोज़िशन के दौरान अपलोड करने से, इस बात की संभावना बढ़ जाती है कि डेवलपर को डेवलपमेंट के दौरान ये गड़बड़ियां दिख सकती हैं. इससे, प्रोडक्शन क्रैश से बचने में मदद मिलती है. (I0fd42)- किसी अमान्य इंडेक्स (b/316401857 ) के लिए, अमान्य इंडेक्स देने पर,
VisualTransformation
का डेटा फ़ेच नहीं किया जाएगा
वर्शन 1.6
वर्शन 1.6.8
12 जून, 2024
androidx.compose.foundation:foundation-*:1.6.8
रिलीज़ हो गया है. वर्शन 1.6.8 में ये बातें शामिल हैं.
वर्शन 1.6.7
1 मई, 2024
androidx.compose.foundation:foundation-*:1.6.7
रिलीज़ हो गया है. वर्शन 1.6.7 में ये बातें शामिल हैं.
वर्शन 1.6.6
17 अप्रैल, 2024
androidx.compose.foundation:foundation-*:1.6.6
रिलीज़ हो गया है. वर्शन 1.6.6 में ये बातें शामिल हैं.
गड़बड़ियां ठीक की गईं
- गड़बड़ी को ठीक किया गया है, जहां कुछ स्थितियों में
TextField
केenabled
याreadOnly
एट्रिब्यूट को टॉगल करने से क्रैश हो सकता था. (Iae17b)
वर्शन 1.6.5
3 अप्रैल, 2024
androidx.compose.foundation:foundation-*:1.6.5
रिलीज़ हो गया है. वर्शन 1.6.5 में ये बातें शामिल हैं.
गड़बड़ियां ठीक की गईं
- पंक्ति/कॉलम में आसानी से न बनने वाली गड़बड़ियों में डीबगिंग लॉग जोड़ता है: (b/300280216 और b/297974033)
वर्शन 1.6.4
20 मार्च, 2024
androidx.compose.foundation:foundation-*:1.6.4
रिलीज़ हो गया है. वर्शन 1.6.4 में ये बातें शामिल हैं.
गड़बड़ियां ठीक की गईं
- टेक्स्ट को दबाकर रखने के बाद खींचकर छोड़ने वाला जेस्चर, पहले फ़्रेम में टेक्स्ट के लेआउट से बाहर चला जाता है. अब वह क्रैश नहीं होता. (Icdf90, b/325307463)
वर्शन 1.6.3
6 मार्च, 2024
androidx.compose.foundation:foundation-*:1.6.3
रिलीज़ हो गया है. वर्शन 1.6.3 में ये शर्तें शामिल हैं.
वर्शन 1.6.2
21 फ़रवरी, 2024
androidx.compose.foundation:foundation-*:1.6.2
रिलीज़ हो गया है. वर्शन 1.6.2 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- ठीक से रीसेट न हो रहे
AnimateContentSize
को ठीक करें. (I07051) - उस समस्या को ठीक करें जहां कुछ मामलों में
intrinsicHeight
टेक्स्ट ज़्यादा कैश मेमोरी में सेव हो सकता है. (3cd398, b/217910352)
वर्शन 1.6.1
7 फ़रवरी, 2024
androidx.compose.foundation:foundation-*:1.6.1
रिलीज़ हो गया है. वर्शन 1.6.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- तय सीमा से ज़्यादा स्क्रोल करने पर, स्टैग किए गए ग्रिड के माप की समस्या ठीक करें. (bffc39)
- बड़े डाइमेंशन वाले लेआउट के लिए जांच की सुविधा जोड़ें. (e74af5)
- स्टैग किए गए ग्रिड की शुरुआत में, 0 साइज़ के आइटम लगाने की जगह तय करें. (785f94)
- onरिलीज़ कॉलबैक को उसी क्रम में कॉल करें जैसे onForgotten. (31ce3b)
वर्शन 1.6.0
24 जनवरी, 2024
androidx.compose.foundation:foundation-*:1.6.0
रिलीज़ हो गया है. वर्शन 1.6.0 में ये कमियां शामिल हैं.
1.5.0 के बाद के अहम बदलाव
- नया मॉडिफ़ायर
Modifier.anchoredDraggable
, जो पहले से तय ऐंकर के बीच कॉन्टेंट को खींचने और ऐनिमेट करने की सुविधा देता है. यह कार्रवाई बदलने वाली कुंजीModifier.swipeable
की जगह इस्तेमाल करने के लिए बनाई गई है. डेटा को दूसरी जगह भेजने से जुड़ी गाइड में, इसे इस्तेमाल करने औरModifier.swipeable
से माइग्रेट करने का तरीका जानें. - ऐप्लिकेशन और कॉम्पोनेंट के बीच 'खींचें और छोड़ें' सुविधा जोड़ी गई है. शुरू करने के लिए,
DragAndDropTarget
,Modifier.dragAndDropSource
, और अन्य एपीआई देखें Modifier.draggable2D
नया मॉडिफ़ायर है, जो दो-दो चरणों में कॉम्पोनेंट को खींचने और छोड़ने की सुविधा देता है. सैंपल देखें.AndroidExternalSurface
औरAndroidEmbeddedExternalSurface
को जोड़ा गया है, ताकि लिखने के दौरान प्लैटफ़ॉर्म पर चलने वाले कॉम्पोनेंट को आसानी से जोड़ा जा सकेPager
औरsnapFlingBehaviour
में एपीआई में कई बदलाव और सुधार किए गए- कई फ़ोकस, टेक्स्ट, और इनसेट एपीआई को स्टेबल एपीआई पर प्रमोट किया गया है
वर्शन 1.6.0-rc01
10 जनवरी, 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
रिलीज़ हो गया है. वर्शन 1.6.0-rc01 में ये कमिट हैं.
एपीआई में बदलाव
DragAndDropTarget()
एक्सटेंशन कंस्ट्रक्टर हटाया गया है.object: DragAndDropTarget {}
का इस्तेमाल करके नया इंस्टेंस बनाएं. (I32318)
वर्शन 1.6.0-beta03
13 दिसंबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03
रिलीज़ हो गया है. वर्शन 1.6.0-beta03 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- अनंत कंस्ट्रेंट की मदद से मेज़र किए गए बहुत बड़े टेक्स्ट पर असर डालने वाले क्रैश की समस्या को ठीक किया गया है. (I1a7df, b/312294386)
PlatformImeOptions
अब इंटरफ़ेस के बजाय एक कंक्रीट क्लास है. (If40a4)
वर्शन 1.6.0-beta02
29 नवंबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02
रिलीज़ हो गया है. वर्शन 1.6.0-beta02 में ये तय किए गए अपडेट शामिल हैं.
गड़बड़ियां ठीक की गईं
- सिर्फ़ रिलेआउट-ओनली स्क्रोल करने के बाद,
canScroll
का अपडेट नहीं होने की समस्या को ठीक किया गया. (I60a86) - छोटे स्क्रोल के बाद
Modifier.animateItemPlacement()
औरLookaheadScope
के लिए ठीक करें. (I3a2b7)
वर्शन 1.6.0-beta01
15 नवंबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01
रिलीज़ हो गया है. वर्शन 1.6.0-beta01 में ये कमिट हैं.
एपीआई में बदलाव
- अब
DragAndDropTarget
मॉडिफ़ायर, पाने वालेDragAndDropTarget
को साफ़ तौर पर ले लेता है. साथ ही, इसमें 'खींचें और छोड़ें' सेशन में ऑप्ट इन करने के लिए लैम्डा मौजूद है.DragAndDropModifierNode
के लिए अब दो फ़ैक्ट्री फ़ंक्शन उपलब्ध हैं. एक ट्रांसफ़र पाने के लिए और दूसरा डेटा ट्रांसफ़र करने के लिए (I69481) - फ़्लोट के तौर पर दिखाने के लिए,
maximumFlingVelocity
को अपडेट किया गया.maximumFlingVelocity
की एकता के बारे में ज़्यादा साफ़ तौर पर बताने के लिए, दस्तावेज़ों को अपडेट किया गया. (I8adc7) DragAndDropModifierNode
मेंonDragAndDropStart
फ़ैक्ट्री का नाम बदलकरacceptDragAndDropTransfer
कर दिया गया है.खींचें और छोड़ें सेशन से स्वीकार करने के लिए,
acceptsDragAndDropTransfer
कोdragAndDropTarget
Modifier
में जोड़ दिया गया है. यह Lambda फ़ंक्शन, बिक्री के लिए अच्छे नतीजे देता है अगर 'खींचें और छोड़ें' सेशन में दिलचस्पी है, तोDragAndDropTarget
. ड्रैग इवेंट प्रोसेस करने के लिए, अन्य Lambdas को इससे बदल दिया गया है.खींचें और छोड़ें सेशन से पाने के लिए,
DragAndDropTarget
फ़ैक्ट्री फ़ंक्शन जोड़ा गया है (Iebf3a)AnchoredDraggable
मेंstartDragImmediately
को दिखाने से, जेस्चर का इस्तेमाल करते समय उसे खींचने वाले जेस्चर का पता लगाने का कंट्रोल मिलता है. जब विजेट किसी टारगेट ऐंकर के लिए ऐनिमेट हो रहा हो, तब इसे सेट करना फ़ायदेमंद होता है. सैंपल देखें. (Ie6d13, b/285139987)फ़ाउंडेशन टूलटिप एपीआई का नाम अब
@ExperimentalFoundationApi
है (I30b0b)DragAndDropInfo
कोDragAndDropModifierNode.drag
टाइप के तौर पर हटाया गया. हालांकि, अबtransferData
, सजावट के साइज़, और ड्रैग डेकोरेशनDrawScope
लैम्डा के लिए पैरामीटर के हिसाब से, इसे हटाया जा सकता हैDragAndDropTarget
में किसी खास तरीके के बजाय, खींचें और छोड़ें इवेंट के खास तरीके हैंDragAndDropModifierNode
के लिए फ़ैक्ट्री फ़ंक्शन में मौजूदonDragAndDropEvent
का नाम बदलकरonDragAndDropStart
कर दिया गया है, ताकि बेहतर तरीके से यह बताया जा सके कि दिया गयाDragAndDropTarget
, खींचें और छोड़ें सेशन के लिए ही मान्य हैDragAndDropEventType
को हटा दिया गया है (I645b1)PlatformTextInputModifierNode.runTextInputSession
का नाम बदलकरestablishTextInputSession
किया गया. (I03cd0)OriginalText
कोTextSubstitution
से बदलें. (Ifa5a8)PlatformTextInputModifierNode.textInputSession
का नाम बदलकरrunTextInputSession
किया गया. (Ie9c6b)SubcomposeLayout
के बच्चों (और इस पर आधारितLazyColumn
जैसे लेआउट) का, जिन्हें आने वाले समय में फिर से इस्तेमाल करने के लिए सेव रखा जाता है उन्हें बंद माना जाएगा. ऐसे नोड को टेस्ट करने के लिए, नयाassertIsDeactivated()
टेस्ट एपीआई लॉन्च किया गया था. जांच के बाकी एपीआई, बंद किए गए नोड को डिफ़ॉल्ट रूप से फ़िल्टर कर देंगे. (I2ef84, b/187188981)Modifier.magnifier
केclippingEnabled
पैरामीटर का नाम बदलकर,clip
कर दिया गया है.Modifier.magnifier
केmagnifierCenter
पैरामीटर को शून्य करने लायक बनाया गया है. साथ ही, डिफ़ॉल्ट ऐक्शन को पहले जैसा ही रखा गया है. (I6aa66)मटीरियल
SwipeToReveal
एपीआई (कार्ड और चिप के लिए) में स्लॉट बनाने के लिए, अब डेटा क्लास पर आधारित इंस्टेंस के बजाय, स्लॉट आधारित एपीआई (जैसा कि Compose ने सुझाव दिया है) का इस्तेमाल किया जाता है. यह एक नुकसान पहुंचा सकता है. एपीआई के नए वर्शन का इस्तेमाल करने के तरीके जानने के लिए, कृपया डेमो और सैंपल कोड देखें. (Ia8943)
गड़बड़ियां ठीक की गईं
PageSize.Fixed
के लिए बराबर और हैशकोड लागू करें. (Ie3ede, b/300134276)- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से
minWidth
के बदलने पर,BasicText
लेआउट कम नहीं होता. साथ ही,maxWidth
(Idb19c) सेminWidth
कम होने पर, इस गड़बड़ी को ठीक किया गया ArcLine
में स्वीप ग्रेडिएंट के लिए रेंडरर सहायता जोड़ें. (I4d5bb)- विंडो इनसेट में बदलाव (Iee695) के साथ बाइनरी कंपैटबिलिटी से जुड़ी समस्या ठीक करना
- Material3 चिप/बटन के लिए मटीरियल कोर लेयर हटाएं, क्योंकि माइक्रोबेंचमार्क इसके बिना बेहतर परफ़ॉर्मेंस दिखाते हैं. (I55555)
वर्शन 1.6.0-alpha08
18 अक्टूबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08
रिलीज़ हो गया है. वर्शन 1.6.0-alpha08 में ये कमिट हैं.
नई सुविधाएं
Modifier.draggable2D
नया मॉडिफ़ायर है, जो दो-दो चरणों में कॉम्पोनेंट को खींचने और छोड़ने की सुविधा देता है. सैंपल (Id95f5, b/214412658) देखें
एपीआई में बदलाव
Modifier.dragAndDrawSource
नेonDrawDragShadow
लैम्डा का नाम बदलकरdrawDragDecoration
कर दिया है. साथ ही,DragAndDropInfo
का साइज़ पैरामीटर का नाम बदलकरdragDecorationSize
कर दिया है. (Id0e30, b/303904810)BasicTextField2
केdecorationBox
पैरामीटर का नाम बदलकर,decorator
किया गया. इसका टाइप बदलकर, मज़ेदार इंटरफ़ेसTextFieldDecorator
कर दिया गया है. (I23c1c)
गड़बड़ियां ठीक की गईं
onValueChange
की ज़रूरी शर्तों के बारे मेंBasicTextField
के बारे में बेहतर दस्तावेज़. (I90fc9, b/160257648)
वर्शन 1.6.0-alpha07
4 अक्टूबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07
रिलीज़ हो गया है. वर्शन 1.6.0-alpha07 में ये कमिट हैं.
एपीआई में बदलाव
- कस्टम टेक्स्ट एडिटर के लिए, लिखने से जुड़े टेस्ट के लिए
PlatformTextInputMethodTestOverride
की सुविधा शुरू की गई. (आईडी159b) GraphicsSurface
का नाम बदलकरAndroidExternalSurface
किया गया (I11680)- नॉन-लीनियर फ़ॉन्ट स्केलिंग को बंद करने के लिए,
DisableNonLinearFontScalingInCompose
अस्थायी फ़्लैग जोड़ा गया. अगर आपको इसे खाली करने के लिए समय चाहिए, तो अपने टेस्ट मेंDisableNonLinearFontScalingInCompose = true
सेट करें. यह फ़्लैग Compose 1.6.0-beta01 में हटा दिया जाएगा. (Ic9486) ColorList
औरColorSet
कलेक्शन जोड़े गए, जिनमें किसी डेटा को असाइन करने की ज़रूरत नहीं होती. (I744bd)- यह बदलाव
shortSnapVelocityThreshold
को हटा देता है, जिसेSnapLayoutInfoProvider
को लागू करने से जुड़ी जानकारी में बदल दिया गया है. (I65f6d) - खींचें और छोड़ें सेशन को शुरू करने के लिए
dragAndDropSource
मॉडिफ़ायर जोड़ें और खींचें और छोड़ें सेशन के लिएdragAndDropTarget
मॉडिफ़ायर जोड़ें (Ib7828, b/286038936) SnapPositionInLayout
के दस्तावेज़ और रैंक के तरीके को अपडेट करें.SnapPositionInLayout
में पेज की पोज़िशन सेट करने के तरीके के हिसाब से, कॉन्टेंट पैडिंग के बारे में जानकारी दें. (Id7938, b/300116110)UndoState
कोTextFieldState
में जोड़ा गया. इसकी मदद से, उपयोगकर्ता के किए गए बदलावों को पहले जैसा किया जा सकता है/फिर से किया जा सकता है. (Icc024)
गड़बड़ियां ठीक की गईं
- वेलोसिटी बदलने के बाद,
basicMarquee
के ऐनिमेशन को ठीक नहीं किया गया. (Id2e77, b/297974036)
वर्शन 1.6.0-alpha06
20 सितंबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06
रिलीज़ हो गया है. वर्शन 1.6.0-alpha06 में ये कमिट हैं.
नई सुविधाएं
SurfaceView
,TextureView: GraphicsSurface()
, औरEmbeddedGraphicsSurface()
के लिए नए कंपोज़ेबल रैपर. यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव किए जा सकते हैं. (I9ddb2)Modifier.magnifier()
अब एक स्टेबल एपीआई है. इसमें, कार्रवाई बदलने वाली कुंजी में इनलाइन पैरामीटर के लिएMagnifierStyle
को हटाना शामिल है. (I83bec, b/298381260, b/262367109, b/261438887)
एपीआई में बदलाव
ScrollScope
मेंupdateCurrentPage
औरupdateTargetPage
को लॉन्च किया गया. येPagerState.scroll
के ज़रिए ऐनिमेशन वाले स्क्रोल को अपनी पसंद के मुताबिक बनाने की अनुमति देने के लिए, आखिर के कुछ वीडियो हैं. (I9cad5, b/267744105, b/243786897)SnapFlingBehavior
से सघनता हटाएं.SnapLayoutInfoProvider
के सभी लागू करने के तरीके में पहले से ही सघनता को ऐक्सेस किया जा सकता है, पाने वाले के दायरे को हटाया जा सकता है. इस वजह सेSnapFlingBehavior
औरSnapLayoutInfoProviders
, दोनों को लागू करना ज़्यादा मुश्किल होगा. (I153c3)- अन्य मॉडिफ़ायर को स्थिर के तौर पर मार्क किया गया है. (I56af1, b/298046462)
SnapStepSize
कोSnapLayoutInfoProvider
से हटाया गया. कैलकुलेशन लेआउट की जानकारी का इस्तेमाल करके किया जाना चाहिए. साथ ही, इसे अप्रोच या स्नैपिंग ऑफ़सेट के ज़रिए दिया जाना चाहिए. (If320c)
व्यवहार में होने वाले बदलाव
- Compose में टेक्स्ट को आसानी से पढ़ने लायक बनाने और सुलभता के लिए, अब नॉन-लीनियर फ़ॉन्ट स्केलिंग का इस्तेमाल किया जाता है. जब फ़ॉन्ट स्केल > सिस्टम सेटिंग में 100%, छोटे टेक्स्ट का साइज़ सामान्य रूप से बढ़ जाएगा, लेकिन पहले से बड़ा टेक्स्ट थोड़ा ही बड़ा होगा. साथ ही, SP में तय की गई लाइन की ऊंचाई, 100% स्केल के मुताबिक तय की गई ऊंचाई के अनुपात में अपने-आप अडजस्ट हो जाएगी. ज़्यादा जानकारी के लिए, फ़ॉन्ट स्केलिंग के सबसे सही तरीके देखें. (I11518)
गड़बड़ियां ठीक की गईं
- टूलटिप के लिए,
rememberSaveable
का इस्तेमाल हटाएं. (Icc131, b/299500338)
वर्शन 1.6.0-alpha05
6 सितंबर, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
रिलीज़ हो गया है. वर्शन 1.6.0-alpha05 में ये कमियां हैं.
एपीआई में बदलाव
BasicSecureTextField
के लिए ओवरलोड जोड़ें जो मौजूदाBasicTextField
एपीआई की तरह ही, इस वैल्यू को बदलने के लिए ऐसी वैल्यू और कॉलबैक को स्वीकार करते हैं जिन्हें बदला नहीं जा सकता. (Ia4882)- एपीआई 33 और इसके बाद के वर्शन पर, फ़्लोटिंग विंडो से बचने के लिए,
Modifier.preferKeepClear()
को कंपोज़ेबल के तौर पर मार्क करें. (Ib51d5, b/297260115) ScrollView
औरRecyclerView
जैसे व्यू कॉम्पोनेंट में फ़्लिंग की रफ़्तारViewConfiguration.ScaledMaximumFlingVelocity
तक सीमित है. अब लिखेंmaximumFlingVelocity
में इसका अपना वर्शन शामिल है जो अबDraggable
पर लागू होता है. (Ibf974)- अब काम नहीं करने वाले
Pager
औरPagerState
ओवरलोड हटाए गए. (Iea07e) BasicTooltipBox
कोcompose.foundation
में जोड़ा गया. साथ ही,PlainTooltipBox
औरRichTooltipBox
को अपडेट किया गया, ताकिTooltipBox
नएPlainTooltip
औरRichTooltip
कंपोज़ेबल के साथ इस्तेमाल किया जा सके. (I79e1d)
वर्शन 1.6.0-alpha04
23 अगस्त, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
रिलीज़ हो गया है. वर्शन 1.6.0-alpha04 में ये कमियां हैं.
एपीआई में बदलाव
- सबकंपोज़िशन के लाइफ़साइकल और फिर से इस्तेमाल करने के तरीके को मैनेज करने के लिए,
ReusableComposition
इंटरफ़ेस जोड़ें. (I812d1, b/252846775) Modifier.focusGroup
को स्थिर एपीआई में अपग्रेड किया गया है. (I7ffa3)BasicTextField2
के लिए ओवरलोड जोड़ें जो मौजूदाBasicTextField
एपीआई की तरह ही, इस वैल्यू को बदलने के लिए ऐसी वैल्यू और कॉलबैक को स्वीकार करते हैं जिन्हें बदला नहीं जा सकता. (I3f2b8)GridItemSpan::currentLineSpan
अब एक स्टेबल एपीआई है. (Icc29c)contentDescription
को स्वीकार करने वाला कैनवस अब ठीक से काम करने वाला एपीआई है. (Ib3d29)viewportSize
कोScrollState
में पेश किया गया. यह कॉम्पोनेंट काviewPort
साइज़ जानने का एक तरीका है जो मेज़रमेंट होने के बाद,ScrollState
का इस्तेमाल करता है. (I8b85a, b/283102682)- उस समस्या को ठीक किया गया है जिसकी वजह से पेजर में प्रीफ़ेच किए गए डेटा और व्यू के तरीके में कोई अंतर नहीं था. (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)
में कोई बदलाव नहीं हुआ है.Deprecated Modifier.consumedWindowInsets
एपीआई को अब हटा दिया गया है. इसके बजाय,Modifier.consumeWindowInsets
का इस्तेमाल करें. (आईडी72बीबी)
वर्शन 1.6.0-alpha03
9 अगस्त, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
रिलीज़ हो गया है. वर्शन 1.6.0-alpha03 में ये कमियां हैं.
एपीआई में बदलाव
LazyLayout
का ओवरलोड होने पर, इसमेंLazyLayoutItemProvider
का लैम्डा स्वीकार किया जाता है. कोई प्लेन ऑब्जेक्ट नहीं है, जैसा कि पहले था. पिछले ओवरलोड पर रोक लगा दी गई है. (I42a5a)privateImeOptions
को कॉन्फ़िगर करने के लिए अतिरिक्त सहायता (Idb772)
गड़बड़ियां ठीक की गईं
- कीबोर्ड को दिखाने वाले और
readOnly
के सही होने पर बदलाव किए जा सकने वाले टेक्स्ट फ़ील्ड को ठीक किया गया. साथ ही, यह नीति ठीक की गई है कि फ़ोकस करने के दौरान,readOnly
को 'सही' से 'गलत' में बदलने पर, कीबोर्ड न दिखे. (I34a19, b/246909589)
वर्शन 1.6.0-alpha02
26 जुलाई, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
रिलीज़ हो गया है. वर्शन 1.6.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
Pager
में माप पास के बाद इकट्ठा की गई जानकारी के साथPagerLayoutInfo
की शुरुआत की गई.PageInfo
भी प्रस्तुत किया गया, जोPager
में मापे गए एक ही पेज के बारे में जानकारी है. (Iad003, b/283098900)- कंपोज़ेबल में अनुमति वाले इनपुट के बारे में बताने के लिए अतिरिक्त एनोटेशन (I51109)
- जांचों में फ़ोकस का अनुरोध करने के लिए,
SemanticsNodeInteraction.requestFocus
को ज़्यादा आसान और खोजे जाने वाले तरीके के तौर पर जोड़ा गया. (Ie8722) - पूरी तरह से दोबारा डिज़ाइन किया गया
PlatformTextInput*
एपीआई. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
औरLocalSoftwareKeyboardController
अब प्रयोग के तौर पर नहीं हैं.LocalSoftwareKeyboardController
भी अब एक सहीCompositionLocal
है. (I4c364)Modifier.transformable
, अबcanPan
पैरामीटर में पैन डेल्टा की सुविधा देता है. इससे पैन को अनुमति देने या न देने के लिए पैन की दिशा तय करने में मदद मिलती है. (I692aa, b/266829800)- सुपर क्लास
AbstractComposeView
(Iacd74, b/269479941) को बढ़ाने के लिए, मॉडिफ़ायरconsumeWindowInsets
को अपडेट करता है
वर्शन 1.6.0-alpha01
21 जून, 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01
रिलीज़ हो गया है. वर्शन 1.6.0-alpha01 में ये कमियां हैं.
नई सुविधाएं
- फ़ाउंडेशन में नया
AnchoredDraggable
एपीआई लॉन्च किया गया. इसका इस्तेमाल कॉम्पोनेंट बनाने के लिए किया जा सकता है, जिन्हें अलग-अलग स्थितियों के बीच खींचा जा सकता है, जैसे कि मॉडल बॉटम शीट. यह एपीआई, Material केSwipeable
एपीआई की जगह लेता है. (I4a2ed)
एपीआई में बदलाव
- सहायता करें
InputConnection#requestCursorUpdates
(I0c69b) - कस्टम ऐनिमेशन खास जानकारी को अनुमति देने के लिए,
scrollAnimationSpec
लॉन्च किया गया.BringIntoViewCalculator
कोBringIntoViewScroller
में अपडेट किया गया. (आईडीb741) - लोड न हो पाने वाले ऐसेट पाथ की जानकारी के साथ बिटमैप ऐसेट को लोड करते समय, थ्रॉएबल थ्रेशोल्ड को रैप करने के लिए
ResourceResolutionException
टाइप जोड़ें. (I19f44, b/230166331, b/278424788) - टेक्स्ट का अनुवाद करने में मदद करने के लिए, सिमेंटिक्स प्रॉपर्टी और कार्रवाइयां जोड़ी गईं. (I4a6bc)
BringIntoViewCalculator
एपीआई उपलब्ध कराया गया. इसका इस्तेमाल करके, यह तय किया जा सकता है किScrollable
जैसे कॉम्पोनेंट,bringIntoView
के अनुरोधों का जवाब कैसे दें.BringIntoViewCalculator
के इंस्टेंस को स्वीकार करने के लिए, स्क्रोल किए जा सकने वाले ओवरलोड को बदला गया. (Iaf5af)
गड़बड़ियां ठीक की गईं
- अगर आपको याद रखे बिना कंपोज़िशन में
MutableInteractionSource
बनाया जा रहा है, तो यह चेतावनी देने के लिए लिंट चेक जोड़ा गया. यह बदलाव, म्यूटेबल स्टेट /Animatable
बनाने के लिए लिंट की जांच की तरह ही होता है. (I5daae) - माउस से चुनने के लिए जोड़ी गई सुविधा. टच पर आधारित चुने गए हिस्से का दायरा, शब्द के हिसाब से बड़ा होगा और वर्ण के हिसाब से इसका साइज़ छोटा होगा. (Ic0c6c, b/180639271)
FocusTargetModifierNode
इंटरफ़ेस जोड़ा गया, जिसका इस्तेमाल पसंद के मुताबिकFocusTarget
बनाने के लिए किया जा सकता है. (I9790e)
संस्करण 1.5
वर्शन 1.5.4
18 अक्टूबर, 2023
androidx.compose.foundation:foundation-*:1.5.4
रिलीज़ हो गया है. वर्शन 1.5.4 में ये कमिट हैं.
वर्शन 1.5.3
4 अक्टूबर, 2023
androidx.compose.foundation:foundation-*:1.5.3
रिलीज़ हो गया है. इस वर्शन में कोई बदलाव नहीं है.
संस्करण 1.5.2
27 सितंबर, 2023
androidx.compose.foundation:foundation-*:1.5.2
रिलीज़ हो गया है. वर्शन 1.5.2 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- टेक्स्ट में मौजूद वह गड़बड़ी ठीक की गई है जिसकी वजह से सिमैंटिक अमान्य होने पर, कुछ मामलों में क्रैश हो जाता था.
संस्करण 1.5.1
6 सितंबर, 2023
androidx.compose.foundation:foundation-*:1.5.1
रिलीज़ हो गया है. वर्शन 1.5.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- कीबोर्ड को दिखाने वाले और
readOnly
के सही होने पर बदलाव किए जा सकने वाले टेक्स्ट फ़ील्ड को ठीक किया गया. साथ ही, यह नीति ठीक की गई है कि फ़ोकस करने के दौरान,readOnly
को 'सही' से 'गलत' में बदलने पर, कीबोर्ड न दिखे. (I34a19, b/246909589)
वर्शन 1.5.0
9 अगस्त, 2023
androidx.compose.foundation:foundation-*:1.5.0
रिलीज़ हो गया है. वर्शन 1.5.0 में ये कमियां शामिल हैं.
1.4.0 के बाद के अहम बदलाव
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
, लेआउट मॉडिफ़ायर वगैरह जैसे कई बुनियादी मॉडिफ़ायर कोModifier.Node
एपीआई पर माइग्रेट कर दिया गया है. इससे शुरुआती कंपोज़िशन पर ओवरहेड कम हो गया है.- पेजर की स्थिरता में सुधार. कई गड़बड़ियों को ठीक कर दिया गया है.
pageCount
पैरामीटर अब पेजर के बजायPagerState
में मौजूद हैं
वर्शन 1.5.0-rc01
26 जुलाई, 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01
रिलीज़ हो गया है. वर्शन 1.5.0-rc01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
mutableStateOf()
कॉल को प्रिमिटिव से जुड़े खास टाइप पर माइग्रेट करने का सुझाव देने के लिए, एक वैकल्पिक जांच उपलब्ध है. इसका लिंट आईडीAutoboxingStateCreation
है. पहले, यह जांच सभी प्रोजेक्ट के लिए डिफ़ॉल्ट रूप से चालू रहती थी. Android Studio के एडिटर और अपने प्रोजेक्ट के लिंट आउटपुट में इस चेतावनी को देखने के लिए, इसकी गंभीरता को जानकारी से बदलकर चेतावनी (या ज़्यादा) करें. इसके लिए, अपने मॉड्यूल केbuild.gradle
याbuild.gradle.kts
कॉन्फ़िगरेशन मेंwarning "AutoboxingStateCreation"
का एलान करें, जैसा कि यहां दिखाया गया है (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
वर्शन 1.5.0-beta03
28 जून, 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03
रिलीज़ हो गया है. वर्शन 1.5.0-beta03 में ये कमिट हैं.
वर्शन 1.5.0-beta02
7 जून, 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02
रिलीज़ हो गया है. वर्शन 1.5.0-beta02 में ये कमिट हैं.
वर्शन 1.5.0-beta01
24 मई, 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01
रिलीज़ हो गया है. वर्शन 1.5.0-beta01 में ये कमिट हैं.
एपीआई में बदलाव
- धड़कन की दर और हर दिन चले गए कदमों की जानकारी देने के लिए,
PlatformDataProvider
लागू करें.SensorGateway
इंटरफ़ेस को सार्वजनिक एपीआई से हटाया गया. (I55b84)
गड़बड़ियां ठीक की गईं
- लेज़ी लिस्ट/ग्रिड/वगैरह के दौरान, खर्च को कम करें. मेज़रमेंट (Iaf9e2)
- स्नैपशॉट लागू करते समय, डेटा का बंटवारा कम किया गया (I65c09)
- स्प्रिंग ऐनिमेशन से ऐलोकेशन को हटाया गया (Ie9431)
TextLayout
(I0fd11) से आवंटन हटाया गया- पॉइंटर वेलोसिटी ट्रैकिंग में एक से ज़्यादा ऐलोकेशन हटाई गईं (I26bae)
वर्शन 1.5.0-alpha04
10 मई, 2023
androidx.compose.foundation:foundation:1.5.0-alpha04
और androidx.compose.foundation:foundation-layout:1.5.0-alpha04
रिलीज़ हुई हैं. वर्शन 1.5.0-alpha04 में ये कमियां हैं.
एपीआई में बदलाव
- पूरे पैरामीटर सूची के साथ ऑप्टिमाइज़ की गई
TextStyle.merge(...)
को जोड़ा गया. (Iad234, b/246961787) SnapLayoutInfoProvider
के बारे में जानकारी दें, जिसेLazyGridState
के साथ इस्तेमाल किया जा सकता है. (I92134, b/269237141, b/260914964)- लेज़ी स्टेज किए गए ग्रिड आइटम के स्कोप के लिए, एक्सपेरिमेंट के तौर पर
Modifier.animateItemPlacement()
को जोड़ा गया. ऐनिमेशन की जगह बदलने/फिर से क्रम में लगाने के लिए, आइटम पर इसे लागू किया जा सकता है. (I4b62d, b/257034719) GridCells.FixedSize
को स्थिर बनाएं.FixedSize
,LazyGrid
के बारे में बताता है. इसमें हर सेल को क्रॉस ऐक्सिस पर सटीक साइज़ मिलता है और बाकी स्पेस को क्रॉस-ऐक्सिस के हिसाब से बांटा जाता है. (I8542f)- पेजर के लिए रिसीवर स्कोप
PagerScope
और दिए गए पेज ऑफ़सेट की गणना के लिए यूटिलिटी फ़ंक्शन की शुरुआत की गई. (If2577) - स्नैप फ़्लिंग करते समय
snapPositionalThreshold
के बारे में बताएं. इस पैरामीटर का इस्तेमाल करके, पेजर में शॉर्ट स्नैप करने की पोज़िशन के लिए थ्रेशोल्ड तय करें. (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds
कोcalculateSnappingOffset
से बदला गया. इस नए तरीके में हम स्नैप करने के लिए बस अगले ऑफ़सेट का अनुरोध करते हैं. सीमाओं की गणना, लागू करने के स्तर पर की जानी चाहिए, क्योंकि किसी एक को स्नैप करने की ज़रूरत के आधार पर यह अलग-अलग हो सकता है. (I923a4)LazyStaggeredGrid
एपीआई को बेहतर बनाया गया है. (I633a5)Horizontal/VerticalPager
सेpageCount
हटाएं. यह जानकारी, राज्य बनाते समय दी जानी चाहिए.pageCount
को स्वीकार करने के लिए,PagerState
औरrememberPagerState
को अपडेट किया गया. (Ieb52d, b/266965072)Horizontal/VerticalPager
सेpageCount
हटाएं. यह जानकारी, राज्य बनाते समय दी जानी चाहिए.pageCount
को स्वीकार करने के लिए,PagerState
औरrememberPagerState
को अपडेट किया गया. (Ifa3cb, b/266965072)- पेजर की
SnapFlingBehavior
मेंshortSnapVelocityThreshold
के बारे में बताएं. (I7379e, b/275579012) FlowRowScope
औरFlowColumnScope
को जोड़ता है. (I54fe2)
गड़बड़ियां ठीक की गईं
- जब
minWidth
औरminHeight
क्रैश नहीं होते हैं, तब टेक्स्ट पर सिमैंटिक पाने के लिए कॉल. (Ibd072) - ऐसे डायलॉग बॉक्स में टेक्स्ट फ़ील्ड के लिए कीबोर्ड नहीं दिखाया जा रहा था जिन्हें
Dialog
कंपोज़ेबल ने नहीं बनाया है. इस रिग्रेशन की समस्या को ठीक कर दिया जाता है. (I82551, b/262140644)
वर्शन 1.5.0-alpha03
19 अप्रैल, 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
और androidx.compose.foundation:foundation-layout:1.5.0-alpha03
रिलीज़ हुई हैं. वर्शन 1.5.0-alpha03 में ये कमियां हैं.
इस रिलीज़ से, Compose के लिए टेक्स्ट रेंडरिंग का नया स्टैक चालू होता है. नए स्टैक को परफ़ॉर्मेंस के लिए ऑप्टिमाइज़ किया गया है. इसलिए, आपको कोई बदलाव नहीं दिखेगा.
अगर आपको रेंडर किए गए टेक्स्ट में बदलाव दिखते हैं, तो अलग-अलग व्यवहार की पुष्टि करने के लिए NewTextRendering1_5 = false
को सेट करके डीबग किया जा सकता है. इसे सेट करने पर, शॉर्ट वीडियो को फिर से बनाने की प्रोसेस लागू होगी. अगर व्यवहार में कोई अंतर हो, तो कृपया गड़बड़ी के तौर पर शिकायत करें.
1.5 beta01 रिलीज़ से पहले, डीबग फ़्लैग को हटा दिया जाएगा.(Iada23, b/246960758)
एपीआई में बदलाव
FlowColumn/FlowRow
को इनलाइन बनाएं. (Idab37)
वर्शन 1.5.0-alpha02
5 अप्रैल, 2023
androidx.compose.foundation:foundation:1.5.0-alpha02
और androidx.compose.foundation:foundation-layout:1.5.0-alpha02
रिलीज़ हुई हैं. वर्शन 1.5.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
LazyGrid
में तय साइज़ वाली सेल के लिए सहायता जोड़ी गई और उन्हें क्रॉस ऐक्सिस पर व्यवस्थित करने की सुविधा जोड़ी गई. (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid
में तय साइज़ की लेन के लिए सहायता जोड़ी गई है. साथ ही, उन्हें क्रॉस ऐक्सिस पर व्यवस्थित करने की सुविधा जोड़ी गई है. (I7d519)AnnotatedString
में मौजूदUrlAnnotation
को अबTalkBack
जैसी सुलभता सेवाओं के ज़रिए खोला जा सकता है. (If4d82, b/253292081)- टेक्स्ट फ़ील्ड के लिए
InsertTextAtCursor
सिमेंटिक्स कार्रवाई जोड़ी गई. (I11ed5) - टेक्स्ट से जुड़ी जांच कार्रवाइयों (जैसे कि
performTextInput
) में अब फ़ील्ड पर क्लिक करने के बजाय, सीधे तौर पर फ़ोकस करने के लिए, सिमेंटिक्स कार्रवाई का इस्तेमाल किया जाएगा. (I6ed05) FlowRow
मेंverticalArrangement
औरFlowColumn
मेंhorizontalArrangement
का इस्तेमाल करके क्रॉस-ऐक्सिस स्पेसिंग/अरेंजमेंट के लिए सहायता जोड़ी गई. हमFlowRow/FlowColumn
में, टॉप-लेवलverticalAlignment
औरhorizontalAlignment
को भी हटा देते हैं. इसके बजाय, डेवलपरModifier.align
का इस्तेमाल कर सकते हैं. यहverticalAlignment
औरverticalArrangement
के नाम रखने के तरीके के बीच के भ्रम को कम करता है. (I87b60, b/268365538)
वर्शन 1.5.0-alpha01
22 मार्च, 2023
androidx.compose.foundation:foundation:1.5.0-alpha01
और androidx.compose.foundation:foundation-layout:1.5.0-alpha01
रिलीज़ हुई हैं. वर्शन 1.5.0-alpha01 में ये कमियां हैं.
एपीआई में बदलाव
- नए मॉडिफ़ायर सिस्टम का इस्तेमाल करने के लिए, टेक्स्ट और
BasicText
को फिर से इस्तेमाल किया जाता है. इससे कई मामलों में परफ़ॉर्मेंस में काफ़ी सुधार हुआ है. कोई परिवर्तन दिखाई नहीं देना चाहिए. (If1d17, b/246961435) - टेक्स्ट एडिटर नोड पर IME कार्रवाई शुरू करने के लिए,
PerformImeAction
सिमेंटिक्स कार्रवाई जोड़ी गई. (Ic606f, b/269633506)
गड़बड़ियां ठीक की गईं
Modifier.hoverable
की अंदरूनी जानकारी अपडेट की गई. जांच करने वाले टूल मेंhoverable
मॉडिफ़ायर सिर्फ़ तब दिखाया जाएगा, जब यह चालू हो. (I82103)
वर्शन 1.4
वर्शन 1.4.3
3 मई, 2023
androidx.compose.foundation:foundation:1.4.3
और androidx.compose.foundation:foundation-layout:1.4.3
को बिना किसी बदलाव के रिलीज़ किया गया है. इसमें सिर्फ़ एक वर्शन बंप किया गया है.
वर्शन 1.4.2
19 अप्रैल, 2023
androidx.compose.foundation:foundation:1.4.2
और androidx.compose.foundation:foundation-layout:1.4.2
रिलीज़ हुई हैं. वर्शन 1.4.2 में ये कमिट हैं.
वर्शन 1.4.1
5 अप्रैल, 2023
androidx.compose.foundation:foundation:1.4.1
और androidx.compose.foundation:foundation-layout:1.4.1
रिलीज़ हुई हैं. वर्शन 1.4.1 में ये कमियां शामिल हैं.
वर्शन 1.4.0
22 मार्च, 2023
androidx.compose.foundation:foundation:1.4.0
और androidx.compose.foundation:foundation-layout:1.4.0
रिलीज़ हुई हैं. वर्शन 1.4.0 में ये कमियां शामिल हैं.
1.3.0 के बाद से हुए अहम बदलाव
Text
औरTextField
में इमोजी की शिकायत करने की सुविधा जोड़ी गई. साथ ही, इसके निचले लेवल का पैराग्राफ़ भी जोड़ा गया. जब इमोजी को कॉन्फ़िगर किया जा रहा हो, तब यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है.PlatformParagraphStyle
का इस्तेमाल करके,EmojiCompat
को किसी खास टेक्स्ट के लिए कॉन्फ़िगर किया जा सकता है.LazyStaggeredGrid
(I28252) में पूरी लाइन स्पैन का इस्तेमाल करने की सुविधा जोड़ी गई- प्रयोग के तौर पर
onHover
कोClickableText
(I6938f) में जोड़ा जा रहा है runComposeUiTest
फ़ंक्शन औरCoroutineContext
पैरामीटर स्वीकार करने वालेcreate*ComposeRule
फ़ंक्शन के लिए, नए एक्सपेरिमेंटल ओवरलोड दिखाए गए. संदर्भ का इस्तेमाल, टेस्ट कंपोज़िशन और उसमें मौजूद सभीLaunchedEffect
औरrememberCoroutineScope()
कॉल के लिए किया जाएगा. (I10614, b/265177763)FlowRow
औरFlowColumn
अब@ExperimentalFoundationApi
के तौर पर उपलब्ध हैं. इनकी मदद से कॉम्पोनेंट को पंक्ति और कॉलम पर आधारित लेआउट के ज़्यादा विकल्प मिलते हैं. मुख्य ऐक्सिस पर जगह न होने पर, यह नई लाइन में बदल जाती है. (I3a7b2)- स्क्रोलिंग मार्की इफ़ेक्ट की मदद से कॉन्टेंट दिखाने के लिए,
Modifier.basicMarquee()
को एक्सपेरिमेंट के तौर पर उपलब्ध कराया गया है. (I2df44, b/139321650)
वर्शन 1.4.0-rc01
8 मार्च, 2023
androidx.compose.foundation:foundation:1.4.0-rc01
और androidx.compose.foundation:foundation-layout:1.4.0-rc01
रिलीज़ हुई हैं. वर्शन 1.4.0-rc01 में ये कमिट शामिल हैं.
एपीआई में बदलाव
- प्लैटफ़ॉर्म एपीआई से सीधे तौर पर बात करने वाले कस्टम टेक्स्ट इनपुट को लागू करने के लिए, निचले लेवल के नए
PlatformTextInputAdapter
एपीआई की शुरुआत की गई. (I58df4) LazyStaggeredGrid
में रिवर्स लेआउट के लिए सहायता जोड़ें. (I3ef4a)
गड़बड़ियां ठीक की गईं
BasicTextField
कीSetText
सिमैंटिक ऐक्शन, अब टेक्स्ट बफ़र को अपडेट करेगा. इसके लिए, IME अपडेट और टेस्टिंग फ़ंक्शन (जैसे,performTextReplacement
) के कोड पाथ का ही इस्तेमाल किया जाएगा.- टेक्स्ट टेस्टिंग फ़ंक्शन
performTextClearance
,performTextReplacement
, औरperformTextSelection
अबSemanticsActions
का इस्तेमाल करते हैं. (I0807d, b/269633168, b/269624358)
वर्शन 1.4.0-beta02
22 फ़रवरी, 2023
androidx.compose.foundation:foundation:1.4.0-beta02
और androidx.compose.foundation:foundation-layout:1.4.0-beta02
रिलीज़ हुई हैं. वर्शन 1.4.0-beta02 में ये कमिट हैं.
एपीआई में बदलाव
- एक नया
Modifier.Node.onReset()
कॉलबैक जोड़ा गया है. इससे,Layout
को फिर से इस्तेमाल किए जाने पर (उदाहरण के लिए,LazyColumn
के आइटम के तौर पर) मामले को सही तरीके से मैनेज करने के लिए, कुछ लोकल स्टेट को रीसेट किया जा सकता है. फ़ोकस की गई स्थिति को ठीक से रीसेट करने के लिए,FocusTargetModifierNode
को ठीक किया गया. (I65495, b/265201972) - कैनवस पर टेक्स्ट बनाते समय, ब्लेंड करने के अलग-अलग एल्गोरिदम के साथ काम करने के लिए,
DrawScope.drawText
,Paragraph.paint
, औरMultiParagraph.paint
के तरीकों मेंBlendMode
पैरामीटर जोड़ा गया. (I57508) modifierElementOf()
एपीआई हटाया गया. इसके बजाय, कृपया सीधेModifierNodeElement
से विस्तार करें. (Ie6d21)
गड़बड़ियां ठीक की गईं
- चुनने के हैंडल में बदलाव करने से, अब किसी आंशिक वर्ण को नहीं चुना जा सकता. (आईडीेड1)
- खाली
TextField
(I0427f, b/244185537) में ctrl+backspace का इस्तेमाल करने पर होने वाले क्रैश की समस्या ठीक की गई
वर्शन 1.4.0-beta01
8 फ़रवरी, 2023
androidx.compose.foundation:foundation:1.4.0-beta01
और androidx.compose.foundation:foundation-layout:1.4.0-beta01
रिलीज़ हुई हैं. वर्शन 1.4.0-beta01 में ये कमिट मौजूद हैं.
नई सुविधाएं
- वर्शन 1.3 और उसके बाद के वर्शन में, इमोजी कंपैट इंटिग्रेशन को
Text
औरTextField
में जोड़ा गया. साथ ही, इसके निचले लेवल का पैराग्राफ़ भी जोड़ा गया. जब इमोजी को कॉन्फ़िगर किया जा रहा हो, तब यह सुविधा डिफ़ॉल्ट रूप से चालू रहती है. PlatformParagraphStyle
का इस्तेमाल करके,EmojiCompat
को किसी खास टेक्स्ट के लिए कॉन्फ़िगर किया जा सकता है.
एपीआई में बदलाव
- सभी
LazyLayouts
में इस्तेमाल किए जाने वालेPinnableContainer
एपीआई को सामान्य तरीके से लागू करने की प्रोसेस जोड़ी गई. इससे उन आइटम को बनाए रखा जा सकेगा जो कंपोज़िशन से बाहर निकलने के बाद भी ऐक्टिव रहेंगे. (If45a4) PinnableContainer.PinnedHandle.unpin()
का नाम बदलकरrelease()
(I4667a) कर दिया गया
बाहरी योगदान
LazyListLayoutInfo
,LazyGridLayoutInfo
, औरLazyStaggeredGridItemInfo
(I52fad) मेंmainAxisItemSpacing
प्रॉपर्टी जोड़ी गई
वर्शन 1.4.0-alpha05
25 जनवरी, 2023
androidx.compose.foundation:foundation:1.4.0-alpha05
और androidx.compose.foundation:foundation-layout:1.4.0-alpha05
रिलीज़ हुई हैं. वर्शन 1.4.0-alpha05 में ये कमियां हैं.
नई सुविधाएं
LazyStaggeredGrid
(I28252) के लिए पूरी लाइन में स्पैन का इस्तेमाल करने की सुविधा जोड़ी गई- प्रयोग के तौर पर
onHover
कोClickableText
(I6938f) में जोड़ा जा रहा है runComposeUiTest
फ़ंक्शन औरCoroutineContext
पैरामीटर स्वीकार करने वालेcreate*ComposeRule
फ़ंक्शन के लिए, नए एक्सपेरिमेंटल ओवरलोड दिखाए गए. संदर्भ का इस्तेमाल, टेस्ट कंपोज़िशन और उसमें मौजूद सभीLaunchedEffect
औरrememberCoroutineScope()
कॉल के लिए किया जाएगा. (I10614, b/265177763)
एपीआई में बदलाव
- यह
OverscrollEffect
के प्री/पोस्ट एपीआई को कंबाइंड 'डेकरेटर' में मर्ज करता हैapplyToScroll
औरapplyToFling
फ़ंक्शन. एपीआई के नए आकार के साथ ओवरस्क्रोल इफ़ेक्ट को लागू करने के तरीके से जुड़े उदाहरण देखने के लिए, दस्तावेज़ में अपडेट किए गए सैंपल देखें. (I8a9c4, b/255554340) - इन-लाइन/छिपाए गए फ़ंक्शन के ज़्यादा टाइप/शून्य वैल्यू (I24f91)
TextStyle
मेंLineBreak
औरHyphens
एपीआई को स्थिर कर दिया गया है. (Ic1e1d)
गड़बड़ियां ठीक की गईं
- अब टेक्स्ट फ़ील्ड में कर्सर ब्लिंक करता रहेगा. ऐनिमेशन बंद होने पर भी ऐसा होता रहेगा. (I95e70, b/265177763)
- अब सिस्टम की सेटिंग में ऐनिमेशन बंद होने पर भी
Modifier.basicMarquee
ऐनिमेट होता है. (I23389, b/262298306, b/265177763)
बाहरी योगदान
TextInputSession
औरTextInputService
मेंnotifyFocusedRect
तरीकों को फिर से बंद नहीं किया गया. (I23a04, b/262648050)
वर्शन 1.4.0-alpha04
11 जनवरी, 2023
androidx.compose.foundation:foundation:1.4.0-alpha04
और androidx.compose.foundation:foundation-layout:1.4.0-alpha04
रिलीज़ हुई हैं. वर्शन 1.4.0-alpha04 में ये कमियां हैं.
नई सुविधाएं
FlowRow
औरFlowColumn
अब@ExperimentalFoundationApi
के तौर पर उपलब्ध हैं. इनकी मदद से कॉम्पोनेंट को पंक्ति और कॉलम पर आधारित लेआउट के ज़्यादा विकल्प मिलते हैं. मुख्य ऐक्सिस पर जगह न होने पर, यह नई लाइन में बदल जाती है. (I3a7b2)Modifier.basicMarquee()
यह सुविधा, स्क्रोलिंग मार्की इफ़ेक्ट की मदद से कॉन्टेंट दिखाने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध है. (I2df44, b/139321650)
एपीआई में बदलाव
FocusRequesterModifier
FocusRequesterNode
variationSettings
वालाAndroidFont
कंस्ट्रक्टर, अब ठीक से काम करने वाला एपीआई है. इसका इस्तेमाल, नए तरह के फ़ॉन्ट डिस्क्रिप्टर बनाने के लिए किया जा सकता है. (I5adcc, b/261565807)PinnableContainer
एपीआई का इस्तेमाल, लेज़ी लिस्ट के ज़रिए एक कंपोज़िशन लोकल के ज़रिए किया जाता है. इससे मौजूदा आइटम को पिन किया जा सकता है. इसका मतलब है कि व्यू से दूर स्क्रोल करने पर ऐसे आइटम को नष्ट नहीं किया जाएगा. उदाहरण के लिए,Modifier.focusable()
इस तरीके से, फ़ोकस किए गए मौजूदा आइटम को पिन करेगा. (Ib8881, b/259274257, b/195049010)bringIntoViewRequesters
और फ़ोकस करने लायक, स्क्रोल किए जा सकने वाले कोड के जवाब को फिर से लिखें, ताकि उन ऑपरेशन की जटिलता को बेहतर बनाया जा सके और ज़्यादा किनारे वाले केस हैंडल किए जा सकें. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114)- काम न करने वाले छिपे हुए फ़ंक्शन की ज़्यादा रिटर्न टाइप शून्यता (Ibf7b0)
- टेक्स्ट को
Static(default)
या ऐनिमेटेड में तय करने के लिए, प्रयोग के तौर परTextMotion
कोTextStyle
में जोड़ा गया. अगर टेक्स्ट का साइज़ बढ़ाया जा रहा है, उसका अनुवाद किया जा रहा है या उसे ऐनिमेशन के ज़रिए घुमाया जा रहा है, तोTextMotion.Animated
का इस्तेमाल करें. (I24dd7) - Android प्लैटफ़ॉर्म (I00303) पर फ़ोकस नेविगेशन व्यवहार को ठीक करने के लिए,
TextFieldFocusModifier
जोड़ें drawText
मेंmaxSize: IntSize
आर्ग्युमेंट कोsize: Size
से बदला गया, ताकिDrawScope
के अन्य फ़ंक्शन के साथ इनलाइन किया जा सके.size
को डिफ़ॉल्ट रूप सेSize.Unspecified
पर सेट किया गया है. इसलिए, इससे पिछली डिफ़ॉल्ट सेटिंग में कोई बदलाव नहीं होना चाहिए. (Icd27d)
गड़बड़ियां ठीक की गईं
- नैचुरल अनुभव पाने के लिए,
SnapFlingBehaviour
में स्नैप फ़िज़िक्स में बदलाव किए गए.
आम समस्या
androidx.compose.foundation:1.4.0-alpha03
सेandroidx.compose.foundation:1.4.0-alpha04
में अपडेट करने पर, आपकोjava.lang.NoSuchFieldError
गड़बड़ी दिख सकती है. यहां वह जगह है जहां पर समस्या की मूल रूप से रिपोर्ट की गई थी. समस्या का हल सबमिट कर दिया गया है और यह विकल्प Compose के अगले अपडेट में उपलब्ध होगा. काम करने के लिए, अपनीandroidx.compose.material
औरandroidx.compose.material3
लाइब्रेरी को सबसे नए वर्शन(1.1.0-alpha04) में अपडेट करें या अपनेandroidx.compose.foundation
को 1.4.0-alpha03 पर डाउनग्रेड करें.
वर्शन 1.4.0-alpha03
7 दिसंबर, 2022
androidx.compose.foundation:foundation:1.4.0-alpha03
और androidx.compose.foundation:foundation-layout:1.4.0-alpha03
रिलीज़ हुई हैं. वर्शन 1.4.0-alpha03 में ये कमियां हैं.
एपीआई में बदलाव
- 'लिखें' नियम का इस्तेमाल करके किए गए यूज़र इंटरफ़ेस (यूआई) की जांच में,
withFrameNanos
कॉलबैक के दौरान फिर से शुरू किए गए क्रम को तब तक नहीं भेजा जाएगा, जब तक कि सभी फ़्रेम कॉलबैक नहीं चल जाते. यह सामान्य रूप से चलने पर कंपोज़ के व्यवहार से मेल खाता है. हालांकि, ऐसे टेस्ट में फ़ेल हो सकता है जो पुराने तरीके का इस्तेमाल करते हैं. इसका असर सिर्फ़ उस कोड पर होना चाहिए जो सीधेwithFrameNanos
याwithFrameMillis
को कॉल करता है. साथ ही, इसमें कॉलबैक के बाहर मौजूद उन फ़ंक्शन को पास किया गया लॉजिक होता है जिन्हें कॉलबैक के अंदर ले जाना पड़ सकता है. उदाहरणों के लिए इस CL में ऐनिमेशन टेस्ट में हुए बदलाव देखें. withFrameNanos
कॉलबैक के बाद, कॉलर को फिर से शुरू करने से पहले, कोड को चलाने के लिए,TestMonotonicFrameClock
कंस्ट्रक्टर और फ़ैक्ट्री फ़ंक्शन में वैकल्पिकonPerformTraversals: (Long) -> Unit
पैरामीटर जोड़ा गया कोरूटीन. (Idb413, b/254115946, b/222093277, b/255802670)- पेज की सुलभता सुविधाओं के बारे में जानकारी:
PageUp
,PageDown
,PageLeft
,PageRight
. ध्यान दें कि ये सिर्फ़ एपीआई 29 पर उपलब्ध हैं. (Ida4ab) HorizontalPager
औरVerticalPager
के बारे में बताएं. यह पेजर तरीके से कंपोज़ेबल दिखाने का तरीका है. पेजर को कंट्रोल करने के लिएPagerState
लॉन्च किया गया. साथ ही, पेजर की मौजूदा स्थिति के बारे में क्वेरी की जानकारी भी लॉन्च की गई.PageSize
की शुरुआत की गई. यह किसी पेजर के पेज का साइज़ कंट्रोल करने का एक तरीका है. इसका इस्तेमाल, पेजर जैसा कैरसेल बनाने के लिए किया जा सकता है.PagerSnapDistance
की शुरुआत की गई. यह पेज़र के फ़्लिंग व्यवहार में स्नैप करने के काम को कंट्रोल करने का तरीका है. (I01120)- यह समझने के लिए कि फ़्लिंग कहां होगा,
SnapFlingBehavior.performFling
में ओवरलोड का पता लगाया. (I569f6) OverscrollEffect#isEnabled
को हटा दिया गया है. इस फ़्लैग को याद रखने और सेट करने के बजाय, ऐसे मामलों में इवेंट को ओवरस्क्रोल इफ़ेक्ट में न भेजें, जब आपको ओवरस्क्रोल नहीं दिखाना हो (उदाहरण के लिए, अगरScrollableState#canScrollForward/backward
दोनों 'गलत' दिखाते हैं). (I1a4b0, b/255554340, b/255557085)- यह क्वेरी करने के लिए
ScrollableState#canScrollForward
औरScrollableState#canScrollBackward
को जोड़ा गया है कि क्याScrollableState
में किसी भी दिशा में स्क्रोल करने की जगह है (चाहे वह अपनी रेंज के कम से कम / ज़्यादा से ज़्यादा हो). यह डिफ़ॉल्ट रूप से,ScrollableState
के मौजूदा सिस्टम के साथ पुराने सिस्टम के साथ काम करने की सुविधा के लिए सही पर सेट होती है. उपभोक्ता इसका इस्तेमाल, उपयोगकर्ता को यह बताने के लिए कर सकते हैं कि स्क्रोल करने के लिए अब भी जगह बची है. साथ ही, इसका इस्तेमाल उनScrollableStates
को डेल्टा भेजने से बचने के लिए भी किया जा सकता है जिनमें एक दी गई दिशा में स्क्रोल करने के लिए जगह न हो. इससे गैर-ज़रूरी काम में कमी आएगी. (Idf1a0, b/255557085) - क्वेरी ऐन्सेस्टर की स्क्रोल जानकारी में मॉडिफ़ायर एपीआई जोड़ा गया. (I2ba9d, b/203141462)
Clickable
में इस्तेमाल किया जाता है, ताकि प्रेस इंटरैक्शन में देरी हो सके. ऐसा तब होता है, जब जेस्चर, स्क्रोल इवेंट बन सकते हैं.Scrollable ViewGroup
में इस्तेमाल किए जाने पर,Clickables
को ठीक किया गया है, जिससे रिपल में देरी नहीं हो रही है.- अगर जेस्चर, स्क्रोल इवेंट बन सकते हैं, तो ड्रॉर और शीट को अपडेट किया गया है, ताकि दबाए जाने पर सही तरीके से कार्रवाई को रोका जा सके.
snapStepSize
का नाम अपडेट करें, ताकि वहSnapLayoutInfoProvider
में दिए गए अन्य तरीकों से मेल खाए. (Ife67c)EmojiCompat
कोCompose
(Ibf6f9, b/139326806) में जोड़ा गयाconsumedWindowInsets()
का नाम बदलकरconsumeWindowInsets()
औरwithConsumedWindowInsets()
का नाम बदलकरonConsumedWindowInsetsChanged()
किया. साथ ही, मॉडिफ़ायर को सार्वजनिक किया. (Ie44e1)
गड़बड़ियां ठीक की गईं
Modifier.animateItemPlacement()
और लेज़ी ग्रिड के साथ होने वाले क्रैश को ठीक कर दिया गया है. कुछ स्थितियों में ऐसा हो रहा था जब नए आइटम की संख्या पिछले आइटम के मुकाबले कम थी. (I0bcac, b/253195989)
वर्शन 1.4.0-alpha02
9 नवंबर, 2022
androidx.compose.foundation:foundation:1.4.0-alpha02
और androidx.compose.foundation:foundation-layout:1.4.0-alpha02
रिलीज़ हुई हैं. वर्शन 1.4.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
awaitFirstDown
औरwaitForUpOrCancellation
अबPointerEventPass
को स्वीकार करते हैं, ताकि ज़्यादा आसानी से पेमेंट किया जा सके. (I7579a, b/212091796)- लेज़ी* एपीआई (I12197) से
beyondBoundCount
एपीआई को पहले जैसा करें - व्यूपोर्ट आइटम लिखने और उन्हें सही जगह पर दिखाने के लिए, Laज़ी एपीआई में पैरामीटर पेश किया गया (I69e89, b/172029355)
BasicText
औरBasicTextField
मेंminLines
पैरामीटर जोड़ा गया. इससे कंपोज़ेबल की कम से कम ऊंचाई सेट की जा सकती है लाइनों की संख्या (I24294, b/122476634)
वर्शन 1.4.0-alpha01
24 अक्टूबर, 2022
androidx.compose.foundation:foundation:1.4.0-alpha01
और androidx.compose.foundation:foundation-layout:1.4.0-alpha01
रिलीज़ हुई हैं. वर्शन 1.4.0-alpha01 में ये कमियां हैं.
एपीआई में बदलाव
- जेस्चर डिटेक्टर के लिए एक नई विधि
awaitEachGesture()
को जोड़ा गया. यहforEachGesture()
की तरह काम करता है. हालांकि, जेस्चर (हाव-भाव) पर लूप पूरी तरह सेAwaitPointerEventScope
के अंदर काम करता है. इसलिए, बार-बार होने वाले इवेंट से कोई फ़र्क़ नहीं पड़ता. forEachGesture()
की जगह अबawaitEachGesture()
का इस्तेमाल किया जा रहा है, क्योंकि यह जेस्चर के बीच इवेंट को छोड़कर जाने की अनुमति देता है. (Iffc3f, b/251260206)- ऐनिमेशन की प्रोग्रेस तय करने और यह जानने के लिए कि ऐनिमेशन पूरा होने के बाद IME कहां होगा,
WindowInsets.imeAnimationSourc
e औरWindowInsets.imeAnimationTarget
जोड़े गए. (I356f1, b/217770337)
वर्शन 1.3
वर्शन 1.3.1
9 नवंबर, 2022
androidx.compose.foundation:foundation:1.3.1
और androidx.compose.foundation:foundation-layout:1.3.1
रिलीज़ हुई हैं. वर्शन 1.3.1 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
BeyondBoundsLayout
(aosp/2255266) में परफ़ॉर्मेंस से जुड़ी समस्या ठीक करेंContentInViewModifier
तब तक लेआउट निर्देशांक नहीं पढ़ेगा, जब तक अटैच नहीं किया जाता (aosp/2241316)
वर्शन 1.3.0
24 अक्टूबर, 2022
androidx.compose.foundation:foundation:1.3.0
और androidx.compose.foundation:foundation-layout:1.3.0
रिलीज़ हुई हैं. वर्शन 1.3.0 में ये कमियां शामिल हैं.
01.2.0 के बाद से हुए अहम बदलाव
LazyVerticalStaggeredGrid
औरLazyHorizontalStaggeredGrid
के एक्सपेरिमेंटल वर्शन लॉन्च किए गए.SnapFlingBehavior
,rememberSnapFlingBehavior
, और इससे जुड़े अन्य एपीआई को एक्सपेरिमेंट के तौर पर जोड़ा गया.- अगर
Modifier.clickable
,Modifier.toggleable
, औरModifier.selectable
को रिमोट कंट्रोल से कीबोर्ड या डी-पैड से क्लिक किया जाता है, तो अब वे रिपल दिखाती हैं.
वर्शन 1.3.0-rc01
5 अक्टूबर, 2022
androidx.compose.foundation:foundation:1.3.0-rc01
और androidx.compose.foundation:foundation-layout:1.3.0-rc01
रिलीज़ हुई हैं. वर्शन 1.3.0-rc01 में ये कमिट हैं.
एपीआई में बदलाव
lowVelocityAnimationSpec
का इस्तेमाल अप्रोच स्टेप में किया गया था, जब क्षय करने के लिए काफ़ी फ़्लिंग वेलोसिटी नहीं थी. (Iaeb27)- टेक्स्ट में अपने-आप हाइफ़न लगा पाने की सुविधा के लिए, एक्सपेरिमेंट के तौर पर नए एपीआई हाइफ़न जोड़े गए (Iaa869)
वर्शन 1.3.0-beta03
21 सितंबर, 2022
androidx.compose.foundation:foundation:1.3.0-beta03
और androidx.compose.foundation:foundation-layout:1.3.0-beta03
रिलीज़ हुई हैं. वर्शन 1.3.0-beta03 में ये कमिट हैं.
एपीआई में बदलाव
- टेक्स्ट में लाइन ब्रेकिंग को पसंद के मुताबिक बनाने के लिए विकल्प जोड़ें. (I86907)
BringIntoViewResponder
अब किसी अनुरोध को प्रोसेस करते समय, उससे जुड़ी अप-टू-डेट सीमाएं पा सकेंगे. (If86a5, b/241591211)- एक्सपेरिमेंट के तौर पर शुरू की गई
Staggered Grid
(I10b82) और आइटम के बीच की स्पेसिंग की सुविधा उपलब्ध कराएं - एक्सपेरिमेंटल
Staggered Grid
(I342ea) में कॉन्टेंट पैडिंग के बारे में जानकारी दें - कम से कम चौड़ाई की सीमा के हिसाब से काम करने के लिए,
TextMeasurer.measure
तरीके मेंconstraints: Constraints
वालेsize:IntSize
आर्ग्युमेंट को बदला गया. (I37530, b/242707525) windowInsetsPadding
के बाहर इस्तेमाल करने के लिए, इस्तेमाल किए जा चुकेWindowInsets
को पाने के लिए,Modifier.withConsumedWindowInsets()
को जोड़ा गया.WindowInsets
को बिना बदले आसानी से बदलने के लिए,MutableWindowInsets
को जोड़ा गया. (I7fd28, b/237019262, b/243119659)
वर्शन 1.3.0-beta02
7 सितंबर, 2022
androidx.compose.foundation:foundation:1.3.0-beta02
और androidx.compose.foundation:foundation-layout:1.3.0-beta02
रिलीज़ हुई हैं. वर्शन 1.3.0-beta02 में ये कमिट हैं.
एपीआई में बदलाव
- एक्सपेरिमेंटल
StaggeredGrid
(Ia48be) का शुरुआती वर्शन FocusDirection.In
औरFocusDirection.Out
का नाम बदलकरFocusDirection.Enter
औरFocusDirection.Exit
किया (Ia4262, b/183746982)rememberSnapFlingBehavior
ओवरलोड दिखाई दिया, जोLazyLists
में स्नैप करने की सुविधा को तेज़ तरीके से चालू करता है. (Ifb48a)snapFlingBehavior
की फ़ैक्ट्री को, कंक्रीटSnapFlingBehavior
क्लास से बदला गया. डेंसिटी के लिएSnapLayoutInfoProvider
तरीके दिए गए, ताकि एपीआई इस्तेमाल करने वालों के लिए, Dp<->Px कन्वर्ज़न को आसान बनाया जा सके. (I54a11)- प्लेसेबल (जगहों) की लिस्ट देने के लिए,
LazyLayoutMeasureScope.measure
को अपडेट करें. इससे, दिखाई गई वैल्यू के लिए, तय नहीं किए जा सकने वाले बदलाव को हाइलाइट किया जाएगा. (I48b7c) SnapLayoutInfoProvider
को पेश किया गया, जोSnapLayoutInfoProvider
का इंस्टेंस बनाने के लिएLazyListState
की ज़रूरत होती है. इसका इस्तेमालLazyLists
के लिए, स्नैपFlingBehavior
को चालू करने के लिए किया जा सकता है. (I2dd10)
गड़बड़ियां ठीक की गईं
- अन्य इंतज़ार फ़ंक्शन (I646e6) से मिलान करने के लिए,
AwaitPointerEventScope#awaitLongPressOrCancellation
को रीफ़ैक्टर करता है
वर्शन 1.3.0-beta01
24 अगस्त, 2022
androidx.compose.foundation:foundation:1.3.0-beta01
और androidx.compose.foundation:foundation-layout:1.3.0-beta01
रिलीज़ हुई हैं. वर्शन 1.3.0-beta01 में ये कमिट हैं.
एपीआई में बदलाव
pointerPosition
कोOverscrollEffect
से हटाया गया - पॉइंटर की मौजूदा जगह से जुड़े इफ़ेक्ट,effectModifier
मेंModifier.pointerInput { }
का इस्तेमाल कर सकते हैं. ऐसा करके, पॉइंटर की मौजूदा जगह को हासिल किया जा सकता है. (I9f606, b/241239306)- ज़्यादा मुश्किल जेस्चर की पहचान करने के लिए,
AwaitPointerEventScope#awaitLongPressOrCancellation
को अतिरिक्त बिल्डिंग ब्लॉक के तौर पर दिखाया गया है (I04374, b/181577176) - लेज़ी लिस्ट में स्नैप करने की सुविधा को चालू करने के लिए,
lazyListSnapLayoutInfoProvider
लॉन्च किया गया. (I3ecdf) SnapFlingBehavior
की शुरुआत की गई. यह एक फ़्लिंग बिहेवियर है जो सूची स्नैप करने की सुविधा को चालू करता है. अपने स्नैपिंग लेआउट के बारे में जानकारी के साथ,SnapLayoutInfoProvider
का इंस्टेंस दें. (Ie754c)
वर्शन 1.3.0-alpha03
10 अगस्त, 2022
androidx.compose.foundation:foundation:1.3.0-alpha03
और androidx.compose.foundation:foundation-layout:1.3.0-alpha03
रिलीज़ हुई हैं. वर्शन 1.3.0-alpha03 में ये कमियां हैं.
एपीआई में बदलाव
- रिसोर्स फ़ॉन्ट अब सेटिंग फ़ॉन्ट वैरिएशन सेटिंग (एपीआई 26+) का समर्थन करते हैं. (I900dd, b/143703328)
DeviceFontFamilyNameFont
(Ic1279, b/143703328) में वैरिएबल फ़ॉन्ट सपोर्ट- एक्सपेरिमेंट के तौर पर शुरू की गई एनोटेशन को
PlatformTextStyle
औरLineHeightStyle
से हटाया गया. (I64bef) - जब
VisualTransformation
से दिया गयाOffsetMapping
अमान्य इंडेक्स दिखाता है, तो टेक्स्ट फ़ील्ड में अपवाद के तौर पर ज़्यादा जानकारी मिलेगी. (Ie73f9, b/229378536) - लेज़ी लेआउट के बीच, आइटम देने वाला लॉजिक शेयर करने के लिए, एक्सपेरिमेंटल एपीआई पेश करें. (Ic891c)
ScrollableDefaults.reverseDirection()
अब प्रयोग के तौर पर उपलब्ध नहीं है. (Iba646)SemanticsModifier.id
को हटा दिया गया और सिमैंटिक आईडी कोLayoutInfo.semanticsId
पर ले जाया गया. (Iac808, b/203559524)checkScrollableContainerConstraints()
अब प्रयोग के तौर पर उपलब्ध नहीं है. (I2c290)Modifier.clipScrollableContainer()
अब एक्सपेरिमेंट के तौर पर उपलब्ध नहीं है. (Ia2b44)TextInputService.show|hideSoftwareKeyboard
का बहिष्कार करें. कृपया ऐप्लिकेशन कोड मेंSoftwareKeyboardController
और IME-मैनेजमेंट कोड मेंTextInputSession
का इस्तेमाल करें. (I14e4c, b/183448615)
वर्शन 1.3.0-alpha02
27 जुलाई, 2022
androidx.compose.foundation:foundation:1.3.0-alpha02
और androidx.compose.foundation:foundation-layout:1.3.0-alpha02
रिलीज़ हुई हैं. वर्शन 1.3.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
DrawScope
परdrawText
एक्सटेंशन फ़ंक्शन जोड़ा गया, ताकिCanvas
औरdrawBehind
जैसेDrawScope
पर ऑपरेट होने वाले कंपोज़ेबल और मॉडिफ़ायर पर कई स्टाइल वाले टेक्स्ट ड्रॉ किए जा सकें. (I16a62, b/190787898)
गड़बड़ियां ठीक की गईं
- फ़ोकस किए जाने के दौरान टेक्स्ट फ़ील्ड के बंद होने पर, सॉफ़्ट कीबोर्ड नहीं दिखेगा. (I6e3e4, b/237308379)
- वेलोसिटी ट्रैकर में
InputEventChange
इवेंट जोड़ते समय, हम अब पोज़िशन के बजाय डेल्टा का इस्तेमाल करेंगे. इससे यह गारंटी मिलेगी कि टारगेट एलिमेंट के मूव होने पर भी (Icea9d, b/216582726, b/223440806, b/227709803) - जब स्क्रोल किए जा सकने वाले किसी बच्चे पर फ़ोकस किया गया होता है, तब वह सही तरीके से स्क्रोल करेगा, ताकि फ़ोकस किए गए बच्चे को उसका साइज़ कम होने पर भी दिख सके. भले ही, साइज़ ऐनिमेशन वाला हो. (I80867, b/230756508, b/220119990)
- चुने गए ऐप्लिकेशन के चालू रहने के दौरान,
TextField
के क्रैश होने की समस्या को ठीक किया गया है, ताकि उसे फिर से भरा जा सके. (I1235b, b/208655565, b/214253689)
वर्शन 1.3.0-alpha01
29 जून, 2022
androidx.compose.foundation:foundation:1.3.0-alpha01
और androidx.compose.foundation:foundation-layout:1.3.0-alpha01
रिलीज़ हुई हैं. वर्शन 1.3.0-alpha01 में ये कमियां हैं.
एपीआई में बदलाव
AnnotatedString
मेंTalkBack
लिंक काम करने की सुविधा देने के लिए,UrlAnnotation
एनोटेशन टाइप और उससे जुड़े तरीकों की जानकारी दी गई. (I1c754, b/231495122)
गड़बड़ियां ठीक की गईं
- कर्सर टाइमर को रीस्टार्ट किए बिना,
BasicTextField
cursorBrush
को ऐनिमेट किया जा सकता है. (I812e6, b/236383522)
वर्शन 1.2
वर्शन 1.2.1
10 अगस्त, 2022
androidx.compose.foundation:foundation:1.2.1
और androidx.compose.foundation:foundation-layout:1.2.1
रिलीज़ हुई हैं. वर्शन 1.2.1 में ये कमियां शामिल हैं.
वर्शन 1.2.0
27 जुलाई, 2022
androidx.compose.foundation:foundation:1.2.0
और androidx.compose.foundation:foundation-layout:1.2.0
रिलीज़ हुई हैं. वर्शन 1.2.0 में ये कमियां शामिल हैं.
1.1.0 के बाद के अहम बदलाव
LazyVerticalGrid
औरLazyHorizontalGrid
की स्थिति में कोई बदलाव नहीं हुआ है.- अब लेज़ी लिस्ट और ग्रिड में मौजूद आइटम के लिए, कॉन्टेंट का टाइप तय किया जा सकता है. इससे कॉम्पोनेंट, एलिमेंट को ज़्यादा असरदार तरीके से फिर से इस्तेमाल कर पाते हैं.
- लेज़ी लिस्ट और ग्रिड में अब
userScrollEnabled
पैरामीटर है. इसकी मदद से, उपयोगकर्ता के जेस्चर से स्क्रोल करने की सुविधा बंद की जा सकती है. - एक्सपेरिमेंट के तौर पर शुरू किया गया एक नया एपीआई जोड़ा गया है, जिसका नाम
LazyLayout
है. यह एक ऐसा एपीआई है जिसका इस्तेमाल हम लेज़ी लिस्ट और ग्रिड को चलाने के लिए, अंदरूनी तौर पर करते हैं. OverscrollEffect
एपीआई को एक्सपेरिमेंट के तौर पर शुरू किया गया है. कस्टम ओवरस्क्रोल इफ़ेक्ट तय किए जा सकते हैं. साथ ही, स्क्रोल करने लायक कस्टम कंटेनर में एक स्टैंडर्ड प्लैटफ़ॉर्म जोड़ा जा सकता है.- नेस्ट किए गए स्क्रोलिंग इंटरऑपरेबिलिटी एपीआई की शुरुआत की गई है. इसका मकसद, व्यू और कंपोज़ किए गए स्क्रोलिंग कलाकारों के बीच इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना) की सुविधा देना है.
- माउस और ट्रैकपैड स्क्रोलिंग को सभी स्क्रोलिंग कंटेनर में जोड़ दिया गया है.
वर्शन 1.2.0-rc03
29 जून, 2022
androidx.compose.foundation:foundation:1.2.0-rc03
और androidx.compose.foundation:foundation-layout:1.2.0-rc03
रिलीज़ हुई हैं. वर्शन 1.2.0-rc03 में ये कमिट हैं.
- 1.2.0-rc02 के बाद से कोई बदलाव नहीं किया गया है.
वर्शन 1.2.0-rc02
22 जून, 2022
androidx.compose.foundation:foundation:1.2.0-rc02
और androidx.compose.foundation:foundation-layout:1.2.0-rc02
रिलीज़ हुई हैं. वर्शन 1.2.0-rc02 में ये कमिट हैं.
वर्शन 1.2.0-rc01
15 जून, 2022
androidx.compose.foundation:foundation:1.2.0-rc01
और androidx.compose.foundation:foundation-layout:1.2.0-rc01
रिलीज़ हुई हैं. वर्शन 1.2.0-rc01 में ये कमिट शामिल हैं.
एपीआई में बदलाव
- कस्टम ओवरस्क्रोल इफ़ेक्ट का इस्तेमाल करने के लिए, एक्सपेरिमेंट के तौर पर उपलब्ध
OverscrollEffect
की सुविधा जोड़ी गई है. साथ ही, इसे स्वीकार करने वालेModifier.scrollable
ओवरलोड भी जोड़े गए हैं. - प्रयोगात्मक
LocalOverScrollConfiguration
कोfoundation.gesture
से फ़ाउंडेशन पैकेज में ले जाया गया है और इसका नाम बदलकरLocalOverscrollConfiguration
(If19fb, b/204650733) कर दिया गया है - लिखने की लाइब्रेरी में इंटरफ़ेस अब jdk8 डिफ़ॉल्ट इंटरफ़ेस तरीकों (I5bcf1) का इस्तेमाल करके बनाए जाते हैं
- एक्सपेरिमेंट के तौर पर उपलब्ध एक एपीआई
checkScrollableContainerConstraints()
लॉन्च किया गया. इसकी मदद से, यह पता लगाया जा सकता है कि हम स्क्रोल किए जा सकने वाले कंटेनर को नेस्ट नहीं करते हैं.LazyLayout
की मदद से, स्क्रोल करने वाले लेज़ी लेआउट बनाने के लिए, इसका इस्तेमाल किया जा सकता है. (Id6fab, b/233352497) androidx.compose.foundation.lazy
पैकेज से,LazyVerticalGrid
अब काम नहीं करता. नया स्थायी एपीआईandroidx.compose.foundation.lazy.grid
(I73c76, b/225192009) में मौजूद है
वर्शन 1.2.0-beta03
1 जून, 2022
androidx.compose.foundation:foundation:1.2.0-beta03
और androidx.compose.foundation:foundation-layout:1.2.0-beta03
रिलीज़ हुई हैं. वर्शन 1.2.0-beta03 में ये कमिट हैं.
एपीआई में बदलाव
- प्रयोग के तौर पर नया
IntervalList
औरMutableIntervalList
जोड़ा गया. इसकी मदद से, कई इंटरवल के ज़रिए वैल्यू की कुछ लिस्ट दिखाई जा सकती है. यह तब काम का होगा, जब आपकोLazyColumn
में इस्तेमाल किए गए डीएसएल से मिलते-जुलते डीएसएल तय करने हों. यहां सूची में मौजूद आइटम के बारे में, एक से ज़्यादा आइटम/आइटम कॉल के ज़रिए बताया जा सकता है. (I2d05e, b/228580728)
गड़बड़ियां ठीक की गईं
WindowInsets.ime
के दस्तावेज़ में साफ़ तौर पर बताया गया किime
इनसेट को एपीआई 23 के पुराने वर्शन के तौर पर रिपोर्ट किया गया है. हालांकि, ये 30 से ज़्यादा वर्शन पर ही ऐनिमेशन किए गए हैं. (Ia7fc0, b/230756508)- जब कर्सर टेक्स्ट फ़ील्ड के आखिर में हो, तो फ़ॉरवर्ड करने के बटन को दबाने से, अब कोई क्रैश नहीं होगा.
DeleteSurroundingTextCommand
औरDeleteSurroundingTextInCodePointsCommand
के लिए अब उनके कंस्ट्रक्टर आर्ग्युमेंट, गैर-ऋणात्मक होने चाहिए. (Ica8e6, b/199919707)
वर्शन 1.2.0-beta02
18 मई, 2022
androidx.compose.foundation:foundation:1.2.0-beta02
और androidx.compose.foundation:foundation-layout:1.2.0-beta02
रिलीज़ हुई हैं. वर्शन 1.2.0-beta02 में ये कमिट हैं.
- डाउनलोड किए जा सकने वाले फ़ॉन्ट का रिज़ॉल्यूशन, जिसके लेआउट के साइज़ में बदलाव नहीं होता या
TextField
पहले फिर से नहीं किया जा सका. इस वजह से, फ़ॉन्ट डिसप्ले खराब हो रहा है. यह बग समाधान यह पक्का करता है कि टेक्स्ट लेआउट हमेशा फिर से ड्रॉ (b/229727404) ट्रिगर करता हो. (I1d49e, b/229727404)
वर्शन 1.2.0-beta01
11 मई, 2022
androidx.compose.foundation:foundation:1.2.0-beta01
और androidx.compose.foundation:foundation-layout:1.2.0-beta01
रिलीज़ हुई हैं. वर्शन 1.2.0-beta01 में ये कमिट मौजूद हैं.
नई सुविधाएं
- यह 1.2 की पहली बीटा रिलीज़ है!
एपीआई में बदलाव
- इस्तेमाल के लिए, प्रयोग के तौर पर
BeyondBoundsInterval
को जोड़ा गया कस्टम तौर परLazyList
को लागू करना. ऐसा तब किया जाता है, जब वे आइटम को दिखने वाली सीमाओं से ज़्यादा लेआउट करते हैं (Ifabfb, b/184670295) LineHeightBehavior
का नाम बदलकरLineHeightStyle
कर दिया गया हैLineVerticalAlignment
का नाम बदलकरLineHeightStyle.Alignment
कर दिया गया हैLineHeightTrim
का नाम बदलकरLineHeightStyle.Trim
किया गयाLineHeightStyle
की डिफ़ॉल्ट कंस्ट्रक्टर वैल्यू हटा दी गई हैं (I582bf, b/181155707)LazyLayoutItemProvider
इंटरफ़ेस के वैकल्पिक सदस्यों के लिए डिफ़ॉल्ट वैल्यू जोड़ी गईं. (Iba8a0)LazyLayoutItemProvider
एपीआई में, इंडेक्स से कंपोज़ेबल लैम्डा दिखाने वाली फ़ैक्ट्री के बजाय, अब हमारे पास इंडेक्स को स्वीकार करने वाला एक आसान कंपोज़ेबल फ़ंक्शन आइटम है. (आईडी2196)- LazyLayoutitemProvider का नाम बदलकर, LazyLayoutItemProvider (I0638c) कर दिया गया
LazyLayoutItemsProvider.itemsCount
का नाम बदलकरitemCount
(Id409c) कर दिया गया है- ग्रेडिएंट कलरिंग का इस्तेमाल करके टेक्स्ट बनाने का तरीका देने के लिए,
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)प्रयोग के तौर पर
imeNestedScroll()
मॉडिफ़ायर जोड़ा गया, ताकि डेवलपर स्क्रोल करके IME को कंट्रोल कर सकें. (I60759)
गड़बड़ियां ठीक की गईं
- फ़िक्स्ड रिग्रेशन जहां फ़ोकस किए जाने के दौरान कंपोज़िशन से हटाए जाने पर टेक्स्ट फ़ील्ड कीबोर्ड नहीं छिपाते. (I7a410, b/230536793, b/225541817)
- ऊंचाई सीमित होने और सभी टेक्स्ट लाइनों में फ़िट न होने पर, एलिप्सिस का इस्तेमाल किया जा सकता है (Ie528c, b/168720622)
BringIntoViewRequester.bringIntoView
हमेशा तब तक निलंबित रहेगा, जब तक अनुरोध पूरा नहीं हो जाता या उस पर किसी नए और ओवरलैप न होने वाले अनुरोध की वजह से रुकावट नहीं आती. ओवरलैप होने वाले अनुरोधों को सूची में जोड़ दिया जाएगा. (I43e7f, b/216790855)- पूरी तरह ओवरलैप करने वाली आयतों के लिए समवर्ती
BringIntoViewRequester.bringIntoView
कॉल अब केवल एक बड़े रेक्टैंगल के अनुरोध को स्वीकार करना. (I34be7, b/216790855, b/184760918) includeFontPadding
डिफ़ॉल्ट सेटिंग चालू की गई है.TextStyle.platformTextStyle
एट्रिब्यूट का इस्तेमाल करके,includeFontPadding
को बंद किया जा सकता है. आने वाले समय में हम डिफ़ॉल्ट व्यवहार को बदल देंगे. हालांकि, इससे हमें लाइन की ऊंचाई में सुधार (aosp/2058653) को बेहतर तरीके से इंटिग्रेट करने और क्लिप बनाने से जुड़ीTextField
समस्याओं को हल करने में मदद मिलेगी. (I01423, b/171394808)Modifier.bringIntoViewRequester
अबonGloballyPositioned
का इस्तेमाल नहीं करता है. (I630f5)
बाहरी योगदान
- अगर हम वर्टिकल तरीके से स्क्रोल करते हैं, तो
MouseInjectionScope.scroll(delta = someDelta)
अब Android पर उलटा हो जाता है (अगर कुछ Delta पॉज़िटिव है, तो वह नीचे की ओर स्क्रोल होगा) (Ifb697, b/224992993)
वर्शन 1.2.0-alpha08
20 अप्रैल, 2022
androidx.compose.foundation:foundation:1.2.0-alpha08
और androidx.compose.foundation:foundation-layout:1.2.0-alpha08
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha08 में ये कमियां हैं.
एपीआई में बदलाव
FontFamily.SansSerif
का इस्तेमाल करते समय, Android पर सिस्टम फ़ॉन्ट के लिए उपलब्ध सभी वज़न दिखाएं. यह API 21-28 पर आंतरिक रूप से San-Serif-medium जैसे फ़ॉलबैक फ़ॉन्ट नामों का इस्तेमाल करेगा. यह व्यवहार में बदलाव है, क्योंकि पहले सिर्फ़ एपीआई 21-28 पर वेट 400 और 700 काम करते थे. (I380fe, b/156048036, b/226441992)- पैराग्राफ़ और मल्टीपैराग्राफ़ अब Constraints पैरामीटर को स्वीकार कर रहे हैं. फ़िलहाल,
Constraints.maxHeight
पास करने में कोई समस्या नहीं है, लेकिन भविष्य में कुछ कैलकुलेशन करें, जैसे कि ऊंचाई के आधार पर एलिप्सेस करना. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
अब कस्टम म्यूटेबलसेट-जैसी क्लास स्वीकार करता है जो इसमें नए आइटम जोड़ने की अनुमति नहीं देती है. (Icd314)PointerInputChange
में कुछ हद तक इस्तेमाल (डाउन या पोज़िशन) पर रोक लगा दी गई है. इस बदलाव का पूरा इस्तेमाल करने के लिए,consume()
का इस्तेमाल किया जा सकता है.isConsumed
का इस्तेमाल करके, यह पता लगाया जा सकता है कि पहले किसी दूसरे व्यक्ति ने इस बदलाव का इस्तेमाल किया है या नहीं.PointerInputChange::copy()
अब हमेशा कम जानकारी वाली कॉपी बनाता है. इसका मतलब है कि अगर किसी वीडियो की कॉपी मिटा दी जाती है, तो उस वीडियो कीPointerInputChange
कॉपी इस्तेमाल कर ली जाएंगी. अगर आपको अनबाउंडPointerInputChange
बनाना है, तो इसके बजाय कंस्ट्रक्टर का इस्तेमाल करें. (Ie6be4, b/225669674)- एक्सपेरिमेंट के तौर पर उपलब्ध नया
LazyLayout
एपीआई लॉन्च किया गया. इससे आपको अपने कॉम्पोनेंट बनाने की सुविधा मिलती है, जैसे किLazyVerticalGrid
केLazyColumn
. ध्यान दें कि यह एपीआई शुरुआती दौर में है और आने वाले समय में इसे अपडेट किया जा सकता है. (Iba2bc, b/166591700) AndroidFont
, अबtypefaceLoader
को कंस्ट्रक्टर पैरामीटर के तौर पर इस्तेमाल करता है. (I2c971)WindowInsets
कंपैनियन मोड, अब स्क्रीन पर दिख रहा है (चाहे वह स्क्रीन पर हो या न हो, भले ही वह विंडो में दिख रहा हो) और डिवाइस पर उपलब्ध होने पर उसका साइज़ दिखाता है. हालांकि, यह फ़िलहाल चालू नहीं है. (I65182, b/217770337)
वर्शन 1.2.0-alpha07
6 अप्रैल, 2022
androidx.compose.foundation:foundation:1.2.0-alpha07
और androidx.compose.foundation:foundation-layout:1.2.0-alpha07
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha07 में ये कमिट हैं.
एपीआई में बदलाव
- एक
PinnableParent
एपीआई जोड़ा गया, जो लेज़ी लेआउट के बच्चों को, हाल ही में बनाए गए आइटम को नष्ट होने से रोकने की अनुमति देता है (Ibbdd0, b/184670295) LazyListLayoutInfo
औरLazyGridLayoutInfo
में अबbeforeContentPadding
औरafterContentPadding
फ़ील्ड हैं (I3b628, b/200920410)- खास तौर पर, IME में दशमलव सेपरेटर को शामिल करने के लिए,
KeyboardType.Decimal
कोKeyboard.Number
के विकल्प के तौर पर जोड़ा गया. (Iec4c8, b/209835363) - नया फ़ॉन्ट डिस्क्रिप्टर फ़ॉन्ट(DeviceFontFamilyName) जोड़ें फ़ॉन्ट फ़ॉलबैक चेन के दौरान, वैकल्पिक रूप से सिस्टम में इंस्टॉल किए गए फ़ॉन्ट खोजे जा सकते हैं. (I30468, b/219754572)
PointerEventType.Scroll
औरPointerEvent.scrollDelta
अब स्टेबल एपीआई हैं (I574c5, b/225669674)TextStyle/ParagraphStyle. includeFontPadding
में,includeFontPadding
के साथ काम करने से जुड़ा अस्थायी कॉन्फ़िगरेशन जोड़ा गया है. इसेTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
के ज़रिए बदला जा सकता है. यह, माइग्रेशन की सुविधा को चालू करने के लिए कुछ समय के लिए उपलब्ध कॉन्फ़िगरेशन का विकल्प है. इसे हटा दिया जाएगा. (If47be, b/171394808)- पूरे सिस्टम पर बोल्ड टेक्स्ट की सुलभता सेटिंग (I6c1e7) को इंटिग्रेट करने के लिए,
FontFamily.Resolver
को अपडेट किया गया ComposeView
कीconsumeWindowInsets
एक्सटेंशन प्रॉपर्टी की मदद से डेवलपर, Android WindowInsets के इस्तेमाल की सुविधा बंद कर सकते हैं. इससे हर एकWindowInsets
को लागू करने के लिए, क्रम में अलग-अलगComposeViews
का इस्तेमाल किया जा सकता है. इसके लिए एक-दूसरे की ज़रूरत नहीं पड़ती. (I0ef08, b/220943142)
वर्शन 1.2.0-alpha06
23 मार्च, 2022
androidx.compose.foundation:foundation:1.2.0-alpha06
और androidx.compose.foundation:foundation-layout:1.2.0-alpha06
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha06 में ये कमियां हैं.
एपीआई में बदलाव
- फ़ोकस करने लायक टारगेट पर फ़ोकस करने के अनुरोध के लिए,
RequestFocus
सिमेंटिक्स कार्रवाई जोड़ी गई. (I17b71) FocusOrder
को अबFocusProperties
में मर्ज कर दिया गया है औरfocusProperties()
के पास अबfocusOrder()
से जुड़ी सभी सुविधाएं हैं.FocusOrder
औरfocusOrder()
के इस्तेमाल पर रोक लगा दी गई है.focusRequester
को स्वीकार करने वालेfocusOrder()
कोfocusProperties()
के साथ,focusRequester()
मॉडिफ़ायर से बदला जाना चाहिए. इससे मॉडिफ़ायर को बेहतर बनाने में मदद मिलती है. (I601b7)WindowInsets.asPaddingValues(Density)
को इसलिए जोड़ा गया, ताकि डेवलपर बिना कंपोज़िशन में शामिल हुए कन्वर्ज़न कर सकें. (I94c35)- अगर मौजूदा लेआउट हो, तो
VectorPainter
का कॉन्टेंट फ़्लिप करने के लिए, वेक्टर ड्रॉ करने लायक एलिमेंट की पार्सिंग अपडेट की गई दिशा RTL है. (I79cd9, b/185760237)
गड़बड़ियां ठीक की गईं
- अगर स्क्रोल किए जाने वाले हिस्से का साइज़ बदला जाता है और फ़ोकस किए गए कंपोज़ेबल पहले दिखते हैं, तो स्क्रोल मॉडिफ़ायर (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
, औरModifier.scrollable()
) अब स्क्रोल करके, फ़ोकस किए गए कंपोज़ेबल दिखते रहेंगे. - फ़ोकस किए गए होने और कीबोर्ड दिखाने पर, टेक्स्ट फ़ील्ड को अब कीबोर्ड के ऊपर रखा जाएगा. ऐसा तब होगा, जब लेज़ी स्क्रोल नहीं किया जा सकेगा और सॉफ़्ट इनपुट मोड
ADJUST_RESIZE
हो. (I4a485, b/190539358, b/192043120, b/216842427)
वर्शन 1.2.0-alpha05
9 मार्च, 2022
androidx.compose.foundation:foundation:1.2.0-alpha05
और androidx.compose.foundation:foundation-layout:1.2.0-alpha05
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha05 में ये कमियां हैं.
एपीआई में बदलाव
LazyVerticalGrid
औरLazyHorizontalGrid
की स्थिति में अब कोई बदलाव नहीं हुआ है. (I307c0)LazyGridItemInfo.Unknown
को अलगLazyGridItemInfo.UnknownRow
औरLazyGridItemInfo.UnknownColumn
(I56d51) से बदल दिया गया थाLazyVerticalGrid
/LazyHorizontalGrid
और इससे जुड़े सभी एपीआई,.grid
सबपैकेज में ले जाए गए. कृपया अपने इंपोर्ट कोandroidx.compose.foundation.lazy
सेandroidx.compose.foundation.lazy.grid
में अपडेट करें. (I2d446, b/219942574)- टेक्स्ट:
includeFontPadding
अब डिफ़ॉल्ट रूप से बंद है. कॉन्टेंट बनानेincludeFontPadding=false
की वजह से क्लिप बनाने से जुड़ी समस्याएं ठीक की गईं साथ ही, लंबी स्क्रिप्ट के लिए कोई क्लिपिंग नहीं होनी चाहिए. (I31c84, b/171394808) - मेज़र किया गया इंटरफ़ेस अब parentData प्रॉपर्टी (I3313f) को दिखाता है
- अनुमति देने के लिए, प्रयोग के तौर पर
Modifier.onFocusedBoundsChanged
का इस्तेमाल शुरू किया गया बच्चों का ध्यान खींचने वाली चीज़ों को ध्यान में रखकर वीडियो बनाए जाते हैं. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - लेज़ी हॉरिज़ॉन्टलGrid जोड़ा गया. (I61ae7, b/191238807)
- क्रॉस-ऐक्सिस के साइज़ तय करने के लिए, नया
LazyVerticalGrid
एपीआई जोड़ा गया (I17723) - फ़ोकस ग्रुप मॉडिफ़ायर जोड़ा गया (I64bc0, b/213508274, b/184670295)
गड़बड़ियां ठीक की गईं
WindowInsets.toString()
अब सही वैल्यू दिखाएगा. (I1585d)
बाहरी योगदान
- Kotlinx कोरूटीन 1.6.0 (I3366d) का इस्तेमाल करने के लिए अपडेट किया गया
वर्शन 1.2.0-alpha04
23 फ़रवरी, 2022
androidx.compose.foundation:foundation:1.2.0-alpha04
और androidx.compose.foundation:foundation-layout:1.2.0-alpha04
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha04 में ये कमियां हैं.
एपीआई में बदलाव
- अब मैन्युअल तरीके से
BringIntoViewResponders
की ज़रूरत नहीं है इसके लिए यह ज़रूरी है कि आप माता-पिता के तौर पर जवाब देने वाले लोगों को अनुरोध भेजें. वह आयत तुरंत लौटा दे जो वे अपने माता-पिता से लाना चाहते हैं में जोड़ा जा सकता है. (I8e66a) - टेक्स्ट में एक साथ काम नहीं करने वाले फ़ॉन्ट लोड करने की सुविधा (I77057, b/214587005)
LazyVerticalGrid
अब उन आइटम से पहलेline breaking
का इस्तेमाल करता है जिनका स्पैन, मौजूदा लाइन में फ़िट नहीं हो रहा है. (I05c40, b/207462103)excludeFromSystemGestures
का नाम बदलकरsystemGesturesExclusion
किया गया (I19526)- अब
LazyVerticalGrid
में रिवर्स लेआउट का इस्तेमाल किया जा सकता है. (I6d7d7, b/215572963, b/211753558) - डेवलपर को अनुमति देने के लिए,
WindowInsets.only()
तरीका जोड़ें का इस्तेमाल करें. (I14c94, b/217768486) ComposableTarget
,ComposableTargetMarker
, और लोगों को जोड़ा गयाComposableOpenTarget
जो कब के समय की रिपोर्टिंग को इकट्ठा करने की अनुमति देता है कंपोज़ेबल फ़ंक्शन को किसी ऐसे एप्लीयर को टारगेट करना कहते हैं जो पहले नहीं था जिन्हें इस्तेमाल करने के लिए डिज़ाइन किया गया है.ज़्यादातर मामलों में एनोटेशन का अनुमान लगाने के लिए, कंपाइलर प्लगिन इसलिए यह ज़रूरी है कि इन एनोटेशन का सीधे इस्तेमाल करने पर दुर्लभ . जिन मामलों का अनुमान नहीं लगाया जा सकता उनमें बनाना और एक कस्टम उपकरणर, ऐब्स्ट्रैक्ट कंपोज़ेबल फ़ंक्शन का इस्तेमाल करके, जैसे कि इंटरफ़ेस मेथड), फ़ील्ड या ग्लोबल वैरिएबल कंपोज़ेबल लैम्डा (लोकल वैरिएबल और पैरामीटर का अनुमान लगाया जाता है), या
ComposeNode
या इससे जुड़े कंपोज़ेबल फ़ंक्शन का इस्तेमाल करते समय.कस्टम ऐप्लायर के लिए, कंपोज़ेबल फ़ंक्शन
ComposeNode
याReusableComposeNode
को जोड़ने की ज़रूरत है फ़ंक्शन और किसी भी फ़ंक्शन के लिए,CompoableTarget
एनोटेशन कंपोज़ेबल लैम्डा पैरामीटर प्रकार. हालांकि, हमारा सुझाव है कि के साथ एक ऐसी व्याख्या बनाएंComposableTargetMarker
और फिर मार्क की गई जानकारी का इस्तेमाल करेंComposableTarget
लिखने के बजाय बनाया गया है. कंपोज़ेबल एनोटेशनComposableTargetMarker
से मार्क की गई वैल्यू, इसके बराबर है एट्रिब्यूट के पूरी तरह क्वालिफ़ाइड नाम के साथComposbleTarget
क्लास का इस्तेमाल applier पैरामीटर के तौर पर करें. उदाहरण के लिए,ComposableTargetMarker
anroidx.compose.ui.UiComposable
देखें. (I38f11)
गड़बड़ियां ठीक की गईं
- अब नेगेटिव स्क्रोल ऑफ़सेट को
LazyGridState.scrollToItem()
औरLazyGridState.animateScrollToItem()
में पास करने की अनुमति है. (I025c6, b/211753558) - TextField के लिए एक साथ काम नहीं करने वाली फ़ॉन्ट लोडिंग का समर्थन करें. (Icc4bf, b/214587005)
वर्शन 1.2.0-alpha03
9 फ़रवरी, 2022
androidx.compose.foundation:foundation:1.2.0-alpha03
और androidx.compose.foundation:foundation-layout:1.2.0-alpha03
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha03 में ये कमियां हैं.
एपीआई में बदलाव
TextInputSession
मेंnotifyFocusedRect
तरीके औरTextInputService
के इस्तेमाल पर रोक लगा दी गई है और उन्हें कॉल नहीं किया जाएगा. इस्तेमाल की जाने वाली चीज़ें अगर आपके पास इन फ़ॉर्मैट की फ़ाइल नहीं है, तोBringIntoViewRequester
बटन का इस्तेमाल करें. (Ia4302, b/192043120, b/216842427, b/178211874)- Modifier.animateItemplacement() के साथ लेज़ी ग्रिड के आइटम के लिए ऐनिमेशन चालू किए गए. (Ib6621, b/211753218)
BringIntoViewRequester
अब होस्टिंग को अनुरोधों को भेजता है Android व्यू. (Ia7a51)FontFamilyResolver
अब इसके ज़रिए उपलब्ध है:LocalFontFamilyResolver.current
createFontFamilyResolver(context)
और को जोड़ा गया नया बनाने के लिएcreateFontFamilyResolver(context, coroutineScope)
ऐसा फ़ॉन्ट फ़ैमिली रिज़ॉल्वर, जिसमें कंपोज़ की सुविधा का इस्तेमाल नहीं किया जा सकता.- पैराग्राफ़ और मल्टीपैराग्राफ़ अब
FontFamily.Resolver
लेते हैं TextLayoutResult.layoutInput.fontFamilyResolver
में अब यह शामिल है इस लेआउट के लिए इस्तेमाल किया गया रिज़ॉल्वर, जो अब काम नहीं करताTextLayoutResult.layoutInput.resourceLoader
का इस्तेमाल नहीं किया जा रहा है. (Id5a45, 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) का इस्तेमाल करें
- अब
LazyVerticalGrid
के आइटम के लिए कॉन्टेंट का टाइप तय किया जा सकता है -LazyGridScope
पर मौजूद item/items फ़ंक्शन अब ऐसे पैरामीटर को स्वीकार करते हैं. इस तरह की जानकारी देने से, आइटम कंपोज़िशन के लिए लॉजिक का फिर से इस्तेमाल किया जा सकता है. इससे वह बेहतर तरीके से काम कर पाता है और कॉन्टेंट को सिर्फ़ एक तरह के आइटम के लिए दोबारा इस्तेमाल कर सकता है. (I7b355, b/215372836) LazyListLayoutInfo
औरLazyGridLayoutInfo
में अब नई प्रॉपर्टी जोड़ दी गई हैं:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410)- अब आपके पास Laज़ीकॉलम/LazyRow के आइटम के लिए कॉन्टेंट टाइप तय करने का विकल्प है - LaZListScope के आइटम/आइटम फ़ंक्शन अब ऐसे पैरामीटर को स्वीकार करते हैं. इस तरह की जानकारी देने से, आइटम कंपोज़िशन के लिए लॉजिक का फिर से इस्तेमाल किया जा सकता है. इससे वह बेहतर तरीके से काम कर पाता है और कॉन्टेंट को सिर्फ़ एक तरह के आइटम के लिए दोबारा इस्तेमाल कर सकता है. (I26506)
maxSlotsToRetainForReuse
को स्वीकार करने वालाSubcomposeLayoutState
कंस्ट्रक्टर अब काम नहीं करता. इसके बजाय एक नया कंस्ट्रक्टर है, जोSubcomposeSlotReusePolicy
को स्वीकार करता है - एक नया इंटरफ़ेस, जो इस बात पर ज़्यादा बेहतर कंट्रोल देता है कि आने वाले समय में फिर से इस्तेमाल करने के लिए, कौनसे स्लॉट सेव करके रखने चाहिए. (I52c4d)- पैडिंग के लिए, WindowInsets के लिए मॉडिफ़ायर जोड़ता है और साइज़ देना. इससे कुछ कॉन्टेंट को इनसेट एरिया में बढ़ाया जा सकता है, और मुख्य कॉन्टेंट को इनसेट एरिया से बाहर रखा गया हो. उदाहरण के लिए, कॉन्टेंट कोपैड करने के लिए windowInsetsPadding का इस्तेमाल किया जा सकता है पूरा या आंशिक तौर पर कवर किए जा सकने वाले इलाकों से बचने के लिए. (Id0395, b/213942085)
गड़बड़ियां ठीक की गईं
- टेक्स्ट फ़ील्ड को अब कीबोर्ड के ऊपर तब रखा जाएगा, जब वे
जब सॉफ़्ट इनपुट मोड चालू होता है, तब इस पर फ़ोकस किया जाता है और कीबोर्ड दिखता है
ADJUST_PAN
. (I8eaeb, b/190539358, b/192043120) - डेस्कटॉप,
FontFamily.Resolver
के लिए कंपोज़िशन स्थानीय का इस्तेमाल करता हैFontLoader
डेस्कटॉप अब काम नहीं करता- डेस्कटॉप पर नई
createFontFamilyResolver
फ़ैक्ट्री (I6bbbb, b/174162090)
- सॉफ़्ट कीबोर्ड इनपुट टाइप को बदलते समय, अब फ़्लिकर नहीं होता टेक्स्ट फ़ील्ड के बीच फ़ोकस करें. (I1bf50, b/187746439)
- टेक्स्ट फ़ील्ड को अब और पीछे दबाए रखने की ज़रूरत नहीं है कर्सर हैंडल दिख रहा है. (Ideb4b, b/205726883)
- टेक्स्ट को बड़ा करके दिखाने की सुविधा के व्यवहार को इस तरह बेहतर बनाया गया है कॉन्टेंट को बड़ा करके दिखाने की सुविधा से मेल खा सकती है. (Idd918, b/206833278)
वर्शन 1.2.0-alpha02
26 जनवरी, 2022
androidx.compose.foundation:foundation:1.2.0-alpha02
और androidx.compose.foundation:foundation-layout:1.2.0-alpha02
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
- ओवरलोड वाले तरीकों में
NonRestartableComposable
को जोड़ा गया इस्तेमाल कर सकते हैं. यह कंपाइलर को कम करता है उन सभी पैरामीटर के लिए जनरेट की गई मेमोाइज़ेशन जांच (इसके बराबर है) को अंदरूनी फ़ंक्शन में दोहराया जाता है. (I90490) - इसके लिए
excludeFromSystemGesture
मॉडिफ़ायर जोड़े गए Android केsetSystemGestureExclusionRects
(I46f07) को आसानी से ऐक्सेस करें
गड़बड़ियां ठीक की गईं
- टेक्स्ट को बड़ा करके दिखाने की सुविधा के व्यवहार को इस तरह बेहतर बनाया गया है कॉन्टेंट को बड़ा करके दिखाने की सुविधा से मेल खा सकती है. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
, औरModifier.scrollable
का इस्तेमाल करने वाले अन्य कंटेनर, अब माउस व्हील स्क्रोलिंग की सुविधा देते हैं. (I2b5e1, b/198214718)
वर्शन 1.2.0-alpha01
12 जनवरी, 2022
androidx.compose.foundation:foundation:1.2.0-alpha01
और androidx.compose.foundation:foundation-layout:1.2.0-alpha01
रिलीज़ हुई हैं. वर्शन 1.2.0-alpha01 में ये कमियां हैं.
एपीआई में बदलाव
LazyColumn
,LazyRow
, औरLazyVerticalGrid
में नया पैरामीटरuserScrollEnabled
जोड़ा गया. इससे उपयोगकर्ताओं को हाथ के जेस्चर या सुलभता से जुड़ी कार्रवाइयों की मदद से, स्क्रोल करने की सुविधा को कुछ समय या हमेशा के लिए बंद करने की अनुमति मिल जाएगी. हालांकि, स्थिति पर बताए गए तरीके से प्रोग्राम के हिसाब से स्क्रोल करने की अनुमति अब भी रहेगी. (I7eae9, b/201150093)- कॉन्टेंट को बड़ा करके दिखाने की सुविधा में
onSizeChanged
कॉलबैक जोड़ें. (I6879f) - चुने गए हिस्से को खींचकर छोड़ने पर, अब कॉन्टेंट को बड़ा करके दिखाने वाला विजेट दिखेगा
SelectionContainer
में हैंडल करता है. (I30b38, b/139320979)
गड़बड़ियां ठीक की गईं
TextField
के कर्सर हैंडल को ठीक करता है, ताकि पेज से बाहर की ओर स्क्रोल करने पर यह हैंडल छिप न जाए व्यू. (I14552, b/208883748)
डिपेंडेंसी से जुड़े अपडेट
- अब Kotlin
1.6.10
पर निर्भर करता है.
वर्शन 1.1
वर्शन 1.1.1
23 फ़रवरी, 2022
androidx.compose.foundation:foundation:1.1.1
और androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0
और androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0-rc03
और androidx.compose.foundation:foundation-layout:1.1.0-rc03
रिलीज़ हुई हैं. वर्शन 1.1.0-rc03 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- Compose Material 1.1.0-rc03 के साथ काम करने के लिए अपडेट किया गया
वर्शन 1.1.0-rc01
15 दिसंबर, 2021
androidx.compose.foundation:foundation:1.1.0-rc01
और androidx.compose.foundation:foundation-layout:1.1.0-rc01
रिलीज़ हुई हैं. वर्शन 1.1.0-rc01 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- अब नेगेटिव स्क्रोल ऑफ़सेट को
LazyListState.scrollToItem()
औरLazyListState.animateScrollToItem()
में पास करने की अनुमति है. (Iceb90, b/184252837) - उस गड़बड़ी को ठीक किया गया जिसकी वजह से सुलभता स्क्रोल करने पर कार्रवाइयां नहीं की जा रही थीं (I7cbfb)
वर्शन 1.1.0-beta04
1 दिसंबर, 2021
androidx.compose.foundation:foundation:1.1.0-beta04
और androidx.compose.foundation:foundation-layout:1.1.0-beta04
रिलीज़ हुई हैं. वर्शन 1.1.0-beta04 में ये कमिट हैं.
नई सुविधाएं
- Kotlin
1.6.0
के साथ काम करने के लिए अपडेट किया गया
एपीआई में बदलाव
androidx.core.view
(I7078a, b/204917439) में शून्य की संख्या को हटाया गया- प्रयोग के तौर पर इस्तेमाल किए जाने वाले एपीआई जोड़े गए थे, जो Pointerइनपुटचेंज का पूरा इस्तेमाल करने की अनुमति देते हैं. इसके अलावा, यह भी देखा जा सकता है कि इसका इस्तेमाल किया गया है या नहीं. (I2e59d)
- कर्सर को खींचते समय, ज़ूम करने की सुविधा वाला विजेट दिखाएं या टेक्स्ट फ़ील्ड के अंदर हैंडल बनाता है. (I5391e, b/203781358)
गड़बड़ियां ठीक की गईं
- IME के दिखने की सेटिंग में बदलाव होने पर, न हिलने वाले टेक्स्ट हैंडल की समस्या ठीक करें. (I25f2e)
वर्शन 1.1.0-beta03
17 नवंबर, 2021
androidx.compose.foundation:foundation:1.1.0-beta03
और androidx.compose.foundation:foundation-layout:1.1.0-beta03
रिलीज़ हुई हैं. वर्शन 1.1.0-beta03 में ये कमिट शामिल हैं.
एपीआई में बदलाव
- LazyVerticalGrid में हॉरिज़ॉन्टल स्पैन की सुविधा जोड़ी गई. (I7e2fa, b/176758183)
प्रयोग के तौर पर, आइटम की लेज़ी लिस्ट को ऐनिमेट करने की सुविधा जोड़ी गई. LazyItemScope में
Modifier.animateItemPlacement()
नाम का एक नया मॉडिफ़ायर उपलब्ध है. इस्तेमाल का उदाहरण:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
LazyListScope.item
याLazyListScope.items
की मदद से कोई कुंजी देने पर, यह कार्रवाई बदलने वाली कुंजी चालू होने पर ऐनिमेशन का क्रम बदलने की सुविधा चालू हो जाएगी. व्यवस्था या अलाइनमेंट जैसे इवेंट की वजह से होने वाले दूसरे सभी बदलावों का क्रम बदलने के साथ-साथ, आइटम को भी ऐनिमेट किया जाएगा. (I59e7b, b/150812265)
वर्शन 1.1.0-beta02
3 नवंबर, 2021
androidx.compose.foundation:foundation:1.1.0-beta02
और androidx.compose.foundation:foundation-layout:1.1.0-beta02
रिलीज़ हुई हैं. वर्शन 1.1.0-beta02 में ये तय किए गए हिस्से शामिल हैं.
गड़बड़ियां ठीक की गईं
- रिपल्स और अन्य संकेतों को दिखाने में अब सिर्फ़ तब देरी होगी, जब वे
Modifier.scrollable()
कंटेनर के अंदर होंगे. इससे, डाउन इवेंट में हमेशा देरी नहीं होगी. (Ibefe0, b/203141462) - प्रयोग के तौर पर BringIntoView API जोड़ा गया. इसकी मदद से, माता-पिता को अनुरोध भेजा जा सकता है, ताकि वे किसी आइटम को देखने के लिए उसे स्क्रोल कर सकें (Ib918d, b/195353459)
बाहरी योगदान
Modifier.pointerHoverIcon
(I95f01) को जोड़ा गया
वर्शन 1.1.0-beta01
27 अक्टूबर, 2021
androidx.compose.foundation:foundation:1.1.0-beta01
और androidx.compose.foundation:foundation-layout:1.1.0-beta01
रिलीज़ हुई हैं. वर्शन 1.1.0-beta01 में ये कमिट हैं.
गड़बड़ियां ठीक की गईं
- प्रयोग के तौर पर BringIntoView API जोड़ा गया. इसकी मदद से, माता-पिता को अनुरोध भेजा जा सकता है, ताकि वे किसी आइटम को देखने के लिए उसे स्क्रोल कर सकें (Ib918d, b/195353459)
वर्शन 1.1.0-alpha06
13 अक्टूबर, 2021
androidx.compose.foundation:foundation:1.1.0-alpha06
और androidx.compose.foundation:foundation-layout:1.1.0-alpha06
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha06 में ये कमियां हैं.
एपीआई में बदलाव
- लेआउट के लिए चाइल्ड-लेस ओवरलोड जोड़ा गया. साथ ही, इसकी क्षमता को बेहतर बनाया गया (Ib0d9a)
SemanticsNodeInteraction.performSemanticsAction
का शुल्क अब वापस आ गया हैSemanticsNodeInteraction
जिस पर फ़ंक्शन को कॉल किया गया था. (I9e5db)- उसे
performScrollToNode(matcher: SemanticsMatcher)
जोड़ा स्क्रोल करने लायक कंटेनर को उस कॉन्टेंट पर स्क्रोल करता है जो दिया गया मैचर. (Ic1cb8)
वर्शन 1.1.0-alpha05
29 सितंबर, 2021
androidx.compose.foundation:foundation:1.1.0-alpha05
और androidx.compose.foundation:foundation-layout:1.1.0-alpha05
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha05 में ये कमियां हैं.
एपीआई में बदलाव
- PointerEventChange में, प्रयोग के तौर पर उपलब्ध पुराने पॉइंटर जोड़े गए. (Ic1fd8, b/197553056, b/199921305)
गड़बड़ियां ठीक की गईं
- स्क्रोल करने लायक (लेज़ी और नॉन-लेज़ी) और स्क्रोलिंग के हिसाब से (I6cdb0)
वर्शन 1.1.0-alpha04
15 सितंबर, 2021
androidx.compose.foundation:foundation:1.1.0-alpha04
और androidx.compose.foundation:foundation-layout:1.1.0-alpha04
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha04 में ये कमियां हैं.
एपीआई में बदलाव
performGesture
औरGestureScope
अब सेवा में नहीं हैं. इनमें ये शामिल हैंperformTouchInput
औरTouchInjectionScope
से बदल दिया गया है. (Ia5f3f, b/190493367)SemanticsNode
मेंtouchBoundsInRoot
को जोड़ा में कम से कम टच टारगेट साइज़ शामिल होता है, ताकि डेवलपर यह भी पक्का किया जा सकता है कि टच टारगेट (स्क्रीन के वे हिस्से जहां छूने पर कोई कार्रवाई होती है) सुलभता के कम से कम थ्रेशोल्ड को पूरा करते हैं. (I2e14b, b/197751214)
गड़बड़ियां ठीक की गईं
- Android 12 डिवाइसों पर, स्ट्रेच ओवरस्क्रोल की सुविधा जोड़ दी गई है. (Iccf3c, b/171682480)
वर्शन 1.1.0-alpha03
1 सितंबर, 2021
androidx.compose.foundation:foundation:1.1.0-alpha03
और androidx.compose.foundation:foundation-layout:1.1.0-alpha03
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha03 में ये कमियां हैं.
नई सुविधाएं
- Kotlin
1.5.30
पर निर्भर करने के लिए, कंपोज़1.1.0-alpha03
को अपडेट किया गया. (I74545)
एपीआई में बदलाव
- स्क्रोल करने के लिए ग्लो इफ़ेक्ट जोड़ा गया. ओवरस्क्रोल विज़ुअल इफ़ेक्ट को कॉन्फ़िगर करने की अनुमति देने के लिए, नया प्रयोग के तौर पर OverscrollConfiguration एपीआई जोड़ा गया है. ओवरस्क्रोल इफ़ेक्ट को बंद करने के लिए, खाली सेल डालें. (I0c304, b/171682480)
- AwaitPointerEventScope में अब withTimeout() सुविधा उपलब्ध है और TimeoutOrNull() (I507f0, b/179239764, b/182397793) के साथ
- क्लिप की गई सीमाएं पाने के लिए, जांच का तरीका जोड़ा गया. (I6b28e)
- ViewConfiguration में कम से कम टच टारगेट साइज़ जोड़ा गया को सिमैंटिक और पॉइंटर इनपुट में इस्तेमाल किया जा सकता है. (Ie861c)
वर्शन 1.1.0-alpha02
18 अगस्त, 2021
androidx.compose.foundation:foundation:1.1.0-alpha02
और androidx.compose.foundation:foundation-layout:1.1.0-alpha02
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha02 में ये कमियां हैं.
एपीआई में बदलाव
Modifier.size
औरrequiredSize
(I3fc7e, b/194219828) के लिए DpSize वर्शन जोड़े गए
वर्शन 1.1.0-alpha01
4 अगस्त, 2021
androidx.compose.foundation:foundation:1.1.0-alpha01
और androidx.compose.foundation:foundation-layout:1.1.0-alpha01
रिलीज़ हुई हैं. वर्शन 1.1.0-alpha01 में ये कमियां हैं.
एपीआई में बदलाव
DrawScope#drawImage
तरीका अपडेट किया गया सोर्स और डेस्टिनेशन रेक्टैंगल का इस्तेमाल करता है फ़िल्टर क्वालिटी का इस्तेमाल करने के लिए पैरामीटर. यह Pixel के लिए काम का है पिक्सलेट करने के लिए डिज़ाइन किया गया आर्ट जब इसे पिक्सल आधारित आर्ट के लिए बढ़ाया जा सकता हो. अपडेट किया गया BitmapPainter + इमेज कंपोज़ेबल इसके अलावा, फ़िल्टर क्वालिटी का एक वैकल्पिक फ़िल्टर भी इस्तेमाल किया जा सकता है. पैरामीटर (Ie4fb0, b/180311607)- 'वापस जाएं' बटन दबाने पर, टेक्स्ट फ़ील्ड में चुने गए विकल्प को हटाया जाता है जो AndroidEditText के व्यवहार से मेल खाता है. (I3ca16, b/174173645)
- कर्सर हैंडल जोड़ें. (I07a82, b/173016579)
गड़बड़ियां ठीक की गईं
- लेज़ी सूचियों और नियमित तौर पर स्क्रोल करने वाले कॉम्पोनेंट के लिए, सिमैंटिक ऐक्शन के ज़रिए स्क्रोल करने की सुविधा अब ऐनिमेटेड हो गई है (Id9066, b/190742024)
बाहरी योगदान
LazyVerticalGrid
पर अब हॉरिज़ॉन्टल और वर्टिकल, दोनों तरह के पैरामीटर स्वीकार किए जा सकते हैं. (If9c92)
संस्करण 1.0
वर्शन 1.0.5
3 नवंबर, 2021
androidx.compose.foundation:foundation:1.0.5
और androidx.compose.foundation:foundation-layout:1.0.5
रिलीज़ हुई हैं. वर्शन 1.0.5 में ये कमियां शामिल हैं.
गड़बड़ियां ठीक की गईं
- getStateOf इंस्टेंस से जुड़ी क्रैश ट्रैकिंग को ठीक किया गया. (aosp/1792247)
वर्शन 1.0.4
13 अक्टूबर, 2021
androidx.compose.foundation:foundation:1.0.4
और androidx.compose.foundation:foundation-layout:1.0.4
रिलीज़ हुई हैं. वर्शन 1.0.4 में ये कमियां शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.31
पर निर्भर करने के लिए अपडेट किया गया
वर्शन 1.0.3
29 सितंबर, 2021
androidx.compose.foundation:foundation:1.0.3
और androidx.compose.foundation:foundation-layout:1.0.3
रिलीज़ हुई हैं. वर्शन 1.0.3 में ये कमियां शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.30
पर निर्भर करने के लिए अपडेट किया गया
वर्शन 1.0.2
1 सितंबर, 2021
androidx.compose.foundation:foundation:1.0.2
और androidx.compose.foundation:foundation-layout:1.0.2
रिलीज़ हुई हैं. वर्शन 1.0.2 में ये कमियां शामिल हैं.
कंपोज़ 1.0.2
रिलीज़ के साथ काम करने के लिए अपडेट किया गया. 1.0.2
लिखें, Kotlin 1.5.21
के साथ अब भी काम करता है.
वर्शन 1.0.1
4 अगस्त, 2021
androidx.compose.foundation:foundation:1.0.1
और androidx.compose.foundation:foundation-layout:1.0.1
रिलीज़ हुई हैं. वर्शन 1.0.1 में ये कमियां शामिल हैं.
डिपेंडेंसी से जुड़े अपडेट
- Kotlin
1.5.21
पर निर्भर करने के लिए अपडेट किया गया.
वर्शन 1.0.0
28 जुलाई, 2021
androidx.compose.foundation:foundation:1.0.0
और androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.0.0-rc02
और androidx.compose.foundation:foundation-layout:1.0.0-rc02
रिलीज़ हुई हैं. वर्शन 1.0.0-rc02 में ये कमियां शामिल हैं.
- पाथ की समस्याओं को हल करने के लिए सामान्य आकारों के लिए बॉर्डर रेंडरिंग को अपडेट किया गया तय डाइमेंशन की मदद से तय किए जाते हैं. (aosp/1748871, b/191817116)
वर्शन 1.0.0-rc01
1 जुलाई, 2021
androidx.compose.foundation:foundation:1.0.0-rc01
और androidx.compose.foundation:foundation-layout:1.0.0-rc01
रिलीज़ हुई हैं. वर्शन 1.0.0-rc01 में ये कमिट शामिल हैं.
एपीआई में बदलाव
- कैनवस अब ContentDescription पैरामीटर के साथ काम करता है सुलभता. (Ib547c)
गड़बड़ियां ठीक की गईं
- 'बंद है' बटन, कार्ड, चेकबॉक्स, और सभी
Modifier.clickable(enabled=false)
पर क्लिक करने से, पैरंट को क्लिक नहीं किया जा सकेगा. (Ic2c3b, b/183908811)
वर्शन 1.0.0-beta09
16 जून, 2021
androidx.compose.foundation:foundation:1.0.0-beta09
और androidx.compose.foundation:foundation-layout:1.0.0-beta09
रिलीज़ हुई हैं. वर्शन 1.0.0-beta09 में ये कमिट हैं.
एपीआई में बदलाव
ManualFrameClock
को हटा दिया गया है. अगर आपको ऐनिमेशन कंट्रोल करने हैं, इसके बजाय,composeTestRule.mainClock
का इस्तेमाल करें. (I3c3e8, b/189951065)- enum की भूमिका और LiveRegionMode को इनलाइन क्लास में बदलें प्राइवेट कंस्ट्रक्टर के साथ (Id1890)
- कीबोर्ड के बड़े अक्षरों को इनलाइन क्लास में बदला जाता है. (Id5a1c)
- TextOverflow को इनलाइन क्लास में बदला गया. (I433af)
गड़बड़ियां ठीक की गईं
- अब जब आप LaziColumn/Row आइटम के लिए खास कुंजियां तय करने पर, स्क्रोल की स्थिति कुंजी के हिसाब से बनी रहेगी, तो इसका मतलब है कि अगर आप दिखने वाले मौजूदा आइटम से पहले आइटम जोड़ते/हटाते हैं, तो दी गई कुंजी वाले आइटम को सबसे पहले दिखने वाले आइटम के रूप में रखा जाएगा. (Id263f, b/184257857)
- फ़िलहाल, मुख्य कॉन्सटेंट @OptionalComposeUiApi हैं. उपभोग करना कोड, स्टेबलाइज़ेशन से पहले प्राइवेट कॉन्सटेंट की जानकारी दे सकता है. (Ia5d48)
- AndroidComposeTestRule में IdlingStrategy को जोड़ा गया है, जो कि
इसका इस्तेमाल, फ़्रेमवर्क को टेस्ट करने के लिए किया जाता है.
या शांत माहौल बनाएं. इस्तेमाल की जाने वाली चीज़ें
जांच से
AndroidComposeTestRule.setIdlingStrategyFactory()
पहले अपनी रणनीति बनाना शुरू कर देता है. (I608FA)
प्रोफ़ाइल के नियम जोड़े गए
इस रिलीज़ में, कंपोज़ की सुविधा वाले इन मॉड्यूल में प्रोफ़ाइल के नियम जोड़े गए हैं (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.foundation:foundation:1.0.0-beta08
और androidx.compose.foundation:foundation-layout:1.0.0-beta08
रिलीज़ हुई हैं. वर्शन 1.0.0-beta08 में ये कमिट हैं.
एपीआई में बदलाव
- NestedscrollSource enum को इनलाइन क्लास से बदल दिया गया है. (Ie321b, b/187055290)
- इनम के इस्तेमाल से बचने के लिए, इनलाइन क्लास में फिर से इस्तेमाल किया गया की वजह से, स्टेटमेंट में और चीज़ों को ईनम की नई वैल्यू जोड़ी गई हैं. (I2b5eb)
- स्क्रोल करने / ड्रैग करने के दौरान रिपल दिखने से रोकने के लिए, क्लिक किए जा सकने वाले / टॉगल किए जा सकने वाले मोड में टैप का टाइम आउट जोड़ता है (Ia2704, b/168524931)
- ContentDescription और टेक्स्ट सिमैंटिक्स प्रॉपर्टी अब मौजूद नहीं हैं एकल मान लेकिन सूचियां. इससे, वे मैसेज को पहले जैसा होने के लिए मर्ज किया जा सकता है जोड़ने के तरीके हैं. साथ ही, बेहतर टेस्ट एपीआई भी उपलब्ध कराए, ताकि इनका इस्तेमाल किया जा सके बदलाव (Ica6bf, b/184825850)
Modifier.focusModifier()
अब काम नहीं करता. इसेModifier.focusTarget()
(I6c860) से बदल दिया गया है- KeyboardType enum को इनलाइन क्लास से बदल दिया गया. (I73045, b/187055290)
FocusState
enum कोFocusState
इंटरफ़ेस से बदला गया (IFCC1a, b/187055290)- ImeAction enum को इनलाइन क्लास से बदल दिया गया है. (I18be5, b/187055290)
AnnotatedString.withAnnotation
फ़ंक्शन यह हैं अब with ComposeApi की बजाय ExampleTextApi का इस्तेमाल कर रहा है. (I0cd0a)- TextUnitType के साथ TextUnit कंस्ट्रक्टर अब ExternalComposeApi के बजाय ExampleTextApi.
- पैडिंगवैल्यू अब
@Immutable
(I88c50) के बजाय@Stable
है
गड़बड़ियां ठीक की गईं
- जो टेक्स्ट खाली नहीं है उसमें खाली जगह को दबाकर रखने से जुड़ी गड़बड़ियां ठीक की गई हैं. (I33ab5, b/187437299)
- SelectAll (I495d9, b/185919613) के बाद टूलबार दिखाएं
- क्रॉस ऐक्सिस पर अपने बच्चों को क्लिप करने वाले स्क्रोल करने वाले कंटेनर के लिए ठीक किया गया. अगर आपके पास कार्ड आइटम वाला LaziRow है, तो इसे आसानी से फिर से बनाया जा सकता है. अब शैडो को क्लिप नहीं किया जाएगा. (Icb635, b/186318448)
- उस समस्या को ठीक किया गया है जिसकी वजह से Modifier.combinedClickable (I2298c, b / 186223077) का इस्तेमाल करते समय, कभी-कभी लंबी क्लिक करने पर रिपल/अन्य संकेत की समस्या आ जाती थी
- अब
detectDragGesures
,detectVerticalGestures
, औरdetectHorizontalGestures
अपने-आप पोज़िशन में होने वाले बदलाव का इस्तेमाल करेंगे. इसके लिए, onDrag कॉलबैक में changes.consumPositionChange को कॉल करने की ज़रूरत नहीं है (I42fc4, b/185096350, b/187320697) - सभी मॉडिफ़ायर लागू करने के बाद, लेआउट कोऑर्डिनेट को शामिल करने के बजाय,
Modifier.onGloballyPositioned()
को मॉडिफ़ायर चेन में इस मॉडिफ़ायर के कोऑर्डिनेट की रिपोर्ट देने के लिए बदला गया है. इसका मतलब है कि अब मॉडिफ़ायर के क्रम से उन निर्देशांकों पर असर पड़ रहा है जिनके बारे में रिपोर्ट की जाएगी. (Ieb67d, b/177926591)
वर्शन 1.0.0-beta07
18 मई, 2021
androidx.compose.foundation:foundation:1.0.0-beta07
और androidx.compose.foundation:foundation-layout:1.0.0-beta07
रिलीज़ हुई हैं. वर्शन 1.0.0-beta07 में ये कमिट हैं.
एपीआई में बदलाव
- LazyColumn/Row (I8a4bc, b/184940225) के लिए, आइटम प्रीफ़ेच करने का अगला तर्क पेश किया गया है
- क्लिप चुनने के लिए हैंडल जोड़ा गया (Iff80d, b/183408447)
गड़बड़ियां ठीक की गईं
- LaZकॉलम/Row में अब ज़्यादा से ज़्यादा, पहले से दिखने वाले दो आइटम चालू रहेंगे (डिस्पोज़ नहीं किए गए). भले ही, उन्हें पहले ही स्क्रोल किया जा चुका हो. इससे कॉम्पोनेंट को चालू सब-कंपोज़िशन का फिर से इस्तेमाल करने की अनुमति मिलती है. ऐसा तब होता है, जब हमें कोई नया आइटम लिखने की ज़रूरत होती है. इससे, स्क्रोल की परफ़ॉर्मेंस बेहतर होती है. (Ie5555)
- पेंट का बैकग्राउंड हटाएं. (I38660)
- DrawScope का इस्तेमाल करके चुनने के बैकग्राउंड का ड्रॉइंग. (I73c61, b/186674472)
- लेआउट वेटेड चिल्ड्रेन के लिए spacedBy व्यवस्था का इस्तेमाल करके पंक्ति/कॉलम को प्रभावित करने वाले बीटा06 रिग्रेशन को ठीक किया गया था. (Ifaf8c, b/187326588)
वर्शन 1.0.0-beta06
5 मई, 2021
androidx.compose.foundation:foundation:1.0.0-beta06
और androidx.compose.foundation:foundation-layout:1.0.0-beta06
रिलीज़ हुई हैं. वर्शन 1.0.0-beta06 में ये तय किए गए हैं.
एपीआई में बदलाव
- नेविगेशन जेस्चर (I1145e) के साथ समस्या को हल करें
- संग्रह जानकारी और collectionsItemInfo सुलभता एपीआई जोड़े गए हैं, जिनकी मदद से संग्रह और उसके आइटम को सुलभता सेवाओं के लिए मार्क किया जा सकता है (Id54ef, b/180479017)
- सूची को स्क्रोल करने के लिए,
SemanticsActions.ScrollToIndex
को जोड़ा गया किसी खास इंडेक्स वाले आइटम के लिए इंडेक्स किए गए आइटम और सूची में मौजूद किसी आइटम का इंडेक्स पाने के लिएSemanticsProperties.IndexForKey
कुंजी वाले आइटम के साथ. दोनों कार्रवाइयां, LazyList की मदद से लागू की जाती हैं.- उसे
SemanticsNodeInteraction.performScrollToIndex
जोड़ा दिए गए इंडेक्स पर सूची स्क्रोल करता है, औरSemanticsNodeInteraction.performScrollToKey
जो सूची को स्क्रोल करके दी गई कुंजी वाले आइटम. (I4fe63, b/178483889, b/161584524)
- उसे
- AnnotateString फ़ाइल को इसके लिए सेव करने की सुविधा मिलती है TextFieldValue.Saver. addTtsAnnotation जोड़ा गया और withAnnotation यूटिलिटी फ़ंक्शन से जुड़े होते हैं AnnotatedString.Builder (I8cbdc, b/178446304)
0.dp
की डिफ़ॉल्ट पैरामीटर वैल्यू कोPaddingValues(horizontal, vertical)
(I05571, b/181336792) में जोड़ा गया
गड़बड़ियां ठीक की गईं
- पंक्ति &
weight(fill = false)
वाले कॉलम चाइल्ड, अब पैरंट को पूरे ऐक्सिस स्पेस को भरने की अनुमति नहीं देते. (Ied94d, b/186012444, b/184355105)
वर्शन 1.0.0-beta05
21 अप्रैल, 2021
androidx.compose.foundation:foundation:1.0.0-beta05
और androidx.compose.foundation:foundation-layout:1.0.0-beta05
रिलीज़ हुई हैं. वर्शन 1.0.0-beta05 में ये कमिट हैं.
एपीआई में बदलाव
- फ़्लिंगव्यवहार इंटरफ़ेस को अब @Stable के तौर पर मार्क कर दिया गया है. सभी लागू करने के तरीके
@Stable
के अनुबंध के हिसाब से होने चाहिए. (I93354, b/184830577)
गड़बड़ियां ठीक की गईं
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.foundation:foundation:1.0.0-beta04
और androidx.compose.foundation:foundation-layout:1.0.0-beta04
रिलीज़ हुई हैं. वर्शन 1.0.0-beta04 में ये कमिट हैं.
एपीआई में बदलाव
- छुपा सॉफ़्टवेयर कीबोर्ड का नाम बदलें और showSoftwareकीबोर्ड चालू करें
सॉफ़्टवेयर कीबोर्ड कंट्रोलर का इस्तेमाल
hide()
औरshow()
पर किया जा सकता है.- इसके लिए, कंपोज़िशन Local का पूरा इंटरफ़ेस उपलब्ध कराएं LocalSoftwareClassroomController, इसे सेट करने की अनुमति देता है (खास तौर पर) टेस्ट में उपयोगी) (I579a6)
TextOverflow.Visible
को लॉन्च किया गया. (Ic8f89)RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
के सार्वजनिक इंस्टेंस हटा दिए गए थे. (I4e83e, b/181869067)
गड़बड़ियां ठीक की गईं
- किनारों पर मौजूद
LazyColumn
/LazyRow
के आइटम, फ़ास्ट फ़्लिंग (Ie4d13, b/183877420) के बाद, गलत पोज़िशन में पोज़िशन होने पर समस्या को ठीक कर दिया गया है इस बदलाव से पहले, लोकल कंपोज़ेबल फ़ंक्शन को उनके पैरामीटर के आधार पर स्किप किया जा सकता था. इस बदलाव के बाद, कोई भी लोकल कंपोज़ेबल फ़ंक्शन स्किप नहीं करेगा. यह बदलाव इसलिए किया गया है, क्योंकि यह आम तौर पर किया जाता है. साथ ही, लोकल फ़ंक्शन के लिए, पैरंट से पैरामीटर कैप्चर करना ज़रूरी होता है. साथ ही, इन्हें स्किप करना, गड़बड़ियों की एक आम वजह है.
खास जानकारी देने के लिए, इस उदाहरण पर गौर करें:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
इस बदलाव से पहले,
count
पैरामीटर को अपडेट करने के बाद भी,ShowCount
कंपोज़ेबल फ़ंक्शन हमेशा स्किप करता था. अब ऐसा नहीं होता है. (I5648a)
वर्शन 1.0.0-beta03
24 मार्च, 2021
androidx.compose.foundation:foundation:1.0.0-beta03
और androidx.compose.foundation:foundation-layout:1.0.0-beta03
रिलीज़ हुई हैं. वर्शन 1.0.0-beta03 में ये कमिट हैं.
एपीआई में बदलाव
DefaultMonotonicFrameClock
के इस्तेमाल पर रोक लगा दी गई है. कॉल से जुड़ी सुविधाwithFrameNanos
याRecomposer.runRecomposeAndApplyChanges
, जिसमें कोई मैसेज नहीं हैMonotonicFrameClock
अबIllegalStateException
फेंक देगा. (I4eb0d)
गड़बड़ियां ठीक की गईं
FlingBehavior.performFling()
को अब तब भी कॉल किया जाता है, जब वेलोसिटी 0 हो (I0b6e5, b/181237123)
वर्शन 1.0.0-beta02
10 मार्च, 2021
androidx.compose.foundation:foundation:1.0.0-beta02
और androidx.compose.foundation:foundation-layout:1.0.0-beta02
रिलीज़ हुई हैं. वर्शन 1.0.0-beta02 में ये कमिट हैं.
एपीआई में बदलाव
- LazyColumn को मापने के लॉजिक में कई छोटे ऑप्टिमाइज़ेशन जोड़े गए (Ic6889)
- नई
LocalSoftwareKeyboardController
कंपोज़िशन स्थानीय भाषा में जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I5951e, b/168778053) - नई
LocalSoftwareKeyboardController
कंपोज़िशन स्थानीय भाषा में जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I84472, b/168778053)
गड़बड़ियां ठीक की गईं
- एक्सपेरिमेंटल एपीआई के सार्वजनिक इस्तेमाल पर पाबंदियां लागू करें (I6aa29, b/174531520)
वर्शन 1.0.0-beta01
24 फ़रवरी, 2021
androidx.compose.foundation:foundation:1.0.0-beta01
और androidx.compose.foundation:foundation-layout:1.0.0-beta01
रिलीज़ हुई हैं. वर्शन 1.0.0-beta01 में ये कमिट मौजूद हैं.
यह Compose 1.0.0 बीटा की पहली रिलीज़ है.
एपीआई में बदलाव
- onStart कॉलबैक को
detectDragGestures
(I67269, b/179995594) में जोड़ दिया गया है - एलिमेंट का साइज़ बताने वाले मॉडिफ़ायर को अब एक्सपेरिमेंट के तौर पर इस्तेमाल नहीं किया जा रहा है. (I15744)
- dp दावे हटाए गए (I798d2)
- सभी टेक्स्ट से सॉफ़्टवेयर कीबोर्ड कंट्रोलर कॉलबैक हटाया गया फ़ील्ड को जल्द ही नए एपीआई से बदला जाएगा. (Iae869, b/168778053)
- मेज़रमेंटब्लॉक का नाम बदलकर, MeasurementPolicy रखा गया. यह एक मज़ेदार इंटरफ़ेस बन गया. मेज़रमेंट नीति का इस्तेमाल करने के लिए, लेआउट एपीआई को अपडेट / आसान बनाया गया है. (Ikb48, 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)
- अब काम नहीं करने वाले LayoutCoordanates के तरीकों को हटाए गए. इसके लिए, स्थिति
- CoreTextField जैसे लो लेवल के टेक्स्ट कॉम्पोनेंट से इनपुट सेशन के लिए, नया Textइनपुटसेशन बनाया गया. (I8817f, b/177662148)
- इसका पता लगाने के लिए, मेज़रमेंट किया गया साइज़ दिखाया जाता है. इससे उस साइज़ के बारे में पता चलता है जिसे चाइल्ड लेआउट ने असल में मेज़र किया है. हो सकता है कि यह साइज़, मेज़रमेंट के नियमों के मुताबिक न हो. (Ib2729, b/172560206, b/172338608)
- SelectGroup मॉडिफ़ायर जोड़ें, जो सुलभता के मकसद से टैब या रेडियोबटन इकट्ठा करने की अनुमति देता है (Ie5c29)
LaziListState.animatescrollToItem जोड़ें
इस तरीके से, सूची में मौजूद किसी आइटम पर आसानी से स्क्रोल किया जा सकता है. (I4bfd7)
ScrollableState.smoothscrollBy() का नाम बदलकर animatescrollBy() किया गया ScrollToItem() में LazyListState.stapToItemIndex() का नाम बदलकर ScrollState.smooth ScrollTo() का नाम बदलकर animatescrollTo() किया गया (I35ded)
मेरे Modifier.transformable की जगह Modifier.Zoomable ने बदल दी है. smoothPanBy, smoothRotationBy को फ़ंक्शन के तौर पर जोड़ा गया है. (Ifc32b, b/175294473)
compositionLocalOf
के लिएdefaultFactory
और अब इसकी जगहstaticCompositionLocalOf
की ज़रूरत है ज़रूरी नहीं.यह बदलाव ऐसी गड़बड़ी को हटा देता है जो शून्य नहीं हो सकती जहां डिफ़ॉल्ट फ़ैक्ट्री नहीं दिया गया था. पहले यह शून्य न हो सकने वाले टाइप के लिए शून्य संदर्भ उपलब्ध कराएगा.
शून्य वाले टाइप के लिए,
{ null }
को डिफ़ॉल्ट के तौर पर दें फ़ैक्ट्री में किया गया था.हम ऐसे लोकल टाइप का इस्तेमाल करने का सुझाव नहीं देते जो शून्य वाले नहीं हैं एक सही डिफ़ॉल्ट वैल्यू दी जा सकती है. अगर कोई डिफ़ॉल्ट डिफ़ॉल्ट वैल्यू मौजूद नहीं है,
defaultFactory
लैम्डा को अपवाद देना चाहिए. हालांकि अपवाद का मतलब है कि स्थानीय उपभोक्ताओं के पास दिए जाने पर एक इंप्लिसिट डिपेंडेंसी जो लागू नहीं की गई है का इस्तेमाल किया जाता है. (Ifbd2a)Indication#createIndication()
कोIndication#rememberUpdatedIndication(InteractionState)
में बदला गया है और IndicationInstance#drawIndication()
सेInteractionState
पैरामीटर को हटाया गया है. इंडेक्स इंस्टेंस सिर्फ़ विज़ुअल इफ़ेक्ट बनाने के लिए ज़िम्मेदार होना चाहिए, न कि इंटरैक्शन स्टेट बदलावों की वजह से ऐनिमेशन / राइटिंग लॉन्च करने के लिए. ये ऐनिमेशन और स्टेट राइट, इसके बजायrememberUpdatedIndication()
के अंदर होने चाहिए.Modifier.indication
मेंindication
पैरामीटर को भी ज़रूरी पैरामीटर में बदल दिया गया. (Ic1764, b/152525426)टेक्स्ट से जुड़ी कार्रवाइयां, अब फ़ोकस की जांच अपने-आप करती हैं (I13777, b/179648629)
runBlockingWithManualClock
(I15cdc, b/179664814) को हटाया गयाsmoothscrollBy और ScrollBy तरीकों की पैकेज
androidx.compose.foundation.gestures.*
में बदले गए (I3f7c1, b/175294473)फ़्लोरिंग कॉन्फ़िगरेशन का नाम बदलकर, फ़्लिंग व्यवहार कर दिया गया है. अब पहले से तय किए गए नुकसान के बजाय, निलंबित ऐनिमेशन को पसंद के मुताबिक बनाया जा सकता है. (I02b86, b/175294473)
साइज़ मॉडिफ़ायर के नाम बदले गए. Modifier.width/height/size का नाम बदलकर, बचाने के लिए ज़रूरी चौड़ाई/ज़रूरी/ज़रूरी/ज़रूरत वाला साइज़ कर दिया गया है. Modifier.referwidth/PreferenceHight/प्राथमिकता साइज़ का नाम बदलकर, चौड़ाई/height/size में बदल दिया गया. (I5b414)
defaultMinSizeConstraints का नाम बदलकर defaultMinSize किया गया. (I4eaae)
Modifier.tapMessageFilter को हटा दिया गया है. इसके बजाय,
Modifier.pointerInput { detectTapGestures(...) }
का इस्तेमाल करें. (I266ed, b/175294473)पॉइंटर इनपुट सिस्टम से आंशिक इस्तेमाल को हटा दिया गया. आंशिक उपभोग के लिए Modifier.nestedscroll का इस्तेमाल करने का सुझाव दिया जाता है. (Ie9c9b)
ओरिएंटेशन को फ़ाउंडेशन पैकेज पर ले जाया गया. VerocirtTracker को ui.जेस्चर से, ui.input.pointer पर ले जाया गया. (Iff4a8, b/175294473)
AssetClockObservable और सब-क्लास हटाया गया. ऐनिमेटेडफ़्लोट को हटा दिया गया है. (Icde52, b/177457083)
{/8}State.open() और DrawingsState.close() फ़ंक्शन, अब फ़ंक्शन को निलंबित कर रहे हैं. कंपोज़िशन का स्कोप पाने के लिए, RememberCoroutineScope() का इस्तेमाल करके उसे कॉल करें (I16f60, b/175294473)
सेवा देने वाली कंपनियों का नाम बदलकर 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)
Modifier.scrollable को फिर से बनाया गया है. अब यह ScrollableController क्लास (I4f5a5, b/174485541, b/175294473) के बजाय, स्क्रोल किए जा सकने वाले इंटरफ़ेस का इस्तेमाल करता है
Modifier.draggable की मदद से अब सामान्य Lambda फ़ंक्शन के बजाय, खींचे जाने लायक स्टेट को स्वीकार किया जा सकता है. पहले की तरह ही व्यवहार पाने के लिए,
rememberDraggableState { delta -> }
से स्टेटस बनाया जा सकता है (Ica70f, b/175294473)ज़रूरी चौड़ाई(IntrinsicSize) और requiredHight(IntrinsicSize) मॉडिफ़ायर को, अंदरूनी साइज़ के ज़रूरी साइज़ के हिसाब से जोड़ा गया है. (I0a6b4)
अब काम नहीं करने वाला
emptyContent()
हटा दिया गया है. इसके बजाय,{}
का इस्तेमाल करें. (Idb33f, b/179432510)पहले से काम न करने वाले कुछ एपीआई मिटाए गए (Ice5da, b/178633932)
गड़बड़ियां ठीक की गईं
- नया LocalSoftwareClassroomController कंपोज़िशन जोड़ा गया पुराने सॉफ़्टवेयर कीबोर्ड कंट्रोलर इंटरफ़ेस को बदलने के लिए एपीआई चालू करें टेक्स्ट फ़ील्ड. (I658b6, b/168778053)
वर्शन 1.0.0-alpha12
10 फ़रवरी, 2021
androidx.compose.foundation:foundation:1.0.0-alpha12
और androidx.compose.foundation:foundation-layout:1.0.0-alpha12
रिलीज़ हुई हैं. वर्शन 1.0.0-alpha12 में ये कमियां हैं.
एपीआई में बदलाव
- Modifier.pointerइनपुट को संकेत करने के लिए अब याद रखने वाली कुंजियों की ज़रूरत है जब पॉइंटर इनपुट डिटेक्शन कोरूटीन नए के लिए रीस्टार्ट होना चाहिए निर्भरता. (I849cd)
- टेस्टिंग से जुड़ा अपडेट: hasText(), टेक्स्ट फ़ील्ड (Iab803) में इनपुट और लेबल/hint/placeholder टेक्स्ट, दोनों की जांच करेगा
- PaddingValues.Total को जोड़ा गया था. इसका इस्तेमाल, PजगहValues को स्वीकार करने वाले एपीआई में किया जा सकता है. (Ia5f30)
- onImeAction Performanceed अब काम नहीं करता है. इसके बजाय Keyboard Actions का इस्तेमाल करें (If0bbd, b/179071523)
- नाम का बेहतर तरीके से मिलान करने के लिए ImageBitmap और Image पक्ष के साथ कन्वेंशन, ImagePainter का नाम बदलकर BitmapPainter कर दिया गया है साथ-साथ वेक्टरPainter. (Iba381, b/174565889)
- अब तर्क के तौर पर सबस्ट्रिंग के साथ बेहतर सबस्ट्रिंग टेस्ट एपीआई (Icbe78)
InfiniteAnimationPolicy
कोरूटीन कॉन्टेक्स्ट पेश किया गया जिसे असीमित ऐनिमेशन में लागू किया जाएगा. डिफ़ॉल्ट रूप से नहीं नीति इंस्टॉल की गई है. हालांकि,ComposeTestRule
का इस्तेमाल करके जांच करने पर नहीं. (I50ec4, b/151940543)- Animatable.stapTo और Animatable.stop अब सस्पेंड फ़ंक्शन (If4288) हैं
- componentActivity.setContent इस जगह पर भेजा गया androidx.activity.compos.setContent में androidx.activity:activity-compos मॉड्यूल में नहीं है. (Icf416)
- डिस्ट्रक्चरिंग और Copy() तरीके को इस यूआरएल से हटा दिया गया है ऐसी क्लास के बारे में बात करते हैं जहाँ इनका इस्तेमाल बहुत कम किया जाता था. (I26702, b/178659281)
Lazyकॉलम/LazyRow के लिए, कस्टम पासकोड इस्तेमाल करने की सुविधा जोड़ी गई. इससे हम आइटम का क्रम बदलने को बेहतर तरीके से मैनेज कर पाते हैं. इसलिए, याद रखें कि {} ब्लॉक में सेव की गई स्थिति, एलिमेंट का क्रम बदलने या आइटम को बीच से हटाने पर, आइटम के साथ मूव हो जाएगी.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
इंडिकेशन#createइंस्टेंस को @Composable में बदला गया है, और LocalIndic को बदलकर कोई इंडिकेशन शामिल किया गया है, न कि () -> संकेत. (I5eeea, b/157150564)
Constraints.enforce
कोConstraints.constrain
से बदल दिया गया. (I8b8ea)loadFontResource अब काम नहीं करता. इसके बजाय, fontResource का इस्तेमाल करें. ImageResource, loadImageResource, vectorResource, और loadvectorResource के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, PaintterResource का इस्तेमाल करें. (I6b809)
परफ़ॉर्मेंस की वजहों से, ScrollAxisRange सिमेंटिक्स अब सीधे फ़्लोट वैल्यू के बजाय, Lambdas फ़्लोटिंग वैल्यू पर लौटता है. (If4a35, b/178657186)
सुलभता और संबंधित जांच के तरीकों के लिए, टेक्स्ट फ़ील्ड के बदलाव किए जा सकने वाले इनपुट टेक्स्ट को मार्क करने के लिए, एडिट किए जा सकने वाले टेक्स्ट सिमैंटिक को जोड़ा गया (I8e07a)
अब Modifier.clickable में डबल और देर तक क्लिक करने की सुविधा नहीं है. इस फ़ंक्शन को पाने के लिए, Modifier.combinedClickable का इस्तेमाल करें. (Iafad1)
toIntPx() का नाम बदलकर, {8/}ToPx() किया गया. (I9b7e4, b/173502290)
IntBounds का नाम बदलकर IntRect किया गया. एपीआई को बेहतर बनाया गया. (I1f6ff)
Modifier.drag प्रोसेसFilter बंद कर दिया गया है. इसके बजाय,
Modifier.pointerInput { detectDragGestures (...)}
का इस्तेमाल करें. इसके अलावा, एक ऐक्सिस ड्रैग (I0ba93, b/175294473) के लिए, Modifier.draggable का इस्तेमाल करेंऐंबियंट के हिसाब से नाम बदला गया -> कंपोज़िशन लोकल का नाम बदलना. पहले ऐंबियंट्स को AmbientFoo कहा जाता था, लेकिन अब ComposeLocals को LocalFoo कहा जाता है. (I2d55d)
चुने गए हिस्से को फ़ाउंडेशन में ले जाया गया. (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)
ऐनिमेशन में चलने के समय की अवधि अब नैनोसेकंड है (If776a)
@ComposableConact की जगह, अब तीन और खास एनोटेशन का इस्तेमाल किया जाता है.
@ComposableContract(restartable = false)
,@NonRestartableComposable
हो गया है@ComposableContract(readonly = true)
,@ReadOnlyComposable
हो गया है@ComposableContract(preventCapture = true)
अब@DisallowComposableCalls
बन गया है@ComposableContract(tracked = true)
को हटा दिया गया है. (I60a9d)emptyContent()
और(@Composable () -> Unit).orEmpty()
सुविधाएं बंद कर दी गई हैं, क्योंकि अब इनकी परफ़ॉर्मेंस पर कोई अच्छा असर या वैल्यू नहीं है (I0484d)रीकंपोज़र अब बंद किए जा सकते हैं. बंद रिकंपोज़र जब तक चाइल्ड कोरूटीन पूरा नहीं हो जाता, तब तक बदलाव करना जारी रखें. बंद के कंट्रास्ट के लिए रद्द करने के लिए Recomposer.shutDown का नाम बदला गया. (Ib6d76)
LazyVerticalGrid से जुड़े एपीआई को एक्सपेरिमेंट के तौर पर मार्क किया गया है (Ia53e3, b/178519862)
याद रखें कि सेव किए गए उदाहरण() का नाम बदलकर, RememberSaveable() का नाम बदला गया और androidx.compos.runtime.saveable पैकेज पर ले जाया गया. (I1366e, b/177338004)
RecorableStateHolder का नाम बदलकर, सेव किए जा सकने वाले स्टेटहोल्डर का नाम रखा गया. साथ ही, इसे androidx.compos.runtime.saveable पैकेज पर ले जाया गया. इनर मेथड ReorableStateProvider का नाम बदलकर, सेव किए जा सकने वाले स्टेट प्रोवाइडर को किया गया. जेनेरिक टाइप को हटा दिया गया है, ताकि आप किसी भी को कुंजी के तौर पर सिर्फ़ पास कर सकें. अब प्रयोग के तौर पर इस्तेमाल की जाने वाली व्याख्या की ज़रूरत नहीं है. (I0902e, b/174598702)
सेवर, listSaver(), MapSaver(), autoSaver को androidx.compos.runtime.Savedinstancestate से androidx.compos.runtime.saveable (I77fe6) में ले जाया गया है
आर्टफ़ैक्ट androidx:compos:runtime:runtime-Saved-instance-state का नाम बदलकर androidx:compos:runtime:runtime-saveable (I6dcac) कर दिया गया है
यूज़र इंटरफ़ेस (यूआई) पैकेज में, लंबे समय से इस्तेमाल नहीं किए जा रहे कई एपीआई मिटा दिए गए हैं. (I2f2dc)
कंपोज़:रनटाइम-डिसपैच आर्टफ़ैक्ट अब काम नहीं करता है. MonotonicFrameClock को अब लिखें:runtime और AndroidUiDispatcher, लिखें:UI में देखा जा सकता है. (Ib5c36)
राउंडर कॉर्नर शेप, कट कॉर्नर शेप, और कॉर्नर बेस्ड शेप के पैरामीटर का नाम, बाएं/दाएं से बदलकर, शुरू/खत्म हो गया. ऐसा इसलिए किया गया, ताकि आरटीएल की दिशा में शेप के ऑटो मिररिंग को काम किया जा सके. जब ऑटो-मिररिंग की सुविधा काम नहीं करती, तब ऐसे मामलों के लिए शेड्यूल होने वाली कूलरूंडिंग कॉर्नर और TotalCutCornerSize की सुविधा शुरू की गई है. (I61040, b/152756983)
कैन खींचें और Modifier से हटा दिया गया है.इसे स्क्रोल किया जा सकता है. (Id66e7, b/175294473)
वह एपीआई जिसे Compose कंपाइलर प्लगिन टारगेट करता है के बजाय इंटरफ़ेस का इस्तेमाल करने के लिए रीफ़ैक्टर किया गया है कंक्रीट क्लास के रूप में पेश किया. इंटरफ़ेस अब एक प्रकार पैरामीटर है.
यह एक अंदरूनी बदलाव है, जिससे सोर्स पर कोई असर नहीं पड़ना चाहिए कोड के साथ काम करता है, लेकिन यह बाइनरी ब्रेकिंग बदलाव है. (I3b922, b/169406779)
Modifier.ScaleMessageFilter को हटा दिया गया है. इसके बजाय, Modifier.zoomable का इस्तेमाल करें. इसके अलावा,
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473) का इस्तेमाल करेंऐनिमेटेडValue/Float अब काम नहीं करता. कृपया इस्तेमाल करें इसके बजाय, ऐनिमेट किया जा सकता है. (I71345, b/177457083)
- सार्वजनिक एपीआई से CoreText और CoreTextField को हटाया गया
- ऐसे SelectContainer ओवरलोड को हटाया गया जो अब काम नहीं करता (I99c19)
बिना निलंबन वाले स्क्रोलिंग फ़ंक्शन हटाएं पिछली रिलीज़ में हुए बदलावों के साथ आगे बढ़ना, बिना निलंबन वाली स्क्रोलिंग फ़ंक्शन अब पूरी तरह से हटा दिए जाते हैं. कृपया निलंबन में बदलें समान नाम वाले फ़ंक्शन. कोरूटीन स्कोप की जानकारी इनसे हासिल की जा सकती है: RememberCoroutineScope(). (I3d39c, b/178169563)
androidx.compos.foundation.layout.ConstraintLayout को, androidx.constraintlayout.compos.ConstraintLayout के पक्ष में हटा दिया गया. आपको
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
पर डिपेंडेंसी जोड़नी होगी. (I87adc)टैपजेस्चर, डबल टैपजेस्चरFilter, longPress प्रोसेसFilter, और PressIndicaitonCatFilter काम नहीं कर रहा है. इसके बजाय, preventTap Gesturess फ़ंक्शन के साथ, Modifier.clickable या Modifier.pointerइनपुट का इस्तेमाल करें. (I6baf9, b/175294473)
Recomposer.current()
को हटा दिया गया है. [ऐब्स्ट्रैक्ट]अभी लिखें डिफ़ॉल्ट रूप से, लेज़ी तरीके से बनाए गए विंडो के स्कोप वाले रीकंपोज़र, विंडो के लिए ViewTreelifecycleOwner. चीज़ों को फिर से व्यवस्थित करें और होस्ट लाइफ़साइकल के दौरान, withFrameNanos पर आधारित ऐनिमेशन के टिक रोक दिए गए हैं को रोक दिया गया है. (I38e11)Recomposer.दौड़ना के लिए Recomposers अब ग्लोबल StateFlow ऑफ़र करते हैं में कंपोज़िशन की मौजूदा स्थिति को देखने के लिए, रीड-ओनली RecomposerInfo प्रक्रिया से बचा जा सकता है. इस एपीआई को Recomposer.current() पर पसंद करें, जो कि अब है बंद कर दिया गया है. (If8ebe)
वर्शन 1.0.0-alpha11
28 जनवरी, 2021
androidx.compose.foundation:foundation:1.0.0-alpha11
और androidx.compose.foundation:foundation-layout:1.0.0-alpha11
रिलीज़ हुई हैं. वर्शन 1.0.0-alpha11 में ये कमियां हैं.
एपीआई में बदलाव
नॉन-सस्पेंड ScrollBy का उपयोग न करें, नॉन-सस्पेंड ScrollTo को हटाएं
हमारा सुझाव है कि स्क्रोलिंग और इंतज़ार को कंट्रोल करने के लिए, सस्पेंड फ़ंक्शन का इस्तेमाल करें पूरा करने के लिए. हम पहले से मौजूद इस ट्रांज़िशन के हिस्से के तौर पर, इन फ़ंक्शन के नॉन-सस्पेंड वर्शन का इस्तेमाल भी कर सकते हैं. (Ie9 कंपनियों)
नॉन-सस्पेंड smoothscrollBy का बहिष्कार करें हमारा सुझाव है कि स्क्रोलिंग और इंतज़ार को कंट्रोल करने के लिए, सस्पेंड फ़ंक्शन का इस्तेमाल करें पूरा करने के लिए. हम ऐसे वर्शन बंद कर रहे हैं जो निलंबित नहीं हैं कुछ इस ट्रांज़िशन है. (I12880)
इमेज और आइकॉन में कॉन्टेंट की जानकारी वाला पैरामीटर जोड़ दिया गया है. इसका इस्तेमाल सुलभता सेवाओं का ब्यौरा देने के लिए किया जाता है (I2ac4c)
BasicTextField को 'decorationBox' नाम का एक नया पैरामीटर मिला है. यह आइकॉन, प्लेसहोल्डर, लेबल, और टेक्स्ट फ़ील्ड से मिलती-जुलती सजावट जोड़ने की सुविधा देता है. साथ ही, इसका हिट टारगेट एरिया भी बढ़ा देता है. (I16996)
कैन खींचें पैरामीटर को Modifier.draggable (Ic4bec, b/175294473) से हटा दिया गया है
FingConfig को स्वीकार करने वाले ऐनिमेटेडFloat.fling को हटा दिया गया है. कृपया निलंबित करें का इस्तेमाल करें इसके बजाय, Animatable.animatedecay. (I4659b, b/177457083)
data class
को इन क्लास से हटाया गया:- इनलाइन टेक्स्ट-कॉन्टेंट
- स्थान-भाषा की सूची
- (I605c7)
कंपोज़िशन के बाहर (I0a130, b/172938345, b/175294473) के बाहर ऐसे बनाए जा सकते हैं जिन्हें क्लिक किया जा सकता है, टॉगल किया जा सकता है, और चुना जा सकता है
Scrollableकॉलम/पंक्ति बहिष्कृत कर दी गई थी. जब आपके पास बड़ा स्क्रोल करने वाला कॉन्टेंट होता है, तो ScrollableColumn का इस्तेमाल करने से बेहतर नतीजे नहीं मिलने चाहिए. इसकी वजह यह है कि 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)अब काम नहीं करने वाले कूल अरेंजमेंट को हटा दिया गया है. (इफ़फ़ा96, b/177641870)
ProtectMinConstraints पैरामीटर, Box में जोड़ा गया, ताकि यह तय किया जा सके कि इनकमिंग कम से कम कंस्ट्रेंट को, Box के कॉन्टेंट में पास किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से गलत पर सेट होती है. (I0125b, b/152613457)
गड़बड़ियां ठीक की गईं
- onCommit, onDispos, और onActive को SideEffect और Disposableimpact API (If760e) के लिए बंद कर दिया गया है
- withConstraints को BoxWithConstraints के तौर पर फिर से बनाया गया और फ़ाउंडेशन के लेआउट का इस्तेमाल शुरू किया गया. (I9420b, b/173387208)
फ़ॉन्ट/फ़ॉन्ट फ़ैमिली/टाइपफ़ेस के लिए फ़ैक्ट्री फ़ंक्शन में बदलाव करना
- कैपिटल लेटर से शुरू होने वाले फ़ैक्ट्री फ़ंक्शन जोड़े गए
- लोअरकेस वाले पिछले फ़ैक्ट्री फ़ंक्शन अब काम नहीं करते पहला अक्षर
- नए फ़ैक्ट्री फ़ंक्शन, इसके बजाय FontFamily दिखाते हैं सब-क्लास
- सब-क्लास के कंस्ट्रक्टर छिपाए गए, ताकि वे इन्हें सिर्फ़ फ़ैक्ट्री फ़ंक्शन से बनाया जा सकता हो.
- Font.asFontFamily का नाम बदलकर Font.toFontFamily कर दिया गया था
- (I42aa7)
ComposeContentTestRule
के बारे में जानकारी. यह विस्तार से भी उपलब्ध होगाComposeTestRule
औरsetContent
को परिभाषित करता है, जिसे यहां से हटा दिया गया हैComposeTestRule
.createEmptyComposeRule()
एट्रिब्यूट की वैल्यू में फ़ैक्ट्री का तरीका जोड़ा गया जोComposeTestRule
दिखाता है और आपको. इसका इस्तेमाल तब करें, जब आपको टेस्ट के दौरान अपनी ऐक्टिविटी लॉन्च करनी हो, उदाहरण के लिए,ActivityScenario.launch
(I9d782, b/174472899) का इस्तेमाल करकेanimateAsState का नाम अब animateFooAsState हो गया है, जहां Foo यह है ऐनिमेट किए जा रहे वैरिएबल का टाइप. उदाहरण के लिए, फ़्लोट, Dp, ऑफ़सेट वगैरह (Ie7e25)
अरेंजमेंट इंटरफ़ेस के लिए डेंसिटी अब रिसीवर स्कोप है. (I18aad)
TextFieldValue, AnnotatedString को स्वीकार करता है. हालांकि, यह है केवल एपीआई में बदलाव होता है और बहु-स्टाइल टेक्स्ट में बदलाव नहीं होता अभी तक लागू नहीं किया गया है.
initial
को AdvertisingBuffer कंस्ट्रक्टर पैरामीटर से हटाया गया. (I326d5)
इन अमान्य और कंपोज़िशन रेफ़रंस() की जगह को अबcurrentRecomposScope और RememberPositionReference की जगह रोक दिया जाता है. (I583a8)
AnnotatedString को kotlin.CharSequence से बढ़ाने के लिए बदला जाता है. इसलिए, लंबाई और उप-क्रम अब इंस्टेंस फ़ंक्शन हैं. और एक्सटेंशन फ़ंक्शन हटा दिए जाते हैं. (Iaf429)
अवधि और अपटाइम को लंबे मिलीसेकंड से बदल दिया जाएगा. इससे, उन पर पॉइंटर इनपुट की डिपेंडेंसी हट जाती है क्लास. (Ia33b2, b/175142755, b/177420019)
Composeलाइफ़साइकल ऑब्ज़र्वर की जगह, RememberObserver को शामिल किया जाता है और कंपोज़िशनलाइफ़साइकल ऑब्ज़र्वर को अब बंद कर दिया गया है.
RememberObserver
इसकी जगह ले रहा है बदले गए सिमेंटिक्स के साथCompositionLifecycleObserver
और नए नाम वाले तरीके. नए एपीआई को मैन्युअल तरीके से बदला जा सकता है उन चीज़ों के लिए जिन्हें सिर्फ़ एक बार याद किया जाता है, जो कि हैं और जारी हैं होना चाहिए. हालांकि, अगर रेफ़रंस फ़ाइलonRemembered
कंपोज़िशन में एक से ज़्यादा बार याद रखा गया को कॉल किया गया जहांonEnter
को सिर्फ़ एक बार कॉल किया जाता है.onEnter
अगर ऑब्जेक्ट का इस्तेमाल सब-कंपोज़िशन में किया गया है, तो इसे एक से ज़्यादा बार कॉल किया गया था, जैसे,WithConstraints
औरScaffold
ने सिंगल बनायाonEnter
की कॉल गारंटी गलत है. इसलिए, इसे इस वजह से हटा दिया गयाRememberObserver
.RememberObserver
,onAbandoned
को जोड़ता है. इस प्रक्रिया को तब इस्तेमाल किया जाता है, जब पास किए गए कॉलबैक सेRememberObserver
इंस्टेंस लौटाया जाता हैremember
को किया गया, लेकिन कंपोज़िशन स्थिति में याद नहीं रखा गया और इसलिए,onRemembered
को कभी कॉल नहीं किया जाएगा. यह काम कर सकता है तब होता है जब कोई अपवाद कंपोज़िशन को पूरा करने से पहले खत्म कर देता है या कंपोज़िशन को खारिज कर दिया गया है, क्योंकि राज्य के लिए कंपोज़िशन अब मौजूदा नहीं है या अब नहीं है की ज़रूरत नहीं है. अगर किसी सिंगल कॉलम के बादRememberObserver
का इंस्टेंस ऊपर दिया गया संदर्भ सुझाव किसी बाहरी संसाधन को ट्रैक कर रहा हैonForgotten
औरonAbandoned
, दोनों बताते हैं कि संसाधन की अब ज़रूरत नहीं है. अगर ऑब्जेक्ट काम को ट्रैक कर रहा है शुरू किया गया याonRemembered
,onAbandoned
में दिए गए संसाधन को अनदेखा किया जा सकता है, क्योंकि अगरonRemembered
कॉल किया गया. (I02c36)TransformText.transFormatText का नाम बदलकर TransformText.text किया गया
- TransformText अब एक डेटा क्लास नहीं है (Ie672a)
नीचे दी गई क्लास, अब डेटा क्लास नहीं हैं:
- एनोटेटेड स्ट्रिंग
- पैराग्राफ़ स्टाइल
- स्पैन-स्टाइल
- टेक्स्ट स्टाइल
- फ़ॉन्टवेट
- टेक्स्ट डेकोरेशन
- टेक्स्टजियोमेट्रिक ट्रांसफ़ॉर्म
- टेक्स्टइंडेक्स
- टेक्स्टलेआउट-नतीजे
- TextLayoutइनपुट (Iaff99)
एक्सपेरिमेंट के लिए, monotonicFrameAnimationClockOf तरीके हटाए गए (Ib753f, b/170708374)
ग्लोबल कोऑर्डिनेट के वे तरीके जिन्हें अब इस्तेमाल नहीं किया जा रहा है और बनाया गया है नए विंडो-आधारित कोऑर्डिनेट के तरीके का इस्तेमाल करता है. (Iee284)
कृपया ImeAction.NoAction के बजाय ImeAction.None का इस्तेमाल करें
- कृपया ImeAction.Unspecified (Ie1bcc) के बजाय ImeAction.Default का इस्तेमाल करें
FocusRequester.createRefs को अब प्रयोग के तौर पर मार्क कर दिया गया है, क्योंकि यह बदल सकता है. (I2d898, b/177000821)
SemanticspropertyReceiver.hidden का नाम invisibleToUser में बदल दिया गया है और @ExampleComposeUiApi को मार्क किया गया है. AccessibilityRangeInfo का नाम बदलकर, ProgressBarRangeInfo. statusDescriptionRange का नाम बदलकर, ProgressBarRangeInfo. Accessibility ScrollState का नाम बदलकर, ScrollAxisRange किया गया. हॉरिज़ॉन्टलAccessibility ScrollState का नाम बदलकर हॉरिज़ॉन्टल ScrollAxisRange किया गया. वर्टिकलAccessibility ScrollState का नाम बदलकर,verticalscrollAxisRange किया गया. (आईडी3148)
विज़ुअल ट्रांसफ़ॉर्मेशन को फ़ंक्शनल इंटरफ़ेस में बदला गया (I3bba4)
टेस्टिंग में TestCoroutineDispatcher का फ़ायदा लें (I532b6)
PointerइनपुटData और बदलाव करने वाला Pointer InputChange हटाया गया ताकि वह PointerइनपुटData के सभी फ़ील्ड दे सकें. बनाया गया PointerइनपुटEvent और PointerइनपुटEventData, क्योंकि उनका इस्तेमाल इनमें नहीं किया जाता कोई भी सार्वजनिक एपीआई. (Ifff97, b/175142755)
TextइनपुटService.onStateअपडेट का नाम updatedState (Id4853) के तौर पर बदला गया
DisplaySize को हटाएं, क्योंकि इससे बचना चाहिए. आम तौर पर, यह समय होता है बेहतर होगा कि onRoot() के साइज़ या विंडो के साइज़ का कम से कम इस्तेमाल किया जाए. (I62db4)
वर्शन 1.0.0-alpha10
13 जनवरी, 2021
androidx.compose.foundation:foundation:1.0.0-alpha10
और androidx.compose.foundation:foundation-layout:1.0.0-alpha10
रिलीज़ हुई हैं. वर्शन 1.0.0-alpha10 में ये कमियां हैं.
एपीआई में बदलाव
- ImeOptions और KeyboardOptions अब डेटा क्लास नहीं हैं (I3c898, b/168684531)
- VisualTransformation API में बदलाव
- ऑफ़सेट मैप का नाम बदलकर ऑफ़सेट मैप किया गया
- OffsetMapping.identityOffsetmap का नाम बदलकर, OffsetMapping.Identity
- PasswordTransformation अब डेटा-क्लास नहीं है
- ऑफ़सेट मैपिंग को इसकी अपनी फ़ाइल में ले जाया गया
- (I0bdf3)
- बदलाव करने के एपीआई में किए गए बदलाव
- बदलाव का नाम बदलकर एडिट कमांड किया गया
- एडिटऑपरेशन कंक्रीट लागू करने के लिए कमांड सफ़िक्स जोड़ा गया
- एडिट कमांड की मदद से, अब डेटा क्लास का इस्तेमाल नहीं किया जा सकेगा
- अप्लाई करने के लिए एडिट ऑपरेटरेशन.प्रोसेस फ़ंक्शन का नाम बदला गया
- InputEventListener का नाम बदलकर InputEventCallback कर दिया गया
- (I0a366)
- कॉम्पोनेंट पार्ट और गणित के लिए वेलोसिटी में बदलाव किया गया कार्रवाइयां. (Ib0447)
- @exampleTesting का नाम बदलकर @exampleTestApi में है मिलते-जुलते एक्सपेरिमेंट वाले एपीआई एनोटेशन (Ia4502, b/171464963) के मुताबिक होना चाहिए
- LaZColumn/LazyRow के लिए एक्सपेरिमेंट के तौर पर उपलब्ध स्टिकी हेडर का तरीका (I0a81d)
- Ranamed Color.useOrElse() से Color.takeOrElse() (Ifdcf5)
- अब इस्तेमाल नहीं किया जा सकने वाला TestUiDispatcher. इसके बजाय, Dispatchers.Main का इस्तेमाल करें (Ic171f, b/175385255)
- Foundation Strings.kt (I4a5b7, b/172366489) में टॉगल जोड़ें
- NativeClass को यहां ले जाया गया ui मॉड्यूल और इसे अंदरूनी बनाया गया है. NativeClass के अपडेट किए गए इस्तेमाल लागू करने के लिए बराबर कार्रवाइयां 'क्या MyClass है' आज़माएं. (I4f734)
- FlowRow और FlowColumn का इस्तेमाल नहीं किया जा सकता. इसके बजाय, कृपया कस्टम लेआउट का इस्तेमाल करें. (I09027)
- Modifier.focus() और Modifier.focusRequester() अब काम नहीं करती है. इसके बजाय, Modifier.focusModifier() और Modifier.focusReference() का इस्तेमाल करें. (I75a48, b/175160751, b/175160532, b/175077829)
- SelectionManager को चुने जा सकने वाले अपडेट की सूचना देने के लिए, Selection रजिस्ट्रार.notifySelectableChange की शुरुआत की गई. (I6ff30, b/173215242)
fun Dp.isFinite()
कोval Dp.isFinite
(I50e00) में बदला गया- Constraints#stisfiedBy का नाम बदलकर isSatisfiedBy किया गया. (I9cf5c)
- जोड़ा गया बताया गया है, isUnspecified, और इसके लिएOrElse का इस्तेमाल किया जाता है इन-लाइन क्लास में तय नहीं किया गया कॉन्स्टेंट शामिल है. (I93f7b, b/174310811)
गड़बड़ियां ठीक की गईं
- कोरूटीन पर आधारित नया एपीआई
Animatable
, जो यह पक्का करता है कि सभी को एक-दूसरे के साथ बेहतर अनुभव मिल सके ट्रैक करने में मदद मिलती है. कई डाइमेंशन के नुकसान वाले ऐनिमेशन के साथ काम करने के लिए नया डीकेएएनिमेशन स्पेक (I820f2, b/168014930) - बंद किए गए और रीड-ओनली टेक्स्ट फ़ील्ड (I35279, b/171040474, b/166478534) के लिए सहायता जोड़ी गई
animate()
को अबanimateAsState()
से बदल दिया गया है, इससेT
के बजाय,State<T>
दिखेगा. इससे बेहतर तरीके से परफ़ॉर्मेंस बेहतर न हो, क्योंकि अमान्य होने के दायरे को कम किया जा सकता है जहां स्टेट वैल्यू को पढ़ा जाता है. (Ib179e)- सिमैंटिक रोल एपीआई जोड़ें और इसमें पैरामीटर के तौर पर भूमिका जोड़ें क्लिक किया जा सकने वाला, चुना जा सकने वाला, और टॉगल किया जा सकने वाला SemanticsModifier. बदल दिया जाए Modifier.progressSemantics ताकि स्लाइडर भी इसका इस्तेमाल कर सके. (I216cd)
- नेटिव keyEvent को अब keyEvent.nativeKeyEvent (I87c57, b/173086397) से ऐक्सेस किया जा सकता है
वर्शन 1.0.0-alpha09
16 दिसंबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha09
और androidx.compose.foundation:foundation-layout:1.0.0-alpha09
रिलीज़ हुई हैं. वर्शन 1.0.0-alpha09 में ये कमियां हैं.
एपीआई में बदलाव
स्क्रोल किया जा सकने वाला इंटरफ़ेस जोड़ें
इससे ScrollState और LazyListState को एक सामान्य टाइप करें, जिससे दोनों टाइप में कस्टम स्क्रोलिंग लागू हो सके.
इससे, Scrollable पर smoothscrollBy एक एक्सटेंशन फ़ंक्शन पर ले जाया जाता है, इस सुविधा का फ़ायदा लिया जा सकता है. (I2153b)
LazyVerticalGrid जोड़ा गया. (I17267, b/162213211)
LaZColumnFor, LazyRowFor, LazyColumnForIndexed, और LazyRowForIndexed का इस्तेमाल बंद कर दें. इसके बजाय, LaZColumn और LazyRow का इस्तेमाल करें (I5b48c)
पॉइंटर इनपुट एपीआई को निलंबित करने के लिए, नाम बदला गया HandlePointerinputScope से AwaitPointerEventScope और हैंडलर की इनपुट वैल्यू को WwaitPointerEventScope() में ले जाएगा. (Idf0a1, b/175142755)
LaziListState.layoutInfo को जोड़ा गया था, जो सिर्फ़ दिखने वाले आइटम के साइज़ और ऑफ़सेट की सूची दिखाता है (If8678, b/170472532)
प्रयोग के तौर पर पॉइंटर जोड़ने के लिए इस्तेमाल किया गया एनोटेशन (Ia7a24) हटाया गया
TextFields के लिए इंटरैक्शनState सपोर्ट जोड़ दिया गया है. (I61d91)
LaZColumn/Row के लिए रिवर्सलेआउट पैरामीटर जोड़ें. जब
true
आइटम नीचे से ऊपर तक बनाए जाएंगे औरLazyListState.firstVisibleItemIndex == 0
का मतलब है कि पहला आइटम सबसे नीचे मौजूद है. (I552ae, b/166589935)LazyColumn के लिए, वर्टिकल अरेंजमेंट पैरामीटर जोड़ा गया. LazyRow के लिए, हॉरिज़ॉन्टल अरेंजमेंट पैरामीटर जोड़ा गया. आइटम की व्यवस्था से हम आइटम के बीच स्पेस जोड़ सकते हैं और उनका क्रम तय कर सकते हैं. ऐसा तब किया जाता है, जब हमारे पास आइटम का कम से कम साइज़ भरने के लिए, उनमें से काफ़ी संख्या नहीं होती है. (Icf79a, b/170394300)
डिटेक्ट मल्टीटच जेस्चर अब एक ही कॉलबैक का इस्तेमाल करता है, जिसे एक साथ इस्तेमाल किया जा सकता है सेंट्रोइड, पैन, ज़ूम, और रोटेट पैरामीटर. (Ie6e1c)
ContentDrawScope को यूज़र इंटरफ़ेस (यूआई-ग्राफ़िक) में ले जाया गया मॉड्यूल को DrawScope के साथ जोड़ना होता है. (Iee043, b/173832789)
गड़बड़ियां ठीक की गईं
- ऑफ़सेट मॉडिफ़ायर में Lambdas, अब फ़्लो के बजाय IntOffset को लौटाता है. (Ic9ee5, b/174137212, b/174146755)
स्लॉटटेबल, स्लॉटरीडर, और सार्वजनिक एपीआई का इस्तेमाल करके, खास ऐप्लिकेशन को बदलने की सुविधा. इन्हें इसके तौर पर मार्क किया गया था InternalComposeAPI पहले से था. अब ये अंदरूनी इस्तेमाल के लिए हैं लिखें.
कंपोज़िशन डेटा और कंपोज़िशन ग्रुप को निकालने के लिए ui-tooling API का इस्तेमाल करना कंपोज़िशन जानकारी. ये सार्वजनिक हैं, लेकिन यह ui-tooling API के बाहर इस्तेमाल किया जाता है, जो वह रॉ जानकारी जिसे ui-tooling API (एपीआई) बताता है (I31a9c)
इसके लिए ShaderBrush का रिफ़ैक्टर किया गया जब लेज़ी तरीके से शेडर इंस्टेंस बनाया जाता है, ड्रॉइंग के साइज़ की जानकारी आस-पास की कोई जगह उपलब्ध हो. यह ऐसे ग्रेडिएंट निर्धारित करने में उपयोगी होता है किसी कंपोज़ेबल की ड्रॉइंग का पूरा हिस्सा इस्तेमाल करें कंपोज़िशन के समय पर, पसंद के मुताबिक DrawModifier लागू करने होंगे.
अब काम नहीं करने वाले ग्रेडिएंट फ़ंक्शन कंस्ट्रक्टर एपीआई एक ग्रेडिएंट ऑब्जेक्ट पर फैक्ट्री तरीकों के पक्ष में. (I511fc, b/173066799)
Modifier.focusObserver अब काम नहीं करता. इसके बजाय, Modifier.onFocusChanged या Modifier.onFocusEvent का इस्तेमाल करें (I30f17, b/168511863, b/168511484)
'ऑटोमैटिक भरने की सुविधा' एपीआई अब एक प्रयोग के तौर पर उपलब्ध एपीआई है और इसके लिए ऑप्ट-इन करना ज़रूरी है (I0a1ec)
FocusRequester इंस्टेंस बनाने के लिए, नुकसान पहुंचाने वाले एलान जोड़ना (I35d84, b/174817008)
AccessibilityLabel का नाम बदलकर contentDescription कर दिया गया है. AccessibilityValue का नाम बदलकर statusDescription कर दिया गया है. (I250f2)
सेलेक्शन रजिस्ट्रार में कई नए फ़ंक्शन लॉन्च किए गए. साथ ही, onPositionChange का नाम बदलकर, InformationPositionChange रखा गया. (Ifbaf7)
Androidमालिक का बनाया गया इंटरनल (Ibcad0, b/170296980)
InfiniteRepableSpecification (I668e5) बनाने के लिए नया infinite Chatable फ़ंक्शन
Applier
इंटरफ़ेस को आसान बनाने के लिए बदल दिया गया है पेड़ों को ऊपर से नीचे की ओर न रखकर, उन्हें नीचे की ओर दिखाना.insert()
तरीके का नाम बदलकर,insertTopDown()
कर दिया गया है.नया तरीका
insertBottomUp()
जोड़ा गया.Applier, जिस ट्री में बदलाव कर रहा है उसमें नोड जोड़ता है
insertTopDown()
याinsertBottomUp()
का इस्तेमाल किया जा रहा है. यह इस पर निर्भर करता है कि जो बेहतर परफ़ॉर्म करता है.LayoutNode
औरView
जैसे कुछ पेड़ बहुत ज़्यादा दिखते हैं और टॉप-डाउन के मुकाबले बॉटम-डाउन को बनाने में ज़्यादा असरदार होते हैं. इस बदलाव से पहले, बॉटम-अप को लागू करने के लिए, कई निवेशनों की ज़रूरत थी. की ज़रूरत होती है. इसे हर ऐप्लायर में कॉपी किया जाता है, जिसे बॉटम-अप की ज़रूरत होती है. परफ़ॉर्मेंस के लिए कंस्ट्रक्शन. इस बदलाव के साथApplier
एक ट्री बनाने के लिएinsertBottomUp()
को ओवरराइड करता है ट्री टॉप-डाउन बनाने के लिएinsertTopDown()
. (Icbdc2)PaintterResource API जोड़ा गया ओपैक लोडिंग पेंटर ऑब्जेक्ट को हैंडल करने के लिए रास्टराइज़ किए गए ऐसेट फ़ॉर्मैट, जैसे कि PNG या वेक्टरDrawables. उपभोक्ताओं के पास अब इससे पहले कि ऐसेट के टाइप का पता चल सके, और पेंटर ऑब्जेक्ट पाने के लिए इस तरीके को कॉल कर सकते हैं इमेज कंपोज़ेबल या पेंटर मॉडिफ़ायर में इस्तेमाल करने के लिए. (I2c703, b/173818471)
BuildAnnotatedString फ़ैक्ट्री फ़ंक्शन को क्रम से जोड़ा गया है AnnotatedString को बनाने के लिए. ऐसी व्याख्या वाली स्ट्रिंग जो अब काम नहीं करती बिल्डर फ़ंक्शन का इस्तेमाल करें. (Idfe0b)
वर्शन 1.0.0-alpha08
2 दिसंबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha08
और androidx.compose.foundation:foundation-layout:1.0.0-alpha08
रिलीज़ हुई हैं. वर्शन 1.0.0-alpha08 में ये कमियां हैं.
एपीआई में बदलाव
CoreTextField
सेmaxLines
पैरामीटर हटाया गया. अगर आपको टेक्स्ट फ़ील्ड की ऊंचाई को लाइनों की संख्या से सीमित करना है, तोBasicTextField
का इस्तेमाल करें. (Iec002)await*TouchSlop()
तरीकों को इसमें बदला गया पॉइंटर डाउन का पता नहीं लगाया और उसका नाम बदलकर यह किया*OrCancellation
. साथ ही, इस ज़रूरतों को भी हटायाorientationLock
पैरामीटर. (Ie96e1)- कंपोज़ेबल लैम्डा पैरामीटर के नाम और उसकी पोज़िशन के लिए लिंट की जांच जोड़ी गई, ताकि यह पता लगाया जा सके कि वह कंपोज़ेबल के दिशा-निर्देशों के मुताबिक है या नहीं.
साथ ही, लिंट की जांच और दिशा-निर्देश के मुताबिक, कुछ एपीआई को
children
का इस्तेमाल करके उनके पीछे के लैम्डा के नाम के तौर परcontent
पर माइग्रेट किया गया. (Iec48e) foundation:foundation-text
एपीआई कोfoundation:foundation
में ले जाया गया. पैकेज का स्ट्रक्चर पहले जैसा ही रहा (Id3eb2)- नया मल्टीटच जेस्चर डिटेक्टर, जिसमें यह शामिल है रोटेशन, ज़ूम और पैनिंग का पता लगाने के लिए सहायक. (Ic459d)
- हाथ के जेस्चर का नया डिटेक्टर, जिसमें कर्सर को निलंबित किया गया है स्क्रीन की दिशा को लॉक करने के साथ-साथ इनपुट एपीआई. (Icef25)
- वेक्टरAsset का नाम बदलकर ImageImage किया गया वेक्टरAsset को बिल्डर में ले जाया गया और इसका नाम बदला गया के अनुसार Imageवेक्टर की आंतरिक क्लास होनी चाहिए एपीआई काउंसिल के दिशा-निर्देश. वेक्टरAssetबिल्डर के टाइपalias को इसमें जोड़ा गया Compat के लिए Imageवेक्टर.Builder का लिंक. (Icfdc8)
- ImageAsset का नाम बदला और से संबंधित तरीके का इस्तेमाल करें. (Ia2d99)
- फ़ाउंडेशन सिमेंटिक्स प्रॉपर्टी को ui (I6f05c) में ले जाया गया
कोरूटीन पर आधारित स्क्रोलिंग एपीआई जोड़ें:
यह नीति, LazyListState.stapToItem और LazyListState.smoothscrollBy के निचले लेवल को जोड़ती है स्क्रोल कंट्रोल के लिए एपीआई. ये एपीआई, स्क्रोलिंग को कंट्रोल करने के लिए सस्पेंड इंटरफ़ेस उपलब्ध कराते हैं जो वापस आने से पहले स्क्रोल के खत्म होने का इंतज़ार करता है. (Ie5642)
BasicTextField, TextField, और OutlinedTextField में singeLine पैरामीटर जोड़ा गया. इस पैरामीटर को 'सही' पर सेट करें, ताकि टेक्स्ट फ़ील्ड को हॉरिज़ॉन्टल तौर पर स्क्रोल की जा सके. (I57004, b/168187755)
टैप करने, दो बार टैप करने, और दबाकर रखने के लिए, जेस्चर डिटेक्टर. नए सस्पेंडिंग पॉइंटर का इस्तेमाल करके, प्रेस इंडिकेटर इनपुट. इसमें कुछ सुविधाएं भी जोड़ी गई हैं, ताकि ताकि डेवलपर खुद के जेस्चर डिटेक्टर लिख सकें. (I00807)
Modifier.focusable को फ़ाउंडेशन में जोड़ा गया है. इसका इस्तेमाल किसी कॉम्पोनेंट में, सही सिमेंटिक्स और सुलभता के साथ, फ़ोकस करने लायक व्यवहार जोड़ने के लिए करें. (I41eb9, b/152525426, b/162865824)
पहले काम न करने वाले एपीआई हटा दिए गए थे: बॉर्डर हटा दिया गया था. इसके बजाय, BorderStroke का इस्तेमाल करें. Modifier.drawBorder को हटाया गया. इसके बजाय, Modifier.बॉर्डर का इस्तेमाल करें. Modifier. डाले गए शब्द को हटा दिया गया है. इसके बजाय, Modifier.align का इस्तेमाल करें. स्टैक हटा दिया गया. इसके बजाय, Box का इस्तेमाल करें (I32c2b, b/172470874)
ऐब्सलूट अरेंजमेंट का नाम बदलकर शॉपिंग अबरा शब्द कर दिया गया है. (If26f2)
गड़बड़ियां ठीक की गईं
- DrawModifier API को androidx.compos.ui पैकेज को androidx.compos.ui.draw पैकेज को देख सकते हैं. यहां DrawModifierExpiration.kt फ़ाइल बनाई गई इसमें सहायता के लिए टाइपएलियास/हेल्पर मेथड शामिल हैं माइग्रेशन की प्रोसेस को रोकने से, एपीआई. (Id6044, b/173834241)
- Modifier.drawlayer का नाम बदलकर Modifier.graphicslayer किया गया साथ ही, मिलती-जुलती क्लास को Graphicslayer के हिसाब से अपडेट किया गया एपीआई काउंसिल से मिले सुझाव, शिकायत या राय. (I0bd29, b/173834241)
<T>
को SubcomposLayout के एलान से हटा दिया गया. इसका इस्तेमाल, टाइप तय किए बिना किया जा सकता है. (Ib60c8)- Made PointerइनपुटData का अपटाइम और स्थान फ़ील्ड अमान्य नहीं हो सकते. (Id468a)
- Materialथीम अब चुने गए हैंडल और बैकग्राउंड के लिए सही रंग सेट करती है. चुने गए कलर को पसंद के मुताबिक बनाने के लिए, नॉन-मटीरियल ऐप्लिकेशन मैन्युअल तरीके से AmbientTextSelectionColors इस्तेमाल कर सकते हैं. (I1e6f4, b/139320372, b/139320907)
- Box के अलाइनमेंट पैरामीटर का नाम बदलकर, contentalignment कर दिया गया है. (I2c957)
- ऑफ़सेटPx मॉडिफ़ायर का नाम बदलकर ऑफ़सेट कर दिया गया. वे अब स्टेट के बजाय, लैम्डा पैरामीटर को इस्तेमाल कर रहे हैं. (Ic3021, b/173594846)
- WindowManager.isWindowFocus किया गया यह पता लगाने के लिए किया गया है कि होस्ट विंडो फ़ोकस में है या नहीं. साथ ही, WindowFocusDetailsr जोड़ा गया है, जो onWindowFocusChanged कॉलबैक उपलब्ध कराता है. (I53b2a, b/170932874)
- TextइनपुटService#onStateUpdated (I3e8f5, b/172239032, b/171860947) में queryइनपुट पैरामीटर जोड़ा गया
- अपडेट किया गया TextFieldValue API
- TextFieldValue.composition को रीड ओनली किया गया
- चुनी गई रेंज (I4a675, b/172239032) की वजह से, हटाया गया अपवाद
- अब काम नहीं करने वाले ऐंबियंट के नाम के तौर पर
Ambient
को सफ़िक्स के तौर पर रखा गया है. ऐंबियंट और कंपोज़ एपीआई के दिशा-निर्देशों के मुताबिक, इनकी जगह ऐंबियंट प्रीफ़िक्स के तौर पर नई प्रॉपर्टी जोड़ी गई हैं. (I33440) - Android टाइपफ़ेस रैपर जोड़ा गया. कोई Android डिवाइस लोड किया जा सकता है
typeface
फ़ंक्शन यानीtypeface(Typeface.DEFAULT)
के ज़रिए टाइपफ़ेस.typefaceFromFontFamily()
का नाम बदलकरtypeface()
(I52ab7) भी किया गया - यह जांचने के लिए लिंट चेक जोड़ा गया कि मॉडिफ़ायर कारखाने
@Composable
के तौर पर मार्क होने के बजाय,androidx.compose.ui.composed {}
का अंदरूनी तौर पर इस्तेमाल करते हैं. (I3c4bc) - यह जांचने के लिए लिंट चेक जोड़ा गया कि मॉडिफ़ायर के फ़ैक्ट्री फ़ंक्शन, मॉडिफ़ायर पर एक्सटेंशन के रूप में परिभाषित किए गए हैं या नहीं, ताकि उन्हें आसानी से एक साथ जोड़ा जा सके. (I07981)
- सिमैंटिक आर्ग्युमेंटmergeAllDescendants का नाम बदलकर यह किया गया MergeDescendants. (आईबी6250)
- टेस्ट में समय नियंत्रण (TestAnimationClock और इसके इस्तेमाल) है अब प्रयोग के तौर पर उपलब्ध (I6ef86, b/171378521)
- पुराना ui-test मॉड्यूल और उसके स्टब हटाएं (I3a7cb)
- TextUnit.Inherit का नाम बदलकर, TextUnit.Unit.Unit को अन्य यूनिट के मुताबिक तय नहीं किया गया है. (Ifce19)
- अलाइनमेंट इंटरफ़ेस को अपडेट करके चालू कर दिया गया है. (I46a07, b/172311734)
foundation:foundation-text
मॉड्यूल कोfoundation:foundation
(Idac0f) में मर्ज कर दिया गया है- प्लेस(ऑफ़सेट) और प्लेसरिलेटिव(ऑफ़सेट) का बहिष्कार करें. इसके बजाय, int ऑफ़सेट वाले ओवरलोड का इस्तेमाल करें (I4c5e7)
LayoutIdParentData
के लिए,id
का नाम बदलकरlayoutId
कर दिया गया.Measurable.id
का नाम बदलकरMeasurable.layoutId
कर दिया गया. (Iadbcb, b/172449643)
वर्शन 1.0.0-alpha07
11 नवंबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha07
, androidx.compose.foundation:foundation-layout:1.0.0-alpha07
, और androidx.compose.foundation:foundation-text:1.0.0-alpha07
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha07 में ये कमिट हैं.
एपीआई में बदलाव
Modifier.fillMaxSize[Width|Height]
की तरह ही, अब हमLazyColumn/Row
(I797e2, b/166586426) के स्कोप के अंदरModifier.fillParentMaxSize[Width|Height]
में भिन्नों का समर्थन करते हैंKeyboardOptions.toImeOptions
को सार्वजनिक एपीआई से हटाया गया. (Ic2e45)- फ़ाउंडेशन AmbientTextStyle, इसमें शामिल टेक्स्ट स्टाइल, और AmbientContentColor अब काम नहीं करता. इसके बजाय, Material लाइब्रेरी में मौजूद नए वर्शन का इस्तेमाल करें. नॉन-मटीरियल ऐप्लिकेशन के लिए, आपको खुद के डिज़ाइन सिस्टम के हिसाब से थीम बनाने वाले ऐंबियंट बनाने चाहिए, जिन्हें आपके खुद के कॉम्पोनेंट में इस्तेमाल किया जा सके. (I74acc, b/172067770)
- Foundation.Text को अब हटा दिया गया है और उसे content.Text से बदल दिया गया है. ऐसे बेसिक और बिना डायलॉग वाले टेक्स्ट एपीआई के लिए, androidx.compos.foundation.BasicText देखें, जो किसी थीम की वैल्यू का इस्तेमाल नहीं करता. (If64cb)
- TextFields (Ib2a5b) में maxLines जोड़ी गई
- KeyboardOptions (Ida7f3) को स्वीकार करने के लिए, TextFields को अपडेट करें
- TextFields (I9ca32) में इस्तेमाल करने के लिए KeyboardOptions जोड़े गए
- BasicText को टेक्स्ट के लिए डिज़ाइन-अनोपिन किए गए API के रूप में जोड़ता है, जो BasicTextField के समानांतर होता है. (I28268)
- प्रयोग के तौर पर इस्तेमाल किया जा रहा LazyDsl एनोटेशन हटा दिया गया है. अब @OptIn (Idab7a, b/166584730) को जोड़े बिना, LazyColumn/LazyRow का इस्तेमाल किया जा सकता है
- BaseTextField को बंद कर दिया गया है. इसके बजाय, BasicTextField का इस्तेमाल करें. (I896eb)
- CoreTextField और BaseTextField (Id4cea) की जगह BasicTextField को जोड़ दिया गया है.
- काम नहीं करने वाले LazyColumnITEMS/LazyRow आइटम (I1d8a8) को हटाएं
- साइज़ के हिसाब से साइज़ देने के लिए, काम न करने वाले कंपोज़ेबल हटा दिए गए हैं. (I18537, b/171811496)
- रिलेटिवपैडिंग फ़्रॉम का नाम बदलकर पैडिंग कर दिया गया. लेआउट बाउंड से टेक्स्ट बेसलाइन तक की दूरी तय करने में सुविधा के तौर पर, जगहFromBaseline मॉडिफ़ायर जोड़ा गया है. (I0440a, b/170633813)
- MatchHightConstraintsFirst पैरामीटर कोAspectRatio मॉडिफ़ायर में जोड़ा गया था, जिसका इस्तेमाल विड्थ कॉंस्डेंट को आज़माने से पहले, लंबाई के कंस्ट्रेंट के साइज़ के लिए मॉडिफ़ायर तय करने के लिए किया जा सकता है. (Ie7c43, b/155290593)
- अब काम नहीं करने वाले DpConstraints को हटा दिया गया है. (I87884, b/171702471)
गड़बड़ियां ठीक की गईं
- पेश किया गया स्केलफ़ैक्टर
स्केल दिखाने के लिए इनलाइन क्लास
हॉरिज़ॉन्टल और वर्टिकल के लिए फ़ैक्टर
एक-दूसरे से अलग ऐक्सिस के क्रम में
का इस्तेमाल करें.
- कंप्यूटस्केलफ़ैक्टर तरीका इसमें जोड़ा गया: कॉन्टेंट स्केल
- परफ़ॉर्म करने के लिए ContentScale.FillBounds जोड़ा गया सोर्स को बढ़ाने के लिए नॉन-यूनिफ़ॉर्म स्केलिंग डेस्टिनेशन का पूरी तरह से इस्तेमाल कर लेता है.
- कंप्यूट करने के लिए ऑपरेटर के तरीके जोड़े गए साइज़ पैरामीटर के साथ स्केल फ़ैक्टर पैरामीटर.
- (Ic96a6, b/172291582)
- CaptureToBitmap CaptureToImage में ले जाया गया. (I86385)
- CoreText को @InternalTextApi के तौर पर मार्क करता है. इसके बजाय, BasicText का इस्तेमाल करें. (I6aaeb)
- KeyboardOptions का नाम बदलकर ImeOptions (I82f36) रखें
- KeyboardType और ImeAction को KeyboardOptions (I910ce) में ले जाया गया
- CoreTextField को @InternalTextApi के तौर पर मार्क किया गया है. इसके बजाय BasicTextField का इस्तेमाल करें (Ie2469)
- प्रयोग के तौर पर इस्तेमाल किया जाने वालाSubcomposLayoutApi एनोटेशन को हटाया गया. SubcomposLayout को अब बिना @OptIn (I708ad) जोड़े इस्तेमाल किया जा सकता है
- ui-test-junit4 मॉड्यूल (Ib91f8) की शुरुआत करें
- Color.Unspecified के लिए आइकॉन एपीआई को अपडेट किया गया को संभावित रंग के रूप में दिखाया जा सकता है, जो दिए गए बिना ColorFilter वाली ऐसेट या पेंटर. पहले यह, रंग की टिनिंग को अनदेखा करने की कोशिश करता है. जो पारदर्शी रंग में बदल जाएगा और कुछ भी रेंडर नहीं हुआ. (I049e2, b/171624632)
- मेज़रमेंटनतीजे को MeasurementScope से बाहर ले जाया गया. (Ibf96d, b/171184002)
- लेआउट से जुड़े कई सिंबल को androidx.compos.ui से androidx.compos.layout.ui में ट्रांसफ़र कर दिया गया है. (I0fa98, b/170475424)
- androidx.ui.test को androidx.compos.ui.test (I9ffdb) में ले जाया गया
- FirstBaseline और LastBaseline को androidx.compos.ui.layout पैकेज (Ied2e7) में ले जाया गया है
- कॉलबैक के बिना SelectionContainer जोड़ा गया (Ibfadb)
- सेलेक्शनहैंडल के लिए टेस्ट जोड़ें चुनने के कंटेनर में मौजूद जगहें. (Ie93db)
- जोड़ा गया कीबोर्ड अपने-आप सही IME विकल्प (I57b8d)
वर्शन 1.0.0-alpha06
28 अक्टूबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha06
, androidx.compose.foundation:foundation-layout:1.0.0-alpha06
, और androidx.compose.foundation:foundation-text:1.0.0-alpha06
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha06 में ये कमियां हैं.
एपीआई में बदलाव
- androidx.compos.foundation.Icon को androidx.compos.material.Icon में ले जाया गया है. अगर आपको मटीरियल लाइब्रेरी का इस्तेमाल नहीं करना है, तो पेंटर के साथ इमेज कॉम्पोनेंट / Modifier.Paint() का इस्तेमाल भी किया जा सकता है. (I9f622)
- Modifier.scrollable, ScrollableColumn, और LazyColumnFor (I81566, b/169509805) में PartnershipState को जोड़ा गया
- LINEByBaseline को RowScope में जोड़ा गया था और अलाइनWithSibls का नाम बदलकर, आपस में (I06503, b/170628732) किया गया
- Box को एक इनलाइन फ़ंक्शन बनाया गया. (Ibce0c, b/155056091)
- CoreTextField (Ibee58, b/143687793) में maxLines जोड़ी गई
- CoreTextField में सॉफ़्टरैप जोड़ा गया. (I21a4b)
गड़बड़ियां ठीक की गईं
- इसमें वेक्टरPainter का बहिष्कार करें याद रखें कि वे बेहतर यह बताता है कि कंपोज़ेबल एपीआई 'याद रखें' का इस्तेमाल करता है डेटा को हर तरह के उपयोगकर्ताओं के लिए कंपोज़िशन. (Ifda43)
- ComposeTestRule में ट्रांज़िशन चालू करें; इसका विकल्प हटाएं ComposeTestRule से ब्लिंक करने वाले कर्सर को चालू करें. (If0de3)
- CoreTextField (I72e6d) में सिंगल लाइन वाले कीबोर्ड का विकल्प जोड़ा गया
- दायरा एपीआई का नाम बदलकर यह किया गया बेहतर तरीके से अपनी भावनाएं ज़ाहिर करने के लिए CornerRadious चैनल इसका इस्तेमाल कैसे किया जाता है. यह बताने के लिए दस्तावेज़ अपडेट किए गए नेगेटिव कोने की रेडिया को आपस में जोड़ा गया है शून्य तक. (I130c7, b/168762961)
- बनाए गए मॉडिफ़ायर (Idee08, b/163494569) में, इंस्पेक्टर की जानकारी देने की सुविधा जोड़ें
- जोड़ा गया कीबोर्ड-कैपिटलाइज़ेशन IME विकल्प (I8ac38)
- Rtl हैंडल की पोज़िशन ठीक करें. (I6e1e0)
- ब्रेकिंग बदलाव: PointerइनपुटFilter.onPointerEvent(...) से रिटर्न वैल्यू हटा दी गई है. यह देखते हुए कि पॉइंटर इवेंट में, सिर्फ़ इस्तेमाल से जुड़ा डेटा ही बदला जा सकता है. PointerइनपुटFilter.onPointerEvent(...) से डेटा लौटाने के बजाय, अब आप सिर्फ़ पास किए गए PointerEvents के खपत डेटा को बदल सकते हैं. (I6acd0)
- चुनने के मेन्यू में SelectAll विकल्प जोड़ा गया (Ief02b)
वर्शन 1.0.0-alpha05
14 अक्टूबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
, और androidx.compose.foundation:foundation-text:1.0.0-alpha05
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha05 में ये कमियां हैं.
एपीआई में बदलाव
- CoreTextField अब कर्सर की सुविधा (Id23aa) के साथ काम करता है
contentColor() और currentTextStyle() एपीआई को बंद करता है. साथ ही, इन्हें AmbientContentColor और AmbientTextStyle एंबिएंट से बदल देता है. किसी भी दूसरे ऐंबियंट की तरह, ऐंबियंट प्रॉपर्टी पर
.current
का इस्तेमाल करके, मौजूदा वैल्यू को ऐक्सेस किया जा सकता है. यह बदलाव इसलिए किया गया था, ताकि एक जैसा काम करने के साथ-साथ एक ही काम करने के कई तरीकों से बचा जा सके. इसके अलावा, यह कुछ ऐंबियंट प्रॉपर्टी के नाम बदल देता है, ताकि उनके मकसद को इस तरह समझा जा सके:- ContentColorAmbient -> ऐंबियंट कॉन्टेंट कलर
- टेक्स्टस्टाइल ऐंबियंट -> ऐंबियंटटेक्स्ट स्टाइल
- इंडिकेटर ऐंबियंट -> ऐंबियंटइंडिकेशन
- प्रमुखता से दिखाएं -> ऐंबियंटएसिसलेवल
- रिपलथीमएम्बिएंट -> AmbientRippleTheme (I37b6d)
गड़बड़ियां ठीक की गईं
- मानक तय करने के हिस्से के तौर पर , तो इनलाइन क्लास के लिए सेंटिनल वैल्यू रंग का नाम बदलें.रंग को अनसेट करें.इसकी जानकारी नहीं है अन्य इनलाइन क्लास (I97611, b/169797763) के साथ समानता के लिए
- कॉपी करें/चिपकाएं/कट करें सुलभता कार्रवाइयां जोड़ी गईं (I6db4f)
- TextOverflow.कोई जानकारी नहीं दी गई है. जब ओवरफ़्लो कोई नहीं होता है, तो टेक्स्ट ओवरफ़्लो को हैंडल नहीं करेगा और यह LayoutNode को अपने असली आकार की रिपोर्ट करेगा. (I175c9, b/158830170)
- साइज़ अपडेट किया गया.इसके बारे में जानकारी नहीं है पैरामीटर के बजाय Flood.NaN होना चाहिए Flood.POSITIVE_INFINITY. Painter को लागू करने की सेटिंग को यहां अपडेट किया गया साइज़ की भी जांच करें.साथ ही, तय नहीं है छोटे साइज़ के तौर पर. (I95a7e)
- पेजिंग कंपोज़ मॉड्यूल और पेजिंग इंटिग्रेशन जोड़ा गया (Ib85da)
- शून्य वैल्यू वाली वैल्यू पाने के लिए, LazyListScope में बदलाव करें (I1765b)
- OnPositionedModifier का नाम बदलकर OnGloballyPositionedModifier किया गया और onPositioned() का नाम बदलकर, onGloballyPositioned() कर दिया जाता है. (I587e8, b/169083903)
- LazyColumn/Row (Idc16d) के लिए सैंपल जोड़े गए
- खाली सूची (I06647) को अनुमति देने के लिए, आइटम और itemsIndex किए गए तरीकों की गड़बड़ी ठीक करें
- इंस्पेक्टर की जानकारी देने के लिए डीएसएल जोड़ें (Ic9a22)
- लाॅन्ग प्रेस को टेक्स्ट में ले जाएँ. (Iff2bc)
- टेक्स्ट और डेमो मोड में चुनने की सुविधा बंद करें. (Ie7e97)
- सुलभता के लिए, AnnotatedString से SpannableString में बदलने की सुविधा का इस्तेमाल करना. (Ief907)
PointerInputFilter.onPointerInput(...)
को हटा दिया गया है. इसकी जगहPointerInputFilter.onPointerEvent(...)
का इस्तेमाल किया जाना चाहिए. (I6f04a)
वर्शन 1.0.0-alpha04
1 अक्टूबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
, और androidx.compose.foundation:foundation-text:1.0.0-alpha04
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha04 में ये कमियां हैं.
एपीआई में बदलाव
- स्टैक का नाम बदलकर Box किया गया. create.foundation.layout में, नए Box की जगह, पहले से मौजूद फ़ाउंडेशन.Box की जगह को हटा दिया जाएगा. नए Box का तरीका यह है कि एक से ज़्यादा बच्चे होने पर, बच्चों को एक के ऊपर एक स्टैक किया जाए - यह पिछले Box से अलग है, जो कॉलम की तरह व्यवहार कर रहा था. (I94893, b/167680279)
- बॉक्स डेकोरेशन पैरामीटर अब काम नहीं करते. अगर आपको अपने बॉक्स पर सजावट/पैडिंग की सुविधा चाहिए, तो इसके बजाय मॉडिफ़ायर का इस्तेमाल करें (Modifier.background, Modifier.background, Modifier.जगह) (Ibae92, b/167680279)
- नई LaZListState क्लास जोड़ें. इससे स्क्रोल पोज़िशन की निगरानी और कंट्रोल की जा सकती है LazyRow और LazyColumn के कॉम्पोनेंट. इसका इस्तेमाल करके इंस्टेंस बनाए जा सकते हैं RememberLazyListState() और उसके स्टेट पैरामीटर में पास की गई कॉम्पोनेंट. फ़िलहाल, सबसे पहले दिखने वाले आइटम और ऑफ़सेट ये हो सकते हैं इस शुरुआती वर्शन में देखा गया है. (Ic7cb7, b/159307669)
- लेज़ी लिस्ट पोज़िशन और स्क्रोल ऑफ़सेट को अब सेव किया जाता है और मनोरंजन की सभी गतिविधियों का डेटा वापस लाया गया (Ie045f, b/166589058)
- लंबी क्लिक वाली सिमैंटिक कार्रवाई जोड़ें (I6281b, b/156468846)
- म्यूटेटर म्यूटर यूटिलिटी को इसका एक म्यूटेटर रखने के लिए जोड़ा गया समय के साथ एक जैसी स्थिति और प्राथमिकता के हिसाब से विरोधी म्यूटर को रद्द करना (I3f975)
- एनोटेट किया गया रूटAnimationClockफ़ैक्ट्री, trafficsEnabled, blinkingCursorEnabled और textinputServiceFunction को @VisibleForTesting, ऐप्लिकेशन को इंटरनल एपीआई बनाएं और उसके kdoc (I554eb, b/168308412) को छिपाएं
- स्ट्रिंग इनपुट वाले टेक्स्ट से inlineContent पैरामीटर हटाया गया. इसका इस्तेमाल नहीं किया जाएगा, क्योंकि इनलाइन कॉन्टेंट को AnnotatedString के साथ काम करना ज़रूरी है. (Ief403)
- बंद किए गए कस्टम अरेंजमेंट एपीआई हटा दिए गए हैं. (Ic576d, b/168297922, b/168297923)
unbounded
पैरामीटर को wrapContentSize मॉडिफ़ायर में जोड़ा गया. इससे, इनफ़ाइनाइट मैक्स कंस्ट्रेंट के साथ लेआउट एलिमेंट को मेज़र करने की सुविधा चालू होती है. (I77951, b/158559319)- हमने लेआउट स्कोप के कॉन्टेंट को स्टैटिक तरीके से इंपोर्ट करने से रोका. उदाहरण के लिए, RowScope में अलाइनमेंट को एक जगह से दूसरी जगह भेजने पर. इसके बजाय, साफ़ तौर पर स्कोप वाले विकल्प का इस्तेमाल किया जाना चाहिए:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
गड़बड़ियां ठीक की गईं
- कई Graphics API को अपडेट किया गया
- अपडेट किया गया स्केल और रोटेशन एक ही डेटा का इस्तेमाल करने के लिए ट्रांसफ़ॉर्मेशन एपीआई पिवट दिखाने के लिए ऑफ़सेट पैरामीटर अलग फ़्लोट के बजाय निर्देशांक x/y निर्देशांक के लिए पैरामीटर DrawScope और DrawTransform
- Rect.expandToInclude और Rect.join को हटाया गया तरीका
- ओवल दिखाने के लिए, रेडियस के दस्तावेज़ अपडेट किए गए एलिप्टिकल ट्रेनर के अलावा
- यह जानकारी देने के लिए दस्तावेज़ जोड़े गए इनलाइन रेडियस के लिए सार्वजनिक कंस्ट्रक्टर class का इस्तेमाल सीधे तौर पर नहीं किया जाना चाहिए. इसके बजाय, इसे सीधे कॉल किया जाना चाहिए दायरा वाले ऑब्जेक्ट के ज़रिए इंस्टैंशिएट किया जाना चाहिए उनके फ़ंक्शन कंस्ट्रक्टर
- टॉपराइट की क्वेरी करने के लिए, राउंडआरेक्ट एपीआई हटाया गया, बॉटमराइट, बॉटमसेंटर वगैरह.
- 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)
- हर स्क्रोल के दौरान ग़ैर-ज़रूरी बदलाव न करके, LazyColumnFor/LazyRowFor स्क्रोलिंग के लिए परफ़ॉर्मेंस ऑप्टिमाइज़ेशन (I64f65, b/168293643, b/167972292, b/165028371)
- स्क्रोल करने के बाद आइटम को बदलने और आइटम को बदलने के बाद, अपने-आप स्क्रोल होने की सुविधा लागू की गई. इससे, अब हम आखिर में (I220ab, b/161480164, b/167855468) के दौरान कोई खाली जगह नहीं दिखाते हैं.
- अब ScrollableContainer और LazyColumnFor जैसे समान दिशा वाले कंटेनर में नेस्ट किए जा सकने वाले नेस्ट करने की अनुमति नहीं है. यह सुविधा कभी काम नहीं करती थी. साथ ही, यह LazyColumnFor (I6e101) के आइटम कंपोज़ करने की आलस और आलस को दूर कर रहा था
- कई Graphics API को अपडेट किया गया
- स्कोप वाले DrawScope के एपीआई अपडेट किए गए बदलाव के तरीकों से पता चलता है कि ट्रांसफ़ॉर्मेशन ऐक्शन सिर्फ़ कॉलबैक किया जाता है और कॉलबैक शुरू होने के बाद हटा दिया जाता है
- पाथ के बारे में बताने के लिए,ClipPath से जुड़ा दस्तावेज़ अपडेट किया गया राउंडेड रेक्टैंगल के बजाय
- सही पैरामीटर के लिए, दस्तावेज़ में तय की गई स्पेसिंग क्लिप पाथ में
- DrawScope.drawCanvas का नाम बदलकर,draIntoCanvas और साइज़ पैरामीटर हटाया गया
- इनसेट तरीके में dx/dy पैरामीटर का नाम बदलकर यह किया गया हॉरिज़ॉन्टल और वर्टिकल
- इनसेट ओवरलोड जोड़ा गया, जो एक जैसा काम करता है सभी चार सीमाओं के लिए इनसेट वैल्यू
- इनसेट तरीके से जुड़े दस्तावेज़ हटाए गए जो दिखाते हैं वह इनसेट सभी चारों तरफ़ लागू होगा
- Rect क्लास के लिए अपडेट किए गए दस्तावेज़
- kdoc से मेल खाने के लिए, Rect पैरामीटर पर की गई टिप्पणियों को अपडेट किया गया स्टाइल
- Rect.join और Rect.expandToInclude को हटाया गया
- Rect.translate(offset) के लिए ओवरलोड बनाया गया और Rect.shift अब काम नहीं करता
- (If086a, b/167737376)
- सिमैंटिक प्रॉपर्टी में Accessibility ScrollState जोड़ें. (Ifeda9)
- ऑब्जेक्ट बनाने से बचने के लिए, TextRange इनलाइन बनाएं. (Id034b)
- पैराग्राफ़ कंस्ट्रेंट हटा दिया गया है. अब चौड़ाई सीधे पैराग्राफ़ को पास कर दी जाती है. (Ica712)
वर्शन 1.0.0-alpha03
16 सितंबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
, और androidx.compose.foundation:foundation-text:1.0.0-alpha03
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha03 में ये कमियां हैं.
एपीआई में बदलाव
- इनरपैडिंग का नाम बदलकर PendingValues कर दिया गया है. (I195f1, b/167389171)
- लेआउट एपीआई को अलाइन या अलाइन करने के लिए, गुरुत्वाकर्षण के इस्तेमाल के नाम लगातार बदले गए. (I2421a, b/164077038)
- स्टैक में एक अलाइनमेंट पैरामीटर जोड़ा गया. इसकी मदद से, सभी स्टैक चिल्ड्रेन के लिए डिफ़ॉल्ट अलाइनमेंट तय किया जा सकता है. (Ie80ca, b/164085265)
गड़बड़ियां ठीक की गईं
- इसका इस्तेमाल करने वाले DpConstraints और एपीआई अब काम नहीं करते. (I90cdb, b/167389835)
widthIn
में सेminWidth
औरmaxWidth
पैरामीटर का नाम बदलकर,min
औरmax
कर दिया गया. इसी तरहpreferredWidthIn
,heightIn
,preferredHeightIn
के लिए. (I0e5e1, b/167389544)- ComposeTestRule पर onNode और अन्य ग्लोबल तरीके इस तौर पर जोड़े गए हैं दुनिया भर में इस्तेमाल होने वाली टेक्नोलॉजी को बंद कर दिया जाएगा. (Ieae36)
- इसके लिए, जेस्चरScope में साइज़ और पोज़िशन की कैलकुलेशन को ठीक किया जाता है, अमान्य स्वाइप जेस्चर के जनरेट होने की वजह से (Iaf358, b/166589947)
createAndroidComposeRule
औरAndroidInputDispatcher
को यहां से ले जाया गयाandroidx.ui.test.android
सेandroidx.ui.test
(Idef08, b/164060572)
वर्शन 1.0.0-alpha02
2 सितंबर, 2020
androidx.compose.foundation:foundation:1.0.0-alpha02
, androidx.compose.foundation:foundation-layout:1.0.0-alpha02
, और androidx.compose.foundation:foundation-text:1.0.0-alpha02
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha02 में ये कमियां हैं.
गड़बड़ियां ठीक की गईं
- TestUiDispatcher को प्रयोग के तौर पर मार्क किया गया है (Iae99d, b/161247083)
ManualFrameClock.hasAwaiters
को यह देखने के लिए जोड़ा कि क्या कुछ ऐसा है उस घड़ी के फ़्रेम का इंतज़ार करना; इसकी जगहrunWithManualClock
को चुना गयाrunBlocking
के लिए जब ऐसे टेस्ट चलाए जा रहे हों जिन्हें मैन्युअलFrameClock की ज़रूरत होती है;TestUiDispatcher.Main
जो मुख्य यूज़र इंटरफ़ेस (यूआई) डिस्पैचर को आसानी से ऐक्सेस देता है का इस्तेमाल किया जा सकता है.उदाहरण के लिए:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
वर्शन 1.0.0-alpha01
26 अगस्त, 2020
androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
, और androidx.compose.foundation:foundation-text:1.0.0-alpha01
रिलीज़ हुए हैं. वर्शन 1.0.0-alpha01 में ये कमिट शामिल हैं.
वर्शन 0.1.0-dev
वर्शन 0.1.0-dev17
19 अगस्त, 2020
androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
, और androidx.compose.foundation:foundation-text:0.1.0-dev17
रिलीज़ हुए हैं. वर्शन 0.1.0-dev17 में ये कमियां शामिल हैं.
एपीआई में बदलाव
- पंक्ति और कॉलम के लिए spacedBy अरेंजमेंट जोड़ा गया, ताकि तय स्पेसिंग वाले लेआउट चिल्ड्रेन की पोज़िशनिंग की जा सके. अलाइनमेंट अरेंजमेंट भी जोड़ा जाता है, ताकि पोज़िशनिंग लेआउट चाइल्ड खाते को एक-दूसरे के बगल में रखा जा सके और अलाइनमेंट के हिसाब से पंक्ति/कॉलम में अलाइन की जा सके. पिछली व्यंजन.Vertical#organize और सुविधाएं, हॉरिज़ॉन्टल #, (I6733d, b/161985975)
- ऑफ़सेट एक इनलाइन क्लास (Iaec70) बन गया है
- TextField से onFocusChanged कॉलबैक को हटाया गया. इसके बजाय, Modifier.focusObserver का इस्तेमाल करें. (I51089, b/161297615)
- Modifier.drawBorder की सुविधा अब काम नहीं करती. इसके बजाय, Modifier.background का इस्तेमाल करें. बॉर्डर डेटा क्लास को BorderStroke से बदल दिया गया है (I4257d, b/158160576)
- वर्टिकल स्क्रोलर और हॉरिज़ॉन्टलस्क्रोलर को हटा दिया गया है. इसके बजाय, Scrollableकॉलम/पंक्ति का इस्तेमाल करें. Modifier.drawBackground को हटा दिया गया है. Modifier.background (I73b0d, b/163019183) का इस्तेमाल करें
- LazyItemScope से ऐसे मॉडिफ़ायर को हटाने की सुविधा हटाएं जो अब काम नहीं करता है* मॉडिफ़ायर
- DSL (I93cc6) के तौर पर, LazyColumn/LazyRow को लागू करने की सुविधा जोड़ी गई
- कंस्ट्रेंट अब एक इनलाइन क्लास है (I88736)
- उपलब्ध स्पेस के कुछ हिस्से में लेआउट को साइज़ देने की सुविधा जोड़ी गई है. इसके लिए, FillMaxwidth, insertMaxH यहां, और FishMaxSize मॉडिफ़ायर का इस्तेमाल करना होगा. (I945bb, b/161562591)
गड़बड़ियां ठीक की गईं
- SelectContainer में एक कार्रवाई बदलने वाला पैरामीटर जोड़ा गया (I4aada, b/161487952)
- SemanticsFamilyKey में मर्ज नीति lambda को जोड़ा गया. यह काम किया जा सकता है इसका इस्तेमाल,MergeAllDescendants सिमैंटिक के लिए कस्टम नीति तय करने के लिए किया जाता है मर्ज करना. अगर पहले से ही पैरंट वैल्यू मौजूद है, तो डिफ़ॉल्ट नीति यह है कि पैरंट वैल्यू का इस्तेमाल किया जाए मौजूद नहीं है, नहीं तो चाइल्ड मान. (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute()
का नाम बदलकरPlacementScope.place()
कर दिया गया था. साथ ही, पिछलेPlacementScope.place()
का नाम बदलकरPlacementScope.placeRelative()
कर दिया गया था. इस वजह से,PlacementScope.place()
तरीका अब अपने-आप दाएं-से-बाएं कॉन्टेक्स्ट में पोज़िशन को शेयर नहीं करेगा. अगर यह ज़रूरी है, तोPlacementScope.placeRelative()
का इस्तेमाल करें. (I873ac, b/162916675)- ऐसे FilledTextField कॉम्पोनेंट को हटाया गया जो अब काम नहीं करता. भरे हुए टेक्स्ट फ़ील्ड का मटीरियल डिज़ाइन लागू करने के लिए, कृपया TextField का इस्तेमाल करें. (I5e889)
- लीनियरप्रोग्रेसइंडिकेटर में backgroundColor पैरामीटर जोड़ा गया और CircularPro चुनौतियोंIndicator से, इंटरनल पैडिंग को हटा दिया गया. प्रोग्रेस दिखाने वाले संकेत देने के लिए नया समय जोड़ा गया.DefaultProग्रेसAnimationspec जोड़ा गया. इसका इस्तेमाल, वैल्यू (If38b5, b/161809914, b/161804677) के बीच की प्रोग्रेस को ऐनिमेट करते समय, डिफ़ॉल्ट ऐनिमेशनस्पेक के तौर पर किया जा सकता है
state { ... }
कंपोज़ेबल को अब इसका इस्तेमाल करके रोक दिया गया है साफ़ तौर पर जानकारी देने के लिए,remember { mutableStateOf(...) }
पर अश्लील कॉल किया गया हो. इससे, राज्य के लिए एपीआई प्लैटफ़ॉर्म और कॉन्सेप्ट की संख्या कम हो जाती है और क्लास के लिएby mutableStateOf()
पैटर्न से मेल खाता है प्रॉपर्टी सौंपना. (Ia5727)- RRect का नाम बदलकर राउंडआरेक्ट किया गया नाम रखने के पैटर्न को बेहतर तरीके से फ़िट करने के लिए मिलते-जुलते फ़ंक्शन कंस्ट्रक्टर बनाए गए RRect और नामंजूर RRect फ़ंक्शन कंस्ट्रक्टर (I5d325)
- onCHILDPositioned और OnChildPositionedModifier को हटाया गया. डेवलपर को onPositioned और OnPositionedModifier का इस्तेमाल करना चाहिए चाइल्ड लेआउट पर स्विच कर सकते हैं. (I4522e, b/162109766)
- IntSize अब एक इनलाइन क्लास (I2bf42) है
- बदलाव करने के लिए, खाली जगह को दबाकर रखें. (Ib1e5b)
- टेक्स्ट पर टैप करने के बाद फ़्लोटिंग टूलबार छिपाएं. (If4525)
- चुने गए को अपडेट करते समय फ़्लोटिंग टूलबार छिपाएं. (I8444c)
- 'धुंधला करें' सेटिंग से चुने हुए का निशान हटाएं. (I781a2)
वर्शन 0.1.0-dev16
5 अगस्त, 2020
androidx.compose.foundation:foundation:0.1.0-dev16
, androidx.compose.foundation:foundation-layout:0.1.0-dev16
, और androidx.compose.foundation:foundation-text:0.1.0-dev16
रिलीज़ हुए हैं. वर्शन 0.1.0-dev16 में ये कमियां शामिल हैं.
एपीआई में बदलाव
- लेज़ी सूचियों के itemContent पैरामीटर के लिए, LazyItemScope को जोड़ा गया था. यह पैरंट के सबसे बड़े साइज़ को भरने के लिए मॉडिफ़ायर उपलब्ध कराता है. इससे इस्तेमाल का उदाहरण उस समय हल हो जाता है जब आइटम को व्यूपोर्ट में भरना होता है. साथ ही, सामान्य Modifier.fillMaxSize() काम नहीं करता है, क्योंकि आइटम को इनफ़िनिटी कंस्ट्रेंट के साथ मेज़र किया जाता है. (Ibd3b2, b/162248854)
- डायलॉग को ui (I47fa6) में ले जाएं
- LazyColumnForIndexed/LazyRowForIndexed - LazyColumnFor/LazyRowFor का वर्शन, जिसमें आइटम कॉलबैक में इंडेक्स और आइटम, दोनों मिलते हैं. मौजूदा आइटम के अलावा, मौजूदा इंडेक्स को जानने की ज़रूरत होने पर यह उपयोगी होता है. (I65ff3)
- Modifier.deternimateProways का नाम बदलकर Modifier.progressSemantics (I9c0b4) कर दिया गया है
- LazyColumnITEMS का नाम बदलकर, LazyColumnFor कर दिया गया. Laज़ीRowआइटम का नाम बदलकर LazyRowFor (I84f84) कर दिया गया
- सबसे सही तरीके के लिए, कुछ मार्क/एनोटेशन जोड़ें. (I66b20)
- Foundation.शेप.कॉर्नर पैकेज को Foundation.share (I46491, b/161887429) की तुलना में फ़्लैट कर दिया गया
- LazyRow आइटम/LazyColumnआइटम के लिए isrossaxis ग्रैविटी पैरामीटर जोड़ा गया. LazyRowआइटम/LazyColumnITEMS में अब कॉन्टेंट रैप करने का तरीका काम करता है. (Ib39fc)
- ZoomableState का नाम बदलकर ZoomableController कर दिया गया. smoothScale के लिए, कस्टम कर्व की सुविधा जोड़ी गई है.
enabled
औरonZoomStarted
सुविधा जोड़ दी गई है (If8b8f) - Material FilledTextField का नाम बदलकर TextField रखा गया है. साथ ही, बुनियादी TextField का नाम बदलकर BaseTextField रखा गया है, ताकि एपीआई को आसानी से खोजा और इस्तेमाल किया जा सके (Ia6242, b/155482676)
- पहले काम न करने वाली AdapterList को हटा दिया गया है. इसके बजाय, LazyColumnआइटम का इस्तेमाल करें (I12b9b)
- Modifier.drawbackground का नाम बदलकर Modifier.background (I13677) कर दिया गया है
- पुराना ConstraintLayout DSL हटा दिया गया. ConstraintSet2 का नाम बदलकर, ConstraintSet किया गया. (If58d1, b/162450908)
- Modifier.absoluteOffset() और Modifier.absoluteOffsetPx() को जोड़ा गया. ऑफ़सेट मॉडिफ़ायर के उलट, ऐब्सलूट ऑफ़सेट मॉडिफ़ायर, दाएं-से-बाएं कॉन्टेक्स्ट में अपने-आप मिरर नहीं होगा (I3aa21)
Row
औरColumn
अब काफ़ी हद तक इनलाइन फ़ंक्शन के साथ काम करते हैं कम से कम खर्च हो. (I75c10)
गड़बड़ियां ठीक की गईं
- बेहतर एपीआई से जुड़ी समस्याओं को हल करें (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स्ट्रक्चरिंग एपीआई जोड़ने के लिए, साइज़ को अपडेट किया गया, नाम बदलें इस्तेमाल न किए गए तरीकों के हिसाब से तय नहीं किया गया साइज़ और इस्तेमाल न किए गए तरीकों को हटाना
MonotonicFrameAnimationClock जोड़ा गया, जो आपको इस अंतर को कम करने के लिए, ऐनिमेशनClockObservable के तौर पर MonotonicFrameClock कोरूटीन पर आधारित घड़ियों और एपीआई के बीच अपडेट किया जा रहा है, जो अब भी पुराने वर्शन का इस्तेमाल करते हैं कॉलबैक आधारित घड़ियां.
मैन्युअल AnimationClock जैसा MonotonicFrameClock अब मैन्युअलFrameClock. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGesture
को हटा दिया गया है. इस्तेमाल की जाने वाली चीज़ें अगर आपके पास इन फ़ॉर्मैट की फ़ाइल नहीं है, तोSemanticsNodeInteraction.performGesture
बटन का इस्तेमाल करें. (आईडी9b62)SemanticsNodeInteraction.getBoundsInRoot()
का नाम बदलकर यह कियाSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)दाएं से बाएं सहायता के लिए एपीआई अपडेट किए गए हैं. LayoutDirectionAmbient जोड़ा गया है, जिसका इस्तेमाल लेआउट की दिशा पढ़ने और बदलने के लिए किया जा सकता है. Modifier.rtl और Modifier.ltr को हटा दिया गया है. (I080b3)
Modifier.plus को बंद कर दिया गया है. इसके बजाय, Modifier.here का इस्तेमाल करें. 'फिर' यह ऑर्डर करने की प्रोसेस को बेहतर तरीके से दिखाता है. हालांकि, यह
Modifier.padding().background() + anotherModifier
टाइप करने पर भी पाबंदी लगाता है. इससे चेन टूट जाती है और पढ़ना मुश्किल हो जाता है (Iedd58, b/161529964)isFocused()
औरisNotFocused()
SemanticMatcher जोड़ा गया. (I0b760)RemeasurementModifier जोड़ा गया. इससे उपयोगकर्ता, लेआउट को फिर से सिंक कर सकते हैं. आम तौर पर, आपको इसकी ज़रूरत कभी नहीं पड़ती, क्योंकि फिर से मेज़रमेंट/रिलेआउट अपने-आप हो रहा होता है. हालांकि, हम स्क्रोल के दौरान इसका इस्तेमाल LazyColumnआइटम के अंदर करते हैं. (I5f331, b/160791058)
isSystemInDark थीम अब हमेशा, पूरे सिस्टम के लिए गहरे रंग वाली थीम की सेटिंग को ध्यान में रखती है. साथ ही, नए दिशा-निर्देशों के हिसाब से, सवाल से पहले बैटरी सेव करने की स्थिति को अनदेखा करती है. (I0c10c)
OnchildPositioned की सुविधा को बंद कर दिया गया है. OnPosition का इस्तेमाल करें बच्चे पर टैप करें. (I87f95, b/162109766)
निर्मित करने के लिए AndroidComposeTestRule का नाम बदला गया. (I70aaf)
TextLayoutLayout (I9d6e6) पाने के लिए, सुलभता से जुड़ी कार्रवाई जोड़ें
वर्शन 0.1.0-dev15
22 जुलाई, 2020
androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
, और androidx.compose.foundation:foundation-text:0.1.0-dev15
रिलीज़ हुए हैं. वर्शन 0.1.0-dev15 में ये कमियां शामिल हैं.
'लिखें' विंडो का 0.1.0-dev15
वर्शन इस्तेमाल करने के लिए, आपको ये काम करने होंगे:
डिपेंडेंसी अपडेट
- लिखें के
0.1.0-dev15
वर्शन का इस्तेमाल करने के लिए, आपको अपनी डिपेंडेंसी अपडेट करनी होगी दिए गए नए कोड स्निपेट के मुताबिक, ऊपर डिपेंडेंसी के बारे में एलान में बताया गया है.
एपीआई में बदलाव
- ठीक इसी तरह, ScrollableColumn/scrollableRow LazyColumn मिटाना/LazyRow आइटम में मौजूद नए पैरामीटर में अब contentPadding पैरामीटर भी है. इसकी मदद से, कॉन्टेंट को क्लिप करने के बाद उसके लिए पैडिंग (जगह) जोड़ी जा सकती है. हालांकि, ऐसा सिर्फ़ मॉडिफ़ायर पैरामीटर से नहीं किया जा सकता. इससे, सिर्फ़ पहले आइटम के पहले/पिछले आइटम के बाद स्पेस जोड़ने की सुविधा मिलती है. (Ibc24e)
- टेक्स्ट फ़ील्ड में onFocusChange कॉलबैक का नाम onFocusChanged (Ida4a1) में बदला गया
- वर्टिकल स्क्रोलर और हॉराइज़नॉल स्क्रोलर की सुविधा बंद कर दी गई है. कॉलम/पंक्ति के व्यवहार और पैरामीटर के साथ बिल्ड-इन अनुभव के लिए Scrollableकॉलम और ScrollableRow का इस्तेमाल करें या अपने खुद के एलीमेंट पर Modifier.verticalscroll और Modifier.हॉरिज़ॉन्टलंज़ का इस्तेमाल करें. इसी तरह, ScrollerPosition की जगह अब ScrollState के बजाय (I400ce, b/157225838, b/149460415, b/154105299)
- Modifier.draggable और Modifier.scrollable एपीआई पर फिर से काम किया गया. झुकाव के पक्ष में DragonDirection को हटा दिया गया. स्क्रोल करने के लिए, दिए गए स्टेटस को आसान बनाया गया है. ScrollableState का नाम बदलकर ScrollableController (Iab63c, b/149460415) कर दिया गया है
- सिंगल-वैल्यू वाली सिमैंटिक प्रॉपर्टी, अब कॉलिंग स्टाइल का इस्तेमाल करती हैं.
उदाहरण के लिए, 'semantics { hide = true }' अब इस रूप में लिखा जाता है:
semantics { hidden() }
. (Ic1afd, b/145951226, b/145955412) - गोल आकार वाले कॉर्नर शेप और CutCorner कसरत के लिए इस्तेमाल किए जाने वाले कॉर्नर साइज़, अब 50% (Id2340, b/160400213) से ज़्यादा हो सकते हैं
- डिफ़ॉल्ट ContentScale बदली गई इमेज कंपोज़ेबल के लिए पैरामीटर अंदर से फ़िट तक. यह क्रम में किया गया था लोगों से जुड़ने के लिए, पेंटर, अगर लेआउट का साइज़ इससे बड़ा है मूल आकार में इमेज को आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखने में मदद मिलती है. यह व्यवहार उम्मीदों से बेहतर मेल खाता है इमेज को तय साइज़ उपलब्ध कराने के लिए यह डिफ़ॉल्ट ऐक्शन पर असर नहीं डालता हो अगर सिर्फ़ मूल साइज़ का इस्तेमाल कंपोज़ेबल के साइज़ का पता लगा सकता है. (I40ae3, b/159838006)
- टॉप लेवल एपीआई में, AssetBuilder के बजाय एनिमेशन स्पेस का इस्तेमाल करें के कॉन्सेप्ट को समझाने के लिए -इसके लिए lambda की ज़रूरत को हटाकर, ट्रांज़िशन DSL को बेहतर बनाएं ट्वीन (10-13 साल की वसंत) जैसे ऐनिमेशन स्पेक्स बनाना. इसके बजाय, वे यह लेते हैं किसी भी कंस्ट्रक्टर पैरामीटर को सीधे तौर पर पैरामीटर नहीं करना चाहिए. -ऐनिमेशन स्पेक्ट को इस्तेमाल करना अब और भी आसान बना दिया गया है बिल्डर पर निर्भर रहने के बजाय, कंस्ट्रक्टर -कीफ़्रेम और ट्वीन के लिए अवधि और देरी को इंटरसेप्शन करें. यह यह ग़ैर-ज़रूरी टाइप कास्ट और मेथड ओवरलोड को खत्म करता है ( और लंबे इंटरसेप्शन के साथ काम करते हैं. (Ica0b4)
- क्लिक किए जा सकने वाले एलिमेंट को हटा दिया गया है. Modifier.clickable (I84bdf) का इस्तेमाल करें
- LazyRowआइटम को जोड़ा गया - LazyColumnआइटम (Ibbcf7) का हॉरिज़ॉन्टल रूप से स्क्रोल करने वाला एनालॉग
- लो लेवल स्टेटलेस ऐनिमेशन एपीआई लॉन्च किए गए. ये एपीआई (I63bf7)
- androidx.ui.foundation.TextFieldValue और androidx.ui.input.EditorValue अब काम नहीं करता. टेक्स्ट फ़ील्ड, FilledTextField और CoreTextField कंपोज़ेबल, जो इनका इस्तेमाल करते हैं यह टाइप अब काम नहीं करता. कृपया इस्तेमाल करें इसके बजाय androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- IntPx के इस्तेमाल को Int. से बदला गया. IntPxPosition बदला गया IntOffset के साथ. IntPxSize को IntSize से बदला गया. (Ib7b44)
- androidx.ui.foundation.shape.RectangleSize को हटाया गया; androidx.ui.graphics.Rectangle shape (I94939, b/154507984) का इस्तेमाल करें
- सभी विज्ञापनों को एक साथ जोड़ने के लिए दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या साइज़ की जानकारी, मानकों के हिसाब से इसके बजाय साइज़ क्लास का इस्तेमाल करने पर का PxSize. इससे ये फ़ायदे मिलते हैं एक इनलाइन क्लास की मदद से, दिखाने के लिए 2 फ़्लोट वैल्यू को पैक करने के लिए चौड़ाई और ऊंचाई को फ़्लोट के तौर पर दिखाया गया है. (Ic0191)
- सभी विज्ञापनों को एक साथ जोड़ने के लिए दिखाने के लिए इस्तेमाल की जाने वाली क्लास की संख्या पोज़िशनिंग की जानकारी, स्टैंडर्ड इसके बजाय ऑफ़सेट क्लास के इस्तेमाल पर का PxPosition. इससे ये फ़ायदे मिलते हैं एक इनलाइन क्लास की मदद से, x को दिखाने के लिए, 2 फ़्लोट वैल्यू को पैक करने के लिए और y ऑफ़सेट को फ़्लोट के रूप में दिखाया गया है. (I3ad98)
- पिंच-टू-ज़ूम करने की सुविधा (Id5d63) के लिए, Modifier.zoomable को जोड़ा गया
- टॉगल किया जा सकने वाला कॉम्पोनेंट अब काम नहीं करता. इसके बजाय, Modifier.toggleable का इस्तेमाल करें (I35220, b/157642842)
- म्यूचुअलली एक्सक्लूज़िवसिटआइटम को बंद कर दिया गया है. इसके बजाय, Modifier.selectable का इस्तेमाल करें. (I02b47, b/157642842)
- TestTag अब काम नहीं करता. इसके बजाय, Modifier.testTag का इस्तेमाल करें. (If5110, b/157173105)
- टेक्स्ट में fontWeight पैरामीटर जोड़ता है, जो गलती से पहले जोड़ा नहीं गया (I56937)
- अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I19d02) के लिए प्रिमिटिव टाइप
- वर्टिकल स्क्रोलर अब बॉक्स से बाहर कॉलम उपलब्ध कराता है. हॉरिज़ॉन्टल स्क्रोलर अब लाइन को बॉक्स से बाहर दिखाता है. (Ieca5d, b/157020670)
- अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (Iede0b) के लिए प्रिमिटिव टाइप
- Modifier.indic को फ़ाउंडेशन पैकेज में जोड़ दिया गया है. इसका इस्तेमाल, उन एलिमेंट पर दबाने/खींचने/अन्य संकेत दिखाने के लिए करें जिनके साथ उपयोगकर्ता ने इंटरैक्ट किया है (I8425f, b/155287131)
- अब वर्टिकल स्क्रोलर और हॉरिज़ॉन्टल स्क्रोलर की मदद से, रिवर्स स्क्रोलिंग की सुविधा स्क्रोलर पोज़िशन (I953bd) पर सेट की गई है: रिवर्स स्क्रोलिंग
- यह कंपोज़ेबल को टेक्स्ट के लेआउट में जोड़ने की सुविधा देता है. (I1373c)
- सभी के लिए CanvasScope की सेवाएं लागू करना इसलिए, अब सिर्फ़ DrawScope और कॉन्टेंट ड्रॉ का दायरा CanvasScope का नाम बदलकर DrawScope. डेंसिटी को लागू करने के लिए, DrawScope को अपडेट किया गया का इंटरफ़ेस देखें और LayoutDirection मुहैया कराएं ContentDrawScope में ड्रॉस्कोप सब-क्लास को मिटाया गया Painter और PainterModifier अपडेट कर दी गई हैं आरटीएल प्रॉपर्टी का रखरखाव नहीं किया जाएगा क्योंकि DrawScope पहले से ही यह मैन्युअल तरीके से दिए बिना (I1798e)
- ऐसे Drawबैकग्राउंड को हटाया गया जो अब काम नहीं करता आरेखण बैकग्राउंड एक्सटेंशन के लिए एपीआई संशोधक पर API. रीफ़ैक्टरिंग रंग, ब्रश, और पेंट ड्रॉबैकग्राउंड इसे लागू करने से, कोड पाथ भी कम हो जाते हैं को मॉडिफ़ायर बनाने के लिए उसे हटाना ज़रूरी है कंपोज़िशन के हिस्से के तौर पर शामिल हैं. (I0343a)
- हायर लेवल अपडेट किया गया ऐसे एपीआई जो कैनवस को अनुमति देते हैं इसके बजाय, CanvasScope का डेटा दिखाएं. यह हटा देता है इसलिए, उपभोक्ताओं को अपने Paint ऑब्जेक्ट. उन उपभोक्ताओं के लिए जो अब भी कैनवस का ऐक्सेस चाहिए वे आरेखण कैनवास एक्सटेंशन का इस्तेमाल कर सकते हैं वह तरीका जो समस्या के लिए कॉलबैक उपलब्ध कराता है ड्रॉइंग कमांड को कैनवस. (I80afd)
- हॉरिज़ॉन्टल स्क्रोलर और वर्टिकल स्क्रोलर, सेव की गई इंस्टेंस स्थिति का इस्तेमाल करके अपनी स्क्रोल पोज़िशन को पहले जैसा नहीं करता. (Ia0fae, b/155075048)
- फ़ोकस मैनेजरAmbient को हटा दिया गया है. फ़ोकस पाने के लिए, FocusModifier.requestFocus का इस्तेमाल करें. (Ic4826)
- टेबल के लेआउट को कुछ समय के लिए हटा दिया गया था. ऐसा तब तक हुआ, जब तक हम रीफ़्रेश किए गए एपीआई के साथ इसे फिर से उपलब्ध नहीं कराते. (Id88a7)
एक ऐसा CanvasScope API बनाया गया, जिसमें एक क्वेरी के तौर पर कैनवस ऑब्जेक्ट, एक स्टेटलेस, डिक्लेरेटिव टोन को दिखाता है ड्रॉइंग एपीआई सरफ़ेस. ट्रांसफ़ॉर्मेशन ऐक्शन शामिल हैं अलग-अलग डिवाइसों के हिसाब से, अलग-अलग डिवाइसों पर भी मिलती-जुलती इनसेट सीमाओं तक सीमित है. उपभोक्ता को अपने पेंट की स्थिति खुद बनाए रखने की ज़रूरत नहीं पड़ती ऑब्जेक्ट है.
CanvasScopeSample और साथ ही जोड़ा गया डिक्लेरेटिव ग्राफ़िक शामिल करने के लिए, डेमो ऐप्लिकेशन को अपडेट किया गया डेमो (Ifd86d)
ColoredRect को हटा दिया गया है. उपयोगकर्ता बॉक्स, जिसमें इसके बजाय दर की जानकारी देने वाली सुविधा मौजूद है (I983c7, b/152753731)
TextField (I6e33f) में कर्सर का रंग पसंद के मुताबिक बनाना जोड़ें
अब सॉफ़्टवेयर कीबोर्ड को छिपाने/दिखाने के लिए, अब सॉफ़्टवेयर कीबोर्ड कंट्रोलर, जो onTextइनपुटStarted के ज़रिए डिलीवर किया जाता है कॉलबैक (I8dc44, b/151860051)
TextField के साथ इस्तेमाल की जाने वाली TextFieldValue अब इस तरह से इस्तेमाल की जाने पर गतिविधि मनोरंजन में बनी रह सकती है:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)Text() में आम तौर पर इस्तेमाल होने वाले पैरामीटर जोड़ता है. अगर
Text(style = TextStyle(textAlign = TextAlign.Center))
जैसे इन पैरामीटर को पास करने के लिए, फ़िलहाल कोई लोकल टेक्स्ट स्टाइल बनाया जा रहा है, तो अब सिर्फ़ पैरामीटर को सीधे तौर पर उपलब्ध कराया जा सकता है:Text(textAlign = TextAlign.Center)
(I82768)CoreTextField/TextField फ़ोकस आइडेंटिफ़ायर बदला गया फ़ोकस सबसिस्टम के साथ इंटिग्रेट करने के लिए फ़ोकस-नोड के साथ पैरामीटर. (I7ea48)
TextField अपडेट - हॉरिज़ॉन्टल डाइमेंशन में यह इसे दी गई सभी उपलब्ध जगह का इस्तेमाल करेगा (Ib08df, b/154638552)
इंटरैक्शन स्टेट और इंटरैक्शन जोड़ा गया. इसकी मदद से ऐसे कॉम्पोनेंट बनाने में आसानी होती है जो यूज़र इंटरफ़ेस (यूआई) की स्थिति में होने वाले बदलावों पर प्रतिक्रिया देते हैं, जैसे कि प्रेस और ड्रैग (Icfe25, b/152525426)
रेक्टैंगल शेप को androidx.ui.foundation.shape.* से androidx.ui.graphics में ले जाया गया.* (Ia74d5, b/154507984)
एपीआई में शून्य रंग वाले सभी इस्तेमाल को इससे बदला गया अमान्य हो सकता है. साथ ही, शून्य के बजाय Color.Unset का इस्तेमाल करें (Iavaa7)
TextField API अपडेट - पैरामीटर(I66cd3) के साथ एक onFocusChange (बूलियन) कॉलबैक में onFocus और onBlur कॉलबैक को मर्ज किया गया है
ScaleFit का नाम बदलकर ContentScale किया गया ContentScale को यूज़र इंटरफ़ेस (यूआई-ग्राफ़िक) से यूज़र इंटरफ़ेस (यूआई-कोर) पर ले जाया गया अलाइनमेंट के जैसे मॉड्यूल में लाइव होने के लिए मॉड्यूल एपीआई. FillMaxडाइमेंशन का नाम बदलकर क्रॉप किया गया FillMinडाइमेंशन का नाम बदलकर 'फ़िट' किया गया बेहतर मैच के लिए, इसका नाम बदलकर 'अंदरूनी' कर दिया गया है ImageView.ScaleType के समतुल्य जोड़ा गया ऐसा दस्तावेज़ जिससे पता चलता है कि क्रॉप और लइनमेंट.केंद्र से एक ही नतीजा मिलता है ImageView.ScaleType.CENTER_CROP और Fit के तौर पर अलाइनमेंट.केंद्र के साथ इस्तेमाल करने पर वैसा ही नतीजा मिलता है जैसे ImageView.ScaleType.FIT_CENTER alignment.Center के साथ इस्तेमाल किए गए अंदर से यही नतीजा मिलता है ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521) के तौर पर नतीजा
इससे ProtectContentColor हटा दिया जाता है. इसके बजाय,
Providers
(Iee942) के साथ सीधे ContentColorAmbient का इस्तेमाल करेंटेक्स्ट में रंग पैरामीटर जोड़ता है. इससे, किसी थीम में दिए गए स्टाइल के साथ मैन्युअल रूप से मर्ज किए बिना, टेक्स्ट की स्टाइल में रंग बदलने की सुविधा मिलती है. (I41a66)
DrawModifier एपीआई को बेहतर बनाएं:
- आरेखण() ContentDrawScope के लिए पाने वाले का स्कोप बनाया गया
- आरेखण() पर सभी पैरामीटर हटाए गए
- DrawScope का इंटरफ़ेस पुराने CanvasScope जैसा ही है
- ContentDrawScope मेंDrawContent() तरीका (Ibaced, b/152919067) है
ColoredRect को बंद कर दिया गया है. इसके बजाय,
Box(Modifier.preferredSize(width, height).drawBackground(color))
का इस्तेमाल करें. (I499fa, b/152753731)आकार की थीम बनाने का सिस्टम, मटीरियल डिज़ाइन स्पेसिफ़िकेशन के मुताबिक अपडेट किया गया है. अब छोटे, मीडियम, और बड़े आकार उपलब्ध कराए जा सकते हैं, ताकि ज़्यादातर कॉम्पोनेंट में इनका इस्तेमाल किया जा सके (Ifb4d1)
मॉडिफ़ायर प्लस ऑपरेटर को फ़ैक्ट्री एक्सटेंशन फ़ंक्शन (I225e4) से बदला गया
खींचने और छोड़ने लायक को कार्रवाई बदलने वाली सूची में ले जाया गया (Id9b16, b/151959544)
Text
को androidx.ui.core से androidx.ui.foundation पैकेज में ले जाया गया. (I87ce5)चेकबॉक्स, Switch, और टॉगल में
enabled
पैरामीटर जोड़ें (I41c16)Ripple अब एक संशोधक है. हालांकि, क्लिक किए जा सकने वाले फ़ॉर्मैट को अभी तक कन्वर्ट नहीं किया गया है, हमारा सुझाव है कि
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763) का इस्तेमाल करेंवेक्टरPainter API इसमें जोड़ा गया इसके लिए मौजूदा सबकंपोज़िशन एपीआई को बदलें वेक्टर ग्राफ़िक. सबकंपोज़िशन का नतीजा एक DrawModifier. पिछला Drawवेक्टर वेक्टरPainter के लिए ज़रूरी कंपोज़ेबल.
Image(Painter)
एपीआई का नाम बदलकरPaintBox(Painter)
किया गया वेक्टर कंपोज़ेबल बनाया गया जो इस तरह काम करता है इसके बजाय, VendorAsset के साथ इमेज कंपोज़ करने लायक ImageAsset का प्रतिशत (I9af9a, b/149030271)ऐसी इमेज बनाई गई जिसे हैंडल करने के लिए कंपोज़ किया जा सकता है दी गई ड्रॉइंग के अलावा साइज़/लेआउट ImageAsset को स्क्रीन पर दिखाएं. यह कंपोज़ेबल किसी भी आर्बिट्रेरी पेंटर की ड्रॉइंग बनाने में भी मदद करता है अपने मूल आकार के मुताबिक उदाहरण साथ ही, विज्ञापन देने वाले लोग या कंपनियां साइज़ या कम से कम साइज़ (Ibcc8f)
बटन, FlowingActionButton और Clickable में अब एक अलग
enabled
पैरामीटर है. बटन के कुछ पैरामीटर के नाम बदले गए या उनका क्रम बदला गया. (I54b5a)दोनों के बीच के अंतर को बेहतर तरीके से समझने के लिए, इमेज का नाम बदलकर ImageAsset किया गया है इमेज के डेटा और आने वाले समय में होने वाले इमेज के डेटा में फ़र्क़ लेआउट में हिस्सा लेने और ड्रॉ करने के लिए इस्तेमाल की जाने वाली इमेज कंपोज़ेबल कॉन्टेंट.
android.graphics.Bitmap पर एक्सटेंशन का तरीका बनाया गया,
Bitmap.asImageAsset()
को ImageAsset, पारंपरिक Android को एक साथ जोड़ने में काम आता है ऐप्लिकेशन डेवलपमेंट की जानकारी दी जाती है. (Id5bbd)ड्रॉइमेज कंपोज़ेबल को हटाया गया. मौजूदा लेआउट पर इमेज बनाने के लिए ImagePainter या SimpleImage का इस्तेमाल करके ऐसी इमेज के बारे में बताएं जो जगह ले रही हो (I595e1, b/149827027)
स्टैक कॉम्पोनेंट, दाएं से बाएं दिशा-निर्देश (Ic9e00) के साथ काम करता है
आइकॉन, iconButton और iconToggleButton जोड़ा गया है, जिससे AppBarIcon हटाया जा रहा है. AppBarIcon के मौजूदा इस्तेमाल को आइकॉनबटन से सीधे तौर पर बदला जा सकता है. और अब उनके पास सही टच टारगेट होगा. इसके नमूने देखें इस्तेमाल की जानकारी और दिए गए मटीरियल आइकॉन के आइकॉन देखें तो इन कॉम्पोनेंट के साथ सीधे इस्तेमाल किया जा सकता है. (I96849)
DrawSize कंपोज़ेबल को हटाया गया. इसके बजाय, Drawबैकग्राउंड मॉडिफ़ायर का इस्तेमाल करें. (I7ceb2)
AdapterList जोड़ा गया. यह स्क्रोल करने की सूची का एक ऐसा कॉम्पोनेंट है जो सिर्फ़ दिखने वाले आइटम लिखता और लेआउट करता है. वर्तमान में ज्ञात समस्याएं शामिल करें कि यह केवल-वर्टिकल है और पूरी तरह से हैंडल नहीं करता है बच्चों में हुए खास बदलावों के मामले में ऐसा ही होता है. (Ib351b)
स्क्रोल किया जा सकने वाला कॉम्पोनेंट जोड़ा गया है. इसकी मदद से, पसंद के मुताबिक स्क्रोलर/सूची बनाई जा सकती है (I5fd37)
बैकग्राउंड का नाम बदलकर Drawबैकग्राउंड और इसे डिफ़ॉल्ट रूप से याद रखने के लिए सेट किया गया (Ia0bd3)
Box (I05027, b/148147281) में पैडिंग (जगह), बॉर्डर, आकार, और बैकग्राउंड पैरामीटर जोड़ें
कैनवस कॉम्पोनेंट जोड़ा गया. इस कंपोज़ेबल का साइज़ (उपयोगकर्ता ने तय किया) है. इसकी मदद से, CanvasScope (I0d622) का इस्तेमाल करके ड्रॉ किया जा सकता है
Border
मॉडिफ़ायर का नाम बदलकरDrawBorder
करें (I8ffcc)लेआउट और सामान्य फ़ंक्शन बनाने के लिए, Box कॉम्पोनेंट जोड़ा गया. (I6e2a7)
स्क्रोलर अब मूल Android फ़्लिंग मोशन व्यवहार दिखाते हैं. (I922af, b/147493715)
बॉर्डर मॉडिफ़ायर (Id335a) के लिए, DrawBorder को बदल दिया गया
Modifier.tag का नाम बदलकर Modifier.layoutId रख दिया गया, ताकि Modifier.testTag को लेकर भ्रम की स्थिति न हो. (I995f0)
ConstraintLayout के दिशा-निर्देश बनाते समय, प्रतिशत पैरामीटर का नाम बदलकर फ़्रैक्शन कर दिया गया है. (Ida2db)
ConstraintLayout बैरियर के मार्जिन के लिए सपोर्ट जोड़ा गया. (I47ffe)
ConstraintLayout में तय आरटीएल सपोर्ट. आरटीएल अनजान एपीआई जोड़े गए. (I3b1c7)
ConstraintLayout के लिए नया डीएसएल जोड़ा गया. ज़्यादा जानकारी के लिए, कृपया सैंपल देखें. (Icaa9a)
@OptionalLayout एनोटेशन जोड़ा गया. ConstraintLayout, FlowRow, और Flowकॉलम को अब इसके साथ टैग किया गया है, ताकि यह मार्क किया जा सके कि उनके एपीआई बदलने वाले हैं. (I412a8)
Modifier.padding(InnerPadding)
को जोड़ दिया गया है (I94985, b/157133803)पंक्ति और कॉलम में, 'कॉलम में अलाइन करें' सुविधा बंद की गई पंक्ति और पंक्ति हटाई गई. (If60d4, b/155858731)
अब काम नहीं करने वाले LayoutTag() को हटाया गया. इसके बजाय, कृपया Modifier.tag() का इस्तेमाल करें. अब काम नहीं करने वाले Modifier.matchParent() को हटा दिया गया है. इसके बजाय, कृपया Modifier.matchParentSize() का इस्तेमाल करें. (If8044)
ऑफ़सेटPx लेआउट मॉडिफ़ायर जोड़ा गया, जिसका इस्तेमाल पिक्सल में (डाइनैमिक) ऑफ़सेट की जानकारी देने के लिए किया जा सकता है. (I5af57)
alignmentLineOffset कंपोज़ेबल अब काम नहीं करता है, इसके बजाय कृपयाRelatPaddingFrom() मॉडिफ़ायर का इस्तेमाल करें. CenteralignmentLine कंपोज़ेबल को हटा दिया गया है. (I60107)
defaultMinSizeConstraints लेआउट मॉडिफ़ायर जोड़ा गया, जो रैप किए गए लेआउट में साइज़ कंस्ट्रेंट को सिर्फ़ तब सेट करता है, जब आने वाले कंस्ट्रेंट के बारे में न बताया गया हो (कम से कम कंस्ट्रेंट के लिए 0 और ज़्यादा से ज़्यादा कंस्ट्रेंट के लिए इनफ़िनिटी). (I311ea, b/150460257)
कंटेनर हटा दिया गया है. इसके बजाय, Box का इस्तेमाल करें (Ibbc2b, b/151407926)
ऐसे लेआउट की चौड़ाई/ऊंचाई/साइज़ मॉडिफ़ायर हटाया गया जो अब काम नहीं करता. (Ib0bc1)
ऑफ़सेट मॉडिफ़ायर के लिए डिफ़ॉल्ट पैरामीटर वैल्यू जोड़ी गईं. (I37f06)
सिमेट्रिक पैडिंग मॉडिफ़ायर जोड़ा गया. (I39840)
अब काम नहीं करने वाले LayoutAspectRatio मॉडिफ़ायर को हटाया गया. (I65a74)
ऐसे LayoutLayout मॉडिफ़ायर हटाए गए जो अब काम नहीं करते. (I10877)
चौड़ाई और ऊंचाई मॉडिफ़ायर में उस गड़बड़ी को ठीक किया गया जिसकी वजह से रैप किए गए लेआउट को दूसरे ऐक्सिस कंस्ट्रेंट के साथ मेज़र नहीं किया जा रहा था. (I210b8, b/154797971)
वर्टिकलGravity और हॉरिज़ॉन्टलGravity पैरामीटर को क्रम से पंक्ति और कॉलम में जोड़ा गया. (I7dc5a)
किसी भी अलाइनमेंट के बजाय वर्टिकल या हॉरिज़ॉन्टल एलाइनमेंट के लिए wrapContentwidth और wrapContentHight को अपडेट किया गया. वर्टिकल या हॉरिज़ॉन्टल अलाइनमेंट स्वीकार करने के लिए, ग्रैविटी मॉडिफ़ायर को अपडेट किया गया. कस्टम निरंतर संरेखण का समर्थन करने के लिए पंक्ति, कॉलम और स्टैक को अपडेट किया गया. (Ib0728)
अलाइनमेंट को आर्बिट्रेरी वैल्यू के साथ झटपट बनाया जा सकता है. 1D अलाइनमेंट जोड़े गए. (Ia0c05)
EdgeInsets का नाम बदलकर इनरपैडिंग किया गया है. मटीरियल बटन के इनरपैडिंग पैरामीटर का नाम बदलकर पैडिंग (जगह) किया गया. (I66165)
अलाइनमेंट की सुविधा की मदद से, अब 'जगह के बारे में जानकारी' के बजाय 'मेज़र किया गया' को स्वीकार किया जाता है. (I5788d)
स्वाभाविक मेज़रमेंट के लिए, साइज़ बदलने वाले मॉडिफ़ायर जोड़े गए. साथ ही, इस मकसद को पूरा करने वाले कॉम्पोनेंट को बंद कर दिया गया. (I8295d)
ConstraintLayout (Idb1a5) के चाइल्ड डाइमेंशन को पसंद के मुताबिक बनाने के लिए सपोर्ट जोड़ा गया
अब काम नहीं करने वाले रैप और सेंटर कंपोज़ेबल को हटाया गया. (I29e23)
LayoutModifier2 जोड़ा गया. यह लेआउट मॉडिफ़ायर तय करने के लिए एक नया एपीआई है; बंद किए गए LayoutModifier (If32ac)
RowScope और ColumnScope के सदस्यों को अब पंक्ति और कॉलम के बाहर से भी ऐक्सेस किया जा सकता है. (I3a641)
कंटेनर को बंद कर दिया गया है. इसके बजाय, Box का इस्तेमाल करें. (I675ce, b/151407926)
लेआउट की स्थिति ऑफ़सेट करने के लिए LayoutOffset मॉडिफ़ायर जोड़ा गया (I0b8a3)
Compose के लेआउट में Rtl के लिए शुरुआती सहायता (Ia5519)
LayoutLayout को अपडेट किया गया, ताकि यह अब खाली जगह न भर पाए (I2b14f)
मॉडिफ़ायर के लिए कंपोज़ेबल AspectRatio को हटाया गया. मिटा दिया गया पुराना Flexकॉलम, FlexRow कंपोज़ेबल, और स्पेसिंग मॉडिफ़ायर (Iec8a7)
पंक्ति और कॉलम के लिए LayoutInफ़्लेक्सिबल मॉडिफ़ायर हटाया गया (I0d820)
TextField के लिए चुने गए विकल्प को बदलने के लिए ड्रैग सलेक्शन हैंडल लागू करें. (I27032)
टेक्स्ट फ़ील्ड चुनने के लिए, longPressAnd टास्क लागू करता है. (I17919)
गड़बड़ियां ठीक की गईं
- FocusModifier को Modifier.focus, Modifier.focusRequester, Modifier.focusObserver के लिए बंद कर दिया गया. FocusState और FocusState को फ़ोकसState2 के लिए हटा दिया गया है. I46919, b/160822875, b/160922136
runOnIdleCompose
का नाम बदलकरrunOnIdle
किया गया (I83607)- ज़्यादा आसान बनाने के लिए, कई टेस्टिंग एपीआई के नाम बदले गए. सभी findXYZ के एपीआई का नाम बदलकर, onNodeXYZ कर दिया गया है. सभी doXYZ के एपीआई का नाम बदलकर यह कर दिया गया परफ़ॉर्म करने वाली सेटिंगXYZ. (I7f164)
- पहले बंद किए गए Modifier.Repple को हटा देता है. क्लिक करने योग्य अब डिफ़ॉल्ट संकेत के रूप में रिपल का उपयोग करता है (अगर आपके ऐप्लिकेशन में MaterialTheme {} सेट है) इसलिए ज़्यादातर मामलों में आप केवल क्लिक करने योग्य का उपयोग कर सकते हैं और बिना किसी शुल्क के रिपल संकेत प्राप्त कर सकते हैं. अगर आपको रिपल के लिए रंग / साइज़ / बाउंडेड पैरामीटर को पसंद के मुताबिक बनाना है, तो मैन्युअल तरीके से RippleIndic बनाएं और उसे इंंडिकेशन पैरामीटर के तौर पर 'क्लिक किए जा सकने वाले' पैरामीटर के तौर पर पास किया जा सकता है. (I663b2, b/155375067)
- साइज़ की जांच करने वाले पुराने एपीआई हटाए गए. (Iba0a0)
- Made LayoutNode एक्सपेरिमेंट के लिए उपलब्ध एपीआई (I4f2e9)
- स्क्रोल अभिविन् यास लॉक करने का वर्शन 1 है पूरे Compose में लागू किया गया. (I1ce7a, b/150289741)
- पॉप-अप, डायलॉग, और मेन्यू में अब कॉन्टेक्स्चुअल मटीरियल थीम का इस्तेमाल किया जा रहा है (Ia3665, b/156527485)
- Layout() फ़ंक्शन के माप ब्लॉक से लेआउट डायरेक्शन पैरामीटर हटाया गया. हालांकि, लेआउट दिशा-निर्देश, मेज़र स्कोप ऑब्जेक्ट (Ic7d9d) के ज़रिए कॉलबैक में उपलब्ध है
- ऐब्सलूट अरेंजमेंट जोड़ें - इससे आरटीएल (I3a1df) में ऑटोमैटिक मिररिंग के बिना रो के अंदर बच्चों को व्यवस्थित किया जा सकता है
- @बिना ट्रैक की गई एनोटेशन को हटा दिया गया है. @ComposableContrack(tracked=false) (Id211e) से बदलें
- इस बदलाव से पहले, (I5205a, b/158123804) होने पर, कंपोज़ कंपाइलर प्लगिन, @Composable फ़ंक्शन के अंदर कंस्ट्रक्टर को किए जाने वाले कॉल को इंटरसेप्ट नहीं करता था
viewModel()
कंपोज़ेबल जोड़ें, जो ऐक्टिविटी या फ़्रैगमेंट (I5fdd1) में काम करने के तरीके की तरह ही, पहले से बनाया गया ViewModel बनाने या पाने की सुविधा देता हैरेडियस क्लास की फिर से विधि की मदद से उसे इनलाइन क्लास. कंपैनियन मोड का इस्तेमाल करके बनाया गया वीडियो हटाया गया फ़ंक्शन कंस्ट्रक्टर के पक्ष में मेथड इसमें रेडियस के लिए डिफ़ॉल्ट पैरामीटर का इस्तेमाल किया गया है y-ऐक्सिस के साथ दिखने वाली वैल्यू x-ऐक्सिस का रेडियस पैरामीटर.
इस्तेमाल करने के लिए, DrawScope.drawRoundRect को अपडेट किया गया दो अलग-अलग पैरामीटर के बजाय, सिर्फ़ एक रेडियस पैरामीटर x और y के आस-पास की रेडियस के फ़्लोट वैल्यू ऐक्सिस (I46d1b)
अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सेल पैरामीटर के लिए प्रिमिटिव टाइप. Px क्लास को पूरी तरह से मिटाया गया (I3ff33)
अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I086f4) के लिए प्रिमिटिव टाइप
अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (Id3434) के लिए प्रिमिटिव टाइप
अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I97a5a) के लिए प्रिमिटिव टाइप
टेक्स्ट फ़ील्ड के कर्सर में ब्लिंक करने वाला ऐनिमेशन (Id10a7) है
आंशिक जेस्चर के लिए अब हाव-भाव टोकन (Id7ae5)
अलग-अलग कॉलम में Px क्लास का इस्तेमाल बदला गया मुझे छात्र-छात्राओं की सिर्फ़ डीपी पर भरोसा करने के लिए रीफ़ैक्टरिंग और पिक्सल पैरामीटर (I57bff) के लिए प्रिमिटिव टाइप
हाई लेवल कॉम्पोनेंट के लिए, इस्तेमाल की अनुमति देने के लिए, Modifier.semantics का इस्तेमाल नहीं किया जा सका. (I4cfdc)
AnnotatedString.Builder.addAnnotationString का नाम बदलकर addStringAnnotation. (I5059e)
अलाइनमेंट एपीआई को अपडेट किया गया और ऐब्सलूट अलाइनमेंट के लिए सपोर्ट किया गया है (यह आरटीएल कॉन्टेक्स्ट में अपने-आप मिरर नहीं होता है) (I38cd3)
Layout और LayoutModifier चिल्ड्रेन को अलग-अलग लेआउट डायरेक्शन में मेज़र किया जा सकता है. (Ibd731)
अतिरिक्त वैकल्पिक रेक्टैंगल के बारे में जानकारी मदद करने के लिए ImagePainter का पैरामीटर पहले से मौजूद ImageAsset (I0ea9e) का सब-सेक्शन बनाकर
आइटम हटाते समय, AdapterList में होने वाले क्रैश (Ic64b0, b/153195921) को ठीक किया गया
आपने activity.setContent { } ब्लॉक में, सबसे पहले जो लेआउट डाला था उसे हमने मेज़र करने का तरीका बदल दिया है. पहले इसे पूरी गतिविधि स्क्रीन को भरना पड़ता था. अब यह इस तरह काम करता है, जैसे कि आपने अपने लेआउट को स्टैक के अंदर रखा हो: यह स्क्रीन से छोटा हो सकता है और इसे सबसे ऊपर बाईं स्क्रीन पर रखा जाता है. अगर आपको पुराना तरीका इस्तेमाल करना है, तो अपने लेआउट के लिए Modifier.fillMaxSize() लागू करें. (Ie88a7, b/153453714)
ui-text-compos मॉड्यूल का नाम बदलकर, ui-text कर दिया गया है. यूज़र इंटरफ़ेस (यूआई)-टेक्स्ट अब CoreText और CoreTextField कंपोज़ेबल (Ib7d47) शामिल हैं
ui-text मॉड्यूल का नाम बदलकर ui-text-core (I57dec) कर दिया गया है
ui-framework/CoreText, CoreTextField कंपोज़ेबल को इसके तहत ले जाया गया ui-टेक्स्ट-कंपोज़ करें. आप अपने प्रोजेक्ट. (I32042)
runOnIdleCompose
औरrunOnUiThread
अब ग्लोबल फ़ंक्शन हैं लिखने के लिए विकल्प पर क्लिक करें. (Icbe8f)[Mutable]स्टेट प्रॉपर्टी डेलिगेट ऑपरेटर को एक्सटेंशन पर ले जाया गया Kotlin 1.4 प्रॉपर्टी डेलिगेट ऑप्टिमाइज़ेशन के साथ काम किया जा सकता है. कॉलर को सूची जोड़नी होगी
by state { ... }
याby mutableStateOf(...)
का इस्तेमाल जारी रखने के लिए, इंपोर्ट किए जा सकते हैं. (I5312c)DrawlayerModifier और preventlayer() अब डिफ़ॉल्ट ClipsToBounds हैं औरClipToOutline गलत पर सेट करें. (I0eb8b, b/152810850)
LayoutLayout का नाम बदलकर,मेज़रमेंट नतीजा किया गया. (Id8c68)
बहिष्कृत केंद्र कंपोज़ेबल. इसे LayoutSize.Fill + LayoutLayout.Center मॉडिफ़ायर से बदला जाना चाहिए. इसके अलावा, सही मॉडिफ़ायर (Idf5e0) वाले किसी बॉक्स या स्टैक कंपोज़ेबल से भी बदला जाना चाहिए
LayoutBlogger का नाम बदलकर Layoutweight किया गया. भरने के लिए टाइट पैरामीटर का नाम बदला गया. (If4738)
ड्रॉवेक्टर को सामान्य से बदला गया है किसी ऐसे मॉड्यूल को बनाने के लिए इस्तेमाल किया जा सकने वाला फ़ंक्शन जो वेक्टर को बैकग्राउंड के तौर पर लेआउट में ड्रॉ कर देगा. (I7b8e0)
कंपोज़ेबल फ़ंक्शन क्लिप को मॉडिफ़ायर से बदलें ड्रॉक्लिप(). DrawClipToBounds एक सुविधाजनक मॉडिफ़ायर है जब आपको सिर्फ़ लेयर की सीमाओं से क्लिप बनाने की ज़रूरत हो, तब इस्तेमाल करें होता है. (If28eb)
DraftShadow के कंपोज़ेबल फ़ंक्शन को createShadow() से बदला गया कार्रवाई बदलने वाली कुंजी. परछाइयों को अब लेयरModifier के हिस्से के तौर पर बनाया जाता है. (I0317a)
androidx.compos.ViewComposer को androidx.ui.node.UiComposer में ले जाया गया androidx.compos.Emittable को हटा दिया गया है. यह componentNode के साथ काम नहीं करता था. androidx.compos.ViewAdapters को हटा दिया गया है. इनका इस्तेमाल अब नहीं किया जा सकता. Compose.composInto को बंद कर दिया गया है. इसके बजाय,
setContent
याsetViewContent
का इस्तेमाल करें. Compose.disposPosition को हटा दिया गया है. इसके बजाय,setContent
से मिलेComposition
पर,dispose
तरीके का इस्तेमाल करें. androidx.compos.Compose.subcomposInto को androidx.ui.core.subcomposInto पर ले जाया गया है componentNode#emitInsertAt का नाम बदलकर componentNode#insertAt कर दिया गया है componentNode#emitRemoveAt का नाम बदलकर componentNode#removeAt हो गया है componentNode#emitMode का नाम बदलकर componentNode#move (Idef00) हो गया हैअवमानित रैप कंपोज़ेबल. इसे या तो LayoutLayout मॉडिफ़ायर या स्टैक कंपोज़ेबल (Ib237f) से बदला जा सकता है
लेआउट की दिशा को पैरंट लेआउट नोड से बच्चों में लागू किया गया हो. लेआउट डायरेक्शन मॉडिफ़ायर जोड़ा गया. (I3d955)
Painter.toModifier का नाम बदलकर Painter.asModifier रखें. ऐसा इसलिए, क्योंकि नए मॉडिफ़ायर में मूल पेंटर का रेफ़रंस दिया गया है. इसे एक से ज़्यादा मॉडिफ़ायर इंस्टेंस (I7195b) में शेयर किया जा सकता है.
LayoutPadding मॉडिफ़ायर (I9e8da) में दाईं से बाईं ओर जाने की सुविधा देना
डेंसिटी और डेंसिटीस्कोप को एक इंटरफ़ेस में मर्ज किया गया. Amdensity() के बजाय, अब DensityAmbient.current का इस्तेमाल करें. withडेंसिटी(डेंसिटी) के बजाय, सिर्फ़ with(डेंसिटी) (I11cb1)
ValueHolder क्लास हटाई गई. नए तरीके से ऐनिमेटेड वैल्यू, ऐनिमेटेडफ़्लोट क्लास ऐनिमेशन वैल्यू फ़ील्ड को ऐब्स्ट्रैक्ट बनाएं, ताकि सब-क्लास वैल्यू अपडेट देख सकें.
- एनिमेट की गई वैल्यू, AttributionFloat वगैरह के लिए जोड़ी गई मॉडल क्लास.
- वैल्यू के बीच ऐनिमेट करने के लिए, लाइट-वेट @Composable API का नया सेट जोड़ा गया.
- (I79530)
ऐंबियंट एपीआई में बदलाव किए जा रहे हैं. ज़्यादा जानकारी के लिए, लॉग और
Ambient<T>
का दस्तावेज़ देखें (I4c7ee, b/143769776)Placesable#get(alignmentLine) से वापस लौटाए गए अलाइनमेंट लाइन की पोज़िशन खाली हैं. जिस अलाइनमेंट लाइन के लिए क्वेरी की गई है वह मौजूद न होने पर, alignmentLine.बताई गई जानकारी नहीं दिखाई जाएगी. (I896c5, b/158134875)
रीकंपोज़िशन पर क्रैश होने की वजह से आई ConstraintLayout की गड़बड़ी को ठीक किया गया. (Ibee5a, b/158164341)
WithConstraints पीछे lambda API को बदल दिया गया है. अब दो पैरामीटर के बजाय, इसका रिसीवर स्कोप है
LayoutModifier2 का नाम बदलकर LayoutModifier किया गया. (Id29f3)
Layout और LayoutModifier2 के इंट्रिंसिक मेज़रमेंट फ़ंक्शन में अब IntrinsicmeasureScope रिसीवर है. यह इंप्लिसिक्स क्वेरी एपीआई उपलब्ध कराता है, जिसमें लिखे गए लेआउट को पूरी तरह से प्रोसेस किया जाता है. (आईडी9945)
LayoutDirectionAmbient अब काम नहीं करता. स्थान-भाषा के हिसाब से तय किए गए लेआउट के निर्देश को पढ़ने के लिए, ConfigurationAmbient (I851b1) पर localLayoutDirection का इस्तेमाल करें
LayoutCoordanates के लिए statusInParent और boundsInParent जोड़ा गया. (Icacdd, b/152735784)
ParentData कंपोज़ेबल का इस्तेमाल नहीं किया जा सकता. आपको एक ऐसा मॉडिफ़ायर बनाना चाहिए जो ParentDataModifier इंटरफ़ेस को लागू करता हो. इसके अलावा, अगर आपको मेज़र ब्लॉक में लेआउट चाइल्ड को पहचानने के लिए उन्हें टैग करना है, तो LayoutTag मॉडिफ़ायर का इस्तेमाल करें. (I51368, b/150953183)
OnPositionedModifier और OnChildPositionedModifier जोड़ें OnPositioned और OnChildPositioned कंपोज़ेबल को बदलने के लिए फ़ंक्शन. (I2ec8f)
लेआउटपैडिंग में नेगेटिव पैडिंग की अनुमति न दें. नेगेटिव पोज़िशन ऑफ़सेट के बजाय, LayoutOffset का इस्तेमाल करना चाहिए. (Ifb5b1)
withConstraints को LayoutDirection पैरामीटर मिला (I6d6f7)
ComposeFlags.COMPOSER_PARAM
फ़्लैग कोtrue
के तौर पर अपडेट किया गया है. इससे, कंपोज़ प्लगिन के लिए कोड जनरेट करने की रणनीति बदल जाएगी. हाई लेवल पर, इसकी वजह से @Composable फ़ंक्शन, एक और सिंथेटिक पैरामीटर के साथ जनरेट होता है. इसे बाद में आने वाले @Composable कॉल में पास किया जाता है, ताकि रनटाइम सही तरीके से एक्ज़ीक्यूशन को मैनेज कर सके. हालांकि, यह बाइनरी ब्रेकिंग बदलाव की तरह है. हालांकि, इससे कंपोज़ की सुविधा के सभी पाबंदी वाले इस्तेमाल में, सोर्स-लेवल पर काम करने की सुविधा बनी रहेगी. (I7971c)दिए गए अलाइनमेंटलाइन बनाने के लिए लेआउट कोऑर्डिनेट बदले गए के बजाय एक सेट बनाएं और LayoutCoordingates को कोई मान प्राप्त करने के बजाय get() ऑपरेटर का उपयोग करें. इससे यह आसान हो जाता है के लिए, सेट के एक या ज़्यादा मान को बिना हर मॉडिफ़ायर के लिए नया कलेक्शन बना सकते हैं. (I0245a)
Layoutकोऑर्डिनेटेड में अब पोज़िशन प्रॉपर्टी नहीं होती. कॉन्टेंट बनाने लेआउट मॉडिफ़ायर के बारे में विचार करते समय पोज़िशन प्रॉपर्टी का कोई मतलब नहीं बनता. रोटेशन या स्केलिंग. इसके बजाय, डेवलपर को parentCoordanates का इस्तेमाल करना चाहिए और childToLocal() फ़ंक्शन की मदद से एक से ट्रांसफ़ॉर्म की वैल्यू को कैलकुलेट किया जाता है लेआउट को दूसरे से सिंक करें.
लेआउट कोऑर्डिनेटर, साइज़ प्रॉपर्टी के लिए इसके बजाय IntPxSize का इस्तेमाल करता है PxSize. लेआउट, लेआउट के लिए पूर्णांक पिक्सल साइज़ का इस्तेमाल करते हैं, इसलिए सभी लेआउट साइज़ को पूर्णांक का इस्तेमाल करना चाहिए, फ़्लोटिंग पॉइंट वैल्यू का नहीं. (I9367b)
कंस्ट्रेंट के एपीआई सरफ़ेस में सुधार (I0fd15)
TextDirection.Content (I48f36) को जोड़ा गया
कॉपी करने, काटने, और ठीक से चिपकाने के लिए टूलबार मेन्यू में बदलाव करें. (आईडी3955)
टेक्स्ट फ़ील्ड चुनने के लिए फ़्लोटिंग टूलबार जोड़ें. (Ie8b07)
TextDirectionAlgorithm का नाम बदलकर TextDirection (I75ce8) कर दिया गया है
TextDirection का नाम बदलकर रिज़ॉल्व्डTextDirection किया गया (I3ff38)
टेक्स्ट फ़ील्ड चुनने में हैप्टिक फ़ीडबैक जोड़ें. (I58050)
टेक्स्ट फ़ील्ड चुनने में कॉपी, कट, और चिपकाने के तरीके जोड़ें. (आईडीb70b)
TestTag और सिमैंटिक मिटा दिए गए हैं. इसके बजाय, Modifier.testTag और Modifier.semantics का इस्तेमाल करें (I15ff0, b/158841414)
स्थान-भाषा और LocaleList के लिए पैकेज का नाम बदलकर androidx.ui.text से androidx.ui.intl (I8132c)
एपीआई में बदलाव:
AnnotatedString(builder: Builder)
का नाम बदलकरannotatedString(builder: Builder)
कर दिया गया है. (Ia6377)एपीआई में बदलाव:
AnnotatedString.Item
का नाम बदलकरAnnotatedString.Range
कर दिया गया है. (I2d44d)लेख से जुड़ी कार्रवाइयां करने के लिए टूलबार जोड़ें. (I49d53)
नया LifecycleOwnerAmbient अब उपलब्ध है. अब Compose के यूज़र इंटरफ़ेस (यूआई) के साथ इस्तेमाल की जा रही गतिविधि को androidx.activity.componentActivity (या AppCompatActivity) को बड़ा करना चाहिए. android.app.Activity पर setContent का इस्तेमाल अब बंद कर दिया गया है (Idb25a, b/153141084)
ui-android-text पैकेज का नाम (androidx.text) इससे बदला गया androidx नीति के मुताबिक काम करने के लिए androidx.ui.text.platform. (I42711)