Compose UI
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(সব কম্পোজ প্যাকেজের জন্য API রেফারেন্স ডকুমেন্ট দেখুন)
| লেটেস্ট আপডেট | স্টেবল রিলিজ | রিলিজ ক্যান্ডিডেট | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ০৭ অক্টোবর, ২০২৬ | ১.১২.১ | - | 1.13.0-beta01 | - |
গঠন
androidx-এর মধ্যে ৭টি Maven Group Id-এর কম্বিনেশন হল Compose. প্রতিটি গ্রুপে
কার্যকারিতার একটি টার্গেট করা সাবসেট থাকে, প্রতিটি গ্রুপের নিজস্ব রিলিজ
নোট থাকে।
এই সারণীতে গ্রুপ ও রিলিজ নোটের প্রতিটি সেটের লিঙ্ক ব্যাখ্যা করা হয়েছে।
| গ্রুপ | বর্ণনা |
|---|---|
| compose.animation | ব্যবহারকারীর অভিজ্ঞতা আরও ভাল করতে Jetpack Compose অ্যাপ্লিকেশনে অ্যানিমেশন তৈরি করা। |
| compose.compiler | Kotlin কম্পাইলার প্লাগ-ইনের মাধ্যমে @Composable ফাংশন ট্রান্সফর্ম করুন এবং অপ্টিমাইজেশন চালু করুন। |
| compose.foundation | বিল্ডিং ব্লক ব্যবহার করার জন্য রেডি এবং আপনার নিজস্ব ডিজাইন সিস্টেমের অংশ তৈরি করার জন্য ফাউন্ডেশন এক্সটেন্ড করে Jetpack Compose অ্যাপ্লিকেশন লিখুন। |
| compose.material | ব্যবহার করার জন্য রেডি মেটেরিয়াল ডিজাইন কম্পোনেন্ট দিয়ে Jetpack Compose UI তৈরি করুন। এটি হল Compose-এর উচ্চতর লেভেল এন্ট্রি পয়েন্ট, যা www.material.io-তে বর্ণিত কম্পোনেন্টগুলির সাথে ম্যাচ করে এমন কম্পোনেন্ট প্রদান করার জন্য ডিজাইন করা হয়েছে। |
| compose.material3 | মেটেরিয়াল ডিজাইন ৩ কম্পোনেন্ট ব্যবহার করে Jetpack Compose UI তৈরি করুন, এটি হল মেটেরিয়াল ডিজাইনের পরবর্তী উন্নত ভার্সন। Material 3-এ আপডেট করা থিমিং ও কম্পোনেন্ট এবং ডায়নামিক কালারের মতো Material You পছন্দমতো সাজিয়ে নেওয়ার ফিচার অন্তর্ভুক্ত থাকে এবং এটি নতুন Android 12-এর ভিজ্যুয়াল স্টাইল ও সিস্টেম UI-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছে। |
| compose.runtime | Compose-এর প্রোগ্রামিং মডেল ও স্টেট ম্যানেজমেন্টের মৌলিক বিল্ডিং ব্লক এবং টার্গেট করার জন্য Compose Compiler Plugin-এর মূল রানটাইম। |
| compose.ui | লেআউট, ড্রয়িং ও ইনপুট সহ ডিভাইসের সাথে ইন্টার্যাক্ট করার জন্য প্রয়োজনীয় কম্পোজ UI-এর মৌলিক কম্পোনেন্ট। |
ডিপেন্ডেন্সি ঘোষণা করা
Compose-এ কোনও ডিপেন্ডেন্সি যোগ করতে, আপনাকে অবশ্যই নিজের প্রোজেক্টে Google Maven রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য Google-এর Maven রিপোজিটরি পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টের জন্য
ডিপেন্ডেন্সি যোগ করুন:
গ্ৰুভি
plugins { id 'org.jetbrains.kotlin.plugin.compose' } dependencies { implementation "androidx.compose.ui:ui:1.12.1" } android { buildFeatures { compose true } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
plugins { kotlin("plugin.compose") } dependencies { implementation("androidx.compose.ui:ui:1.12.1") } android { buildFeatures { compose = true } kotlinOptions { jvmTarget = "1.8" } }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।
মতামত
আপনার মতামত Jetpack-কে আরও ভালো করে তুলতে সাহায্য করে। আপনি যদি নতুন কোনও সমস্যা খুঁজে পান বা এই লাইব্রেরি উন্নত করার জন্য কোনও আইডিয়া থাকে, তাহলে আমাদের জানান। নতুন লাইব্রেরি তৈরি করার আগে এই লাইব্রেরিতে আগে থেকে থাকা সমস্যা দেখে নিন। আপনি তারকাচিহ্ন বোতামে ক্লিক করে আগে থেকে থাকা কোনও সমস্যাতে আপনার ভোট যোগ করতে পারবেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
ভার্সন 1.13
ভার্সন 1.13.0-beta01
০৭ অক্টোবর, ২০২৬
androidx.compose.ui:ui-*:1.13.0-beta01 রিলিজ করা হয়েছে। 1.13.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- 1.13-এর জন্য পাবলিক API সারফেস থেকে
Modifier.interactionBarrier()ফিরিয়ে নেওয়া হয়েছে। (I47974, b/564575045, b/347038246) - আপডেট করা
PolygonShapeAPI:CornerRounding-কেdp()ওfraction()ফ্যাক্টরির সাথে টপ-লেভেলে সরানো হয়েছে,transformed()ওscaledToFit()এক্সটেনশনকে ইন-প্লেস মিউটেবলPolygonShape.transform(PolygonShapeTransformScope.() -> Unit)ওPolygonShape.copy()দিয়ে পাল্টানো হয়েছে। (If5970) onValueChangeএখনSlider,VerticalSliderওRangeSlider-এ একটি প্রয়োজনীয় প্যারামিটার।SliderওRangeSliderকম্পোনেন্ট জুড়ে আগে লুকানো বন্ধ হয়ে যাওয়া API সরিয়ে দেওয়া হয়েছে, এর মধ্যেSliderState-এDraggableStateপ্রয়োগ করা এবং পুরনোSaverওভারলোড অন্তর্ভুক্ত।SliderStateথেকেisVerticalসরিয়ে দেওয়া হয়েছে।isVerticalওভারলোডের পরিবর্তেSliderDefaults.ThumbওভারলোডSliderStateব্যবহার করা হচ্ছে। (I3fdc1)MediaQuery-এরPostureক্লাসটিWindowPostureদিয়ে প্রতিস্থাপন করা হয়েছে, যা ফিজিক্যালWindowFold(FoldStateওFoldOrientation) এক্সপোজ করে।WindowPosture-এisTabletopওisFlatকনভেনিয়েন্স প্রপার্টি যোগ করা হয়েছে এবং এক্সপ্লিসিট বুক পসচার সরিয়ে দেওয়া হয়েছে। (Id9e8e)- লাইব্রেরি এখন Kotlin 2.2-কে টার্গেট করে এবং kotlinc 2.2 (I82396, b/498369605) প্রয়োজন
BlurStop.fraction-এ@FloatRangeযোগ করা হয়েছে,BlurRadiusSpec.radialGradient-এ ডিফল্টfallOffRadiusপরিবর্তন করেDp.Unspecifiedকরা হয়েছে,Modifier.blur-এরradiusপ্যারামিটারের নাম পরিবর্তন করেblurRadiusSpecকরা হয়েছে এবংBlurScope.radius-এর নাম পরিবর্তন করেblurRadiusSpecকরা হয়েছে। (I91dbc, b/556335791)
সমস্যার সমাধান
- মাপার সময় অ্যালাইনমেন্ট লাইন কোয়েরি করা হলে IllegalArgumentException ('LayoutNode not found in RectList') সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Icec9e, b/549552303)
- একাধিক কম্পোজেবল জুড়ে একই
ImageVectorরেন্ডার করার সময়VectorPainterএখন ইন্টার্নাল গ্রাফিক্স রিসোর্স (ImageBitmap) শেয়ার করবে। এর ফলে, একই টেক্সচার একাধিকবার আপলোড করতে হয় না এবং মেমরি ব্যবহারও কমে যায়। এর ফলে, একই আইকন একাধিকবার ব্যবহার করা হয়েছে এমন তালিকার মতো পরিস্থিতিতে পারফর্ম্যান্স উন্নত হয়।ComposeUiFlags.isVectorDrawCacheSharingEnabled-এর মাধ্যমে এই অপ্টিমাইজেশন বন্ধ করা যেতে পারে। (I91b41) - AndroidTextPaint.setTextMotion, FontHinting বা None linearity-তে ট্রানজিশন করার সময় LINEAR_TEXT_FLAG মুছে না ফেলার সমস্যা সমাধান করা হয়েছে। (I8c19c)
- Compose UI কন্টেন্ট দিয়ে ঢাকা এম্বেড করা AndroidView-তে (যেমন, WebView) TalkBack টাচ এক্সপ্লোরেশন ফোকাস জাম্প করতে পারে এমন একটি সমস্যার সমাধান করা হয়েছে। (I11372, b/561099702)
Color.toColorLong()কল করা বা Paint-এColor.Unspecified-এর উপরে কম্পোজিট করা রঙ সেট করার ফলেIllegalArgumentExceptionসহ ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (Ia365b, b/557521315)androidx.lifecycle:lifecycle-runtimeডিপেনডেন্সি আপডেট করে 2.10.0 করা হয়েছে। AGP 9.5.0-alpha04 বা এর পরের যেকোনও ভার্সনের সাথে বান্ডেল করা লাইফসাইকেল রানটাইম লিন্ট চেক চালানোর জন্য এই ভার্সনটি প্রয়োজন। (I99bfd, b/556807521)- ১০টির বেশি প্যারামিটার সহ কম্পোজ করার উপযুক্ত আইটেমের জন্য টুলিংয়ে ফিক্সড প্যারামিটার এক্সট্র্যাকশন। (Ib167d)
- লেআউট কিউ থেকে ডিঅ্যাক্টিভেট করা লেআউট নোড মুছে না ফেলার ফলে রিম্যাজার করার সময় ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ie64a5)
ভার্সন 1.13.0-alpha03
৯ সেপ্টেম্বর, ২০২৬
androidx.compose.ui:ui-*:1.13.0-alpha03 রিলিজ করা হয়েছে। 1.13.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Material 2 টেক্সট ফিল্ড ওভারলোড যা
value, onValueChangeপ্যারামিটার গ্রহণ করে তা বন্ধ করা হয়েছে।TextFieldStateব্যবহার করে স্টেট হোইস্ট করে এমন ওভারলোডে মাইগ্রেট করুন। (I6b841, b/556234973) - প্রথম কম্পোজ রুট তৈরি হওয়ার আগে
WindowInsetsRulersগ্লোবালি বন্ধ করতে একটি সাধারণ API যোগ করুন। সাধারণWindowInsetsRulers.disable()(Iadc8f)-এর পরিবর্তে শুধু AndroidComposeView.disableWindowInsetsRulers()বন্ধ করুন - পলিগন শেপ ট্রান্সফর্ম ও ফিট করার জন্য Compose Foundation-এ
PolygonShape.transformedওPolygonShape.scaledToFitএক্সটেনশন ফাংশন যোগ করে। (I3f327) - পরিবর্তনকারী
LineHeight.Trim.isTrimLastLineBottom()ফাংশনের নাম পরিবর্তন করেLineHeight.Trim.trimsLastLineBottomএবংLineHeight.Trim.isTrimFirstLineTop-এর নাম পরিবর্তন করেLineHeight.Trim.trimsFirstLineTopকরেছেন (I02211) ComposeUiTestConfig.platform-এর অধীনেboundsAssertionToleranceথেকেPlatformTestConfigযোগ করা হয়েছে, এর ফলে এনভায়রনমেন্ট/নিয়ম লেভেলে ডিফল্ট বাউন্ডস অ্যাসারশন টলারেন্স কনফিগার করার জন্য টেস্টকে অনুমতি দেওয়া হয়েছে। (I7819d, b/545673912)BasicTextFieldওভারলোড যাvalue, onValueChangeপ্যারামিটার গ্রহণ করে তা বাতিল করা হয়েছে।BasicTextFieldওভারলোড এ মাইগ্রেট করুন যেটি নিজের স্টেট হোয়েস্ট করতেTextFieldStateব্যবহার করে। (I636bf, b/552879150)BasicTextField(value, onValueChange)-এর সাথে,VisualTransformation-ও বাতিল করা হয়েছে কারণ এটি শুধুমাত্র এইTextFieldফ্লেভারের মাধ্যমে এক্সপোজ করা হয়। আগে থেকে থাকা ট্রান্সফর্মেশনOutputTransformation-এ মাইগ্রেট করা উচিত। (I636bf, b/552879150)- প্রতিটি লাইনের জন্য আলাদাভাবে লাইন হাইট গণনা করতে
LineHeightStyle.Mode.PerLineযোগ করা হয়েছে, এর ফলে একই প্যারাগ্রাফে ওভারল্যাপ না করেই বিভিন্ন ফন্ট সাইজ ব্যবহার করা যায়। (I41738) LazyListState-এর মাধ্যমেLazyLayoutCacheWindowওLazyListPrefetchStrategyপ্রদান করার পদ্ধতিটি কম্পোজেবল ফাংশনেLazyLayoutCacheWindowপ্রদান করার জন্য বন্ধ করে দেওয়া হয়েছে। (I71f19)- প্রোগ্রেসিভ ব্লার (যেমন, গ্রেডিয়েন্ট ও কাস্টম শেডার) কাজ করার জন্য
Modifier.blur { ... }API যোগ করা হয়েছে (Ie6595, b/481685669) - টাচ, ফোকাস ও অ্যাক্সেসিবিলিটি ইন্টার্যাকশন ব্লক করতে Added Modifier.
interactionBarrier()। (I7c1b7, b/347038246) - Android-এ সিস্টেম-ওয়াইড ক্রস-উইন্ডো ব্লার স্টেট কোয়েরি ও পর্যবেক্ষণ করার জন্য ডেভেলপারদের অনুমতি দিতে
WindowInfo-এisCrossWindowBlurEnabledএক্সটেনশন প্রপার্টি যোগ করা হয়েছে। (If38e2, b/538405295) - বর্তমান
android.view.Windowঅবজেক্ট রিট্রিভ করার অনুমতি দিতেLocalWindow CompositionLocalযোগ করা হয়েছে, এর ফলে কম্পোজ করার উপযুক্ত আইটেমের মধ্যে থেকে উইন্ডো-লেভেল API কন্ট্রোল করা সহজ হয়ে গেছে। (I4d4ff, b/221889664)
সমস্যার সমাধান
- ডিফল্ট হিসেবে
isMinimalistLocalsEnabledচালু করা থাকে। (Ibb4eb, b/523295932) - ডিফল্ট হিসেবে সিঙ্গেল লাইন হাইট অপ্টিমাইজেশন চালু করা আছে। এর ফলে উচ্চতা বা বেছে নেওয়ার পাথের (I5575a) মতো কিছু টেক্সট মেট্রিক্সে কয়েক পিক্সেলের পার্থক্য হতে পারে
compileSdk-এর জন্য Compose লাইব্রেরি 37.1-এ আপডেট করা হয়েছে। এর জন্য Compose ব্যবহার করাcompileSdkসব অ্যাপ ও লাইব্রেরির জন্য ট্রানজিটিভ আপডেট প্রয়োজন হবে। (I05b0f)- প্রিডিক্টিভ ব্যাক চলাকালীন
WindowInsetsRulersIME ইনসেট অ্যানিমেট করা হচ্ছে বলে চিহ্নিত না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে এবং টেক্সট ফিল্ডের মধ্যে ফোকাস পরিবর্তন করার সময়imePaddingআপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Id4562, b/537386261, b/539686000) ComposeViewস্ট্যান্ডার্ড AndroidViewGroup-এর মধ্যে হোস্ট করা হলে ট্র্যাকপ্যাড পিঞ্চ জেস্চার উপেক্ষা করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I80f79)
এক্সটার্নাল কন্ট্রিবিউশন
ComposeViewবিচ্ছিন্ন করার পরে একই ফ্রেমে আবার যুক্ত করলে অ্যাক্টিভিটি লিক হওয়ার সমস্যা সমাধান করা হয়েছে, যেমন,removeViewওaddViewদিয়ে আবার সাজানোর সময়। (Ib5129, b/547675867)
ভার্সন 1.13.0-alpha02
২৬ আগস্ট, ২০২৬
androidx.compose.ui:ui-*:1.13.0-alpha02 রিলিজ করা হয়েছে। 1.13.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Modifier.background-এর জন্য নতুন সিম্যান্টিক প্রপার্টি
BackgroundColorযোগ করা হয়েছে (I7eec3, b/518049030) - আপনি এখন আগে থেকে থাকা আদিম অ্যারে থেকে
Verticesতৈরি করতে পারবেন। (Ifaba8, b/496412761) - একাধিক কম্পোজেবল জুড়ে একই
ImageVectorরেন্ডার করার সময়VectorPainterএখন ইন্টার্নাল গ্রাফিক্স রিসোর্স (ImageBitmap) শেয়ার করবে। এর ফলে, একই টেক্সচার একাধিকবার আপলোড করতে হয় না এবং মেমরি ব্যবহারও কমে যায়। এর ফলে, একই আইকন একাধিকবার ব্যবহার করা হয়েছে এমন তালিকার মতো পরিস্থিতিতে পারফর্ম্যান্স উন্নত হয়।ComposeUiFlags.isVectorDrawCacheSharingEnabled-এর মাধ্যমে এই অপ্টিমাইজেশন বন্ধ করা যেতে পারে। (I35639, b/331283180) requestFocusForChildInLocalBoundsসহায়ক যোগ করুন (Ib1a48)
ভার্সন 1.13.0-alpha01
১২ আগস্ট, ২০২৬
androidx.compose.ui:ui-*:1.13.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.13.0-alpha01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
isVelocityTrackerMinSampleSizeFixEnabledফিচার ফ্ল্যাগ যোগ করে (Ic9b51, b/533444810, b/533775739, b/523705159)- পুরনো
ExperimentalVelocityTrackerApiঅ্যানোটেশন ক্লাস সরিয়ে দেওয়া হয়েছে। (I6f9c6, b/483449576) - isClearNestedScrollCoroutineScopeFixEnabled ফ্ল্যাগ সরিয়ে দিন (Iedfd7, b/506963276)
TextFieldStateএখন টেক্সট স্টাইল সংক্রান্ত তথ্য সেভ ও রিস্টোর করে।AnnotatedString.Annotationঅবজেক্ট সেভ ও রিস্টোর করার অনুমতি দিতেAnnotatedString.Annotation.Saverএখন সর্বজনীন করা হয়েছে। (I8b533, b/135556699)- Compose UI টেস্টে কাস্টম ব্যর্থতা ইভেন্ট হ্যান্ডলার ও ব্যর্থতা আর্টিফ্যাক্ট কনটেক্সট কাজ করে, সেই জন্য
ComposeTestConfig-এTestFailurePolicyওTestFailureHandlerচালু করা হয়েছে। (Ib1a85, b/414802953, b/291106656, b/430644575) - টেস্টিংয়ের জন্য লেআউট নোডের সমাধান করা কম্পোজিট পেরেন্ট-চাইল্ড আলফা ভ্যালু এক্সপোজ করতে
SemanticsProperties.alpha যোগ করা হয়েছে। (Ifddb6, b/524035059) ui-test-junit4v2 প্যাকেজেcreateComposeRule,createAndroidComposeRuleওcreateEmptyComposeRuleওভারলোড বাতিল করা হয়েছে যেগুলি আলাদা আলাদা প্যারামিটার নেয়।ComposeUiTestConfigগ্রহণ করে এমন ওভারলোড বা প্যারামিটার ছাড়া ওভারলোড ব্যবহার করুন, যেগুলি ডিফল্টComposeUiTestConfigব্যবহার করে। মনে রাখবেন, ডিফল্টComposeUiTestConfigপ্রতিটি পরীক্ষার শুরুতে প্রাথমিক ইনপুট মোডInputMode.Touchহিসেবে সেট করে। এর ফলে, কীবোর্ড মোড (InputMode.Keyboard) আশা করা বর্তমান টেস্টগুলি কাজ নাও করতে পারে। প্রভাবিত টেস্ট ঠিক করতে,ComposeUiTestConfig(inputMode = InputMode.Keyboard)স্পষ্টভাবে পাস করুন এবং ইনপুট মোডের জন্য কোনও ম্যানুয়াল সেট-আপ লজিক সরিয়ে দিন। অথবা, আপনিAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseসেট করে প্রতিটি টেস্টের শুরুতে ডিফল্ট ইনপুট মোড সেট করা সাময়িকভাবে বন্ধ করতে পারেন এবং আপনার টেস্ট মাইগ্রেট করার সময় পুরনো আচরণ বজায় রাখতে পারেন। ভবিষ্যতে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে, তাই যদি অল্প সংখ্যক টেস্ট ব্যর্থ হয়, তাহলে সেগুলির কনফিগারেশন পরিবর্তন করে সরাসরি টেস্ট সমাধান করার জন্য সাজেস্ট করা হয়। (Idfb86, b/504195741)createComposeRuleওcreateAndroidComposeRule-এ (যেমন,createComposeRule()বাcreateAndroidComposeRule<MyActivity>()) আর্গুমেন্ট ছাড়া কল এখন ডিফল্টComposeUiTestConfigব্যবহার করে, যা প্রতিটি পরীক্ষার শুরুতে প্রাথমিক ইনপুট মোডকেInputMode.Touchহিসেবে সেট করে, এর ফলে ডিভাইসটি ক্লিন স্টেটে থাকে এবং আগের ইনপুট মোড পরিবর্তনগুলি যাতে পরীক্ষা জুড়ে লিক না করে তা নিশ্চিত করা যায়। তবে, কীবোর্ড মোড (InputMode.Keyboard) আশা করে এমন বিদ্যমান পরীক্ষাগুলি এই নতুন ডিফল্ট টাচ মোডের কারণে ব্যর্থ হতে পারে। প্রভাবিত টেস্ট ঠিক করতে,ComposeUiTestConfig(inputMode = InputMode.Keyboard)স্পষ্টভাবে পাস করুন এবং ইনপুট মোডের জন্য কোনও ম্যানুয়াল সেট-আপ লজিক সরিয়ে দিন। অথবা, আপনিAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseসেট করে প্রতিটি টেস্টের শুরুতে ডিফল্ট ইনপুট মোড সেট করা সাময়িকভাবে বন্ধ করতে পারেন এবং আপনার টেস্ট মাইগ্রেট করার সময় পুরনো আচরণ বজায় রাখতে পারেন। ভবিষ্যতে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে, তাই যদি অল্প সংখ্যক টেস্ট ব্যর্থ হয়, তাহলে সেগুলির কনফিগারেশন পরিবর্তন করে সরাসরি টেস্ট সমাধান করার জন্য সাজেস্ট করা হয়। (Idc4dd, b/267253920, b/504195741)- Compose জুড়ে
@EmptySuperসহ অ্যানোটেট করা ওভাররাইড করা যায় এমন খালি বেস পদ্ধতি, যাতে বোঝানো যায় যে ওভাররাইডিং প্রয়োগ সুপারকে ইনভোক করবে না। (Id407b) ExposedDropdownMenuএখন মেম্বার না হয়েExposedDropdownMenuBoxScope-এর এক্সটেনশন ফাংশন হিসেবে কাজ করে। আপনাকে হয়ত নতুন ইমপোর্ট দিয়ে কোড আপডেট করতে হবে। (Ie8a65, b/356452026)DialogProperties-এblurBehindRadius,backgroundBlurRadius,scrimAlphaওwindowShapeপ্রপার্টি এবংPopupProperties-এblurBehindRadiusওscrimAlphaপ্রপার্টি যোগ করা হয়েছে। ডেভেলপাররা এখন সরাসরি ডায়ালগ ও পপ-আপে ব্যাকগ্রাউন্ড ব্লার, উইন্ডো ব্লার ও স্ক্রিম অস্বচ্ছতা কনফিগার করতে পারবেন। সেটিংwindowShapeডায়ালগ উইন্ডোর ব্যাকগ্রাউন্ডের অস্পষ্টতা রাউন্ডেড কোণে ক্লিপ করার অনুমতি দেয়। (I5d437)- সরানো ফিচার ফ্ল্যাগ - 'কম্পোজ' বোতাম এখন অ্যাক্সেসিবিলিটি ফোকাস সঠিকভাবে ধরে রাখে এবং টাচ করে এক্সপ্লোর করার সুবিধা চালু থাকলে আর ফ্লিকার করে না, কারণ হোভার ইভেন্ট সঠিকভাবে হ্যান্ডেল করা হয়েছে হিসেবে চিহ্নিত করা হয়েছে। (Ib1c80)
- অন্যান্য সেটিংসের সংগ্রহ মার্জ করা বা ইনলাইন সেটিংস ওভাররাইড করার জন্য
FontVariation.Settings-এ মার্জ ওভারলোড যোগ করা হয়েছে। (I6340c) - ফন্ট ইন্টারফেসে
variationSettingsএক্সপোজ করা হয়েছে, ডিফল্ট হিসেবে নতুনFontVariation.Emptyসেট করা আছে। অ্যারে কপি অ্যালোকেশন এড়াতেasList()ব্যবহার করার জন্যFontVariation.Settingsvararg কনস্ট্রাক্টর অপ্টিমাইজ করা হয়েছে। (I9c22f) - আনঅ্যাটাচ বা ডিট্যাচ করা হলে নিরাপদে বাতিল করা
CoroutineScopeফিরিয়ে আনার জন্যNestedScrollDispatcher.coroutineScopeপ্রপার্টি আপডেট করা হয়েছে। (I9b112, b/535290281) runComposeUiTest,runAndroidComposeUiTestওAndroidComposeUiTestEnvironmentওভারলোডগুলি বাতিল করা হয়েছে যেগুলি আলাদা আলাদাeffectContext,runTestContextওtestTimeoutপ্যারামিটার নেয়।ComposeUiTestConfigগ্রহণ করে এমন ওভারলোড বা প্যারামিটার ছাড়া ওভারলোড ব্যবহার করুন, যেগুলি ডিফল্টComposeUiTestConfigব্যবহার করে। মনে রাখবেন, ডিফল্টComposeUiTestConfigপ্রতিটি পরীক্ষার শুরুতে প্রাথমিক ইনপুট মোডকেInputMode.Touchহিসেবে সেট করে। এর ফলে, কীবোর্ড মোড (InputMode.Keyboard) আশা করা বর্তমান টেস্টগুলি কাজ নাও করতে পারে। প্রভাবিত টেস্ট ঠিক করতে,ComposeUiTestConfig(inputMode = InputMode.Keyboard)স্পষ্টভাবে পাস করুন এবং ইনপুট মোডের জন্য কোনও ম্যানুয়াল সেট-আপ লজিক সরিয়ে দিন। অথবা, আপনিAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseসেট করে প্রতিটি টেস্টের শুরুতে ডিফল্ট ইনপুট মোড সেট করা সাময়িকভাবে বন্ধ করতে পারেন এবং আপনার টেস্ট মাইগ্রেট করার সময় পুরনো আচরণ বজায় রাখতে পারেন। ভবিষ্যতে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে, তাই যদি অল্প সংখ্যক টেস্ট ব্যর্থ হয়, তাহলে সেগুলির কনফিগারেশন পরিবর্তন করে সরাসরি টেস্ট সমাধান করার জন্য সাজেস্ট করা হয়। (Ia6d55, b/504195741)- শুধুমাত্র ট্রেলিং ল্যাম্বডা সহ
runComposeUiTest,runAndroidComposeUiTestওAndroidComposeUiTestEnvironment-এ কল করলে এখন ডিফল্টComposeUiTestConfigব্যবহার করা হয়, যা প্রতিটি টেস্টের শুরুতে প্রাথমিক ইনপুট মোডকেInputMode.Touchহিসেবে সেট করে, এর ফলে ডিভাইসটি ক্লিন স্টেটে থাকে এবং আগের ইনপুট মোড পরিবর্তনগুলি যাতে টেস্ট জুড়ে লিক না হয় তা নিশ্চিত করা যায়। তবে, কীবোর্ড মোড (InputMode.Keyboard) আশা করে এমন বিদ্যমান পরীক্ষাগুলি এই নতুন ডিফল্ট টাচ মোডের কারণে ব্যর্থ হতে পারে। প্রভাবিত টেস্ট ঠিক করতে,ComposeUiTestConfig(inputMode = InputMode.Keyboard)স্পষ্টভাবে পাস করুন এবং ইনপুট মোডের জন্য কোনও ম্যানুয়াল সেট-আপ লজিক সরিয়ে দিন। অথবা, আপনিAndroidComposeUiTestFlags.isInputModeSetForDeviceTests = falseসেট করে প্রতিটি টেস্টের শুরুতে ডিফল্ট ইনপুট মোড সেট করা সাময়িকভাবে বন্ধ করতে পারেন এবং আপনার টেস্ট মাইগ্রেট করার সময় পুরনো আচরণ বজায় রাখতে পারেন। ভবিষ্যতে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে, তাই যদি অল্প সংখ্যক টেস্ট ব্যর্থ হয়, তাহলে সেগুলির কনফিগারেশন পরিবর্তন করে সরাসরি টেস্ট সমাধান করার জন্য সাজেস্ট করা হয়। (I8c85d, b/504195741) SemanticsNodeInteraction.isDisplayed() ওisNotDisplayed()-এ @CheckResultযোগ করা হয়েছে যাতে নিশ্চিত করা যায় যে রিটার্ন ভ্যালু অ্যাসার্ট করা হয়েছে। এর ফলে, ডেভেলপাররা অ্যাসারশন API-এর পরিবর্তে ভুলবশত এগুলি ব্যবহার করলে, টেস্ট নীরবে ব্যর্থ হওয়া আটকানো যায়। (I1b447, b/508178494)- ফ্ল্যাগ
AndroidComposeUiFlag.isDelayAndroidViewsHandlerCreationEnabledViewGroup-এর মধ্যে থাকাAndroidView-কে শুধুমাত্র তখনই ইনস্ট্যানশিয়েট করবে যখনComposeView-এর পারফর্ম্যান্স উন্নত করতেAndroidViewযোগ করা হবে, যেগুলিতেAndroidViewনেই। ফ্ল্যাগ বন্ধ করা থাকলে, কন্টেনিংViewGroupইনস্ট্যানশিয়েট করা হয় এবংComposeViewউইন্ডোর সাথে অ্যাটাচ করা হলে সেটি অ্যাটাচ করা হয়। (I306a3, b/524283041) NestedScrollDispatcher-এcoroutineScopeOrNull()-এর ব্যাপারে জানুন, এটি হল ডিসপ্যাচারের পেরেন্ট কোরাউটিন স্কোপ অ্যাক্সেস করার একটি বিকল্প API। (I18c0f)- পরিষ্কার করার অ্যাকশন সবসময় এক্সিকিউট করা হয় তা নিশ্চিত করতে
clearCallbacksপরিবর্তন করেrunAndClearCallbacksকরুন। (If4720, b/526700075) ComposeTestConfig-এর নাম পরিবর্তন করেComposeUiTestConfigকরা হয়েছে এবং এটি v2 প্যাকেজ থেকে মূলandroidx.compose.ui.testপ্যাকেজে সরানো হয়েছে। (I1d2a1, b/504195741)- রিড্র পাস করার জন্য অপেক্ষা করার সময় কাস্টম টাইমআউট কনফিগার করার অনুমতি দিতে
SemanticsNodeInteraction.captureToImage()-এ একটিtimeoutMillisপ্যারামিটার (ডিফল্ট হিসেবে ২০০০ মিলি সেকেন্ড) যোগ করা হয়েছে। (Ib7d62, b/249501063) - ইনডাইরেক্ট পয়েন্টার ইনপুট পরিবর্তন সংক্রান্ত ঐতিহাসিক তথ্য যোগ করে (Ie62d2, b/526961645)
- টেক্সট ফিল্ডে হিন্ট টেক্সট দেখানোর জন্য নতুন
hintTextসিম্যান্টিক প্রপার্টি যোগ করা হয়েছে, যাAccessibilityNodeInfo-এর সাথে ম্যাপ করার মাধ্যমে অ্যাক্সেসিবিলিটি সংক্রান্ত সহায়তা উন্নত করে।hintText. (Ib65da, b/448376876) LocalOwnerওLocalAndroidComposeViewথেকে ডায়নামিক পদ্ধতিতে এবংCompositionLocalঅন-ডিমান্ড অপ্টিমাইজ করা রেজোলিউশন, যাComposeUiFlags.isMinimalistLocalsEnabledব্যবহার করে টগল করা যায়। (I2bf6d)androidx.benchmark-এর এখন ২৪টিminSdkআছে। (Ic2a85)- মার্জ করা চাইল্ডে
hideFromAccessibility-এর প্রোপাগেশন কন্ট্রোল করতেAndroidComposeUiFlags-এ একটি এক্সপেরিমেন্টাল ফ্ল্যাগisPropagateHideFromAccessibilityToMergingChildrenEnabledযোগ করা হয়েছে। (Ie41ff, b/483506400) - পরীক্ষামূলক থেকে স্থিতিশীল অবস্থায় প্রোমোট করা
ComposeUiTestএবং সম্পর্কিত টেস্টিং API (ComposeTestRuleএবংwaitUntilভেরিয়েন্ট সহ)। (Iaec77, b/471148519, b/485124363) - মার্জ করা ট্রাভার্সাল গ্রুপে
TalkBackনেভিগেশন অর্ডার ফিক্স করা হয়েছে। প্রয়োজন হলে,AndroidComposeUiFlags.isTraversalGroupSortingEnabledবন্ধ করে এই পরিবর্তন আগের অবস্থায় ফিরিয়ে আনা যাবে। (I5ae09, b/285043826) - পরীক্ষামূলক পুরনো
IndirectPointerEventহেল্পার ফাংশন সরিয়ে দেয়। (I05dee, b/499336763, b/501098299, b/501098376, b/513249467) - পরীক্ষামূলক @AnimationToolingApi-এর পরিবর্তে @RestrictTo API ব্যবহার করুন, যেটিতে আরও কঠোর ট্র্যাকিং গ্যারান্টি আছে। (Ia4fd1, b/524317805)
- কোনও প্রদত্ত নোডের সাবট্রিয়ের মধ্যে থাকা সব সিম্যান্টিক
নোড খুঁজে পেতে
onDescendants()সিলেক্টর যোগ করা হয়েছে। (Id6b9b, b/444588117) waitUntilNodeCount,waitUntilAtLeastOneExists,waitUntilExactlyOneExistsওwaitUntilDoesNotExistহেলার API আর ব্যবহার করা হয় না এবং এগুলিuseUnmergedTreeগ্রহণ করে না। আনমার্জড সিম্যান্টিক্স ট্রি-তে নোডের জন্য অপেক্ষা করার সুবিধা যোগ করতে,useUnmergedTreeগ্রহণ করে এমন নতুন ওভারলোড যোগ করা হয়েছে। (If675f, b/268432145)SemanticsNodeInteractionসাইজ ও পজিশন অ্যাসার্শনে (assertWidthIsEqualTo,assertHeightIsEqualTo,assertTouchWidthIsEqualTo,assertTouchHeightIsEqualTo,assertPositionInRootIsEqualTo,assertTopPositionInRootIsEqualTo,assertLeftPositionInRootIsEqualTo)toleranceপ্যারামিটার যোগ করা হয়েছে যাতে ডেভেলপাররা তুলনা করার থ্রেশহোল্ড কনফিগার করতে পারেন। এর ফলে বিভিন্ন স্ক্রিন ডেনসিটি জুড়ে টেস্টের দৃঢ়তা উন্নত হয়। (I3a477, b/202752461)- কম্পোজ টেস্টিং এখন মূল-থ্রেড সিঙ্ক্রোনাইজেশন সাপোর্ট করে। আপনি এখন নিরাপদে সিঙ্ক্রোনাইজেশন API (যেমন,
waitForIdle() এবংrunOnIdle()) ইনভোক করতে এবং UI/মূল থ্রেড কলব্যাকের মধ্যে সরাসরি কম্পোজ অ্যাসার্শন বা অ্যাকশন এক্সিকিউট করতে পারবেন। (I0247a, b/498478569) - প্যারামিটার ম্যানেজমেন্ট সহজ করতে এবং স্কেলেবিলিটি বাড়াতে Compose টেস্ট API-এর জন্য একটি নতুন কনফিগারেশন মডেল (
ComposeTestConfig) চালু করা হয়েছে।ComposeTestConfig-এর মাধ্যমে সরাসরি ইনপুট মোড (টাচ/কীবোর্ড) কনফিগার করার জন্য সহায়তা যোগ করা হয়েছে, এর ফলে অটোমেটিক সেট-আপ নিশ্চিত করা যায় এবং স্টেট লিক হওয়ার কারণে টেস্ট ফ্ল্যাকিনেস প্রতিরোধ করতে রিসেট করা যায়।run*ComposeUiTestওcreate*ComposeRule-এর জন্য নতুন ওভারলোড যোগ করা হয়েছে যাComposeTestConfigঅবজেক্ট গ্রহণ করে। (Ia3da9, b/267253920, b/504195741) PreviewParameterProvider-এর সাথে মিডিয়া কোয়েরি প্রপার্টি (Posture,PointerPrecision, ইত্যাদি) ব্যবহার করার সময় Compose Preview-তে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। এর জন্য, সেগুলির অন্তর্নিহিত উপস্থাপনাকেStringথেকেInt-এ পরিবর্তন করা হয়েছে। (Ic8f92, b/489939558)- ভিজ্যুয়াল টেক্সটের পাশাপাশি কাঁচা ইনপুট টেক্সটে হুবহু মিল চালু করতে
hasTextExactlyএবংassertTextEquals-এincludeInputTextপ্যারামিটার যোগ করা হয়েছে। (Iee329, b/519026043)
সমস্যার সমাধান
SaveableStateRegistry.performSave()অপ্টিমাইজ করা হয়েছে যাতেHashMapঅ্যালোকেশন আটকানো যায়। ইন্টার্নালিScatterMapব্যবহার করে। (I7d510)- টেক্সট কম্পোজ করার উপযুক্ত আইটেমের জন্য AccessibilityNodeInfo.ExtraRenderingInfo-তে টেক্সটের রঙের তথ্য অটো-ফিল করা হয়। (I11c94, b/518049030)
- লেআউট নোড ডিটাচ করার সময়
NestedScrollDispatcher.coroutineScopeOrNullঅ্যাক্সেস করলেnullরিটার্ন করার পরিবর্তেIllegalStateExceptionদেখানোর সমস্যা সমাধান করা হয়েছে। (I55634, b/533444810) - ডায়নামিক গেটার ব্যবহার করে
compose:uiটপ-লেভেল ভ্যালু ক্লাস প্রপার্টির অপ্টিমাইজ করা ফাইল-লেভেল ইনিশিয়ালাইজেশন। (I34184) - ডায়নামিক গেটার ব্যবহার করে
ui-unitvalue ক্লাসের (TextUnit) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (If4a99) - ডায়নামিক গেটার ব্যবহার করে
ui-graphicsভ্যালু ক্লাসের (BlendMode,Color, ইত্যাদি) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (Iaa86a) - ডায়নামিক
গেটার ব্যবহার করে
compose:ui:uiভ্যালু ক্লাসের (Key,CompositingStrategy, ইত্যাদি) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (I1a340) - ডায়নামিক গেটার ব্যবহার করে
compose:uiটেক্সট ভ্যালু ক্লাসের (TextAlign,TextOverflow,ImeAction, ইত্যাদি) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (I776e0) - ডায়নামিক গেটার ব্যবহার করে
compose:uiটুলিং ও টেস্ট ভ্যালু ক্লাসের (AnimatedVisibilityState,MouseButton,ScrollWheel) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (I23e1b) - ডায়নামিক গেটার ব্যবহার করে
compose:uiইউনিট ভ্যালু ক্লাসের (Dp,DpOffset,TextUnitType, ইত্যাদি) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (If5eb5) compose:uiজ্যামিতি ভ্যালু ক্লাস (Offset,Size,CornerRadius)-এর অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন ডায়নামিক গেটার ব্যবহার করে। (I3b110)- ডায়নামিক গেটার ব্যবহার করে
compose:uiভ্যালু ক্লাস (Role,FocusDirection,PointerEventType, ইত্যাদি) -এর অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (Ie35dd) - অপ্রয়োজনীয় ধীর লেআউট পাস এড়াতে
BaselineShift.NoneওBaselineShift.UnspecifiedএবংBaselineShift(0f)সঠিকভাবে হ্যান্ডেল করুন। (I4350c) - একটি সমস্যার সমাধান করা হয়েছে যেখানে নেগেটিভ জিরো (-0.0) সহ Dp ভ্যালু, ফ্লোটিং পয়েন্ট তুলনা বা ইকুয়ালিটি চেক থেকে তুলনা বা ইকুয়ালিটি চেকের ক্ষেত্রে আলাদা আচরণ করে। (I7dbcf, b/525506543)
- API সংক্রান্ত তথ্য ক্লিন-আপ করে (Ia8066)
এক্সটার্নাল কন্ট্রিবিউশন
Alignment.topRatio,Trim.isTrimFirstLineTop()ওTrim.isTrimLastLineBottom()এখন পাবলিক API (I84f62)
ভার্সন 1.12
ভার্সন 1.12.1
৯ সেপ্টেম্বর, ২০২৬
androidx.compose.ui:ui-*:1.12.1 রিলিজ করা হয়েছে। 1.12.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.12.0
১২ আগস্ট, ২০২৬
androidx.compose.ui:ui-*:1.12.0 রিলিজ করা হয়েছে। 1.12.0 ভার্সনে এইসব কমিট আছে।
### ডাউনলোড করা যায় এমন ভেরিয়েবল ফন্ট ও জিরো-কনফিগারেশন সেট-আপ (ui-text-google-fonts)
• ভেরিয়েবল ফন্ট ও জিরো-কনফিগার GMS সার্টিফিকেট!
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation
import androidx.compose.ui.text.googlefonts.Font
import androidx.compose.ui.text.googlefonts.GoogleFont
val fontFamily = FontFamily(
Font(
googleFont = GoogleFont("Google Sans Flex"),
// Automatically uses default GMS certificates!
variationSettings = FontVariation.Settings(
FontVariation.weight(900),
FontVariation.slant(0f)
)
)
)
──────
### ওয়াইড কালার গ্যামাট (WCG) সাপোর্ট (ui-graphics)
WCG প্রিজার্ভেশন: * API 29+ ভার্সনে Paint বা Shader-এ সেট করা নন-sRGB কালার স্পেস (যেমন, AdobeRgb, DisplayP3) প্রিজার্ভ করা হয়। * পুরনো API লেভেলে sRGB-তে ফল ব্যাক করে।
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Paint
import androidx.compose.ui.graphics.colorspace.ColorSpaces
val wcgColor = Color(0.9f, 0.5f, 0.1f, colorSpace = ColorSpaces.AdobeRgb)
val paint = Paint().apply {
color = wcgColor // Preserved on API 29+
}
──────
### Hardware-Accelerated Mesh Gradients (ui)
• Painter API: Modifier.meshGradient-এর পরিবর্তে MeshGradientPainter ব্যবহার করা হয়, যা হার্ডওয়্যার-অ্যাক্সিলারেটেড Canvas.drawMesh ব্যবহার করে।
• ব্যবহার: Modifier.paint-এর মধ্যে MeshGradientPainter ব্যবহার করুন।
import androidx.compose.ui.draw.paint
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.MeshGradientPainter
val meshPainter = remember {
MeshGradientPainter(rows = 1, columns = 1, hasBicubicColor = true) {
setVertex(0, 0, Offset(0f, 0f), Color.Red)
setVertex(0, 1, Offset(1f, 0f), Color.Blue)
setVertex(1, 0, Offset(0f, 1f), Color.Green)
setVertex(1, 1, Offset(1f, 1f), Color.Yellow)
}
}
Box(Modifier.fillMaxSize().paint(meshPainter))
──────
### ৪. ক্রেডেনশিয়াল ম্যানেজার ইন্টিগ্রেশন (ui)
অটোফিল: * API 34+ টেক্সট ফিল্ডের জন্য কম লেভেলের credentialRequest সিম্যান্টিক্স প্রপার্টি যোগ করে।
import androidx.compose.ui.semantics.credentialRequest
import androidx.compose.ui.semantics.CredentialRequestData
import androidx.compose.ui.semantics.semantics
BasicTextField(
value = value,
onValueChange = onValueChange,
modifier = Modifier.semantics {
if (Build.VERSION.SDK_INT >= 34) {
credentialRequest = CredentialRequestData(request, callback)
}
}
)
──────
### ৫. Automatic Interaction Sounds (ui)
ক্লিক ও নেভিগেশন সাউন্ড: * প্ল্যাটফর্ম সাউন্ড কনফিগারেশন ব্যবহার করে Android-এর সাথে মানানসই ক্লিক ও নেভিগেশন সাউন্ড কাজ করে। * অপ্ট-আউট করা: সাবট্রিয়ের জন্য সাউন্ড বন্ধ করতে SoundEffectOnInteraction র্যাপার ব্যবহার করুন।
import androidx.compose.ui.platform.SoundEffectOnInteraction
// Opt-out of sounds for everything inside
SoundEffectOnInteraction(enabled = false) {
Button(onClick = {}) {
Text("Silent Button")
}
}
### ৬. হাইব্রিড UI-এর জন্য Espresso ইন্টিগ্রেশন (ui-test)
Espresso ViewInteraction-এর মাধ্যমে ম্যাচ করা ভিউ হায়ারার্কিতে Compose ইন্ট্যার্যাকশন স্কোপ করুন।
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.test.espresso.Espresso.onView
// Match RecyclerView row using Espresso
val specificRow = onView(allOf(withId(R.id.row), hasDescendant(withText("Item #5"))))
// Scope Compose interactions to that row
composeTestRule.onRootWithViewInteraction(specificRow)
.onNodeWithTag("fav_icon")
.performClick()
ভার্সন 1.12.0-rc01
২৯ জুলাই, ২০২৬
androidx.compose.ui:ui-*:1.12.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.12.0-rc01-এ এইসব কমিট রয়েছে।
ভার্সন 1.12.0-beta02
১ জুলাই, ২০২৬
androidx.compose.ui:ui-*:1.12.0-beta02 রিলিজ করা হয়েছে। 1.12.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.12.0-beta01
১৭ জুন, ২০২৬
androidx.compose.ui:ui-*:1.12.0-beta01 রিলিজ করা হয়েছে। 1.12.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- প্রযোজ্য নয় (ইন্টার্নাল ডেভেলপার ফিচার ফ্ল্যাগ সরানো হচ্ছে) (Iaf2c4, b/368702588)
- প্রযোজ্য নয় - ফিচার ফ্ল্যাগ সরানো হয়েছে। (I24668, b/521811270)
- পরীক্ষামূলক ফিচার ফ্ল্যাগ যোগ করা হয়েছে
ComposeUiFlags।isTrackpadPinchReinterpretationEnabledট্র্যাকপ্যাড পিঞ্চ জেসচারকে স্কেল ফ্যাক্টর সহ মাউস ইভেন্ট হিসেবে আবার ব্যাখ্যা করতে। (Id3477, b/478053727) - পরোক্ষ পয়েন্টার ইভেন্ট ট্রিগার করার জন্য টেস্ট ফাংশনের নাম পরিবর্তন করে (I3ee35, b/509618414)
BasicTextওBasicTextField-এ অপ্টিমাইজেশন যোগ করুন, যেখানে softwrap=false সহ টেক্সটের জন্য লাইন হাইট সেট করা এখন আরও অপ্টিমালি গণনা করা হচ্ছে (I2150a)
সমস্যার সমাধান
- অপ্রয়োজনীয় UI রিকম্পোজিশন আটকাতে সাবকম্পোজিশন জুড়ে অপ্টিমাইজ করা স্ক্রল ক্যাপচার স্টেট প্রোপাগেশন। (I05830)
- এক্সপেরিমেন্টাল ফিচার ফ্ল্যাগ চালু করা হয়েছে
ComposeUiFlags।isTrackpadPinchReinterpretationEnabledডিফল্ট হিসেবে। (I35ab8, b/478053727) - ভেক্টর ড্রয়েবল রিসোর্স পার্সিংয়ে একটি সমস্যার সমাধান করা হয়েছে যেখানে নেস্ট করা
<group>এলিমেন্ট থাকলে প্যারেন্ট<clip-path>এলিমেন্ট উপেক্ষা করা হত। (Id4ea9, b/474530439) AndroidComposeTestRule-এ স্ট্যান্ডার্ড JUnit 4 টেস্ট আবার চালানোর নিয়মের জন্য সহায়তা যোগ করা হয়েছে। এটি ইন্টার্নাল টেস্ট এনভায়রনমেন্ট ও কোরাউটিন স্কোপকে এক্সিকিউশন অ্যাটেম্প্টের মধ্যে রিজেনারেট করে। (Iafaa7, b/235383900)
এক্সটার্নাল কন্ট্রিবিউশন
- ক্লিপবোর্ড ইমপ্লিমেন্টেশন মক করার উপায় প্রদান করতে, পরীক্ষার জন্য
AndroidClipboardইন্টারফেস এক্সপোজ করা (Ie4d72, b/512924975) commitText()ওsetComposingText()-এরTextAttributeভার্সনের জন্য ব্যাকওয়ার্ড কম্প্যাটিবিলিটি যোগ করুন। SDK>=37-এর জন্য, অ্যাক্সেসিবিলিটি পরিষেবা ঘোষণা করতে পারবে যে কোনও সাজেশন পরিবর্ত টেক্সট বেছে নেওয়া হয়েছে কিনা। SDK<37-এর জন্য, স্পোকেন ফিডব্যাককে প্রভাবিত করবে না (অর্থাৎ, আগে থেকে থাকা আচরণ)। (I90e3d, b/439879822)
ভার্সন 1.12.0-alpha03
১৯ মে, ২০২৬
androidx.compose.ui:ui-*:1.12.0-alpha03 রিলিজ করা হয়েছে। 1.12.0-alpha03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- API 34+ ভার্সনে নতুন
credentialRequestসিম্যান্টিক্স প্রপার্টি ওCredentialRequestDataহেল্পার যোগ করা হয়েছে যাতে Jetpack Compose টেক্সট ফিল্ডকে অটোফিল ফ্রেমওয়ার্কের মাধ্যমে Android-এর Credential Manager-এর সাথে ইন্টিগ্রেট করা যায়। (Ida2bf, b/488446455) ParagraphIntrinsicsফ্যাক্টরি ফাংশন যোগ করা হয়েছে যা অন্যান্য আর্গুমেন্টের মধ্যেsoftWrapআর্গুমেন্ট নেয়। অভ্যন্তরীণভাবে, আমরা এটিকে একটি সিগন্যাল হিসেবে ব্যবহার করতে পারি যে টেক্সটটি একটি লাইন হিসেবে রেন্ডার করা হয়েছে এবং নির্দিষ্ট কিছু অপ্টিমাইজেশন পারফর্ম করতে পারি। (I66ca4, b/485495112)- Compose কম্পোনেন্টে অটোমেটিক ইন্ট্যার্যাকশন সাউন্ড (ক্লিক ও ফোকাস নেভিগেশন) সংক্রান্ত সহায়তা যোগ করা হয়েছে, সাথে অপ্ট-আউট করার অনুমতি দিতে একটি নতুন
SoundEffectOnInteractionকম্পোজ করার সুবিধা যোগ করা হয়েছে। মনে রাখবেন, এই পরিবর্তনের ফলে এখন থেকে মূল থ্রেড থেকে সিমান্টিক ক্লিক লিসেনারকে কল করতে হবে, যা অল্প সংখ্যক টেস্ট কেসে প্রভাব ফেলতে পারে। (I78f65) - স্টেবিলাইজ করা
Fontফ্যাক্টরি ফাংশনvariationSettingsনিচ্ছে। (I183f2) ResourceFontloadingStrategyপ্রপার্টি ওcopyমেথড স্টেবিলাইজ করা হয়েছে। (I40d84)InterceptPlatformTextInputওPlatformTextInputInterceptorAPI স্টেবিলাইজ করা হয়েছে। (Id2784)- প্ল্যাটফর্ম সেপারেশন উন্নত করতে,
registerIdlingResourceওunregisterIdlingResourceএক্সটেনশন ফাংশনে সরানো হয়েছে; আপনাকে হয়ত ইমপোর্ট আপডেট করতে হবে। (I21d3d, b/471148519) - স্টেট ইন্সপেকশনের সময় টেস্ট পারফর্ম্যান্স উন্নত করতে
runWithoutImplicitWaitথেকেComposeTestRuleএবংComposeUiTestচালু করা হয়েছে। এই API, ইমপ্লিসিট সিঙ্ক্রোনাইজেশন বন্ধ করে কোডের একটি ব্লক এক্সিকিউট করার অনুমতি দেয়, যার ফলে প্রতিটি নোড কোয়েরির জন্য বারবার সিঙ্ক্রোনাইজেশনের ওভারহেড এড়ানো যায়। এর ফলে টেস্ট অনেক দ্রুত এক্সিকিউট করা যায়, বিশেষ করে অ্যানিমেশন টেস্টিংয়ের মতো টেস্টের ক্ষেত্রে, যেখানে ফ্রেমের মাধ্যমে ম্যানুয়ালি স্টেপ এবং একাধিক প্রপার্টি স্যাম্পেল করা হয়। (Ie00e9, b/490270394) MultiPreviewঅ্যানোটেশন ক্লাসে এখন@PreviewWrapperঅ্যানোটেশন প্রয়োগ করা যাবে, এর ফলে ডেভেলপাররা আগে থেকেই র্যাপ করা যায় এমন প্রিভিউ কনফিগারেশন তৈরি করতে পারবেন। (I8ae66, b/511170361)MeshGradientPainter-এর মাধ্যমে মেশ গ্রেডিয়েন্ট রেন্ডার করা হয়।Modifier.meshGradientসরিয়ে দেওয়া হয়েছে, এর পরিবর্তেModifier.paint-এর সাথেMeshGradientPainterব্যবহার করুন।MeshGradientRendererএখন ইন্টার্নাল। (I2d170, b/508110246)- Ruler-এর ভ্যালু প্রদানকারী আলাদা ল্যাম্বডার সাথে, Ruler প্রদান করা যাবে কিনা তা উত্তর দেয় এমন ল্যাম্বডা সাপ্লাই করে, এখন Ruler আলাদা আলাদাভাবে প্রদান করা যেতে পারে।
isRulerProvidedল্যাম্বডা দেখা যায়নি এবং কোনও ভ্যালু প্রদান করা যাবে কিনা সেই ব্যাপারে আশাবাদী হতে হবে।rulerProviderlambda লক্ষ্য করা হয় যাতে কোনও ভ্যালু পরিবর্তন হলে, এটি রুলারের ভ্যালু এবং রুলারের সব রিডারকে আপডেট করে। (Ie9089) - পরীক্ষামূলক Style API-তে, কাস্টম স্টাইল স্কোপ থাকতে পারে এমন কাস্টম স্টাইলের ধরন তৈরি করার জন্য সহায়তা যোগ করা হয়েছে। এটি স্টাইলের মাধ্যমে সেট করা যায় এমন প্রপার্টিকে সাবসেট করার (যেমন, গ্রাফিক্স লেয়ার বা টেক্সট প্রপার্টি সম্পূর্ণভাবে সরিয়ে দেওয়া) পাশাপাশি অন্যান্য স্টাইল থেকে আলাদাভাবে স্কোপকে এক্সটেন্ড করার (যেমন, কোনও
MediaPlayerকম্পোজ করার উপযুক্ত আইটেমে শুধুমাত্রplaying { }সিনট্যাক্স কাজ করে) অনুমতি দেয়। এই পরিবর্তনের ফলে বাইনারি ও সোর্স কোড আর মানানসই থাকে না। সোর্স কম্প্যাটিবিলিটি ভেঙে যাওয়ার মূল কারণ হল,StyleScope-এর মধ্যে থাকা হেল্পার ফাংশন এখন এক্সটেনশন ফাংশন হিসেবে কাজ করে (যেমন,fun contentProperty(all: Dp)এখন একটি এক্সটেনশন ফাংশন)। প্রয়োজনীয় এক্সটেনশন ফাংশন ইমপোর্ট করা অথবা androidx.compose.foundation.styles থেকে সব চিহ্ন ইমপোর্ট করা, এই পদ্ধতিগুলি সঠিকভাবে কম্পাইল করার জন্য এই মেথড কল করা কোড পাওয়ার জন্য যথেষ্ট। (I1ef27, b/493676648) - পয়েন্টার আইডির জন্য ডিফল্ট আর্গুমেন্ট সহ
updatePointerBy()যোগ করে। (I99f30, b/502001776) DeferredTargetAnimationআর পরীক্ষামূলক নয়, অপ্ট-ইন সরিয়ে দিন।" androidx-main-এ- সমস্যার সমাধান কন্ট্রোল করতে
isClearNestedScrollCoroutineScopeFixEnabledফ্ল্যাগ যোগ করা হয়েছে। (Ibd394, b/505343254) DeferredTargetAnimationআর পরীক্ষামূলক নয়, অপ্ট-ইন সরিয়ে দিন। (I1e4ae, b/500030165)- ui-tooling-এ ট্রিগার কাজ করার জন্য নতুন enum (I6e198, b/478807872)
ComposeViewContextরেফারেন্স ভিউ অ্যাটাচ না করেই তৈরি করা যাবে।setContent()কল করার আগে রেফারেন্স ভিউ অ্যাটাচ করতে হবে। (Id0952)
সমস্যার সমাধান
- একই লেআউটের জন্য একাধিক সেভ কল হলে
focusRestorerসঠিকভাবে ফোকাস ফিরিয়ে আনতে না পারার সমস্যা সমাধান করে (I10277, b/505371994) - আগে পারফর্ম্যান্স উন্নত করার ফলে, অ্যাটাচ করা নেই এমন
ComposeViewsপরিমাপ করা যায়নি। এই পরিবর্তনের ফলে পারফর্ম্যান্স সংক্রান্ত সমস্যা আর না করেই এটি এখন করা যাবে। (I9b2c5, b/508650647) ComposeViewContext-এ পরিবর্তন করার পরে কম্পোজিশন আবার তৈরি করা হয় যাতেComposeViewContext-এ দ্রুত অ্যাক্সেস পাওয়া যায়। (I3b3a8, b/487364963)- Android-এ পেইন্ট ও শেডারে sRGB নয় এমন কালার সেট করার জন্য Compose-কে অনুমতি দিন। এর ফলে, Compose কালার স্পেসকে প্ল্যাটফর্মের সমতুল্য কালার স্পেসের সাথে সঠিকভাবে ম্যাপ করার মাধ্যমে ওয়াইড কালার গ্যামাট বজায় রাখা যাবে। প্ল্যাটফর্ম রেন্ডারিং অপারেশনের জন্য কাজ করে না (যেমন, CIE XYZ, CIE Lab, OkLab) অথবা বর্তমান API লেভেলে উপলভ্য নয় এমন কালার স্পেস নিরাপদে Srgb কালার স্পেসে ফলব্যাক করবে। (I3efb5, b/388511109)
এক্সটার্নাল কন্ট্রিবিউশন
androidx.compose.ui.platform.NativeClipboardtypealias-এর ব্যবহার বন্ধ করা হয়েছে, এর পরিবর্তে সরাসরিandroid.content.ClipboardManagerব্যবহার করুন (Ibc611)Clipboard.nativeClipboardপ্রপার্টির পরিবর্তেClipboard.nativeClipboardManagerএক্সটেনশন ব্যবহার করুন, যাতেtypealias-এর মাধ্যমেcommonMainসোর্সসেটে প্ল্যাটফর্মের ধরন প্রকাশ না করতে হয় (Ibc611)
ভার্সন 1.12.0-alpha02
৬ মে, ২০২৬
androidx.compose.ui:ui-*:1.12.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.12.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
MeshGradientমডিফায়ার চালু করা হয়েছে। (Ia9a08, b/455752719)- বিল্ট-ইন অটোফিল ডিবাগ লগিং কলব্যাক সরিয়ে দেয়।
AutofillManager.AutofillCallbackথেকে লগ-ইন করেও একই কার্যকারিতা পাওয়া যেতে পারে। (I631c7, b/502279690) - ডাউনলোড করা যায় এমন ফন্টের জন্য ভেরিয়েশন সেটিংস কাজ করে (Ic25c7, b/496278020)
mediaQueryওderivedMediaQueryআপডেট করেBoolean-এর পরিবর্তে জেনেরিক টাইপ রিটার্ন করা হয়েছে, এর ফলে অ্যাডাপ্টিভ UI তৈরি করার সময় আরও নমনীয় ব্যবহার করা যাবে। (I93830, b/498698350)
ভার্সন 1.12.0-alpha01
২২ এপ্রিল, ২০২৬
androidx.compose.ui:ui-*:1.12.0-alpha01 রিলিজ করা হয়েছে। 1.12.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ফিচার ফ্ল্যাগ
ComposeUiFlags.isIndirectPointerNavigationGestureDetectorEnabled(I82be3, b/455601135) সরিয়ে দেয় mediaQueryএকটি ইনলাইন ফাংশন তৈরি করা হয়েছে (Ie9457, b/498698350)ComposeViewContextপরীক্ষামূলক পর্যায় থেকে বেরিয়ে এসেছে এবংExperimentalComposeViewContextApiঅ্যানোটেশন সরিয়ে দেওয়া হয়েছে (I32eca)ComposeView.disableWindowInsetsRulers()এখন আর এক্সপেরিমেন্টাল নয় (Ia81a5)- কম্পোজ UI-তে বর্তমানে কোনও কাজ বাকি আছে কিনা তা প্যাসিভভাবে চেক করার অনুমতি দিতে
hasPendingWork()API যোগ করা হয়েছে, এর ফলে অপেক্ষা করার প্রয়োজন হয় না বা ক্লক অ্যাডভান্স করা হয় না। অ্যানিমেশন বা অন্যান্য ব্যাকগ্রাউন্ড কাজ কখন শেষ হয়েছে তা নির্ধারণ করার জন্য ম্যানুয়াল ক্লক টেস্টের ক্ষেত্রে এটি কাজে লাগে। (Ic54e3) AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabledফিচার ফ্ল্যাগ সরানো হয়েছে (I7fd25, b/491111451)- ফিচার ফ্ল্যাগ সরানো হয়েছে
AndroidComposeUiFlags.isSharedFontEnabled(I2cebe, b/479898293) - Android-এ কাজ করে এমন কীবোর্ড বিকল্পের সেট সম্পূর্ণ করতে অতিরিক্ত
KeyboardTypeবিকল্প যোগ করে, যার মধ্যে তারিখ, সময়, তারিখ ও সময়, সই করা দশমিক সংখ্যা এবং আরও অনেক কিছু অন্তর্ভুক্ত। (I3713e, b/202353328) AndroidComposeUiFlags.isSharedHapticsEnabledফ্ল্যাগ সরানো হয়েছে (I6a1d4, b/479895628)AndroidComposeUiFlags.isSharedClipboardManagerEnabledফ্ল্যাগ সরানো হয়েছে (I41e3c, b/479895130)AndroidComposeUiFlags.isSharedViewConfigurationEnabledফ্ল্যাগ সরানো হয়েছে (I6d3aa, b/479890645)- ফিচার ফ্ল্যাগ
AndroidComposeUiFlags.isSharedDrawingEnabledসরানো হয়েছে। (I27912, b/479849019) - ফিচার ফ্ল্যাগ
AndroidComposeUiFlags.isSharedAccessibilityManagerEnabledসরিয়ে দেওয়া হয়েছে (I6b726, b/479845566) AndroidComposeUiFlags.isSharedWindowInfoEnabledফ্ল্যাগ সরিয়ে দিন (Ife9a9, b/479837249)AndroidComposeUiFlags.isSharedComposeViewContextEnabledফ্ল্যাগ সরিয়ে দিন। (Ic522a, b/479834257)- ডাউনলোড করা যায় এমন ভেরিয়েবল ফন্ট কাস্টমাইজ করতে ভেরিয়েশন সেটিংস যোগ করা (Ifdc93, b/223262013)
- ডাউনলোড করা যায় এমন ভেরিয়েবল ফন্ট কাস্টমাইজ করতে ভেরিয়েশন সেটিংস যোগ করা (I390af, b/223262013)
- ফ্ল্যাগ সরানো
isTraversableDelegatesFixEnabled(Ia7dfe, b/485962494) ComposeTestRuleওComposeUiTest-এrunWhenIdleও এর সাসপেন্ড করা ভ্যারিয়েন্টawaitAndRunWhenIdleচালু করা হয়েছে যাতে টেস্ট পারফর্ম্যান্স ও স্টেট স্টেবিলিটি উন্নত করা যায়। এইসব API একবার UI সিঙ্ক্রোনাইজ করে, তারপর প্রতিটি অপারেশনের জন্য বারবার সিঙ্ক্রোনাইজ করার ওভারহেড ছাড়াই কোডের একটি ব্লক এক্সিকিউট করে। এর ফলে, বিশেষত অ্যানিমেশন টেস্টিংয়ের মতো অনেক প্রপার্টি স্যাম্পেল করা টেস্টের ক্ষেত্রে, টেস্ট অনেক দ্রুত ও কম ফ্ল্যাকিভাবে এক্সিকিউট করা যায়। (Iabf66, b/490270394)LayerOutsetsথেকেGraphicsLayerওModifier.graphicsLayerযোগ করে যা পরিমাপ করা সাইজের বাইরে লেয়ারের ভিজ্যুয়াল বাউন্ড বাড়াতে ব্যবহার করা যেতে পারে। কোনও লেয়ারকে অফস্ক্রিন বাফারে প্রমোট করা হলে, এর মাধ্যমেclipToBoundsআচরণ এড়ানো যায়। (Ic1189)- ডিফল্ট হিসেবে অটোফিল ইনপুট ইভেন্ট লগ করা বন্ধ করা হয়েছে।
ComposeView.setAutofillDebugEnabled-এ কল করে এখন সেগুলি চালু করা হয়েছে। (I5b430, b/487947860) - Android ফ্রেমওয়ার্কের (
AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled-এর মাধ্যমে কনফিগার করা যায়) দেওয়া ইমপ্লিমেন্টেশন ব্যবহার করার জন্য VelocityTracker পরিবর্তন করা হয়েছে। (Ibc7e2, b/359962905) AndroidComposeUiFlags.isForceChildLayoutAfterMeasurementEnabledtrue হলে, লেআউট পাসের সময় পরিমাপ করার পরে চাইল্ড ভিউতে সবসময় লেআউট কল করা হবে। কম্পোজ করার সময়, পরিমাপের পরে সবসময় চাইল্ড লেআউট করা হয় না, কিন্তু ভিউয়ের ক্ষেত্রে সঠিক স্টেট ম্যানেজমেন্টের জন্য এটি প্রয়োজন। (Ib4fe9, b/430974758)LayoutInfo-এisVirtualযোগ করা হচ্ছে (I3e5cd, b/494243978)isGraphicsLayerShapeSemanticsEnabledফ্ল্যাগ সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (I44be0, b/455600081)- কোডবেসে ফন্ট সার্টিফিকেট যোগ করার ম্যানুয়াল ধাপ ছাড়াই ডাউনলোড করা যায় এমন ফন্ট ব্যবহার করার জন্য নতুন Font API যোগ করা হয়েছে। (I30b86, b/479454159)
- নির্দিষ্ট Android ভিউতে Compose সিমান্টিক সার্চের স্কোপ সীমাবদ্ধ করতে
onRootWithViewInteractionযোগ করা হয়েছে। এর ফলে প্রোডাকশন কোডে অনন্য টেস্ট ট্যাগ না রেখেইRecyclerViews-এর মতো হাইব্রিড UI পরীক্ষা করা সহজ হয়ে যায়। (Ic02c4, b/175226753)
সমস্যার সমাধান
captureToImage()API এখন আপনাকে একটি বিটম্যাপে পপ-আপ বা ডায়ালগ সহ এর অ্যাঙ্কর ক্যাপচার করতে দেয়। (I9b83a, b/443137545)- Compose
compileSdkথেকে API 37-এ আপডেট করা হয়েছে। এর অর্থ হল, Compose ব্যবহার করার সময় ন্যূনতম AGP ভার্সন 9.2.0 প্রয়োজন। (Id45cd, b/413674743) ContentDataType.Noneসেটিং এখন কম্পোজ থেকে অটোফিল ইভেন্ট পাঠানো আটকায়। এর ফলে অটোফিল পরিষেবা অনুরোধ করার সাথে সম্পর্কিত ইনিশিয়ালাইজেশন খরচ এড়ানো যাবে। (I8fbda, b/487947860)
ভার্সন 1.11
ভার্সন 1.11.4
১ জুলাই, ২০২৬
androidx.compose.ui:ui-*:1.11.4 রিলিজ করা হয়েছে। 1.11.4 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.3
১৭ জুন, ২০২৬
androidx.compose.ui:ui-*:1.11.3 রিলিজ করা হয়েছে। ভার্সন 1.11.3-এ এইসব কমিট রয়েছে।
ভার্সন 1.11.2
১৯ মে, ২০২৬
androidx.compose.ui:ui-*:1.11.2 রিলিজ করা হয়েছে। 1.11.2 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.1
৬ মে, ২০২৬
androidx.compose.ui:ui-*:1.11.1 রিলিজ করা হয়েছে। 1.11.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.0
২২ এপ্রিল, ২০২৬
androidx.compose.ui:ui-*:1.11.0 রিলিজ করা হয়েছে। 1.11.0 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.0-rc01
৮ এপ্রিল, ২০২৬
androidx.compose.ui:ui-*:1.11.0-rc01 রিলিজ করা হয়েছে। 1.11.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.0-beta02
২৫ মার্চ, ২০২৬
androidx.compose.ui:ui-*:1.11.0-beta02 রিলিজ করা হয়েছে। 1.11.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- কনসিস্টেন্সি বজায় রাখতে
PreviewWrapperAPI-এর নাম পরিবর্তন করুন (I62659, b/490085948) ComposeViewContextভিউ হায়ারার্কির সাথে অ্যাটাচ না হয়েইComposeView-কে কম্পোজ করতে দেয়।ComposeViewঅ্যাটাচ না করেই কম্পোজ করা শুরু করতেAbstractComposeView.createComposition(composeViewContext)ব্যবহার করুন। (I46e6f)panEndওscaleEnd-এর জন্য ট্র্যাকপ্যাড টেস্ট API-তেdelayMillisযোগ করা হয়েছে (If80fe)
সমস্যার সমাধান
ClipboardএবংClipboardManagerএখন প্রথম মেথড কলের (If0016, b/487947860) মাধ্যমে সিস্টেম পরিষেবার জন্য অনুরোধ করে- যেখানে ফোকাস নোড ও গ্রুপ আবার ব্যবহার করা হচ্ছে, সেখানে লেজি কন্টেনারের মধ্যে ফোকাস সঠিকভাবে রিস্টোর করা হবে (I18d36, b/481564275)
clippingEnabled = falseসহ পপ-আপ এখন এজ-টু-এজ (I206408, b/327017902) দেখানোর জন্য সম্পূর্ণ উইন্ডো বাউন্ড সঠিকভাবে ব্যবহার করে
ভার্সন 1.11.0-beta01
১১ মার্চ, ২০২৬
androidx.compose.ui:ui-*:1.11.0-beta01 রিলিজ করা হয়েছে। 1.11.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Jetpack Compose ডায়ালগে কাস্টম
windowToken-এর জন্য সহায়তা যোগ করা হয়েছে (Ic7728) - Jetpack Compose পপ-আপে কাস্টম
windowTokenওwindowType-এর জন্য সহায়তা যোগ করা হয়েছে। (I0a04f) PreviewWrapperইন্টারফেস ও অ্যানোটেশন প্রদানকারী সম্পর্কে জানুন। এর ফলে ডেভেলপাররা কাস্টম আচরণ সহ তাদের প্রিভিউ নির্বিঘ্নে র্যাপ করতে পারবেন। (I29f54, b/484306729)AndroidComposeUiFlags.isSharedFontEnabled-এর মান 'ট্রু' হলে,FontLoaderওFontFamilyResolver-এর মতো ফন্ট-সম্পর্কিত অবজেক্ট ইনস্ট্যান্সComposeViewContext-এর মধ্যেComposeViewইনস্ট্যান্স জুড়ে শেয়ার করা যেতে পারে। (I403e8)- Compose সিম্যান্টিক প্রসেসর
mainLooper-এর পরিবর্তে view.handler ব্যবহার করবে, এর ফলে নন-মেইন হ্যান্ডলার ব্যবহার করা ভিউ ক্র্যাশ করবে না। (I671c3, b/486235925) isSkipNonImportantSemanticsNodesHitTestEnabledফ্ল্যাগ যোগ করা হয়েছে যা সিম্যান্টিক্স হিট টেস্টিংয়ের জন্য বাগ ফিক্সকে রক্ষা করে, এটিTalkBack-এর টাচ-টু-এক্সপ্লোরকে প্রভাবিত করে। (I2933f, b/481011169, b/454377558, b/461360154)- Android পরিষেবা থেকে Jetpack Compose ডায়ালগ দেখানোর সুবিধা যোগ করা হয়েছে।
DialogProperties-এ নতুনwindowTypeপ্যারামিটারের মাধ্যমে কাস্টম উইন্ডো টাইপ প্রদান করে, ডেভেলপাররা এখন ওভারলে উইন্ডোতে ডায়ালগ দেখাতে পারবেন। (I7c504, b/478214962) - স্কেল ও প্যান ভ্যালু রিট্রিভ করার জন্য
PointerInputChangeওHistoricalChangeপ্রপার্টির নাম পরিবর্তন করে। (I989a8, b/481333653) - ট্র্যাকপ্যাড জেসচারের জন্য বিভিন্ন কার্ভ ও ইনপুট সিমুলেট করতে, ট্র্যাকপ্যাড টেস্টিং API-এর জন্য আরও ফাংশনালিটি যোগ করে। (I290fb, b/473603145, b/479213358)
- নতুন
PointerEventType.Pan-কেPointerEventType.PanStart,PointerEventType.PanMoveওPointerEventType.PanEnd-এ ভাগ করে। একইভাবে,PointerEventType.Scale-কেPointerEventType.ScaleStart,PointerEventType.ScaleChangeওPointerEventType.ScaleEnd-এ ভাগ করা হয়েছে। এই স্প্লিট, প্ল্যাটফর্ম-ইন্টারপ্রেটেড প্যান ও স্কেল জেসচারের শুরু ও শেষ সম্পর্কে অতিরিক্ত তথ্য পাস করার অনুমতি দেয়, যা পরে Compose-এ পয়েন্টার ইনপুট হ্যান্ডলারকে এই তথ্য ব্যবহার করে ইভেন্ট যথাযথভাবে শনাক্ত করতে এবং বিশেষ করে প্যান বা স্কেল কখন শেষ হয়েছে তা জানতে দেয়। (I4daf6, b/479285849, b/481333653) AndroidComposeUiFlags.isSharedHapticsEnabledtrue হলে,ComposeViewContext-এ শেয়ার করা হ্যাপটিক কন্ট্রোলার ইনস্ট্যান্স থাকে। (Icd79a)- উইন্ডোর ডাইমেনশন, উইন্ডোর পজিশন এবং অন্যান্য ডিভাইস ও এনভায়রনমেন্টের ক্ষমতার উপর ভিত্তি করে ডিক্ল্যারেটিভ অ্যাডাপ্টিভ UI ডেভেলপমেন্ট চালু করতে পরীক্ষামূলক
mediaQuery,derivedMediaQueryএবংUiMediaScopeAPI (@ExperimentalMediaQueryApiহিসেবে চিহ্নিত) চালু করা হয়েছে। (I2d21e, b/479800750)
সমস্যার সমাধান
- Shape প্যারামিটার ডায়নামিক পরিবর্তন করা হলে, ব্লক-স্কোপ করা
Modifier.dropShadowএবংModifier.innerShadowআবার ড্র না করার সমস্যা সমাধান করা হয়েছে। (Ida262, b/486202623) - LTR টেক্সট সহ RTL লেআউট বা RTL টেক্সট সহ LTR লেআউটে ইনলাইন কন্টেন্ট ভুল জায়গায় প্লেস করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I09789)
- ফ্র্যাগমেন্ট ট্রানজিশনে
ComposeViewব্যবহার করা হলে, ব্যতিক্রম তৈরি হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ia425f, b/484100557)
এক্সটার্নাল কন্ট্রিবিউশন
- টেক্সট রিপ্লেসমেন্ট সংক্রান্ত সাজেশন উপলভ্য থাকলে, ট্রান্সলিটারেশন ইনপুট কোন কোন আলাদা আলাদা স্টেটে থাকতে পারে তা শনাক্ত করতে সাহায্য করার জন্য একটি
InputTextSuggestionStateপ্রপার্টি যোগ করুন। এছাড়াও, বর্তমান অনুবাদ করা টেক্সট কম্পোজিশন রেঞ্জের রেঞ্জ ট্র্যাক করার জন্যTextCompositionRangeযোগ করা হয়েছে; শূন্য মান ইঙ্গিত করে যে কোনও কম্পোজিশন নেই। (I7a67f, b/476472318)
ভার্সন 1.11.0-alpha06
২৫ ফেব্রুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.11.0-alpha06 রিলিজ করা হয়েছে। 1.11.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposeUiFlags.areWindowInsetsRulersEnabledফ্ল্যাগের পরিবর্তেComposeView.disableWindowInsetsRulers()API ব্যবহার করা হচ্ছে। (Idcdb4, b/455590696)- পরীক্ষামূলক Android-অনলি ফিচার ফ্ল্যাগ
isAccessibilityShowOnScreenNestedScrollingEnabled(I1c13a)-এ সরানো হয়েছে - উপরের দিকে হাঁটার জন্য সহায়তা যোগ করুন (I1c13a)
- স্ক্রিন রিডার ও একই ধরনের অ্যাক্সেসিবিলিটি পরিষেবার (I71df9, b/434782764) মাধ্যমে আরও ভালো ব্যবহারকারীর অভিজ্ঞতা পেতে, স্ক্রল করা যায় এমন কন্টেনারে আংশিকভাবে দৃশ্যমান মার্জিং নোডের চাইল্ড হিসেবে অফ-স্ক্রিন সিম্যান্টিক নোড সম্পর্কে অভিযোগ জানান
AndroidComposeUiFlags.isSharedClipboardManagerEnabledtrue হলে, ক্লিপবোর্ড সম্পর্কিত ইনস্ট্যান্সComposeViewsজুড়ে শেয়ার করা যেতে পারেComposeViewContextব্যবহার করে (I65e2c)ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabledসরানো হয়েছে (I6e14a, b/455601894)
ভার্সন 1.11.0-alpha05
১১ ফেব্রুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.11.0-alpha05 রিলিজ করা হয়েছে। 1.11.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
AndroidComposeUiFlags.isSharedWindowInfoEnabledWindowInfoতথ্যComposeViewContext-এ সরিয়ে দেয়। ফ্ল্যাগ বন্ধ করে দিলেWindowInfoAndroidComposeView(I3b364) দ্বারা নিয়ন্ত্রিত হয়ComposeView-এর মধ্যে থাকা সাধারণ স্ট্রাকচার শেয়ার করাComposeViewContext-এ সরানো হবে। এটি হল প্রথম পরিবর্তন যাCoroutineContextথেকেComposeViewContext-এ নিয়ে যায়।AndroidComposeUiFlags.isSharedComposeViewContextEnabledtrue হলে, ভ্যালু অটোমেটিক শেয়ার করা হয়। ভুল হলে, সেগুলি শেয়ার করা হয় না। (I9364d, b/461566955)- ট্র্যাকপ্যাড জেসচার ও ট্র্যাকপ্যাড ইনপুট ইভেন্ট থেকে মাউসে কনভার্সনের সুবিধা যোগ করে। এই পরিবর্তনের ফলে, ট্যাবলেট বা ল্যাপটপের মতো কার্সর কন্ট্রোল করা ট্র্যাকপ্যাড পয়েন্টার ইভেন্টকে সাধারণত মাউস পয়েন্টার হিসেবে রিপোর্ট করা হবে, যা পয়েন্টার স্লোপ, স্ক্রল করা ও হোভার করার ক্ষেত্রে আচরণ উন্নত করে। এছাড়াও, প্যান ও স্কেল জেস্চার সম্পর্কে অতিরিক্ত তথ্য সহ রিপোর্ট করা হবে যা পয়েন্টার ইভেন্ট পরিবর্তনগুলিতে উপলভ্য, এর সাথে একটি নতুন PointerEventType.Pan ও PointerEventType.Scale থাকবে যা ইঙ্গিত করে যে এই মানগুলি সেট করা হবে (Id071a, b/315527861, b/459831570)
সমস্যার সমাধান
- টগল করা যায় এমন প্রপার্টিতে পরিবর্তন করার জন্য
CONTENT_CHANGE_TYPE_CHECKEDপাঠান। (I6ac64, b/476894689, b/474538004, b/475754416)
এক্সটার্নাল কন্ট্রিবিউশন
androidx.compose.ui.graphics.NativePainttypealias-এর ব্যবহার বন্ধ করা হয়েছে, এর পরিবর্তে সরাসরিandroid.graphics.Paintব্যবহার করুন (I6303c, b/477394763)typealias-এর মাধ্যমেcommonMainসোর্সসেটে প্ল্যাটফর্মের ধরন প্রকাশ করা এড়াতেPaint.asFrameworkPaint()এক্সটেনশনের পরিবর্তেPaint.nativePaintএক্সটেনশন ব্যবহার করুন (I6303c, b/477394763)NumPadমুভমেন্ট কী (I1ff12)-এর জন্য সহায়তা যোগ করুন
ভার্সন 1.11.0-alpha04
২৮ জানুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.11.0-alpha04 রিলিজ করা হয়েছে। 1.11.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
runCurrent()ব্যবহার করা যায় তা নিশ্চিত করতে এবং শেয়ার করা শিডিউলার ইনস্ট্যান্স অ্যাক্সেস করা যায় তা নিশ্চিত করতেTestCoroutineSchedulerএক্সপোজ করা হয়েছে। (Iea662, b/254115946)- অ্যাক্সেসিবিলিটি থেকে পাওয়া
android.R.id.accessibilityActionShowOnScreen-এর উত্তরে নেস্টেড স্ক্রল করার জন্য ওয়াক-আপ সাপোর্ট যোগ করুন। (Ib2723, b/431148846)
সমস্যার সমাধান
- কাস্টম Android RGB কালার স্পেসের কনভার্সন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। কাস্টম কম্পোজ ও Android RGB কালার স্পেসের মধ্যে কাস্টম গ্রেস্কেল ট্রান্সফর্ম ভুলভাবে কনভার্ট করা হয়েছে।(ebd45,b/377021410)
ভার্সন 1.11.0-alpha03
১৪ জানুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.11.0-alpha03 রিলিজ করা হয়েছে। 1.11.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposeUiTestFlags.isStandardTestDispatcherSupportEnabledফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। v2run*ComposeUiTestএবংcreate*ComposeRuleAPI এখন ডিফল্ট হিসেবেStandardTestDispatcherব্যবহার করে।UnconfinedTestDispatcherব্যবহার চালিয়ে যেতে, আপনি অবলুপ্ত API ভেরিয়েন্ট ব্যবহার করতে পারেন; তবে, আমরা কোরাউটিন এক্সিকিউশনের উপর আরও ভাল কন্ট্রোল পেতে v2 API-তে মাইগ্রেট করার জন্য অত্যন্ত সাজেস্ট করি। (Iecc9c, b/455601592)androidx.compose.ui.test.junit4.v2.create*ComposeRuleAPI চালু করা হয়েছে। এইসব নতুন API ডিফল্ট হিসেবেStandardTestDispatcherব্যবহার করে যাতে প্রোডাকশন আচরণ আরও ভালভাবে সিমুলেট করা যায়। এর ফলে কোরাউটিনকে অবিলম্বে এক্সিকিউট না করে তা সারিতে রাখা হয়। আরও তথ্যের জন্য মাইগ্রেশন সংক্রান্ত নির্দেশিকা দেখুন। (I1870e, b/254115946)androidx.compose.ui.test.v2.run*ComposeUiTestAPI চালু করা হয়েছে। এইসব নতুন API ডিফল্ট হিসেবেStandardTestDispatcherব্যবহার করে যাতে প্রোডাকশন আচরণ আরও ভালভাবে সিমুলেট করা যায়। এর ফলে কোরাউটিনকে অবিলম্বে এক্সিকিউট না করে তা সারিতে রাখা হয়। আরও তথ্যের জন্য মাইগ্রেশন সংক্রান্ত নির্দেশিকা দেখুন। (I4f782, b/254115946)ComposeView-এর মধ্যে সাধারণ স্ট্রাকচার এখন শেয়ার করা যাবে।ComposeUiFlags.isSharedComposeViewContextEnabledtrue হলে, ভ্যালু অটোমেটিক শেয়ার করা হয়। ভুল হলে, সেগুলি শেয়ার করা হয় না। (I0d1b4, b/463540495, b/460468959, b/461503366, b/463641813)
সমস্যার সমাধান
ComposeViewথেকে সব কন্টেন্ট সরিয়ে দিলেও আঁকা কন্টেন্ট সরে যায় না, এই সমস্যার সমাধান করা হয়েছে। (I8b382, b/299503084)LookaheadScope-এর মাধ্যমে অ্যানিমেট করা হলে পজ করা যায় এমন কম্পোজিশন ক্র্যাশ হওয়ার সমস্যা সমাধান করা। (I7e649, b/469669851)- অটোফিল পরিষেবায় খুব বড় স্ট্রিং ট্রান্সমিট করলে ক্র্যাশ হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এটি আটকাতে, পাঠানোর আগে টেক্সট এখন অটোমেটিক কেটে বৈধ দৈর্ঘ্যে ছোট করে দেওয়া হয়।
- নির্দিষ্ট কিছু শর্তে হোভার থেকে বেরিয়ে আসার সময় ক্লিক হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে (a3d5a0f)
- পরীক্ষার জন্য স্টাইলাস হোভার ইভেন্ট ডিসপ্যাচ করা সংক্রান্ত সমস্যা সমাধান করে এবং নতুন স্টাইলাস পরীক্ষার জন্য মাউস পরীক্ষা প্রস্তুত করে। (9ca9bc9)
- পয়েন্টার ইনপুটের মাধ্যমে UI এলিমেন্ট সরিয়ে দেওয়া/যোগ করার সুবিধা যোগ করে। (d0742b0, b/BUD_ID)
- Jetpack Compose
Popup-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে অ্যাঙ্কর বাউন্ডের অ্যাবসলিউট কোঅর্ডিনেটPopupPositionProvider-এ পাস করা হচ্ছিল, এর ফলে পপ-আপ ভুল জায়গায় প্লেস করা হচ্ছিল। পপ-আপ পজিশনিংয়ের গণনায় এখন সঠিক রিলেটিভ কোঅর্ডিনেট ব্যবহার করা হয়।(1f7edf,b/469940907)
ভার্সন 1.11.0-alpha02
১৭ ডিসেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.11.0-alpha02 রিলিজ করা হয়েছে। 1.11.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
MultiModalInjectionScopeAPI এখন স্টেবল। এর মধ্যেperformKeyInputওperformRotaryScrollInputএবং তাদের অন্তর্নিহিত কী ও রোটারি API অন্তর্ভুক্ত। পরীক্ষামূলক অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। (Ie8bbc, b/261561237)- ট্র্যাকপ্যাড টেস্টিং API যোগ করে। এগুলি মাউস টেস্টিং API-এর মতো এবং ট্যাবলেট বা ল্যাপটপ ট্র্যাকপ্যাডের আচরণের মতো ইভেন্ট ইনজেক্ট করে। প্রাথমিক এন্ট্রি পয়েন্ট হল
SemanticsNodeInteraction.performTrackpadInputওMultiModalInjectionScope.trackpad(I2ce67), b/432326139.
সমস্যার সমাধান
- মাউস হুইল স্ক্রল ইনপুট ইন্টারঅপারেবিলিটি সংক্রান্ত সমস্যা সমাধান করে। এটি শুধুমাত্র Compose-এ ব্যবহার করা হলে তবেই ব্যবহার করা হয়, Compose-এ ডিসপ্যাচ করা হলে নয়। (I5e0c4),
ভার্সন 1.11.0-alpha01
৩ ডিসেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.11.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.11.0-alpha01-এ এইসব কমিট আছে।
API-তে পরিবর্তন
isSemanticAutofillEnabledUI ফ্ল্যাগ সরিয়ে দেয় কারণ ডিফল্ট হিসেবে সিমান্টিক অটোফিল চালু করা হয়েছে। (I849cf, b/455587954)- ট্রাভার্স করার উপযুক্ত পদ্ধতি কীভাবে প্রাসঙ্গিক নোড খুঁজে পায়
findNearestAncestorতা পরিবর্তন করা হয়েছে। এখন একই ধরনের (NodeKind) ডেলিগেট ট্রাভার্স করার সময় দেখা যাবে। এই পরিবর্তনটিisTraversableDelegatesFixEnabledফ্ল্যাগ দ্বারা সুরক্ষিত। (Ia3165, b/280804097) ANI#isTextEntryKey-এর জন্যTextEntryKeyম্যাপিং যোগ করুন (Ifde7b, b/399540654)Modifier.onFirstVisible()আর ব্যবহার করা হয় না কারণ এর আচরণ বিভ্রান্তিকর এবং নামের সাথে দাবি করা চুক্তি সবসময় মেনে চলে না। যেমন, এটিLazyColumnআইটেমে যোগ করা হলে, স্ক্রল করার পরে এই আইটেমটি যতবার দৃশ্যমান হবে ততবার এই কলব্যাক কল করা হবে। এই নামের মডিফায়ারের ব্যবহারকারীরা এটি আশা করেননি। এর পরিবর্তেModifier.onVisibilityChanged()ব্যবহার করার সাজেশন দেওয়া হয় এবং নির্দিষ্ট ব্যবহারের ক্ষেত্রে প্রয়োজনীয়তা অনুযায়ী লেআউট আগে থেকেই দেখা যাচ্ছিল কিনা তা ম্যানুয়ালি ট্র্যাক করুন। (Ia7095, b/447601783)MeasuredSizeAwareModifierNodeচালু করা হয়েছে, কলব্যাকonRemeasured()প্রয়োজন হলে এটি দরকার হয়। অন্য কলব্যাক প্রয়োজন না হলে, আরও সাধারণLayoutAwareModifierNodeব্যবহার না করে সরাসরি এই ইন্টারফেস ব্যবহার করুন। (If6fb0)
ভার্সন 1.10
ভার্সন 1.10.6
২৫ মার্চ, ২০২৬
androidx.compose.ui:ui-*:1.10.6 রিলিজ করা হয়েছে। 1.10.6 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.5
১১ মার্চ, ২০২৬
androidx.compose.ui:ui-*:1.10.5 রিলিজ করা হয়েছে। 1.10.5 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.4
২৫ ফেব্রুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.10.4 রিলিজ করা হয়েছে। ভার্সন 1.10.4-এ এইসব কমিট আছে।
ভার্সন 1.10.3
১১ ফেব্রুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.10.3 রিলিজ করা হয়েছে। 1.10.3 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.2
২৮ জানুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.10.2 রিলিজ করা হয়েছে। 1.10.2 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.1
১৪ জানুয়ারি, ২০২৬
androidx.compose.ui:ui-*:1.10.1 রিলিজ করা হয়েছে। ভার্সন 1.10.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
LookaheadScope(I7e649, b/469669851) দিয়ে অ্যানিমেট করা হলে পজ করা যায় এমন কম্পোজিশনের সাথে ক্র্যাশ সংক্রান্ত সমস্যার সমাধান করা- Jetpack Compose
Popup-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে অ্যাঙ্কর বাউন্ডের অ্যাবসলিউট কোঅর্ডিনেটPopupPositionProvider-এ পাস করা হচ্ছিল, এর ফলে পপ-আপ ভুল জায়গায় প্লেস করা হচ্ছিল। পপ-আপ পজিশনিংয়ের গণনায় এখন সঠিক রিলেটিভ কোঅর্ডিনেট ব্যবহার করা হয়।(1f7edf,b/469940907)
ভার্সন 1.10.0
৩ ডিসেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.10.0 রিলিজ করা হয়েছে। 1.10.0 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.0-rc01
১৯ নভেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-rc01 রিলিজ করা হয়েছে। 1.10.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
minDurationMsশূন্য না হলে,visibilityChangedকলব্যাককে ভুল মান সহ সঠিকভাবে পাঠান। (2ac08b8, b/456384555)- নোড প্রাথমিকভাবে দেখা না গেলে
onVisibilityChangedকলব্যাক কল করবেন না। (3969e8d, b/447364998)
ভার্সন 1.10.0-beta02
৫ নভেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-beta02 রিলিজ করা হয়েছে। 1.10.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.0-beta01
২২ অক্টোবর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-beta01 রিলিজ করা হয়েছে। 1.10.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ফোকাস পরিবর্তন ডিসপ্যাচ করার জন্য অপ্টিমাইজেশন যোগ করে।
isOptimizedFocusEventDispatchEnabled = false(I919fb, b/449228515) বিকল্পের সাহায্যে এটি বন্ধ করা যেতে পারে - পয়েন্টার ইনপুট API-এর সাথে ম্যাচ করার জন্য পরোক্ষ টাচ API-কে পরোক্ষ পয়েন্টার API নাম ব্যবহার করার জন্য আপডেট করে। (I238ce, b/451607214)
TextDirection,TextAlign,Hyphens,FontSynthesisvalueOfফাংশন এখন কোনও অজানা ভ্যালু পেলেIllegalArgumentExceptionদেখায়। (I07c67)- র্যাপার ফাংশনের পরিবর্তে ডিফল্ট ভ্যালু পাস করতে
CompositionDataTree.makeTreeআপডেট করুন। (Id64a6, b/445229688) createComposeRule,createAndroidComposeRuleওcreateEmptyComposeRuleটেস্ট রুল API যাeffectContextপ্যারামিটার গ্রহণ করে তা স্থিতিশীল এবং প্যারামিটার ডিফল্ট হিসেবেEmptyCoroutineContextসেট করা থাকে। (If400c, b/450540702)UnplacedStateAwareModifierNode-এর নাম পরিবর্তন করেUnplacedAwareModifierNodeরাখা হয়েছে (I6a551, b/449719932)- কন্টেন্ট ক্যাপচার অপ্টিমাইজেশন আগের অবস্থায় ফিরিয়ে আনা (Ic000b, b/442364065)
ComposeUiFlags.isRectManagerOffsetUsageFromLayoutCoordinatesEnabledফিচার ফ্ল্যাগ যোগ করা হয়েছে। এটি পারফর্ম্যান্স অপ্টিমাইজেশন চালু করেছে যেখানেLayoutCoordinates.positionInRoot()-এর মতো কোঅর্ডিনেট অনুরোধগুলিRectManager-এ আগে থেকেই থাকা ক্যাশে করা অফসেট ব্যবহার করছে, প্রতিটি কলের জন্য সম্পূর্ণ ট্রি ট্রাভার্স করার পরিবর্তে। (Ieaadc)
সমস্যার সমাধান
PlaceholderSpanএখন সাইজ করার জন্য সঠিকভাবে নন-লিনিয়ার ফন্ট স্কেলিং ব্যবহার করে (Id2ead, b/324462728)- প্ল্যাটফর্ম লেভেলে কাজ করে এমন হ্যাপ্টিক ফিডব্যাক কনস্ট্যান্ট পারফর্ম করতে
ViewCompatব্যবহার করুন, এটি নতুন কনস্ট্যান্টের জন্য ফলব্যাক সাপোর্টের উপর নির্ভর করে। (Ib5a00)
ভার্সন 1.10.0-alpha05
৮ অক্টোবর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.10.0-alpha05-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- নেস্টেড পপ-আপ স্ক্রিনের উপরে ভুলভাবে পজিশন করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে; সেগুলি এখন সঠিকভাবে তাদের মূল পপ-আপে অ্যাঙ্কর করা হয়েছে। (Id4603, b/191279752)
- হায়ারার্কিতে অন্যান্য ভিউয়ের সাথে ফোকাস র্যাপিং সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I95223, b/446028624)
- Kotlin 2.2.20 (I9855d, b/447110005) দ্বারা জেনারেট করা ল্যাম্বডায় ইনলাইন প্যারামিটার সহ ফিল্ডে ইনস্পেক্টর থেকে অনুপস্থিত সমস্যা সমাধান করে
- UI ও ফাউন্ডেশন মডিউলের মধ্যে অটোফিল রিসোর্সের নাম শ্যাডো করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে (I5da5a)
এক্সটার্নাল কন্ট্রিবিউশন
UiModesঅবজেক্টের নাম পরিবর্তন করে AndroidUiModes করা হয়েছে যাতে বোঝা যায় যে এর কনস্ট্যান্ট Android API থেকে নেওয়া হয়েছে। (Ia0a77)
ভার্সন 1.10.0-alpha04
২৪ সেপ্টেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-alpha04 রিলিজ করা হয়েছে। 1.10.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
CoroutineContextপ্যারামিটার গ্রহণ করে এমন কম্পোজ টেস্টের নিয়ম সংক্রান্ত ভেরিয়েন্টকে স্টেবল ভার্সনে প্রোমোট করা হয়েছে। পরীক্ষামূলক অ্যানোটেশন সরিয়ে দেওয়া হয়েছে এবং এই API ব্যবহার করার জন্য ডেভেলপারদের আর অপ্ট-ইন করতে হবে না। (I74e6e)ComposeUiFlags.isRectTrackingEnabledসরানো হয়েছে। এই লজিক সবসময় চালু থাকে না। (Id78df)Updater#set-এর ইনলাইন ওভারলোড বাতিল করা হয়েছে কারণ এটি প্রদত্ত ভ্যালুকে অনেকবার বক্সিং করছিল (Id679e)onAutofillTextসিম্যান্টিক প্রপার্টিকে বন্ধ করা হয়েছে হিসেবে চিহ্নিত করুন। (I6f81c)UnplacedStateAwareModifierNodeচালু করা হয়েছে। আগে প্লেস করা লেআউট আর প্লেস করা না হলে এটি একটি কলব্যাক প্রদান করে। (I8fdd8, b/309776096)RetainObserver.onRetained-এর ডকুমেন্টেশন সংশোধন করা হয়েছে এবংRetainObserver.onUnusedযোগ করা হয়েছে, যাRememberObserver.onAbandoned-এর মতো। (Ia6fc5)onVisibilityChangedNode()যোগ করা হয়েছে, যাModifier.Nodeতৈরি করছে, যাModifier.onVisibilityChanged()-এর মাধ্যমে ডেলিগেশন ব্যবহার করে, যা আপনার কাস্টমModifier.Node-এ এই ফাংশনালিটি আরও উন্নত করতে দেয়। (I70d84, b/443001320)
সমস্যার সমাধান
- একাধিক লাইন বিশিষ্ট এলিপসাইজ করা টেক্সটের শেষ লাইনে প্লেসহোল্ডার এলিপসাইজ করা অঞ্চলের আগে থাকা সত্ত্বেও ইনলাইন কন্টেন্ট রেন্ডার না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I76aaf, b/441829208)
ভার্সন 1.10.0-alpha03
১০ সেপ্টেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.10.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.10.0-alpha03-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DelegatableNode.invalidateLayoutForSubtree-এর নাম পরিবর্তন করেDelegatableNode.invalidateMeasurementForSubtreeকরা হয়েছে। (I94257, b/430106107)- অপ্রয়োজনীয়
isInHiddenAccessibilitySubtreeম্যাচ করার সুবিধা সরিয়ে দেয়। (I4476c, b/443792965) - গ্রুপ কী ভিত্তিক কম্পোজ স্ট্যাক ট্রেস চালু করে যা সব মিনিফাই করা অ্যাপের জন্য ডিফল্ট হিসেবে চালু থাকে। এইসব ট্রেসের জন্য প্রোগার্ড ম্যাপিং, Kotlin 2.3.0 থেকে শুরু করে Compose compiler Gradle প্লাগ-ইন দ্বারা তৈরি করা হবে। (Ifbcb5)
Modifier.skipToLookaheadSizeএখন ডিফল্ট হিসেবে চালু থাকা ল্যাম্বডা ব্যবহার করে যা শুধুমাত্র শেয়ার করা ট্রানজিশন অ্যাক্টিভ থাকলেই সাইজ স্কিপ করার সুবিধা চালু করে, এটিModifier.skipToLookaheadPosition-এর মতোই কাজ করে। (Ibe0f5, b/432485585)ComposeUiFlags.isOutOfFrameDeactivationEnabledসরিয়ে দেওয়া হয়েছে এবং এই কার্যকারিতা এখন সবসময় চালু থাকে। (I421ed)FillableDataইনস্ট্যান্স তৈরি করার জন্য ফ্যাক্টরি ফাংশন কম্প্যানিয়ন অবজেক্টে সরান।FillableData(value)-এর পরিবর্তে, নতুন ফ্যাক্টরি পদ্ধতি ব্যবহার করুন:FillableData.createFrom(value)। (I2e200, b/441719650)- ফোকাস সার্চের জন্য বাউন্ড লেআউটের বাইরে পারফর্ম করতে
BeyondBoundsLayoutModifierNodeএকটি নতুন মডিফায়ার নোড যোগ করা হয়েছে। (I39be1, b/416133658) FocusTargetModifierNode.requestFocus()নিজে ফোকাস করার উপযুক্ত না হলে, সেটির কোনও একটি চাইল্ডে ফোকাস পাঠায়। এটি এখনFocusRequester.requestFocus()এবংFocusRequesterModifierNode.requestFocus()-এর সাথে সামঞ্জস্যপূর্ণ। এই আচরণ আপনার প্রয়োজন না হলে, আপনার অ্যাপেComposeUiFlags.isRequestFocusOnNonFocusableFocusTargetEnabledফ্ল্যাগকে false হিসেবে সেট করুন। (Icca5c, b/436863604)WindowInfo-এ DP-ভিত্তিক উইন্ডো সাইজ প্রদান করুন (I9322b, b/424442112)- ফ্ল্যাগ সরানো হয়েছে
isNestedScrollDispatcherNodeFixEnabled। (If451a) FillableDataAPI-তে অটোফিলে তারিখের ভ্যালু যোগ করার সুবিধা।val dateMillisValue: Longযোগ করা হয়েছে যাতে তারিখ সংক্রান্ত তথ্য পাওয়া যায় এবং তারিখ-ভিত্তিকFillableDataইনস্ট্যান্স তৈরি করার জন্য সংশ্লিষ্টFillableData(dateMillisValue: Long)কনস্ট্রাক্টর যোগ করা হয়েছে। (Id072a)
এক্সটার্নাল কন্ট্রিবিউশন
UiModesঅবজেক্টটি এমন কনস্ট্যান্ট ঘোষণা করার জন্য চালু করা হয়েছে যাUiModeঅ্যানোটেশনের (I03cb8) জন্য ব্যবহার করা হয়
ভার্সন 1.10.0-alpha02
২৭ আগস্ট, ২০২৫
androidx.compose.ui:ui-*:1.10.0-alpha02 রিলিজ করা হয়েছে। 1.10.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
FillableData-কে আপডেট করে টগল ও তালিকার মতো টেক্সট নয় এমন কম্পোনেন্টকে কাজ করার উপযোগী করে তুলুন। এর মধ্যেFillableData-এর মধ্যে থাকা বুলিয়ান ও পূর্ণসংখ্যা এবংFillableData-এর বুলিয়ান ও তালিকার ইনস্ট্যান্স তৈরি করার জন্য ফ্যাক্টরি কনস্ট্রাক্টর অন্তর্ভুক্ত। এগুলি প্ল্যাটফর্মেরAutofillValue-এ ট্রান্সলেট করা হয়। এছাড়াও, প্রাসঙ্গিক সিম্যান্টিক প্রপার্টি ও অ্যাকশন যোগ করা হয়। (Ia8105, Icc5cf)- টাচ মোড ছাড়া অন্য মোডে, ভিউ সিস্টেম স্ক্রিনে থাকা ফোকাস করা যায় এমন আইটেমগুলির মধ্যে কোনও একটিতে প্রাথমিক/ডিফল্ট ফোকাস অ্যাসাইন করে। এই ফিচারটি 'কম্পোজ' উইন্ডোতে যোগ করা হয়েছে এবং
ComposeUiFlags.isInitialFocusOnFocusableAvailableচালু করে এটি চালু করা যাবে। (Ib9178) - ফ্ল্যাগ সরানো হয়েছে
isPointerInteropFilterDispatchingFixEnabled। (Iaa589) - ফ্ল্যাগ সরানো হয়েছে
isNestedScrollInteropPostFlingFixEnabled। (I2a756) isHiddenFromAccessibility()ওisInHiddenAccessibilitySubtree()সিম্যান্টিক ম্যাচিং যোগ করুন। (I9f5a1)- আন্ডারলায়িং শিডিউলারের মাধ্যমে বাকি থাকা সব টাস্ক চালানোর জন্য
runCurrent()থেকেMainTestClockপর্যন্ত যোগ করা হয়েছে। এটিStandardTestDispatcher-এ পরীক্ষা চালানোর জন্য, যেখানে টাস্কগুলি শিডিউলারের সাথে যোগ করা হয়, তবে সেগুলি অবিলম্বে এক্সিকিউট করা হয় না, কারণ সেগুলিতে ০ms বিলম্ব থাকে।StandardTestDispatcherব্যবহার করার জন্য একটি টেস্ট সেট-আপ করা যেতে পারে, এর জন্যComposeTestRuleতৈরি করে সেটিতেStandardTestDispatcherপাস করতে হবে। সাধারণত,UnconfinedTestDispatcher-এ টেস্ট চালানো হয়, সেক্ষেত্রেrunCurrent()-কে কখনও কল করতে হয় না। StandardTestDispatcher-এ টেস্ট চালানোর জন্য সহায়তা যোগ করা হয়েছে। ঐতিহাসিকভাবে, টেস্ট ফ্রেমওয়ার্কUnconfinedTestDispatcherব্যবহার করে সেট-আপ করা হয়েছে (এবং এখনও হচ্ছে), যা প্রোডাকশন এনভায়র্নমেন্টের থেকে সামান্য আলাদা। আপনি এখন নিজেরStandardTestDispatcherতৈরি করে এবংComposeTestRuleতৈরি করার সময় (অথবা runComposeUiTest কল করার সময়)effectContext-এ যোগ করে এই সেট-আপ পরিবর্তন করতে পারবেন। (I334d0, b/254115946)SlotTreeথেকে নোডের ট্রি তৈরি করার জন্য কোড আপডেট করুন। (I997d3)
সমস্যার সমাধান
- Compose UI এখন Android-এ লাইফসাইকেল-অ্যাওয়ার
RetainScopesইনস্টল করে। কনফিগারেশনে পরিবর্তন করা হলেও ডিফল্ট বিহেভিয়ার এখনretain-এর ভ্যালু বজায় রাখবে। (Id4a09, b/177562901)
এক্সটার্নাল কন্ট্রিবিউশন
VelocityTracker-এর জন্য প্ল্যাটফর্ম-নির্দিষ্ট আচরণ ব্যবহার করে ট্র্যাক করা পয়েন্টার ইভেন্টের উপর ভিত্তি করে পয়েন্টারের ভেলোসিটি গণনা করার ক্ষমতা যোগ করে। (I621e8)
ভার্সন 1.10.0-alpha01
১৩ আগস্ট, ২০২৫
androidx.compose.ui:ui-*:1.10.0-alpha01 রিলিজ করা হয়েছে। 1.10.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposeView-এ মাউস বা টাচপ্যাড দিয়ে পয়েন্টার ডাউন করলে, ফোকাস করা নোডের সীমানার মধ্যে পয়েন্টার ডাউন না হলে, এখন অটোমেটিক ফোকাস সরে যাবে। এর ফলে "ফোকাস সরাতে ট্যাপ করুন" UX পাওয়া যায় যা পয়েন্টার ইনপুট ডিভাইস ব্যবহার করার সময় বর্তমান আচরণের থেকে বেশি প্রত্যাশিত। নতুনAbstractComposeView.isClearFocusOnPointerDownEnabledAPI-এর মাধ্যমে এই আচরণ থেকে বেরিয়ে আসা যাবে। (I6322b, b/282963174)- টেক্সট ছাড়াও বিভিন্ন ধরনের অটোফিল কম্পোনেন্টকে সাপোর্ট করার জন্য
FillableDataইন্টারফেস চালু করা হয়েছে। (If9bd2) - শেয়ার করা এলিমেন্ট ডাইনামিকালি চালু ও বন্ধ করার অনুমতি দিতে নতুন API, যা আগে থেকেই কোনও শেয়ার করা এলিমেন্ট ট্রানজিশন চলছে কিনা তা বিবেচনা করার অনুমতিও দেয়। ট্রানজিশনের সময় টার্গেট শেয়ার করা এলিমেন্ট ডিসপোজ করা হলে, বিকল্প টার্গেট বাউন্ড সেট-আপ করার জন্য নতুন API।
LookaheadScope-এরLayoutCoordinatesপাওয়ার জন্য নতুন API. (I18dd4, b/409819304, b/395670637) - নেস্টেড স্ক্রল ইন্টারওপে সঠিক পূর্ণসংখ্যা ডিসপ্যাচ করার এক্সপেরিমেন্ট কন্ট্রোল করতে flag
isNestedScrollInteropIntegerPropagationEnabledযোগ করুন। (If8316) - প্রদত্ত rect-এর সাথে ওভারল্যাপ করা চাইল্ডে ফোকাস সরাতে
requestFocusForChildInRootBounds()থেকেDelegatableNodeযোগ করা হয়েছে। (I001ef) - সরানো ফ্ল্যাগ
isOnScrollChangedCallbackEnabled,isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled,isFlingContinuationAtBoundsEnabled,isAutomaticNestedPrefetchEnabled,DragGesturePickUpEnabled,isPointerInteropFilterDispatchingFixEnabled,isNestedScrollInteropPostFlingFixEnabled,isNestedScrollDispatcherNodeFixEnabled(I36c18) - ফেরানো ভ্যালু ব্যবহার করা নিশ্চিত করতে
SemanticsNodeফাইন্ডার ও সিলেক্টর ফাংশনে@CheckResultঅ্যানোটেশন যোগ করা হয়েছে। (I6f86e, b/201652748) - কন্টেন্ট ক্যাপচার প্রসেসের পারফর্ম্যান্স উন্নত করা (I3c7c0)
CompositionLocalচালু করা হয়েছে যা অটোফিলের সফলভাবে পূরণ করা হাইলাইটের ব্রাশ পরিবর্তন করতে ব্যবহার করা যেতে পারে। (I52329)- নতুন ইন্টারপোলেটেবল ইন্টারফেস চালু করা হয়েছে যা বিভিন্ন ধরনের ডেটার মধ্যে অটোমেটিক ইন্টারপোলেশন করতে দেয়। এটি ধরে নেয় যে এক ধরনের ডেটা অন্য ধরনের ডেটায় কীভাবে কনভার্ট করতে হয় তা জানে। এই ইন্টারফেসটি ব্রাশ ও শেপের মতো বিভিন্ন কম্পোজ ধরনের ক্ষেত্রে ব্যবহার করা হয়, তবে এটি এক্সটার্নালিও ব্যবহার করা যেতে পারে। (I58eab)
- এখন স্ক্রল করার উপযুক্ত আইটেম ২ ডাইমেনশনাল মাউস হুইল স্ক্রল ইভেন্ট আরও ভালোভাবে সাপোর্ট করে।
MouseInjectionScope-এ ব্যবহারের ক্ষেত্রে পরীক্ষা করতে সাহায্য করার জন্য একটি নতুন টেস্ট API এসেছে। এছাড়াও, আমরাMouseInjectionScope-এ স্ক্রল পদ্ধতির জন্য একটি নতুন ওভারলোড এবংisMouseWheel1DAxisLockingEnabled(I136df) নামের নতুন আচরণ নিয়ন্ত্রণ করার জন্য একটি ফ্ল্যাগ চালু করেছি - কীবোর্ডের ধরন ও অবস্থা, নেভিগেশনের ধরন ও অবস্থা, টাচস্ক্রিনের অবস্থা এবং UI মোডের ধরন (I282f0) সম্পর্কে তথ্য যোগ করুন
DeviceConfigurationOverrides Tightনামের নতুনLineHeightStyle.Modeযোগ করা হয়েছে। এই মোডটি ছোট লাইন হাইট প্রয়োগ করতে সাহায্য করে, এমনকি যখন এটি সম্ভবত বড় গ্লিফ কেটে দিতে পারে। (Id3849)BaselineShift-এর এখন একটি অনির্দিষ্ট ভ্যালু আছে যা বক্সিং প্রতিরোধ করে।BaselineShift,Hyphens,LineBreak,TextAlignওTextDirection-এর এখনisSpecifiedহেল্পার ফাংশন আছে।Hyphens,TextAlign,TextDecorationওTextDirection-এর এখনvalueOf()ও ভ্যালু মেথড আছে যা কার্যকরভাবে সিরিয়ালাইজেশন/ডিসিয়ারিয়ালাইজেশন চালু করে। (I8d44c)- প্রিভিউ প্যারামিটার ইনস্ট্যান্সের জন্য কাস্টম ডিসপ্লে নাম যোগ করার অনুমতি দিতে একটি নতুন
getDisplayNameমেথড ইন্টারফেস যোগ করা হয়েছে। (I19bdf, b/241699422) - Dp ভ্যালুকে যখন কম-বেশি চিহ্ন ব্যবহার করে অনির্দিষ্ট ভ্যালুর সাথে তুলনা করা হয়, তখন এটি সবসময় false রিটার্ন করে।
Dp.compareTo(Unspecified)ব্যবহার করলে সবসময় ০ রিটার্ন করে।ComposeUiUnitFlags.isDpCompareToChangedফ্ল্যাগটি false হিসেবে সেট করলে,Dp.compareTo()আগের আচরণে ফিরে যাবে, যেখানে Unspecified-এর সাথে less-than ও greater-than তুলনা করলে সবসময় false রিটার্ন করে না এবংcompareTo()-এর সাথে Unspecified-এর আচরণFloat.compareTo()-এর সাথে ম্যাচ করে। (Ifa88b, b/429221319)
সমস্যার সমাধান
- ডিফল্ট minSdk API 21 থেকে API 23-এ সরানো হচ্ছে (Ibdfca, b/380448311, b/435705964, b/435705223)
- ট্রানজিশন চলাকালীন নতুন
AndroidComposeViewsতৈরি করতে না পারা সংক্রান্ত সমস্যার সমাধান করে। (I2e23e, b/340894487, b/287484338) - একটি রঙের ভেক্টর ড্রয়েবল ব্যবহার করার সময় রঙের বাগ সমাধান করে এবং
fillColorসম্পূর্ণ অস্বচ্ছ বা সম্পূর্ণ স্বচ্ছ হয় না। (I3b041, b/328677973) - থিম-নির্দিষ্ট রঙ সহ
painterResource-এর মাধ্যমে লোড করা আইকন থিম পরিবর্তন করার পরে আপডেট না হওয়ার সমস্যা সমাধান করে। (I85ea0, b/424416571) onFillDataওfillableDataসেম্যান্টিক্স (I45d9e) যোগ করাStateRestorationTester-এ প্ল্যাটফর্ম-নির্দিষ্ট স্টেট এনকোডিং এখন সবসময় চালু থাকে। এটি টেস্টের আচরণকে আসল অ্যাপ্লিকেশন স্টেট রিস্টোরেশনের সাথে অ্যালাইন করে, যেমন Android-এ পার্সেলাইজেশন। (I38211, b/408154192, b/382294247)- ফোকাসের অনুরোধ করার সময় মাঝে মাঝে ক্র্যাশ হওয়ার সমস্যা সমাধান করে। (57b31a11, b/431111149)
ভার্সন 1.9
ভার্সন ১.৯.৫
১৯ নভেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.9.5 রিলিজ করা হয়েছে। ভার্সন 1.9.5-এ এইসব কমিট রয়েছে।
ভার্সন 1.9.4
২২ অক্টোবর, ২০২৫
androidx.compose.ui:ui-*:1.9.4 রিলিজ করা হয়েছে। ভার্সন 1.9.4-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- একাধিক লাইন বিশিষ্ট এলিপ্সাইজ করা টেক্সটের শেষ লাইনে ইনলাইন টেক্সট কন্টেন্ট থাকলে, সেটি এলিপ্সাইজ করা অংশে না থাকা সত্ত্বেও অদৃশ্য হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I76aaf, b/441829208)
debounceMillisশূন্য না হলেonLayoutRectChangedমডিফায়ার কলব্যাক সবসময় কল না করার সমস্যা সমাধান করা হয়েছে। (72aba47, b/445324854)
ভার্সন 1.9.3
৮ অক্টোবর, ২০২৫
androidx.compose.ui:ui-*:1.9.3 রিলিজ করা হয়েছে। 1.9.3 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- যেসব লেআউট সরানো হচ্ছে সেগুলিতে ১৭০টির বেশি ডিসেন্ডেন্ট থাকলে,
onVisibilityChanged/onFirstVisible/onLayoutRectChangedমডিফায়ার কলব্যাক পায় না, এই সমস্যার সমাধান করা হয়েছে। (4f2fdd, b/445356774)
ভার্সন 1.9.2
২৪ সেপ্টেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.9.2 রিলিজ করা হয়েছে। ভার্সন 1.9.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
Modifier.onVisibilityChanged()এখন কোনও নোড আলাদা করা বা আবার ব্যবহার করা হলে সঠিকভাবে ফায়ার করে। (Ic5ce20)Modifier.onVisibilityChanged()এবংonLayoutRectChanged()এখন বাচ্চাদের প্লেস করার জন্যplaceWithLayer()ব্যবহার করে প্যারেন্ট লেআউট সঠিকভাবে ম্যানেজ করে। (Ia05ac9)Modifier.onVisibilityChanged()ওonLayoutRectChanged()-এর জন্য, লেয়ার/লেয়ার মডিফায়ার সরানো বা লেয়ার প্রপার্টি আপডেট করার মতো কর্নার কেসে যথাযথভাবে বিজ্ঞপ্তি পাঠাও। (Ia05ac)
ভার্সন 1.9.1
১০ সেপ্টেম্বর, ২০২৫
androidx.compose.ui:ui-*:1.9.1 রিলিজ করা হয়েছে। ভার্সন 1.9.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- একটি রঙের ভেক্টর ড্রয়েবল ব্যবহার করার সময় রঙের বাগ সমাধান করে এবং
fillColorসম্পূর্ণ অস্বচ্ছ বা সম্পূর্ণ স্বচ্ছ হয় না। (I3b041, b/328677973)
ভার্সন 1.9.0
১৩ আগস্ট, ২০২৫
androidx.compose.ui:ui-*:1.9.0 রিলিজ করা হয়েছে। 1.9.0 ভার্সনে এইসব কমিট আছে।
1.8.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- 1.9.0 ভার্সনে হওয়া গুরুত্বপূর্ণ পরিবর্তন এই ব্লগপোস্টে উল্লেখ করা আছে
- Compose-এর সাথে শিপ করা লিন্ট চেকের জন্য এখন ন্যূনতম AGP ভার্সন 8.8.2 প্রয়োজন। আপনি AGP আপগ্রেড করতে না পারলে, তার পরিবর্তে আপনার
gradle.properties-এandroid.experimental.lint.version=8.8.2(বা এর পরের যেকোনও ভার্সন) ব্যবহার করে Lint-কে আলাদাভাবে আপগ্রেড করতে পারবেন। IDE-এর মধ্যে Compose লিন্ট চেক রান করাতে, Android Studio Ladybug বা এর পরের যেকোনও ভার্সন প্রয়োজন। - ব্রেকিং পরিবর্তন:
graphicsLayerমডিফায়ার নোড এখনSemanticsModifierNodeপ্রয়োগ করে। এর ফলে সিম্যান্টিক ট্রি-তে নতুনSemanticsNodesযোগ হতে পারে এবং এর ফলে সিম্যান্টিক ট্রি স্ট্রাকচার সম্পর্কে অনুমান করা টেস্টে টেস্ট ব্যর্থ হতে পারে। যেমন,onChild,onParent,onSiblingও অন্যান্য একই ধরনের পদ্ধতি ব্যবহার করে অ্যাসারশন তৈরি করা টেস্ট, বর্তমান ও টার্গেট নোডের মধ্যে নতুন নোড যোগ করা হলে, ব্যর্থ হতে পারে। এইসব ব্যর্থতা সমাধানের সবচেয়ে ভাল উপায় হল,testTagসরাসরি টার্গেট নোডে যোগ করা। আরেকটি উপায় হল,onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))-এর মতো আরও বেশি ম্যাচ করা যায় এমন ম্যাচিং ব্যবহার করা। (I638b5)
ভার্সন 1.9.0-rc01
৩০ জুলাই, ২০২৫
androidx.compose.ui:ui-*:1.9.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.9.0-rc01-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
painterResource-এর মাধ্যমে লোড করা আইকন, থিম-নির্দিষ্ট রঙের সাথে সিস্টেম থিমের পরিবর্তন অনুযায়ী আপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করে। (I85ea0, b/424416571)- অপ্টিমাইজ করার সময় গুরুত্বপূর্ণ গ্রাফিক পদ্ধতির নাম পরিবর্তন করা হলে API 21(Lollipop) ও 28(Pie)-তে হওয়া সমস্যা সমাধান করে। (Iebf99, b/425120571, b/420462749)
- নতুন যোগ করা
onLayoutRectChangedমডিফায়ার যাতে প্রথমে কল ব্যাক করা হয় তা নিশ্চিত করুন। (l9aa91), (lb348a) - ভুলভাবে বাতিল করা অফসেট ক্যাশের জন্য সমাধান, যার ফলে ভুল কোঅর্ডিনেট (ibd4cd), (lddc57) সহ
onLayoutRectChangedমডিফায়ার কল করা হয় onLayoutRectChangedমডিফায়ার (lddc57, b/426750475) দ্বারা ভুল কোঅর্ডিনেট পাওয়া রোটেট/স্কিউড লেআউটের জন্য সমাধান
এক্সটার্নাল কন্ট্রিবিউশন
- স্ক্রল করলে
LazyList-এর মধ্যে থাকাdragAndDropSourceআইটেম অদৃশ্য হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। ধন্যবাদ ভিক্টর রেন্ডিনা! (dc3bcd3, b/425894792)
ভার্সন 1.9.0-beta03
১৬ জুলাই, ২০২৫
androidx.compose.ui:ui-*:1.9.0-beta03 রিলিজ করা হয়েছে। 1.9.0-beta03 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
- অফসেটের সাথে ইউনিফর্মভাবে অস্পষ্ট করা ভিতরের শেডোর সঠিকভাবে না নড়াচড়া করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ভার্সন 1.9.0-beta02
২ জুলাই, ২০২৫
androidx.compose.ui:ui-*:1.9.0-beta02 রিলিজ করা হয়েছে। 1.9.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- ক্লাসের সাথে ম্যাচ করাতে কম্প্যানিয়ন অবজেক্টকে পরীক্ষামূলক হিসেবে পরিবর্তন করে। (I8452a)
isTrackFocusEnabledপরীক্ষামূলক ফ্ল্যাগ (I003fd) সরানো হয়েছে
সমস্যার সমাধান
WindowInsetsComposeView-এর কন্টেন্টকে লঙ্ঘন না করলে,WindowInsetsRulersভ্যালু প্রদান করা হয় না। (I71221)
ভার্সন 1.9.0-beta01
১৮ জুন, ২০২৫
androidx.compose.ui:ui-*:1.9.0-beta01 রিলিজ করা হয়েছে। 1.9.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
ব্রেকিং পরিবর্তন
graphicsLayerমডিফায়ার নোড এখনSemanticsModifierNodeপ্রয়োগ করে। এর ফলে, সিম্যান্টিক ট্রি-তে নতুনSemanticsNodesযোগ হতে পারে এবং তাই, সিম্যান্টিক ট্রি স্ট্রাকচার সম্পর্কে অনুমান করা টেস্টে, টেস্ট ফেল হতে পারে। যেমন,onChild,onParent,onSiblingও অন্যান্য একই ধরনের পদ্ধতি ব্যবহার করে অ্যাসারশন তৈরি করা টেস্ট, বর্তমান ও টার্গেট নোডের মধ্যে নতুন নোড যোগ করা হলে, ব্যর্থ হতে পারে। এইসব ব্যর্থতা সমাধানের সবচেয়ে ভাল উপায় হল,testTagসরাসরি টার্গেট নোডে যোগ করা। আরেকটি উপায় হল,onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))-এর মতো আরও বেশি ম্যাচ করা যায় এমন ম্যাচিং ব্যবহার করা। (I638b5)
API-তে পরিবর্তন
ShadowContextপরিবর্তন করে একটি সিল করা ইন্টারফেস (I3ce40) করা হয়েছে- ইনডাইরেক্ট টাচ ইভেন্ট (পরীক্ষার জন্য) তৈরি করার জন্য ক্রস মডিউল পদ্ধতি যোগ করে (I22e4c)
IndirectTouchEvent.nativeEventপরীক্ষামূলক করে তোলে। (I6fda5)- API কাউন্সিলের মতামতের ভিত্তিতে API সারফেস সংশোধন করে। (Ibf378)
FrameRateCategory.NoPreferenceধ্রুবক সরান।Modifier.requestedFrameRate-এর নাম পরিবর্তন করেModifier.preferredFrameRateকরুন। (I2f976)WindowInsetsRulers:rulersIgnoringVisibility-এর মান পরিবর্তন করে সর্বাধিক করা হয়েছে।getDisplayCutoutBounds()-কেPlacementScope-এর এক্সটেনশন ফাংশন হিসেবে পরিবর্তন করা হয়েছে।WindowInsetsAnimationPropertiesপরিবর্তন করেWindowInsetsAnimationকরা হয়েছে এবংgetAnimationProperties()পরিবর্তন করেgetAnimation()করা হয়েছে। (I3816f)- ক্লাস
ShadowParamsথেকেShadow-এ পরিবর্তন করা হয়েছে (I11cca) - ফ্রেম রেট API-এর প্যাকেজ
androidx.compose.ui.uiথেকেandroidx.compose.ui-এ পরিবর্তন করুন (I8994e) InsetsRulersপরিবর্তন করেWindowInsetsRulersনামের সাধারণ কোডে রাখা হয়েছে। API-কে আরও সহজ করা হয়েছে যাতে সব ইনসেটWindowInsetsRulersহয়।AnimationPropertiesক্লাসে নন-রুলার অ্যানিমেশন প্রপার্টি এক্সট্র্যাক্ট করা হয়েছে। একাধিকWindowInsetsRulersমার্জ করতেWindowInsetsRulers.innermostOf()ব্যবহার করা যেতে পারে। (I2f0c6, b/415012444)- Compose কম্পাইলারের যোগ করা সোর্স সংক্রান্ত তথ্য পার্স করার জন্য টুলিং API যোগ করা হয়েছে। (Iceaf9, b/408492167)
সমস্যার সমাধান
- ফিচারটি সম্পূর্ণ যাচাই করা হয়ে যাওয়ার পরে
isGetFocusedRectReturnEmptyEnabled-এর জন্য ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। (Ife722) performScrollToNode-এ একটি সমস্যার সমাধান করা হয়েছে, যা কিছু ক্ষেত্রে টার্গেট নোডে পৌঁছাচ্ছিল না। এই সমাধান প্রয়োগ করার পরে, এইসব ক্ষেত্রে এটি সবসময় টার্গেট নোডে পৌঁছাবে। এই পরিবর্তনের একটি পার্শ্বপ্রতিক্রিয়া হল যে অ্যাকশনের শেষে স্ক্রল পজিশন এখন আলাদা হতে পারে, যা স্ক্রিনশট পরীক্ষা এবং সেইসব পরীক্ষাগুলিকে প্রভাবিত করে যেগুলি স্ক্রল পজিশন সম্পর্কে অনুমান করে। (I2c8a1)
ভার্সন 1.9.0-alpha04
৪ জুন, ২০২৫
androidx.compose.ui:ui-*:1.9.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- কাস্টমাইজ করা যায় এমন শেডোর জন্য মডিফায়ার API যোগ করা হয়েছে। (I2058d, b/160665122)
SemanticsModifierNode.isImportantForBoundsপ্রপার্টি যোগ করুন যা নির্ধারণ করে যে বাউন্ড গণনা করার সময় নোডটি বিবেচনা করা উচিত কিনা। প্রপার্টিটি ডিফল্ট হিসেবে 'ট্রু' থাকে এবং বাউন্ডের জন্য নোড বিবেচনা করা উচিত নয় তা বোঝাতে 'ফলস' হিসেবে সেট করা যেতে পারে। (I7ebec)SemanticsPropertyKeyAndroid-নির্দিষ্ট সিম্যান্টিক প্রপার্টি ঘোষণা করার জন্য একটি ফ্যাক্টরি ফাংশন যোগ করুন যাAccessibilityNodeInfo.getExtras-এর মাধ্যমে অ্যাক্সেসিবিলিটি এক্সট্রা হিসেবে উপলভ্য করা হয়। (I2ed51)ComposeUiFlags.isRemoveFocusedViewFixEnabled-এর ব্যবহার সরিয়ে দেওয়া হয়েছে এবং ফ্ল্যাগটি বন্ধ করে দেওয়া হয়েছে। (I50328)- কাস্টমাইজ করা যায় এমন নতুন শ্যাডো ফ্রেমওয়ার্ক চালু করা। এর মধ্যে
DropShadowPainterওInnerShadowPainterএবংDropShadow/InnerShadowনির্ভরতা অন্তর্ভুক্ত। শেয়ার করা শ্যাডো ইনফ্রাস্ট্রাকচার এমনভাবে শেয়ার করা হয় যাতে একই জেনারেট করা শ্যাডো একাধিক কলসাইটে শেয়ার করা যায় এবং শ্যাডোকে n-বার আবার জেনারেট করতে না হয়। (I24f7a, b/160665122) CompositeShaderওCompositeShaderBrushযোগ করা হয়েছে যা দুটি শেডারের মধ্যে কম্পোজিট ফলাফল তৈরি করে। এছাড়াও, শেডারের জন্য ট্রান্সফর্মেশন ম্যাট্রিক্স সেট করতেShaderBrush#transformযোগ করুন। (I2621a, b/160665122)
সমস্যার সমাধান
NestedScrollInteropConnection-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে ভিউয়ের সাপেক্ষে ফ্লিং পদ্ধতি ভুল ক্রমে দেখানো হচ্ছিল। (I56ad4)- আগে, যেসব ডায়ালগ ফুল স্ক্রিন ড্র করত, সেগুলি ডিসপ্লে কাট-আউট অঞ্চলের মধ্যে ড্র করত না। এই সমস্যার সমাধান করা হয়েছে যাতে
decorFitsSystemWindows = falseওusePlatformDefaultWidth = falseসহ ডায়ালগ ডিসপ্লে কাট-আউট অঞ্চল নিতে পারে। (I9e975) - Compose অ্যাপ ব্যাকগ্রাউন্ডে থাকাকালীন চালু করার পরে
TalkBack-এর সবুজ ফোকাস ইন্ডিকেটর ড্র না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ifd12a)
ভার্সন 1.9.0-alpha03
২০ মে, ২০২৫
androidx.compose.ui:ui-*:1.9.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha03-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledফ্ল্যাগটি এমনভাবে কাজ করে যেComposeView-এ ফোকাস করার মতো কিছু না থাকলে, এটি rect-কে Empty ভ্যালু হিসেবে সেট করে। এটি ফোকাস সার্চকে ফোকাস করার জন্য ভিউ বেছে নিতে বাধা দেয়। এটি বিশেষত সেইসব ক্ষেত্রে গুরুত্বপূর্ণ যেখানে IME-তে 'পরবর্তী' বিকল্প থাকে এবং এটিComposeView-এ ফোকাস করার চেষ্টা করতে পারে এবংrequestFocus()কাজ করে না। (Ibd0e2, b/369256395)- ফ্ল্যাগ
isNestedScrollDispatcherNodeFixEnabledযোগ করো। (I0d24a) DialogProperties'dialogContentTitle-এর নাম পরিবর্তন করেwindowTitle(Ibd27b) করুনModifier.onFirstVisibleওModifier.onVisibilityChangedমডিফায়ার চালু করা হয়েছে, এগুলিModifier.onLayoutRectChanged-এর উপরে তৈরি করা হাই-লেভেল মডিফায়ার। এইসব মডিফায়ারকে অনেক সাধারণ অ্যাপ্লিকেশন সংক্রান্ত প্রয়োজনীয়তা যেমন, ইম্প্রেশন লগ করা, ভিডিও অটোমেটিক চালানো ইত্যাদি হ্যান্ডেল করার জন্য বিশেষভাবে তৈরি করা হয়েছে। পারফর্ম্যান্সের কথা মাথায় রেখে এগুলি তৈরি করা হয়েছে যাতে স্ক্রল পারফর্ম্যান্সের ক্ষেত্রে কোনও ঝুঁকি না নিয়েই এগুলিকে গুরুত্বপূর্ণ তালিকা-ভিত্তিক পরিস্থিতিতে ব্যবহার করা যায়। এইসব মডিফায়ার API ছাড়াও, এইসব ব্যবহারের ক্ষেত্রে সহায়তা করতে এবং ডেভেলপারদের জন্য ঠিক তাদের ব্যবহারের ক্ষেত্রে উপযুক্ত একই ধরনের কাস্টম মডিফায়ার সহজে তৈরি করা সহজ করতে,RelativeLayoutBoundsঅতিরিক্ত API যোগ করা হয়েছে। (I759b8)- এই ফিচারের ভবিষ্যতের ডেভেলপমেন্টের জন্য
setDiagnosticStackTraceEnabled-কে পরীক্ষামূলক হিসেবে পরিবর্তন করুন। (I11db3) - স্টেট তৈরি করার জন্য
Modifier.scrollable2D,Scrollable2DStateও কম্প্যানিয়ন API চালু করা হয়েছে। এছাড়াও, সাধারণ স্ক্রল এক্সটেনশন ফাংশন চালু করা হয়েছে। (Ic61c8, b/214410040) - Compose 64-বিট কালার ভ্যালু সরাসরি Android
ColorLongs-এর সাথে তুলনা করা যায় না কারণ কিছু কালার স্পেসের জন্য কালার স্পেস আইডি ক্রমবহির্ভূত। Android কালার স্পেসে কনভার্ট করতে এবং তা থেকে কনভার্ট করার জন্য, দুটি নতুন API যোগ করা হয়েছে:toColorLong()এবংfromColorLong(). (I36899) - কম বাউন্ড ফ্লিং ভেলোসিটি কন্ট্রোল করার অনুমতি দিতে
ViewConfiguration.minimumFlingVelocityযোগ করা হয়েছে। (I11aab)
ভার্সন 1.9.0-alpha02
৭ মে, ২০২৫
androidx.compose.ui:ui-*:1.9.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
dialogContentTitleথেকেDialogPropertiesপর্যন্ত যোগ করুন, যা কন্টেন্ট উইন্ডোর শীর্ষক সেট করে। bf9d670
সমস্যার সমাধান
- ইন্টার্নাল টেস্ট ঠিক করার সময় উইন্ডো ইনসেট রুলার সাময়িকভাবে বন্ধ করা হয়েছে। 8d1402
DragGestureNode-এVelocityTracker-এ কীভাবে পয়েন্টার ইনপুট পরিবর্তন যোগ করা হয় তা ঠিক করা হয়েছে, এটি নতুন ফ্ল্যাগisAdjustPointerInputChangeOffsetForVelocityTrackerEnabledদিয়ে কন্ট্রোল করা যায়।254ddb
ভার্সন 1.9.0-alpha01
২৩ এপ্রিল, ২০২৫
androidx.compose.ui:ui-*:1.9.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha01-এ এইসব কমিট রয়েছে।
আচরণে পরিবর্তন
- Compose-এর সাথে শিপ করা লিন্ট চেকের জন্য এখন ন্যূনতম AGP ভার্সন 8.8.2 প্রয়োজন। আপনি AGP আপগ্রেড করতে না পারলে, তার পরিবর্তে আপনার
gradle.properties-এandroid.experimental.lint.version=8.8.2(বা এর পরের যেকোনও ভার্সন) ব্যবহার করে Lint-কে আলাদাভাবে আপগ্রেড করতে পারবেন। IDE-এর মধ্যে Compose লিন্ট চেক রান করাতে, Android Studio Ladybug বা এর পরের যেকোনও ভার্সন প্রয়োজন।
API-তে পরিবর্তন
- হিট পাথ ট্র্যাকারের (ডিবাগ) জন্য ট্রেস স্টেটমেন্ট চালু করতে ফ্ল্যাগ সরিয়ে দেয়। (I1b2a1)
InnerRectRulersওOuterRectRules-কে পদ্ধতি হিসেবে পরিবর্তন করা হয়েছে।RectRulersপাবলিক API থেকে নাম প্যারামিটার সরিয়ে দেওয়া হয়েছে।DerivedRulersএখন ভার্টিক্যাল ও হরাইজন্টাল রুলারের জন্য কনস্ট্রাক্টর বিকল্প। ইনস্ট্যান্স তৈরি করার জন্যMergedHorizontalRulersওMergedVerticalRulersপদ্ধতিকেminOfওmaxOfপদ্ধতি দিয়ে প্রতিস্থাপন করা হয়েছে। (Iee89f, b/408192133)androidx.savedstate.compose.LocalSavedStateRegistryOwner-এর পরিবর্তেandroidx.compose.ui.LocalSavedStateRegistryOwnerবন্ধ করে দেওয়া হবে। (I5439f, b/377946781)- উপস্থিত থাকাকালীন ডিসপ্লে যাতে স্লিপ মোডে না যায় তা সেট করতে
Modifier.keepScreenOnযোগ করুন (Ib5af4, b/408284174) - নতুন সিম্যান্টিক্স প্রপার্টি
Shapeযোগ করুন, যা UI এলিমেন্টের আকার তার বাউন্ডিং রেক্ট্যাঙ্গেল থেকে আলাদা হলে সেট করা যেতে পারে, যেমন, রাউন্ডেড কর্নার রেক্ট্যাঙ্গেল। (I1376f) AndroidViews-এ পয়েন্টার ইভেন্ট ডিসপ্যাচ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে এবং পরিবর্তন সুরক্ষিত রাখতেisPointerInteropFilterDispatchingFixEnabledফ্ল্যাগ যোগ করা হয়েছে। (I0e272, b/372055500, b/408002332)FocusRestorerআগের ফোকাস করা আইটেম আর পিন করে না। আগে ফোকাস করা আইটেমের কম্পোজিশন হ্যাশ যাতে একই থাকে তা নিশ্চিত করতে ব্যবহারকারীদের একটি কী ব্যবহার করতে হবে, যাতে ফোকাস সফলভাবে রিস্টোর করা যায়। (I4203b, b/330696779)ViewTreeObserver.OnScrollChangedট্রিগার করার জন্য 'কম্পোজ' বিকল্পকে অনুমতি দিন।isOnScrollChangedCallbackEnabledফ্ল্যাগের অধীনে এই আচরণ চালু করা হয়েছে। এছাড়াও, আমরাDelegatableNode dispatchOnScrollChanged-এর একটি এক্সটেনশন ফাংশন চালু করেছি। (I34b9d, b/238109286)currentCompositeKeyHashএখন বন্ধ করে দেওয়া হয়েছে। পরিবর্তেcurrentCompositeKeyHashCodeব্যবহার করুন। রিপ্লেসমেন্ট API একই হ্যাশকে আরও বেশি বিট দিয়ে এনকোড করে, যা কম্পোজিশন হায়ারার্কিতে দুটি র্যান্ডম অসংশ্লিষ্ট গ্রুপের একই হ্যাশ কী থাকার সম্ভাবনাকে অনেক কমিয়ে দেয়। (I4cb6a, b/177562901)- Kotlin 2.0-এর সাথে রিলিজ করা প্রোজেক্ট ব্যবহার করার জন্য KGP 2.0.0 বা এর পরের যেকোনও ভার্সন প্রয়োজন (Idb6b5)
- কম্পোজিশনের মধ্যে এটি যাতে মনে রাখা হয় তা নিশ্চিত করতে
FocusRequester-এর জন্য লিন্ট চেক সাপোর্ট যোগ করা হয়েছে (I6bf91) - Added the ability to set preferred frame rate or frame rate category on the Composable should be rendered at (Ie5201)
- Android-এ নেটিভ
MotionEventএক্সপোজ করুন। (I17286) getChecked() + setChecked(int)যোগ করুন,isChecked + setChecked(boolean)সরিয়ে দিন (Iaac9d)graphicsLayerমডিফায়ারে এখনblendModeওcolorFilter(Iab0e6) ব্যবহার করা যায়- কোয়েরি রিসোর্সের জন্য
LocalResourcesকম্পোজিশন লোকাল যোগ করা হয়েছে। কনফিগারেশনে পরিবর্তন হলেLocalResources.currentআবার কম্পোজ করবে, তাইstringResource()-এর মতো API-তে কল করলে আপডেট করা ভ্যালু রিটার্ন করবে। (I50c13, b/274786917) - ইনডাইরেক্ট টাচ ইভেন্ট (Icff57) হ্যান্ডেল করার জন্য কম্পোজ করার উপযুক্ত আইটেমের জন্য এক্সপেরিমেন্টাল API এক্সপোজ করা
- এই রিলিজে আপনার কম্পোজ করা যায় এমন কন্টেন্টের লেআউট ও ড্র করার সময় আনহ্যান্ডেলড ব্যতিক্রমের রিপোর্টিং উন্নত করা হয়েছে। আগে, এখানে কোনও আনকড ব্যতিক্রম হলে, টেস্ট রানার ক্র্যাশ হয়ে যেত এবং টেস্ট স্যুটটি অসম্পূর্ণ থেকে যেত। টেস্ট স্যুট শেষ না করেই এখন এই ব্যতিক্রমগুলি আরও সহজে রিপোর্ট করা যাবে। (I9928b, b/314128080)
- পরীক্ষামূলক
GlobalAssertionsAPI বাতিল করা হয়েছে। এর উদ্দেশ্য ছিল অ্যাক্সেসিবিলিটি চেক চালানো, সেই উদ্দেশ্যেenableAccessibilityChecks()পরিবর্তে এটি দেখুন। (I50aa5) SemanticsNodeInteraction.performTextInputSelectionআর পরীক্ষামূলক নয় এবং এখন এটি অতিরিক্তrelativeToOriginalপ্যারামিটার ব্যবহার করে যা আপনাকে মূল অপরিবর্তিত টেক্সট বা পরিবর্তিত টেক্সটে বেছে নেওয়া অংশ প্রয়োগ করতে দেয়। (I3a905, b/261561038, b/277018945)AnnotatedString-এর মাধ্যমে কাস্টম বুলেট তালিকা তৈরি করার জন্য API চালু করা হয়েছে (I1d066, b/383269496, b/139326648)runWithMeasurementDisabled-এর পরিবর্তেrunWithTimingDisabled-কে বাতিল করুন, যা আচরণকে আরও স্পষ্টভাবে বর্ণনা করে - সমস্ত মেট্রিক পজ করা আছে। এছাড়াও,MicrobenchmarkScopeসুপারক্লাস এক্সপোজ করুন, কারণrunWithMeasurementDisabledফাংশনটি ইনলাইন হওয়ার কারণে ওপেন অ্যাক্সেস হিসেবে আবার ঘোষণা করা সম্ভব নয়। (I9e23b, b/389149423, b/149979716)- নতুন ডিভাইস যোগ করতে ui-tooling Devices API আপডেট করা হয়েছে। (Ia2ac1)
- ডেভেলপারকে বড় উইন্ডো (Ia1976) বিবেচনা করতে সাহায্য করার জন্য প্রিভিউ স্ক্রিন সাইজের সংগ্রহে ট্যাবলেট পোর্ট্রেট যোগ করুন
- নির্দিষ্ট সময়ে ভ্যালু সহ ট্রেস চিহ্নিত/লগ করার জন্য ট্রেস ভ্যালু API চালু করা। ট্রেস ভ্যালু Prefetto-তে নতুন লেন হিসেবে দেখা যায় যা ট্রেসের টাইমলাইনের মাধ্যমে দেখা যায়। Android-এ
Trace.setCounterব্যবহার করে এগুলি প্রয়োগ করা হয়। (Idcf48)
সমস্যার সমাধান
- একই অ্যাপ্লাইয়ে মনে রাখা/ভুলে যাওয়া ডিসপ্যাচ করা এড়াতে পজেবল কম্পোজিশনে মনে রাখা অবজ়ার্ভার ডিসপ্যাচ করার সমস্যা সমাধান করুন (I570b2, b/404645679, b/407931790)
decorFitsSystemWindowsfalse হলে (I7922f, b/246909281)android:dialogThemeএখন ডায়ালগ প্রপার্টি কন্ট্রোল করার জন্য সেট করা যেতে পারে- ডায়লগের বাইরে কোনও মোশন ইভেন্ট ধরা পড়লে ডায়লগ বাতিল হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ia78fd)
- Compose লিন্ট চেকের জন্য এখন কমান্ড লাইন থেকে ন্যূনতম AGP ভার্সন 8.8.2 এবং IDE সহায়তার জন্য অন্তত Android Studio Ladybug প্রয়োজন। আপনি AGP-র পুরনো ভার্সন ব্যবহার করলে, AGP-তে কোনও প্রভাব না ফেলেই Lint ভার্সন আপগ্রেড করতে, gradle.properties-এ
android.experimental.lint.version=8.8.2সেট করতে পারবেন। (I6f2a8) - আউটপুট ট্রান্সফর্মেশন প্রয়োগ করার আগে
textfield-এর ভ্যালু ক্যাপচার করে এমন একটি নতুন সিম্যান্টিক্স প্রপার্টিInputTextযোগ করা হয়েছে। (Iae46a, b/395911609, b/176949051) enableAccessibilityChecks()API সরিয়ে দেওয়া হয়েছে যা Android-এর জন্য অ্যাক্সেসিবিলিটি চেক চালু করে। এটি আলাদা প্যাকেজে আছে যাcompose:ui:ui-test-accessibilityযদি আপনিTestRuleব্যবহার না করেন এবংTestRule-এ কল করার সময়compose:ui:ui-test-junit4-accessibility(I3c318, b/391560768)LaunchedEffectওrememberCoroutineScope-এ কম্পোজ স্ট্যাক ট্রেসের জন্য সহায়তা যোগ করা হয়েছে (I705c0, b/354163858)
এক্সটার্নাল কন্ট্রিবিউশন
- সাসপেন্ড ব্লক গ্রহণ করার জন্য পরীক্ষামূলক
runComposeUiTestফাংশন পরিবর্তন করা। এছাড়াও, বাইনারি মানানসই হওয়ার জন্য একটি অপ্রচলিত ফাংশনrunComposeUiTestযোগ করা হয়েছে (I3b88c, b/361577328)
ভার্সন ১.৮
ভার্সন 1.8.3
১৮ জুন, ২০২৫
androidx.compose.ui:ui-*:1.8.3 রিলিজ করা হয়েছে। ভার্সন 1.8.3-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ফিচারটি সম্পূর্ণ যাচাই করা হয়ে যাওয়ার পরে
isGetFocusedRectReturnEmptyEnabled-এর জন্য ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। (Ife722) ComposeUiFlags.isGetFocusedRectReturnEmptyEnabledফ্ল্যাগটি এমনভাবে কাজ করে যেComposeView-এ ফোকাস করার মতো কিছু না থাকলে, এটি rect-কে Empty ভ্যালু হিসেবে সেট করে। এটি ফোকাস সার্চকে ফোকাস করার জন্য ভিউ বেছে নিতে বাধা দেয়। এটি বিশেষত সেইসব ক্ষেত্রে গুরুত্বপূর্ণ যেখানে IME-তে 'পরবর্তী' বিকল্প থাকে এবং এটিComposeView-এ ফোকাস করার চেষ্টা করতে পারেrequestFocus()এবং ব্যর্থ হয়। (Ibd0e2, b/369256395)
ভার্সন 1.8.2
২০ মে, ২০২৫
androidx.compose.ui:ui-*:1.8.2 রিলিজ করা হয়েছে। ভার্সন 1.8.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ডায়ালগে অ্যাক্টিভ ইভেন্ট স্ট্রিম চলাকালীন ডায়ালগ সরিয়ে দেওয়া হলে NPE সংক্রান্ত সমস্যার সমাধান করা হয় (6a7e7f)
- ড্র-অনলি আপডেট হলে, থ্রটল করা টাইমলাইন অনুযায়ী
onLayoutRectChangeআপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করুন। (03b82d)
ভার্সন 1.8.1
৭ মে, ২০২৫
androidx.compose.ui:ui-*:1.8.1 রিলিজ করা হয়েছে। ভার্সন 1.8.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
onLayoutRectChangedওLazyLayoutd791b11 সংক্রান্ত কিছু সমস্যার সমাধান করা- প্রিকম্পোজ করা আইটেমের জন্য আবার মাপ নেওয়ার অনুরোধ এড়িয়ে যান। এই বাগটি লেজি লেআউটের স্ক্রল করার পারফর্ম্যান্সকে প্রভাবিত করেছে কারণ কিছু ক্ষেত্রে প্রিফেচিং দক্ষতার সাথে কাজ করছিল না, ফ্রেমের মধ্যে পরিমাপ করা হচ্ছিল। 742087a
ভার্সন 1.8.0
২৩ এপ্রিল, ২০২৫
androidx.compose.ui:ui-*:1.8.0 রিলিজ করা হয়েছে। 1.8.0 ভার্সনে এইসব কমিট রয়েছে।
1.7.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- Compose 1.8-এ নতুন যোগ করা সিমান্টিক অটোফিলের সুবিধা আছে। আপনি যে UI এবং Foundation ভার্সন ব্যবহার করছেন সেটি যেন 1.8 বা তার পরের যেকোনও ভার্সন হয়, কারণ টেক্সট কম্পোনেন্টের জন্য অটোফিল ফিচারের জন্য দুটি মডিউলের লেটেস্ট ভার্সন প্রয়োজন। API ব্যবহার ও উদাহরণ সম্পর্কে আরও জানতে, এখানে গিয়ে অটোফিল ডকুমেন্টেশন দেখুন।
- Compose 1.8-এ হ্যাপ্টিক ফিডব্যাকের অতিরিক্ত ধরন কাজ করে:
Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. এটিLocalHapticFeedback-এর মাধ্যমে অ্যাক্সেস করা যায় এবং Android-এ, Vibrator API থেকে হ্যাপটিক ফিডব্যাক কাজ করে বলে জানালে, এটি ডিফল্ট হিসেবে উপলভ্য থাকে। - একাধিক Focus API এখন স্টেবল, এর মধ্যে
Modifier.focusRestorer()এবংonEnterএবংonExitFocusProperties(I6e667) অন্তর্ভুক্ত।requestFocus-এ কল করার সময় আপনি এখনFocusDirectionউল্লেখ করতে পারবেন। নির্দিষ্ট দিকে ফোকাস করার অনুমতি দিতে আমরাfocusRequesterএবংFocusTargetModifierNodeদু'টিতেই একটিrequestFocus(FocusDirection)API যোগ করেছি। (I5d9ec][https://android-review.googlesource.com/#/q/I5d9eca3a2cd283c1b84ad6b77d929ef9a49ce4cc], b/245755256)
ভার্সন 1.8.0-rc03
৯ এপ্রিল, ২০২৫
androidx.compose.ui:ui-*:1.8.0-rc03 রিলিজ করা হয়েছে। 1.8.0-rc03 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- রিগ্রেশন ঘটানো ফোকাস ইন্টারঅপারেশন সংক্রান্ত কিছু সমস্যা সমাধান করার সুবিধা বন্ধ করে দেয়। (b9d998, b/369256395, b/378570682, b/376142752, b388590015/, b/389994198, b/391378895)
ভার্সন 1.8.0-rc02
২৬ মার্চ, ২০২৫
androidx.compose.ui:ui-*:1.8.0-rc02 রিলিজ করা হয়েছে। ভার্সন 1.8.0-rc02-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- Compose হায়ারার্কিতে এম্বেড করা ফোকাসড ভিউ, lazylist থেকে সরিয়ে দিলে, রিয়েন্ট্রি কম্পোজিশন হওয়ার কারণ সম্পর্কিত সমস্যার সমাধান করা হয়েছে। (765562)
ভার্সন 1.8.0-rc01
১২ মার্চ, ২০২৫
androidx.compose.ui:ui-*:1.8.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.8.0-rc01-এ এইসব কমিট আছে।
সমস্যার সমাধান
- সফ্ট কীবোর্ড চালু থাকা অবস্থায় ফোকাস করা
AndroidViewসরিয়ে দিলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (Ic725a) - নতুন ফোকাস স্টেট ম্যানেজমেন্ট প্রয়োগে কিছু সমস্যার সমাধান করা হয়েছে। (b/395895685)
LaunchedEffectব্যবহার করে টেক্সট ফিল্ডে ফোকাস করার অনুরোধ করলে, অটোফিল ব্লক করা সংক্রান্ত সমস্যার সমাধান করে। (b/392539099)
ভার্সন 1.8.0-beta03
২৬ ফেব্রুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.8.0-beta03 রিলিজ করা হয়েছে। 1.8.0-beta03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
enableAccessibilityChecks()API সরানো হয়েছে যা Android-এর জন্য অ্যাক্সেসিবিলিটি চেক চালু করে। এগুলি আলাদা প্যাকেজে আছে যাcompose:ui:ui-test-accessibilityআপনি TestRule ব্যবহার না করলে এবংcompose:ui:ui-test-junit4-accessibilityTestRule-এ কল করলে (I547ef, b/391560768)- আউটপুট ট্রান্সফর্মেশন প্রয়োগ করার আগে টেক্সটফিল্ডের ভ্যালু ক্যাপচার করে এমন একটি নতুন সিম্যান্টিক্স প্রপার্টি
InputTextযোগ করা হয়েছে। (Iae46a)
সমস্যার সমাধান
- ইনপুট টেক্সটের পরিবর্তে আউটপুট ট্রান্সফর্ম করা টেক্সট সেভ করার কারণে অটোফিল পরিষেবাতে হওয়া সমস্যার সমাধান করা হয়েছে। (Iae46a, b/395911609, b/176949051)
ভার্সন 1.8.0-beta02
১২ ফেব্রুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.8.0-beta02 রিলিজ করা হয়েছে। 1.8.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
Configuration#screenWidth/heightDp-এ কল করা থেকে সতর্ক করতে একটি লিন্ট চেক যোগ করা হয়েছে - বর্তমান উইন্ডোর সাইজ পুনরুদ্ধার করতেLocalWindowInfo.current.containerSizeব্যবহার করা যেতে পারে।
ভার্সন 1.8.0-beta01
২৯ জানুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.8.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.8.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ContextualFlowRowওContextualFlowColumnবন্ধ করা হয়েছে হিসেবে চিহ্নিত করা হয়েছে। এই পরীক্ষামূলক কম্পোনেন্টটি 1.7 ভার্সনে চালু করা হয়েছিল এবং এখনও স্থিতিশীল হয়নি এবং এর প্রয়োগকে অবাঞ্ছিত বলে মনে করা হয়েছে। ভবিষ্যতে, এই কম্পোনেন্টটি যে সমস্যার সমাধান করার জন্য তৈরি করা হয়েছে, সেই সমস্যার সমাধানকারী কম্পোনেন্ট প্রদান করা হতে পারে।FlowRowওFlowColumn-এ 1.7-এ চালু করা এক্সপেরিমেন্টাল ওভারলোড আছে যার মধ্যেoverflowপ্যারামিটার অন্তর্ভুক্ত। এই প্যারামিটারের ব্যবহার বাতিল করা হয়েছে এবং এর পরিবর্তে এই প্যারামিটার ছাড়া ওভারলোড ব্যবহার করা যেতে পারে। এইসব ওভারলোডের জন্য ডিফল্ট "ওভারফ্লো" আচরণ হবে "ক্লিপ", কারণ এটি শুরু থেকেই এমন ছিল।ContextualFlowRow-এর অনেক ব্যবহারিক ক্ষেত্রে FlowRow ব্যবহার করা যেতে পারে, তবে আমরা স্বীকার করি যে এটি সম্পূর্ণভাবে সত্য নয়।ContextualFlowRowসম্পূর্ণভাবে ব্যবহারকারীর স্পেসে প্রয়োগ করা যায় এবং চাইলে এর প্রয়োগ কপি করে অ্যাডাপ্ট করা যায়। ভবিষ্যতে, আমরা আশা করি যে এইসব ব্যবহারের ক্ষেত্রে অন্যভাবে সমাধান করতে পারব। (Ibafec)
SemanticsNodeInteraction.semanticsId()সরানো হয়েছে৷ পরিবর্তেSemanticsNodeInteraction.fetchSemanticsNode().idব্যবহার করুন। (Ie397a)- পুরনো অটোফিল API আর ব্যবহার করা যাবে না। এর পরিবর্তে নতুন সিম্যান্টিক্স ভিত্তিক API ব্যবহার করুন। (I943ff)
requestAutofillAPI-কে অটোফিল ম্যানেজারের বাইরে রাখার জন্য আবার লেখা। (Id1929)
সমস্যার সমাধান
- ফোকাস সংক্রান্ত সমস্যার সমাধান করা হয়েছে যেখানে
requestFocus()-এর সাথেpreviouslyFocusedRectপ্যারামিটার (ফোকাস ডিরেকশনের সাথে সম্পর্কিত) থাকলেComposeViewএড়িয়ে যাওয়া হত। (Ifdc2f, b/388590015) GraphicsLayer.record { this@ContentDrawScope.drawContent() }ব্যবহার করার সময় মাঝে মধ্যে হওয়া NPE সংক্রান্ত সমস্যা সমাধান করা হয়েছে। আপনিdrawContent()এইভাবে রেকর্ড করলে,DrawScope-এর মধ্যেGraphicsLayer#recordএক্সটেনশন ফাংশন ব্যবহার করতে ভুলবেন না এবংGraphicsLayer-এর মেম্বার ফাংশন ব্যবহার করবেন না। (I75fc0, b/389046242)- অ্যানিমেশনের সময় কখনও কখনও ভুল অনুবাদ হওয়া এলিপসিস সহ টেক্সট লেআউট ঠিক করা, আরও তথ্যের জন্য b/389707025 দেখুন (Ie55b1, b/389707025)
ভার্সন 1.8.0-alpha08
১৫ জানুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.8.0-alpha08 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha08-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
AutofillManager-কে অ্যাবস্ট্র্যাক্ট ক্লাস হিসেবে তৈরি করা। (I0a3b0)- ফোকাস সংক্রান্ত একাধিক সমস্যার সমাধান করা হয়েছে, এর মধ্যে রয়েছে ফোকাস করার মতো আইটেম না থাকলে IME-এর
ComposeView-এ ফোকাস করার চেষ্টা করার সময় ক্র্যাশ হওয়া, চাইল্ডAndroidViews-এর মধ্যে ফোকাস পরিবর্তন হওয়া এবং ফোকাস করার অনুরোধAndroidViewছেড়ে চলে যাওয়া। (Ia03c3, b/369256395, b/378570682, b/376142752) FocusEnterExitScope.cancelFocus()থেকেcancelFocusChange()-এ পরিবর্তন করুন (I89959)- আপনি এখন
RectInfo.calculateOcclusions()-এর মাধ্যমে কম্পোজ করা যায় এমন অবস্ট্রাকশন গণনা করতে পারবেন। - গ্লোবাল লেআউটে পরিবর্তনের জন্য লিসনার রেজিস্টার করতে
DelegatableNode-এ এক্সটেনশন ফাংশন যোগ করা হয়েছে। (I68b59)
সমস্যার সমাধান
ComposeContentTestRule.setContentব্যবহার করার সময়, পরীক্ষা করা হচ্ছে এমন কম্পোজ করার উপযুক্ত আইটেমের হোস্ট হিসেবে ব্যবহৃত অ্যাক্টিভিটি এখনTheme.Material.Light.NoActionBarথিম ব্যবহার করে, যাতে SDK 35 টার্গেট করার সময়ActionBarটেস্ট কন্টেন্টের সাথে ওভারল্যাপ না করে। এই আচরণ থেকে বেরিয়ে আসতে, আপনিui-test-manifest-এর উপর নির্ভরতা সরিয়ে দিতে পারেন এবং আপনার পছন্দের থিম সহComponentActivity-এর জন্য আপনার টেস্ট অ্যাপের AndroidManifest.xml-এ একটি অ্যাক্টিভিটি এন্ট্রি যোগ করতে পারেন। (I7ae1b, b/383368165)- একই ধরনের ভেরিয়েশন সেটিংস সহ রিসোর্স ফন্ট এখন ওভার-ক্যাশিং এড়িয়ে চলবে, এর ফলে ভুল ভেরিয়েশন সেটিংস প্রয়োগ করা হবে না। (If3dff, b/372044241)
AnnotatedString.fromHtmlএখন<ul>/<li>ট্যাগ ব্যবহার করা যায়। (I7c2fe, b/299662276, b/139326648)
এক্সটার্নাল কন্ট্রিবিউশন
- নতুন ক্লিপবোর্ড ইন্টারফেস ও তার জন্য কম্পোজিশন লোকাল যোগ করা হয়েছে। (I80809)
ভার্সন 1.8.0-alpha07
১১ ডিসেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha07 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha07-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- টুলের জন্য
LayoutNodeথেকে মালিককে এক্সপোজ করা হয়েছে। (I26f7f) LocalAutofillHighlightColorকম্পোজিশনে কালার টাইপ ব্যবহার করা হয়েছে। (I0e05b)- পুরনো হয়ে যাওয়া
UrlAnnotationএবং এর পদ্ধতিগুলি পরীক্ষামূলক হিসেবে চিহ্নিত করে রাখুন। (Ic0021)
সমস্যার সমাধান
BasicTextবা টেক্সট কম্পোজ করার মতো (be7605, b/374115892) ফিচারের মধ্যেLinkAnnotationব্যবহার করার সময়IndexOutOfBoundsExceptionক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে- কাস্টম শেপ দিয়ে পূরণ করা টেক্সট ফিল্ডে ইন্ডিকেটর লাইন ক্লিপ না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I4f87f, b/380704151)
- দীর্ঘ স্ক্রিনশটে ব্যাকগ্রাউন্ড না থাকা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I4d57a)
- এই লাইব্রেরি এখন JSpecify nullness annotations ব্যবহার করে, যা হল টাইপ-ইউজ। Kotlin ডেভেলপারদের সঠিক ব্যবহার নিশ্চিত করতে নিম্নলিখিত কম্পাইলার আর্গুমেন্ট ব্যবহার করা উচিত:
-Xjspecify-annotations=strict(এটি Kotlin কম্পাইলারের 2.1.0 ভার্সন থেকে ডিফল্ট হিসেবে শুরু হয়)। (Idfef8, b/326456246) - Android Q+ ভার্সনে চলা ডিভাইসে, ওয়াইড গ্যামাট ও HDR কালারের জন্য কম্পোজ করার সুবিধা আপডেট করা হয়েছে। (Icd8be, b/379135036)
- লোড করা যায়নি এমন রিসোর্স ফন্ট এখন নীরবে ডিফল্ট ফন্টে পরিবর্তিত হয়ে যাবে। আগে, পরিমাপ করার সময় একটি ব্যতিক্রম তৈরি হত। (Ib6a49)
AndroidViewআলাদা করে আবার অ্যাটাচ করলে ফোকাস হারিয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা। (I53446)- বাউন্ড লেআউট অ্যাকশনের বাইরে থেকে
requestFocus()গ্রহণ করুন। (Ia8461)
এক্সটার্নাল কন্ট্রিবিউশন
- UI-তে
BringIntoViewResponderModifierNodeযোগ করুন, যা Bring Into View ফাংশনালিটি প্রয়োগ করার একটি নতুন উপায় প্রদান করে এবং প্ল্যাটফর্ম লেভেলে প্রয়োগ করার অনুমতি দেয়। (Ia6dd8)
ভার্সন 1.8.0-alpha06
১৩ নভেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha06 রিলিজ করা হয়েছে। 1.8.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
stylusHoverIconমডিফায়ার যোগ করে। (Iff20a, b/331289114)- অটোফিল ম্যানেজারকে ইন্টারফেস হিসেবে পরিবর্তন করে। (I84914, b/376080755)
- নির্দিষ্ট দিকে ফোকাস করার অনুমতি দিতে
focusRequesterওFocusTargetModifierNodeদু'টিতেইrequestFocus(FocusDirection)যোগ করে। (I5d9ec, b/245755256) FocusProperties.enterওFocusProperties.exit-এর পরিবর্তেonEnterওonExitব্যবহার করা হয়েছে, এর জন্যFocusDirectionপ্যারামিটারের পরিবর্তে রিসিভার স্কোপ ব্যবহার করা হয়েছে। (I6e667)- টেক্সট টুলবারে অটোফিল সংক্রান্ত সুবিধা যোগ করা হয়েছে। (Ie6a4c)
Modifier.focusRestorer()(I99c03)-এ API পরিবর্তন:- প্যারামিটারের নাম পরিবর্তন করে 'fallback' করা হয়েছে
- parameter এখন
FocusRequesterএবং lambda নয় - প্যারামিটার এখন নন-NULL, ডিফল্ট ভ্যালু হিসেবে Default আছে
- অটোফিল ম্যানেজার ইন্টারফেস থেকে
@Experimentalঅ্যানোটেশন সরানো। এই ফিচারটি এখনও WIP-তে আছে এবং এই রিলিজের জন্য টার্গেট করা হয়েছে, তবে আমরা @Expemiental API (Id8398) চালু করতে চাই না LocalHapticFeedbackএখন Vibrator API ইঙ্গিত করলে যে হ্যাপটিক কাজ করে, তখন একটি ডিফল্টHapticFeedbackপ্রয়োগ করে।HapticFeedbackType-এ নিম্নলিখিতগুলি যোগ করা হয়েছে -Confirm,ContextClick,GestureEnd,GestureThresholdActivate,Reject,SegmentFrequentTick,SegmentTick,ToggleOn,ToggleOff,VirtualKey. Wear Compose-এরButton,IconButton,TextButtonওCard-এর মতো দীর্ঘক্ষণ ক্লিক করা যায় এমন কম্পোনেন্ট এখনLONG_PRESSহ্যাপ্টিক পারফর্ম করে যখন একটি দীর্ঘক্ষণ ক্লিক করার হ্যান্ডলার প্রদান করা হয়। (I5083d)OverscrollConfigurationওLocalOverscrollConfigurationসরিয়ে দেয় এবং ডিফল্ট ওভারস্ক্রল ইমপ্লিমেন্টেশনের / কাস্টমাইজ প্যারামিটারের ইনস্ট্যান্স তৈরি করতেrememberPlatformOverscrollFactoryযোগ করে। ওভারস্ক্রল বন্ধ করতে,LocalOverscrollConfiguration provides null-এর পরিবর্তেLocalOverscrollFactory provides nullব্যবহার করুন। গ্লো কালার / প্যাডিং পরিবর্তন করতে,LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)-এর পরিবর্তেLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)ব্যবহার করুন। (Ie71f9, b/255554340, b/234451516)- এক্সপেরিমেন্টাল
GlobalAssertionsAPI সরিয়ে দেওয়া হয়েছে। এটি অ্যাক্সেসিবিলিটি চেক চালানোর জন্য ব্যবহার করার কথা ছিল, সেই উদ্দেশ্যেenableAccessibilityChecks()দেখুন। (I59322)
ভার্সন 1.8.0-alpha05
৩০ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha05 রিলিজ করা হয়েছে। 1.8.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
এই রিলিজে ফিচার ফ্ল্যাগের পিছনে অটোফিল এক্সপোজ করা হয়েছে। আমরা পারফর্ম্যান্স উন্নত করার জন্য কাজ করছি এবং API সম্পর্কে প্রাথমিক মতামত পেলে আমাদের সুবিধা হবে। মতামতের ভিত্তিতে স্থিতিশীল হওয়ার আগে API-তে পরিবর্তন করা হতে পারে।
- অটোফিল চালু করতে,
onCreate-এComposeUiFlags.isSemanticAutofillEnabled-কে true হিসেবে সেট করুন এবং লেটেস্ট কম্পোজ স্ন্যাপশট ব্যবহার করুন। - অটোফিলের এই ভার্সন, শক্তিশালী পাসওয়ার্ড সাজেস্ট করার মাধ্যমে এবং নেভিগেশনের মাধ্যমে ম্যানুয়ালি ক্রেডেনশিয়াল সেভ করাকে সাপোর্ট করে। এছাড়াও, কোনও অটোফিল করা যায় এমন ফিল্ডে ফোকাস করা হলে বা টেক্সট কম্পোনেন্টে টেক্সট টুলবারের মাধ্যমে অটোফিল ট্রিগার করা হলে, এটি পূরণ করতে সাহায্য করে। অটোফিল সম্পূর্ণ হয়ে গেলে, তা বোঝাতে কম্পোনেন্টটি হাইলাইট করা হবে।
API-তে পরিবর্তন
expect/actualস্ট্রাকচার মেনে চলতে অটোফিল ইন্টারফেস পরিবর্তন করুন। (I22dce)CompositionLocalযোগ করা হয়েছে যা অটোফিলের সফলভাবে পূরণ করা হাইলাইটের হিউ পরিবর্তন করতে ব্যবহার করা যেতে পারে। (I32092)Modifier.onRectChangedAPI যোগ করা হয়েছে, এটি এমন একটি API যাLayoutNode-এর রুট/উইন্ডো/স্ক্রিন-সম্পর্কিত পজিশন ও সাইজে সাবস্ক্রাইব করার অনুমতি দেয়। API, আগে থেকে থাকাonGloballyPositionedমডিফায়ার যেসব ব্যবহারের ক্ষেত্রে কাজ করে, সেইসব ক্ষেত্রে কাজ করে, তবে এটি অনেক কম ওভারহেড সহ কাজ করে এবং API-তে এমন সুবিধা আছে যার মাধ্যমে ব্যবহারকারীর ব্যবহারের ক্ষেত্রে যা প্রয়োজন সেই অনুযায়ী কলব্যাক ডিবাউন্স ও থ্রটল করা যায়। (Id28c7, b/372765423, b/372757007, b/372994338)commit()এবংcancel()API অন্তর্ভুক্ত করার জন্য অটোফিল ম্যানেজারকে প্রসারিত করে যা ব্যবহারকারীদের নতুন করে লেখা ক্রেডেনশিয়াল সেভ করতে সাহায্য করে। (I2da00)- ব্যবহারকারীর অটোফিল জার্নি ফাইন-টিউন করার জন্য ব্যবহার করা যেতে পারে এমন নতুন
AutofillManagerইন্টারফেস এবং অটোফিলের এই নতুন ভার্সন চালু করার জন্যisSemanticAutofillEnabledফ্ল্যাগ নিয়ে আসে। (I9d484) Modifier.onRectChangedAPI যোগ করা হয়েছে, এটি এমন একটি API যা কোনওLayoutNode-এর রুট/উইন্ডো/স্ক্রিন-সম্পর্কিত পজিশন ও সাইজে সাবস্ক্রাইব করার অনুমতি দেয়। API, আগে থেকে থাকাonGloballyPositionedমডিফায়ার যেসব ব্যবহারের ক্ষেত্রে কাজ করে, সেইসব ক্ষেত্রে কাজ করে, তবে এটি অনেক কম ওভারহেড সহ কাজ করে এবং API-তে এমন সুবিধা আছে যার মাধ্যমে ব্যবহারকারীর ব্যবহারের ক্ষেত্রে যা প্রয়োজন সেই অনুযায়ী কলব্যাক ডিবাউন্স ও থ্রটল করা যায়। (I3c8fa)- অটোফিল সংক্রান্ত আরও সহায়তা পেতে, সিমান্টিক প্রপার্টি ও ডেটা টাইপ যোগ করুন। (I52c7d)
AnnotatedStringবিল্ডারের সব পদ্ধতি এখন আর এক্সপেরিমেন্টাল নয় (Ia89c8, b/261561823)
সমস্যার সমাধান
- কম্পোজে এম্বেড করা ভিউ ফোকাস করা থাকলে এখন রোটারি ইভেন্ট পেতে পারে (I4d53a, b/320510084)
- কনফিগারেশনে পরিবর্তন করলে বিভিন্ন ধরনের রিসোর্স আপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে (Ia9b99, b/352336694)
- নির্দিষ্ট কিছু পুরনো Sony ডিভাইসে POBox জাপানি কীবোর্ড ব্যবহার করার সময়
TextFieldসঠিকভাবে কাজ করতে না পারার সমস্যা সমাধান করা হয়েছে। (Ia9b99, b/373743376) - ডায়ালগ স্ক্রিনের মাঝখানে না দেখিয়ে নিচে দেখানো সংক্রান্ত সমস্যার সমাধান করা হয়েছে (Ia2ec, b/373093006)
- টার্গেটিং API 35+ আর ডায়ালগগুলিকে
decorFitsSystemWindows-কে false হিসেবে সেট করতে বাধ্য করে না। (Ibc94, b/364492593) - উইন্ডোর মধ্যে লেয়ার সরানো হলে (যেমন, ডায়ালগ ও মূল কন্টেন্ট) ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে (I675ba, b/330955281)
ভার্সন 1.8.0-alpha04
১৬ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DelegatableNode#onDensityChangeওDelegatableNode#onLayoutDirectionChangeকলব্যাক যোগ করে, এগুলি পরিবর্তন হলে নোড স্টেট আপডেট করার অনুমতি দেয় (I04f3e, b/340662451)- বর্তমান উইন্ডোর কন্টেন্ট কন্টেনারের সাইজ প্রদান করতে
WindowInfo#containerSizeযোগ করে।LocalWindowInfoব্যবহার করে এটি পুনরুদ্ধার করা যেতে পারে। (Idc38c, b/369334429, b/360343819) - চলমান ফ্লিংয়ের সময় নোড ট্রি থেকে সরিয়ে দেওয়া নেস্টেড স্ক্রল করার মতো কন্টেন্টের জন্য একটি সমাধান প্রকাশ করা হয়েছে। এখন এই নোডগুলি ফ্লিং বাতিল করবে এবং বাকি ভেলোসিটি সহ
onPostFlingইভেন্ট সঠিকভাবে পাঠাবে। এছাড়াও, রিগ্রেশন হলে আচরণ নিয়ন্ত্রণ করার জন্য আমরা ফ্ল্যাগNewNestedScrollFlingDispatchingEnabledচালু করছি। বিটা ভার্সন প্রকাশ করার আগে ফ্ল্যাগ সরিয়ে দেওয়া হবে। (I05c37, b/371168883) PointerInputModifierNode#touchBoundsExpansionচালু করা হয়েছে, যা একটি পয়েন্টার ইনপুট মডিফায়ারের টাচ বাউন্ড বড় করতে ব্যবহার করা যেতে পারে। (Iccf02, b/335339283)- বর্তমান উইন্ডোর কন্টেন্ট কন্টেনারের সাইজ প্রদান করতে
WindowInfo#containerSizeযোগ করে।LocalWindowInfoব্যবহার করে এটি পুনরুদ্ধার করা যেতে পারে। (I27767, b/369334429, b/360343819) - স্টেবল ফাউন্ডেশন ভার্সনে পিন করতে
TextFields' থেকেreadOnlyসরান। (I3aaba) ParagraphওParagraphIntrinsicsএখনAnnotatedString-এ প্রয়োগ করা সব অ্যানোটেশনের তালিকা নেয়, আগে এতে শুধুমাত্রSpanStyles-এর তালিকা থাকত (I12f80)
সমস্যার সমাধান
AnnotatedString-এ প্যারাগ্রাফ কীভাবে ব্যবহার করা হয় তা আপডেট করা হয়েছে। আগে আপনি শুধুমাত্র ওভারল্যাপ না করা প্যারাগ্রাফ তৈরি করতে পারতেন। এখনAnnotatedStringসম্পূর্ণ ওভারল্যাপ করা প্যারাগ্রাফের অনুমতি দেয়, যেগুলি একসাথে মার্জ করা হবে এবং নেস্ট করা প্যারাগ্রাফের ক্ষেত্রে বাইরের প্যারাগ্রাফটি ভেতরের প্যারাগ্রাফের সীমানায় স্প্লিট করা হবে এবং ভেতরের প্যারাগ্রাফের স্টাইলটি বাইরের প্যারাগ্রাফের স্টাইলের সাথে মার্জ করা হবে (Ic9554)- শূন্য দৈর্ঘ্যের
LinkAnnotationসহAnnotatedString-এ ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করুন। (89aac6)
ভার্সন 1.8.0-alpha03
২ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha03 রিলিজ করা হয়েছে। 1.8.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Kotlin ভার্সন 1.9-এ আপডেট করা হয়েছে (I1a14c)
- a11y পরিষেবার জন্য পেজারে তালিকার আচরণ এমুলেট করতে, ক্যারোজেল নামে একটি নতুন সিম্যান্টিক রোল চালু করা হয়েছে। (Id354b, b/354109776, b/239672673)
invisibleToUser()-এর নাম পরিবর্তন করেhideFromAccessibilityকরুন। এর ফাংশন একই থাকে। আরও বিবরণের জন্য ডকুমেন্টেশন দেখুন। (Ib43a3)
সমস্যার সমাধান
SensitiveContentমডিফায়ারের (Ib0442) জন্য ডকুমেন্ট আপডেট করা হচ্ছে- কিছু Android ভার্সনে এলিভেশন শ্যাডোর সাথে নির্দিষ্ট কিছু সাধারণ আউটলাইন ক্লিপ উপেক্ষা করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে
- নির্দিষ্ট Android ভার্সনে জেনেরিক আউটলাইন ক্লিপ নির্দিষ্ট করা থাকলে খালি ক্লিপ প্রয়োগ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
- এক্সটার্নাল ভিউতে IME অ্যাক্টিভ থাকলে এবং
ComposeView-এ ফোকাস এন্টার করার জন্য 'পরবর্তী' অ্যাকশন ব্যবহার করা হলে, ব্যতিক্রম সংক্রান্ত সমস্যার সমাধান করা হয়েছে।clearFocus()-এর আচরণ API < 28-এ ভিউয়ের আচরণের সাথে সামঞ্জস্যপূর্ণ, যেখানেclearFocus()-এর কারণে ডিফল্ট ভিউ ফোকাস করা হতে পারে। LazyList-এ আলাদা লেআউট পাসের জন্য সাবকম্পোজিশনের ম্যানেজমেন্ট আলাদা করার মাধ্যমে বিচ্ছিন্ন নোডে প্লেসমেন্ট হওয়ার সমস্যা সমাধান করা হয়েছে।TextFieldথেকেEditTextবা অন্য কোনও ভিউ ভিত্তিক এডিটরে ফোকাস পরিবর্তন করার সময় সফ্টওয়্যার কীবোর্ড ফ্লিকার করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে।- নেস্টেড স্ক্রল নোড এখন আলাদা হয়ে যাওয়ার পরে সঠিকভাবে
onPostFlingইভেন্ট ডিসপ্যাচ করবে। - সামগ্রিক পারফর্ম্যান্সের উন্নতি
ভার্সন 1.8.0-alpha02
১৮ সেপ্টেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha02 রিলিজ করা হয়েছে। 1.8.0-alpha02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
TextOverflow.StartEllipsisওTextOverflow.MiddleEllipsisএখন উপলভ্য, যা সিঙ্গেল লাইন টেক্সটের লাইনের শুরুতে বা মাঝে উপবৃত্ত বসাতে দেয়। (I38913, b/185418980)
সমস্যার সমাধান
- Fix Dalog
dismissOnClickoutside(39a3d, b/364508685) - ডায়ালগ কন্টেন্টের শ্যাডো ক্লিপ করবেন না (e8e2f, b/363027803)
- Compose ও View-এর মধ্যে ফোকাস সার্চ সরানোর সময় হওয়া ভুল আচরণ সংক্রান্ত সমস্যার সমাধান করা (58377, b/350534714)
এক্সটার্নাল কন্ট্রিবিউশন
AlignmentLinesMapএখনVerticalAlignmentLineবাHorizontalAlignmentLineকনক্রিট ধরনের ডেটা গ্রহণ করে। (I02912)- নতুন সাধারণ
ByteArray.decodeToImageBitmap(): ImageBitmapপদ্ধতি। (I83c21)
ভার্সন 1.8.0-alpha01
৪ সেপ্টেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.8.0-alpha01 রিলিজ করা হয়েছে। 1.8.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.7
ভার্সন 1.7.8
১২ ফেব্রুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.7.8 রিলিজ করা হয়েছে। ভার্সন 1.7.8-এ এইসব কমিট রয়েছে।
ভার্সন 1.7.7
২৯ জানুয়ারি, ২০২৫
androidx.compose.ui:ui-*:1.7.7 রিলিজ করা হয়েছে। ভার্সন 1.7.7-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- Text composable-এ
LinkAnnotationসহAnnotatedStringপাস করার সময়IndexOutOfBoundsExceptionসংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ic96d2) AnnotatedString-এLinkAnnotationব্যবহার করা হলে, কিছু বিরল ক্ষেত্রে টেস্টে টাইম-আউট সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I04a03)
ভার্সন 1.7.6
১১ ডিসেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.7.6 রিলিজ করা হয়েছে। ভার্সন 1.7.6-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ফোকাস সিস্টেমে যখন পেন্ডিং ইনভ্যালিডেশন থাকত, তখন আমরা কোনও গুরুত্বপূর্ণ ইভেন্ট দেখতে পেলে আগে একটি সমস্যা দেখাতাম। আমরা এখন এর পরিবর্তে একটি সমস্যা লগ করি (I7ea0, b/346370327)।
SemanticsPropertyReceiver.invisibleToUser()থেকে পরীক্ষামূলক অ্যানোটেশন সরানো হয়েছে।SemanticsPropertyReceiver.hideFromAccessibility()-এর সাথে পরিবর্তন করার জন্য এটি 1.8-এ বন্ধ করা হবে। (I448f0, b/376479686)- নির্দিষ্ট কিছু পুরনো Sony ডিভাইসে POBox জাপানি কীবোর্ড ব্যবহার করার সময়
TextFieldসঠিকভাবে কাজ করতে না পারার সমস্যার সমাধান করা হয়েছে। (I94e0e, b/373743376) - অ্যাক্সেসিবিলিটি সংক্রান্ত একটি সমস্যার সমাধান করা হয়েছে যেখানে
TalkBack,BasicText-এর inlineContent ঘোষণা করেনি। (I67bcb, b/376479686)
ভার্সন 1.7.5
৩০ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.7.5 রিলিজ করা হয়েছে। ভার্সন 1.7.5-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- কাস্টম আউটলাইনের সাথে এলিভেশন ও ক্লিপিং সঠিকভাবে রেন্ডার না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
- জিরো-উইথ
LinkAnnotation-এর কারণে টেক্সট ক্র্যাশ হওয়ার সমস্যা সমাধান করে। (Ic1e2e) - ক্লিক করা যায় এমন টেক্সট কম্পোজ করার উপযুক্ত হিসেবে তৈরি করা হলে,
Talkback-এ বোতামের ঘোষণা সংক্রান্ত সমস্যার সমাধান করে। (I1f588)
ভার্সন 1.7.4
১৬ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.7.4 রিলিজ করা হয়েছে। ভার্সন 1.7.4-এ এইসব কমিট রয়েছে।
ভার্সন 1.7.3
২ অক্টোবর, ২০২৪
androidx.compose.ui:ui-*:1.7.3 রিলিজ করা হয়েছে। ভার্সন 1.7.3-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- নির্দিষ্ট Android ভার্সনে, সাধারণ আউটলাইন ক্লিপ নির্দিষ্ট করলে ক্লিপের সীমানা খালি থাকার সমস্যা সমাধান করা হয়েছে।
- এক্সটার্নাল ভিউতে IME অ্যাক্টিভ থাকলে এবং
ComposeView-এ ফোকাস এন্টার করার জন্য 'পরবর্তী' অ্যাকশন ব্যবহার করা হলে, ব্যতিক্রম সংক্রান্ত সমস্যার সমাধান করা হয়েছে।clearFocus()-এর আচরণ API < 28-এ ভিউয়ের আচরণের সাথে সামঞ্জস্যপূর্ণ, যেখানেclearFocus()-এর কারণে ডিফল্ট ভিউ ফোকাস করা হতে পারে। - লুকঅহেড বাতিল করার জন্য ভুল
placeOrderব্যবহার করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এর ফলে, লুকঅহেড প্লেসমেন্ট এড়িয়ে যাওয়া সংক্রান্ত এজ কেস সমাধান করা হয়েছে।
ভার্সন 1.7.2
১৮ সেপ্টেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.7.2 রিলিজ করা হয়েছে। ভার্সন 1.7.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অ্যাক্সেসিবিলিটি নোড সংক্রান্ত তথ্য ও সিম্যান্টিক ইভেন্টের পারফর্ম্যান্স উন্নত করা হয়েছে। এর জন্য ভার্বোজ ট্রেসিং সরিয়ে দেওয়া হয়েছে। (I89156, b/362530618)
- অত্যন্ত বড় পরিমাপের সাইজ (da5db, b/347036173) পাস করা হলে
ComposeViewআর ক্র্যাশ করবে না - অ্যাক্সেসিবিলিটি স্ক্রিনরিডার সংক্রান্ত একটি সমস্যার সমাধান করা হয়েছে যেখানে বোতামে
LiveRegionঘোষণা করা হয়নি। (f66fa7, b/348590026)
ভার্সন 1.7.1
১০ সেপ্টেম্বর, ২০২৪
- Android আর্টিফ্যাক্টে কোনও পরিবর্তন করা হয়নি।
-desktopআর্টিফ্যাক্ট সরিয়ে দেওয়া হয়েছে এবং-jvmStubsও-linuxx64Stubsআর্টিফ্যাক্ট যোগ করা হয়েছে। এইসব টার্গেটের কোনওটিই ব্যবহার করার জন্য নয়, Jetbrains Compose-এর প্রচেষ্টায় সাহায্য করার জন্য এগুলি প্লেসহোল্ডার হিসেবে ব্যবহার করা হয়।
ভার্সন 1.7.0
৪ সেপ্টেম্বর, ২০২৪
androidx.compose.ui:ui-*:1.7.0 রিলিজ করা হয়েছে।
1.6.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
1.7.0 ভার্সনে হওয়া গুরুত্বপূর্ণ পরিবর্তনগুলি এই ব্লগপোস্টে উল্লেখ করা হয়েছে।
ভার্সন 1.7.0-rc01
২১ আগস্ট, ২০২৪
androidx.compose.ui:ui-*:1.7.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-rc01-এ এইসব কমিট রয়েছে।
উল্লেখযোগ্য পরিবর্তন
- ui:ui মডিউল এখন foundation:foundation-এর ন্যূনতম ভার্সন 1.7.0-rc01 বা তার পরের যেকোনও ভার্সন হতে হবে।
NestedScrollSourceপরিবর্তন যা 1.7.0-alpha01 চলাকালীন আগে ঘটেছিল, সেই সংক্রান্ত UI এবং ফাউন্ডেশনের মধ্যে আচরণগত অসামঞ্জস্যের সমাধান করার জন্য এটি প্রয়োগ করা হয়।
ভার্সন 1.7.0-beta07
৭ আগস্ট, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta07 রিলিজ করা হয়েছে। 1.7.0-beta07 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- টেক্সট ইনপুট সংক্রান্ত
SemanticsNodeInteractionফাংশনperformTextReplacement,performTextInputওperformTextClearanceএখন শুধু রিড-অনলিTextFields-এ কল করা হলে অ্যাসার্শন এরর দেখাবে। (I4ae8f)
ভার্সন 1.7.0-beta06
২৪ জুলাই, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta06 রিলিজ করা হয়েছে। 1.7.0-beta06 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.7.0-beta05
১০ জুলাই, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta05 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta05-এ এইসব কমিট আছে।
সমস্যার সমাধান
- একটি সমস্যার সমাধান করা হয়েছে যেখানে সফ্টওয়্যার কীবোর্ড পরিবর্তন করলে, ফোকাস না হারানো এবং ফিরে না পাওয়া পর্যন্ত
TextFieldনতুন কীবোর্ড থেকে ইনপুট গ্রহণ করত না। SurfaceViewকন্টেন্ট রেন্ডার করার সময় লেয়ার কন্টেন্ট সেভ করার চেষ্টা করলে অপ্রত্যাশিত পার্শ্বপ্রতিক্রিয়া হওয়ার সমস্যা সমাধান করা হয়েছে।
ভার্সন 1.7.0-beta04
২৬ জুন, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta04 রিলিজ করা হয়েছে। 1.7.0-beta04 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- খুব বড় টেক্সট লাইন (যেমন, ১০ হাজার অক্ষর) পরিমাপ করার সময় ক্র্যাশ হওয়া এড়ানো (8157ab)
GraphicsLayerAPI-এর জন্য সফ্টওয়্যার রেন্ডারিং সংক্রান্ত সহায়তা বন্ধ করুন। (35ddd8)- লেয়ার পারসিস্টেন্স লজিকে ক্র্যাশ সংক্রান্ত সমস্যার সমাধান। (70b13e)
- লেয়ার অবজেক্টের অপ্টিমাইজেশন আবার আগের অবস্থায় ফিরিয়ে আনা হয়েছে, কারণ এর ফলে রেন্ডারিং সংক্রান্ত সমস্যা হচ্ছিল। (70b13e)
ভার্সন 1.7.0-beta03
১২ জুন, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta03 রিলিজ করা হয়েছে। 1.7.0-beta03 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.7.0-beta02
২৯ মে, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta02 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta02-এ এইসব কমিট আছে।
API-তে পরিবর্তন
SemanticsProperties.Editable-এর নাম পরিবর্তন করেIsEditableকরা হয়েছে এবংSemanticsPropertyReceiver.editable-এর মান পরিবর্তন করেisEditableকরা হয়েছে। প্রপার্টি এখন একটি বুলিয়ান এবং সবসময় টেক্সট ফিল্ডের মাধ্যমে নির্দিষ্ট করা হয়। (I8acd8)- অ্যাক্সেসিবিলিটি বেঞ্চমার্ক প্যারামিটারের নাম পরিবর্তন করুন। (I3d440)
- লিঙ্ক স্টাইল করার জন্য আপডেট করা API:
TextLinkStylesএখনLinkAnnotationকনস্ট্রাক্টর ওAnnotatedString.fromHtmlপদ্ধতির (I90b2b) অংশ। এছাড়াও, মেটেরিয়াল (I5477b) থেকেTextDefaultsসরিয়ে দেওয়া হয়েছে
সমস্যার সমাধান
- এর উদ্দেশ্য আরও ভালোভাবে বোঝাতে
LayoutCoordinates.introducesFrameOfReference-এর নাম পরিবর্তন করেLayoutCoordinates.introducesMotionFrameOfReferenceকরা হয়েছে। সেই ফ্ল্যাগের উপর ভিত্তি করে কোঅর্ডিনেট গণনা করার জন্য সম্পর্কিত ফাংশনের নাম পরিবর্তন করা হয়েছে। (I3a330)
ভার্সন 1.7.0-beta01
১৪ মে, ২০২৪
androidx.compose.ui:ui-*:1.7.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
performCustomAccessibilityActionLabelled-এর নাম পরিবর্তন করেperformCustomAccessibilityActionWithLabelএবংperformCustomAccessibilityActionWhere-এর নাম পরিবর্তন করেperformCustomAccessibilityActionWithLabelMatchingকরা হয়েছে। (I5387f)AnnotatedString.hasEqualsAnnotationsএখনhasEqualAnnotations(I685c0)- টেক্সটে Material থিমের লিঙ্ক পাওয়ার জন্য API আপডেট করা হয়েছে। বিশেষ করে, থিমযুক্ত
LinkAnnotationsতৈরি করতে এবং থিমযুক্ত লিঙ্ক সহ HTML পার্স করার জন্যTextDefaultsথেকে পদ্ধতিগুলি সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে, একটিTextLinkStylesক্লাস যোগ করা হয়েছে যা টেক্সট কম্পোজ করার যোগ্য আইটেমের প্যারামিটার হিসেবে লিঙ্ককে স্টাইল করার অনুমতি দেয়। (I31b93)
সমস্যার সমাধান
- ইভেন্ট চলাকালীন ডায়নামিক পদ্ধতিতে পয়েন্টার ইনপুট মডিফায়ার যোগ করার সময় অতিরিক্ত ব্যবহারিক ক্ষেত্র সংক্রান্ত সমস্যার সমাধান করে 63e1504
ভার্সন 1.7.0-alpha08
১ মে, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha08 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha08-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পরিবর্তনযোগ্য শেপ প্রয়োগ করার সুবিধা যোগ করে।
Shape#createOutlineএখন গ্রাফিক লেয়ারের মধ্যে দেখা যায়, তাই এর মধ্যে থাকা স্টেট ভ্যালু পড়লে, স্টেট পরিবর্তন হওয়ার সময় তা বাতিল হয়ে যাবে, এর ফলে আরও ভাল পারফর্ম্যান্সের শেপ অ্যানিমেশন পাওয়া যাবে। (Id1629, b/326070216) isPositionedByParentWithDirectManipulation-এর নাম পরিবর্তন করেintroducesFrameOfReferenceকরা হয়েছে। মনে রাখবেন, এখন এর বিপরীত প্রভাব রয়েছে, অর্থাৎ ডিফল্ট হিসেবে, বেশিরভাগLayoutCoordinatesরেফারেন্স ফ্রেম যোগ করে এবং শুধুমাত্র ডাইরেক্ট ম্যানিপুলেশনের অধীনে রাখলে প্রপার্টিটি মিথ্যা হবে। শুধুমাত্র সেইসব পজিশন কোয়েরি করতে যা রেফারেন্সের ফ্রেমকে ইন্ট্রোডিউস করে,positionInLocalFrameOfReference(...)ব্যবহার করুন। অথবাLookaheadScopeথেকেpositionInLocalLookaheadFrameOfReference। (Ifc5f7)LookaheadScopeAPI স্থিতিশীল করা হয়েছে (I21507)- API কাউন্সিল ফিডব্যাক অনুযায়ী
getScrollViewportLength-এর জন্য অ্যাকশন ল্যাম্বডা পরিবর্তন করো। (Ibc74a) - int-এর পরিবর্তে ফ্লোট প্যারামিটার ব্যবহার করার জন্য আপডেট করা
GraphicsLayerআউটলাইন API। ফ্লোট-ভিত্তিক অফসেট এবং সাইজ ইনলাইন ক্লাসে (I2fb03, b/333863462) আগে থেকেই বিদ্যমান অনির্দিষ্ট কনস্ট্যান্টের জন্যUnsetOffset/UnsetSize IntSizeসেন্টিনেল ভ্যালু সরিয়ে দেওয়া হয়েছে - পরীক্ষার সময় মাউস ইনপুট ইনজেক্ট করার সময়,
MouseInjectionScope.click(),MouseInjectionScope.doubleClick(),MouseInjectionScope.tripleClick(),MouseInjectionScope.longClick()এখনbutton: MouseButtonপ্যারামিটার গ্রহণ করে যাতে সেগুলি আরও বেশি করে সর্বজনীনভাবে প্রযোজ্য হয়। সব পদ্ধতির জন্য ডিফল্ট ভ্যালু হলMouseButton.Primary। (I31a23, b/190493367, b/261439695) LinkInteractionListener-এর মধ্যেonClicked-এর নাম পরিবর্তন করেonClickকরা হয়েছে। (Iaa35c)TextInclusionStrategy.isInside-এর নাম পরিবর্তন করেisIncludedকরুন।Paragraph/MultiParagraph#getRangeForRect()রিটার্ন টাইপকে নন-নাল করুন। (I51f26)
সমস্যার সমাধান
reverseScrolling=true-এর সাহায্যে স্ক্রল করা যায় এমন কন্টেনারের জন্য লম্বা স্ক্রিনশট ক্যাপচার করার সমস্যা সমাধান করা হয়েছে। (I7c59c)
এক্সটার্নাল কন্ট্রিবিউশন
- নেস্টেড
LazyLists-এ (যেমন, নেস্টেডLazyRowsরেন্ডার করে এমনLazyColumn) আইটেম প্রিফেচ করার জন্য সহায়তা যোগ করা হয়েছে। এই পরিবর্তনের ফলে এইসবLazyLists-এর জন্য স্ক্রল করার সময় ফ্রেম ড্রপ কমে যাবে বলে আশা করা যায়। ইমপ্লিমেন্টেশনের ডিফল্ট হল প্রথম ২টি নেস্টেড আইটেম প্রিফেচ করা, তবে এই আচরণ নতুনLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)ওLazyListPrefetchStrategy#onNestedPrefetchAPI-এর মাধ্যমে কন্ট্রোল করা যেতে পারে। (I51952)
ভার্সন 1.7.0-alpha07
১৭ এপ্রিল, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha07 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha07-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ClickableTextবন্ধ করে দেওয়া হয়েছে হিসেবে চিহ্নিত করা হয়েছে। টেক্সটে লিঙ্ক যোগ করতে, আপনার লিঙ্কের সাথে সম্পর্কিতLinkAnnotationসহ একটিAnnotatedStringতৈরি করুন এবং এইAnnotatedString-কে Text composable-এ পাস করুন। (I34d4b, b/323346994)- হাতের লেখা জেসচারের জন্য
ViewConfiguration.HandwritingGestureLineMarginচালু করুন।BasicTextField-এর জন্যJoinOrSplitজেস্চার কাজ করে (Ie6e13, b/325660505) FocusProperties.enterওFocusProperties.exitআর পরীক্ষামূলক নয়।FocusDirection.EnterওFocusDirection.Exitআর পরীক্ষামূলক নয়।FocusRequester.Cancelআর এক্সপেরিমেন্টাল নয় (I461a1, b/261564106)- Layout কোঅর্ডিনেট কোয়েরি করার সময়, আপনি এখন
excludeDirectManipulationOffsetআর্গুমেন্ট ব্যবহার করে,Placeable.PlacementScope.withDirectManipulationPlacementব্যবহার করে চাইল্ড লেআউট প্লেস করা প্যারেন্ট লেআউট দ্বারা সেট করা অফসেট বাদ দিতে পারেন। একইভাবে, কোনও লেআউট যদি তার চাইল্ডের পজিশন ঘন ঘন পরিবর্তন করে, তাহলে সেটি এখনwithDirectManipulationPlacementব্যবহার করে সেগুলি প্লেস করতে পারে (যেমন, ডিফল্ট হিসেবে প্রয়োগ করা স্ক্রল)। এর ফলেapproachLayoutভিত্তিক অ্যানিমেশন আরও স্বজ্ঞাত হয়ে ওঠে, কারণ এখন অ্যানিমেট করার জন্য কোন অফসেট ব্যবহার করতে হবে এবং কোন অফসেট সরাসরি প্রয়োগ করতে হবে তা আলাদা করে বোঝা যায়। (I60ec7) - 'বড় স্ক্রিনশট' ফিচারের ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। (I28648, b/329128246)
LazyColumnএখন দীর্ঘ স্ক্রিনশটে স্টিকি হেডার সঠিকভাবে রেন্ডার করবে। (I8d239, b/329296635)NestedScrollসোর্স ড্র্যাগ ও ফ্লিংকেUserInputওSideEffectদিয়ে প্রতিস্থাপন করা হচ্ছে, যাতে এই সোর্সগুলির বর্ধিত সংজ্ঞা অন্তর্ভুক্ত করা যায়, যার মধ্যে এখন অ্যানিমেশন (সাইড এফেক্ট) এবং মাউস হুইল ও কীবোর্ড (UserInput) অন্তর্ভুক্ত। (I40579)ApproachLayoutModifierNodeওModifier.approachLayoutএখন স্থিতিশীল, নতুনisMeasurementApproachInProgress()ওisPlacementApproachInProgress()যথাক্রমে পুরনোisMeasurementApproachComplete()ওisPlacementApproachComplete()-এর পরিবর্তে ব্যবহার করা যাবে।- পুরনো হয়ে যাওয়া
intermediateLayoutমডিফায়ার সরিয়ে দেওয়া হয়েছে। (I3e91c) RenderNodeও Picture-এর মতো Displaylist ব্যাকড API-এর begin/endRecording পদ্ধতির মতো রেকর্ড করতেGraphicsLayer#buildLayer-এর নাম পরিবর্তন করুন।rememberObserver-এর সুবিধা নিতেrememberGraphicsLayerআপডেট করা হয়েছে। (I312c1, b/288494724, b/330758155)UrlAnnotationবন্ধ করা হয়েছে, এর পরিবর্তেLinkAnnotation.Urlব্যবহার করুন। আপনি যদি মেটেরিয়াল থিমিং ব্যবহার করেন, তাহলে মেটেরিয়াল থিমিং প্রয়োগ করা অ্যানোটেশন তৈরি করতেTextDefaultsঅবজেক্ট ব্যবহার করুন (I8d180, b/323346545)- সাধারণ স্টাইলিং, হোভার ও ফোকাস করা ছাড়াও টেক্সট লিঙ্কে প্রেস করা স্টাইলিং বিকল্প যোগ করা হয়েছে (I5f864, b/139312671)
String.parseAsHtml-এর নাম পরিবর্তন করেAnnotatedString.Companion.fromHtmlকরা হয়েছে। (I43dcd)parseAsHtmlপদ্ধতিতে স্টাইলিং আর্গুমেন্ট (linkStyle,focusedLinkStyle,hoveredLinkStyle) এবং লিঙ্ক ইন্টার্যাকশন লিসনার যোগ করা হয়েছে।<a>ট্যাগ সহ HTML-ট্যাগ করা স্ট্রিং পার্স করার সময়, এই পদ্ধতিটি এই ধরনের প্রতিটি ট্যাগের জন্য একটিLinkAnnotation.Urlতৈরি করবে এবং প্রতিটি অ্যানোটেশনে স্টাইলিং অবজেক্ট ও লিঙ্ক ইন্টার্যাকশন লিসনার পাস করবে। (I7c977)LinkAnnotationএখন স্টেট-ভিত্তিক স্টাইলিং আর্গুমেন্ট ও একটিLinkInteractionListenerনেয়। হাইপারলিঙ্ক পেতেAnnotatedString-এ এই অ্যানোটেশন যোগ করুন।focusedStateএবং/অথবাhoveredStateপাস করার মাধ্যমে, লিঙ্ক ফোকাস করা এবং/অথবা হোভার করা হলে আপনি ভিজ্যুয়ালconfigurationনির্ধারণ করতে পারবেন। (I81ce4, b/139312671)ImeOptions.hintLocalesআর নাল হতে পারবে না। আপনি খালি লোকেল তালিকা পাস করতে চাইলে,LocaleList.Emptyব্যবহার করুন। (Ic5bc4)
সমস্যার সমাধান
- খারাপ/ভুল ঐতিহাসিক ইনপুট ইভেন্ট ডেটা সাবলীলভাবে ম্যানেজ করে (ভুল অফসেট ডেটা উপেক্ষা করে)।
- অ্যাক্টিভ পয়েন্টার ইনপুট ইভেন্ট স্ট্রিম চলাকালীন (যেমন, হোভার এন্টার ও হোভার এক্সিট [মাউস/স্টাইলাস]-এর মধ্যে) অন্য পয়েন্টার ইনপুট মডিফায়ারের আগে ডায়নামিক পয়েন্টার ইনপুট মডিফায়ার যোগ করা হলে অপ্রত্যাশিত পয়েন্টার ইভেন্ট সংক্রান্ত সমস্যার সমাধান করে।
ভার্সন 1.7.0-alpha06
৩ এপ্রিল, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha06-এ এইসব কমিট রয়েছে।
নতুন ফিচার
- স্টাইল করা স্ট্রিংয়ের জন্য
parseAsHtmlপদ্ধতি যোগ করা হয়েছে: এটি HTML ট্যাগ দিয়ে চিহ্নিত করা স্ট্রিংকেAnnotatedString-এ কনভার্ট করতে দেয়। মনে রাখবেন, সব ট্যাগ কাজ করে না, যেমন, আপনি এখনও বুলেট তালিকা দেখাতে পারবেন না। (I84d3d, I30626, b/139326648) - অফিসিয়াল Android API (
ScrollCaptureCallback) ব্যবহার করে কম্পোজ স্ক্রল কন্টেনারে বড় স্ক্রিনশট নেওয়ার জন্য পরীক্ষামূলক সহায়তা প্রয়োগ করা হয়েছে। এই ফিচারটি পরীক্ষামূলক এবং বর্তমানে সব ক্ষেত্রে সঠিকভাবে কাজ নাও করতে পারে। সেই কারণে, এটি বর্তমানে ডিফল্ট হিসেবে বন্ধ করা আছে। চালু করতে,ComposeFeatureFlag_LongScreenshotsEnabledফ্ল্যাগকে 'সত্য' হিসেবে সেট করুন। (I2b055, b/329296471)
API-তে পরিবর্তন
fun ClipEntry.getMetadata()পরিবর্তন করেval ClipEntry.clipMetadataকরা হয়েছে। (I50155)ClipboardManager.getClipMetadataওClipboardManager.hasClipফাংশন সরিয়ে দেওয়া হয়েছে। বর্তমান ক্লিপ এন্ট্রির মেটাডেটা পড়তেclipEntry.getMetadata()ব্যবহার করুন। এছাড়াও, ক্লিপবোর্ডে কোনও বর্তমান ক্লিপ আছে কিনা তা বোঝার জন্যClipboardManager.getClip-এর ফলাফল নাল বা নয় কিনা তা চেক করুন। (I50498)- এখন আপনি
placeable.placeWithLayer()ফাংশনেGraphicsLayerঅবজেক্ট পাস করতে পারবেন (I1b22f) ClipboardManager.setClipএখন ক্লিপবোর্ড খালি করার জন্য নাল ভ্যালু গ্রহণ করে। (I7d2e9)- বিল্ড টুলের মধ্যে ইমপ্লিমেন্টেশন বিবরণ হিসেবে ব্যবহৃত ভিউ লুকানোর জন্য রিসোর্স আইডি যোগ করা হয়েছে (I99531)
GraphicsLayer-এ বিটম্যাপের কন্টেন্ট রেন্ডার করার জন্যGraphicsLayer#toImageBitmapসাসপেন্ড করার পদ্ধতি যোগ করা হয়েছে। এটি API লেভেল 22+ (অন্তর্ভুক্ত) ভার্সনে হার্ডওয়্যার অ্যাক্সিলারেটেড রেন্ডারিং অপারেশন যা সমস্ত Android ডিভাইসের ৯৯%-এরও বেশি ডিভাইসে কাজ করে। Android API লেভেল ২১-এ এটি সফ্টওয়্যার রেন্ডারিংয়ে ফল ব্যাক করে। (I9e114)- Android
RectFথেকেComposeRect-এ কনভার্ট করার জন্য সহায়ক পদ্ধতি (I39925, b/325660505) - সব
KeyboardOptionsপ্যারামিটারের ডিফল্ট মান এখন অনির্দিষ্ট।KeyboardOptions.mergeপদ্ধতি যোগ করা হয়েছে। KeyboardOptions.autoCorrect-এর নাম পরিবর্তন করেautoCorrectEnabledকরা হয়েছে এবং এটিকে নাল করা যায়, যেখানে নাল মানে কোনও ভ্যালু নির্দিষ্ট করা হয়নি। (Ia8ba0, b/295951492)- সফ্টওয়্যার কীবোর্ড দ্বারা নেওয়া অ্যাকশন প্রসেস করার জন্য
BasicTextField(state)এবংBasicSecureTextFieldএখনKeyboardActions-এর পরিবর্তেKeyboardActionHandlerব্যবহার করে। (I58dda)
ভার্সন 1.7.0-alpha05
২০ মার্চ, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha05-এ এইসব কমিট আছে।
নতুন ফিচার
- ডিসপ্লে লিস্টে ড্রয়িং কমান্ড রেকর্ড করার জন্য নতুন
GraphicsLayerAPI এবং ডিসপ্লে লিস্টের রেন্ডারিংয়ের উপর প্রভাব ফেলে এমন অতিরিক্ত প্রপার্টি যোগ করা হয়েছে। এটি একটি আইসোলেশন বাউন্ডারি প্রদান করে যা একটি জটিল দৃশ্যকে ছোট ছোট অংশে ভাগ করে এবং সম্পূর্ণ দৃশ্যটি আবার তৈরি না করেই প্রতিটি অংশকে আলাদাভাবে আপডেট করা যেতে পারে।GraphicsLayer-এ করা ট্রান্সফর্মেশন ডিসপ্লে তালিকা আবার রেকর্ড না করেই করা যেতে পারে।Modifier.graphicsLayer-এর বিপরীতে,GraphicsLayerকম্পোজ করার উপযুক্ত কন্টেন্ট অন্য কোথাও রেন্ডার করার অনুমতি দেয় এবং অ্যানিমেটেড ব্যবহারের ক্ষেত্রে এটি উপযোগী যেখানে কন্টেন্টকে বিভিন্ন দৃশ্যে রেন্ডার করার প্রয়োজন হয়।
API-তে পরিবর্তন
GraphicsLayer.draw(Canvas)আর পাবলিক এপিআই নেই। লেয়ার আঁকার জন্য এর পরিবর্তেDrawScope.drawLayer(GraphicsLayer)এক্সটেনশন ফাংশন ব্যবহার করুন। (I7a7c0)restrictedConstraints()-কে দুটি পদ্ধতিতে ভাগ করুন:fitPrioritizingWidth()এবংfitPrioritizingHeight()(I6d7fd)- Android L ব্যবহারের জন্য
HardwareCanvasস্টাব যোগ করা হয়েছে (I1c3b5, b/288494724) - Compose ফ্রেমওয়ার্ক আপডেট করে
GraphicsContextকম্পোজিশন লোকালকে এক্সপোজ করুন এবং এর সাথে সাথেDelegateableNodeওdrawWithCacheমডিফায়ার ইমপ্লিমেন্টেশন আপডেট করেGraphicsContext-এর অ্যাক্সেস এক্সপোজ করুন। এর ফলে স্কোপ করা অ্যাক্সেস পাওয়া যাবে এবং মডিফায়ার সরিয়ে দিলেGraphicsLayerইনস্ট্যান্স অটোমেটিক ক্লিন-আপ হয়ে যাবে। (I64a2f, b/288494724) InterceptPlatformTextInputচালু করা হয়েছে, এর সাহায্যে লো-লেভেল IME-সম্পর্কিত টেস্ট ও অন্যান্য লো-লেভেল IME ব্যবহারের ক্ষেত্র লেখা যায়।PlatformTextInputTestOverrideবন্ধ করে দেওয়া হয়েছে। (I862ed, b/322680547)GraphicsLayer.setOutline(Outline)এক্সটেনশন ফাংশন যোগ করা হয়েছে। (Ib81f4)GraphicsLayerইনস্ট্যান্স (Ib98d6, b/288494724) তৈরি করার জন্য ফ্যাক্টরি তৈরি করতেGraphicsContextফাংশন কনস্ট্রাক্টর যোগ করুন- ড্রয়িং কমান্ড ক্যাপচার করার ক্ষেত্রে ডেভেলপার-সংজ্ঞায়িত নমনীয়তা প্রদান করতে
GraphicsLayerAPI এক্সপোজ করা হয়েছে যা অন্য কোথাও ড্র করার জন্য ব্যবহার করা যেতে পারে এবং চূড়ান্ত ফলাফলে বিভিন্ন ভিজ্যুয়াল এফেক্টও প্রয়োগ করা যেতে পারে। (I80245, b/288494724) Paragraph#getRangeForRect-এর ব্যাপারে জানুন, এটি প্রদত্ত আয়তাকার এরিয়াতে কভার করা টেক্সটের রেঞ্জ রিটার্ন করে। (Iee516, b/325660505)onLinkClickedআর্গুমেন্ট সহBasicText-এর পরীক্ষামূলক ওভাররাইড সরিয়ে দেওয়া হয়েছে। ভবিষ্যতে হাইপারলিঙ্ক সহায়তার জন্য একটি বিকল্প API প্রকাশ করা হবে। (I107d5)
সমস্যার সমাধান
- ঐচ্ছিক কম্পোজিটিং ভিজ্যুয়াল এফেক্ট ও ট্রান্সফর্ম সহ ড্রয়িং কমান্ড ক্যাপচার ও রিপ্লে করার সুবিধা দিতে
GraphicsLayerexpect/actual API সংজ্ঞা যোগ করা হয়েছে।GraphicsLayerইনস্ট্যান্স তৈরি ও ম্যানেজ করা সহ গ্রাফিক্স সংক্রান্ত নির্ভরতা কন্টেন করার জন্যGraphicsContextইন্টারফেস চালু করা। (I4a8d6, b/288494724) - 1D ফোকাস সার্চের সাথে ইন্টার-অপারেবিলিটি সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যেখানে ফোকাস অন্যান্য ভিউয়ের মধ্যে এম্বেড করা
ComposeView-এর মধ্যে আটকে যেত। (I08fd4)
এক্সটার্নাল কন্ট্রিবিউশন
LocalLifecycleOwner-কে Compose UI থেকেlifecycle-runtime-compose-এ সরানো হয়েছে যাতে এর Compose-ভিত্তিক হেল্পার API, Compose UI-এর বাইরে ব্যবহার করা যায়। কন্ট্রিবিউট করার জন্য Jake Wharton-কে ধন্যবাদ। (I6c41b, b/328263448)- পক্ষপাতদুষ্ট অ্যালাইনমেন্টের সব সাবটাইপে পক্ষপাতদুষ্ট ফ্লোট প্রপার্টিকে ধারাবাহিকভাবে এক্সপোজ করুন। (I69f0f, b/328088992)
ভার্সন 1.7.0-alpha04
৬ মার্চ, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Android U-এর পরের ভার্সন থাকা ডিভাইসে BasicTextField2-এর জন্য স্টাইলাস হাতের লেখা ফিচার কাজ করে। (I002e4)
- এই CL-এ আমরা
GetScrollViewportLengthসিম্যান্টিক অ্যাকশন যোগ করছি যাতে কম্পোজে স্ক্রল করা হচ্ছে এমন কম্পোনেন্ট সম্পর্কে তথ্য a11y সিস্টেমে পাইপ করা যায়। এই CL, Foundation Scrollable Lists-এ উল্লিখিত প্রপার্টির ব্যবহারও প্রয়োগ করে। (Ic5fa2) FocusRequester.createRefsএখন স্থিতিশীল (I4d92c, b/261436820)- কম্পোজিশন লোকাল না পড়েই মডিফায়ার নোডকে বর্তমান Android
Viewপেতে দেওয়ার জন্যDelegatableNode.requireView()যোগ করা হয়েছে। (I40768) - পাথের দিক পরিবর্তন করার জন্য নতুন API
Path.reverse()(I36348) TextFields-কে পছন্দসই ভাষা আগে থেকে সেট করার জন্য নির্দিষ্ট লোকেল সহ IME-কে ইঙ্গিত করার ক্ষমতা প্রদান করতেKeyboardOptions-এhintLocalesযোগ করা হয়েছে।LocaleথেকেplatformLocaleপ্রপার্টি এক্সপোজ করুন যা অন্তর্নিহিত প্ল্যাটফর্ম অবজেক্ট রিটার্ন করে, যেমনjava.util.Locale। (I921c6)
ভার্সন 1.7.0-alpha03
২১ ফেব্রুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha03 রিলিজ করা হয়েছে। 1.7.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- MaxLines ও ওভারফ্লো সহ
ContextualFlowRowও উন্নতFlowRow/Columnচালু করা হচ্ছে। আমরা এক্সপেরিমেন্টালFlowRowওFlowColumn-এ উন্নতির ঘোষণা করতে পেরে আনন্দিত। এখন এতে maxLines ও ওভারফ্লো সাপোর্ট আছে। এছাড়াও,ContextualFlowRowওContextualFlowColumnপ্রথমবার প্রকাশ করা হয়েছে। এই আপডেটটি পারফর্ম্যান্স অপ্টিমাল কম্পোনেন্ট প্রদান করার জন্য ডিজাইন করা হয়েছে, যেখানেContextualFlow*হল ছোটmaxLinesকনফিগারেশন এবং ডায়নামিক +N আরও দেখুন বোতাম ব্যবহার করে আইটেমের একটি বড় সংখ্যার জন্য উপযুক্ত এবংFlowRowএবংFlowColumnহল আইটেমের একটি ছোট সংখ্যার জন্য উপযুক্ত, ১০০টির কম আইটেম। গুরুত্বপূর্ণ:FlowRowবাFlowColumn-এ আগে থেকে থাকা আচরণ বজায় রাখতে, যেখানে ক্রস অ্যাক্সিস ম্যাক্স ফিট করুক বা না করুক, সব আইটেম কম্পোজ করা হয়, সেখানে ইনিশিয়ালাইজেশনের সময়overflow-কেFlowRowOverflow.VisibleবাFlowColumnOverflow.Visibleহিসেবে সেট করুন। এইসব নতুন ফিচার কীভাবে কাজ করে তা জানতেContextualFlowRowSampleওFlowRowSampleদেখুন। (Ib9135, b/293577082) maxTextLengthসিম্যান্টিক্স প্রপার্টি যোগ করুন যা সর্বাধিক অনুমোদিত অক্ষরের সংখ্যা ফিল্টার করে এমন টেক্সট ফিল্ডে সেট করা উচিত। (I24d9f, b/170648072)Modifier.inspectableর্যাপার বন্ধ করে দেওয়া হয়েছে। এই API আপনার মডিফায়ারের অপ্রয়োজনীয় ইনভ্যালিডেশন তৈরি করবে, তাই এখন এটি ব্যবহার না করাই ভাল। টুলিংয়ের কাছে মডিফায়ার প্রপার্টি এক্সপোজ করতে চাইলে, ডেভেলপারদেরModifierNodeElement-এinspectableProperties()মেথড প্রয়োগ করার জন্য উৎসাহিত করা হয়। (Ib3236)PopupProperties-এর জন্য নতুন কনস্ট্রাক্টর যাWindowManager.LayoutParamsফ্ল্যাগ সম্পূর্ণ নিয়ন্ত্রণ করতে দেয়। (Ibb33e, b/312485503)DelegatableNode.requireLayoutCoordinates()-কেModifier.Node-এর বর্তমানLayoutCoordinatesপাওয়ার একটি উপায় হিসেবে চালু করা হয়েছে, এর জন্যonPlacedওভাররাইড করার প্রয়োজন নেই এবং আপনি নিজেই কোনও প্রপার্টিতে কোঅর্ডিনেট স্টোর করতে পারবেন। (Ia8657)DelegatableNode.currentLayoutCoordinates-কেModifier.Node-এর বর্তমানLayoutCoordinatesপাওয়ার একটি উপায় হিসেবে চালু করা হয়েছে, এর জন্যonPlacedওভাররাইড করার প্রয়োজন নেই এবং আপনি নিজেই কোনও প্রপার্টিতে কোঅর্ডিনেট স্টোর করতে পারবেন। (Iaebaa)androidx.compose.foundation.text2প্যাকেজের অধীনেBasicTextField2ও সম্পর্কিত APIandroidx.compose.foundation.text-এ সরানো হয়েছে। (I9f635)- এক্সপ্লিসিট মডিফায়ার নোডে কাস্টম অ্যাপ্রোচ লজিক তৈরি করার জন্য নতুন
ApproachLayoutModifierNodeAPI যোগ করা হয়েছে। এছাড়াও, ইনস্ট্যানশিয়েশনের সময় টার্গেট অজানা এমন অ্যানিমেশনের জন্য একটি নতুন পরীক্ষামূলকDeferredTargetAnimationAPI যোগ করা হয়েছে। (I60745) - পাথের দিকনির্দেশ কোয়েরি করতে এবং
Pathথেকে কনট্যুর এক্সট্র্যাক্ট করতে নতুনPathAPI. (I63d04) Path-এ নির্দিষ্ট পয়েন্ট আছে কিনা তা চেক করতেPathHitTestওPath.contains(Offset)যোগ করা হয়েছে। (I3b218)TextLayoutResultএখনgetLineBaseline(lineIndex)পদ্ধতি প্রকাশ করে। এটি আগে থেকেই থাকা কনভেনিয়েন্স প্রপার্টিfirstBaselineওlastBaselineছাড়াও টেক্সটের যেকোনও লাইনের বেসলাইন পড়তে দেয়। (Ide4e8, b/237428541)- শুধুমাত্র দুটি
AnnotatedStrings-এর অ্যানোটেশন তুলনা করার পদ্ধতি যোগ করা হয়েছে। (I32659)
সমস্যার সমাধান
SemanticsPropertyReceiver.performImeActionওSemanticsActions.PerformImeAction-এর সাথে ব্যাকওয়ার্ড কম্প্যাটিবিলিটি সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Id0528, b/322269946)
ভার্সন 1.7.0-alpha02
৭ ফেব্রুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha02-এ এইসব কমিট আছে।
API-তে পরিবর্তন
SemanticsPropertyReceiver.performImeAction-এর সাথে বাইনারি সামঞ্জস্য সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I65865, b/322269946)usePlatformDefaultWidthপ্যারামিটার গ্রহণ করে এমনPopupPropertiesকনস্ট্রাক্টর আর পরীক্ষামূলক নয়। (I8f8d2)- টাইম-আউট মেসেজে অন্তর্ভুক্ত করার জন্য কন্ডিশনের স্ট্রিং বিবরণ নেয় এমন
ComposeTestRule.waitUntil-এর ওভারলোড যোগ করা হয়েছে। (I9413e) - একই মডিফায়ার চেনে যোগ করা সিম্যান্টিক প্রপার্টি সরানোর জন্য নতুন সিম্যান্টিক API
unset()। নতুন সেম্যানটিক প্রপার্টিisOpaque. (I8c583, b/317966058, b/246056649) PointerInputChange-এর পাবলিক API-তে কপি করার পদ্ধতি থেকেoriginalEventPositionসরানো হয়েছে। (I7bead)
সমস্যার সমাধান
- বেছে নেওয়া হলে ট্যাব ও রেডিও বোতাম ছাড়া অন্য আইটেম ক্লিক করা যায় এমন অ্যাক্সেসিবিলিটি সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I2181c)
VelocityTracker-এ এখন ডিফল্ট হিসেবে পয়েন্ট যোগ করার সুবিধা চালু করার সমাধান থাকবে। কোনও সমস্যা হলে,VelocityTrackerAddPointsFix-এর মান false সেট করে, সমাধানটি এখনও বন্ধ করা যেতে পারে। (Ib3877, b/269487059)TextStyleওParagraphStyle-এ বাইনারি ব্যাকওয়ার্ড ইনকমপ্যাটিবিলিটি সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I179f0, b/320819734)
এক্সটার্নাল কন্ট্রিবিউশন
- প্ল্যাটফর্ম-নির্দিষ্ট প্যারামিটার ছাড়া নতুন
DialogPropertiesকনস্ট্রাক্টর যোগ করা হয়েছে। (I45829) - প্ল্যাটফর্ম-নির্দিষ্ট প্যারামিটার ছাড়া নতুন
PopupPropertiesকনস্ট্রাক্টর যোগ করা হয়েছে। (I9a038)
ভার্সন 1.7.0-alpha01
২৪ জানুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.7.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha01-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- ছবি সহ যেকোনও কন্টেন্ট যাতে কাজ করে সেই জন্য
ClipEntryওClipMetadataযোগ করেClipboardManager-এর পরিধি বাড়ানো হয়েছে। ui-test-এDeviceConfigurationOverrideAPI যোগ করে, যাতে উপলভ্য সাইজ, লোকেল, লেআউট ডিরেকশন, ফন্ট স্কেল বা থিমের মতো পরীক্ষা করা কন্টেন্টের আচরণ লোকালি ওভাররাইড করা যায়।
ভার্সন 1.6
ভার্সন 1.6.8
১২ জুন, ২০২৪
androidx.compose.ui:ui-*:1.6.8 রিলিজ করা হয়েছে। 1.6.8 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- সবচেয়ে ছোট টেবিলের থেকে ফন্ট স্কেল ছোট হলে ফন্ট স্কেলিংয়ে হওয়া অসঙ্গতি সমাধান করা হয়েছে। এই ক্ষেত্রে, আমরা এখন লিনিয়ার ১x স্কেল এবং সবচেয়ে কম সংজ্ঞায়িত টেবিলের মধ্যে ইন্টারপোলেট করি, যাতে স্কেল বাড়ার সাথে সাথে ফন্ট সাইজও একভাবে বাড়তে থাকে। (Icbae3)
ভার্সন 1.6.7
১ মে, ২০২৪
androidx.compose.ui:ui-*:1.6.7 রিলিজ করা হয়েছে। ভার্সন 1.6.7-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.6
১৭ এপ্রিল, ২০২৪
androidx.compose.ui:ui-*:1.6.6 রিলিজ করা হয়েছে। ভার্সন 1.6.6-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- বিরল
BasicTextFieldক্র্যাশ সংক্রান্ত সমস্যার সমাধান করে।
ভার্সন 1.6.5
৩ এপ্রিল, ২০২৪
androidx.compose.ui:ui-*:1.6.5 রিলিজ করা হয়েছে। ভার্সন 1.6.5-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.4
২০ মার্চ, ২০২৪
androidx.compose.ui:ui-*:1.6.4 রিলিজ করা হয়েছে। ভার্সন 1.6.4-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.3
৬ মার্চ, ২০২৪
androidx.compose.ui:ui-*:1.6.3 রিলিজ করা হয়েছে। ভার্সন 1.6.3-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.2
২১ ফেব্রুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.6.2 রিলিজ করা হয়েছে। 1.6.2 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.6.1
৭ ফেব্রুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.6.1 রিলিজ করা হয়েছে। 1.6.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
SemanticsPropertyReceiver.performImeActionওSemanticsActions.PerformImeAction-এর সাথে ব্যাকওয়ার্ড কম্প্যাটিবিলিটি সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ie0bb2, b/322269946)- লেআউট এখন পরিমাপ করার সময় সমস্যা দেখায়, যখন কোনও একটি অস্বাভাবিকভাবে বড় সাইজ রিটার্ন করে।
Constraints.Infinityচেক না করেই সরাসরি সর্বাধিক সীমাবদ্ধতা ব্যবহার করলে সাধারণত এই ধরনের সমস্যা হয়। চেক করার ফলে, যে লেআউটে ভুল সাইজ আছে, সেটির পরিবর্তে, যে লেআউটে সেটি আছে, সেটির সমস্যা খুঁজে পেতে ডেভেলপারদের সাহায্য করবে। (I339a9)
ভার্সন 1.6.0
২৪ জানুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.6.0 রিলিজ করা হয়েছে। ভার্সন 1.6.0-এ এই কমিটগুলি রয়েছে।
ভার্সন 1.6.0-rc01
১০ জানুয়ারি, ২০২৪
androidx.compose.ui:ui-*:1.6.0-rc01 রিলিজ করা হয়েছে। 1.6.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অতিরিক্ত রিকম্পোজিশন কমানোর মাধ্যমে পারফর্ম্যান্স উন্নত করতে অপ্টিমাইজ করা ভেক্টর গ্রাফিক্স প্রয়োগ।
ভার্সন 1.6.0-beta03
১৩ ডিসেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-beta03 রিলিজ করা হয়েছে। 1.6.0-beta03 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- নোড বিচ্ছিন্ন না করেই
LayoutCoordinatesবিচ্ছিন্ন করা এখন সম্ভব। কম্পোজ লেআউট ইন্সপেক্টর (If693) ব্যবহার করে এটি প্রতিরোধ করুন
সমস্যার সমাধান
PlatformImeOptionsএখন ইন্টারফেসের পরিবর্তে একটি কনক্রিট ক্লাস। (If40a4)- রুট কম্পোজ করার সময়
LocalSoftwareKeyboardControllerওLocalTextInputService-এর নতুন ভ্যালু প্রদান করার ফলে অতিরিক্ত ডাউনস্ট্রিম রিকম্পোজিশন সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (I42190, b/310510985)
ভার্সন 1.6.0-beta02
২৯ নভেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-beta02 রিলিজ করা হয়েছে। 1.6.0-beta02 ভার্সনে এই কমিটগুলি রয়েছে।
ভার্সন 1.6.0-beta01
১৫ নভেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-beta01 রিলিজ করা হয়েছে। 1.6.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
DragAndDropTargetমডিফায়ার এখন গ্রহণকারীDragAndDropTargetস্পষ্টভাবে নেয় এবং ড্র্যাগ অ্যান্ড ড্রপ সেশনে অপ্ট-ইন করার জন্য ল্যাম্বডা থাকে।DragAndDropModifierNode-এর জন্য এখন দুটি ফ্যাক্টরি ফাংশন আছে। একটি ট্রান্সফার গ্রহণ করার জন্য এবং একটি ডেটা ট্রান্সফার করার জন্য (I69481)maximumFlingVelocity-কে Float হিসেবে দেখানোর জন্য আপডেট করা হয়েছে।maximumFlingVelocityইউনিটি সম্পর্কে আরও স্পষ্ট ধারণা দিতে ডকুমেন্টেশন আপডেট করা হয়েছে। (I8adc7)DragAndDropModifierNodeফ্যাক্টরিতেonDragAndDropStart-এর নাম পরিবর্তন করেacceptDragAndDropTransferকরা হয়েছে।ড্র্যাগ অ্যান্ড ড্রপ সেশন থেকে গ্রহণ করার জন্যdragAndDropTargetমডিফায়ারেacceptsDragAndDropTransferযোগ করা হয়েছে। ড্র্যাগ অ্যান্ড ড্রপ সেশনে আগ্রহী হলে এই ল্যাম্বডা একটি উপযুক্তDragAndDropTargetরিটার্ন করে। ড্র্যাগ ইভেন্ট প্রসেস করার জন্য অন্যান্য ল্যাম্বডা এর মাধ্যমে প্রতিস্থাপন করা হয়েছে। ড্র্যাগ অ্যান্ড ড্রপ সেশন (Iebf3a) থেকে গ্রহণ করার জন্য একটিDragAndDropTargetফ্যাক্টরি ফাংশন যোগ করা হয়েছেDragAndDropInfoসরিয়ে দেওয়া হয়েছে,DragAndDropModifierNode.dragএখনtransferData, সাজসজ্জার সাইজ ও ড্র্যাগ ডেকোরেশনDrawScopeল্যাম্বডার প্যারামিটার নেয়DragAndDropTarget-এ একটিমাত্র অ্যাবস্ট্রাক্ট পদ্ধতির পরিবর্তে নির্দিষ্ট ড্র্যাগ অ্যান্ড ড্রপ ইভেন্টের জন্য পদ্ধতি আছেDragAndDropModifierNode-এর জন্য ফ্যাক্টরি ফাংশনেonDragAndDropEvent-এর নাম পরিবর্তন করেonDragAndDropStartকরা হয়েছে যাতে এটি আরও ভালভাবে বোঝানো যায় যেDragAndDropTargetশুধুমাত্র প্রদত্ত ড্র্যাগ অ্যান্ড ড্রপ সেশনের জন্যই বৈধDragAndDropEventTypeসরিয়ে দেওয়া হয়েছে (I645b1)PlatformTextInputModifierNode.runTextInputSession-এর নাম পরিবর্তন করেestablishTextInputSessionকরা হয়েছে। (I03cd0)আরও সহজে বোঝার জন্য ট্রাভার্স করা যায় এমন নোড API-এর নাম উন্নত করে। (Ia4474)
TextSubstitutionদিয়েOriginalTextপরিবর্তন করুন। (Ifa5a8)PlatformTextInputModifierNode.textInputSession-এর নাম পরিবর্তন করেrunTextInputSessionকরা হয়েছে। (Ie9c6b)SubcomposeLayout-এর চিলড্রেন (এবংLazyColumn-এর মতো লেআউট যা এর উপর ভিত্তি করে তৈরি) যা ভবিষ্যতে আবার ব্যবহার করার জন্য রেখে দেওয়া হয়, সেগুলি ডিঅ্যাক্টিভেট করা হয়েছে বলে ধরে নেওয়া হয়। এই ধরনের নোড পরীক্ষা করার জন্য নতুনassertIsDeactivated()টেস্ট API চালু করা হয়েছে। বাকি টেস্ট API ডিফল্ট হিসেবে বন্ধ করা নোড ফিল্টার করে দেবে। (I2ef84, b/187188981)FocusDirection.InওFocusDirection.Outসরিয়ে দেওয়া হয়েছে, পরিবর্তেFocusDirection.EnterওFocusDirection.Exitব্যবহার করুন (I2f660)Material
SwipeToRevealAPI (কার্ড ও চিপের জন্য) এখন সেইসব স্লট তৈরি করার জন্য ডেটা ক্লাস ভিত্তিক ইনস্ট্যান্সের পরিবর্তে স্লট ভিত্তিক API (Compose-এর সাজেশন অনুযায়ী) ব্যবহার করে। এটি একটি ব্রেকিং পরিবর্তন, নতুন API কীভাবে ব্যবহার করতে হয় তার উদাহরণ দেখতে ডেমো ও স্যাম্পেল কোড দেখুন। (Ia8943)FontStyle(int)কনস্ট্রাক্টর বন্ধ হয়ে গেছে, এর পরিবর্তেFontStyle.NormalবাFontStyle.Italicব্যবহার করুন। (I66610)FontScalableইন্টারফেসের নাম পরিবর্তন করেFontScalingকরা হয়েছে (Ie804a)
সমস্যার সমাধান
SoftwareKeyboardController.show()কোনও টেক্সট এডিটরে ফোকাস করা না থাকলে, সফ্টওয়্যার কীবোর্ড আর দেখাবে না। (I2165a, b/301477279)- একই Compose View-তে Down ইভেন্ট না পাওয়া কীয়ের জন্য হার্ডওয়্যার কী Up ইভেন্ট এখন উপেক্ষা করা হবে। (Ib37b4, b/305518328)
ArcLine-এ সুইপ গ্রেডিয়েন্টের জন্য রেন্ডারার সাপোর্ট যোগ করুন। (I4d5bb)PageSize.Fixed-এর জন্য equals ও hashcode প্রয়োগ করুন। (Ie3ede, b/300134276)- Window Inset পরিবর্তনের সাথে বাইনারি কম্প্যাটিবিলিটি সংক্রান্ত সমস্যার সমাধান করা (Iee695)
- Material3 চিপ/বোতামের জন্য মেটেরিয়াল কোড লেয়ার সরিয়ে দিন কারণ মাইক্রোবেঞ্চমার্ক দেখায় যে এটি ছাড়া পারফর্ম্যান্স আরও ভালো হয়। (I55555)
- কম্পোজ টেস্টে
effectContextহিসেবে পাস করাTestDispatcherএখন টেস্ট ও ফ্রেম ক্লক তৈরি করতে ব্যবহার করা হবে। (Ia7178)
ভার্সন 1.6.0-alpha08
১৮ অক্টোবর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha08 রিলিজ করা হয়েছে। 1.6.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
Modifier.dragAndDrawSource-এরonDrawDragShadowlambda-র নাম পরিবর্তন করেdrawDragDecorationকরা হয়েছে এবংDragAndDropInfo-এর সাইজ প্যারামিটারের নাম পরিবর্তন করেdragDecorationSizeকরা হয়েছে। (Id0e30, b/303904810)- ম্যাচ করা নোড দেখা যাচ্ছে কিনা তা চেক করতে
SemanticsNodeInteraction.isDisplayed()ওSemanticsNodeInteraction.isNotDisplayed()যোগ করুন, তবে সেটির উপর জোর দেবেন না। (I2c196, b/302100809) null-এর পরিবর্তেParagraphTextStyle-এরTextAlign,TextDirection,HyphensওLineBreakফিল্ডের জন্য একটি বিশেষUnspecifiedভ্যালু যোগ করা হয়েছে। এইসব ক্লাস ইনলাইন ক্লাস হওয়ার কারণে, নাল মানকে Unspecified মান দিয়ে পরিবর্তন করার মাধ্যমে আমরা আদিম টাইপ বক্সিং এড়াতে পারি।TextStyleএবং প্যারাগ্রাফ স্টাইলে কনস্ট্রাক্টর, গেটার ও অন্যান্য পদ্ধতি আপডেট করা হয়েছে যাতে উল্লেখ করা প্যারামিটারগুলিকে নন-নাল টাইপ হিসেবে গ্রহণ করা যায়। (I4197e, b/299490814)- XML থেকে
GoogleFontপড়ার জন্যGoogleFontওভারলোড যোগ করুন। (If8f59) LoremIpsumPreviewParameterProviderএকটি ওপেন ক্লাস তৈরি করা হয়েছে। (I41bf5, b/266918816, b/300116360)
সমস্যার সমাধান
FontFamilyResolverএখন ক্যাশে ম্যানেজমেন্ট কোরাউটিনের জন্যDispatchers.Mainব্যবহার করে। (Ie8dd9)AndroidViewBindingএখনFragmentইনস্ট্যান্স সিঙ্ক্রোনাসভাবে সরিয়ে দেয়, যাcommitNowব্যবহার করে (আগে ব্যবহৃতcommit-এর পরিবর্তে)onRelease-এর অংশ হিসেবে আপনার লেআউটেFragmentContainerViewঅন্তর্ভুক্ত করার মাধ্যমে ইনফলেটেড হয়। এর ফলে, পরিবর্তন করার পরে কম্পোজিশন রিপ্লেস করার মাধ্যমে Live Edit-এর পদ্ধতি সংক্রান্ত সমস্যার সমাধান হয়। (I58fbf)
ভার্সন 1.6.0-alpha07
৪ অক্টোবর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha07 রিলিজ করা হয়েছে। 1.6.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- কাস্টম টেক্সট এডিটরের জন্য টেস্ট লেখার
PlatformTextInputMethodTestOverrideচালু করা হয়েছে। (Id159b) - ড্র্যাগ অ্যান্ড ড্রপ সেশন শুরু করার জন্য
dragAndDropSourceমডিফায়ার এবং ড্র্যাগ অ্যান্ড ড্রপ সেশন থেকে পাওয়ার জন্যdragAndDropTargetমডিফায়ার যোগ করে। (Ib7828, b/286038936) - অ্যালোকেশন এড়িয়ে যাওয়া
ColorListওColorSetসংগ্রহ যোগ করা হয়েছে। (I744bd) - নন-লিনিয়ার ফন্ট স্কেলিং বন্ধ করতে
DisableNonLinearFontScalingInComposeঅস্থায়ী ফ্ল্যাগ যোগ করা হয়েছে। পরিষ্কার করার জন্য সময় প্রয়োজন হলে, আপনার পরীক্ষায়DisableNonLinearFontScalingInCompose = trueসেট করুন। Compose 1.6.0-beta01 ভার্সনে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। (Ic9486)
সমস্যার সমাধান
- অপ্টিমাইজ করা XML ভেক্টর ড্রয়েবল পার্সিং। (Ibb015)
ভার্সন 1.6.0-alpha06
২০ সেপ্টেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha06 রিলিজ করা হয়েছে। 1.6.0-alpha06 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- Material আইকনে অতিরিক্ত অপ্টিমাইজেশন। (I3e08d)
- একই ধরনের নোড খুঁজে পেতে মডিফায়ার ট্রি উপরে/নিচে ট্রাভার্স করার ক্ষমতা যোগ করে। (I2d234)
focusRestorer()মডিফায়ারেonRestoreFailed()কলব্যাক যোগ করা হয়েছে (Ie1d43)ColorInt,FloatRange,IntRange,Sizeও আরও অনেক কিছু নির্দিষ্ট করতে বিভিন্ন গ্রাফিক্স API-তে androidx অ্যানোটেশন যোগ করা হয়েছে। (Id65c8, b/290950582)PreviewScreenSizesসংজ্ঞায়showSystemUi=trueযোগ করুন (Ib61d3)
আচরণে পরিবর্তন
- আরও ভালভাবে পড়া ও অ্যাক্সেস করার জন্য Compose এখন নন-লিনিয়ার ফন্ট স্কেলিং ব্যবহার করে। সিস্টেম সেটিংসে ফন্ট স্কেল > ১০০% হলে, ছোট টেক্সটের সাইজ স্বাভাবিকভাবে বাড়বে, কিন্তু আগে থেকেই বড় টেক্সটের সাইজ সামান্যই বাড়বে। এছাড়াও, SP-তে নির্দিষ্ট করা লাইন হাইট অটোমেটিক অ্যাডজাস্ট হয়ে যায় যাতে তা ১০০% স্কেলে প্রত্যাশিত হাইটের সাথে সমানুপাতিক থাকে। আরও তথ্যের জন্য ফন্ট স্কেলিং পেশাদার পদ্ধতি দেখুন। (I11518)
ভার্সন 1.6.0-alpha05
৬ সেপ্টেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha05 রিলিজ করা হয়েছে। 1.6.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
AndroidComposeViewAccessibilityDelegateCompat-এ কন্টেন্ট ক্যাপচার করার সুবিধা চালু করুন। (Ib2969)ScrollViewওRecyclerView-এর মতো ভিউ কম্পোনেন্টে ফ্লিং ভেলোসিটিViewConfiguration.ScaledMaximumFlingVelocity-এ সীমাবদ্ধ থাকে। Compose-এ এখনmaximumFlingVelocity-এর নিজস্ব ভার্সন আছে যা এখনDraggable-এ প্রযোজ্য। (Ibf974)- প্ল্যাটফর্ম ড্র্যাগ অ্যান্ড ড্রপ API-কে সাপোর্ট করার জন্য প্রাথমিক স্ক্যাফোল্ডিং যোগ করে। (If84ce)
RotaryScrollEvent-এdeviceIdযোগ করুন (Iba3bf)- নতুন ডিভাইস (Ib25b4) অন্তর্ভুক্ত করতে
ui-toolingDevices API আপডেট করা হয়েছে
ভার্সন 1.6.0-alpha04
২৩ আগস্ট, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha04 রিলিজ করা হয়েছে। 1.6.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ReusableCompositionডিঅ্যাক্টিভেট করার একটি পদ্ধতি যোগ করা হয়েছে, এর ফলে অবজার্ভেশন সরিয়ে দেওয়া হবে কিন্তু নোডগুলি একই জায়গায় থাকবে।setContentকল করে বন্ধ করা কম্পোজিশন আবার চালু করা যেতে পারে। (Ib7f31)- সাবকম্পোজিশনের লাইফসাইকেল ম্যানেজ করা ও সেগুলি আবার ব্যবহার করার জন্য
ReusableCompositionইন্টারফেস যোগ করুন। (I812d1, b/252846775) Modifier.focusGroup-কে স্টেবল API হিসেবে প্রোমোট করা হয়েছে। (I7ffa3)ColorInt,FloatRange,IntRange,Sizeও আরও অনেক কিছু নির্দিষ্ট করতে বিভিন্ন গ্রাফিক্স API-তে androidx অ্যানোটেশন যোগ করা হয়েছে। (I70487, b/290950582)- প্যারামিটার আরও ভালভাবে পরীক্ষা করার জন্য
ColorFilterAPI আপডেট করা হয়েছে যাতে সাবক্লাস টাইপ নির্দিষ্ট করা যায়। (I5fe29) - UI প্রিভিউয়ের জন্য ব্যবহার করা যেতে পারে এমন সঠিক Wear ডিভাইস তালিকাভুক্ত করতে wear-tooling-preview লাইব্রেরি যোগ করা হয়েছে (Ib036e)
FontScalableইন্টারফেস তৈরি করা হয়েছে যা ডেনসিটি ইন্টারফেসের ফন্ট স্কেলিং অংশ ম্যানেজ করে। (I2cf3f)
ভার্সন 1.6.0-alpha03
৯ আগস্ট, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha03 রিলিজ করা হয়েছে। 1.6.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নতুন ধরনের প্রবেশ/প্রস্থান ট্রানজিশন যা প্রবেশ ও প্রস্থান অ্যানিমেশনের সময় অ্যানিমেটিং কন্টেনারের সাইজের উপর ভিত্তি করে কন্টেন্ট স্কেল করে।
LookaheadScopeকম্পোজ করার উপযুক্ত মজা ও ইন্টারফেস এখন স্টেবল। (Ifb2ce) privateImeOptionsকনফিগার করার জন্য সহায়তা যোগ করা হয়েছে (Idb772)
সমস্যার সমাধান
PopupPositionProvider.calculatePositionএখন গণনাতে রিড করা স্টেট পরিবর্তন করা হলে পপ-আপের পজিশন অটোমেটিক আপডেট করবে। (I676a1, b/292257547)readOnlyসঠিক হলে, কীবোর্ড দেখাচ্ছে এবং এডিট করা যাচ্ছে এমন টেক্সট ফিল্ড সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এছাড়াও, ফোকাস করা অবস্থায়readOnly-এর মান true থেকে false-এ পরিবর্তন করা হলে কীবোর্ড না দেখানোর সমস্যা সমাধান করা হয়েছে। (I34a19, b/246909589)- UI টেস্টিংয়ে গ্লোবাল অ্যাসারশনের প্রয়োগের পরিধি বাড়ানো হয়েছে। (I1f90d)
ভার্সন 1.6.0-alpha02
২৬ জুলাই, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha02 রিলিজ করা হয়েছে। 1.6.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- একটি পরিষেবা লোকেটর ইন্টারফেস যোগ করা হয়েছে যা কম্পোজিশনের প্রয়োগকারীরা প্রয়োগ করতে পারেন। এটি কম্পোজিশনের প্রয়োগের অনুমতি দেয় যা আসল কম্পোজিশনের কাছে অন্য কম্পোজিশন ডেলিগেট পরিষেবা লুক-আপ ডেলিগেট করে। এটি সরাসরি কল করা উচিত নয় এবং রানটাইমে পরীক্ষামূলক API তৈরি করার জন্য ব্যবহৃত হয় যা UI মডিউলের মতো কম্পোজারের র্যাপ করা ভার্সন থেকে পাওয়া যেতে পারে। (I296b9)
- সম্পূর্ণ নতুন ডিজাইন করা
PlatformTextInput*API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardControllerওLocalSoftwareKeyboardControllerআর পরীক্ষামূলক নয়।LocalSoftwareKeyboardControllerএখন একটি উপযুক্তCompositionLocal। (I4c364)LookaheadLayoutওLookaheadLayoutScopeকিছু রিলিজের জন্য বন্ধ করা হয়েছে এবং এখন সরিয়ে দেওয়া হয়েছে। রিপ্লেসমেন্ট API হলLookaheadScopeযা যেকোনও লেআউটের সাথে কাজ করতে পারে। (I12ac3)- পরীক্ষায় ফোকাস করার অনুরোধ জানানোর আরও সুবিধাজনক ও খুঁজে পাওয়ার উপযুক্ত উপায় হিসেবে
SemanticsNodeInteraction.requestFocusযোগ করা হয়েছে। (Ie8722) - ভবিষ্যতে টেস্টিং ফ্রেমওয়ার্কের ব্যবহারের জন্য গ্লোবাল অ্যাসার্শন রেজিস্টার করতে পরীক্ষামূলক API যোগ করুন। (I12d77)
সমস্যার সমাধান
AndroidView'supdateকলব্যাকের প্রথম ইনভোকেশন এখন ভিউ অ্যাটাচ না হওয়া পর্যন্ত ডিফার করা হবে,AndroidViewপ্রয়োগ করা কম্পোজিশন প্রয়োগ করার সময় এটি রান করার পরিবর্তে। এটি এমন একটি সমস্যার সমাধান করে যেখানেupdateকলব্যাক বাতিল করা হত না যদি কোনও এফেক্ট দ্বারা অবিলম্বে এর পড়া একটি স্টেট পরিবর্তন করা হত। (Ie9438, b/291094055)
ভার্সন 1.6.0-alpha01
২১ জুন, ২০২৩
androidx.compose.ui:ui-*:1.6.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.6.0-alpha01-এ এইসব কমিট আছে।
নতুন ফিচার
LazyList-এ লুক-এহেড কাজ করে। এটিLazyList-কে লুকঅ্যাহেড পাসে যেকোনও অ্যানিমেশন (যেমন, আইটেম প্লেসমেন্ট অ্যানিমেশন,AnimatedVisibility, ইত্যাদি) বাইপাস করতে এবং সব চিলড্রেনের জন্য লুকঅ্যাহেড সাইজ ও পজিশন গণনা করতে দেয়। লুকঅহেড পাসের পরে,LazyListবয়সের বাচ্চারা লুকঅহেড পাসে দেখানো বাস্তবতার সাথে সামঞ্জস্য রেখে স্বাধীনভাবে অ্যানিমেট করতে পারে।
আচরণগত পরিবর্তন: Compose-এ includeFontPadding এখন ডিফল্ট হিসেবে false থাকে
কম্পোজে includeFontPadding এখন ডিফল্ট হিসেবে false (21d806) সেট করা থাকে।
includeFontPadding হল একটি লিগ্যাসি অ্যাট্রিবিউট যা টেক্সটের প্রথম ও শেষ লাইনের উপরে অতিরিক্ত প্যাডিং যোগ করা হবে কিনা তা নিয়ন্ত্রণ করে। এটি এমন কোনও অক্ষরকে জায়গা করে দেয় যা টেক্সট বেসলাইনের উপরে বা নিচে প্রসারিত হতে পারে।
এই 'কম্পোজ' ভার্সন আপডেট করলে, আপনার UI-তে সব টেক্সট কীভাবে রেন্ডার করা হয় তা পরিবর্তন করা হবে। এর জন্য, আপনার দেখানো প্রতিটি টেক্সটের প্রথম ও শেষ লাইনের উপরে থাকা অতিরিক্ত প্যাডিং সরিয়ে দেওয়া হবে।
আপনার UI সংক্রান্ত প্রয়োজনীয়তা এবং আপনি যে ফন্ট মেট্রিক্স ব্যবহার করছেন তার উপর নির্ভর করে, পরিবর্তনগুলি ন্যূনতম হওয়া উচিত। তবে, আপনি এগুলির মতো ব্লকার দেখতে পেতে পারেন: - স্ক্রিনশট টেস্ট কাজ করছে না। প্রয়োজন হলে UI সংক্রান্ত সমস্যার সমাধান করুন এবং গোল্ডেন ছবি আবার তৈরি করুন। - টেক্সট সামান্য মিসঅ্যালাইন করা হয়েছে। কাস্টম নেগেটিভ প্যাডিং সরিয়ে দিন অথবা প্রয়োজন হলে প্যাডিং যোগ করুন।
আপনি প্রতিটি টেক্সটের জন্য PlatformTextStyle ব্যবহার করে includeFontPadding-এ অপ্ট-ইন করতে পারবেন:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
আপনার মেটেরিয়াল স্টাইল কনফিগার করে, আপনার সব টেক্সটের জন্য includeFontPadding চালু করতে পারবেন। মনে রাখবেন, M2 ও M3-এর মধ্যে প্যারামিটারের নাম আলাদা আলাদা হবে।
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
আপনি ডেভেলপার ডকুমেন্টেশন ও এই ব্লগ পোস্ট থেকে Compose includeFontPadding সম্পর্কে আরও জানতে পারবেন।
এই পরিবর্তনের সাথে সম্পর্কিত কোনও সমস্যা/বাগ দেখতে পেলে, ইস্যু ট্র্যাকার ব্যবহার করে বাগ ফাইল করুন।
API-তে পরিবর্তন
- সহায়তা
InputConnection#requestCursorUpdates(I0c69b) FocusRequester.saveFocusedChildওFocusRequester.restoreFocusedChildযোগ করা হয়েছে (Ic557e, b/272302679, b/275157318)ResourceResolutionExceptionটাইপ যোগ করুন যাতে লোড করা যায়নি এমন অ্যাসেট পাথের বিবরণ সহ বিটম্যাপ অ্যাসেট লোড করার চেষ্টা করার সময় থ্রোয়েবল র্যাপ করা যায়। (I19f44, b/230166331, b/278424788)- পারফর্ম্যান্স ও মেমরি অ্যালোকেশনের জন্য অপ্টিমাইজ করা অ্যাক্সেসিবিলিটি। (Iede48)
- টেক্সট অনুবাদ করার জন্য শব্দার্থ সংক্রান্ত প্রপার্টি ও অ্যাকশন যোগ করা হয়েছে। (I4a6bc)
IntrinsincMeasureScope-এ নতুন প্রপার্টি ও এর প্রয়োগ (যেমন,MeasureScope) যাতে বোঝা যায় যে বর্তমান পরিমাপ করা পাসটি লুকঅহেড পাস কিনা। (I7a812)DrawScopeAPI আপডেট করা হয়েছে, এর ফলে বিকল্প ডেনসিটি/লেআউট ডিরেকশন ও সাইজ সহ অন্য ক্যানভাসে রেন্ডারিং আবার টার্গেট করার সুবিধা পাওয়া যাবে।- ক্যানভাস কনফিগার করার পাশাপাশি ডেনসিটি ও লেআউট ডিরেকশন কনফিগার করার সুবিধা দিতে
DrawContextআপডেট করা হয়েছে। (Ie1f9b, b/225408150) - অক্ষরের বাউন্ডিং বক্স গণনা করতে
Paragraph#fillBoundingBoxesযোগ করা হয়েছে। (If30ee) - সাধারণ
MultiPreviews-এর (Ia5a27) একটি সেট যোগ করা হয়েছে
সমস্যার সমাধান
- কাস্টম
FocusTargetতৈরি করতে ব্যবহার করা যায় এমনFocusTargetModifierNodeইন্টারফেস যোগ করা হয়েছে। (I9790e) TextMeasurerকনস্ট্রাক্টরেরfallback*প্যারামিটারের নাম পরিবর্তন করেdefault*করা হয়েছে। (I940a5)SemanticsPropertyReceiver.performImeAction-এর নাম পরিবর্তন করেonImeActionএবংSemanticsActions.PerformImeAction-এর নাম পরিবর্তন করেOnImeActionকরা হয়েছে। (I8e841)- নেস্টেড স্ক্রলিংয়ে (বিশেষত,
NestedScrollConnection-এ) মাউস স্ক্রল ও ড্র্যাগ করার মধ্যে পার্থক্য করতে হুইল যোগ করে। (Ie57e4) - রিটার্ন করা অবজেক্ট আসল
android.graphics.Paint(I22b4c) র্যাপ করে বলেtoComposePaint-এর পরিবর্তেasComposePaintAPI যোগ করা হয়েছে SemanticsProperties.imeActionবাতিল করুন এবংSemanticsActions.performImeAction-এর জন্য নতুন প্যারামিটার দিয়ে পরিবর্তন করুন। (I4a587)- মাউসের মাধ্যমে বেছে নেওয়ার সুবিধা যোগ করা হয়েছে। টাচ-ভিত্তিক বেছে নেওয়ার ক্ষেত্রে, একটি শব্দ যোগ করে বেছে নেওয়ার পরিধি বাড়ানো হবে এবং একটি অক্ষর বাদ দিয়ে বেছে নেওয়ার পরিধি কমানো হবে। (Ic0c6c, b/180639271)
Paragraphপদ্ধতি যা আউট-অফ-বাউন্ডস অফসেটের জন্যAssertionErrorথ্রো করত, এখনIllegalArgumentExceptionথ্রো করে কারণMultiParagraphতাই করে। (I549d3, b/243338896)
ভার্সন 1.5
ভার্সন 1.5.4
১৮ অক্টোবর, ২০২৩
androidx.compose.ui:ui-*:1.5.4 রিলিজ করা হয়েছে। 1.5.4 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.5.3
৪ অক্টোবর, ২০২৩
androidx.compose.ui:ui-*:1.5.3 রিলিজ করা হয়েছে। 1.5.3 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- (b/301209788)
TextFieldকখনও কখনও ফোকাস করা এবং কোরিয়ান ইনপুট দেওয়ার সময় ভুলভাবে আগের কমান্ড প্রয়োগ করত, যার ফলে অক্ষর হারিয়ে যেত।
ভার্সন 1.5.2
২৭ সেপ্টেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.5.2 রিলিজ করা হয়েছে। ভার্সন 1.5.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ব্যাকগ্রাউন্ড থ্রেড থেকে অ্যাক্সেসিবিলিটি স্ক্রল API অ্যাক্সেস করা হলে ক্র্যাশ হওয়ার সমস্যা সমাধানের জন্য ওয়ার্কঅ্যারাউন্ড যোগ করা হয়েছে।
- সিমান্টিক ট্রি-তে যোগ করা অ্যাটাচ না করা নোড সংক্রান্ত সমস্যার সমাধান করুন।
ভার্সন 1.5.1
৬ সেপ্টেম্বর, ২০২৩
androidx.compose.ui:ui-*:1.5.1 রিলিজ করা হয়েছে। 1.5.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
readOnlyসঠিক হলে, কীবোর্ড দেখাচ্ছে এবং এডিট করা যাচ্ছে এমন টেক্সট ফিল্ড সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এছাড়াও, ফোকাস করা অবস্থায়readOnly-এর মান true থেকে false-এ পরিবর্তন করা হলে কীবোর্ড না দেখানোর সমস্যা সমাধান করা হয়েছে। (I34a19, b/246909589)
ভার্সন 1.5.0
৯ আগস্ট, ২০২৩
androidx.compose.ui:ui-*:1.5.0 রিলিজ করা হয়েছে। 1.5.0 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.5.0-rc01
২৬ জুলাই, ২০২৩
androidx.compose.ui:ui-*:1.5.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.5.0-rc01-এ এইসব কমিট আছে।
সমস্যার সমাধান
movableContentOf()-এর মধ্যেSubcomposeLayoutব্যবহার করলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে।
ভার্সন 1.5.0-beta03
২৮ জুন, ২০২৩
androidx.compose.ui:ui-*:1.5.0-beta03 রিলিজ করা হয়েছে। 1.5.0-beta03 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
- কাস্টম FocusTarget তৈরি করতে ব্যবহার করা যেতে পারে এমন FocusTargetModifierNode ইন্টারফেস যোগ করা হয়েছে। (Ifb1d6)
- Dialog ও Popup composables-এর একটি সমস্যার সমাধান করা হয়েছে, যার ফলে
usePlatformDefaultWidth=trueব্যবহার করার সময় চাইল্ড উইন্ডো প্রত্যাশিত সাইজে রিসাইজ নাও হতে পারে। (I112ee)
ভার্সন 1.5.0-beta02
৭ জুন, ২০২৩
androidx.compose.ui:ui-*:1.5.0-beta02 রিলিজ করা হয়েছে। 1.5.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- Compose-এ ব্যবহার করার জন্য
android.graphics.Paintইনস্ট্যান্সের ব্যবহার চালু করতেasComposePaintAPI যোগ করা হয়েছে
সমস্যার সমাধান
- রিটার্ন করা অবজেক্ট আসল
android.graphics.Paint(I22b4c) র্যাপ করে বলেtoComposePaint-এর পরিবর্তেasComposePaintAPI যোগ করা হয়েছে
ভার্সন 1.5.0-beta01
২৪ মে, ২০২৩
androidx.compose.ui:ui-*:1.5.0-beta01 রিলিজ করা হয়েছে। 1.5.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- রিকম্পোজিশন, কালার অ্যানিমেশন ও
AndroidComposeView(Ib2bfa) থেকে অ্যালোকেশন সরানো হয়েছে - প্রতিনিধিত্ব করার অনুমতি দিতে (Icf8f9) সাহায্যকারী ফাংশন
CacheDrawModifierNode()যোগ করে isLookingAheadপ্রপার্টি চালু করা হচ্ছে,MeasureScopeথেকে অ্যাক্সেস করা যাবে, এর মাধ্যমে লুক-এহেড ফলাফল দেখা যাবে এবং চাইলে মূল পাসকে প্রভাবিত করা যাবে। (Ibf4c3)- নতুন সিম্যান্টিক্স প্রপার্টি
traversalIndex,TalkBackট্রাভার্সালে নোডগুলির ক্রম পরিবর্তন করতে ব্যবহৃত একটি ফ্লোট (কম মানগুলি আগে আসে)। (I9a81b, b/186443263) - Semantics প্রপার্টির নাম পরিবর্তন করে
isContainerথেকেisTraversalGroupকরা হয়েছে (I121f6) ColorProducer-এর কাছে এখনproduce-এর পরিবর্তেoperator fun invokeআছে (I4a9a2)- পাথ অবজেক্টে ট্রান্সলেশন/স্কেল/রোটেশন ট্রান্সফর্মেশন প্রয়োগ করতে
Pathট্রান্সফর্ম API যোগ করুন। (I23434, b/233772232) ColorProducer-এর পদ্ধতিকেproduceবলা হয়। (I78bde)toFrameworkColorSpace-এর নাম পরিবর্তন করেtoAndroidColorSpaceকরুন (I4f547)ColorLambda-এর নাম পরিবর্তন করেColorProducerকরুন। (I73b1a)- Android ও Compose কালারস্পেসের ধরনের মধ্যে কনভার্ট করার জন্য API নিয়ে আসা। (Ie7db4, b/279979665)
- টেক্সটের রঙ অ্যানিমেট বা সেট করার জন্য
BasicText-এ কালার প্যারামিটার যোগ করা হয়েছে। (Iffd88, b/246961787) TextRange.constrain-এর নাম পরিবর্তন করেTextRange.coerceInকরা হয়েছে। (I31be2)- সম্পূর্ণ প্যারামিটার তালিকা সহ অপ্টিমাইজ করা
TextStyle.merge(...)যোগ করা হয়েছে। (Iad234, b/246961787) Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush)সহ অনেক টেক্সট API স্থিতিশীল করা হয়েছে। (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPaddingআর বন্ধ করা নেই। আমাদের মূল উদ্দেশ্য ছিল ফিল্ডটি সরিয়ে দেওয়া, তবে মতামত থেকে দেখা যাচ্ছে যে ডেভেলপারদের এই কনফিগারেশন বিকল্পের প্রয়োজন। তাই ফিল্ড থেকে ডেপ্রিকেশন সরানো হচ্ছে (I98e96, b/277703184)- পাবলিক
TextRange.constrainপদ্ধতি যোগ করা হয়েছে। (I97912) AnnotatedString-এর মধ্যে থাকাUrlAnnotationএখনTalkBack-এর মতো অ্যাক্সেসিবিলিটি পরিষেবার মাধ্যমে খোলা যেতে পারে। (If4d82, b/253292081)- টেক্সট ফিল্ডের জন্য
InsertTextAtCursorসিম্যান্টিক্স অ্যাকশন যোগ করা হয়েছে। (I11ed5) LineHeightStyle.Alignment(topRatio)কনস্ট্রাক্টরকে স্টেবল API হিসেবে প্রোমোট করা হয়েছে। (I79c32, b/261565383)TextMeasurerও সংশ্লিষ্ট API আর পরীক্ষামূলক নয়। (I74647, b/261581753)- টেক্সট এডিটর নোডে IME অ্যাকশন ইনভোক করতে
PerformImeActionসিম্যান্টিক্স অ্যাকশন যোগ করা হয়েছে। (Ic606f, b/269633506) PlatformTextInputAPI আর Android-এর জন্য পরীক্ষামূলক নয়। (I668eb)Enum.valueOf-এর জন্য ভ্যালু প্যারামিটারের নাম পরিবর্তন করা হয়েছে (Ia9b89)- enum valueOf (I818fe) থেকে আরও বেশি ব্যতিক্রম
PlatformTextInputAdapterকাস্টম টেক্সট ইনপুট ইমপ্লিমেন্টেশন তৈরি করার জন্য নতুন লো-লেভেল API চালু করা হয়েছে যা সরাসরি প্ল্যাটফর্ম API-এর সাথে যোগাযোগ করে। (I58df4)- Canvas-এ টেক্সট ড্র করার সময় বিভিন্ন ব্লেন্ডিং অ্যালগরিদম কাজ করানোর জন্য
DrawScope.drawText,Paragraph.paintওMultiParagraph.paintপদ্ধতিতেBlendModeপ্যারামিটার যোগ করা হয়েছে। (I57508) Font.MaximumAsyncTimeout-এর নাম পরিবর্তন করেFont.MaximumAsyncTimeoutMillisকরুন। শুধুমাত্র নাম পরিবর্তন করুন। (I07af5)@Previewরেফারেন্স ডিভাইসের (Id6151, b/254528382) আপডেট করা DPI ভ্যালুBasicText-এbrush,alphaপ্যারামিটার যোগ করে টেক্সট ব্রাশকে দক্ষতার সাথে অ্যানিমেট বা সেট করার অনুমতি দিন।- :ui:ui-unit-এ Float, Double, Long, Int, Short-এর জন্য বক্স-ফ্রি ল্যাম্বডা টাইপ নির্ধারণ করুন (I6f18d, b/246961787)
সমস্যার সমাধান
- পয়েন্টার ভেলোসিটি ট্র্যাকিংয়ে একাধিক অ্যালোকেশন সরানো হয়েছে (I26bae)
- লেআউট ও পয়েন্টার ইনপুট ম্যানেজমেন্টে কমে যাওয়া অ্যালোকেশন (I5333a)
- ভেক্টর মেমরি ব্যবহার ও ফার্স্ট-ফ্রেম রেন্ডারিং অপ্টিমাইজ করা (I2f3c6)
- Canvas-এর মাধ্যমে লাইন ও পয়েন্ট আঁকার সময় সরিয়ে দেওয়া অ্যালোকেশন (I9f535)
AndroidFont.fontVariationSettings-এর জন্য ডকুমেন্ট যোগ করো (I7d9e2)
এক্সটার্নাল কন্ট্রিবিউশন
- Vector API-তে উন্নত পারফর্ম্যান্স ও কমে যাওয়া অ্যালোকেশন (I906cb)
ভার্সন 1.5.0-alpha04
১০ মে, ২০২৩
androidx.compose.ui:ui-*:1.5.0-alpha04 রিলিজ করা হয়েছে। 1.5.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
Modifier.Nodeডেলিগেশন সংক্রান্ত উন্নতিDelegatingNodeথেকে অন্যান্যModifier.Nodeইনস্ট্যান্সে ডেলিগেট করার উন্নত ক্ষমতা যোগ করা হয়েছে।delegateওundelegateAPI-এর মাধ্যমে এটি করা যেতে পারে। এই পরিবর্তনের আগে, ডেলিগেটিং নোডের প্রতিটি API-কে ডেলিগেটেড নোডে স্পষ্টভাবে ডেলিগেট করতে হত। এই পরিবর্তনের পরে, নোড ইন্টারফেসগুলি পরোক্ষভাবে ডেলিগেট করা হবে, যদি নাDelegatingNodeস্পষ্টভাবে সেগুলি ওভাররাইড করে। (67352bc)
API-তে পরিবর্তন
NestedScrollModifierNode-এর ব্যাপারে জানুন, এটি এমন একটিNestedScroll Modifier.Nodeযাকে দায়িত্ব দেওয়া যায়। (I69513)AndroidViewBindingকম্পোজ করার উপযুক্ত আইটেমেonResetওonReleaseপ্যারামিটার যোগ করা হয়েছে, যাAndroidViewকম্পোজ করার উপযুক্ত আইটেমের মতো কাজ করে এবংViewBinding-এর সাথে ভিউ আবার ব্যবহার করার সুবিধা চালু করে। (I00b1e, b/276802519)- দ্রুত আবার ব্যবহার করার জন্য ঘন ঘন পাথ ম্যানিপুলেশন সংক্রান্ত ব্যবহারের ক্ষেত্রে সহায়তা করতে, রিওয়াইন্ড অপারেশনকে সহায়তা করার জন্য কম্পোজ পাথ API আপডেট করা হয়েছে। (I7b797)
- সম্পূর্ণ প্যারামিটার তালিকা সহ অপ্টিমাইজ করা
TextStyle.merge(...)যোগ করা হয়েছে। (Iad234, b/246961787) Brush,DrawStyle,TextMotion,DrawScope.drawText,Paragraph.paint(Brush),MultiParagraph.paint(Brush)সহ অনেক টেক্সট API স্থিতিশীল করা হয়েছে। (I2f740, b/261581564, b/261581931, b/261561245)PlatformTextStyle.includeFontPaddingআর বন্ধ করা নেই। আমাদের মূল উদ্দেশ্য ছিল ফিল্ডটি সরিয়ে দেওয়া, তবে মতামত থেকে দেখা যাচ্ছে যে ডেভেলপারদের এই কনফিগারেশন বিকল্পের প্রয়োজন। তাই ফিল্ড থেকে ডেপ্রিকেশন সরানো হচ্ছে (I98e96, b/277703184)
সমস্যার সমাধান
Dialogকম্পোজ করার মাধ্যমে তৈরি করা হয়নি এমন ডায়ালগের মধ্যে থাকা টেক্সট ফিল্ডের জন্য কীবোর্ড না দেখানোর রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I82551, b/262140644)
ভার্সন 1.5.0-alpha03
১৯ এপ্রিল, ২০২৩
androidx.compose.ui:ui-*:1.5.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.5.0-alpha03-এ এইসব কমিট রয়েছে।
নতুন ফিচার
LookaheadScope-এSubcomposeLayout-এর নতুন ডিফল্ট আচরণ:SubcomposeLayouts-এ কন্ডিশনাল স্লট (যেমন,TabRow,Scaffold,BoxWithConstraints, ইত্যাদি) না থাকলে, সেগুলি এখন লুকঅহেড অ্যানিমেশনের সাথে ভালভাবে কাজ করে।
API-তে পরিবর্তন
- নতুন ডিফল্ট
intermediateMeasurePolicyযা লুকঅহেড পাস থেকে পরিমাপ নীতি আবার ব্যবহার করে, তাScaffold,TabRowওBoxWithConstraints-এর মতো কন্ডিশনাল স্লট ছাড়াSubcomposeLayoutসাবটাইপকে ডিফল্ট হিসেবে লুকঅহেডের সাথে কাজ করতে দেয়। (Id84c8) - Android উইন্ডোর জন্য তৈরি রিকম্পোজার এখন
ON_STOPবিজ্ঞপ্তি পেলে, সব কম্পোজিশনের পরিবর্তে শুধুমাত্রwithFrameNanos-এ কল ব্লক করবে। এর অর্থ হল, বন্ধ করা অ্যাক্টিভিটির সাথে যুক্ত উইন্ডো ডেটা পরিবর্তনের জন্য আবার কম্পোজ করা চালিয়ে যাবে, কিন্তু অ্যানিমেশন বাwithFrameNanos-এর অন্য কোনও কলার ব্লক হয়ে যাবে। (Id9e7f, b/240975572) - স্টেবল ভার্সনে
motionEventSpyপরিবর্তন। (Ic5ec4, b/261560988) - পাবলিক
TextRange.constrainপদ্ধতি যোগ করা হয়েছে। (I97912) PlatformTextStyle.includeFontPaddingআর অবহেলিত নয়, যাতে ডেভেলপাররা এই কম্প্যাটিবিলিটি API ব্যবহার করেincludeFontPaddingfalse সেটিংয়ে পরিবর্তন করতে ও পরীক্ষা করতে পারেন। (I98e96, b/277703184)
ভার্সন 1.5.0-alpha02
৫ এপ্রিল, ২০২৩
androidx.compose.ui:ui-*:1.5.0-alpha02 রিলিজ করা হয়েছে। 1.5.0-alpha02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- লুক-এহেড-ভিত্তিক অ্যানিমেশন চলাকালীন পরিমাপ/লেআউট লজিক হ্যান্ডেল করার জন্য অতিরিক্ত মধ্যবর্তী ব্যবস্থা সংক্রান্ত নীতি গ্রহণ করে এমন নতুন
SubcomposeLayoutAPI। (I017d3) - PointerInput এখন অলস এবং আরও ভাল পারফর্ম্যান্সের জন্য Modifier.Node ব্যবহার করে (আচরণের সামান্য পরিবর্তন সম্পর্কে পড়ুন)। (15dab9)
- কী ইভেন্টের মাধ্যমে পরীক্ষামূলক API-কে স্থিতিশীল API-তে পরিবর্তন করে। (I9c7d8, b/261566839, b/261567368)
PointerInputChange-এ পরীক্ষামূলক API পরিবর্তন করে স্থিতিশীল করা হয়েছে। (I1b543, b/261560988, b/261565762, b/261565749)- আরও জটিল
Modifier.Nodeপ্রয়োগের জন্যSuspendingPointerInputModifierNodeইনস্ট্যানশিয়েট করার একটি উপায় যোগ করে। (Ic4933) AnnotatedString-এর মধ্যে থাকাUrlAnnotationএখনTalkBack-এর মতো অ্যাক্সেসিবিলিটি পরিষেবার মাধ্যমে খোলা যেতে পারে। (If4d82, b/253292081)- সফ্ট কীবোর্ডে পাঠানোর আগে হার্ডওয়্যার কী ইন্টারসেপ্ট করার জন্য API যোগ করা হয়েছে (I4f4c6, b/186800395)
- টেক্সট ফিল্ডের জন্য
InsertTextAtCursorসিম্যান্টিক্স অ্যাকশন যোগ করা হয়েছে। (I11ed5) - টেক্সট-সম্পর্কিত টেস্ট অ্যাকশন (যেমন,
performTextInput) এখন ফিল্ডে ক্লিক করার পরিবর্তে, সরাসরি ফোকাস করার অনুরোধ করবে, এর জন্য সিম্যান্টিক অ্যাকশন ব্যবহার করা হবে। (I6ed05)
সমস্যার সমাধান
- টেক্সট টেস্ট অ্যাকশনের জন্য এখন টেক্সট ফিল্ড চালু করতে হবে। (Iab328)
ভার্সন 1.5.0-alpha01
২২ মার্চ, ২০২৩
androidx.compose.ui:ui-*:1.5.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.5.0-alpha01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Modifier.intermediateLayout-এর জন্য এখন আর স্পষ্ট LookaheadScope প্রয়োজন হয় না। intermediateLayout-এ measure ব্লকটির রিসিভার হিসেবে IntermediateMeasureScope আছে, যা সুবিধাজনক CoroutineScope, LookaheadScope ও MeasureScope প্রদান করে।(Ibe2e5)
- LookaheadLayout-এর পরিবর্তে LookaheadScope ব্যবহার করা হয়, এটি আর Layout নয়। এর ফলে LookaheadScope-এ থাকা চাইল্ড কন্টেন্টকে সরাসরি অভিভাবকের MeasurePolicy দ্বারা নিয়ন্ত্রণ করা যায়। (Ibe2e5)
- Modifier.Nodes-কে কোরাউটিন লঞ্চ করার অনুমতি দিতে
Modifier.Node#coroutineScopeযোগ করে। (I76ef9) - CompositionLocalConsumerModifierNode ইন্টারফেস প্রয়োগ করে Modifier.Nodes-কে CompositionLocals পড়ার অনুমতি দিন। (Ib44df)
- প্রপার্টিতে @Deprecated ক্লাসের প্রোপাগেশন। (I882d1)
ভার্সন 1.4
ভার্সন 1.4.3
৩ মে, ২০২৩
androidx.compose.ui:ui-*:1.4.3 রিলিজ করা হয়েছে। 1.4.3 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- নির্দিষ্ট কিছু মডিফায়ারের সাথে ব্যবহার করা হলে
AndroidViewসঠিকভাবে লেআউট করা নাও হতে পারে এমন একটি সমস্যার সমাধান করা হয়েছে। (I4dc77, b/274797771) - 2D ফোকাস সার্চে একটি সমস্যার সমাধান করা হয়েছে যা
DropDownমেনুকে (b/276811828) প্রভাবিত করে - কাস্টম ফোকাস এন্টার/এগজিট প্রপার্টিতে একটি বাগ সমাধান করা হয়েছে যা ল্যাম্বডা প্রথমবার ইনভোক করার সময় শুধুমাত্র এন্টার/এগজিট ব্লক রান করত (b/277234245)
- ফোকাস সিস্টেমে একটি রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে যার ফলে
focusPropertiesপড়ার সময় ক্র্যাশ হয়ে যাচ্ছিল। (b/271324781, b/274897776)
ভার্সন 1.4.2
১৯ এপ্রিল, ২০২৩
androidx.compose.ui:ui-*:1.4.2 রিলিজ করা হয়েছে। 1.4.2 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
AndroidView-এর মডিফায়ার সঠিকভাবে আবার ব্যবহার করা যেত না, যার ফলে অপ্রত্যাশিত আচরণ ও ক্র্যাশ হতে পারত, এমন একটি সমস্যার সমাধান করা হয়েছে। (Ib67ee, b/275919849)Dialogকম্পোজ করার উপযুক্ত (I82551, b/262140644) এলিমেন্ট দিয়ে তৈরি করা হয়নি এমন ডায়ালগের মধ্যে থাকা টেক্সট ফিল্ডের জন্য কীবোর্ড দেখাচ্ছিল না, সেই রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে
ভার্সন 1.4.1
৫ এপ্রিল, ২০২৩
androidx.compose.ui:ui-*:1.4.1 রিলিজ করা হয়েছে। 1.4.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
ParentDataModifierAndroidView-কে প্রভাবিত না করা সংক্রান্ত সমস্যার সমাধান করে (b/274797771)
ভার্সন 1.4.0
২২ মার্চ, ২০২৩
androidx.compose.ui:ui-*:1.4.0 রিলিজ করা হয়েছে। 1.4.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.3.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- নতুন
PinnableContainerAPI যোগ করা হয়েছে যা লেজি লিস্ট আইটেমকে পিন করার অনুমতি দেয়, যাতে সেগুলি স্ক্রল করে সীমার বাইরে নিয়ে যাওয়া হলে ডিসপোজ করা না হয়। যেমন,Modifier.focusable()বর্তমানে ফোকাস করা আইটেম পিন করতে এই পদ্ধতি ব্যবহার করে। (Ib8881, b/259274257, b/195049010) - নতুন পরীক্ষামূলক
Modifier.NodeAPI ব্যবহার করে ফোকাস সিস্টেম আবার লেখা হয়েছে। (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - সারফেসে
IsContainerসিম্যান্টিক্স প্রপার্টি যোগ করা হয়েছে। এই প্রপার্টিটি পরে এমন একটি পরিবর্তনে ব্যবহার করা হবে যা সারফেসের মতো এলিমেন্টের শব্দার্থগত অর্থের উপর ভিত্তি করে ট্রাভার্সাল অর্ডার নির্ধারণ করে। (I63379) - নতুন অ্যাক্সেসিবিলিটি ভূমিকা
DropdownListযোগ করা হয়েছে।android.widget.Spinner-এ ফোকাস করার সময়TalkBack-এর আচরণ রেপ্লিকেট করতে এটি ব্যবহার করা যেতে পারে। (I177e5, b/236159001) - আপনি এখন
PlatformTextStyle(emojiSupportMatch)ব্যবহার করে কোনও একটি প্যারাগ্রাফের জন্য ঐচ্ছিকভাবে ইমোজি সংক্রান্ত সহায়তা প্রসেস করা বন্ধ করতে পারবেন। (Ia7100, b/139326806) - Android Compose UI টেস্ট এখন আইডল অবস্থায় পৌঁছানোর জন্য ফ্রেম এক্সিকিউট করার সময় (যেমন,
waitForIdle-এর মাধ্যমে) প্রতিটি ফ্রেমের জন্য লেআউট পাস চালাবে। এটি লেআউট অ্যানিমেশনের আলাদা আলাদা ফ্রেমের উপর অ্যাসার্ট করা টেস্টকে প্রভাবিত করতে পারে। (I8ea08, b/222093277) TextStyle-এ পরীক্ষামূলকTextMotionযোগ করা হয়েছে, যাতে টেক্সটStatic(default)বা অ্যানিমেটেড হিসেবে নির্ধারণ করা যায়। অ্যানিমেশনের মাধ্যমে টেক্সট স্কেল, অনুবাদ বা রোটেট করা হলেTextMotion.Animatedব্যবহার করুন। (I24dd7)
ভার্সন 1.4.0-rc01
৮ মার্চ, ২০২৩
androidx.compose.ui:ui-*:1.4.0-rc01 রিলিজ করা হয়েছে। 1.4.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
AndroidViewকম্পোজ করার উপযুক্ত ফাংশনের ওভারলোড যোগ করা হয়েছে, যাonResetparam গ্রহণ করে। কম্পোজিশনে নোড বাতিল করা হলে এবং মানানসই উপায়ে আবার ব্যবহার করা হলে, এটি View ইনস্ট্যান্সকে আবার ব্যবহার করার অনুমতি দেয়। এটি বিশেষ করে ভিউয়েরLazyRowsওLazyColumns-এর জন্য উপযোগী। (I3f10d, b/230099236)PlatformTextInputAdapterকাস্টম টেক্সট ইনপুট ইমপ্লিমেন্টেশন তৈরি করার জন্য নতুন লো-লেভেল API চালু করা হয়েছে যা সরাসরি প্ল্যাটফর্ম API-এর সাথে যোগাযোগ করে। (I58df4)
সমস্যার সমাধান
BasicTextField-এরSetTextসিম্যান্টিক অ্যাকশন এখন IME আপডেট ও টেস্টিং ফাংশনের (যেমন,performTextReplacement) মতো একই কোড পাথ ব্যবহার করে টেক্সট বাফার আপডেট করবে।- টেক্সট টেস্টিং ফাংশন
performTextClearance,performTextReplacementওperformTextSelectionএখনSemanticsActionsব্যবহার করে। (I0807d, b/269633168, b/269624358)
ভার্সন 1.4.0-beta02
২২ ফেব্রুয়ারি, ২০২৩
androidx.compose.ui:ui-*:1.4.0-beta02 রিলিজ করা হয়েছে। 1.4.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
modifierElementOf()API সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে সরাসরিModifierNodeElementথেকে এক্সটেন্ড করুন। (I2256b)Modifier.Node.onReset()নতুন কলব্যাক যোগ করা হয়েছে যা আপনাকে কিছু লোকাল স্টেট রিসেট করতে দেয় যাতেLayoutআবার ব্যবহার করা হলে (যেমন,LazyColumn-এর আইটেম হিসেবে) তা সঠিকভাবে ম্যানেজ করা যায়। ফোকাস করা স্টেট সঠিকভাবে রিসেট করার জন্যFocusTargetModifierNodeঠিক করা হয়েছে। (I65495, b/265201972)- Canvas-এ টেক্সট ড্র করার সময় বিভিন্ন ব্লেন্ডিং অ্যালগরিদম কাজ করানোর জন্য
DrawScope.drawText,Paragraph.paintওMultiParagraph.paintপদ্ধতিতেBlendModeপ্যারামিটার যোগ করা হয়েছে। (I57508)
সমস্যার সমাধান
- অ্যাক্সেসিবিলিটি ফোকাস অর্ডার অ্যালগরিদম উন্নত করা হয়েছে, যেমন, উপরে/নিচের বারগুলি যথাক্রমে আরও বেশি করে প্রথমে/শেষে পড়া হয় (74e9c5)
ভার্সন 1.4.0-beta01
৮ ফেব্রুয়ারি, ২০২৩
androidx.compose.ui:ui-*:1.4.0-beta01 রিলিজ করা হয়েছে। 1.4.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
PinnableContainer.PinnedHandle.unpin()-এর নাম পরিবর্তন করেrelease()রাখা হয়েছে (I4667a)ComposeTestRule-এ পরীক্ষামূলক API হিসেবেwaitUntilNodeCount,waitUntilAtLeastOneExists,waitUntilExactlyOneExistsওwaitUntilDoesNotExistযোগ করা হয়েছে, এর ফলেwaitUntilAPI-কে আরও উন্নত করা হয়েছে যাতে এটি যেকোনও ম্যাচ করা এবং নোডের যেকোনও সংখ্যা গ্রহণ করতে পারে। আরও ডকুমেন্টেশনের জন্যComposeTestRuleদেখুন। (Ifa1b9, b/226934294)Font.MaximumAsyncTimeout-এর নাম পরিবর্তন করেFont.MaximumAsyncTimeoutMillisকরুন। (I07af5)GoogleFont.Provider.AllFontsListUriসরানো হয়েছে এবং এর পরিবর্তে ktdoc-এ লিঙ্ক করা হয়েছে। (I16f29)
সমস্যার সমাধান
AndroidFont.fontVariationSettings-এর জন্য ডকুমেন্ট যোগ করো (I7d9e2)
ভার্সন 1.4.0-alpha05
২৫ জানুয়ারি, ২০২৩
androidx.compose.ui:ui-*:1.4.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.4.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
runComposeUiTestফাংশন ওcreate*ComposeRuleফাংশনের জন্য নতুন পরীক্ষামূলক ওভারলোড চালু করা হয়েছে যেগুলিCoroutineContextপ্যারামিটার গ্রহণ করে। টেস্ট কম্পোজিশন ও কম্পোজিশনে থাকা যেকোনওLaunchedEffectওrememberCoroutineScope()কলের জন্য প্রসঙ্গ ব্যবহার করা হবে। (I10614, b/265177763)- ১ ডাইমেনশনাল ভেলোসিটি (If5a82) ট্র্যাক করার জন্য নতুন API যোগ করুন
FocusRequesterএখন@Stableহিসেবে চিহ্নিত করা হয়েছে। (I580ee)DialogPropertiesকনস্ট্রাক্টর থেকে পরীক্ষামূলক অ্যানোটেশন সরিয়ে দিন যাusePlatformDefaultWidthপ্যারামিটার নেয়। (Ic4048)- পাথ থেকে দূরত্বে ক্যালকুলেশন পজিশন ও ট্যানজেন্ট যোগ করা হয়েছে -
PathMeasure.getPosition()ওPathMeasure.getTangent()সহ (I3b47c) PlatformParagraphStyle-এ ভুলবশত এক্সপোজ করা পাবলিক সেটার সরিয়ে দেওয়া হয়েছে। (I07f47)- ইনলাইন/পুরনো-লুকানো ফাংশনের আরও বেশি ধরন/নালিবিলিটি (I24f91)
- জিরো-অ্যালোকেশন সহ অ্যানোটেশনের জন্য কোয়েরি করতে
AnnotatedString.hasStringAnnotationsযোগ করুন। (I94dfe, b/246960758) TextMeasurer.measureফাংশনের জন্য নতুন ওভারলোড যোগ করা হয়েছে যা টেক্সট হিসেবেStringনেয়। (I47b2d, b/242705342)- TextStyle-এর
LineBreakওHyphensAPI এখন স্টেবল ভার্সনে উপলভ্য। (Ic1e1d)
এক্সটার্নাল কন্ট্রিবিউশন
TextInputSessionওTextInputService-এরnotifyFocusedRectপদ্ধতি আর অবচিত করা হয়নি। (I23a04, b/262648050)
ভার্সন 1.4.0-alpha04
১১ জানুয়ারি, ২০২৩
androidx.compose.ui:ui-*:1.4.0-alpha04 রিলিজ করা হয়েছে। 1.4.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- নতুন
PinnableContainerAPI যোগ করা হয়েছে যা লেজি লিস্ট আইটেমকে পিন করার অনুমতি দেয়, যাতে সেগুলি স্ক্রল করে সীমার বাইরে নিয়ে যাওয়া হলে ডিসপোজ করা না হয়। যেমন,Modifier.focusable()বর্তমানে ফোকাস করা আইটেম পিন করতে এই পদ্ধতি ব্যবহার করে। (Ib8881, b/259274257, b/195049010) - নতুন পরীক্ষামূলক
Modifier.NodeAPI ব্যবহার করে ফোকাস সিস্টেম আবার লেখা হয়েছে। (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - সারফেসে
IsContainerসিম্যান্টিক্স প্রপার্টি যোগ করা হয়েছে। এই প্রপার্টিটি পরে এমন একটি পরিবর্তনে ব্যবহার করা হবে যা সারফেসের মতো এলিমেন্টের শব্দার্থগত অর্থের উপর ভিত্তি করে ট্রাভার্সাল অর্ডার নির্ধারণ করে। (I63379) - নতুন অ্যাক্সেসিবিলিটি ভূমিকা
DropdownListযোগ করা হয়েছে।TalkBack's-এর আচরণ রেপ্লিকেট করতে এটি ব্যবহার করা যেতে পারে, যখনandroid.widget.Spinner-এ ফোকাস করা হয়। (I177e5, b/236159001) - আপনি এখন
PlatformTextStyle(emojiSupportMatch)ব্যবহার করে কোনও একটি প্যারাগ্রাফের জন্য ঐচ্ছিকভাবে ইমোজি সংক্রান্ত সহায়তা প্রসেস করা বন্ধ করতে পারবেন। (Ia7100, b/139326806) - Android Compose UI টেস্ট এখন আইডল অবস্থায় পৌঁছানোর জন্য ফ্রেম এক্সিকিউট করার সময় (যেমন,
waitForIdle-এর মাধ্যমে) প্রতিটি ফ্রেমের জন্য লেআউট পাস চালাবে। এটি লেআউট অ্যানিমেশনের আলাদা আলাদা ফ্রেমের উপর অ্যাসার্ট করা টেস্টকে প্রভাবিত করতে পারে। (I8ea08, b/222093277) TextStyle-এ পরীক্ষামূলকTextMotionযোগ করা হয়েছে, যাতে টেক্সটStatic(default)বা অ্যানিমেটেড হিসেবে নির্ধারণ করা যায়। অ্যানিমেশনের মাধ্যমে টেক্সট স্কেল, অনুবাদ বা রোটেট করা হলেTextMotion.Animatedব্যবহার করুন। (I24dd7)
API-তে পরিবর্তন
- অন্যান্য
DrawScopeফাংশনের সাথে ইনলাইন হতেdrawText-এmaxSize: IntSizeআর্গুমেন্টটিsize: Sizeদিয়ে পরিবর্তন করা হয়েছে।sizeডিফল্ট হিসেবেSize.Unspecifiedমানে সেট করা থাকে যা আগের ডিফল্ট আচরণ পরিবর্তন করে না। (Icd27d) - পুরনো হয়ে যাওয়া এক্সপেরিমেন্টাল ফন্ট কনস্ট্রাক্টর সরিয়ে দেওয়া হয়েছে। (I8a724, b/261435386)
- ui tooling ডেটা ক্লাসে
Groupএখন একটি ফিল্ড,isInlineআছে যা গ্রুপটি ইনলাইন কম্পোজ করার উপযুক্ত ফাংশনে কল করার জন্য কিনা তা নির্দেশ করে।isInlineযদিtrueহয়, তাহলে কলটি একটি ইনলাইন কম্পোজ করার উপযুক্ত ফাংশনে করা হয়েছে। তবে, ইনলাইন কম্পোজ করার উপযুক্ত ফাংশনের কলের ক্ষেত্রে ভ্যালু মিথ্যা হতে পারে, যেগুলি এমন মডিউল থেকে আসে যেগুলি কম্পোজ কম্পাইলার প্লাগ-ইনের এমন একটি ভার্সনের সাথে কম্পাইল করা হয় যা ইনলাইন ফাংশন সংক্রান্ত তথ্য তৈরি করে না। (Idb846) - আগে পরীক্ষামূলক API হিসেবে থাকা একাধিক API-কে স্টেবল হিসেবে প্রকাশ করা হয়েছে
- 'রোটারি স্ক্রল ইভেন্ট' API এখন স্থিতিশীল (I42ad3, b/261561229)
FontVariationAPI এখন স্থিতিশীল (I8779f, b/241016309)- সব
Font()কনস্ট্রাক্টর এখন স্টেবল API (I5948b, b/261435386) DeviceFontFamilyNameএখন স্থিতিশীল (I8b640, b/261435386)AndroidFontconstructor সহvariationSettingsএখন একটি স্থিতিশীল API এবং এটি ফন্ট ডেসক্রিপ্টরের নতুন ধরন তৈরি করতে ব্যবহার করা যেতে পারে। (I5adcc, b/261565807)createFontFamilyResolverAPI এখন স্টেবল। অ্যাসিঙ্ক ফন্ট লোডিংয়ের সময় আগে বোঝা যায়নি এমন সমস্যা চিহ্নিত করতে এটি ব্যবহার করা যেতে পারে। (Ibb481, b/261435386)Font.loadingStrategyAPI এখন স্টেবল। (I5937c, b/261435386)GoogleFontAPI এখন স্টেবল। (Ic90b0, b/261435386)TextUnit(float, TextUnitType)এখন স্টেবল API. (I90c84, b/261561612)pluralStringResourceএখন স্টেবল API. (I09849, b/261439703)
ভার্সন 1.4.0-alpha03
৭ ডিসেম্বর, ২০২২
androidx.compose.ui:ui-*:1.4.0-alpha03 রিলিজ করা হয়েছে। 1.4.0-alpha03 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
PointerIconথেকেExperimentalComposeUiApiসরানো হচ্ছে (I23af8)- পৃষ্ঠার অ্যাক্সেসিবিলিটি অ্যাকশন সম্পর্কে জানুন:
PageUp,PageDown,PageLeft,PageRight. মনে রাখবেন, এগুলি শুধুমাত্র API 29 থেকে উপলভ্য। (Ida4ab) rememberNestedScrollConnectionপ্যারামিটার ভিউকে রুট ভিউ থেকে হোস্ট ভিউতে আপডেট করা হয়েছে। (Ia5200)- পূর্বপুরুষদের স্ক্রল সংক্রান্ত তথ্য কোয়েরি করার জন্য একটি মডিফায়ার API যোগ করা হয়েছে। (I2ba9d, b/203141462)
Clickable-এ প্রেস ইন্টার্যাকশন সঠিকভাবে ডিলে করতে ব্যবহার করা হয়, যখন জেসচার স্ক্রল ইভেন্ট হয়ে যেতে পারে।Clickables-এর মধ্যে ব্যবহার করা হলে,Scrollable ViewGroupসঠিকভাবে বিলম্বিত না করার সমস্যা সমাধান করা হয়েছে।- জেসচার স্ক্রল ইভেন্ট হয়ে গেলে, প্রেস ডিলে করার জন্য ড্রয়ার ও শিট আপডেট করা হয়েছে।
CompositingStrategy.Always-এর নাম পরিবর্তন করেOffscreenকরা হয়েছে, এর মাধ্যমে বোঝানো হয়েছে যেgraphicsLayerসবসময় একটি মধ্যবর্তী বাফারে (I47dc1) রেন্ডার করা হবে- একাধিক কন্টেন্ট স্লট সহ লেআউট ওভারলোড এখন স্থিতিশীল (I10566, b/248294649)
- টেস্ট আচরণ ও পারফর্ম্যান্স চেক করার জন্য, টেস্টের অংশ হিসেবে Perfetto ট্রেস (এছাড়াও সিস্টেম ট্রেস হিসেবে পরিচিত) ক্যাপচার করতে, এক্সপেরিমেন্টাল নতুন API
PerfettoTrace.record {}ওPerfettoTraceRuleযোগ করা হয়েছে। (I3ba16) - Compose নিয়ম ব্যবহার করে UI টেস্টে,
withFrameNanosকলব্যাকের সময় আবার চালু হওয়া কন্টিনিউয়েশন, সব ফ্রেম কলব্যাক রান করা শেষ না হওয়া পর্যন্ত ডিসপ্যাচ করা হবে না। এটি স্বাভাবিকভাবে চালানোর সময় কম্পোজ করার আচরণের সাথে মেলে। তবে, পুরনো আচরণ নির্ভর পরীক্ষাগুলি কাজ নাও করতে পারে। এটি শুধুমাত্র সেই কোডকে প্রভাবিত করবে যা সরাসরিwithFrameNanosবাwithFrameMillisকল করে এবং সেইসব ফাংশনে পাস করা কলব্যাকের বাইরে লজিক থাকে যা কলব্যাকের মধ্যে সরানোর প্রয়োজন হতে পারে। উদাহরণ হিসেবে এই CL-এ অ্যানিমেশন টেস্টের পরিবর্তন দেখুন। TestMonotonicFrameClockকনস্ট্রাক্টর ও ফ্যাক্টরি ফাংশনে ঐচ্ছিকonPerformTraversals: (Long) -> Unitপ্যারামিটার যোগ করা হয়েছে, যাতেwithFrameNanosকলব্যাকের পরে কিন্তু কলারের কোরাউটিন আবার চালু করার আগে কোড রান করা যায়। (Idb413, b/254115946, b/222093277, b/255802670)- Compose-এ EmojiCompat যোগ করা হয়েছে (Ibf6f9, b/139326806)
- ডায়নামিক কালার কাজ করার জন্য
@Preview-এ নতুন ওয়ালপেপার প্যারামিটার যোগ করা হয়েছে (I9f512)
সমস্যার সমাধান
Recomposerপরিবর্তন প্রয়োগ করা শেষ করার পরে এখন স্ন্যাপশট প্রয়োগ করার বিজ্ঞপ্তি পাঠানো হয়। (Iad6c0, b/222093277)- মাল্টি উইন্ডো স্ক্রিনশট ক্যাপচার করার অনুমতি দিতে
captureToImage-এ পরিবর্তন করা হয়েছে। কম্পোজ পপ-আপ ব্যবহার করে এমন স্ক্রিনশট পরীক্ষার জন্য এটি উপযোগী। (I169c5)
নির্ভরতা সংক্রান্ত আপডেট
- Compose UI ও Compose Material এখন Lifecycle 2.5.1-এর উপর নির্ভর করে। (I05ab0, b/258038814)
ভার্সন 1.4.0-alpha02
৯ নভেম্বর, ২০২২
androidx.compose.ui:ui-*:1.4.0-alpha02 রিলিজ করা হয়েছে। 1.4.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
graphicsLayer-এর বর্তমান সাইজ দেখানোর জন্যGraphicsLayerScopeআপডেট করা হয়েছে।graphicsLayerকম্পোজ করার মতো আইটেমের সাইজের ফাংশন হিসেবে ট্রান্সফর্মেশন গণনা করার জন্য এটি সহায়ক। (If8c43,b/181387080)graphicsLayerকন্টেন্ট রেন্ডার করার জন্য কখন অফস্ক্রিন কম্পোজিটিং লেয়ার ব্যবহার করতে হবে তা নির্ধারণ করতেCompositingStrategyচালু করা হয়েছে। Auto ডিফল্ট আচরণ বজায় রাখে যা ইন্টার্নালি আলফা প্রয়োগ করা হলে বাRenderEffect/Overscrollথাকলে একটি লেয়ারকে লিভারেজ করে। Always সবসময় অফস্ক্রিন বাফার যোগ করবে যেখানেModulateAlphaঅফস্ক্রিন বাফার ব্যবহার করা এড়িয়ে যাবে এবং পরিবর্তেgraphicsLayer-এর মধ্যে রেকর্ড করা প্রতিটি ড্রয়িং নির্দেশাবলী মডুলেট করবে।ModulateAlphaব্যবহার এখনওRenderEffect/Overscrollব্যবহারের জন্য অফস্ক্রিন বাফার ব্যবহার করবে (I25e82, b/256382834)- লেআউট ও ড্রয়িংয়ের জন্য সম্পূর্ণ হায়ারার্কি বাতিল করার অনুমতি দিতে
Modifier.Node-এinvalidateSubtree()যোগ করা হয়েছে। (I4bd90) rememberNestedScrollInteropConnectionথেকে স্টেবল ভার্সনে প্রোমোট করুন।rememberNestedScrollInteropConnection-এ রুট ভিউ পাস করার সুবিধা চালু করা হয়েছে। এটি স্ক্রল করার বিধিনিষেধের ক্ষেত্রে কাস্টম ভিউকে আরও ভালোভাবে প্রতিক্রিয়া জানাতে সাহায্য করতে পারে, বিশেষ করে নন-স্ট্যান্ডার্ড ভিউতে (যেমন,ModalBottomSheetDialog)। (I9e107)ObserverNodeইন্টারফেস যোগ করা হয়েছে যাModifier.Nodeসেইসব ইমপ্লিমেন্টেশন ব্যবহার করতে পারে যেগুলি আগে পড়া কোনও ভ্যালু পরিবর্তন হলে বিজ্ঞপ্তি পেতে চায় (I5728b, b/247716483)Paint-এ একটি নতুন কনস্ট্রাক্টর যোগ করা হয়েছে যা নেটিভandroid.graphics.Paintগ্রহণ করে। এছাড়াও, একটি এক্সটেনশন ফাংশনtoComposePaint()যোগ করা হয়েছে যা আগে থেকে থাকা নেটিভ Paint অবজেক্টকে Compose Paint-এ কনভার্ট করে। (Ica91b)- Android-এ ব্যবহারের জন্য নতুন
FontFamily.Resolver.resolveAsTypefaceযোগ করুন। (I8950b) - Composable-এর ইন্টার্নাল স্টেট পরিবর্তন করার জন্য টুলিংকে অনুমতি দিতে
ToolingStateযোগ করুন (Ie6614) - নতুন যোগ করা অ্যানিমেশনের (I8677b) জন্য আরও ভাল সহায়তা পেতে টুলিং রিফ্যাক্টর করা
- মেটেরিয়াল ও মেটেরিয়াল3 টেক্সটে
minLinesপ্যারামিটার যোগ করা হয়েছে এবংTextFieldওOutlinedTextFieldযা লাইনের সংখ্যার (I4af1d) ভিত্তিতে কম্পোনেন্টের ন্যূনতম উচ্চতা সেট করার অনুমতি দেয়
ভার্সন 1.4.0-alpha01
২৪ অক্টোবর, ২০২২
androidx.compose.ui:ui-*:1.4.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.4.0-alpha01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- জেসচার ডিটেক্টরদের জন্য একটি নতুন পদ্ধতি,
awaitEachGesture(), যোগ করা হয়েছে। এটিforEachGesture()-এর মতো কাজ করে, কিন্তু জেসচার ওভার লুপ সম্পূর্ণভাবেAwaitPointerEventScope-এর মধ্যে কাজ করে, তাই ইটারেশনের মধ্যে ইভেন্ট হারিয়ে যায় না। awaitEachGesture()-এর জন্যforEachGesture()বন্ধ করে দেওয়া হয়েছে কারণ এটি জেসচারের মধ্যে ইভেন্ট হারিয়ে যেতে দেয়। (Iffc3f, b/251260206)- androidx-এ অ্যাক্সেসিবিলিটি অবজেক্টের রিসাইক্লিং বন্ধ করা হচ্ছে। আমরা দেখেছি যে সবচেয়ে পুরনো কাজ করে এমন ভার্সনেও পারফর্ম্যান্সের পরিবর্তন খুবই কম হয়। (I0a961)
- আউটলাইন করা টেক্সট আঁকার সুবিধা চালু করতে
TextStyleওSpanStyle-এ পরীক্ষামূলক অ্যাট্রিবিউট হিসেবেDrawStyleযোগ করা হয়েছে। (If24b8, b/155421273) AnnotatedString.Builderএখনkotlin.text.Appendableপ্রয়োগ করে। (I1a061, b/231030444)AnnotatedString.Builder-এর কাছে এখনAnnotatedString-এর সাবস্ট্রিং এবং ইন্টারসেক্টিং স্টাইল যোগ করার একটিappend(AnnotatedString, start: Int, end: Int)পদ্ধতি আছে।ParagraphওMultiParagraphপেইন্ট ফাংশনেDrawStyleপ্যারামিটার যোগ করা হয়েছে যা আউটলাইন করা টেক্সট আঁকতে সাহায্য করে। (Ic8102, b/155421273)
এক্সটার্নাল কন্ট্রিবিউশন
- প্রিভিউতে টিভি ডিভাইস যোগ করার জন্য
vighnesh-কে ধন্যবাদ (Ie15cd)
ভার্সন 1.3
ভার্সন 1.3.3
১১ জানুয়ারি, ২০২৩
androidx.compose.ui:ui-*:1.3.3 রিলিজ করা হয়েছে। 1.3.3 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- Compose View-এর স্টেট সেভ করার সময় Android 9-এ কখনও কখনও ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (I0b755, b/260322832)
ভার্সন 1.3.2
৭ ডিসেম্বর, ২০২২
androidx.compose.ui:ui-*:1.3.2 রিলিজ করা হয়েছে। 1.3.2 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- Profobuf 3.21.8 ব্যবহার করার জন্য আপডেট করা হয়েছে, যা
protobuf-javalite:3.19.4-এ (CVE-2022-3171) নিরাপত্তা সতর্কতা এড়িয়ে যায় (b/255545055)
ভার্সন 1.3.1
৯ নভেম্বর, ২০২২
androidx.compose.ui:ui-*:1.3.1 রিলিজ করা হয়েছে। 1.3.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.3.0
২৪ অক্টোবর, ২০২২
androidx.compose.ui:ui-*:1.3.0 রিলিজ করা হয়েছে। 1.3.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.2.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- নতুন পরীক্ষামূলক API স্যুট
LookaheadLayout(আগে অসম্ভব ছিল এমন অ্যানিমেশন আচরণ চালু করা) - নতুন এক্সপেরিমেন্টাল API স্যুট
Modifier.Node(Modifier.composed-এর তুলনায় বেশি পারফর্ম্যান্সের বিকল্প) - উইন্ডো ইনসেট সংক্রান্ত উন্নত সহায়তা।
- LazyLists-এ ডি-প্যাড ও হার্ডওয়্যার কীবোর্ডের জন্য ফোকাস সাপোর্ট।
- ডায়ালগ ও পপ-আপে সর্বাধিক কাজ করে এমন এলিভেশন কমিয়ে ৮dp করা হয়েছে (কিছু কাস্টমাইজ করা ডিজাইন সিস্টেমের জন্য আচরণ সংক্রান্ত ব্রেকিং পরিবর্তন – beta01 রিলিজ নোটের মধ্যে যুক্তি)
- অনেক ছোটখাটো, API-তে কোনও সমস্যা সৃষ্টি করে না এমন উন্নতি
- অনেক সমস্যার সমাধান ও পারফর্ম্যান্সের উন্নতি
ভার্সন 1.3.0-rc01
৫ অক্টোবর, ২০২২
androidx.compose.ui:ui-*:1.3.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.3.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- টেক্সটে অটোমেটিক হাইফেন যোগ করার সুবিধা দিতে নতুন পরীক্ষামূলক API হাইফেন যোগ করা হয়েছে (Iaa869)
সমস্যার সমাধান
DeviceFontFamilyNameফন্ট ডিফল্ট হিসেবেwghtওitalভেরিয়েশন সেটিংস কনফিগার করবে না, পরিবর্তে লোড করাTypeface-এর জন্য প্ল্যাটফর্ম সেটিং ব্যবহার করবে। (Ia7a6d, b/246989332)LazyColumnমেমরি লিক সংক্রান্ত সমস্যার সমাধান করা হয়েছে - মডিফায়ার আবার ব্যবহার করা হলেonModifierLocalsUpdatedডিফল্ট ভ্যালু সহ কল করা হচ্ছিল না (b/230168389)
ভার্সন 1.3.0-beta03
২১ সেপ্টেম্বর, ২০২২
androidx.compose.ui:ui-*:1.3.0-beta03 রিলিজ করা হয়েছে। 1.3.0-beta03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- টেক্সটে লাইন ব্রেকিং কাস্টমাইজ করার বিকল্প যোগ করুন। (I86907)
- ন্যূনতম প্রস্থ সংক্রান্ত বিধিনিষেধের ক্ষেত্রে কাজ করার জন্য
TextMeasurer.measureপদ্ধতিতেconstraints: Constraints-এর সাথেsize:IntSizeআর্গুমেন্ট পরিবর্তন করা হয়েছে। (I37530, b/242707525)
সমস্যার সমাধান
- AndroidX Activity-এর
BackHandlerAPI এখনDialogকম্পোজেবলের মধ্যে কাজ করে। (I35342)
ভার্সন 1.3.0-beta02
৭ সেপ্টেম্বর, ২০২২
androidx.compose.ui:ui-*:1.3.0-beta02 রিলিজ করা হয়েছে। 1.3.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- Layout-এর জন্য একটি পরীক্ষামূলক ওভারলোড যোগ করা হয়েছে যা একাধিক কম্পোজ করা যায় এমন কন্টেন্ট ল্যাম্বডার একটি তালিকা গ্রহণ করে, যা বিভিন্ন কন্টেন্ট ল্যাম্বডায় আলাদাভাবে পরিমাপযোগ্য থ্রেড রাখার অনুমতি দেয় (Ic1b4e)
এক্সপেরিমেন্টাল Focus API-তে পরিবর্তন:
FocusDirection.InওFocusDirection.Outবন্ধ করা হয়েছে এবংFocusDirection.EnterওFocusDirection.Exitদিয়ে পরিবর্তন করা হয়েছে। (Ia4262, b/183746982)FocusManager.moveFocus(Enter)ওFocusManager.moveFocus(Exit)-এর জন্য কাস্টম আচরণ নির্দিষ্ট করতে, দুটি নতুন ফোকাস প্রপার্টি enter ও exit যোগ করা হয়েছে। (I5f3f9, b/183746982)- ফোকাস মুভ বাতিল করতে এখন আপনি
FocusRequester.Cancelব্যবহার করতে পারবেন।FocusRequester.Cancelনিম্নলিখিত ফোকাস প্রপার্টির যেকোনও একটিতে ব্যবহার করা যেতে পারে: up, down, left, right, next, previous, start, end, enter এবং exit। (Ib300f)
ভার্সন 1.3.0-beta01
২৪ আগস্ট, ২০২২
androidx.compose.ui:ui-*:1.3.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.3.0-beta01-এ এইসব কমিট আছে।
মডিফায়ার নোড রিফ্যাক্টর
Modifier/Modifier.Element ইনস্ট্যান্স ম্যানেজ করে এবং LayoutNodes-এ তাদের আচরণ কোঅর্ডিনেট করে এমন লেয়ারটি মূলত রিফ্যাক্টর করা হয়েছে। বর্তমানে এটি একটি রিফ্যাক্টর যা Compose-এর অনেক মডিফায়ারের কোনওটিরই পাবলিক API-কে প্রভাবিত করেনি এবং এটি শুধুমাত্র একটি প্রয়োগ-সম্পর্কিত পরিবর্তন হিসেবে দেখা যেতে পারে। তা সত্ত্বেও, বিভিন্ন কারণে এটি একটি গুরুত্বপূর্ণ পরিবর্তন। (Ie4313)
পরিবর্তনের সারসংক্ষেপ
যোগ করা পরীক্ষামূলক Modifier.Node API একটি অ্যাবস্ট্রাকশন প্রদান করে যা লেআউট নোডের লাইফসাইকেল সহ বজায় রাখা হবে এমন একটি ইনস্ট্যান্সে স্টেট বজায় রাখার অনুমতি দেয় এবং এটি সংশ্লিষ্ট Modifier.Element-এর প্রতিটি লেআউট-নোড এবং প্রতি-ব্যবহারের জন্য বরাদ্দ করা হবে যা এটি তৈরি করেছে।
মোটকথা, এই অ্যাবস্ট্রাকশন Modifier.composed API-এর মেকানিক্সের উপর নির্ভর না করেই স্টেটফুল মডিফায়ার তৈরি করার একটি বিকল্প মেকানিজম প্রদান করে।
ঝুঁকি
এই পরিবর্তনটি আগের রিলিজের সাথে কঠোরভাবে বাইনারি মানানসই এবং এটি যতটা সম্ভব ব্যবহারিক ও যুক্তিসঙ্গতভাবে পর্যবেক্ষণযোগ্য আচরণের ক্ষেত্রে ব্যাকওয়ার্ড মানানসই হওয়ার উদ্দেশ্যে করা হয়েছে। তবে, কম্পোজের এমন কিছু সাবসিস্টেম আছে যেগুলিতে এই রিফ্যাক্টর স্পর্শ করেনি এবং সম্ভাব্য যে আচরণ এমনভাবে পরিবর্তিত হয়েছে যা আমাদের পরীক্ষায় কভার করা হয়নি এবং এখনও খুঁজে পাওয়া এবং সমাধান করা হয়নি।
সতর্কতার সাথে এই রিলিজে আপগ্রেড করুন। এর ফলে আপনার কোনও সমস্যা হয়েছে বলে মনে করলে, আমাদের জানান।
পরীক্ষামূলক API
বিভিন্ন পরীক্ষামূলক API যোগ করা হয়েছে, এগুলি সবই "মডিফায়ার নোড" নামক নতুন ধারণার সাথে সম্পর্কিত। এর ফলে Modifier.Node তৈরি হয়
fun modifierElementOf(…): Modifierabstract class ModifierNodeElementabstract class Modifier.Nodeabstract class DelegatingNodeinterface LayoutModifierNodeinterface DrawModifierNodeinterface SemanticsNodeinterface PointerInputNodeinterface ModifierLocalNodeinterface ParentDataModifierNodeinterface LayoutAwareModifierNodeinterface GlobalPositionAwareModifierNodeinterface IntermediateLayoutModifierNode
আচরণ সংক্রান্ত ব্রেকিং পরিবর্তন
ডায়ালগ ও পপ-আপে সর্বাধিক কাজ করে এমন এলিভেশন কমিয়ে ৮dp করা হয়েছে।
Compose ডায়ালগ ও পপ-আপের জন্য অনুমোদিত সর্বাধিক এলিভেশন ৩০dp থেকে কমিয়ে ৮dp করা হয়েছে। এই পরিবর্তন মেটেরিয়াল ও UI কাস্টম ডায়ালগ ও পপ-আপ, দু'টির উপরেই প্রভাব ফেলে। S-এর আগের Android ভার্সনে অ্যাক্সেসিবিলিটি সংক্রান্ত সমস্যা কমানোর জন্য এই পরিবর্তন করা হয়েছে এবং এটি নিশ্চিত করে যে সেইসব উইন্ডোর মধ্যে থাকা অ্যাক্সেসিবিলিটি পরিষেবা ডায়ালগ বা পপ-আপের কন্টেন্টের সাথে ইন্টার্যাক্ট করতে পারবে।
আপনি যদি ৮dp-এর বেশি লেভেলে এলিভেশন সেট করে কাস্টম ডায়ালগ বা পপ-আপ প্রয়োগ করেন, তাহলেই এই পরিবর্তনের কারণে আপনার উপর প্রভাব পড়বে। আপনার ডায়ালগ বা পপ-আপের এলিভেশন কমানোর কথা বিবেচনা করুন। এই নতুন আচরণ থেকে বেরিয়ে আসতে চাইলে, পছন্দমতো এলিভেশন সেট করা আপনার নিজস্ব ডায়ালগ বা পপ-আপ ফর্ক করার কথা বিবেচনা করুন। এটি সাজেস্ট করা হয় না, কারণ এর ফলে অ্যাক্সেসিবিলিটি নেতিবাচকভাবে প্রভাবিত হতে পারে এবং ডায়ালগ বা পপ-আপের নিচের অংশ অ্যাক্সেসিবিলিটি পরিষেবার মাধ্যমে ইন্ট্যার্যাক্ট করা ও পড়া যায় কিনা তা নিশ্চিত করার দায়িত্ব ডেভেলপারের।
API-তে পরিবর্তন
- কনফিগারেশনে পরিবর্তন করা হলে
painterResourceআপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে (I58e73, b/228862715) rememberTextMeasurerআরFontFamily.Resolver,DensityবাLayoutDirectionপ্যারামিটার নেয় না। এইসব প্যারামিটারের জন্য কাস্টম ভ্যালু প্রদান করতে,TextMeasurerকনস্ট্রাক্টর ব্যবহার করুন। (Ia1da3)DialogProperties.decorFitsSystemWindowsপ্রপার্টি যোগ করা হয়েছে যাতে ডায়ালগWindowInsets-এ কাজ করতে পারে। (I57742, b/229378542)- বাইনারি কম্প্যাটিবিলিটি বজায় রাখতে ফন্ট কনস্ট্রাক্টরকে আসল কোটলিন ফাইলে ফিরিয়ে আনা হয়েছে। শেষ স্টেবল রিলিজের পর থেকে কোনও পরিবর্তন হয়নি। (Ieb2f3)
- একাধিক সমান চিহ্নের সংজ্ঞা থেকে অপ্রয়োজনীয় অপারেটর সরিয়ে দেওয়া হয়েছে - এর কোনও প্রভাব নেই। (I6c309)
- ভবিষ্যতে ক্ল্যাম্পিং API-কে অনুমতি দেওয়ার জন্য
FontVariation.Settingহল একটি সিল করা ইন্টারফেস। (I11021, b/143703328) SlotTree.kt-এCompositionGroup.findParametersযোগ করুন। এর ফলে টুল, সম্পূর্ণ স্লট টেবিল পার্স না করেইCompositionGroup-এর প্যারামিটার রিট্রিভ করতে পারে। (I124fe)
ভার্সন 1.3.0-alpha03
১০ আগস্ট, ২০২২
androidx.compose.ui:ui-*:1.3.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.3.0-alpha03-এ এইসব কমিট আছে।
API-তে পরিবর্তন
LayoutCoordinates.findRootCoordinates()এখন সর্বজনীন (I7fa37, b/204723384)PlacementScope-এLayoutCoordinatesপেতে পরীক্ষামূলক API যোগ করা হয়েছে। এর ফলে, ডেভেলপাররা জানতে পারেন যে বর্তমান লেআউটে, সেটির পজিশনের সাপেক্ষে চাইল্ড কোথায় প্লেস করতে হবে। (I5482b, b/238632578)- একটি
LayoutCoordinatesথেকে অন্যটিতে ম্যাট্রিক্স ট্রান্সফর্মেশন পেতেLayoutCoordinates.transformFromযোগ করা হয়েছে। (Ic5ab1, b/238632578) SemanticsModifier.idবাতিল করা হয়েছে এবং এর পরিবর্তেLayoutInfo.semanticsId-এ সিম্যান্টিক্স আইডি সরানো হয়েছে। (Iac808, b/203559524)- রিসোর্স ফন্ট এখন ফন্ট ভেরিয়েশন সেটিংস (API 26+) সেট করা যায়। (I900dd, b/143703328)
DeviceFontFamilyNameFont-এ ভেরিয়েবল ফন্ট কাজ করে (Ic1279, b/143703328)- O+ ডিভাইসে ভেরিয়েবল ফন্ট কনফিগার করার জন্য ফন্ট কনস্ট্রাক্টর এখন
FontVariation.Setting-এর তালিকা গ্রহণ করে। (I11a9d, b/143703328) - ভেরিয়েবল ফন্ট ডিফাইন ও ব্যবহার করার জন্য
FontVariationAPI যোগ করুন। (I3c40c, b/143703328) LineHeightStyle.Alignmentকনস্ট্রাক্টর এখন সর্বজনীন (পরীক্ষামূলক) (I4bbbe, b/235876330)- প্যারাগ্রাফ এখন Android ও ডেস্কটপের জন্য expect|actual ও সংজ্ঞায়িত। (Id387e, b/239962983)
- ইন্টারফেস প্যারাগ্রাফ এখন সিল করা ইন্টারফেস প্যারাগ্রাফ। সাবক্লাসিং প্যারাগ্রাফের কোনও ব্যবহারিক উদাহরণ নেই এবং এই পরিবর্তনের ফলে আপনার উপর প্রভাব পড়লে আমাদের সাথে যোগাযোগ করার জন্য সাজেস্ট করা হয়। (If5247, b/239962983)
PlatformTextStyleওLineHeightStyleথেকে পরীক্ষামূলক অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। (I64bef)TextInputService.show|hideSoftwareKeyboardশীঘ্রই বন্ধ করুন। অ্যাপ কোডেSoftwareKeyboardControllerএবং IME-ম্যানেজমেন্ট কোডেTextInputSessionব্যবহার করুন। (I14e4c, b/183448615)- আগে থেকে থাকা অ্যানিমেশনের ধরনের জন্য নতুন API যোগ করা (I26179)
সমস্যার সমাধান
- SDK 33 ও এর পরের যেকোনও ভার্সনে
POST_NOTIFICATIONSঅনুমতি দেওয়ার প্রয়োজন হয় এমন API-তে@RequiresPermissionযোগ করা হয়েছে। (Ie542e, b/238790278)
ভার্সন 1.3.0-alpha02
২৭ জুলাই, ২০২২
androidx.compose.ui:ui-*:1.3.0-alpha02 রিলিজ করা হয়েছে। 1.3.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- প্রেশার রিট্রিভ করার জন্য নতুন প্রপার্টি
PointerInputChange#pressureযোগ করা হয়েছে। (I45a5e, b/205164819) - কম্পোজিশনে সহজে
rememberTextMeasurerইনস্ট্যান্স তৈরি ও মনে রাখার জন্যTextMeasurerযোগ করা হয়েছে। (I8d66e) Rect,RoundRectওMutableRectএখনcontainsফাংশন কল করার জন্য Kotlininসিনট্যাক্স ব্যবহার করা যায়। (Ie42b0, b/238642990)KeyInjectionScopeথেকে অপ্রয়োজনীয় ফাংশন সরিয়ে দিন, কারণ API-এর আরও সহজ অংশ ব্যবহার করে সেগুলি সহজেই প্রয়োগ করা যায়। সরিয়ে দেওয়া ফাংশনের মধ্যেpressKeys,keysDownওkeysUpঅন্তর্ভুক্ত। (I81d77)KeyInjectionScope-এ রিফ্যাক্টর করা ধ্রুবক ও প্যারামিটারের নামে 'Millis' প্রত্যয় যোগ করা হয়েছে, যেখানে উল্লিখিত ধ্রুবক ও প্যারামিটারের একক হল মিলিসেকেন্ড। (Iabef5)- টেক্সট এডিট করা সংক্রান্ত সমস্যার সমাধান করতে
EditCommand-এtoStringForLog()পদ্ধতি যোগ করা হয়েছে। (I53354, b/228862731) DrawScope-এdrawTextএক্সটেনশন ফাংশন যোগ করা হয়েছে যাতেDrawScope-এর মতোCanvasওdrawBehind-এ কাজ করে এমন কম্পোজ করার উপযুক্ত আইটেম ও মডিফায়ারে একাধিক স্টাইলের টেক্সট ড্র করার একটি উপায় প্রদান করা যায়। (I16a62, b/190787898)TextMeasurerনামের একটি নতুন পরীক্ষামূলক API চালু করা হয়েছে যাBasicText-এর মতো একই ফলাফল তৈরি করে এমন নির্বিচারে টেক্সট লেআউট কম্পিউটেশন চালু করে, যা Compose রানটাইম থেকে স্বাধীন। (I17101)SlotTree.kt-এmapTreeযোগ করুন। এটি টুলকেSlotTreeপরীক্ষা করতে দেয়, যেমন asTree করে, প্রথমে মেমরিতে কপি তৈরি না করেই। লেআউট ইন্সপেক্টরের ক্ষেত্রে এটি পারফর্ম্যান্সের ক্ষেত্রে প্রায় ১০ গুণ উন্নতি ঘটায়। (I5e113)- কম্পোজ প্রিভিউ পরিবর্তন করে বাইনারি আউটপুট ফাইলে স্টোর করা হয়েছে, যাতে ডেভেলপাররা লাইব্রেরি থেকে
MultiPreviewঅ্যানোটেশন লিখতে ও আবার ব্যবহার করতে পারেন। (I85699, b/233511976)
সমস্যার সমাধান
Velocityট্র্যাকারেInputEventChangeইভেন্ট যোগ করার সময় আমরা এখন পজিশনের পরিবর্তে ডেল্টা বিবেচনা করব, এর ফলে টার্গেট এলিমেন্ট সরে গেলেও (Icea9d, b/216582726, b/223440806, b/227709803) সব ক্ষেত্রে ভেলোসিটি সঠিকভাবে গণনা করা যাবে- অ্যানোটেশন থাকলে
AnnotatedString.toUpperCase-এর কারণে হওয়া NPE সংক্রান্ত সমস্যার সমাধান করুন। (I0aca2, b/210899140)
ভার্সন 1.3.0-alpha01
২৯ জুন, ২০২২
androidx.compose.ui:ui-*:1.3.0-alpha01 রিলিজ করা হয়েছে। 1.3.0-alpha01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- নতুন
LookaheadLayoutযা আসল পরিমাপ/লেআউটের আগে লুকঅহেড পাস সমর্থন করে। এটি লেআউট পরিবর্তন হলে তা আগে থেকে গণনা করার অনুমতি দেয়, পাশাপাশি টার্গেটের দিকে সাইজ ও পজিশন অ্যানিমেট করার জন্য আগে থেকে গণনা করা সাইজ/পজিশন ব্যবহার করতে পোস্ট-লুকঅহেড পরিমাপ/লেআউটকে অনুমতি দেয়।SubcomposeLayoutsএখনও কাজ করে না, তবে আসন্ন রিলিজে এটি কাজ করবে। (I477f5) - সম্পূর্ণ
Text-এর অস্বচ্ছতা পরিবর্তন করতেTextStyleওSpanStyle-এর ব্রাশ ফ্লেভারে ঐচ্ছিক আলফা প্যারামিটার যোগ করুন। (Ic2fac, b/234117635) UrlAnnotationঅ্যানোটেশন টাইপ এবংAnnotatedString-এTalkBackলিঙ্ক সংক্রান্ত সহায়তা প্রদান করার জন্য সংশ্লিষ্ট পদ্ধতি চালু করা হয়েছে। (I1c754, b/231495122)- ইউটিলিটি ফাংশনালিটি রানটাইমে সরানো (I4f729)
সমস্যার সমাধান
TextLayoutResult.getLineForOffsetছুঁড়তে পারে না। (Idc5d6, b/235876324)
এক্সটার্নাল কন্ট্রিবিউশন
- কম্পোজ করা যায় এমন ফাংশনের মধ্যে বা snapshotFlow-এর মাধ্যমে এর স্টেট পর্যবেক্ষণ করতে একটি নতুন API
WindowInfo.keyboardModifiersযোগ করা হয়েছে (Icdb8a)
ভার্সন 1.2
ভার্সন 1.2.1
১০ আগস্ট, ২০২২
androidx.compose.ui:ui-*:1.2.1 রিলিজ করা হয়েছে। 1.2.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ইন্সপেক্টরে nullpointer সংক্রান্ত সমস্যার সমাধান করা হয়েছে (b/237987764)
- ইনস্পেক্টরে মনে রাখার সময় ক্লাস কাস্ট ব্যতিক্রম সংক্রান্ত সমস্যার সমাধান করা হয়েছে (b/235526153)
ভার্সন 1.2.0
২৭ জুলাই, ২০২২
androidx.compose.ui:ui-*:1.2.0 রিলিজ করা হয়েছে। 1.2.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.1.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
ফোকাস ট্রাভার্সালে উন্নতি:
- নতুন
BeyondBoundsLayoutকোর API ব্যবহার করে, লেজি লিস্টের ফোকাস-পরিচালিত-স্ক্রলিং এখন কাজ করে FocusOrderওFocusProperties-এ নতুন আচরণ কাস্টমাইজেশন API- ফিজিক্যাল কীবোর্ড বা টিভি রিমোটের সাথে উন্নত আচরণ
- নতুন
এগুলির জন্য নতুন API:
- উইন্ডো ইনসেট
- জেসচার-পরিচালিত, অসীম ও লেআউট অ্যানিমেশনের জন্য মূল প্রিমিটিভ
RenderEffectসহGraphicsLayerক্ষমতা
অনেক সমস্যার সমাধান ও পারফর্ম্যান্সের উন্নতি
ভার্সন 1.2.0-rc03
২৯ জুন, ২০২২
androidx.compose.ui:ui-*:1.2.0-rc03 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc03-এ এইসব কমিট রয়েছে।
- 1.2.0-rc02 ভার্সনের পর থেকে কোনও পরিবর্তন করা হয়নি।
ভার্সন 1.2.0-rc02
২২ জুন, ২০২২
androidx.compose.ui:ui-*:1.2.0-rc02 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc02-এ এইসব কমিট রয়েছে।
ভার্সন 1.2.0-rc01
১৫ জুন, ২০২২
androidx.compose.ui:ui-*:1.2.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Compose লাইব্রেরির ইন্টারফেস এখন jdk8 ডিফল্ট ইন্টারফেস পদ্ধতি ব্যবহার করে তৈরি করা হয় (I5bcf1)
- অন্যান্য কী প্রেস করে ধরে রাখা বা টগল করা অবস্থায় কী প্রেস ইনজেক্ট করার জন্য
KeyInjectionScope-এ উচ্চ-ক্রমের ফাংশন যোগ করা হয়েছে। এইসব ফাংশনের মধ্যেwithKeysDown,withKeysToggledইত্যাদি অন্তর্ভুক্ত। এছাড়াও, কোনও নির্দিষ্ট মেটা কী প্রেস করা আছে কিনা তা চেক করার জন্য প্রপার্টি যোগ করা হয়েছে, যেমন,isCtrlDownকন্ট্রোল কী প্রেস করা আছে কিনা তা চেক করে। প্রতিটি ফাংশনের ডকুমেন্টেশনের জন্যKeyInjectionScopeদেখুন। (I9f6cd, b/229831515) Modifier.scrollableওভারলোড সহ কাস্টম ওভারস্ক্রল এফেক্টের অনুমতি দেওয়ার জন্য একটি পরীক্ষামূলকOverscrollEffectচালু করা হয়েছে যা এটি গ্রহণ করে।- পরীক্ষামূলক
LocalOverScrollConfiguration-কেfoundation.gestureথেকে সরিয়ে ফাউন্ডেশন প্যাকেজে যোগ করা হয়েছে এবং এর নাম পরিবর্তন করেLocalOverscrollConfigurationরাখা হয়েছে (If19fb, b/204650733) runComposeUiTestWithoutActivity {}-এর নাম পরিবর্তন করেrunEmptyComposeUiTest {}করুন, যা এটিকেcreateEmptyComposeRule()-এর সাথে অ্যালাইন করে (I6fed7)
ভার্সন 1.2.0-beta03
১ জুন, ২০২২
androidx.compose.ui:ui-*:1.2.0-beta03 রিলিজ করা হয়েছে। 1.2.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
KeyInjectionScope-এpressKeyTimes,isCapsLockOnও বন্ধুদের যোগ করা হয়েছে। এছাড়াও, API এখন মাউস ও কীবোর্ড মিলিয়ে ইনজেকশন প্যাটার্ন সাপোর্ট করে, যেমন মেটা কী হোল্ড করে মাউস বোতামে ক্লিক করা। (I4c8da, b/229831515)- কী ইভেন্ট ইনজেক্ট করার জন্য পরীক্ষামূলক সহায়তা যোগ করা হয়েছে। কী ইভেন্ট পাঠাতে
performKeyInputব্যবহার করুন অথবাperformMultiModalInput-এর মাধ্যমে মাল্টি-মোডাল ইনপুট জেসচার চলাকালীনMultiModalInjectionScope-এরkeyপ্রপার্টির মাধ্যমে সেগুলি পাঠান। API-এর ডকুমেন্টেশনের জন্যKeyInjectionScopeদেখুন। (Ic5000, b/229831515) - Android-এ কাজ করে এমন Google Fonts-এর ক্যাননিকাল ইন্টারনেট সোর্স রিট্রিভ করার জন্য নতুন
GoogleFont.Provider.AllFontsListUriযোগ করুন। - কম্পোজ করার সময় GoogleFonts লোড না হলে, আবার দেখানো সমস্যার মেসেজ উন্নত করুন। (I0416c)
সমস্যার সমাধান
- Velocity Tracker-এ
InputEventChangeইভেন্ট যোগ করার সময় আমরা পজিশনের পরিবর্তে ডেল্টা বিবেচনা করব, এর ফলে টার্গেট এলিমেন্ট সরে গেলেও (I51ec3, b/216582726, b/223440806, b/227709803) সব ক্ষেত্রে ভেলোসিটি সঠিকভাবে গণনা করা যাবে - দ্রুত সেটিংস টাইল থেকে টগল করার সাথে সাথেই কম্পোজেবল আইটেমের জন্য
Show Layout Boundsসেটিং প্রয়োগ করা হবে, এর জন্য অ্যাক্টিভিটি ছেড়ে বেরিয়ে এসে আবার প্রবেশ করতে হবে না। (I843d5, b/225937688) - অ্যাক্সেসিবিলিটি স্ট্রিং লুক-আপ ফন্ট লোডিং ট্রিগার করে না। আগে, এটি
StyleSpans-এর জন্য ফন্ট লোড করার চেষ্টা করত, যাFontFamily.Resolverওভাররাইট করা হলে ক্র্যাশ হয়ে যেত। (I4609d) - কার্সর টেক্সট ফিল্ডের শেষে থাকলে, 'ফরোয়ার্ড ডিলিট' কী প্রেস করলে আর ক্র্যাশ হবে না।
DeleteSurroundingTextCommandওDeleteSurroundingTextInCodePointsCommand-এর কনস্ট্রাক্টর আর্গুমেন্ট এখন নেগেটিভ নয় এমন পূর্ণসংখ্যা হতে হবে। (Ica8e6, b/199919707)
ভার্সন 1.2.0-beta02
১৮ মে, ২০২২
androidx.compose.ui:ui-*:1.2.0-beta02 রিলিজ করা হয়েছে। 1.2.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- অন্যান্য প্রিভিউয়ের ধরনে ফাংশনালিটি আবার ব্যবহার করা (I19f39)
সমস্যার সমাধান
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer-এর নাম পরিবর্তন করেDisposeOnDetachedFromWindowOrReleasedFromPoolকরা হয়েছে যাতে ডিসপোজাল কখন হয় তা আরও ভালোভাবে বোঝা যায়, শুধু কখন হয় না তা নয়। (If15ca)
ভার্সন 1.2.0-beta01
১১ মে, ২০২২
androidx.compose.ui:ui-*:1.2.0-beta01 রিলিজ করা হয়েছে। 1.2.0-beta01 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- এটি হল 1.2-এর প্রথম বিটা রিলিজ!
API-তে পরিবর্তন
- পরীক্ষামূলক
BeyondBoundsIntervalযোগ করা হয়েছে যাLazyList-এর কাস্টম প্রয়োগের মাধ্যমে ব্যবহার করা যেতে পারে যখন সেগুলি দৃশ্যমান সীমার বাইরে আইটেম লেআউট করে (Ifabfb, b/184670295) Modifier.composed-এর কীড ভার্সন এখন স্টেবল API (Ie65e4, b/229988420)- বর্তমান ভিউ সংক্রান্ত তথ্য (I67ca7) পাওয়ার জন্য কম্পোজিশন লোকাল ব্যবহার করতে
rememberNestedScrollConnectionAPI-কে আরও সহজ করা হয়েছে @ComposableTargetঅ্যানোটেশন এবং@ComposableTargetMarker-এর মাধ্যমে চিহ্নিত অ্যানোটেশন এখন@fileপ্রিফিক্স ব্যবহার করে ফাইল স্কোপে ব্যবহার করা যেতে পারে। ফাইল স্কোপে টার্গেট অ্যানোটেশন ব্যবহার করলে, কম্পাইলার ধরে নেবে যে ফাইলের সব কম্পোজ করার উপযুক্ত ফাংশন সংশ্লিষ্ট অ্যাপ্লায়ারকে টার্গেট করার জন্য তৈরি করা হয়েছে। যেমন,@file:UiComposableব্যবহার করে ঘোষণা করা হয় যে সব@Composableফাংশন কম্পোজ UI অ্যাপ্লায়ারকে টার্গেট করে। যে ফাংশনকে অন্য কোনও অ্যাপ্লায়ারকে টার্গেট করতে হবে, সেটিকে অবশ্যই কাঙ্ক্ষিত অ্যাপ্লায়ারের জন্য টার্গেট মার্কার অ্যানোটেশন প্রদান করতে হবে। (I40804)নতুন পরীক্ষামূলক, প্ল্যাটফর্ম ইন্ডিপেন্ডেন্ট, টেস্ট API চালু করা হয়েছে:
interface ComposeUiTestএবংfun runComposeUiTest(block: ComposeUiTest.() -> Unit), যাTestRule-এর প্রয়োজন ছাড়াই Compose UI টেস্ট রান করতে ব্যবহার করা যেতে পারে।ComposeTestRuleছাড়া কোনও টেস্ট রান করতে,runComposeUiTest-এ ল্যাম্বডা হিসেবে টেস্টটি পাস করুন এবং রিসিভার স্কোপেComposeUiTestমেথড ও মেম্বার ব্যবহার করুন, যেগুলিComposeContentTestRule-এর মতো একই।Android-এর জন্য নির্দিষ্ট
interface AndroidComposeUiTestওfun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)-কেAndroidComposeTestRule-এর মতো অন্তর্নিহিত অ্যাক্টিভিটিতে অ্যাক্সেস দেওয়ার জন্য যোগ করা হয়েছে। আরও বেশি নিয়ন্ত্রণের জন্য, আপনি নিজেইclass AndroidComposeUiTestEnvironmentইনস্ট্যানশিয়েট করতে পারবেন।ডেস্কটপ ইমপ্লিমেন্টেশন হল
class DesktopComposeUiTest, কিন্তু এই মুহূর্তে ডেস্কটপ নির্দিষ্ট রান ফাংশন অফার করা হয় না।ComposeTestRuleথেকেComposeUiTest-এ কোনও টেস্ট মাইগ্রেট করার কাজটি এইভাবে করা যেতে পারে (Android-এর উদাহরণ)। প্রেরক:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }প্রাপক:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }এই মুহূর্তে,
ComposeContentTestRuleওComposeTestRule,ComposeUiTestথেকে এক্সটেন্ড করে না, এর অর্থ হলComposeUiTest-এর এক্সটেনশন ফাংশন এখনওTestRuleইন্টারফেসে কল করা যাবে না।ComposeUiTestAPI স্টেবল ভার্সনে আপগ্রেড করা হলে,ComposeContentTestRuleওComposeTestRule-এর এক্সটেনশন পরিবর্তন করেComposeUiTestকরা হবে। (Ib4e90)LineHeightBehavior-এর নাম পরিবর্তন করেLineHeightStyleকরা হয়েছেLineVerticalAlignment-এর নাম পরিবর্তন করেLineHeightStyle.Alignmentকরা হয়েছেLineHeightTrim-এর নাম পরিবর্তন করেLineHeightStyle.Trimকরা হয়েছেLineHeightStyleথেকে ডিফল্ট কনস্ট্রাক্টর ভ্যালু সরিয়ে দেওয়া হয়েছে (I582bf, b/181155707)গ্রেডিয়েন্ট কালারিংয়ের মাধ্যমে টেক্সট ড্র করার একটি উপায় প্রদান করতে
TextStyle-এBrushএবংSpanStyleযোগ করা হয়েছে। (I53869, b/187839528)trimFirstLineTop,trimLastLineBottomঅ্যাট্রিবিউটLineHeightBehaviorএকটি এনামে পরিবর্তন করা হয়েছে:LineHeightTrim.LineHeightTrim-এর মান হল দুটি বুলিয়ান দ্বারা নির্ধারিত ৪টি স্টেট:FirstLineTop,LastLineBottom, দুটিই এবং একটিও নয় (Ifc6a5, b/181155707)TextStyleওParagraphStyle-এLineHeightBehavior-কে যোগ করেছেন।LineHeightBehaviorকন্ট্রোল করে যে প্রথম লাইনের উপরে এবং শেষ লাইনের নিচে লাইন হাইট প্রয়োগ করা হবে কিনা। এছাড়াও, এটিTextStyle(lineHeight)-এর দেওয়া স্পেসে লাইনের অ্যালাইনমেন্ট নির্ধারণ করে।যেমন,
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)-এর মাধ্যমে CSS দ্বারা নির্ধারিত আচরণের মতো আচরণ পাওয়া সম্ভব।trimFirstLineTop,trimLastLineBottomকনফিগারেশন শুধুমাত্র তখনই সঠিকভাবে কাজ করে যখনincludeFontPaddingfalse হয়। (I97332, b/181155707)PlatformParagraphStyle.lerpওPlatformSpanStyle.lerpফাংশন পরিবর্তন করে টপ লেভেল ফাংশন (I9a268) করা হয়েছে
সমস্যার সমাধান
PointerInputChange::copyডকুমেন্টেশনে এখন সঠিকভাবে বলা হয়েছে যে এটি একটি শ্যালো কপি। (I182f5)- উচ্চতা সীমিত হলে এবং সব টেক্সট লাইন না ফিট করলে এলিপসিস কাজ করে (Ie528c, b/168720622)
- ডিফল্ট
includeFontPaddingচালু করা হয়েছে।TextStyle.platformTextStyleঅ্যাট্রিবিউট ব্যবহার করেincludeFontPaddingবন্ধ করা সম্ভব। আমরা অদূর ভবিষ্যতে ডিফল্ট আচরণ পরিবর্তন করব, তবে সেই সময় পর্যন্ত এটি আমাদের লাইন হাইট সংক্রান্ত উন্নতি (aosp/2058653) আরও ভালোভাবে ইন্টিগ্রেট করতে এবংTextFieldক্লিপিং সংক্রান্ত সমস্যা সমাধান করতে সাহায্য করবে। (I01423, b/171394808)
এক্সটার্নাল কন্ট্রিবিউশন
- উল্লম্বভাবে স্ক্রল করলে
MouseInjectionScope.scroll(delta = someDelta)এখন Android-এ উল্টে যায় (someDelta পজিটিভ হলে, এটি নিচের দিকে স্ক্রল করবে) (Ifb697, b/224992993)
ভার্সন 1.2.0-alpha08
২০ এপ্রিল, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha08 রিলিজ করা হয়েছে। 1.2.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ভবিষ্যতে আরও ভালোভাবে আন্তর্জাতিকীকরণকে সমর্থন করার জন্য
pluralStringResourceফাংশনগুলিকে পরীক্ষামূলক হিসেবে চিহ্নিত করা হয়েছে। (If24e4) - Paragraph ও MultiParagraph এখন Constraints প্যারামিটার গ্রহণ করছে।
Constraints.maxHeightপাস করা বর্তমানে কোনও কাজ করে না, তবে ভবিষ্যতে কিছু গণনা করার অনুমতি দেবে, যেমন উচ্চতার উপর ভিত্তি করে এলিপ্সিস করা। (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()এখন কাস্টম MutableSet-এর মতো ক্লাস গ্রহণ করে যা এতে নতুন আইটেম যোগ করার অনুমতি দেয় না। (Icd314)- PointerIcon এখন একটি
@Stableইন্টারফেস (I9dafe) PointerInputChange-এ আংশিক কনজাম্পশন (নিচে অথবা পজিশন) বন্ধ করা হয়েছে। পরিবর্তন সম্পূর্ণভাবে প্রয়োগ করতে আপনিconsume()ব্যবহার করতে পারেন। অন্য কেউ আগে পরিবর্তনটি ব্যবহার করেছেন কিনা তা নির্ধারণ করতে আপনিisConsumedব্যবহার করতে পারেন।PointerInputChange::copy()এখন সবসময় একটি অগভীর কপি তৈরি করে। এর অর্থ হল,PointerInputChange-এর একটি কপি ব্যবহার করা হয়ে গেলে, কপিগুলি ব্যবহার করা হয়ে যাবে। আপনি আনবাউন্ডPointerInputChangeতৈরি করতে চাইলে, পরিবর্তে কনস্ট্রাক্টর ব্যবহার করুন। (Ie6be4, b/225669674)- Compose ও View-এর মধ্যে Compose > View ডিরেকশনে নেস্টেড স্ক্রল ইন্টারঅপারেশন চালু করুন। এর অর্থ হল, একটি কম্পোজ প্যারেন্ট নেস্টেড স্ক্রল ভিউ থেকে নেস্টেড স্ক্রল ডেল্টা পেতে পারবে। (If7949, b/174348612)
- নতুন
SemanticsProperty testTagsAsResourceId, যা View সিস্টেমের জন্য ডিজাইন করা UIAutomator টেস্টের সাথে কম্পোজকে কনফর্ম করতে ব্যবহার করা যেতে পারে। (I39c20) FontFamily.SansSerifব্যবহার করার সময় Android-এ সিস্টেম ফন্টের জন্য উপলভ্য সবকটি ওজন দেখান। এটি API 21-28-এ ইন্টার্নালি sans-serif-medium-এর মতো ফলব্যাক ফন্টের নাম ব্যবহার করবে। এটি একটি আচরণগত পরিবর্তন কারণ এর আগে API 21-28-এ শুধুমাত্র 400 এবং 700 ওয়েট কাজ করত। (I380fe, b/156048036, b/226441992)- প্যারাগ্রাফ ও মাল্টিপ্যারাগ্রাফ ইনস্ট্রাক্টররা পজিশনাল আর্গুমেন্টকে ঐচ্ছিক আর্গুমেন্টের আগে আবার সাজিয়েছেন। (Idafaa)
AndroidFontএখন কনস্ট্রাক্টর প্যারামিটার হিসেবে typefaceLoader নেয়। (I2c971)
ভার্সন 1.2.0-alpha07
৬ এপ্রিল, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha07 রিলিজ করা হয়েছে। 1.2.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নতুন ফাংশন
Snapshot.withoutReadObservation { ... }যোগ করা হয়েছে। এটি ব্যবহারকারীকে এই ব্লকের সময় পড়া স্টেট ভ্যালুর পরিবর্তন সাবস্ক্রাইব না করেই পাস করা ল্যাম্বডা চালানোর অনুমতি দেয়। স্ন্যাপশট ভিত্তিক থ্রেড সেফ রাইট/রিড থেকে সুবিধা পেতে চাইলে, কিন্তু অপ্রয়োজনীয় রিকম্পোজিশন বা রিমজার না করেই ভ্যালু রিড করতে চাইলে, এই ফিচারটি আপনার কাজে লাগতে পারে। (I9f365, b/214054486) ComposeView-এরconsumeWindowInsetsএক্সটেনশন প্রপার্টি ডেভেলপারদের AndroidWindowInsets-এর কনজাম্পশন বন্ধ করার অনুমতি দেয়। এর ফলে, হায়ারার্কিতে থাকা আলাদা আলাদাComposeViewsএকে অপরের কাজে বাধা না দিয়েইWindowInsetsপ্রয়োগ করতে পারে। (I0ef08, b/220943142)- IME-তে দশমিক বিভাজক অন্তর্ভুক্ত করার জন্য
Keyboard.Number-এর বিকল্প হিসেবেKeyboardType.Decimalযোগ করা হয়েছে। (Iec4c8, b/209835363) PointerEventType.ScrollওPointerEvent.scrollDeltaএখন স্থিতিশীল API (I574c5, b/225669674)- কো-অপারেটিভ ভিউ ক্লাসের জন্য View ও Compose-এর মধ্যে নেস্টেড স্ক্রল ইন্টারপ চালু করুন। এর অর্থ হল, কম্পোজ এখন (সহযোগিতা করা) ভিউ প্যারেন্টে স্ক্রল ডেল্টা পাঠাতে পারবে। (I5d1ac, b/174348612)
- সিস্টেম-ব্যাপী বোল্ড টেক্সট অ্যাক্সেসিবিলিটি সেটিং (I6c1e7) ইন্টিগ্রেট করতে
FontFamily.Resolverআপডেট করা হয়েছে Font(AssetManager, String, ...)বন্ধ করে দেওয়া হয়েছে, এর পরিবর্তেFont(String, AssetManager, ...)ব্যবহার করুন। এটি একটি পরীক্ষামূলক API. (I1c7a4)- ফন্ট ফলব্যাক চেনের সময় সিস্টেম-ইনস্টল করা ফন্ট ঐচ্ছিকভাবে খুঁজে দেখতে, নতুন ফন্ট ডেসক্রিপ্টর
Font(DeviceFontFamilyName)যোগ করুন। (I30468, b/219754572) - TextStyle/ParagraphStyle-এ
includeFontPadding-এর জন্য সাময়িক কম্প্যাটিবিলিটি কনফিগারেশন যোগ করা হয়েছে।includeFontPadding,TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))-এর মাধ্যমে পরিবর্তন করা যেতে পারে। মাইগ্রেশন চালু করার জন্য এটি একটি সাময়িক কনফিগারেশন বিকল্প এবং এটি সরিয়ে দেওয়া হবে। (If47be, b/171394808) - ডিবাগিং সংক্রান্ত সাহায্যের জন্য
GoogleFont.Provider.isAvailableOnDeviceএক্সটেনশন যোগ করুন। (I64e31) @ArrayRes-এর সাথে ব্যবহার করার জন্যGoogleFont.Providerকনস্ট্রাক্টর যোগ করুন (Ic5ee1, b/225984280)Compose GoogleFont-এর নাম পরিবর্তন করেFont(GoogleFont)করা হয়েছে, API অন্যথায় স্টেবল থাকে। (I125f2)
সমস্যার সমাধান
- ভেতরের প্যাডিং ব্যবহার করা হচ্ছে কিনা তা নিশ্চিত করতে মেটেরিয়াল/স্ক্যাফোল্ডে লিন্ট চেক যোগ করা হয়েছে (Ifb111)
ভার্সন 1.2.0-alpha06
২৩ মার্চ, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha06-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ফোকাস করা যায় এমন টার্গেটে ফোকাস করার অনুরোধ করতে
RequestFocusশব্দার্থ সংক্রান্ত অ্যাকশন যোগ করা হয়েছে। (I17b71) - বর্তমান লেআউটের
দিকনির্দেশ RTL হলে,
VectorPainter-এর কন্টেন্ট ফ্লিপ করার জন্য অটোমেটিক মিররিং কাজ করে, সেই জন্য ভেক্টর ড্রয়েবল পার্সিং আপডেট করা হয়েছে। (I79cd9, b/185760237) API-এর সাথে মানানসই হওয়ার জন্য আপডেট করা শ্যাডো/অ্যাম্বিয়েন্ট কালারকে
Modifier.graphicsLayer-এর ট্রেলিং প্যারামিটার হিসেবে সেট করা হয়েছে (I3f864, b/160665122)API-তে কোনও পরিবর্তন করা হলে যাতে তা ভেঙে না যায় তা নিশ্চিত করতে
GraphicsLayerScope-এ শ্যাডো/অ্যাম্বিয়েন্ট কালারের ডিফল্ট প্রয়োগ যোগ করা হয়েছেRSB ইভেন্টে ইভেন্টের সময় যোগ করা হয়েছে (Ief8ae)
FocusOrderএখনFocusProperties-এর সাথে মার্জ করা হয়েছে এবংfocusProperties()-এর কাছে এখনfocusOrder()-এর সব ক্ষমতা আছে।FocusOrderএবংfocusOrder()বন্ধ করে দেওয়া হয়েছে।focusOrder()যাfocusRequesterগ্রহণ করে, সেটিকেfocusProperties()-এর সাথেfocusRequester()মডিফায়ার ব্যবহার করে পরিবর্তন করতে হবে। এর ফলে মডিফায়াররা আরও ভালোভাবে তাদের কাজ আলাদা আলাদাভাবে করতে পারেন। (I601b7)RecyclerViewওComposeদু'টিই আপগ্রেড করলে, এখন চাইল্ড হিসেবে কম্পোজ ভিউ সহ RecyclerView-এর জন্য অনেক ভালো স্ক্রল করার পারফর্ম্যান্স পাওয়া যাবে।বিল্ট-ইন ডিফল্ট স্ট্র্যাটেজি ফিরিয়ে আনার উপায় হিসেবে
ViewCompositionStrategy.Defaultযোগ করুনViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainerযোগ করুন, এটি হল নতুন ডিফল্ট স্ট্র্যাটেজি এবং এটি RecyclerView-এর মতো পুলিং কন্টেনার সঠিকভাবে ম্যানেজ করে। (If7282)Multipreview ফিচার যোগ করার প্রথম ধাপ হিসেবে @Preview সহ অ্যানোটেশন ক্লাস অ্যানোটেট করার সুবিধা যোগ করা হয়েছে। এই ধরনের অ্যানোটেশন, কম্পোজ করা যায় এমন মেথড বা অন্যান্য অ্যানোটেশন ক্লাসে অ্যানোটেশন যোগ করতে ব্যবহার করা যেতে পারে, যা পরে প্রদত্ত @Preview-এর মাধ্যমে পরোক্ষভাবে অ্যানোটেশন যোগ করা হয়েছে বলে বিবেচনা করা যেতে পারে। (I12eff)
@Preview-এর জন্য ডিভাইসের তালিকায় রেফারেন্স ডিভাইস যোগ করা হয়েছে (I071c9)
সমস্যার সমাধান
- @UiComposable-এর পরিবর্তে সঠিক কম্পোজ করার উপযুক্ত অ্যানোটেশন @VectorComposable ব্যবহার করতে, ভেক্টর গ্রাফিক্স API আপডেট করা হয়েছে (I942bc)
AnnotatedString.Builder.withStyleথেকে crossinline সরান (If84d5)
এক্সটার্নাল কন্ট্রিবিউশন
- compose-ui:
GraphicsLayerScope-এambientShadowColorওspotShadowColorপ্রপার্টি যোগ করুন (I1ba1a, b/160665122) pluralStringResourceফাংশনের মাধ্যমে এখন প্লুরাল রিসোর্স কাজ করে। (Ib2f23, b/191375123)
ভার্সন 1.2.0-alpha05
৯ মার্চ, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
TextToolbarএখনActionCallback-এর পরিবর্তে lambda আর্গুমেন্ট নেয়। (Ib2eb9, b/197950089)- Tiramisu DP2 (I0cbb7)-এর সাথে ম্যাচ করাতে, কোর ও অ্যাপকম্প্যাটের নালিবিলিটি আপডেট করা হয়েছে
- পরিমাপ করা ইন্টারফেস এখন parentData প্রপার্টি (I3313f) এক্সপোজ করে
Modifier.onPlacedএবংOnPlacedModifierইন্টারফেস এখন স্থিতিশীল। (Ib5482)- কি মজা! Compose অ্যানিমেশন এখন ডেভেলপার বিকল্প থেকে 'অ্যানিমেটর ডিউরেশন স্কেল' সেটিং কাজ করে। (I5a4fc, b/161675988)
BeyondBoundsLayoutমডিফায়ার লোকাল (If8b51, b/184670295) যোগ করা হয়েছে- টেক্সট: includeFontPadding এখন ডিফল্ট হিসেবে বন্ধ করা আছে।
includeFontPadding=false-এর ফলে হওয়া ক্লিপিং সংক্রান্ত সমস্যা সমাধান করা হয়েছে এবং লম্বা স্ক্রিপ্টের ক্ষেত্রে কোনও ক্লিপিং হওয়া উচিত নয়। (I31c84, b/171394808)
সমস্যার সমাধান
- আগে থেকেই কন্টেন্ট থাকলে, আপনি কন্টেন্ট সেট করার চেষ্টা করলে,
ComposeContentTestRule.setContentএখন একটিIllegalStateExceptionদেখাবে। (I888a5, b/199631334) - Android-এ ক্লিপবোর্ড থেকে রিড করার সময় ক্লিপবোর্ড কন্টেন্টের কারণে হওয়া ক্র্যাশ সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I06020, b/197769306)
- RSB স্ক্রল করার স্যাম্পেল উন্নত করুন। (I6a596)
এক্সটার্নাল কন্ট্রিবিউশন
- Kotlinx coroutines 1.6.0 (I3366d) ব্যবহার করার জন্য আপডেট করা হয়েছে
ভার্সন 1.2.0-alpha04
২৩ ফেব্রুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha04 রিলিজ করা হয়েছে। 1.2.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposableTarget,ComposableTargetMarkerএবংComposableOpenTargetযোগ করা হয়েছে যা কম্পাইল করার সময় রিপোর্ট করার অনুমতি দেয় যখন কোনও কম্পোজেবল ফাংশন এমন কোনও অ্যাপ্লায়ারকে টার্গেট করে কল করা হয় যা ব্যবহার করার জন্য ডিজাইন করা হয়নি।বেশিরভাগ ক্ষেত্রে, কম্পোজ কম্পাইলার প্লাগ-ইন থেকে অ্যানোটেশন অনুমান করা যেতে পারে, তাই এই অ্যানোটেশন সরাসরি ব্যবহার করা বিরল হওয়া উচিত। যেসব ক্ষেত্রে অনুমান করা যায় না তার মধ্যে রয়েছে কাস্টম অ্যাপ্লায়ার তৈরি ও ব্যবহার করা, অ্যাবস্ট্র্যাক্ট কম্পোজ করার উপযুক্ত ফাংশন (যেমন ইন্টারফেস পদ্ধতি), ফিল্ড বা গ্লোবাল ভেরিয়েবল যা কম্পোজ করার উপযুক্ত ল্যাম্বডা (লোকাল ভেরিয়েবল ও প্যারামিটার অনুমান করা হয়), অথবা
ComposeNodeবা সম্পর্কিত কম্পোজ করার উপযুক্ত ফাংশন ব্যবহার করার সময়।কাস্টম অ্যাপ্লায়ারের জন্য, কম্পোজ করা যায় এমন ফাংশন যা
ComposeNodeবাReusableComposeNodeকল করে, সেগুলিকে ফাংশন ও যেকোনও কম্পোজ করা যায় এমন ল্যামডা প্যারামিটারComposableTargetটাইপের জন্য অ্যানোটেশন যোগ করতে হবে। তবে, এটি সাজেস্ট করা হয় যে,ComposableTargetMarkerদিয়ে অ্যানোটেট করা একটি অ্যানোটেশন তৈরি করুন এবং তারপরে সরাসরিComposableTarget-এর পরিবর্তে চিহ্নিত অ্যানোটেশন ব্যবহার করুন।ComposableTargetMarkerচিহ্নিত কম্পোজ করার উপযুক্ত অ্যানোটেশন হলComposbleTarget, যার মধ্যে অ্যাপ্লায়ার প্যারামিটার হিসেবে অ্যাট্রিবিউট ক্লাসের সম্পূর্ণ কোয়ালিফায়েড নাম থাকে।ComposableTargetMarkerব্যবহারের উদাহরণ দেখতেanroidx.compose.ui.UiComposableদেখুন। (I38f11)Font(resId, ...)এখন স্টেবল API-তে loadingStrategy নেয়। (Ief3d2)FontLoadingStrategyএখন স্টেবল API. (I1ee35, b/174162090)Text-এ অ্যাসিঙ্ক ফন্ট লোডিং কাজ করে (I77057, b/214587005)
কাস্টম
Font.ResourceLoader-কেFontFamily.Resolver-এ কনভার্ট করার জন্য ব্রিজ API যোগ করুন। (Ia0060)
সমস্যার সমাধান
- প্রদত্ত
FontFamily.Resolverপপ-আপের মতো সাবকম্পোজিশনে পাস করা হয়। - প্রদত্ত
Font.ResourceLoaderপপ-আপের মতো সাবকম্পোজিশনে পাস করা হয়। (I48fa5)
ভার্সন 1.2.0-alpha03
৯ ফেব্রুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha03 রিলিজ করা হয়েছে। 1.2.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
TextInputSessionওTextInputService-এnotifyFocusedRectপদ্ধতি এখন অবচিত করা হয়েছে এবং আর কল করা হবে না। এর পরিবর্তেBringIntoViewRequesterব্যবহার করুন। (Ia4302, b/192043120, b/216842427, b/178211874)RenderNodeস্টাব ক্লাসেdestroyDisplayListDataমেথড যোগ করা হয়েছে (I1e659, b/216660268)- নতুন API যোগ করা হয়েছে যা আপনাকে আগে থেকে কম্পোজ করা
SubcomposeLayoutবাচ্চাদের আগে থেকে পরিমাপ করার অনুমতি দেয়। (I857ea) movableContentOfযোগ করা হয়েছে যা কম্পোজ করা যায় এমন lambda-কে এমন lambda-তে কনভার্ট করে যা সেটির স্টেট এবং সংশ্লিষ্ট নোডকে যে নতুন লোকেশন থেকে কল করা হয় সেখানে সরিয়ে দেয়। আগের কলটি কম্পোজিশন থেকে বেরিয়ে গেলে সেটির স্টেট সাময়িকভাবে সেভ করা হয় এবং যদি নতুন কল কম্পোজিশনে প্রবেশ করে, তাহলে স্টেট ও সংশ্লিষ্ট নোড নতুন কলের লোকেশনে সরিয়ে দেওয়া হয়। নতুন কোনও কল যোগ করা না হলে, স্টেটটি স্থায়ীভাবে সরিয়ে দেওয়া হয় এবং মনে রাখবেন, পর্যবেক্ষকদের এই বিষয়ে জানানো হয়।একই কম্পোজিশনে একাধিকবার
movableContentOflambda কল করা হলে, প্রতিটি কলের জন্য নতুন স্টেট ও নোড তৈরি করা হয় এবং কল কম্পোজিশন থেকে বেরিয়ে গেলে ও নতুন কল প্রবেশ করলে, কল করার ক্রম অনুযায়ী প্রথম বেরিয়ে যাওয়া কল থেকে প্রবেশ করা কলে স্টেট সরিয়ে দেওয়া হয়। নতুন কলের মাধ্যমে দাবি করা হয়নি এমন সব স্টেট স্থায়ীভাবে সরিয়ে দেওয়া হয়। (Ib4850)FontFamilyResolverএখনLocalFontFamilyResolver.current-এর মাধ্যমে উপলভ্যকম্পোজ ব্যবহারের বাইরে নতুন FontFamily রিসলভার তৈরি করতে
createFontFamilyResolver(context)ওcreateFontFamilyResolver(context, coroutineScope)যোগ করা হয়েছে।Paragraph ও MultiParagraph এখন
FontFamily.Resolverনেয়TextLayoutResult.layoutInput.fontFamilyResolver-এ এখন এই লেআউটের জন্য ব্যবহৃত রেজোলভার আছে, এটি আর ব্যবহার করা হয় না বলেTextLayoutResult.layoutInput.resourceLoaderসরিয়ে দেওয়া হয়েছে। (Id5a45, b/174162090)ফলব্যাক বিহেভিয়ার সহ অ্যাসিঙ্ক ও ঐচ্ছিক ফন্ট লোডিংয়ের জন্য সহায়তা। এই পাথটি Text ও TextField ব্যবহার করে এবং FontFamilyResolver-এর মাধ্যমে এক্সপোজ করা হয়
FontFamilyResolver.preload-এর মাধ্যমে ফন্ট প্রি-লোডিংয়ের সুবিধাFontFamilyResolver.setAsyncLoadContextঅ্যাসিঙ্ক ফন্ট লোড করার জন্য ব্যবহৃত গ্লোবাল কোরাউটিন কন্টেক্সট সেট করার অনুমতি দেয়। (I87fe8, b/174162090)Android-এ নতুন ধরনের ফন্ট রিসোর্স ডেসক্রিপ্টর প্রদান করার জন্য
AndroidFont, একটি নতুন লো-লেভেল API যোগ করা হয়েছে। যেমন, কোনও অ্যাপ-নির্দিষ্ট ব্যাকএন্ড থেকে ফন্ট লোড করা, ডিভাইসে আগে থেকে ইনস্টল করা ফন্ট ঐচ্ছিকভাবে লোকেট করা অথবা বর্তমান ফন্ট ফ্যাক্টরি দ্বারা প্রদান করা হয়নি এমন কোনও রিসোর্স থেকে ফন্ট লোড করা।ঐচ্ছিক ও অ্যাসিঙ্ক ফন্ট লোডিংয়ের জন্য আরও উন্নত
Font.ResourceLoadedAPI. অ্যাপ্লিকেশন ডেভেলপারদের এই API সরাসরি ব্যবহার করার জন্য সাজেস্ট করা হয় না। নতুন ধরনের ফন্ট যোগ করতেAndroidFontদেখুন।Font.AndroidResourceLoaderএক্সটেনশন ফাংশন, কম্পোজিশনের বাইরেFont.ResourceLoaderতৈরি করার অনুমতি দেয়।রিসোর্স-ভিত্তিক ফন্টে
loadingStrategyপ্যারামিটার যোগ করা হয়েছে, যাতে রিসোর্স ফন্ট ডাউনলোড করা যায় এমন ফন্ট XML-এর রেফারেন্স দিলে অ্যাসিঙ্ক লোডিং করা যায়। (Ie5aea, b/174162090)Typeface(FontFamily)কনস্ট্রাক্টর অননুমোদিত হয়েছে। এটি আগে ফন্ট প্রি-লোড করার জন্য ব্যবহার করা হত, যা ডাউনলোড করা যায় এমন ফন্টের ক্ষেত্রে ১০ সেকেন্ড পর্যন্ত সময় নিতে পারে। ডাউনলোড করা যায় এমন ফন্ট থাকলে, এই কল ১০ সেকেন্ডের জন্য ব্লক হয়ে যেতে পারে। এর পরিবর্তেFontFamilyResolver.preloadব্যবহার করুন।fontResource(FontFamily): Typefaceবন্ধ করা হয়েছে। এটি আগে ফন্ট প্রি-লোড করার জন্য ব্যবহার করা হত, যা ডাউনলোড করা যায় এমন ফন্টের ক্ষেত্রে ১০ সেকেন্ড পর্যন্ত সময় নিতে পারে। পরিবর্তেFontFamilyResolver.preloadব্যবহার করুন (If8e7c, b/174162090)SubcomposeLayoutStateকনস্ট্রাক্টরmaxSlotsToRetainForReuseগ্রহণ করা এখন বন্ধ করা হয়েছে। এর পরিবর্তে,SubcomposeSlotReusePolicyগ্রহণকারী একটি নতুন কনস্ট্রাক্টর আছে - একটি নতুন ইন্টারফেস যা ভবিষ্যতে আবার ব্যবহারের জন্য কোন স্লটগুলি ধরে রাখা উচিত তার উপর আরও গ্র্যানুলার কন্ট্রোল প্রদান করে। (I52c4d)Color-এ HSV ও HSL ফাংশনকে এক্সপেরিমেন্টাল নয় এমন API হিসেবে প্রকাশ করে। Oklab কালার স্পেস এখন পাবলিক API. (I08fb6, b/180731008)পুরনো হয়ে যাওয়া
AndroidComposeTestRule.AndroidComposeStatement, যা পাবলিক API-তে থাকার কথা ছিল না এবং আপনার জন্য যাইহোক কোনও কাজ করেনি। (Ibc46b)ইন্টার্নাল জেনারেটেড kt ক্লাসের নাম পরিবর্তন (Ia0b9e, b/174162090)
সরানো হয়েছে
FontLoadingStrategy.values(I42a9d, b/174162090)গ্লোবাল ফন্ট লোডারকে এখন
FontFamilyResolverবলা হয়। (I4f773, b/174162090)ডেস্কটপের জন্য নতুন ফন্ট লোডিং সিস্টেম ব্যবহার করুন। (I9ce5c, b/174162090)
FontFamily.Resolver.resolveফেরতState<Any>(I4406c, b/174162090)
সমস্যার সমাধান
- TextField এখন কীবোর্ডের উপরে রাখা হবে, যদি সেটি ফোকাস করা থাকে এবং কীবোর্ড দেখানো হয়, যদি সফ্ট ইনপুট মোড
ADJUST_PANহয়। (I8eaeb, b/190539358, b/192043120) - ডেস্কটপ
FontFamily.Resolver-এর জন্য কম্পোজিশন লোকাল ব্যবহার করে - ডেস্কটপ
FontLoaderবন্ধ করে দেওয়া হয়েছে - ডেস্কটপে নতুন
createFontFamilyResolverফ্যাক্টরি (I6bbbb, b/174162090) - টেক্সট ফিল্ডের মধ্যে ফোকাস পরিবর্তন করার সময় সফ্ট কীবোর্ড ইনপুট টাইপ আর ফ্লিকার করে না। (I1bf50, b/187746439)
ভার্সন 1.2.0-alpha02
২৬ জানুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha02 রিলিজ করা হয়েছে। 1.2.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- রোটেটিং সাইড বোতাম (I18bf5, b/210748686) সহ পরিধানযোগ্য ডিভাইসের জন্য
Modifier.onRotaryScrollEvent()ওModifier.onPreRotaryScrollEvent()যোগ করা হয়েছে - এক্সপেরিমেন্টাল
View.createLifecycleAwareRecomposerএক্সটেনশন (I0cde6) যোগ করুন
এক্সটার্নাল কন্ট্রিবিউশন
PointerEvent.scrollDelta.yএখন Android-এ ইনভার্ট করা হয়েছে (এখন আমরা মাউস হুইল ডানদিকে কাত করলে -১-এর পরিবর্তে ১ রিটার্ন করে) (Ia9811)
ভার্সন 1.2.0-alpha01
১২ জানুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.2.0-alpha01 রিলিজ করা হয়েছে। 1.2.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পুরনো হয়ে গেছে
FontFamily.canLoadSynchronously। এই প্রপার্টির কোনও শব্দার্থগত অর্থ নেই। (Ica5ef) - লেআউট ইন্সপেক্টরে ইনভেরিয়েন্ট আইডি জেনারেট করার জন্য
CompositionData-এ পরিচয় ফিল্ড যোগ করা হয়েছে। (Ic116e) - প্রিভিউ ডিভাইসের তালিকায় Wear OS ডিভাইস আইডি যোগ করা হয়েছে (I93232)
নির্ভরতা সংক্রান্ত আপডেট
- এখন Kotlin
1.6.10-এর উপর নির্ভর করে।
ভার্সন 1.1
ভার্সন 1.1.1
২৩ ফেব্রুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.1.1 রিলিজ করা হয়েছে। 1.1.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList-এNullPointerExceptionসংক্রান্ত সমস্যার সমাধান করুন (aosp/1947059, b/206677462)- Android-এ ক্লিপবোর্ড থেকে রিড করার সময় ক্লিপবোর্ড কন্টেন্টের কারণে হওয়া ক্র্যাশ সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I06020, b/197769306)
LazyVerticalGrid-এ RTL সংক্রান্ত সমস্যা সমাধান করা হয়েছে (aosp/1931080, b/207510535)
ভার্সন 1.1.0
৯ ফেব্রুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.1.0 রিলিজ করা হয়েছে। 1.1.0 ভার্সনে এইসব কমিট রয়েছে।
1.0.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- Android 12-এর জন্য স্থিতিশীল সহায়তা ওভারস্ক্রল এফেক্ট
- টাচ টার্গেটের সাইজ সংক্রান্ত উন্নতি
- মনে রাখবেন, Compose 1.0-এর ক্ষেত্রে, মেটেরিয়াল কম্পোনেন্ট, টাচ টার্গেট সাইজের জন্য মেটেরিয়াল অ্যাক্সেসিবিলিটি নির্দেশিকা মেনে চলতে, লেআউট স্পেস বাড়াবে। যেমন, আপনি বোতামের সাইজ ছোট করে সেট করলেও, বোতামের টাচ টার্গেট কমপক্ষে ৪৮x৪৮dp সাইজে প্রসারিত হবে। এটি মেটেরিয়াল ডিজাইন কম্পোনেন্টের একই আচরণে Compose Material-কে অ্যালাইন করে, এর ফলে আপনি ভিউ ও Compose মিশিয়ে ব্যবহার করলেও আচরণে কোনও পরিবর্তন হয় না। এছাড়াও, এই পরিবর্তন নিশ্চিত করে যে আপনি Compose Material কম্পোনেন্ট ব্যবহার করে UI তৈরি করলে, টাচ টার্গেট অ্যাক্সেসিবিলিটির ন্যূনতম প্রয়োজনীয়তা পূরণ হবে।
- নেভিগেশন রেলের জন্য স্থিতিশীল সহায়তা
- আগে পরীক্ষামূলক API-এর সংখ্যাকে স্থিতিশীল করে
- Kotlin-এর নতুন ভার্সনের জন্য সহায়তা
ভার্সন 1.1.0-rc03
২৬ জানুয়ারি, ২০২২
androidx.compose.ui:ui-*:1.1.0-rc03 রিলিজ করা হয়েছে। Version 1.1.0-rc03-এ এইসব কমিট আছে।
সমস্যার সমাধান
- Compose Material 1.1.0-rc03 ভার্সনে কাজ করার জন্য আপডেট করা হয়েছে
ভার্সন 1.1.0-rc01
১৫ ডিসেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-rc01 রিলিজ করা হয়েছে। 1.1.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অ্যাক্সেসিবিলিটি স্ক্রল অ্যাকশন (I7cbfb) মিসিং হওয়ার কারণে হওয়া সমস্যার সমাধান করা হয়েছে
SemanticsNodeInteraction.captureToImage()এখনHardwareRenderer.isDrawingEnabled()falseহলেও কাজ করবে, কল চলাকালীন এটি চালু করে (Idf3d0)
ভার্সন 1.1.0-beta04
১ ডিসেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-beta04 রিলিজ করা হয়েছে। 1.1.0-beta04 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- Kotlin
1.6.0-এর সাথে মানানসই করে আপডেট করা হয়েছে
API-তে পরিবর্তন
androidx.core.view-এ নাল ভ্যালু সংক্রান্ত সমস্যা সমাধান করা হয়েছে (I7078a, b/204917439)- পরীক্ষামূলক API যোগ করা হয়েছে যা ব্যবহারকারীদের PointerInputchange সম্পূর্ণভাবে ব্যবহার করতে দেয় অথবা এটি ব্যবহার করা হয়েছে কিনা তা চেক করে। (I2e59d)
- UI লেয়ারে মাউস স্ক্রল হুইল ইভেন্টের জন্য সহায়তা যোগ করে। (Ia14eb, b/198214718)
- পরীক্ষামূলক
Modifier.composedওভারলোড যোগ করুন যা সমান কিনা তা তুলনা করার জন্য কী গ্রহণ করে এবং অপ্টিমাইজেশন এড়িয়ে যাওয়ার জন্য উপযুক্ত হয়। (Ice799, b/205851704) ComposeNotIdleExceptionএখনThrowableথেকে সরাসরি না গিয়েExceptionথেকে যায়। মনে রাখবেন, এর অর্থ হল, যে ক্যাচ ক্লজException-কে ক্যাচ করছিল, সেটি এখনComposeNotIdleException-কে ক্যাচ করতে পারে, যেখানে আগে সেটি তা করত না। (I9c217)
সমস্যার সমাধান
- IME দৃশ্যমানতা পরিবর্তন হলে টেক্সট হ্যান্ডেল না সরানোর সমস্যা সমাধান করা। (I25f2e)
ভার্সন 1.1.0-beta03
১৭ নভেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-beta03 রিলিজ করা হয়েছে। 1.1.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- প্লেসমেন্ট পরিবর্তন পর্যবেক্ষণ করার অনুমতি দিতে নতুন মডিফায়ার Modifier.onPlaced যোগ করা হয়েছে। তাই, দেখা গেছে যে প্লেসমেন্টে পরিবর্তন হয়েছে তার উপর ভিত্তি করে চাইল্ড মডিফায়ারের অফসেটে অতিরিক্ত পরিবর্তন করা যেতে পারে। (I558fd)
InjectionScope.flush()এবংInjectionScope.dispose()সরানো হয়েছে। আগেকার মতো, কল করা perform*Input() মেথডের শেষে এখন সব ইভেন্ট ফ্ল্যাশ করা হয় এবং স্কোপ ডিসপোজ করা হয়। (I2bed8)MultiModalInjectionScope.TouchএবংMultiModalInjectionScope.Mouseসরানো হয়েছে। মাল্টি-মডাল জেসচারের জন্য টাচ ও মাউস ইভেন্ট ইনজেক্ট করতে, আপনি এখনMultiModalInjectionScope.touch()ওMultiModalInjectionScope.mouse()ব্যবহার করতে পারবেন, এই দু'টিই এমন ল্যাম্বডা গ্রহণ করে যেটির সেই মডালিটির রিসিভার স্কোপ আছে। (Idde18)
সমস্যার সমাধান
durationMillis-এর ডিফল্ট ভ্যালু এখন এমনভাবে গণনা করা হয় যাতেTouchInjectionScope.swipeWithVelocity-এ সোয়াইপ করা যায়। (I19deb)
ভার্সন 1.1.0-beta02
৩ নভেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-beta02 রিলিজ করা হয়েছে। 1.1.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পরীক্ষামূলক BringIntoView API যোগ করা হয়েছে যা আপনাকে অভিভাবকের কাছে অনুরোধ পাঠাতে দেয় যাতে তারা স্ক্রল করে কোনও আইটেমকে ভিউতে আনতে পারেন (Ib918d, b/195353459)
- টুলিংয়ের জন্য নতুন অ্যানিমেশন API. বিশেষ করে, তারা ট্রানজিশনে অ্যানিমেশন ও তার কনফিগারেশন পরিদর্শন করার জন্য টুলিংয়ের অনুমতি দেয়। (I4116e)
এক্সটার্নাল কন্ট্রিবিউশন
- Added Modifier.pointerHoverIcon (I95f01)
ভার্সন 1.1.0-beta01
২৭ অক্টোবর, ২০২১
androidx.compose.ui:ui-*:1.1.0-beta01 রিলিজ করা হয়েছে। 1.1.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- পরীক্ষামূলক
BringIntoViewAPI যোগ করা হয়েছে যা আপনাকে অভিভাবককে অনুরোধ পাঠাতে দেয় যাতে তারা স্ক্রল করে কোনও আইটেমকে ভিউতে আনতে পারেন (Ib918d, b/195353459) - টুলিংয়ের জন্য নতুন অ্যানিমেশন API. বিশেষ করে, তারা ট্রানজিশনে অ্যানিমেশন ও তার কনফিগারেশন পরিদর্শন করার জন্য টুলিংয়ের অনুমতি দেয়। (I4116e)
ভার্সন 1.1.0-alpha06
১৩ অক্টোবর, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha06 রিলিজ করা হয়েছে। 1.1.0-alpha06 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
ViewRootForInspectorওLayoutInfo.ownerViewId(I5c2e3) থেকেExperimentalComposeUiApiসরিয়ে দিন- লেআউটের জন্য চাইল্ড-লেস ওভারলোড যোগ করা হয়েছে, যার ফলে কার্যকারিতা উন্নত হয়েছে (Ib0d9a)
- ক্রস-মডিউল কল করার জন্য প্রয়োজনীয়
InternalCompilerApiকম্পোজার পদ্ধতি থেকে সরানো হয়েছে (I1aa0b) SemanticsNodeInteraction.performSemanticsActionএখন যেSemanticsNodeInteraction-এ ফাংশন কল করা হয়েছে সেটি রিটার্ন করে। (I9e5db)- টাচমোড/ননটাচমোড শনাক্ত করতে LocalInputModeManager-এ CompositionLocal যোগ করা হয়েছে। (I6a83c, b/175899786)
viewConfiguration: ViewConfiguration-এLayoutInfoযোগ করা হয়েছে যাতে গ্রাহকরা লং প্রেস টাইম-আউটের মতো জিনিসের সঠিক ভ্যালু পান। (I76ca6)- দীর্ঘক্ষণ প্রেস করার টাইমআউট বা টাচ স্লপের মতো
বিষয়গুলির উপর ভিত্তি করে ইনপুট ইনজেকশন অ্যাডজাস্ট করার জন্য
viewConfiguration: ViewConfiguration-এর সাথেInjectionScopeযোগ করা হয়েছে। - টাচ ও মাউস ইনপুট, দু'টির ক্ষেত্রেই বেশিক্ষণ প্রেস করা ও ডবল ট্যাপ করার ডিফল্ট সময়সীমা পরিবর্তন করে
InjectionScope.viewConfiguration-এর ভ্যালুর উপর ভিত্তি করে সেট করা হয়েছে।
- দীর্ঘক্ষণ প্রেস করার টাইমআউট বা টাচ স্লপের মতো
বিষয়গুলির উপর ভিত্তি করে ইনপুট ইনজেকশন অ্যাডজাস্ট করার জন্য
- TextField ও DropdownMenu সহ ExposedDropdownMenuBox-এর উপর ভিত্তি করে ExposedDropdownMenu-এর প্রয়োগ (If60b2)
- dismissOnOutsideClick-কে PopupProperties-এ যোগ করা হয়েছে, এর ফলে deprecate করা dismissOnClickOutside-কে সরিয়ে দেওয়া হয়েছে। নতুন প্রপার্টি ক্লিক পজিশন ও অ্যাঙ্কর বাউন্ড পায়, এর ফলে onDismissRequest ইনভোক করা উচিত কিনা সেই বিষয়ে আরও ভাল কন্ট্রোল পাওয়া যায়। যেমন, অ্যাঙ্করে টাচ করার ফলে অ্যাঙ্কর ডিসমিস হওয়া আটকাতে এটি কাজে লাগতে পারে।
- PopupProperties-এ updateAndroidWindowManagerFlags যোগ করা হয়েছে, এর ফলে পপ-আপের মাধ্যমে Android WindowManager-এ পাস করা ফ্ল্যাগগুলির উপর লো-লেভেল কন্ট্রোল পাওয়া যায়। lambda-এর প্যারামিটার হল PopupProperties ভ্যালু থেকে গণনা করা ফ্ল্যাগ যা WindowManager ফ্ল্যাগের ফলাফল দেয়: যেমন, focusable। lambda-এর ফলাফল হল চূড়ান্ত ফ্ল্যাগ যা Android WindowManager-এ পাস করা হবে। ডিফল্ট হিসেবে, updateAndroidWindowManagerFlags প্যারামিটার থেকে গণনা করা ফ্ল্যাগ অপরিবর্তিত রাখবে। এই API সাবধানে ব্যবহার করা উচিত, শুধুমাত্র সেইসব ক্ষেত্রে যেখানে পপ-আপের খুব নির্দিষ্ট আচরণ সংক্রান্ত প্রয়োজনীয়তা রয়েছে। (I6e9f9)
Recomposer.state-এর ব্যবহার বন্ধ করে দেওয়া হয়েছে এবং এর পরিবর্তেRecomposer.currentStateব্যবহার করা হচ্ছে, যাতে এর ধরন পরিবর্তন করে StateFlow (Ic2ab3, b/197773820) করা যায়InjectionScope-এflush()ওdispose()-কে যোগ করেছেন। আপনি যখনই সমস্ত সারিবদ্ধ ইভেন্ট অবিলম্বে ফ্ল্যাশ করতে চান এবং যখনই স্কোপ ডিসপোজ করতে চান, তখনই এগুলি ব্যবহার করুন। (Ifb73a)performScrollToNode(matcher: SemanticsMatcher)যোগ করা হয়েছে যা প্রদত্ত ম্যাচারের মাধ্যমে ম্যাচ করা কন্টেন্টে স্ক্রল করা যায় এমন কন্টেনারকে স্ক্রল করে। (Ic1cb8)InjectionScopeএখনDensityপ্রয়োগ করে, যার ফলে আপনিperformTouchInputও বন্ধুদের মধ্যে সহজেই px ও dp-এর মধ্যে কনভার্ট করতে পারবেন। (I8fe1f)
সমস্যার সমাধান
- AndroidView এখন ViewTreeLifecycleOwner এবং ViewTreeSavedStateRegistryOwner-এর মাধ্যমে LocalLifecycleOwner ও LocalSavedStateRegistryOwner-কে এর ভিউতে প্রোপাগেট করে। (I38f96, b/179708470)
- WearOS SwipeToDismissBox কখনও কখনও সোয়াইপ হ্যান্ডেল না করার সমস্যা সমাধান করা হয়েছে। (I9387e)
- ইনপুট ইভেন্ট ইনজেক্ট করার মধ্যে ডিফল্ট সময় ১০মিলি সেকেন্ড থেকে ১৬মিলি সেকেন্ডে পরিবর্তন করা হয়েছে। এটি ইনপুট জেসচার পারফর্ম করে এমন টেস্টের ফলাফলকে সম্ভাব্যভাবে পরিবর্তন করে যেমন, নির্দিষ্ট সোয়াইপ। (I829fd)
ভার্সন 1.1.0-alpha05
২৯ সেপ্টেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha05 রিলিজ করা হয়েছে। 1.1.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ইন্টার-মডিফায়ার কমিউনিকেশনের জন্য সহায়তা যোগ করা হয়েছে (Id5467, b/198826874)
- PointerEventChange-এ এক্সপেরিমেন্টাল ঐতিহাসিক পয়েন্টার যোগ করা হয়েছে। (Ic1fd8, b/197553056, b/199921305)
LayoutInfo-এdensity: DensityওlayoutDirection: LayoutDirection-কে যোগ করেছেন। এর ফলেLayoutInfoগ্রাহকরাLayoutInfoএ দেখানো ডাইমেনশন ও পজিশন সঠিকভাবে বুঝতে পারেন। (I002f1)- মাউস ইভেন্ট ইনজেক্ট করার জন্য পরীক্ষামূলক সহায়তা যোগ করা হয়েছে। মাউস ইভেন্ট পাঠানো শুরু করতে
performMouseInputব্যবহার করুন অথবাperformMultiModalInput-এর সাথে মাল্টি মোডাল ইনপুট জেসচারের সময়MultiModalInjectionScope-এরMouseপ্রপার্টির মাধ্যমে মাউস ইভেন্ট পাঠান। উপলভ্য API-এর ডকুমেন্টেশনের জন্যMouseInjectionScopeদেখুন। (Iaa4a8, b/190493367)
সমস্যার সমাধান
- স্ক্রল করার ক্ষেত্রে স্ক্রল করা যায় এমন কন্টেন্টের (লেজি ও নন-লেজি, দু'টিই) অ্যাক্সেসিবিলিটি সংক্রান্ত সহায়তা সম্পর্কিত সমস্যা সমাধান করা হয়েছে (I6cdb0)
TouchInjectionScope.swipeWithVelocity-এ উন্নত করা হয়েছে। এটি এখন ইনপুট ভেরিয়েবলের একটি বিস্তৃত রেঞ্জ গ্রহণ করে এবং কোনও সোয়াইপ তৈরি করা না গেলে ইনপুটে পরিবর্তন সাজেস্ট করবে (I40fbe, b/182477143)
ভার্সন 1.1.0-alpha04
১৫ সেপ্টেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PointerEvent-এ এখনPointerEventTypeহভার ইভেন্ট কাজ করে। (I091fa)- বাচ্চাদের অভিভাবকের পয়েন্টার ইনপুট বাউন্ডের বাইরে পয়েন্টার ইনপুট গ্রহণ করার অনুমতি দিন। অভিভাবক প্রপার্টি PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655) সহ সেইসব কল ইন্টারসেপ্ট করতে পারেন
performGestureওGestureScopeবাতিল করা হয়েছে, যেগুলিperformTouchInputওTouchInjectionScopeদ্বারা প্রতিস্থাপিত হয়েছে। (Ia5f3f, b/190493367)touchBoundsInRootথেকেSemanticsNode-এ যোগ করা হয়েছে, যার মধ্যে ন্যূনতম টাচ টার্গেট সাইজ অন্তর্ভুক্ত, যাতে ডেভেলপাররা নিশ্চিত করতে পারেন যে টাচ টার্গেট অ্যাক্সেসিবিলিটি সংক্রান্ত ন্যূনতম প্রয়োজনীয়তা পূরণ করে। (I2e14b, b/197751214)- পরিদর্শনযোগ্য (I927bc, b/191017532) আইটেমের প্রয়োগ আবার করা
- কম্পোজ করা প্যারামিটারের সাথে ম্যাচ করার জন্য 'ইনস্পেক্টেবল' প্যারামিটারের নাম পরিবর্তন করা হয়েছে (I3a482, b/191017532)
performTouchInputওTouchInjectionScope-এর পরিবর্তেperformTouchInputওTouchInjectionScopeচালু করা হয়েছে। এর ফলে অন্যান্য মোডালিটি (যেমন মাউস) ব্যবহার করা যাবে।TouchInjectionScope-এর পদ্ধতিGestureScope-এর মতোই, তবেmovePointerToওmovePointerBy-এর নাম পরিবর্তন করেupdatePointerToওupdatePointerByকরা হয়েছে। অন্যান্য সব পদ্ধতি একই।TouchInjectionScope-এর আচরণ প্রায়GestureScope-এর মতোই, তবে দুটি ছোট ছোট পার্থক্য আছে:- পয়েন্টার সরানো হয়েছে, কিন্তু কোনও মুভ ইভেন্ট পাঠানো হয়নি, এমন অবস্থায়
ডাউন ইভেন্ট পাঠানো হলে (অন্যভাবে বলতে গেলে,
updatePointerTo()ব্যবহার করা হয়েছে, কিন্তুmove()নয় এবং তারপরেdown()কল করা হয়েছে), আগের ইমপ্লিমেন্টেশন ইভেন্টের সময় এগিয়ে নিয়ে যাবে এবং ডাউন ইভেন্ট পাঠানোর আগে একটি মুভ ইভেন্ট পাঠাবে। নতুন ইমপ্লিমেন্টেশন এখনও move ইভেন্ট পাঠায়, কিন্তু এই নির্দিষ্ট পরিস্থিতিতে ইভেন্টের সময় এগিয়ে নিয়ে যায় না। - পয়েন্টার সরানো হয়েছে অথচ কোনও মুভ ইভেন্ট না পাঠিয়ে (উপরের মতো) কোনও আপ ইভেন্ট পাঠানো হলে, আগের ইমপ্লিমেন্টেশন ইভেন্টের সময় এগিয়ে দিত এবং আপ ইভেন্ট পাঠানোর আগে একটি মুভ ইভেন্ট পাঠাত। নতুন ইমপ্লিমেন্টেশন এগুলির কোনওটিই করে না: পয়েন্টারের নতুন পজিশন শুধুমাত্র 'আপ' ইভেন্টের মাধ্যমে রিফ্লেক্ট করা হবে।
সবশেষে,
TouchInjectionScopeপ্রদত্ত পয়েন্টারের বর্তমান পজিশন পাওয়ার জন্যcurrentPosition(pointerId: Int)একটি নতুন পদ্ধতি নিয়ে এসেছে। (If1191, b/190493367)- পয়েন্টার সরানো হয়েছে, কিন্তু কোনও মুভ ইভেন্ট পাঠানো হয়নি, এমন অবস্থায়
ডাউন ইভেন্ট পাঠানো হলে (অন্যভাবে বলতে গেলে,
সমস্যার সমাধান
- ন্যূনতম টাচ টার্গেট সংক্রান্ত উদ্দেশ্যে ক্লিপের অঞ্চল ছাড়িয়ে টাচ টার্গেট বাউন্ড এক্সটেন্ড করার অনুমতি দিন। (I43e10, b/171509422)
- Android 12 ডিভাইসে স্ট্রেচ ওভারস্ক্রল করার সুবিধা যোগ করা হয়েছে। (Iccf3c, b/171682480)
ভার্সন 1.1.0-alpha03
১ সেপ্টেম্বর, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha03 রিলিজ করা হয়েছে। 1.1.0-alpha03 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- Compose
1.1.0-alpha03-কে Kotlin1.5.30-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে। (I74545)
API-তে পরিবর্তন
- অন্যান্য মডিফায়ার র্যাপ করার জন্য
Modifier.inspectableযোগ করা হয়েছে। (I1909b, b/191017532) BlurredEdgeTreatmentAPI যোগ করা হয়েছে যাতে ব্লার ব্যবহারের ক্ষেত্রে ক্লিপ ফ্ল্যাগ ও TileMode-এর আরও সাধারণভাবে ব্যবহৃত কম্বিনেশন ব্যবহার করা যায়। বেশিরভাগ ব্যবহারিক প্রয়োগের ক্ষেত্রে অস্পষ্ট কন্টেন্টকে আসল কন্টেন্টের সীমানার বাইরে রেন্ডার করতে দেওয়া হয় এবং এই সীমানার বাইরের অংশগুলিকে স্বচ্ছ কালো রঙ দিয়ে অস্পষ্ট করা হয় অথবা কন্টেন্টকে কন্টেন্টের সীমানায় ক্লিপ করা হয়। এর জন্য, কন্টেন্টের সীমানার বাইরে থাকা অস্পষ্ট কার্নেলের জন্য সবচেয়ে কাছের প্রান্ত স্যাম্পেল করা হয়। (I6b4b7, b/166927547)- কম্পোজ ডেস্কটপে RenderEffect-এর জন্য সহায়তা যোগ করা হয়েছে। অফসেট এফেক্ট এবং কম্পোজিশন হায়ারার্কির একটি অংশে ব্লার ভিজ্যুয়াল এফেক্ট যোগ করার সহজ উপায় হিসেবে ব্লার মডিফায়ার চালু করা হয়েছে। (I0f6aa, b/166927547)
- RenderEffect API চালু করা হয়েছে
যা
Modifier.graphicsLayer-এ ঐচ্ছিকভাবে কনফিগার করা যায় এবং এর মাধ্যমে লেয়ারের কন্টেন্ট পরিবর্তন করা যায়। এটি কম্পোজ করা যায় এমন কন্টেন্ট এবং কম্পোজিশন হায়ারার্কির মধ্যে চাইল্ড কম্পোজ করা যায় এমন কন্টেন্টকে অস্পষ্ট করতে ব্যবহার করা যায়। (I47c4d, b/166927547) - AwaitPointerEventScope-এ এখন withTimeout() এবং withTimeoutOrNull() আছে (I507f0, b/179239764, b/182397793)
- অ্যাক্সেসিবিলিটি নিশ্চিত করতে, সিম্যান্টিক্স ও পয়েন্টার ইনপুটে ব্যবহারের জন্য ViewConfiguration -এ ন্যূনতম টাচ টার্গেট সাইজ যোগ করা হয়েছে। (Ie861c)
- TileMode.Decal সাপোর্ট যোগ করুন যা ব্লার ভিত্তিক RenderEffects-এর জন্য এজ বিহেভিয়ার নির্ধারণ করতে কাজে লাগে। (I7e8ed, b/166927547)
performScrollToIndex,performScrollToKey,hasScrollToIndexActionওhasScrollToKeyActionএখন স্থিতিশীল API (I142ae, b/178483889)- ক্লিপ করা বাউন্ড পাওয়ার জন্য টেস্ট পদ্ধতি যোগ করা হয়েছে। (I6b28e)
সমস্যার সমাধান
- isBounded মেথড সরিয়ে দেওয়া হয়েছে এবং তার পরিবর্তে BlurredEdgeTreatment-এ শেপ প্যারামিটার নাল কিনা তা স্পষ্টভাবে চেক করা হয়েছে। (I85d68)
ভার্সন 1.1.0-alpha02
১৮ আগস্ট, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- PointerEvent এখন মাউস বোতামের স্টেট ও কীবোর্ড মডিফায়ার স্টেট পড়তে পারে। (I6310c, b/180075467)
- ইনজেক্ট করা জেসচার এখন MainTestClock-এর সময়কে সময়ের
সত্যের সোর্স হিসেবে ব্যবহার করে। ইনজেক্ট করা ইভেন্টের বর্তমান সময়
performGesture-এ MainTestClock-এর বর্তমান সময়ের সাথে ইনিশিয়ালাইজ করা হবে। (Ifb364, b/192064452) DpRect(DpOffset, DpSize)কনস্ট্রাক্টর যোগ করা হয়েছে (I2cf16, b/194219828)- DpSize ক্লাস যোগ করা হয়েছে (I7abb1, b/194219828)
সমস্যার সমাধান
- VectorDrawables-এ রুট কালার টিন্ট প্রপার্টি হিসেবে ColorStateLists-কে সাপোর্ট করার জন্য আপডেট করা ভেক্টর গ্রাফিক্স xml পার্সিং। (I86915, b/195668138)
ভার্সন 1.1.0-alpha01
৪ আগস্ট, ২০২১
androidx.compose.ui:ui-*:1.1.0-alpha01 রিলিজ করা হয়েছে। 1.1.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
RelocationRequester.bringIntoViewএখন প্যারামিটার হিসেবে একটি আয়তাকার অংশ গ্রহণ করে যা আমাদের কম্পোজ করার উপযুক্ত আইটেমের একটি অংশকে ভিউতে আনতে সাহায্য করে (Ice2c5, b/194330245)AnimatedImageVectorএবং সম্পর্কিত API এখন নতুনandroidx.compose.animation:animation-graphicsমডিউলে আছে। (I60873)- সরিয়ে দেওয়ার অনুরোধ ম্যানেজ করার জন্য পরীক্ষামূলক মডিফায়ার যোগ করা হয়েছে। (I65a97, b/178211874)
ColorPainter-এর মতো Painter-এর মধ্যে যেকোনও Brush আঁকার সুবিধা দিতে BrushPainter API চালু করা হয়েছে
BrushPainter-এর মধ্যে কোয়েরি করা একটি ইন্ট্রিনসিক সাইজ প্যারামিটার পেতে Brush API আপডেট করা হয়েছে (Ia2752, b/189466433)
DrawScope#drawImage মেথড আপডেট করা হয়েছে যা ঐচ্ছিক FilterQuality প্যারামিটার ব্যবহার করার জন্য সোর্স ও ডেস্টিনেশন রেক্ট ব্যবহার করে। পিক্সেল আর্টের ক্ষেত্রে এটি উপযোগী, কারণ পিক্সেল ভিত্তিক আর্টের জন্য স্কেল আপ করা হলে এটি পিক্সেল আর্ট হিসেবেই দেখা যাবে। এছাড়াও, BitmapPainter + Image composable আপডেট করে ঐচ্ছিক FilterQuality প্যারামিটার (Ie4fb0, b/180311607) ব্যবহার করা হয়েছে
জেসচারে ইভেন্টের টাইমিংয়ের উপর আরও কন্ট্রোল দিতে
GestureScope.advanceEventTimeপদ্ধতি যোগ করা হয়েছে (Ibf3e2)
সমস্যার সমাধান
- ড্র মডিফায়ার চেইন করার ক্ষেত্রে আরও ভাল সহায়তা পেতে, নিশ্চিত করুন যে Modifier.paint ইমপ্লিমেন্টেশন
drawsContent কল করে।
আগে Modifier.paint-কে মডিফায়ার চেনের
একটি লিফ নোড হতে হত, তবে এটি করলে, এটি
কম্পোজ করা যায় এমন কন্টেনারে (যেমন, বক্স)
কনফিগার করা বা উপরে অতিরিক্ত সজ্জা যোগ করা থেকে
Modifier.paint().border()আটকায়। প্রদত্ত পেইন্টারের কন্টেন্ট আঁকার পরে Modifier.paint কল drawContent ব্যবহার করার মাধ্যমে, আমরা মডিফায়ার প্যাটার্নের সাথে আচরণে আরও ভাল আচরণগত ধারাবাহিকতা পেয়েছি। (Ibb2a7, b/178201337, b/186213275) - ডায়ালগ এখন প্ল্যাটফর্মের সাইজ সংক্রান্ত আচরণ মেনে চলে। এই আচরণ ওভাররাইড করতে
usePlatformDefaultWidth-এর মান false হিসেবে সেট করুন। (Iffaed, b/192682388) InfiniteAnimationPolicy-কে :compose:ui-তে সরানো হয়েছে (I5eb09, b/160602714)- লেজি লিস্ট ও সাধারণ স্ক্রলিং কম্পোনেন্টের জন্য সিম্যান্টিক অ্যাকশনের মাধ্যমে স্ক্রল করার সুবিধা এখন অ্যানিমেটেড (Id9066, b/190742024)
ভার্সন ১.০
ভার্সন 1.0.5
৩ নভেম্বর, ২০২১
androidx.compose.ui:ui-*:1.0.5 রিলিজ করা হয়েছে। 1.0.5 ভার্সনে এই কমিটগুলি রয়েছে।
সমস্যার সমাধান
- ক্র্যাশ ট্র্যাকিং derivedStateOf ইনস্ট্যান্স সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (aosp/1792247)
ভার্সন 1.0.4
১৩ অক্টোবর, ২০২১
androidx.compose.ui:ui-*:1.0.4 রিলিজ করা হয়েছে। 1.0.4 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.31-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে
ভার্সন 1.0.3
২৯ সেপ্টেম্বর, ২০২১
androidx.compose.ui:ui-*:1.0.3 রিলিজ করা হয়েছে। 1.0.3 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.30-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে
ভার্সন 1.0.2
১ সেপ্টেম্বর, ২০২১
androidx.compose.ui:ui-*:1.0.2 রিলিজ করা হয়েছে। 1.0.2 ভার্সনে এইসব কমিট রয়েছে।
Compose 1.0.2 রিলিজের সাথে কাজ করার জন্য আপডেট করা হয়েছে। Compose 1.0.2 এখনও Kotlin 1.5.21-এর সাথে মানানসই।
ভার্সন 1.0.1
৪ আগস্ট, ২০২১
androidx.compose.ui:ui-*:1.0.1 রিলিজ করা হয়েছে। 1.0.1 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.21-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে।
ভার্সন 1.0.0
২৮ জুলাই, ২০২১
androidx.compose.ui:ui-*:1.0.0 রিলিজ করা হয়েছে। ভার্সন 1.0.0-এ এইসব কমিট আছে।
1.0.0 ভার্সনের প্রধান ফিচার
Compose-এর এটিই প্রথম স্থিতিশীল রিলিজ। আরও বিবরণের জন্য অফিসিয়াল Compose রিলিজ ব্লগ দেখুন!
পরিচিত সমস্যা
আপনি Android Studio Bumblebee Canary 4 বা AGP
7.1.0-alpha04/7.1.0-alpha05ব্যবহার করলে, নিম্নলিখিত ক্র্যাশ হতে পারে:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"এটি সমাধান করতে, আপনার
build.gradleফাইলে সাময়িকভাবে minSdkVersion বাড়িয়ে 24+ করুন। Android Studio Bumblebee এবং AGP7.1-এর পরবর্তী ভার্সনে এই সমস্যার সমাধান করা হবে। (b/194289155)
ভার্সন 1.0.0-rc02
১৪ জুলাই, ২০২১
androidx.compose.ui:ui-*:1.0.0-rc02 রিলিজ করা হয়েছে। 1.0.0-rc02 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ডায়ালগ এখন প্ল্যাটফর্মের সাইজ সংক্রান্ত আচরণ মেনে চলে। এই আচরণ ওভাররাইড করতে
usePlatformDefaultWidth-এর মান false হিসেবে সেট করুন। (Iffaed, b/192682388)
ভার্সন 1.0.0-rc01
১ জুলাই, ২০২১
androidx.compose.ui:ui-*:1.0.0-rc01 রিলিজ করা হয়েছে। 1.0.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- ui-tooling মডিউলকে
ui-toolingএবংui-tooling-preview-এ ভাগ করুন (Iefa28, b/190649014)
API-তে পরিবর্তন
- পুরনো হয়ে যাওয়া এক্সপেরিমেন্টাল
FocusManager#moveFocusInওFocusManager#moveFocusOutসরিয়ে দেওয়া হয়েছে (I227d7, b/170154986, b/186567354, b/168510304) - Canvas এখন অ্যাক্সেসিবিলিটির জন্য contentDescription প্যারামিটার ব্যবহার করতে পারে। (Ib547c)
PopupProperties-এরuseDefaultMaxWidth-এর নাম পরিবর্তন করেusePlatformDefaultWidthকরা হয়েছে। (I05710)- ডায়ালগ এখন স্ক্রিনের সম্পূর্ণ প্রস্থ ব্যবহার করতে পারবে। (I83929, b/190810877)
- HSV ও HSL কালার রেপ্রেজেন্টেশনের জন্য পরীক্ষামূলক সহায়তা যোগ করা হয়েছে। (Id7cf8, b/180731008)
আচরণে পরিবর্তন
- Compose
@Previewএখন এমন একটিLocalActivityResultRegistryOwnerপ্রদান করে যা আপনাকে এমন Composables-এর প্রিভিউ দেখতে দেয় যাrememberLauncherForActivityResult()-এর মতো API ব্যবহার করে এবং যা সেই মালিকের অস্তিত্বের উপর নির্ভর করে। (Ib13d1, b/185693006) - Compose
@Previewএখন এমন একটিLocalOnBackPressedDispatcherOwnerপ্রদান করে যা আপনাকে এমন কম্পোজ করার মতো আইটেমের প্রিভিউ দেখতে দেয় যাBackHandler-এর মতো API ব্যবহার করে যা সেই মালিকের বিদ্যমান থাকার উপর নির্ভর করে। (Ia1c05, b/185693006)
সমস্যার সমাধান
InfiniteAnimationPolicyথেকেandroidx.compose.ui:ui-এ সরানো হয়েছে (I5eb09, b/160602714)- মডিউল স্ট্রাকচার পরিবর্তন করার জন্য AnimatedImageVector সাময়িকভাবে সরিয়ে দেওয়া হয়েছে। (I41906, b/160602714)
ভার্সন 1.0.0-beta09
১৬ জুন, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta09 রিলিজ করা হয়েছে। 1.0.0-beta09 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- প্রাইভেট কনস্ট্রাক্টর (Id1890) সহ enum Role ও LiveRegionMode-কে ইনলাইন ক্লাসে পরিবর্তন করুন
- KeyboardCapitalization ইনলাইন ক্লাসে কনভার্ট করা হয়। (Id5a1c)
- HapticFeedbackType পরিবর্তন করে ইনলাইন ক্লাস করুন। (I255ec)
- Modifier.pointerInteropFilter হল @ExperimentalComposeUiApi. (Iede6c)
- TextAlign, FontSynthesis ও TextDirection এখন ইনলাইন ক্লাস। (I212fe)
- TextOverflow-কে ইনলাইন ক্লাসে পরিবর্তন করা হয়েছে। (I433af)
- FontStyle এখন একটি ইনলাইন ক্লাস। (I9e48b)
সমস্যার সমাধান
- এখনকার জন্য মূল কনস্ট্যান্ট হল @ExperimentalComposeUiApi। ব্যবহারকারী কোড স্থিতিশীল হওয়ার আগে ব্যক্তিগত ধ্রুবক ঘোষণা করতে পারে। (Ia5d48)
- Compose টেস্ট এখন Robolectric-এ চালানো যাবে। নিম্নলিখিত
সীমাবদ্ধতাগুলি এখনও পর্যন্ত শনাক্ত করা হয়েছে:
- কোনও নেটিভ বিটম্যাপ নেই, তাই
ImageBitmap()থেকে NullPointerException হয়। - কোনও ড্রয়িং নেই, তাই
captureToImage()অনির্দিষ্টকালের জন্য পরবর্তী ড্র পাসের জন্য অপেক্ষা করবে (অর্থাৎ, এটি ডেডলক হয়ে যাবে)। - কোনও ফন্ট লোড করা নেই, তাই যেকোনও টেক্সট ভুলভাবে পরিমাপ করা হবে। সব ক্যারেক্টারের নির্দিষ্ট উচ্চতা ২০ পিক্সেল ও প্রস্থ ১ পিক্সেল।
ComposeTestRule.waitUntil {}অপেক্ষা করার সময় মূল থ্রেড রান করে না, ফলে এটিComposeTestRule.mainClock.advanceTimeUntil {}-এর মতোই কাজ করে ভবিষ্যতে আরও সীমাবদ্ধতা শনাক্ত করা হতে পারে। (I284fa)
- কোনও নেটিভ বিটম্যাপ নেই, তাই
যোগ করা প্রোফাইল সংক্রান্ত নিয়ম
এই রিলিজে নিম্নলিখিত কম্পোজ মডিউলে প্রোফাইল সংক্রান্ত নিয়ম যোগ করা হয়েছে (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
প্রোফাইল সংক্রান্ত নিয়ম কী কী?
লাইব্রেরির প্রোফাইল সংক্রান্ত নিয়ম
src/mainবা সমতুল্য ডিরেক্টরিতে থাকাbaseline-prof.txtটেক্সট ফাইলে উল্লেখ করা থাকে। ফাইলটি প্রতি লাইনে একটি করে নিয়ম নির্দিষ্ট করে, যেখানে এই ক্ষেত্রে নিয়ম হল লাইব্রেরিতে মেথড বা ক্লাসের সাথে ম্যাচ করার একটি প্যাটার্ন। এইসব নিয়মের সিনট্যাক্স হল মানুষের-পঠনযোগ্য ART প্রোফাইল ফর্ম্যাটের একটি সুপারসেট যা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ফ্ল্যাগ আছে এমন কোনও পদ্ধতি থেকে বোঝা যায় যে এটি এমন একটি পদ্ধতি যা স্টার্ট-আপের পরে কল করা হয়।এই ফাইলে উপস্থিত কোনও ক্লাস ইঙ্গিত করে যে এটি স্টার্ট-আপের সময় ব্যবহার করা হয় এবং ক্লাস লোডিংয়ের খরচ এড়াতে হিপে আগে থেকেই বরাদ্দ করা উচিত।
এটি কীভাবে কাজ করে?
- লাইব্রেরি এইসব নিয়ম নির্ধারণ করতে পারে যা AAR আর্টিফ্যাক্টে প্যাকেজ করা হবে। এইসব আর্টিফ্যাক্ট অন্তর্ভুক্ত করে কোনও অ্যাপ তৈরি করা হলে, এইসব নিয়ম একসাথে মার্জ করা হয় এবং মার্জ করা নিয়মগুলি অ্যাপ-নির্দিষ্ট কম্প্যাক্ট বাইনারি ART প্রোফাইল তৈরি করতে ব্যবহার করা হয়। অ্যাপ ডিভাইসে ইনস্টল করা হলে, ART এই প্রোফাইল ব্যবহার করতে পারে যাতে অ্যাপ্লিকেশনের পারফর্ম্যান্স, বিশেষ করে প্রথমবার রান করার সময়, উন্নত করতে অ্যাপ্লিকেশনটির নির্দিষ্ট সাবসেট আগে থেকেই কম্পাইল করা যায়। মনে রাখবেন, এটি ডিবাগ করা যায় এমন অ্যাপ্লিকেশনের উপর কোনও প্রভাব ফেলবে না।
ভার্সন 1.0.0-beta08
২ জুন, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta08 রিলিজ করা হয়েছে। 1.0.0-beta08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
NestedScrollSourceenum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়েছে। (Ie321b, b/187055290)FocusManager.clearFocus(forcedClear = true)-এর নাম পরিবর্তন করেFocusManager.clearFocus(force = true)করা হয়েছে (Ia0c41)- নতুন enum ভ্যালু যোগ করা হলে, <0x0A>when স্টেটমেন্টের সাথে এক্সহস্ট করার ক্ষেত্রে সমস্যা এড়াতে <0x0A>ইনলাইন ক্লাসে রিফ্যাক্টর করা enum ব্যবহার। (I2b5eb)
PopupPropertiesথেকে@ExperimentalComposeUiApiসরান। (I01fa6)PointerType-কে এনুম থেকে ইনলাইন ক্লাসে (If5058) পরিবর্তন করা হয়েছে- ContentDescription এবং Text সিম্যান্টিক্স প্রপার্টি আর সিঙ্গেল ভ্যালু নয়, এখন তালিকা। এটি সেগুলিকে কনক্যাটেনেশনের পরিবর্তে যেমন আছে তেমনই মার্জ করতে দেয়। এছাড়াও, এই পরিবর্তনগুলি ব্যবহার করার জন্য আরও ভাল টেস্টিং API প্রদান করা হয়েছে (Ica6bf, b/184825850)
Modifier.focusModifier()বন্ধ করে দেওয়া হয়েছে এবংModifier.focusTarget()(I6c860) দিয়ে প্রতিস্থাপন করা হয়েছেModifier.onSizeChanged()এবংModifier.onGloballyPositioned()আর ইনলাইন ফাংশন নয় (I727f6, b/186109675)KeyboardTypeenum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়েছে। (I73045, b/187055290)FocusStateenum-এর পরিবর্তেFocusStateইন্টারফেস ব্যবহার করা হয়েছে (Iccc1a, b/187055290)- ImeAction enum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়। (I18be5, b/187055290)
PlaceholderVerticalAlign-কে ইনলাইন ক্লাসে কনভার্ট করা হয়েছে। (If6290)- TextUnitType এখন একটি ইনলাইন ক্লাস। (I4cba9)
AnnotatedString.withAnnotationফাংশনগুলি এখন ExperimentalComposeApi-এর পরিবর্তে ExperimentalTextApi. (I0cd0a)- TextUnitType সহ TextUnit কনস্ট্রাক্টর এখন ExperimentalComposeApi-এর পরিবর্তে ExperimentalTextApi.
সমস্যার সমাধান
- beta07-এ হওয়া বাগটি সমাধান করা হয়েছে, যেখানে স্ক্রল করার পরে LazyColumn/Row আইটেম আংশিকভাবে দেখানো হচ্ছিল (I8c9ac, b/188566058)
- এখন
detectDragGesures,detectVerticalGesturesওdetectHorizontalGesturesঅটোমেটিক পজিশন পরিবর্তন কনজিউম করবে, onDrag কলব্যাকে change.consumePositionChange কল করার প্রয়োজন নেই (I42fc4, b/185096350, b/187320697) - অ্যালাইনমেন্ট লাইন প্রদানকারী LayoutModifiers সংক্রান্ত সমস্যা সমাধান করা হয়েছে। বাচ্চাদের অ্যালাইনমেন্ট লাইন পরিবর্তন করার সময় পেরেন্টকে আবার পরিমাপ না করার কারণ হওয়া বাগটি সমাধান করা হয়েছে। (I4401f, b/174315652)
Modifier.onGloballyPositioned()পরিবর্তন করে মডিফায়ার চেনে এই মডিফায়ারের কোঅর্ডিনেট রিপোর্ট করা হয়েছে, সব মডিফায়ার প্রয়োগ করার পরে লেআউট কোঅর্ডিনেট নয়। এর অর্থ হল, এখন মডিফায়ারদের ক্রম নির্ধারণ করছে যে কোন কোঅর্ডিনেট রিপোর্ট করা হবে। (Ieb67d, b/177926591)
ভার্সন 1.0.0-beta07
১৮ মে, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta07 রিলিজ করা হয়েছে। 1.0.0-beta07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ইনস্পেক্টরে ব্যবহারের জন্য
ViewRootForInspectorইন্টারফেস যোগ করা হয়েছে (Ib70df) SubcomposeLayoutStateএখন আবার ব্যবহারযোগ্য স্লটের সংখ্যা সেট করার সুবিধা দেয়। লেআউট এই সংখ্যা পর্যন্ত স্লট অ্যাক্টিভ রাখবে, যাতে পরের বার নতুন স্লটের প্রয়োজন হলে আমরা সেটি আবার ব্যবহার করতে পারি (Ieb981)- KeyEventType enum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়। (Id670a, b/187055290)
FocusDirectionenum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়েছে। (Ib6d03, b/187055290, b/184086802)- SubcomposeLayout স্টেট হোয়েস্ট করার ক্ষমতা যোগ করে যা আপনাকে প্রয়োজনীয় slotId-তে কন্টেন্ট আগে থেকেই কম্পোজ করতে দেয়। এর ফলে পরবর্তী মেজার পাস আরও দ্রুত হয় কারণ প্রদত্ত slotId-এর সাথে সাবকম্পোজ করার চেষ্টা করার সময় কম্পোজ করার প্রয়োজন হয় না। (I42580, b/184940225)
- Added Clip Selection Handle (Iff80d, b/183408447)
- LayoutInspector সাপোর্ট সংক্রান্ত অব্যবহৃত API সরিয়ে দেওয়া হয়েছে। (I2ac78)
সমস্যার সমাধান
- LazyColumn/Row এখন আগে থেকে দৃশ্যমান থাকা সর্বাধিক ২টি আইটেম অ্যাক্টিভ (ডিসপোজ করা হয়নি) রাখবে, এমনকি সেগুলি স্ক্রল করে সরিয়ে দেওয়া হলেও। এর ফলে, নতুন আইটেম কম্পোজ করার প্রয়োজন হলে কম্পোনেন্ট অ্যাক্টিভ সাবকম্পোজিশন আবার ব্যবহার করতে পারে, যা স্ক্রল করার পারফর্ম্যান্স উন্নত করে। (Ie5555)
AnnotatedString-এTextGeomerticTransformওTextDecorationপ্রয়োগ করা হবে। (I61900, b/184760917)
ভার্সন 1.0.0-beta06
৫ মে, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta06 রিলিজ করা হয়েছে। 1.0.0-beta06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নেভিগেশন জেসচারের সাথে কনফ্লিক্ট সমাধান করা (I1145e)
@ComposeCompilerApiআর@RequiresOptIn(Iab690)- অ্যাক্সেসিবিলিটি API-এর CollectionInfo ও CollectionItemInfo যোগ করা হয়েছে যা অ্যাক্সেসিবিলিটি পরিষেবার জন্য সংগ্রহ ও এর আইটেমকে চিহ্নিত করার অনুমতি দেয় (Id54ef, b/180479017)
- নির্দিষ্ট ইন্ডেক্স সহ আইটেমে ইন্ডেক্স করা আইটেম সহ তালিকা স্ক্রল করতে
SemanticsActions.ScrollToIndexযোগ করা হয়েছে এবং কীযুক্ত আইটেম সহ তালিকায় আইটেমের ইন্ডেক্স পেতেSemanticsProperties.IndexForKeyযোগ করা হয়েছে। LazyList-এর মাধ্যমে দুটি অ্যাকশনই প্রয়োগ করা হয়।SemanticsNodeInteraction.performScrollToIndexযোগ করা হয়েছে যা প্রদত্ত ইনডেক্সে একটি তালিকা স্ক্রল করে এবংSemanticsNodeInteraction.performScrollToKeyযা প্রদত্ত কী সহ আইটেমে একটি তালিকা স্ক্রল করে। (I4fe63, b/178483889, b/161584524)
- GraphicLayerInfo-তে ownerViewId যোগ করা হয়েছে (I19f62)
- অ্যাসেট, ফাইল ও FileDescriptor থেকে ফন্ট লোড করার জন্য Added Font() ওভারলোড (I5d382)
- অ্যাক্সেসিবিলিটি API
errorযোগ করা হয়েছে যা ভুল ইনপুট (I12997, b/180584804, b/182142737) থাকা নোডকে চিহ্নিত করার অনুমতি দেয় - অ্যাসেট, ফাইল ও FileDescriptor থেকে ফন্ট লোড করার জন্য
Font()ওভারলোড যোগ করা হয়েছে (I43007) - AnnotatedString সেভ করার সুবিধা
TextFieldValue.Saver-এ আছে।addTtsAnnotationযোগ করা হয়েছে এবং withAnnotation ইউটিলিটি ফাংশন সহAnnotatedString.Builder(I8cbdc, b/178446304) - TextUnit কনস্ট্রাক্টর ফাংশন যোগ করা হয়েছে
TextUnit(value: Float, type: TextUnitType)(I7ecce, b/178446304)
ভার্সন 1.0.0-beta05
২১ এপ্রিল, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta05 রিলিজ করা হয়েছে। 1.0.0-beta05 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- এক্সপেরিমেন্টাল
FocusManager.moveFocus(In)ওFocusManager.moveFocus(Out)যোগ করা হয়েছে (Ic5534, b/183746743) - পরীক্ষামূলক
performTextInputSelectionAPI যোগ করা হয়েছে (I2dcbb, b/178510628) InputEventCallbackইন্টারফেস বন্ধ করে দেওয়া হয়েছে। কোনও পাবলিক API-তে ইন্টারফেস ব্যবহার করা সম্ভব ছিল না; এবং কোডে এটি ব্যবহার করা হয়নি। (I34a02, b/184003208)- পুরনো হয়ে যাওয়া
TextLayoutResult/createTextLayoutResultফাংশন। এটি একটি অব্যবহৃত পাবলিক ফাংশন যা পরীক্ষা করার জন্য যোগ করা হয়েছে। এই ফাংশনটি Compose text API-এর জন্য ব্যবহারযোগ্য কিছু করে না। এই ফাংশনটি এখন বন্ধ করা হয়েছে এবং পরে এটি সরিয়ে দেওয়া হবে। (I80413)
সমস্যার সমাধান
ACTION_SCROLL_FORWARD,ACTION_SCROLL_BACKWARD,accessibilityActionScrollLeft,accessibilityActionScrollUp,accessibilityActionScrollRightএবংaccessibilityActionScrollDownঅ্যাক্সেসিবিলিটি স্ক্রল অ্যাকশন সংক্রান্ত সমস্যা সমাধান করা হয়েছে। স্ক্রল করার মতো কন্টেন্টের শেষ পর্যন্ত স্ক্রল না করে, এটি এখন প্রদত্ত দিকে একটি স্ক্রিন স্ক্রল করবে। (Ieccb0)- ui-test-manifest এবং ui-tooling-data থেকে AndroidManifest ফাইল এখন Android 12-এর সাথে মানানসই (I6f9de, b/184718994)
ভার্সন 1.0.0-beta04
৭ এপ্রিল, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta04 রিলিজ করা হয়েছে। 1.0.0-beta04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
SoftwareKeyboardController-এhideSoftwareKeyboardওshowSoftwareKeyboard-এর নাম পরিবর্তন করে যথাক্রমেhide()ওshow()করুন।- LocalSoftwareKeyboardController-এর জন্য সম্পূর্ণ CompositionLocal ইন্টারফেস প্রদান করুন, যাতে এটি সেট করা যায় (বিশেষ করে পরীক্ষার ক্ষেত্রে এটি কাজে লাগে) (I579a6)
- LiveRegion অ্যাক্সেসিবিলিটি API যোগ করা হয়েছে। কোনও নোডকে লাইভ অঞ্চল হিসেবে চিহ্নিত করা হলে, অ্যাক্সেসিবিলিটি পরিষেবা সেটিতে হওয়া পরিবর্তন সম্পর্কে ব্যবহারকারীকে অটোমেটিক বিজ্ঞপ্তি পাঠাবে (Idcf6f, b/172590946)
- TextOverflow.Visible যোগ করা হয়েছে। (Ic8f89)
সমস্যার সমাধান
- দ্রুত ফ্লিং করার পরে, এজে থাকা
LazyColumn/LazyRowআইটেম ভুলভাবে পজিশন করা হলে সেই সমস্যা সমাধান করা হয়েছে (Ie4d13, b/183877420) AndroidViewBindingএখন কম্পোজ হায়রার্কি থেকেAndroidViewBindingসরিয়ে দেওয়া হলেFragmentContainerView-এর মাধ্যমে বড় করা ফ্র্যাগমেন্ট সঠিকভাবে সরিয়ে দেয়। (Ib0248, b/179915946)AndroidViewBindingএখনFragmentContainerView-এর মাধ্যমে ইনফলেটেড ফ্র্যাগমেন্টকে সঠিকভাবে নেস্ট করে, যখন আপনারComposeViewFragment-এর মধ্যে থাকে। এর ফলে ফ্র্যাগমেন্টের স্টেট সেভ ও রিস্টোর করা সংক্রান্ত সমস্যা সমাধান হয়। (I70eb0, b/179915946)- Compose ViewBinding এখন
Fragment
1.3.2-এর উপর নির্ভর করে এবং কনফিগারেশনে পরিবর্তন করার পরে এখনFragmentContainerView-এর মাধ্যমে ইনফলেটেড ফ্র্যাগমেন্টকে ধারাবাহিকভাবে দেখায়। (I0743d, b/179915946)
ভার্সন 1.0.0-beta03
২৪ মার্চ, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta03 রিলিজ করা হয়েছে। 1.0.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- ComposeView-এর ViewTree নির্ভরতা ডিফার করা চেক (I8dbbf, b/182466548)
swipeUp/swipeDown/swipeLeft/swipeRightফাংশনেGestureScope-এ ঐচ্ছিকstartX/endXএবংstartY/endYপ্যারামিটার যোগ করা হয়েছে। (I49e2d, b/182063305)
ভার্সন 1.0.0-beta02
১০ মার্চ, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta02 রিলিজ করা হয়েছে। 1.0.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- TextField-এ আগের SoftwareKeyboardController ইন্টারফেস
পরিবর্তন করতে নতুন
LocalSoftwareKeyboardControllercomposition local API যোগ করা হয়েছে। (I5951e, b/168778053) - TextField-এ আগের SoftwareKeyboardController ইন্টারফেস
পরিবর্তন করতে নতুন
LocalSoftwareKeyboardControllercomposition local API যোগ করা হয়েছে। (I84472, b/168778053) - নিচের
SemanticsMatcherগুলি সরিয়ে দেওয়া হয়েছে:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(If16bd)
- নিম্নলিখিত
SemanticsMatchers-কে @ExperimentalTestApi হিসেবে চিহ্নিত করা হয়েছে:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(Ia600c)
- নিম্নলিখিত
SemanticsMatchers যোগ করা হয়েছে:hasWidth(width, tolerance)hasHeight(height, tolerance)hasLeftPosition(left, tolerance)hasTopPosition(top, tolerance)hasRightPosition(right, tolerance)hasBottomPosition(bottom, tolerance)(I2f502)
সমস্যার সমাধান
- এক্সপেরিমেন্টাল API-এর (I6aa29, b/174531520) সর্বজনীন ব্যবহারের উপর বিধিনিষেধ আরোপ করা
androidx.compose.ui:uiআর AppCompat বা Fragment-এর উপর নির্ভর করে না। আপনি যদি নিজের অ্যাপ্লিকেশনে ComposeView ব্যবহার করেন এবং Fragment এবং/অথবা AppCompat ব্যবহার করেন, তাহলে নিশ্চিত করুন যে আপনি AppCompat 1.3+ / Fragment 1.3+ ব্যবহার করছেন - ComposeView-এর জন্য প্রয়োজনীয় লাইফসাইকেল এবং সেভ করা স্টেট মালিকদের সঠিকভাবে সেট করার জন্য এই ভার্সনগুলি প্রয়োজন। (I1d6fa, b/161814404)- নেভিগেশন-কম্পোজের মধ্যে ব্যবহার করা হলে, ভাঙা
rememberSaveable { mutableStateOf(0) }ঠিক করা হয়। (I1312b, b/180042685, b/180701630) - TextField-এ আগের SoftwareKeyboardController ইন্টারফেস
পরিবর্তন করতে নতুন
LocalSoftwareKeyboardControllercomposition local API যোগ করা হয়েছে। (I658b6, b/168778053) ComposeRootRegistry-এ NoSuchElementException সংক্রান্ত বিরল সমস্যা সমাধান করা হয়েছেtearDownRegistry()(Iddce1)
ভার্সন 1.0.0-beta01
২৪ ফেব্রুয়ারি, ২০২১
androidx.compose.ui:ui-*:1.0.0-beta01 রিলিজ করা হয়েছে। 1.0.0-beta01 ভার্সনে এইসব কমিট আছে।
এটি হল Compose 1.0.0 Beta-এর প্রথম রিলিজ।
API-তে পরিবর্তন
detectDragGestures-এ onStart কলব্যাক যোগ করা হয়েছে (I67269, b/179995594)- ইনট্রিনসিকের সাইজিংয়ের জন্য মডিফায়ার আর পরীক্ষামূলক নয়। (I15744)
- MeasureBlocks-এর নাম পরিবর্তন করে MeasurePolicy রাখা হয়েছে, এটি একটি মজাদার ইন্টারফেস হয়ে গেছে। MeasurePolicy ব্যবহার করার জন্য লেআউট API আপডেট / সরল করা হয়েছে। (Icab48, b/167662468, b/156751158)
InteractionState-এর পরিবর্তে[Mutable]InteractionSourceব্যবহার করা হয়েছে- ইন্টার্যাকশন ইভেন্ট নির্গমন / সংগ্রহের জন্য ইন্টারফেস দায়ী।
ButtonওModifier.clickable()-এর মতো কম্পোনেন্টেinteractionState = remember { InteractionState() }পাস করার পরিবর্তে,interactionSource = remember { MutableInteractionSource() }ব্যবহার করুন।- এর পরিবর্তে:
Interaction.Pressed in interactionStateএর পরিবর্তে, আপনাকে InteractionSource-এ এক্সটেনশন ফাংশন ব্যবহার করতে হবে, যেমন InteractionSource.collectIsPressedAsState()। - জটিল ব্যবহারের ক্ষেত্রে, ইন্ট্যার্যাকশনের স্ট্রিম পর্যবেক্ষণ করতে আপনি InteractionSource.interactions ব্যবহার করতে পারেন। আরও তথ্যের জন্য InteractionSource ডকুমেন্টেশন ও নমুনা দেখুন।
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- CompositionLocals-এ AccessibilityMananger ইন্টারফেস এবং LocalAccessibilityMananger যোগ করুন (I53520)
- পুরনো হয়ে যাওয়া LayoutCoordinates পদ্ধতি সরানো হয়েছে, positionInParent ও boundsInParent-এর জন্য প্রপার্টির পরিবর্তে ফাংশন ব্যবহার করুন (I580ed, b/169874631, b/175142755)
- আন্ডারলায়িং টাইপ দিয়ে টাইপএলিয়াস প্রতিস্থাপন করা হয়েছে:
ColorStopএখনPair<Float, Color>হয়ে গেছেSpanStyleRangeএখন `AnnotatedString.RangeParagraphStyleRangeএখনAnnotatedString.Range<ParagraphStyle>হয়ে গেছেStringAnnotationএখনAnnotatedString.Range<String>হয়ে গেছে- (I8dd1a)
- CoreTextField-এর মতো লো লেভেল টেক্সট কম্পোনেন্ট থেকে ইনপুট সেশনের জন্য নতুন TextInputSession তৈরি করা হয়েছে। (I8817f, b/177662148)
- Placeable এখন measuredSize দেখায়, এটি সেই সাইজ যা চাইল্ড লেআউট আসলে পরিমাপ করে। এই সাইজ পরিমাপ সংক্রান্ত বিধিনিষেধ মেনে নাও চলতে পারে। (Ib2729, b/172560206, b/172338608)
- অ্যাক্সেসিবিলিটির উদ্দেশ্যে ট্যাব বা রেডিও বোতামের সংগ্রহকে চিহ্নিত করার অনুমতি দেয় এমন selectionGroup মডিফায়ার যোগ করুন (Ie5c29)
compositionLocalOfওstaticCompositionLocalOf-এর জন্যdefaultFactoryএখন প্রয়োজন, ঐচ্ছিক নয়।যেখানে কোনও ডিফল্ট ফ্যাক্টরি প্রদান করা হয়নি, সেখানে এই পরিবর্তনটি নন-নাল টাইপের জন্য সম্ভাব্য টাইপ সংক্রান্ত সমস্যা সরিয়ে দেয়। আগে এটি নন-নাল ধরনের জন্য একটি নাল রেফারেন্স প্রদান করত।
নাল হতে পারে এমন ধরনের জন্য,
{ null }কে ডিফল্ট ফ্যাক্টরি হিসেবে সাপ্লাই করার কথা বিবেচনা করুন।আমরা নাল মান গ্রহণ করে না এমন ধরনের লোকাল ভেরিয়েবল ব্যবহার করার সাজেশন দিই না, যদি না কোনও যুক্তিসঙ্গত ডিফল্ট মান প্রদান করা যায়। কোনও উপযুক্ত ডিফল্ট না থাকলে,
defaultFactorylambda-কে একটি ব্যতিক্রম দেখাতে হবে। তবে, কোনও ব্যতিক্রম ঘটানো মানে হল যে লোকালের কনজিউমারদের এটি প্রদান করার উপর একটি অন্তর্নিহিত নির্ভরতা থাকবে যা টাইপ সিস্টেম দ্বারা এনফোর্স করা হয় না। (Ifbd2a)ui মডিউল থেকে পুরনো হয়ে যাওয়া পদ্ধতি সরিয়ে দেওয়া হয়েছে (I646f6)
সাইজ মডিফায়ারগুলির নাম পরিবর্তন করা হয়েছে। Modifier.width/height/size-এর নাম পরিবর্তন করে requiredWidth/requiredHeight/requiredSize করা হয়েছে। Modifier.preferredWidth/preferredHeight/preferredSize-এর নাম পরিবর্তন করে width/height/size করা হয়েছে। (I5b414)
Modifier.tapGestureFilterসরানো হয়েছে৷ পরিবর্তেModifier.pointerInput { detectTapGestures(...) }ব্যবহার করুন। (I266ed, b/175294473)পয়েন্টার ইনপুট সিস্টেম থেকে আংশিক কনজাম্পশন সরিয়ে দেওয়া হয়েছে। আংশিক কনজাম্পশন কোঅর্ডিনেট করার সাজেস্ট করা উপায় হল Modifier.nestedScroll. (Ie9c9b)
ওরিয়েন্টেশন ফাউন্ডেশন প্যাকেজে সরিয়ে দেওয়া হয়েছে। VelocirtTracker ui.gesture থেকে ui.input.pointer-এ সরানো হয়েছে। (Iff4a8, b/175294473)
imageResource এবং vectorResource এখন ImageBitmap এবং ImageVector কম্প্যানিয়নের এক্সটেনশন ফাংশন হিসেবে কাজ করে।
load{Image,Vector,Font}Resourceফাংশন মুছে দেওয়া হয়েছে। (I89130)AnimationClockObservable ও এর সাবক্লাস সরিয়ে দেওয়া হয়েছে। AnimatedFloat সরিয়ে দেওয়া হয়েছে। (Icde52, b/177457083)
Providers-এর নাম পরিবর্তন করে CompositionLocalProvider করা হয়েছে
- Composition কনস্ট্রাক্টর আর কোনও কী প্যারামিটার গ্রহণ করে না এবং এটি বন্ধ করে দেওয়া হয়েছে।
- currentCompositeKeyHash-কে কম্পোজেবল টপ লেভেল ফাংশনের পরিবর্তে কম্পোজেবল টপ লেভেল প্রপার্টিতে পরিবর্তন করা হয়েছে।
- CompositionData ও CompositionGroup-কে androidx.compose.runtime.tooling নেমস্পেসে সরানো হয়েছে
- ComposableLambda-কে কনক্রিট ক্লাসের পরিবর্তে ইন্টারফেস করা হয়েছে এবং এতে আর কোনও টাইপ প্যারামিটার নেই।
- ComposableLambdaN-কে কনক্রিট ক্লাসের পরিবর্তে ইন্টারফেস করা হয়েছে এবং এতে আর কোনও টাইপ প্যারামিটার নেই।
- snapshotFlow ফাংশনটি androidx.compose.runtime নেমস্পেসে সরানো হয়েছে
- SnapshotMutationPolicy-এর মার্জ করার পদ্ধতি আর পরীক্ষামূলক নয়
- @TestOnly টপ লেভেল clearRoots ফাংশন সরিয়ে দেওয়া হয়েছে। এটি আর প্রয়োজনীয় নয়।
- keySourceInfoOf ও resetSourceInfo ফাংশন সরিয়ে দেওয়া হয়েছে। সেগুলির আর প্রয়োজন নেই।
- Composer.collectKeySourceInformation সরিয়ে দেওয়া হয়েছে। এটি আর প্রয়োজনীয় নয়।
- isJoinedKey, joinedKeyLeft এবং joinedKeyRight পদ্ধতি সরিয়ে দেওয়া হয়েছে। সেগুলির আর প্রয়োজন নেই।
- বিভিন্ন টপ লেভেল API সরিয়ে দেওয়া হয়েছে এবং আলাদা আলাদা ফাইলে নতুন করে সাজানো হয়েছে। Kotlin-এর ফাইল ক্লাস সিম্যান্টিক্সের কারণে, এটি বাইনারি কম্প্যাটিবিলিটি ভেঙে দেবে, তবে সোর্স কম্প্যাটিবিলিটি ভাঙবে না, তাই বেশিরভাগ ব্যবহারকারীর জন্য এটি কোনও সমস্যা হওয়ার কথা নয়।
- (I99b7d, b/177245490)
compose:ui থেকে
ComponentActivity.setContent()সরিয়ে দেওয়া হয়েছে।androidx.activity:activity-compose:1.3.0-alpha01থেকে একটি ব্যবহার করুন। compose:ui থেকেviewModel()ওLocalViewModelStoreOwnerসরিয়ে দেওয়া হয়েছে।androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01(I6f36b) থেকে নেওয়াগুলি ব্যবহার করুনModifier.scrollable-এর উপর নতুন করে কাজ করা হয়েছে। এখন এটি ScrollableController ক্লাসের পরিবর্তে স্ক্রল করা যায় এমন ইন্টারফেস ব্যবহার করে (I4f5a5, b/174485541, b/175294473)
PointerInputModifier থেকে CustomEvens সংক্রান্ত সহায়তা সরিয়ে দেওয়া হয়েছে (I02707, b/175294473)
SnapshotStateObserver আর পরীক্ষামূলক নয় (Id2e6a)
আগে বাতিল করা কিছু API মুছে দেওয়া হয়েছে (Ice5da, b/178633932)
longPressGestureFilter ও doubleClickGestureFilter সরিয়ে দেওয়া হয়েছে। helper ফাংশন সহ Modifier.pointerInput ব্যবহার করুন, যেমন detectTapGestures (I2fedf, b/175294473)
String.format API সরিয়ে দেওয়া হয়েছে বিভিন্ন toString পদ্ধতিতে রিফ্যাক্টর করা ব্যবহার String.format ইন্টার্নালি ব্যবহার না করার জন্য। (Id1290)
সরানো dp অ্যাসার্শন (I798d2)
androidx.compose.runtime:runtime-dispatch সরানো হয়েছে (I55feb)
টেক্সট অ্যাকশন এখন অটোমেটিক ফোকাস চেক করে (I13777, b/179648629)
সরানো হয়েছে
runBlockingWithManualClock(I15cdc, b/179664814)Modifier.verticalScroll()/horizontalScroll()-এ স্ক্রল পজিশন এখন Ints দিয়ে দেখানো হয় (I81298)
FlingConfig-এর নাম পরিবর্তন করে FlingBehavior করা হয়েছে। এখন এটি পূর্বনির্ধারিত Decays-এর পরিবর্তে সাসপেন্ড অ্যানিমেশন কাস্টমাইজ করার অনুমতি দেয়। (I02b86, b/175294473)
একটি হেল্পার ফাংশন যোগ করা হয়েছে যা সব ImeAction কলব্যাকের জন্য একই অ্যাকশন সেট করতে সাহায্য করে (I63447, b/179226323)
নতুন API শীঘ্রই প্রকাশ করা হবে, তাই সব টেক্সট ফিল্ড থেকে SoftwareKeyboardController কলব্যাক সরিয়ে দেওয়া হয়েছে। (Iae869, b/168778053)
FontSpan ও FontWeigthStyleSpan আর ব্যবহার করা হয় না এবং সরিয়ে দেওয়া হয়েছে। (Ie5b56, b/177423444)
নিম্নলিখিত Material API পরিবর্তন করা হয়েছে:
- ডিফল্ট প্যাডিং কাস্টমাইজ করার অনুমতি দিতে Top/BottomAppBar-এ contentPadding প্যারামিটার যোগ করা হয়েছে।
- প্রয়োজনীয় প্যারামিটারকে ঐচ্ছিক প্যারামিটারের আগে রাখার জন্য API নির্দেশিকা মেনে BackdropScaffold-এ প্যারামিটারগুলি আবার সাজানো হয়েছে।
selectedওonClick-এর পরে BottomNavigationItem-এiconপ্যারামিটার সরানো হয়েছে।- BottomNavigationItem-এ
alwaysShowLabelsপ্যারামিটারের নাম পরিবর্তন করেalwaysShowLabelকরা হয়েছে। - কয়েকটি কম্পোনেন্টে
bodyContentপ্যারামিটারের নাম পরিবর্তন করে শুধুcontentকরা হয়েছে। ButtonDefaults.buttonColors()-এ প্যারামিটার আবার সাজানো হয়েছে। মনে রাখবেন, প্যারামিটারের ধরন পরিবর্তন না হওয়ার কারণে, এটি আপনার কোডে কোনও সমস্যা সৃষ্টি করবে না - আপনি যে নামযুক্ত প্যারামিটার ব্যবহার করছেন তা নিশ্চিত করুন অথবা ম্যানুয়ালি অর্ডারিং আপডেট করুন, অন্যথায় আপনার কোড আগের মতো কাজ করবে না।darkColors()-এsecondaryVariantপ্যারামিটার যোগ করা হয়েছে। এই রঙটি সাধারণত ডার্ক থিমেsecondary-এর মতো একই রকম, তবে সামঞ্জস্য এবং আরও কাস্টমাইজেশনের জন্য যোগ করা হয়েছে।- পাবলিক API সারফেস থেকে ElevationDefaults এবং animateElevation() সরিয়ে দেওয়া হয়েছে কারণ সেগুলি সাধারণত ব্যবহার করা হয় না / প্রয়োজনীয় নয়।
Slider-এonValueChangeEnd-এর নাম পরিবর্তন করেonValueChangeFinishedকরা হয়েছে এবং এটিকে নাল করা হয়েছে।- সামঞ্জস্য বজায় রাখতে
Snackbar-এtextপ্যারামিটারের নাম পরিবর্তন করেcontentকরা হয়েছে। - ডিফল্ট প্যাডিং কাস্টমাইজ করার অনুমতি দিতে
DropdownMenuItem-এcontentPaddingপ্যারামিটার যোগ করা হয়েছে এবংRowScope-এcontent-কে এক্সটেনশন হিসেবে তৈরি করা হয়েছে। ModalDrawerLayout-এর নাম পরিবর্তন করেModalDrawerকরা হয়েছে।BottomDrawerLayout-এর নাম পরিবর্তন করেBottomDrawerকরা হয়েছে।- (I1cc66)
সমস্যার সমাধান
- Compose-এ AnimatedVectorDrawable রিসোর্স ব্যবহার করার জন্য API যোগ করা হয়েছে। AnimatedImageVector হিসেবে
<animated-vector>XML লোড করতে এবং painterFor (I8ea91) দিয়ে সেটি অ্যানিমেট করতে animatedVectorResource ব্যবহার করুন - TextField-এ আগের SoftwareKeyboardController ইন্টারফেস পরিবর্তন করতে নতুন LocalSoftwareKeyboardController কম্পোজিশন local API যোগ করা হয়েছে। (I658b6, b/168778053)
ভার্সন 1.0.0-alpha12
১০ ফেব্রুয়ারি, ২০২১
androidx.compose.ui:ui-*:1.0.0-alpha12 রিলিজ করা হয়েছে। 1.0.0-alpha12 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- UiApplier থেকে ViewGroups-এর জন্য সহায়তা সরিয়ে দেওয়া হয়েছে। সিস্টেম থেকে বাতিল করা emitView কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। (Ifb214)
- Modifier.pointerInput-এর এখন মনে রাখার কী প্রয়োজন হয়, যাতে নতুন ডিপেন্ডেন্সির জন্য পয়েন্টার ইনপুট ডিটেকশন কোরাউটিন কখন রিস্টার্ট করতে হবে তা বোঝা যায়। (I849cd)
- CompositionReference-এর নাম পরিবর্তন করে CompositionContext করা হয়েছে (I53fcb)
- Bounds-এর নাম পরিবর্তন করে DpRect (I4b32a) করা হয়েছে
- টেস্টিং আপডেট: hasText() টেক্সট ফিল্ডে ইনপুট ও লেবেল/হিন্ট/প্লেসহোল্ডার টেক্সট, দু'টিই চেক করবে (Iab803)
- viewModel() composable এবং LocalViewModelStoreOwner-কে androidx.lifecycle.viewmodel.compose-এ সরানো হয়েছে। এটি ব্যবহার করার জন্য আপনাকে এখন androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 নামে একটি আলাদা ডিপেন্ডেন্সি যোগ করতে হবে। (I7a374)
- AccessibilityAction-এ নাল অ্যাকশনকে অনুমতি দিন, AccessibilityAction-এ অ্যাকশন লেবেল এবং CustomAccessibilityAction-এ CharSequence থেকে String-এ পরিবর্তন করুন (I0dc82)
- ImageBitmap ও ImageVector-এর সাথে নামের কনভেনশন আরও ভালোভাবে ম্যাচ করানোর জন্য, ImagePainter-এর নাম পরিবর্তন করে BitmapPainter রাখা হয়েছে, যা VectorPainter-এর সমান্তরাল। (Iba381, b/174565889)
- সাবস্ট্রিং এখন আর্গুমেন্ট হিসেবে (Icbe78) সহ আরও ভাল সাবস্ট্রিং টেস্ট API
- এমন একটি
Modifier.focusOrder()যোগ করা হয়েছে যা কাস্টম ফোকাস অর্ডার নির্দিষ্ট না করেই FocusRequester গ্রহণ করে। এটি তখন কাজে লাগে যখন আমাদের শুধুমাত্র একটি রেফারেন্স নির্দিষ্ট করতে হয় কিন্তু কম্পোজ করার উপযুক্ত আইটেমের (I4f52a, b/179180978) জন্য কাস্টম ফোকাস অর্ডার নয় - ComponentActivity.setContent androidx.activity:activity-compose মডিউলের মধ্যে androidx.activity.compose.setContent-এ সরানো হয়েছে। (Icf416)
- ডিস্ট্রাকচারিং ও copy() পদ্ধতিকে বিভিন্ন ক্লাস থেকে সরিয়ে দেওয়া হয়েছে, কারণ সেগুলি খুব কমই ব্যবহার করা হত। (I26702, b/178659281)
- পপ-আপ সরিয়ে প্ল্যাটফর্ম নির্দিষ্ট করা হয়েছে। AndroidPopupProperties-এর নাম পরিবর্তন করে PopupProperties করা হয়েছে এবং
isFocusable-কেPopupProperties-এর (Ieeea5)focusableপ্যারামিটারে সরানো হয়েছে - প্ল্যাটফর্ম নির্দিষ্ট করার জন্য ডায়ালগ সরানো হয়েছে। AndroidDialogProperties-এর নাম পরিবর্তন করে DialogProperties করা হয়েছে। (I4ef69, b/179138130)
- LayoutNode ইন্টার্নাল করা হয়েছে (I8a7b1, b/175103944)
- Constraints.enforce-এর পরিবর্তে Constraints.constrain ব্যবহার করা হয়েছে। (I8b8ea)
- loadFontResource বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে fontResource ব্যবহার করুন। imageResource, loadImageResource, vectorResource এবং loadVectorResource বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে painterResource ব্যবহার করুন। (I6b809)
- পারফর্ম্যান্সের কারণে, ScrollAxisRange সিম্যান্টিক এখন সরাসরি Float ভ্যালুর পরিবর্তে Float রিটার্ন করা ল্যাম্বডা নেয়। (If4a35, b/178657186)
- অ্যাক্সেসিবিলিটির জন্য টেক্সট ফিল্ডের এডিট করা যায় এমন ইনপুট টেক্সট চিহ্নিত করতে EditableText সিম্যান্টিক্স এবং সিম্যান্টিক্স চেক করার জন্য সংশ্লিষ্ট টেস্ট পদ্ধতি যোগ করা হয়েছে (I8e07a)
- Made OwnerLayer/OwnerScope/OwnerSnapshotObserver internal (I4ffaf, b/175103944)
- toIntPx() ফাংশনের নাম পরিবর্তন করে roundToPx() করা হয়েছে। (I9b7e4, b/173502290)
- IntBounds-এর নাম পরিবর্তন করে IntRect করা হয়েছে এবং API উন্নত করা হয়েছে। (I1f6ff)
- API নির্দেশিকা মেনে চলার পাশাপাশি সর্বজনীন API থেকে ইন্টার্নাল ইমপ্লিমেন্টেশন ক্লাস লুকিয়ে রাখার জন্য Snapshot API আপডেট করা হয়েছে। (Id9e32)
- 'বড় করুন' ও 'ছোট করুন' শব্দার্থ সংক্রান্ত অ্যাকশন যোগ করা হয়েছে। ModalBottomSheetState-এ expand ও halfExpand যোগ করা হয়েছে (Ib5064)
- Modifier.dragGestureFilter ব্যবহার করা বন্ধ করে দেওয়া হয়েছে। পরিবর্তে
Modifier.pointerInput { detectDragGestures (...)}ব্যবহার করুন। অথবা, এক অ্যাক্সিস ড্র্যাগ করার জন্য Modifier.draggable ব্যবহার করুন (I0ba93, b/175294473) - Ambient-এর নাম পরিবর্তন করে CompositionLocal-এর সাথে ম্যাচ করানো হয়েছে। আগে অ্যাম্বিয়েন্টকে AmbientFoo নামে ডাকা হত, এখন CompositionLocals-কে LocalFoo নামে ডাকা হয়। (I2d55d)
- বন্ধ করে দেওয়া BaseTextField এখন সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে BasicTextField ব্যবহার করুন। (I71368)
- বেছে নেওয়া আইটেমটি ফাউন্ডেশনে সরানো হয়েছে। (I7892b)
- আমরা যেভাবে আগে
state { 0 }কম্পোজ করা যায় এমন ফিচার সরিয়ে দিয়েremember { mutableStateOf(0) }-এর মতো ফিচার ব্যবহার করার জন্য প্রচার করেছি, ঠিক সেইভাবেইsavedInstanceState { 0 }কম্পোজ করা যায় এমন ফিচার সরিয়ে দিতে চলেছি। আপনাকেrememberSaveable { mutableStateOf(0) }ব্যবহার করতে হবে এবং MutableState-এর মধ্যে ব্যবহৃত ধরন Bundle-এ সেভ করা গেলে এটি অটোমেটিক সেভ ও রিস্টোর করবে। আগে আপনি কাস্টম সেভার অবজেক্ট পাস করে থাকলে, এখন আপনাকেstateSaverপ্যারামিটার সহ rememberSaveable-এর নতুন ওভারলোড ব্যবহার করতে হবে। ব্যবহারটি এইরকম দেখাবে:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - অ্যাক্সেসিবিলিটির জন্য পাসওয়ার্ডের শব্দার্থ যোগ করা হয়েছে (I231ce)
- অ্যাক্সেসিবিলিটির জন্য অনির্দিষ্ট প্রগ্রেস বার চিহ্নিত করতে ProgressBarRangeInfo.Indeterminate যোগ করা হয়েছে (I6fe05)
emptyContent()ও(@Composable () -> Unit).orEmpty()ইউটিলিটি আর ব্যবহার করা হয় না কারণ এগুলি আর কোনও ইতিবাচক পারফর্ম্যান্স প্রভাব বা ভ্যালু প্রদান করে না (I0484d)snapshotFlowওwithMutableSnapshotআর পরীক্ষামূলক নয় (I6a45f)- এখন রিকম্পোজার বন্ধ করা যাবে। বন্ধ হয়ে যাওয়া রিকম্পোজাররা কম্পোজিশন চাইল্ড কোরাউটিন সম্পূর্ণ না হওয়া পর্যন্ত রিকম্পোজিশন চালিয়ে যাবে। Recomposer.shutDown-এর নাম পরিবর্তন করে cancel করা হয়েছে, যাতে close-এর সাথে এর পার্থক্য বোঝা যায়। (Ib6d76)
- UiSavedStateRegistry-এর নাম পরিবর্তন করে SaveableStateRegistry রাখা হয়েছে, AmbientUiSavedStateRegistry-এর নাম পরিবর্তন করে AmbientSaveableStateRegistry রাখা হয়েছে এবং দুটিকেই androidx.compose.runtime.saveable প্যাকেজে সরানো হয়েছে। (I30224)
- Artefact androidx:compose:runtime:runtime-saved-instance-state-এর নাম পরিবর্তন করে androidx:compose:runtime:runtime-saveable করা হয়েছে (I6dcac)
- ui প্যাকেজে অনেক পুরনো বন্ধ হয়ে যাওয়া API মুছে দেওয়া হয়েছে। (I2f2dc)
- compose:runtime-dispatch আর্টিফ্যাক্ট এখন বন্ধ করা হয়েছে। MonotonicFrameClock এখন compose:runtime-এ এবং AndroidUiDispatcher এখন compose:ui-এ পাওয়া যাবে। (Ib5c36)
- Outline.* ক্লাস আর ডেটা ক্লাস নয় (I4879e, b/178001427)
- কোনও রিপ্লেসমেন্ট ছাড়াই
view.captureToImage()সরিয়ে দেওয়া হয়েছে। (I7fcd2) - সোর্স কন্টেন্টের rgb ভ্যালু পরিবর্তন করতে ColorMatrix API ব্যবহার করা হয় ColorFilter API-কে একটি ইন্টারফেস হিসেবে রিফ্যাক্টর করা হয়েছে এবং এটি PathEffect-এর প্রয়োগের সাথে ম্যাচ করে। (Ica1e8)
- Shape-এর createOutline-এ layoutDirection প্যারামিটার যোগ করুন। এর ফলে লেআউট ডিরেকশন সচেতন শেপ তৈরি করা যায়। (I57c20, b/152756983)
- onImeActionPerformed বাতিল করা হয়েছে। এর পরিবর্তে KeyboardActions ব্যবহার করুন (If0bbd, b/179071523)
InfiniteAnimationPolicyকোরাউটিন কনটেক্সট এলিমেন্ট যোগ করা হয়েছে যা অসীম অ্যানিমেশনে প্রয়োগ করা হবে।ComposeTestRule-এর সাথে পরীক্ষা চালানোর সময় ছাড়া ডিফল্ট হিসেবে কোনও নীতি ইনস্টল করা হয় না। (I50ec4, b/151940543)- Modifier.scrollable থেকে canDrag সরিয়ে দেওয়া হয়েছে। (Id66e7, b/175294473)
- নতুন parentCoordinates প্রপার্টির জন্য অনুমতি দিতে LayoutCoordinates.parentCoordinates-এর নাম পরিবর্তন করে LayoutCoordinates.parentLayoutCoordinates করা হয়েছে। parentCoordinates প্রপার্টি এখন পেরেন্ট মডিফায়ারের LayoutCoordinates অফার করে। এর ফলে onSizeChanged() এবং onGloballyPositioned() (Idfbfd, b/177926591) আরও সম্পূর্ণভাবে ব্যবহার করা যাবে
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter এবং pressIndicaitonGestureFilter বন্ধ করা হয়েছে। এর পরিবর্তে detectTapGestures ফাংশনের সাথে Modifier.clickable বা Modifier.pointerInput ব্যবহার করুন। (I6baf9, b/175294473)
- SaveableStateRegistry-এর unregisterProvider সরানো হয়েছে। এর পরিবর্তে, registerProvider() এখন SaveableStateRegistry.Entry অবজেক্ট রিটার্ন করে যা আপনি আনরেজিস্টার করতে ব্যবহার করতে পারেন (Ic4274, b/178583739)
- rememberSavedInstanceState() ফাংশনের নাম পরিবর্তন করে rememberSaveable() করা হয়েছে এবং এটি androidx.compose.runtime.saveable প্যাকেজে সরানো হয়েছে। (I1366e, b/177338004)
- পাবলিক API থেকে CoreText ও CoreTextField সরানো হয়েছে
- পুরনো হয়ে যাওয়া SelectionContainer ওভারলোড সরানো হয়েছে
- (I99c19)
- যেসব টেস্টে Compose-কে এমন হায়ারার্কিতে ব্যবহার করা হয় যেগুলি WindowManager-এ সরাসরি যোগ করা/সরানো হয়, সেগুলি এখন আরও স্থিতিশীল। (Ie81ed, b/175765614)
- Recomposer.current() সরানো হয়েছে। [Abstract]ComposeView এখন ডিফল্ট হিসেবে লেজি ক্রিয়েটেড, উইন্ডো-স্কোপড রিকম্পোজার ব্যবহার করে, যা উইন্ডোর জন্য ViewTreeLifecycleOwner দ্বারা পরিচালিত হয়। হোস্ট লাইফসাইকেল বন্ধ থাকাকালীন রিকম্পোজিশন এবং withFrameNanos-ভিত্তিক অ্যানিমেশন টিক পজ করা থাকে। (I38e11)
- Recomposer.runningRecomposers এখন প্রসেসে চলমান কম্পোজিশন স্টেট পর্যবেক্ষণ করার জন্য রিড-অনলি RecomposerInfo-এর একটি গ্লোবাল StateFlow অফার করে। Recomposer.current()-এর পরিবর্তে এই API ব্যবহার করুন, এটি এখন অননুমোদিত। (If8ebe)
- Saver, listSaver(), mapSaver(), autoSaver-কে androidx.compose.runtime.savedinstancestate থেকে androidx.compose.runtime.saveable-এ সরানো হয়েছে (I77fe6)
- EditCommands AnnotatedString গ্রহণ করে। তবে এটি শুধুমাত্র API-তে করা পরিবর্তন এবং মাল্টি-স্টাইল টেক্সট এডিটিং এখনও কার্যকর করা হয়নি। (I4c3ea)
- আপটাইম ও সময়সীমা সরিয়ে দেওয়া হয়েছে। (Ib9bf4, b/177420019)
- CompositionData.asTree() ও সম্পর্কিত API আলাদা ui-tooling-data মডিউলে সরানো হয়েছে এবং এক্সপেরিমেন্টাল হিসেবে চিহ্নিত করা হয়েছে (Ic95b8)
- RTL ডিরেকশনে শেপের অটোমেটিক মিররিং কাজ করানোর জন্য RounderCornerShape, CutCornerShape ও CornerBasedShape-এর প্যারামিটারগুলির নাম বাঁদিক/ডানদিক থেকে পরিবর্তন করে শুরু/শেষ করা হয়েছে। অটো-মিররিং না চাইলে, সেইসব ক্ষেত্রে AbsoluteRounderCornerShape এবং AbsoluteCutCornerShape ব্যবহার করা হয়। (I61040, b/152756983)
Compose কম্পাইলার প্লাগ-ইন যে API-কে টার্গেট করে সেটি রিফ্যাক্টর করা হয়েছে যাতে কংক্রিট ক্লাসের পরিবর্তে ইন্টারফেস ব্যবহার করা যায়। এছাড়াও, ইন্টারফেসটি আর কোনও টাইপ প্যারামিটার ব্যবহার করে না।
এটি একটি ইন্টার্নাল পরিবর্তন যা সোর্স কোড কম্প্যাটিবিলিটির উপর প্রভাব ফেলবে না, তবে এটি একটি বাইনারি ব্রেকিং পরিবর্তন। (I3b922, b/169406779)
ভুলবশত পাবলিক করা StringBuilder.deleteAt ফাংশন সরিয়ে দেওয়া হয়েছে (Id6ed9)
সমস্যার সমাধান
- ভিউ হায়ারার্কিতে প্লেস করা ComposeViews, যেগুলি অন্য কম্পোজিশনের চাইল্ড, সেগুলি এখন তাদের পূর্বপুরুষদের চাইল্ড কম্পোজিশন হোস্ট করে (I92883)
- ImageBitmap অবজেক্ট লোড করার সময় রিসোর্স ড্রয়েবল ক্যাশে আবার ব্যবহার করতে, compose's imageFromResource API আপডেট করা হয়েছে। (If3627, b/178751994)
ভার্সন 1.0.0-alpha11
২৮ জানুয়ারি, ২০২১
androidx.compose.ui:ui-*:1.0.0-alpha11 রিলিজ করা হয়েছে। 1.0.0-alpha11 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- WithConstraints-এর নাম পরিবর্তন করে BoxWithConstraints করা হয়েছে এবং এটিকে foundation.layout-এ সরানো হয়েছে। (I9420b, b/173387208)
- Key.DPadUp আর ব্যবহার করা হয় না। এর পরিবর্তে Key.DirectionUp ব্যবহার করুন। (Iab335, b/177954892)
- এখন থেকে মালিকের ইন্টারফেস ইন্টার্নাল হবে। (If8e35)
- প্রোগ্র্যামাটিক্যালি ফোকাস সরানোর জন্য FocusManager.moveFocus() API যোগ করা হয়েছে। (I045cb, b/177681839)
- গ্লোবাল কোঅর্ডিনেটের পরিবর্তে উইন্ডো-রিলেটিভ কোঅর্ডিনেট ব্যবহার করার জন্য PopupPositionProvider পরিবর্তন করে। parentGlobalBounds-এর নাম পরিবর্তন করে anchorBounds করা হয়েছে এবং windowGlobalBounds-কে পরিবর্তন করে windowSize: IntSize করা হয়েছে (I2994a)
- সময়সীমা ও আপটাইমকে বড় মিলিসেকেন্ড দিয়ে পরিবর্তন করা হবে, এবং এই ধাপটি সেইসব ক্লাসে পয়েন্টার ইনপুটের নির্ভরতা সরিয়ে দেয়। (Ia33b2, b/175142755, b/177420019)
- আগে থেকেই থাকা AmbientLifecycleOwner ও AmbientViewModelStoreOwner-এর (I9a3e8, b/176756365) মতোই AmbientSavedStateRegistryOwner যোগ করা হয়েছে
- ভেক্টর গ্রাফিক্সের মূল অংশে প্রয়োগ করা টিন্টিং পার্স করার সুবিধা দিতে API-এর ভেক্টর গ্রাফিক্স আপডেট করা হয়েছে। (Id9d53, b/177210509)
- ডিভাইস আলাদা করার জন্য PointerInputChange-এ toolType যোগ করা হয়েছে (Iac787, b/175142755)
- AmbientWindowManager-এর নাম পরিবর্তন করে AmbientWindowInfo করা হয়েছে (I2686a, b/177084714, b/177084983)
- পুরনো গ্লোবাল কোঅর্ডিনেট পদ্ধতি সরিয়ে দিয়ে নতুন উইন্ডো-ভিত্তিক কোঅর্ডিনেট পদ্ধতি যোগ করা হয়েছে। (Iee284)
- Added Modifier.toolingGraphicsLayer যা পরিদর্শন চালু করা হলে গ্রাফিক্স লেয়ার মডিফায়ার যোগ করে। (I315df)
- FocusRequester.createRefs এখন পরীক্ষামূলক হিসেবে চিহ্নিত করা হয়েছে কারণ এটি পরিবর্তন হতে পারে। (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden-এর নাম পরিবর্তন করে invisibleToUser করা হয়েছে এবং @ExperimentalComposeUiApi হিসেবে চিহ্নিত করা হয়েছে। AccessibilityRangeInfo-এর নাম পরিবর্তন করে ProgressBarRangeInfo করা হয়েছে। stateDescriptionRange-এর নাম পরিবর্তন করে progressBarRangeInfo করা হয়েছে। AccessibilityScrollState-এর নাম পরিবর্তন করে ScrollAxisRange করা হয়েছে। horizontalAccessibilityScrollState-এর নাম পরিবর্তন করে horizontalScrollAxisRange করা হয়েছে। verticalAccessibilityScrollState-এর নাম পরিবর্তন করে verticalScrollAxisRange করা হয়েছে। (Id3148)
- PointerInputData সরিয়ে দেওয়া হয়েছে এবং PointerInputChange পরিবর্তন করে PointerInputData-এর সব ফিল্ড দেওয়া হয়েছে। PointerInputEvent ও PointerInputEventData ইন্টার্নাল করা হয়েছে কারণ সেগুলি কোনও পাবলিক API-তে ব্যবহার করা হয় না। (Ifff97, b/175142755)
- dp-কে র পিক্সেল কনভার্ট করার জন্য GraphicsLayerScope implement density আপডেট করা হয়েছে। (Ied528, b/176819695)
- সারি মেজর অর্ডারিং অনুসরণ করতে এবং বিভিন্ন ম্যাট্রিক্স উপস্থাপনার মধ্যে কনভার্সন করতে সাহায্য করার জন্য ইনডেক্স কনস্ট্যান্ট প্রদান করতে আপডেট করা ম্যাট্রিক্স API যা ইন্টার্নালি SkMatrix এবং Matrix4-এর মধ্যে ফ্রেমওয়ার্ক কনভার্সন লজিক ম্যাচ করে। (I432e6)
- পরীক্ষামূলক monotonicFrameAnimationClockOf পদ্ধতি (Ib753f, b/170708374) সরানো হয়েছে
- String.fintPrecedingBreak ও String.fingFollowingBreak-কে InternalTextApi-তে সরান। (I657c4)
- পাবলিক API থেকে androidx.compose.ui.util.isSurrogatePair সরিয়ে দেওয়া হয়েছে। (Ia9494)
- TransformedText.transformedText-এর নাম পরিবর্তন করে TransformedText.text
- রাখা হয়েছে
- TransformedText আর ডেটা ক্লাস (Ie672a) নয়
- নিম্নলিখিত ক্লাস থেকে
data classসরানো হয়েছে:- InlineTextContent
- LocaleList (I605c7)
- নিম্নলিখিত ক্লাসগুলি আর ডেটা ক্লাস নয়:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
- VisualTransformation-কে ফাংশনাল ইন্টারফেস হিসেবে পরিবর্তন করা হয়েছে (I3bba4)
- ফাংশন রেফারেন্স প্যারামিটার ধরন (I5e1bd) যোগ করা হয়েছে
- InspectorNode-এ ট্রান্সফর্ম করা বাউন্ড যোগ করুন (Ice42f)
সমস্যার সমাধান
- SideEffect এবং DisposableEffect API-এর (If760e) পরিবর্তে onCommit, onDispose এবং onActive বন্ধ করে দেওয়া হয়েছে
Font/FontFamily/Typeface-এর ফ্যাক্টরি ফাংশনে হওয়া পরিবর্তন
- ক্যাপিটাল লেটার দিয়ে শুরু হওয়া ফ্যাক্টরি ফাংশন যোগ করা হয়েছে
- ছোট হাতের অক্ষর দিয়ে শুরু হওয়া আগের ফ্যাক্টরি ফাংশন বন্ধ করা হয়েছে
- নতুন ফ্যাক্টরি ফাংশন সাবক্লাসের পরিবর্তে FontFamily রিটার্ন করে
- সাবক্লাসের কনস্ট্রাক্টর লুকানো হয়েছে, যাতে সেগুলি শুধুমাত্র ফ্যাক্টরি ফাংশনের মাধ্যমে কনস্ট্রাক্ট করা যায়।
- Font.asFontFamily-এর নাম পরিবর্তন করে Font.toFontFamily করা হয়েছে (I42aa7)
ComposeContentTestRuleচালু করা হয়েছে, যাComposeTestRule-এর এক্সটেনশন এবংsetContent-এর সংজ্ঞা দেয়, যাComposeTestRuleথেকে সরিয়ে দেওয়া হয়েছে।createEmptyComposeRule()এমন একটি ফ্যাক্টরি পদ্ধতি যোগ করা হয়েছে যাComposeTestRuleরিটার্ন করে এবং আপনার জন্য কোনও অ্যাক্টিভিটি লঞ্চ করে না। আপনি যখন নিজের পরীক্ষার সময় আপনার অ্যাক্টিভিটি লঞ্চ করতে চান তখন এটি ব্যবহার করুন, যেমনActivityScenario.launch(I9d782, b/174472899) ব্যবহার করাanimateAsState এখন animateFooAsState, যেখানে Foo হল অ্যানিমেট করা ভেরিয়েবলের ধরন। যেমন, Float, Dp, Offset ইত্যাদি (Ie7e25)
ছবি ও আইকনে কন্টেন্টের বিবরণ সংক্রান্ত প্যারামিটার যোগ করা হয়েছে। অ্যাক্সেসিবিলিটি পরিষেবার (I2ac4c) বিবরণ প্রদান করতে এটি ব্যবহার করা হয়
displaySize সরিয়ে দিন কারণ এটি এড়িয়ে যাওয়া উচিত। সাধারণত, onRoot() বা উইন্ডো সাইজের সাইজ ব্যবহার করা ভাল। (I62db4)
OnSizeChanged লেআউটের কন্টেন্টের সাইজ সম্পর্কে রিপোর্ট করছিল। এটি এখন মডিফায়ার চেনের মধ্যে এর পজিশনে সাইজ রিপোর্ট করে। (I36b78, b/177562900)
emit() API এবং এর সব ওভারলোড বন্ধ করে দেওয়া হয়েছে এবং ComposeNode নামে রিনেম করা হয়েছে। APIগুলি একই রকম, শুধু Compose-এর (I4137b) নামকরণ সংক্রান্ত নিয়মাবলী মেনে চলার জন্য আলাদা নাম দেওয়া হয়েছে
TextFieldValue AnnotatedString গ্রহণ করে। তবে এটি শুধুমাত্র একটি API পরিবর্তন এবং মাল্টি-স্টাইল টেক্সট এডিটিং এখনও কার্যকর করা হয়নি।
- EditingBuffer কনস্ট্রাক্টর প্যারামিটার থেকে
initialসরানো হয়েছে। (I326d5)
- EditingBuffer কনস্ট্রাক্টর প্যারামিটার থেকে
invalidate এবং compositionReference() এখন যথাক্রমে currentRecomposeScope এবং rememberCompositionReference-এর পরিবর্তে ব্যবহার করা হয়। (I583a8)
kotlin.CharSequence থেকে এক্সটেন্ড করার জন্য AnnotatedString পরিবর্তন করা হয়েছে। তাই, length ও subSequence এখন ইনস্ট্যান্স ফাংশন, এবং এক্সটেনশন ফাংশন সরিয়ে দেওয়া হয়েছে। (Iaf429)
RememberObserver, CompositionLifecycleObserver -এর পরিবর্তে ব্যবহার করা হয় এবং CompositionLifecycleObserver এখন আর ব্যবহার করা হয় না।
RememberObserverহলCompositionLifecycleObserver-এর একটি রিপ্লেসমেন্ট, যার পরিবর্তিত সিম্যান্টিক্স ও রিনেম করা পদ্ধতি রয়েছে। নতুন API-তে পরিবর্তন করার কাজটি মেকানিক্যালি করা যেতে পারে যেসব অবজেক্ট শুধুমাত্র একবার মনে রাখা হয়, এটি হল সাজেস্ট করা প্র্যাকটিস এবং এটি চালিয়ে যেতে হবে। তবে, কোনও রেফারেন্স যদি কম্পোজিশনে একাধিকবার মনে রাখা হয়, তাহলেonRemembered-কে প্রতিটি রেফারেন্সের জন্য কল করা হয়, যেখানেonEnter-কে শুধুমাত্র একবার কল করা হয়।onEnterসাবকম্পোজিশনে অবজেক্ট ব্যবহার করা হলে একাধিকবার কল করা হয়, যেমনWithConstraintsওScaffold, এর ফলে সিঙ্গেলonEnterকল গ্যারান্টি নির্ভরযোগ্য থাকে না এবং এটিRememberObserver-এর জন্য সরিয়ে দেওয়া হয়েছে।RememberObserver,onAbandonedযোগ করে যা কল করা হয় যদিRememberObserverইনস্ট্যান্স,remember-এ পাস করা কলব্যাক থেকে ফেরত আসে কিন্তু কম্পোজিশন স্টেটে মনে রাখা না হয় এবং সেই কারণে,onRememberedকখনও কল করা হবে না। কম্পোজিশন সম্পূর্ণ হওয়ার আগে কোনও ব্যতিক্রম সেটি বন্ধ করে দিলে অথবা কম্পোজিশন বাতিল করা হলে এটি হতে পারে, কারণ যে স্টেটের জন্য কম্পোজিশন তৈরি করা হচ্ছিল সেটি আর বর্তমান নেই অথবা অন্য কোনও কারণে আর প্রয়োজন নেই।RememberObserverউপরের একটি রেফারেন্স সংক্রান্ত সাজেশন অনুসরণ করার উদাহরণটি যদি কোনও এক্সটার্নাল রিসোর্স ট্র্যাক করে, তাহলেonForgottenওonAbandonedদু'টিই ইঙ্গিত করে যে রিসোর্সটির আর প্রয়োজন নেই। অবজেক্টটি যদিonRemembered-এ শুরু হওয়া কাজ ট্র্যাক করে বা রিসোর্স বরাদ্দ করে, তাহলেonAbandonedএড়িয়ে যাওয়া যেতে পারে, কারণonRememberedকল করা হলে এটি কল করা হবে না। (I02c36)২ বা তার বেশি TextUnit-এর মধ্যে বাতিল করা গাণিতিক অপারেশন। Int.sp এবং Int.em-এর মতো এক্সটেনশন ফাংশনের পরিবর্তে TextUnit.Sp এবং TextUnit.Em ফাংশন আর ব্যবহার করা হয় না। (I48369)
লাইব্রেরিতে স্পষ্টভাবে ঘোষণা করা পাবলিক রিসোর্স নেই (যেমন, public.xml-এর মাধ্যমে) এমন রিসোর্স এখন ডিফল্ট হিসেবে ব্যক্তিগত। (Ia1dcc, b/170882230)
ScrollableColumn/Row বন্ধ করা হয়েছে। আপনার কাছে অনেক বেশি স্ক্রল করার মতো কন্টেন্ট থাকলে, ScrollableColumn ব্যবহার করা LazyColumn-এর তুলনায় কম কার্যকর হয়, কারণ LazyColumn-এর মাধ্যমে আমরা শুধুমাত্র দৃশ্যমান এলিমেন্ট কম্পোজ/মাপ/ড্র করতে পারি। ব্যবহারকারীরা যাতে অদক্ষ উপায়ে কাজ না করেন, সেই জন্য আমরা ScrollableColumn ও ScrollableRow সরিয়ে দেওয়ার সিদ্ধান্ত নিয়েছি এবং পরিবর্তে LazyColumn ও LazyRow ব্যবহার করার জন্য উৎসাহিত করি। ব্যবহারকারীরা এখনও সিদ্ধান্ত নিতে পারেন যে তাদের অলস আচরণ প্রয়োজন নেই এবং সরাসরি এই ধরনের মডিফায়ার ব্যবহার করতে পারেন: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
LazyColumn/LazyRow/LazyVerticalGrid-এর স্কোপের জন্য নতুন
items(count: Int)ফ্যাক্টরি মেথড।items(items: List)এবংitemsIndexed(items: List)এখন এক্সটেনশন ফাংশন, তাই ব্যবহার করার সময় আপনাকে ম্যানুয়ালি সেগুলি ইমপোর্ট করতে হবে। অ্যারের জন্য নতুন এক্সটেনশন ওভারলোড:items(items: Array)এবংitemsIndexed(Array)(I803fc, b/175562574)ImeAction.NoAction-এর পরিবর্তে ImeAction.None ব্যবহার করুন
- ImeAction.Unspecified (Ie1bcc)-এর পরিবর্তে ImeAction.Default ব্যবহার করুন
টেস্টিংয়ে TestCoroutineDispatcher ব্যবহার করা (I532b6)
TextInputService.onStateUpdated-এর নাম পরিবর্তন করে updateState করা হয়েছে (Id4853)
TransitionDefinition-ভিত্তিক ট্রানজিশন বন্ধ করা হয়েছে (I0ac57)
TextUnitType.Inherit সরিয়ে দেওয়া হয়েছে। পরিবর্তে TextUnitType.Unspecified ব্যবহার করুন। (I9ff64)
ভার্সন 1.0.0-alpha10
১৩ জানুয়ারি, ২০২১
androidx.compose.ui:ui-*:1.0.0-alpha10 রিলিজ করা হয়েছে। 1.0.0-alpha10 ভার্সনে এইসব কমিট রয়েছে।
ব্রেকিং পরিবর্তন
ইন্টার্নাল কম্পাইলারের রিস্ট্রাকচারিং API, কম্পোজিশনের ফলে তৈরি হওয়া নোডে করা পরিবর্তনগুলিকে কম্পোজিশনের "পরিবর্তন প্রয়োগ করুন" ফেজে ব্যাচ করতে দেয়, এটি সব
@Composableফাংশন সম্পূর্ণ হওয়ার পরে করা হয়।এটি একটি আচরণগত ব্রেকিং পরিবর্তন যা অ্যাপ্লিকেশন কোডকে প্রভাবিত করতে পারে কারণ পরিবর্তন প্রয়োগ না করা পর্যন্ত ইন্টার্নাল এবং পরীক্ষামূলক API থেকে নোড আর উপলভ্য নেই। এটি সাধারণত এই ধরনের ডিপেন্ডেন্সি সহ কোডকে
SideEffectকম্পোজ করার মাধ্যমে সমাধান করা যেতে পারে, যাতে নোড তৈরি ও ইনিশিয়ালাইজ না হওয়া পর্যন্ত কোড এক্সিকিউট না হয়। (I018da)
API-তে পরিবর্তন
- কাস্টম ফোকাস ট্রাভার্সাল অর্ডার (I90cf5, b/175899543, b/170155556, b/170155429) নির্দিষ্ট করতে ব্যবহার করা যেতে পারে এমন Added Modifier.focusOrder()
- deprecated focusObserver সরানো হয়েছে, পরিবর্তে onFocusChanged বা onFocusEvent ব্যবহার করুন (I3ecb9, b/175156387)
- EditOperations API-তে পরিবর্তন
- EditOperation-এর নাম পরিবর্তন করে EditCommand করা হয়েছে
- EditOperation কনক্রিট ইমপ্লিমেন্টেশনের জন্য কমান্ড সাফিক্স যোগ করা হয়েছে
- EditCommand আর ডেটা ক্লাস নয়
- EditOperation.process ফাংশনের নাম পরিবর্তন করে applyTo করা হয়েছে
- InputEventListener-এর নাম পরিবর্তন করে InputEventCallback করা হয়েছে
- (I0a366)
- PxSquared, PxCubed, PxInverse ব্যবহার করা হয় না বলে সরিয়ে দেওয়া হয়েছে। Size.center()-কে প্রপার্টি হিসেবে পরিবর্তন করা হয়েছে। (I973f7)
- ui-test মডিউল এখন পরীক্ষা করা হচ্ছে এমন UI-এর জন্য Recomposers তৈরি করা কনফিগার করতে পারবে (Ibebd8)
- পরিবর্তিত ভেলোসিটিতে কম্পোনেন্ট পার্ট ও গাণিতিক অপারেশন থাকতে হবে। (Ib0447)
- একই ধরনের এক্সপেরিমেন্টাল API অ্যানোটেশনের (Ia4502, b/171464963) সাথে
সামঞ্জস্যপূর্ণ হতে
@ExperimentalTesting-এর নাম পরিবর্তন করে@ExperimentalTestApiকরা হয়েছে - Color.useOrElse()-এর নাম পরিবর্তন করে Color.takeOrElse() করা হয়েছে (Ifdcf5)
- অব্যবহৃত DpInverse, DpSquared এবং DpCubed ক্লাস সরিয়ে দেওয়া হয়েছে। (I4d62b)
- Constraints#satisfiedBy-এর নাম পরিবর্তন করে isSatisfiedBy করা হয়েছে। (I9cf5c)
- layoutnode-এর বাউন্ড পরিবর্তন হলে মালিককে জানানোর জন্য একটি কলব্যাক যোগ করুন। (I72fd1)
- নির্দিষ্ট করা নেই এমন কনস্ট্যান্ট সহ ইনলাইন ক্লাসের জন্য isSpecified, isUnspecified এবং useOrElse যোগ করা হয়েছে। (I93f7b, b/174310811)
[Abstract]ComposeView API-কে আরও উন্নত করে, কম্পোজ-ভিত্তিক ভিউ রিসাইকেল করার সুবিধা দেওয়া হয়েছে। এর ফলে, কম্পোজিশন ডিসপোজ করে পরে আবার সেটি রিক্রিয়েট করা যাবে। চাইল্ড কম্পোজিশন তৈরি করার জন্য উইন্ডো-স্কোপড রিকম্পোজার এবং কম্পোজিশন রেফারেন্স ইনস্টল ও ডিসকভার করার জন্য API যোগ করুন।
[Abstract]ComposeViews-এর কম্পোজিশন ডিসপোজাল স্ট্র্যাটেজি কনফিগার করার জন্য ViewCompositionStrategy যোগ করুন; ডিফল্ট আচরণ হল উইন্ডো ডিটাচ করার সময় ডিসপোজ করা। (I860ab)
Removed Any.identityHashCode() public api (I025d7)
সরাসরি ব্যবহার করার পরিবর্তে String.format ব্যবহার করার জন্য toStringAsFixed API সরিয়ে দেওয়া হয়েছে। (Iaba6b)
Toggle to foundation Strings.kt (I4a5b7, b/172366489) যোগ করুন
nativeClass-কে ui মডিউলে সরানো হয়েছে এবং এটিকে ইন্টার্নাল করা হয়েছে। equals ইমপ্লিমেন্টেশনে nativeClass-এর আপডেট করা ব্যবহার পরিবর্তে 'is MyClass' ব্যবহার করা। (I4f734)
Modifier.focus() ও Modifier.focusRequester() বন্ধ করা হয়েছে। এর পরিবর্তে Modifier.focusModifier() এবং Modifier.focusReference() ব্যবহার করুন। (I75a48, b/175160751, b/175160532, b/175077829)
SelectionManager-কে বেছে নেওয়ার মতো আইটেম সংক্রান্ত আপডেট জানানোর জন্য SelectionRegistrar.notifySelectableChange চালু করা হয়েছে। (I6ff30, b/173215242)
বিভিন্ন আউটলাইন ইমপ্লিমেন্টেশনের জন্য বাউন্ডিং রেক্ট পাওয়ার জন্য Outline.bounds প্রপার্টি যোগ করা হয়েছে। (I16e74, b/175093504)
বাতিল করা TestUiDispatcher. এর পরিবর্তে Dispatchers.Main ব্যবহার করুন (Ic171f, b/175385255)
ImeOptions এবং KeyboardOptions আর ডেটা ক্লাস নয় (I3c898, b/168684531)
VisualTransformation API-তে পরিবর্তন
- OffsetMap-এর নাম পরিবর্তন করে OffsetMapping করা হয়েছে
- OffsetMapping.identityOffsetMap-এর নাম পরিবর্তন করে OffsetMapping.Identity করা হয়েছে
- PasswordTransformation আর ডেটা-ক্লাস নয়
- OffsetMapping-কে নিজস্ব ফাইলে সরানো হয়েছে
- (I0bdf3)
Position-এর নাম পরিবর্তন করে DpOffset করা হয়েছে এবং getDistance() সরিয়ে দেওয়া হয়েছে (Ib2dfd)
Changed fun Dp.isFinite() to a val Dp.isFinite (I50e00)
সমস্যার সমাধান
- Recomposer এখন তার বর্তমান অবস্থার একটি ফ্লো প্রকাশ করে, যা এর অ্যাক্টিভিটি এবং সংশ্লিষ্ট এফেক্টের অ্যাক্টিভিটি মনিটর করার অনুমতি দেয়। (Ifb2b9)
- nativeKeyEvent এখন keyEvent.nativeKeyEvent (I87c57, b/173086397) থেকে অ্যাক্সেস করা যাবে
animate()এখনanimateAsState()দিয়ে পরিবর্তন করা হয়েছে, যাT-এর পরিবর্তেState<T>রিটার্ন করে। এর ফলে আরও ভাল পারফর্ম্যান্স পাওয়া যায়, কারণ স্টেট ভ্যালু যেখানে রিড করা হয় সেখানে ইনভ্যালিডেশনের স্কোপ কমিয়ে আনা যায়। (Ib179e)- Semantics রোল API যোগ করুন এবং ক্লিক করা যায়, বেছে নেওয়া যায় ও টগল করা যায় এমন SemanticsModifier-এ প্যারামিটার হিসেবে রোল যোগ করুন। পরিবর্তিত Modifier.progressSemantics যাতে Slider-ও এটি ব্যবহার করতে পারে। (I216cd)
- নতুন কোরাউটিন-ভিত্তিক API
Animatableযা এর অ্যানিমেশনগুলির মধ্যে পারস্পরিক এক্সক্লুসিভনেস নিশ্চিত করে।- মাল্টি-ডাইমেনশনাল ক্ষয় অ্যানিমেশন কাজ করার জন্য নতুন DecayAnimationSpec
- (I820f2, b/168014930)
ভার্সন 1.0.0-alpha09
১৬ ডিসেম্বর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha09 রিলিজ করা হয়েছে। 1.0.0-alpha09 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- বন্ধ হয়ে যাওয়া KeyEvent.Alt এখন সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে KeyEvent.isAltPressed ব্যবহার করুন। (Idd695)
- Modifier.keyInputFilter ও Modifier.previewKeyInputFilter আর ব্যবহার করা হয় না, পরিবর্তে Modifier.onKeyEvent ও Modifier.onPreviewKeyEvent ব্যবহার করুন (Idbf1b, b/175156384)
- Modifier.focusObserver বন্ধ করা হয়েছে। পরিবর্তে Modifier.onFocusChanged বা Modifier.onFocusEvent ব্যবহার করুন (I30f17, b/168511863, b/168511484)
- পয়েন্টার ইনপুট API সাসপেন্ড করার জন্য, রিনেম করা হয়েছে HandlePointerInputScope-কে AwaitPointerEventScope এবং handlePointerInput()-কে awaitPointerEventScope() হিসেবে। (Idf0a1, b/175142755)
- অটোফিল API এখন পরীক্ষামূলক API এবং এর জন্য অপ্ট-ইন করতে হবে (I0a1ec)
- FocuSRequester ইনস্ট্যান্স তৈরি করতে ডিস্ট্রাকচারিং ঘোষণা যোগ করা (I35d84, b/174817008)
- accessibilityLabel-এর নাম পরিবর্তন করে contentDescription করা হয়েছে। accessibilityValue-এর নাম পরিবর্তন করে stateDescription করা হয়েছে। (I250f2)
- সাসপেন্ড করা পয়েন্টার ইনপুট API (Ia54d5, b/175142755) থেকে কাস্টম ইভেন্ট সরিয়ে দেওয়া হয়েছে
- SelectionRegistrar-এ একাধিক নতুন ফাংশন যোগ করা হয়েছে এবং onPositionChange-এর নাম পরিবর্তন করে notifyPositionChange করা হয়েছে। (Ifbaf7)
- LayoutNode-এর আরও মেম্বারকে আমরা ইন্টার্নাল হিসেবে চিহ্নিত করেছি (I443c6)
- টুলিং ও টেস্টিংয়ের (I9b190) জন্য LayoutInfo চালু করা হয়েছে
- AndroidOwner ইন্টার্নাল (Ibcad0, b/170296980)
- ExperimentalPointerInput অ্যানোটেশন সরানো হয়েছে (Ia7a24)
- নেস্টেড স্ক্রল সিস্টেম যোগ করা হয়েছে। আরও বিবরণের জন্য Modifier.nestedScroll দেখুন (I36e15, b/162408885)
- subcomposeInto(LayoutNode) ইন্টার্নাল করা হয়েছে (Id724a)
Applierইন্টারফেস পরিবর্তন করে ট্রি তৈরির প্রক্রিয়াকে আরও সহজ করা হয়েছে। এখন ট্রি উপর থেকে নিচে না তৈরি করে নিচ থেকে উপরে তৈরি করা হয়।insert()পদ্ধতির নাম পরিবর্তন করেinsertTopDown()করা হয়েছে।insertBottomUp()নামে একটি নতুন পদ্ধতি যোগ করা হয়েছে।যে অ্যাপ্লায়ার এডিট করছে, সেটি
insertTopDown()বাinsertBottomUp()ব্যবহার করে ট্রি-তে নোড যোগ করে। কোনটি ভালো পারফর্ম করছে তার উপর নির্ভর করে এটি করা হয়।LayoutNodeওView-এর মতো কিছু ট্রি, টপ-ডাউন পদ্ধতির তুলনায় বটম-আপ পদ্ধতিতে অনেক বেশি দক্ষতার সাথে তৈরি করা যায়। এই পরিবর্তনের আগে, বটম-আপ প্রয়োগ করার জন্য ইনসার্ট স্ট্যাকের প্রয়োজন ছিল, যা প্রতিটি অ্যাপ্লায়ারে কপি করতে হত এবং পারফর্ম্যান্সের জন্য বটম-আপ কনস্ট্রাকশনের প্রয়োজন ছিল। এই পরিবর্তনের ফলে,Applierনিচ থেকে উপরে ট্রি তৈরি করতেinsertBottomUp()এবং উপর থেকে নিচে ট্রি তৈরি করতেinsertTopDown()ওভাররাইড করে। (Icbdc2)AndroidDialogProperties-এ dismissOnBackPress ও dismissOnClickOutside প্রপার্টি যোগ করা হয়েছে। এগুলি ডায়ালগের onDismissRequest ল্যাম্বডা কখন ইনভোক করা হবে তা কনফিগার করার অনুমতি দেয়। (If5e17)
রাস্টারাইজড অ্যাসেট ফর্ম্যাট (যেমন PNG) বা VectorDrawables থেকে অস্বচ্ছভাবে লোড করা Painter অবজেক্ট ম্যানেজ করতে painterResource API যোগ করা হয়েছে। গ্রাহকদের আর আগে থেকে অ্যাসেটের ধরন নির্ধারণ করতে হবে না এবং Image composables বা painter modifiers-এ ব্যবহার করার জন্য Painter অবজেক্ট পেতে এই মেথড কল করতে পারবেন। (I2c703, b/173818471)
ডিসেন্ডেন্টদের semantics মুছে ফেলতে এবং নতুন semantics সেট করতে Modifier.clearAndSetSemantics যোগ করা হয়েছে। (I277ca)
DrawScope-এর সাথে থাকার জন্য ContentDrawScope-কে ui-graphics মডিউলে সরানো হয়েছে। (Iee043, b/173832789)
স্ট্রোক করা শেপে আলাদা আলাদা প্যাটার্ন দেওয়ার জন্য PathEffect গ্রাফিক্স API প্রকাশ করা হয়েছে। PathEffect-এর প্রত্যাশিত/বাস্তবিক প্রয়োগের পরিবর্তে NativePathEffect-এর বন্ধ করে দেওয়া ব্যবহার। (I5e976, b/171072166)
Compose-এ IdlingResource ইন্টারফেস যোগ করা হয়েছে, এটি হল Espresso-এর IdlingResource-এর Compose-এ কাজ করে এমন ভেরিয়েন্ট। ComposeTestRule (I433f3) ব্যবহার করে এগুলি রেজিস্টার ও আনরেজিস্টার করা যেতে পারে
ComposeIdlingResource থেকে গ্লোবাল (আন)রেজিস্ট্রেশন এবং ComposeIdlingResource-এ ক্লকের গ্লোবাল (আন)রেজিস্ট্রেশন সরানো হয়েছে (I32660)
সমস্যার সমাধান
- অফসেট মডিফায়ারে ল্যাম্বডা এখন Float-এর পরিবর্তে IntOffset রিটার্ন করে। (Ic9ee5, b/174137212, b/174146755)
পাবলিক API থেকে SlotTable, SlotReader এবং SlotWriter সরানো হয়েছে। এগুলি আগে InternalComposeAPI হিসেবে চিহ্নিত করা হয়েছিল। এখন সেগুলি কম্পোজ মডিউলের অভ্যন্তরীণ।
কম্পোজিশন সংক্রান্ত তথ্য এক্সট্র্যাক্ট করার জন্য ui-tooling API-এর পরিবর্তে CompositionData ও CompositionGroup যোগ করা হয়েছে। এগুলি সর্বজনীন হলেও ui-tooling API-এর বাইরে ব্যবহারের জন্য উদ্দেশ্যপূর্ণ নয় কারণ এগুলি ui-tooling API-এর ব্যাখ্যা করা কাঁচা তথ্য প্রদান করে (I31a9c)
ShaderBrush রিফ্যাক্টর করা হয়েছে যাতে ড্রয়িং এনভায়রনমেন্টের সাইজিং সংক্রান্ত তথ্য উপলভ্য হলে, অলসভাবে শেডার ইনস্ট্যান্স তৈরি করা যায়। এটি এমন গ্রেডিয়েন্টকে সংজ্ঞায়িত করার জন্য উপযোগী যা কম্পোজিশন টাইমে কম্পোজ করার উপযুক্ত আইটেমের সম্পূর্ণ ড্রয়িং বাউন্ড দখল করে, কাস্টম DrawModifier ইমপ্লিমেন্টেশন ইমপ্লিমেন্ট করার প্রয়োজন হয় না।
Gradient অবজেক্টে ফ্যাক্টরি পদ্ধতির পরিবর্তে পুরনো হয়ে যাওয়া গ্রেডিয়েন্ট ফাংশন কনস্ট্রাক্টর API। (I511fc, b/173066799)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed এবং LazyRowForIndexed শীঘ্রই বন্ধ করা হবে। এর পরিবর্তে LazyColumn ও LazyRow ব্যবহার করুন (I5b48c)
সিস্টেমের আর কাজ করে না এমন BuildCompat.isAtLeastR (Idb37e)
AnnotatedString তৈরি করার জন্য buildAnnotatedString ফ্যাক্টরি ফাংশন যোগ করা হয়েছে। deprecated annotatedString builder function. (Idfe0b)
রেডিয়ানে মান কনভার্ট করার জন্য Float ও Double থেকে এক্সটেনশন পদ্ধতি সরিয়ে দেওয়া হয়েছে। এটি প্রয়োগকারী PathParser-এর মধ্যে একটি ব্যক্তিগত ফাংশন হিসেবে সরানো হয়েছে যেখানে এটি একমাত্র ব্যবহার করা হত (I25f52)
ভার্সন 1.0.0-alpha08
২ ডিসেম্বর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha08 রিলিজ করা হয়েছে। 1.0.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Add semantics action Dismiss (I2b706)
- DrawModifier API-কে androidx.compose.ui প্যাকেজ থেকে androidx.compose.ui.draw প্যাকেজে সরানো হয়েছে। বন্ধ হয়ে যাওয়া API থেকে বর্তমান API-তে মাইগ্রেশনের ব্যাপারে সাহায্য করতে টাইপএলিয়াস/সহায়ক পদ্ধতি অন্তর্ভুক্ত করার জন্য DrawModifierDeprecated.kt ফাইল তৈরি করা হয়েছে। (Id6044, b/173834241)
- Modifier.drawLayer-এর নাম পরিবর্তন করে Modifier.graphicsLayer করা হয়েছে এছাড়াও, API ফিডব্যাক অনুযায়ী সম্পর্কিত ক্লাসকে GraphicsLayer-এ আপডেট করা হয়েছে। (I0bd29, b/173834241)
- নতুন পদ্ধতি placeable.placeWithLayer() এবং placeable.placeRelativeWithLayer() যোগ করা হয়েছে যা কাস্টম লেআউট এবং লেআউট মডিফায়ারকে তাদের ড্রয়িংয়ের জন্য গ্রাফিক্স লেয়ার যোগ করার মাধ্যমে চাইল্ড প্লেস করতে দেয়। এর ফলে আমরা প্রথমে রিড্রয়িং অপ্টিমাইজ করতে পারি, তাই কোনও চাইল্ডকে সরাতে হলে আমাদের তার কন্টেন্ট রিড্রয় করতে হয় না, দ্বিতীয়ত আমরা কোনও চাইল্ডের জন্য ড্র ট্রান্সফর্মেশন প্রয়োগ করতে পারি (Ibd8f6, b/170296989, b/171493718, b/173030831)
- SubcomposeLayout ঘোষণা থেকে
<T>সরিয়ে দেওয়া হয়েছে। আপনি এখন কোনও ধরন উল্লেখ না করেই এটি ব্যবহার করতে পারবেন। (Ib60c8) - drawLayer-এর সুবিধার জন্য Modifier.scale/rotate
API যোগ করা হয়েছে।
Modifier.drawOpacity-এর নাম পরিবর্তন করেModifier.alphaকরা হয়েছেModifier.drawShadow-এর নাম পরিবর্তন করেModifier.shadowকরা হয়েছে (I264ca, b/173208140)
- PointerInputData-এর আপটাইম ও পজিশন ফিল্ডকে নন-নাল করা হয়েছে। (Id468a)
- MaterialTheme এখন বেছে নেওয়ার হ্যান্ডেল ও বেছে নেওয়ার ব্যাকগ্রাউন্ডের জন্য সঠিক রঙ সেট করে। বেছে নেওয়ার জন্য ব্যবহৃত রঙ কাস্টমাইজ করতে, নন-ম্যাটেরিয়াল অ্যাপ ম্যানুয়ালি AmbientTextSelectionColors ব্যবহার করতে পারে। (I1e6f4, b/139320372, b/139320907)
- হোস্ট উইন্ডো ফোকাসে আছে কিনা তা চেক করার জন্য WindowManager.isWindowFocused যোগ করা হয়েছে এবং WindowFocusObserver যা onWindowFocusChanged কলব্যাক প্রদান করে। (I53b2a, b/170932874)
pivotFractionXএবংpivotFractionY-কেcomponent1এবংcomponent2হিসেবে রিটার্ন করার জন্য ডিস্ট্রাকচারিং সিনট্যাক্স সহ আপডেট করা TransformOrigin API (If43c4, b/173586560)- Compose নির্দেশিকা অনুযায়ী সামঞ্জস্য আছে কিনা তা চেক করতে, কম্পোজ করা যায় এমন ল্যাম্বডা প্যারামিটারের নাম ও পজিশনের জন্য লিন্ট চেক যোগ করা হয়েছে।
এছাড়াও, লিন্ট চেক ও নির্দেশিকা অনুযায়ী, কিছু API-এর ট্রেলিং ল্যাম্বডার নাম
childrenথেকেcontent-এ মাইগ্রেট করা হয়েছে। (Iec48e) - Alt, Ctrl, Meta বা Shift মডিফায়ার কী প্রেস করা হয়েছে কিনা তা চেক করার জন্য API যোগ করা হয়েছে, যখন একটি 'কীইভেন্ট' ডিসপ্যাচ করা হয়েছে। (I50ed9)
- নতুন
Modifier.drawLayer()ওভারলোড যোগ করা হয়েছে। এটি নতুন GraphicsLayerScope-এ একটি ল্যাম্বডা ব্লক নেয় যেখানে আপনি লেয়ারের প্যারামিটার এমনভাবে ডিফাইন করেন যা স্টেট পরিবর্তন হলে রিকম্পোজিশন ও রিলেআউট এড়িয়ে যেতে দেয়। DrawLayerModifier এখন ইন্টার্নাল, এর লজিক LayoutModifier-এর placeable.placeWithLayer() পদ্ধতিতে (I15e9f, b/173030831) মাইগ্রেট করার প্রস্তুতি চলছে Ambientনামের সাফিক্স সহ পুরনো হয়ে যাওয়া অ্যাম্বিয়েন্ট সরিয়ে দেওয়া হয়েছে এবং সেগুলির জায়গায় Ambient প্রিফিক্স সহ নতুন প্রপার্টি যোগ করা হয়েছে। এটি অন্যান্য অ্যাম্বিয়েন্ট ও Compose API নির্দেশিকা মেনে করা হয়েছে। (I33440)androidx.compose.ui.text.Typeface-কেandroidx.compose.ui.text.font.Typeface-এ সরানো হয়েছে (Ic2b81)- semantics আর্গুমেন্ট mergeAllDescendants-এর নাম পরিবর্তন করে mergeDescendants করা হয়েছে। (Ib6250)
- নতুন ড্র্যাগ জেসচার ডিটেক্টর সাসপেন্ডিং পয়েন্টার ইনপুট API, যার মধ্যে ওরিয়েন্টেশন লকিং অন্তর্ভুক্ত। (Icef25)
- VectorAsset-এর নাম পরিবর্তন করে ImageVector করা হয়েছে এবং VectorAsset-এর নাম পরিবর্তন করে Builder করা হয়েছে। এটি API নির্দেশিকা অনুযায়ী ImageVector-এর একটি ইন্টার্নাল ক্লাস। কম্প্যাটিবিলিটির জন্য ImageVector.Builder-এর সাথে লিঙ্ক করতে VectorAssetBuilder-এর typealias যোগ করা হয়েছে। (Icfdc8)
- ImageBitmap-এ ImageAsset ও সম্পর্কিত পদ্ধতিগুলির নাম পরিবর্তন করা হয়েছে। (Ia2d99)
- PlacementScope-এর place()-এর জন্য zIndex প্যারামিটার যোগ করুন যাতে Modifier.zIndex() এখন LayoutModifier হিসেবে কাজ করে এবং যেকোনও কাস্টম লেআউট প্লেসমেন্ট ব্লকে (I711f7, b/171493718) তার চিলড্রেনের জন্য zIndexes সেট করতে পারে
- ui-তে ফাউন্ডেশন সিম্যান্টিক্স প্রপার্টি সরানো হয়েছে (I6f05c)
- place(Offset) ও placeRelative(Offset) বাতিল করুন। এর পরিবর্তে int অফসেট সহ ওভারলোড ব্যবহার করুন (I4c5e7)
- আগে বন্ধ হয়ে যাওয়া API সরিয়ে দেওয়া হয়েছে: Modifier.onPositioned সরিয়ে দেওয়া হয়েছে, Modifier.onGloballyPositioned ব্যবহার করুন। Modifier.onDraw সরিয়ে দেওয়া হয়েছে, Modifier.onDrawBehind ব্যবহার করুন। Modifier.plus সরিয়ে দেওয়া হয়েছে, Modifier.then ব্যবহার করুন। Color.Unset সরিয়ে দেওয়া হয়েছে, Color.Unspecified ব্যবহার করুন। PxBounds ক্লাস সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Rect ব্যবহার করুন। (Ie9d02, b/172562222)
- অ্যালাইনমেন্ট ইন্টারফেস আপডেট করা হয়েছে এবং এটি এখন কাজ করছে। (I46a07, b/172311734)
- নতুন সাসপেন্ডিং পয়েন্টার ইনপুট ব্যবহার করে ট্যাপ, ডবল ট্যাপ, লং প্রেস ও প্রেস ইন্ডিকেশনের জন্য জেসচার ডিটেক্টর যোগ করা হয়েছে। এছাড়াও, কিছু ইউটিলিটি যোগ করা হয়েছে, যা ডেভেলপারদের জন্য তাদের নিজস্ব জেসচার ডিটেক্টর লেখা আরও সহজ করে তোলে। (I00807)
LayoutIdParentData-এর জন্যid-এর নাম পরিবর্তন করেlayoutIdকরা হয়েছে।Measurable.id-এর নাম পরিবর্তন করেMeasurable.layoutIdকরা হয়েছে। (Iadbcb, b/172449643)- নতুন মাল্টিটাচ জেসচার ডিটেক্টর, যার মধ্যে রোটেট, জুম ও প্যান করার জন্য হেল্পার অন্তর্ভুক্ত। (Ic459d)
- SweepGradientShader এবং SweepGradientBrush API চালু করা হয়েছে। (Ia22c1)
- টেস্টে টাইম কন্ট্রোল (TestAnimationClock ও এর ব্যবহার) এখন পরীক্ষামূলক (I6ef86, b/171378521)
করুটিন-ভিত্তিক স্ক্রল করার API যোগ করুন:
LazyListState.snapToItem এবং LazyListState.smoothScrollBy যোগ করে, সেইসাথে স্ক্রল কন্ট্রোলের জন্য লোয়ার-লেভেল API যোগ করে। এইসব API স্ক্রলিং কন্ট্রোল করার জন্য একটি সাসপেন্ড ইন্টারফেস প্রদান করে যা স্ক্রল শেষ না হওয়া পর্যন্ত অপেক্ষা করে তারপর রিটার্ন করে। (Ie5642)
Modifier.focusable-এ ফাউন্ডেশনে যোগ করার প্রয়োজন আছে। সঠিক শব্দার্থ ও অ্যাক্সেসিবিলিটি সহ কোনও কম্পোনেন্টে ফোকাস করার মতো আচরণ যোগ করতে এটি ব্যবহার করুন। (I41eb9, b/152525426, b/162865824)
clock(I7ea3d, b/173399709)AndroidComposeTestRule এখন কাস্টম অ্যাক্টিভিটি লঞ্চার (Ib8288, b/153623653, b/154135019) গ্রহণ করতে পারে
TextLayoutResult.getLineVisibleEnd বন্ধ করা হয়েছে। পরিবর্ত হিসেবে, TextLayoutResult.getLineEnd-এ এখন একটি নতুন প্যারামিটার visibleEnd আছে। (I73282)
TextFieldValue API আপডেট করা হয়েছে
- TextFieldValue.composition রিড-অনলি করা হয়েছে
- ভুল বেছে নেওয়ার রেঞ্জের জন্য সরানো ব্যতিক্রম (I4a675, b/172239032)
টেক্সট-টু-স্পিচ ইঞ্জিনের জন্য TtsAnnotation কাজ করে। (I54cc6)
করুটিনে অ্যানিমেশন চালানোর জন্য নতুন API (Ied662)
সমস্যার সমাধান
- Box-এর অ্যালাইনমেন্ট প্যারামিটারের নাম পরিবর্তন করে contentAlignment রাখা হয়েছে। (I2c957)
- offsetPx মডিফায়ারগুলির নাম পরিবর্তন করে offset করা হয়েছে। এগুলি এখন State-এর পরিবর্তে ল্যাম্বডা প্যারামিটার নিচ্ছে। (Ic3021, b/173594846)
- TextInputService#onStateUpdated-এ resetInput প্যারামিটার যোগ করা হয়েছে (I3e8f5, b/172239032, b/171860947)
- Composable ফাংশনে মডিফায়ার প্যারামিটারের জন্য লিন্ট চেক যোগ করা হয়েছে। এই লিন্ট চেক, Compose নির্দেশিকা অনুযায়ী নামের ধরন, রিটার্ন টাইপ, ডিফল্ট ভ্যালু এবং প্যারামিটারের ক্রম চেক করে। (If493b)
- TestAnimationClock-কে MonotonicFrameClock (I1403b, b/173402197) দ্বারা পরিচালিত হতে দেওয়ার জন্য সাময়িকভাবে যোগ করা বিকল্প
- Android Typeface র্যাপার যোগ করা হয়েছে। আপনি
typefaceফাংশনের মাধ্যমে Android Typeface লোড করতে পারবেন, যেমনtypeface(Typeface.DEFAULT)। এছাড়াও,typefaceFromFontFamily()-এর নাম পরিবর্তন করেtypeface()(I52ab7) করা হয়েছে - মডিফায়ার ফ্যাক্টরি ফাংশনগুলি মডিফায়ারের এক্সটেনশন হিসেবে ডিফাইন করা হয়েছে কিনা তা চেক করার জন্য লিন্ট চেক যোগ করা হয়েছে, যাতে সেগুলি সাবলীলভাবে একসাথে চেইন করা যায়। (I07981)
- পুরনো ui-test মডিউল ও এর স্টাব (I3a7cb) সরিয়ে দিন
- Recomposer আর EmbeddingContext গ্রহণ করে না; প্রয়োজনীয় শিডিউলিং সংক্রান্ত নির্ভরতা effectCoroutineContext থেকে পাওয়া যায়। FrameManager আর ব্যবহার করা হয় না; প্ল্যাটফর্ম ইন্টিগ্রেশনকে নিজস্ব গ্লোবাল স্ন্যাপশট হ্যান্ডলিং ইনিশিয়ালাইজ করতে হবে। (I02369)
- অ্যাক্সেসিবিলিটি নোডে স্টাইল সংক্রান্ত তথ্য পাস করা। (If5e8d)
- অন্যান্য ইউনিটের সাথে সামঞ্জস্য বজায় রাখতে TextUnit.Inherit-এর নাম পরিবর্তন করে TextUnit.Unspecified করা হয়েছে। (Ifce19)
Compose UI ভার্সন 1.0.0-alpha07
১১ নভেম্বর ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha07 রিলিজ করা হয়েছে। 1.0.0-alpha07 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- নন-ইউনিফর্ম স্কেলিং ব্যবহারের ক্ষেত্রে সহায়তা করার জন্য
হরাইজন্টাল ও ভার্টিকাল
অক্ষের জন্য স্কেল
ফ্যাক্টরকে আলাদা আলাদাভাবে দেখানোর জন্য
inline class ScaleFactor
যোগ করা হয়েছে।
- ContentScale-এ computeScaleFactor মেথড যোগ করা হয়েছে
- গন্তব্য সম্পূর্ণভাবে পূরণ করার জন্য src bounds-কে স্ট্রেচ করতে অসম স্কেলিং পারফর্ম করার জন্য ContentScale.FillBounds যোগ করা হয়েছে।
- Size প্যারামিটারের সাথে ScaleFactor প্যারামিটার গণনা করতে অপারেটর পদ্ধতি যোগ করা হয়েছে।
- (Ic96a6, b/172291582)
- অ্যালাইনমেন্ট তৈরি করার জন্য BiasAlignment ও BiasAbsoluteAlignment ফ্যাক্টরি যোগ করা হয়েছে। (Iac836, b/169406772)
- কোনও ডেভেলপারকে জোর করে ফোকাস সরিয়ে দেওয়ার অনুমতি দিন। (I90372)
- Compose-এর মধ্যে ভিউয়ের জন্য এলিভেশন ড্র না করার কারণ সম্পর্কিত সমস্যার সমাধান করা হয়েছে। (If7782)
- Modifier.drawBehind-এর সাথে নামের কনভেনশন ম্যাচ করাতে ContentDrawScope -এর মধ্যে onDrawBehind API তৈরি করা হয়েছে। (I4fc3a, b/171955269)
- লেয়ার API-তে 3D ট্রান্সফর্মেশন rotationX/rotationY-কে পরিপূরক করতে ক্যামেরা ডিস্ট্যান্সের জন্য সহায়তা যোগ করুন। (I40213, b/171492100)
- কলব্যাক ছাড়া Added SelectionContainer (Ibfadb)
- ExperimentalSubcomposeLayoutApi অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। SubcomposeLayout এখন @OptIn যোগ না করেই ব্যবহার করা যাবে (I708ad)
- FirstBaseline ও LastBaseline androidx.compose.ui.layout প্যাকেজে সরানো হয়েছে (Ied2e7)
- drawShadow() মডিফায়ার থেকে অস্বচ্ছতা সরিয়ে দেওয়া হয়েছে, কারণ এটি বিভ্রান্তিকর ছিল। (I82c62, b/171624638)
- MeasureResult-কে MeasureScope-এর বাইরে সরানো হয়েছে। (Ibf96d, b/171184002)
- লেআউট সম্পর্কিত একাধিক চিহ্ন androidx.compose.ui থেকে androidx.compose.layout.ui-তে সরানো হয়েছে। (I0fa98, b/170475424)
- পুরনো হয়ে যাওয়া FocusState2 সরানো হয়েছে (I686cb, b/168686446)
- ZIndexModifier এখন ইন্টার্নাল (I1808b, b/171493718)
- অপ্রয়োজনীয় বক্সিং এড়াতে Size প্যারামিটারে lerp মেথডের আপডেট করা রিটার্ন টাইপ নন-নাল Size রিটার্ন করে। (Ib0044)
- যে কোড কম্পোজের MonotonicFrameClock-এর উপর নির্ভর করে, সেটির জন্য TestMonotonicFrameClock যোগ করা হয়েছে। এর মাধ্যমে kotlinx-coroutines-test-এর runBlockingTest ব্যবহার করে কম্পোজিশন ফ্রেম ইভেন্টের জন্য অপেক্ষা করা হয় (I4402f)
- GestureScope.localToGlobal সরানো হয়েছে (I15299, b/171462785)
onAllNodesWithSubstringফাইন্ডার যোগ করা হয়েছে (I81dd7, b/171462889)- androidx.ui.test মডিউল বন্ধ করা হয়েছে। androidx.compose.ui.test এবং androidx.compose.ui.test.junit4-এ মাইগ্রেট করুন (I452e8)
সমস্যার সমাধান
- captureToBitmap, captureToImage-এ সরানো হয়েছে। (I86385)
- foundation.Text আর ব্যবহার করা হয় না এবং এর পরিবর্তে material.Text ব্যবহার করা হয়। কোনও থিম থেকে ভ্যালু গ্রহণ করে না এমন সাধারণ, নিরপেক্ষ টেক্সট API-এর জন্য androidx.compose.foundation.BasicText দেখুন। (If64cb)
- KeyboardOptions গ্রহণ করার জন্য TextField আপডেট করুন (Ida7f3)
- KeyboardOptions-এর নাম পরিবর্তন করে ImeOptions করুন (I82f36)
- KeyboardOptions-এ KeyboardType ও ImeAction সরানো হয়েছে (I910ce)
- অ্যাম্বিয়েন্ট ভ্যালু দেওয়ার বিকল্প হিসেবে provideDefault যোগ করা হয়েছে এবং আগে কোনও অ্যাম্বিয়েন্ট ভ্যালু দেওয়া না থাকলে, শুধুমাত্র তখনই সেট করা হবে এমন অ্যাম্বিয়েন্ট ভ্যালু নির্দিষ্ট করতে এটি ব্যবহার করা যেতে পারে। (Id6635, b/171024925)
- BaseTextField বন্ধ করা হয়েছে। এর পরিবর্তে BasicTextField ব্যবহার করুন। (I896eb)
- ui-test-junit4 মডিউল যোগ করা হয়েছে (Ib91f8)
relativePaddingFrom-এর নাম পরিবর্তন করেpaddingFromকরা হয়েছে। লেআউট বাউন্ড থেকে টেক্সট বেসলাইন পর্যন্ত দূরত্ব নির্দিষ্ট করার সুবিধার জন্যpaddingFromBaselineমডিফায়ার যোগ করা হয়েছে। (I0440a, b/170633813)- SideEffect এবং DisposableEffect API-এর সাথে সামঞ্জস্য বজায় রাখতে LaunchedTask-এর নাম পরিবর্তন করে LaunchedEffect করা হয়েছে। পেশাদার পদ্ধতিকে উৎসাহিত করতে, কোনও সাবজেক্ট প্যারামিটার ছাড়া LaunchedEffect ব্যবহার করার অনুমতি দেওয়া হয় না। (Ifd3d4)
- কনফিগারেশন আপডেট হলে আবার কম্পোজ করার জন্য কম্পোজ করা যায় এমন রিসোর্স চালু করা হয়েছে। (I6387c, b/167352819)
- Recomposer-কে এখন কনস্ট্রাকশনের সময় CoroutineContext প্রয়োজন (Ic4610)
- একাধিক
Modifier.zIndex()প্রয়োগ করা হলেzIndexভ্যালু যোগ করুন। আগে প্রথম জন জিততেন। (Ic514c, b/170623936) - ইন্টার্নাল SlotTable ইমপ্লিমেন্টেশনে পরিবর্তন করা হয়েছে যা পাবলিক API-কে প্রভাবিত করবে না। (If9828)
- কীবোর্ডে অটোমেটিক সংশোধন করার IME বিকল্প যোগ করা হয়েছে (I57b8d)
- androidx.ui.test androidx.compose.ui.test-এ সরানো হয়েছে (I9ffdb)
- পাবলিক API থেকে KeyboardOptions.toImeOptions সরানো হয়েছে। (Ic2e45)
এক্সটার্নাল কন্ট্রিবিউশন
- অভ্যন্তরীণ আর্টিফ্যাক্ট androidx.compose.ui:ui-text-android (Ib93fa) প্রকাশ করা বন্ধ করা হয়েছে
ভার্সন 1.0.0-alpha06
২৮ অক্টোবর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha06 রিলিজ করা হয়েছে। 1.0.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Recomposer এখন একটি CompositionReference এবং একটি বৈধ কম্পোজিশন পেরেন্ট। এখন অনেক কম জায়গায় এক্সপ্লিসিট রিকম্পোজার প্রয়োজন হয়। (I4036f)
- কম্পোজিশন জুড়ে ডেটা পারসিস্ট করার জন্য কম্পোজ করার উপযুক্ত API ইন্টার্নালি 'remember' ব্যবহার করে তা আরও ভালোভাবে বোঝাতে, rememberVectorPainter-এর পক্ষে VectorPainter-কে বাতিল করুন। (Ifda43)
- ড্রয়িং কমান্ডের ক্রম পরিবর্তন করার ক্ষমতা প্রদান করার জন্য DrawScope-এর পরিবর্তে ContentDrawScope-কে রিসিভার স্কোপ হিসেবে এক্সপোজ করতে আপডেট করা Modifier.drawWithCache API। এটি ব্লেন্ডিং/টিন্টিং ব্যবহারের ক্ষেত্রে সহায়ক, যেখানে সংশ্লিষ্ট ব্লেন্ড মোড অ্যালগরিদম সঠিকভাবে প্রয়োগ করার জন্য কন্টেন্ট পিক্সেলকে প্রথমে রেন্ডার করতে হবে। (Ie7ec8)
- SimpleContainer-কে PopupTestUtils.kt-তে সরান (I78c57)
- ConsumedData আর ডেটা ক্লাস নয়। বিবরণের জন্য https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 দেখুন (I1737f)
- Rtl হ্যান্ডেলের পজিশন ঠিক করুন। (I6e1e0)
- DrawScope ও
ContentDrawScope-কে রিফ্যাক্টর করে অ্যাবস্ট্রাক্ট ক্লাসের
পরিবর্তে ইন্টারফেস করা হয়েছে
- CanvasDrawScope-এর প্রয়োগ DrawScope তৈরি করা হয়েছে
- CanvasScope-এর পরিবর্তে ব্যবহার করার জন্য DrawScope-এর রিফ্যাক্টর করা প্রয়োগ
- DrawScope-এর জন্য নির্ভরতা র্যাপ করতে DrawContext তৈরি করা হয়েছে
- DrawScope (I56f5e)-এ অবচিত পদ্ধতি সরানো হয়েছে
- ব্রেকিং পরিবর্তন:
PointerInputFilter.onPointerEvent(...)থেকে রিটার্ন ভ্যালু সরিয়ে দেওয়া হয়েছে, কারণ পয়েন্টার ইভেন্টে পরিবর্তন করা যায় এমন একমাত্র ভ্যালু হল কনজাম্পশন ডেটা।PointerInputFilter.onPointerEvent(...)থেকে ডেটা রিটার্ন করার পরিবর্তে, এখন আপনি শুধু পাস-ইন করা PointerEvents-এর কনজাম্পশন ডেটা মিউটেট করতে পারবেন। (I6acd0) - MeasureScope ও IntrinsicMeasureScope ইন্টারফেস হিসেবে তৈরি করা হয়েছে। (I1a087, b/170461665)
- AlignmentLine-এর জন্য মার্জ ফাংশন লুকানো ছিল। (I9da1a, b/170612900, b/170611568)
- কম্পোজ করা মডিফায়ারে পরিদর্শকের তথ্য নির্দিষ্ট করার ক্ষমতা যোগ করা হয়েছে (Idee08, b/163494569)
- বেছে নেওয়ার মেনুতে 'সব বেছে নিন' বিকল্প যোগ করা হয়েছে (Ief02b)
- ডকুমেন্টেশনের সাথে ম্যাচ করাতে
DrawTransform.rotate-কে আপডেট করে সেন্টার
পয়েন্টের ডিফল্ট পিভট প্যারামিটার নেওয়া হয়েছে।
- অন্যান্য ট্রান্সফর্মেশন পদ্ধতির সাথে ম্যাচ করাতে, পিভট পয়েন্টের জন্য অফসেট ব্যবহার করতে আপডেট করা DrawScope.rotateRad।
- সঞ্চালনের জন্য ফ্লোট গ্রহণ করে এমন অপ্রচলিত DrawScope.rotateRad ওভারলোড পিভটের x এবং y কোঅর্ডিনেট।
- (Iffcbb, b/170434992)
সমস্যার সমাধান
- androidx-এর জন্য MissingGetterMatchingBuilder-এর API লিন্ট চেক চালু করা আছে (I4bbea, b/138602561)
- টেস্ট যোগ করুন। (I6b8ae)
- ComposeTestRule-এ ট্রানজিশন চালু করুন; ComposeTestRule থেকে ব্লিঙ্ক করা কার্সর চালু করার বিকল্প সরান। (If0de3)
- KeyboardCapitalization IME বিকল্প (I8ac38) যোগ করা হয়েছে
- CoreTextField-এ সিঙ্গেল লাইন কীবোর্ড বিকল্প যোগ করা হয়েছে (I72e6d)
- SimpleContainer-কে PopupTestUtils.kt-তে সরান (I65c3e)
- Compose জুড়ে এটি কীভাবে ব্যবহার করা হয় তা আরও ভালভাবে প্রকাশ করতে Radius API-এর নাম পরিবর্তন করে CornerRadius করা হয়েছে। নেগেটিভ কোণার ব্যাসার্ধ শূন্যে ক্ল্যাম্প করা হয় তা বোঝাতে ডকুমেন্টেশন আপডেট করা হয়েছে। (I130c7, b/168762961)
ACTION_DOWN(I94c5a, b/170320973) ছাড়া সব অ্যাকশনের জন্য onTouchEvent-এর ক্ষেত্রে false রিটার্ন করে এমন চাইল্ড Android ভিউতে MotionEvents পাঠানো চালিয়ে যাওয়ার মাধ্যমে Android ইন্টার-অপারেশন উন্নত করা হয়েছে- Box-কে ইনলাইন ফাংশন হিসেবে তৈরি করা হয়েছে। (Ibce0c, b/155056091)
এক্সটার্নাল কন্ট্রিবিউশন
AnnotatedString.capitalizeওAnnotatedString.decapitalize-এর জন্য আলাদা আলাদা লোকেল কাজ করে (I4aa7f)
ভার্সন 1.0.0-alpha05
১৪ অক্টোবর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পরিদর্শক সংক্রান্ত তথ্য নির্দিষ্ট করার জন্য DSL যোগ করুন (Ic9a22)
- 'লংপ্রেস' বিকল্পটি টেক্সটে সরান। (Iff2bc)
- এক্সপেরিমেন্টাল Modifier.pointerInput সাসপেন্ড করা ইনপুট মডিফায়ার (Ia77d2)
- কপি/পেস্ট/কাট অ্যাক্সেসিবিলিটি অ্যাকশন যোগ করা হয়েছে (I6db4f)
- AndroidOwner-এর পাবলিক কনস্ট্রাক্টর সরিয়ে দেওয়া হয়েছে (Iacaef)
- পপ-আপ ও ডায়ালগ এখন প্যারেন্ট উইন্ডো থেকে FLAG_SECURE ইনহেরিট করে। এছাড়াও, এটি স্পষ্টভাবে কনফিগার করার বিকল্প যোগ করা হয়েছে (I64966, b/143778148, b/143778149)
ব্যবহার সংক্রান্ত ডেটা এখন পরিবর্তনযোগ্য। এছাড়াও এক্সটেনশন ফাংশনে কল করলে, যা কনজাম্পশন করে সেগুলি এখন আর নতুন PointerInputChange রিটার্ন করে না, তবে পরিবর্তে প্রদত্ত PointerInputChange-কে মিউট করে।
PointerEvent ডেটা পরিবর্তনযোগ্য করে তোলার জন্য এটি ২-ধাপের প্রসেসের প্রথম ধাপ, যাতে ব্যবহারকারীর কোড অন্য পয়েন্টার ডেটা এডিট করতে না পারে। দ্বিতীয় ধাপ হল
List<PointerInputChange>থেকে রিটার্নPointerInputFilter.onPointerEvent(...)টাইপ সরিয়ে দেওয়া। (Id067e)টেক্সট থেকে বেছে নেওয়ার বিকল্প বন্ধ করা এবং একটি ডেমো। (Ie7e97)
Made onGloballyPositioned an inline function (I15830)
OnPositionedModifier-এর নাম পরিবর্তন করে OnGloballyPositionedModifier এবং onPositioned()-এর নাম পরিবর্তন করে onGloballyPositioned() করা হয়েছে। (I587e8, b/169083903)
hasPendingMeasureOrLayout প্রপার্টিটি মালিকের সাথে যোগ করা হয়েছে, এটি বলে যে মালিকের কোনও লেআউট সংক্রান্ত কাজ বাকি আছে কিনা। (I3d9f8, b/169038599)
প্রোগ্রামাটিক উপায়ে ফোকাস মুছে দেওয়ার জন্য API যোগ করা হয়েছে (Ie1dc2, b/161487952)
PointerInputFilter.onPointerInput(...)সরানো হয়েছে। এর পরিবর্তেPointerInputFilter.onPointerEvent(...)ব্যবহার করা উচিত। (I6f04a)সাইজে পরিবর্তন
- Removed Size.getFlipped
- Removed Size.rem
- Removed Size.truncDiv (Ief44d, b/169790720)
ইনলাইন ক্লাসের জন্য স্ট্যান্ডার্ডাইজেশন অংশ হিসেবে, অন্যান্য ইনলাইন ক্লাসের (I97611, b/169797763) সাথে সামঞ্জস্য বজায় রাখতে Color.Unset-এর নাম পরিবর্তন করে Color.Unspecified করা হয়েছে
TextOverflow.None যোগ করা হয়েছে। ওভারফ্লো 'নেই' হলে, টেক্সট আর ওভারফ্লো ম্যানেজ করবে না এবং LayoutNode-কে এর আসল সাইজ জানাবে। (I175c9, b/158830170)
API-এর ধারাবাহিকতা বজায় রাখতে AnnotatedString.Builder.addStringAnnotation-এর মধ্যে থাকা স্কোপ প্যারামিটারের নাম পরিবর্তন করে ট্যাগ করা হয়েছে। (I7c8cb)
সমস্যার সমাধান
- প্রতিটি স্ক্রল করার সময় সাবকম্পোজিশনে কম কাজ করার মাধ্যমে LazyColumn/Row-এর স্ক্রল করার পারফর্ম্যান্স উন্নত করা হয়। Composition ক্লাসে নতুন hasInvalidations() মেথড যোগ করা হয়েছে। Recomposer থেকে hasPendingChanges() মেথডের নাম পরিবর্তন করে hasInvalidations() করা হয়েছে (Ib2f32, b/168293643, b/167972292, b/165028371)
- Size.Unspecified প্যারামিটার আপডেট করে Float.POSITIVE_INFINITY-এর পরিবর্তে Float.NaN করা হয়েছে। Size.Unspecified-এর পাশাপাশি অসীম নয় এমন সাইজের বিরুদ্ধেও চেক করার জন্য আপডেট করা Painter ইমপ্লিমেন্টেশন। (I95a7e)
- কাস্টম লেআউটে place() কলের ক্রম এখন চিলড্রেনদের (Ibc9f6) ড্র করার ক্রম নির্ধারণ করে
- অ্যাক্সেসিবিলিটির জন্য AnnotatedString থেকে SpannableString কনভার্সন কাজ করে। (Ief907)
- সম্ভব হলে রিফ্লেকশন ব্যবহার এড়াতে, পুরানো প্ল্যাটফর্মে থাকা Android ক্লাসের জন্য স্টাব যোগ করা হয়েছে। (Ia1790)
- সমস্যার সমাধান করা হয়েছে: সফ্টওয়্যার কীবোর্ড দেখানোর ফলে অ্যাপ ট্রান্সলেট করলে, পয়েন্টার ইনপুট কোঅর্ডিনেট ভুল হয়ে যেত। (Ic4cec, b/163077821)
ভার্সন 1.0.0-alpha04
১ অক্টোবর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha04 রিলিজ করা হয়েছে। 1.0.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- লেআউট ও ড্রয়িং অবজারভেশন স্কোপের মেয়াদ শেষ হয়ে গেলে সেগুলি সংগ্রহ করার অনুমতি দিতে OwnerScope যোগ করা হয়েছে। (Ic4cf8)
- কন্টেন্ট লেআউট আবার পরিমাপ করা হলে এবং সাইজ পরিবর্তন করা হলে, কলব্যাক পাওয়ার জন্য OnRemeasuredModifier ও onSizeChanged() যোগ করা হয়েছে। (I657cf, b/154108792)
- দীর্ঘক্ষণ ক্লিক করার অ্যাকশন যোগ করুন (I6281b, b/156468846)
- FocusManager ব্যক্তিগত করা হয়েছে। (I7872f)
DrawModifier-এ ঐচ্ছিক প্রপার্টি যোগ করার পরিবর্তে একটি ডেডিকেটেড DrawCacheModifier ইমপ্লিমেন্টেশন তৈরি করার জন্য আপডেট করা ইমপ্লিমেন্টেশন।
বিভিন্ন পদ্ধতির জন্য আপডেট করা ডকুমেন্টেশন (Ibd166)
অবজেক্ট তৈরি করা এড়াতে TextRange ইনলাইন করুন। (Id034b)
কাস্টম লেআউটের প্লেসমেন্ট ব্লক থেকে PlacementScope#parentWidth এবং PlacementScope#parentLayoutDirection আর পড়া যাবে না। (Icc1ae, b/168295623)
semantics প্রপার্টিতে AccessibilityScrollState যোগ করুন। (Ifeda9)
আকার/স্ট্যাটাস সংক্রান্ত তথ্যের উপর নির্ভর করে এমন ডিপেন্ডেন্সি কন্ডিশনালি রিক্রিয়েট করে এমন ড্রয়িং অবজেক্ট তৈরি করার সুবিধা দিতে Modifier.drawWithCache পরিচয় করানো হয়েছে (I376dc)
ParagraphConstraints সরিয়ে দেওয়া হয়েছে। প্রস্থ এখন সরাসরি প্যারাগ্রাফে পাস করা হয়। (Ica712)
সমস্যার সমাধান
- অনেক গ্রাফিক্স API আপডেট করা হয়েছে
- আপডেট করা স্কেল ও রোটেশন ট্রান্সফর্মেশন API, যা একটি সিঙ্গেল অফসেট প্যারামিটার ব্যবহার করে পিভট কোঅর্ডিনেটকে আলাদা আলাদা ফ্লোট প্যারামিটারের পরিবর্তে DrawScope ও DrawTransform-এ x/y কোঅর্ডিনেট হিসেবে দেখায়
- Rect.expandToInclude এবং Rect.join মেথড সরিয়ে দেওয়া হয়েছে
- উপবৃত্তাকার ছাড়াও ডিম্বাকার বলার জন্য ব্যাসার্ধ সংক্রান্ত ডকুমেন্টেশন আপডেট করা হয়েছে
- ইনলাইন Radius ক্লাসের পাবলিক কনস্ট্রাক্টর সরাসরি কল করা যাবে না, তার পরিবর্তে Radius অবজেক্টকে সেটির ফাংশন কনস্ট্রাক্টরের মাধ্যমে ইনস্ট্যানশিয়েট করতে হবে তা বোঝাতে ডকুমেন্টেশন যোগ করা হয়েছে
- topRight, bottomRight, bottomCenter, ইত্যাদির কোয়েরি করার জন্য RoundRect API সরিয়ে দেওয়া হয়েছে।
- Rect.translate-এর পরিবর্তে Rect.shift ব্যবহার করা হয় না
- RoundRect.grow ও Rect.shrink API সরিয়ে দেওয়া হয়েছে
- RoundRect.outerRect-এর নাম পরিবর্তন করে Rect.boundingRect করা হয়েছে
- Removed RoundRect.middleRect/tallMiddleRect/wideMiddleRect and Rect.isStadium methods
- RoundRect.longestSide-এর নাম পরিবর্তন করে RoundRect.maxDimension করা হয়েছে
- RoundRect.shortestSide-এর নাম পরিবর্তন করে RoundRect.minDimension করা হয়েছে
- RoundRect.center-কে ফাংশনের পরিবর্তে প্রপার্টি হিসেবে পরিবর্তন করা হয়েছে
- x/y ব্যাসার্ধের ভ্যালুর জন্য আলাদা প্যারামিটারের পরিবর্তে ব্যাসার্ধ প্রপার্টি ব্যবহার করার জন্য RoundRect কনস্ট্রাক্টর আপডেট করা হয়েছে
- Size API সরিয়ে দেওয়া হয়েছে যা ধরে নিয়েছিল যে এটি একটি আয়তক্ষেত্র যার অরিজিন হল ০,০
- Radius-এ ডেস্ট্রাক্টিং API যোগ করা হয়েছে
- বিভিন্ন RoundRect এক্সটেনশন ফাংশন মাইগ্রেট করে পরিবর্তে প্রপার্টি করা হয়েছে
- (I8f5c7, b/168762961)
- foundation.Box আর ব্যবহার করা যাবে না। পরিবর্তে foundation.layout.Box ব্যবহার করুন। (Ie5950, b/167680279)
- Stack-এর নাম পরিবর্তন করে Box করা হয়েছে। compose.foundation.layout-এ নতুন Box-এর জন্য আগে থেকে থাকা Box বাতিল করা হবে। নতুন বক্সের আচরণ হল, এতে একাধিক চাইল্ড থাকলে সেগুলিকে একটির উপরে একটি করে স্ট্যাক করা হয় - এটি আগের বক্সের থেকে আলাদা, আগের বক্সটি কলামের মতো আচরণ করত। (I94893, b/167680279)
- Box decoration প্যারামিটার বন্ধ করে দেওয়া হয়েছে। আপনার বক্সে সজ্জা/প্যাডিং রাখতে চাইলে, পরিবর্তে মডিফায়ার ব্যবহার করুন (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- অনেক গ্রাফিক্স API আপডেট করা হয়েছে
- স্কোপ করা ট্রান্সফর্মেশন পদ্ধতি সহ আপডেট করা DrawScope API, এটি বোঝাতে যে ট্রান্সফর্মেশন শুধুমাত্র কলব্যাকের মধ্যে প্রয়োগ করা হয় এবং কলব্যাক ইনভোক করার পরে সরিয়ে দেওয়া হয়
- রাউন্ডেড রেক্ট্যাঙ্গেলের পরিবর্তে Path উল্লেখ করার জন্য clipPath ডকুমেন্টেশন আপডেট করা হয়েছে
- clipPath-এ ডানদিকের প্যারামিটারের জন্য ডকুমেন্টেশনে নির্দিষ্ট স্পেসিং
- DrawScope.drawCanvas-এর নাম পরিবর্তন করে drawIntoCanvas করা হয়েছে এবং সাইজ প্যারামিটার সরিয়ে দেওয়া হয়েছে
- ইনসেট পদ্ধতিতে dx/dy প্যারামিটারের নাম পরিবর্তন করে হরাইজন্টাল ও ভার্টিক্যাল করা হয়েছে
- ইনসেট ওভারলোড যোগ করা হয়েছে যা ৪টি বাউন্ডে একই ইনসেট ভ্যালু প্রদান করে
- ইনসেট পদ্ধতি সম্পর্কে সরানো ডকুমেন্টেশন থেকে জানা যায় যে ইনসেট সব ৪টি দিকে প্রয়োগ করা হবে
- Rect ক্লাসের জন্য আপডেট করা ডকুমেন্টেশন
- kdoc স্টাইলের সাথে ম্যাচ করাতে Rect প্যারামিটার সম্পর্কিত কমেন্ট আপডেট করা হয়েছে
- Rect.join ও Rect.expandToInclude সরানো হয়েছে
- Rect.translate(offset)-এর জন্য ওভারলোড তৈরি করা হয়েছে এবং Rect.shift বাতিল করা হয়েছে
- (If086a, b/167737376)
- Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled এবং textInputServiceFactory-কে @VisibleForTesting সহ ইন্টার্নাল API হিসেবে চিহ্নিত করুন এবং তাদের kdoc লুকান (I554eb, b/168308412)
- ডিফল্ট বেছে নেওয়া বন্ধ করতে এবং অপ্রত্যাশিত আচরণ এড়াতে, সবচেয়ে উপরের SelectionContainer সরিয়ে দিন। এর পরিবর্তে বেছে নেওয়ার উপযুক্ত কন্টেন্টকে র্যাপ করার জন্য SelectionContainer ব্যবহার করা যেতে পারে। (I8dfe0, b/158459594)
ভার্সন 1.0.0-alpha03
১৬ সেপ্টেম্বর ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha03-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- 'ফরওয়ার্ড/ব্যাকওয়ার্ড স্ক্রল করা' সংক্রান্ত শব্দার্থের অ্যাকশন সরিয়ে দিন। AccessibilityRangeInfo-তে ধাপ যোগ করা হয়েছে। (Ia47b0)
OwnerথেকেonInvalidate()সরানো হয়েছে --OwnedLayerইনভ্যালিডেশন ম্যানেজ করে। (Ica72b, b/162061312)Size API-তে অফসেট প্যারামিটার ব্যবহার করে এমন অপারেটর পদ্ধতি সরিয়ে দেওয়া হয়েছে। এইসব অপারেশনের ফলাফল অস্পষ্ট এবং ফলাফলের ধরন এইসবের জন্য অপ্রত্যাশিত। যেমন, সাইজ - অফসেট রিটার্ন পার্থক্য সহ অফসেট বা সাইজের ফলাফল?
এছাড়াও, Size ক্লাসে অপ্রচলিত পদ্ধতি সরিয়ে দেওয়া হয়েছে। (Iec902, b/166514214)
সমস্যার সমাধান
- LazyColumn-এর আইটেম কখনও কখনও ভুলভাবে ড্র করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে, এর ফলে কিছু ক্ষেত্রে ক্র্যাশও হচ্ছিল। (Ibcf17, b/163066980, b/165921895)
- DpConstraints এবং এটি ব্যবহার করে এমন API-এর ব্যবহার বন্ধ করে দেওয়া হয়েছে। (I90cdb, b/167389835)
createAndroidComposeRuleওAndroidInputDispatcher-কেandroidx.ui.test.androidথেকেandroidx.ui.test-এ সরানো হয়েছে (Idef08, b/164060572)- লেআউট API-তে অ্যালাইন বা অ্যালাইনমেন্টের সাথে সামঞ্জস্য রেখে গ্র্যাভিটি শব্দটির ব্যবহার ধারাবাহিকভাবে রিনেম করা হয়েছে। (I2421a, b/164077038)
- ComposeTestRule-এ onNode ও অন্যান্য গ্লোবাল মেথড যোগ করা হয়েছে, কারণ বর্তমান গ্লোবাল মেথডগুলি আর ব্যবহার করা যাবে না। (Ieae36)
ভার্সন 1.0.0-alpha02
২ সেপ্টেম্বর, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha02-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- layoutnode-এর বাউন্ড পরিবর্তন হলে মালিককে জানানোর জন্য কলব্যাক সরান। (If654e, b/166106882)
- evenOdd বা NonZero পাথ ফিল নিয়ম অনুযায়ী শেপের কাট-আউটকে সাপোর্ট করতে, ভেক্টর গ্রাফিক্স পাথে filltype প্যারামিটার যোগ করা হয়েছে। (I43dd2)
- আপটাইম ও ভেলোসিটি এখন ইনলাইন ক্লাস (I48f4a)
- সময়সীমা এখন একটি ইনলাইন ক্লাস (I565eb)
- layoutnode-এর বাউন্ড পরিবর্তন হলে মালিককে জানানোর জন্য একটি কলব্যাক যোগ করুন। (Ic40b3)
অফসেট ও রেডিয়াস সহ Rect ফাংশন কনস্ট্রাক্টর যেখানে লেফট, রাইট, টপ, বটম অর্ডারে Rect তৈরি করত, সেখানে লেফট, টপ, রাইট, বটম অর্ডারে Rect তৈরি করার সমস্যা সমাধান করা হয়েছে।
ফাংশন কনস্ট্রাক্টরের পক্ষে Rect-এ বাতিল করা কম্প্যানিয়ন পদ্ধতি সরানো হয়েছে।
Rect.kt-তে পদ্ধতি যাচাই করার জন্য টেস্ট যোগ করা হয়েছে (I08460, b/165822356)
সমস্যার সমাধান
- পরিবর্তনযোগ্য আয়তক্ষেত্র MutableRect যোগ করা হয়েছে। (I71bd2, b/160140398)
- Matrix4-এর পরিবর্তে Matrix ব্যবহার করা হয়েছে। vectormath প্যাকেজের অন্যান্য সব অংশ সরিয়ে দেওয়া হয়েছে। (Ibd665, b/160140398)
কম্পোজেবল ফাংশনের কলিং কনভেনশন পরিবর্তিত হয়েছে। এটি বাইনারি ব্রেকিং পরিবর্তন। Compose কম্পাইলার প্লাগ-ইনের এই ভার্সনের সাথে কাজ করার জন্য সব লাইব্রেরি আবার কম্পাইল করতে হবে।
এই পরিবর্তন সোর্স লেভেলে কোনও ব্রেকিং পরিবর্তন তৈরি করে না, কারণ পরিবর্তিত API হল কম্পাইলার API যেগুলিতে একটি স্পষ্ট অপ্ট-ইন আছে। (I7afd2, b/158123185)
PointerInputFilter-এ ডিসপ্যাচ করার সময় ক্র্যাশ হতে পারে এমন সমস্যার সমাধান করা হয়েছে। এর ফলে PointerInputFilter সিঙ্ক্রোনাসভাবে সরিয়ে দেওয়া হতে পারে। (I58f25)
ভার্সন 1.0.0-alpha01
২৬ আগস্ট, ২০২০
androidx.compose.ui:ui-*:1.0.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha01-এ এইসব কমিট আছে।
ভার্সন 0.1.0-dev
ভার্সন 0.1.0-dev17
১৯ আগস্ট, ২০২০
androidx.compose.ui:ui-*:0.1.0-dev17 রিলিজ করা হয়েছে। ভার্সন 0.1.0-dev17-এ এইসব কমিট আছে।
API-তে পরিবর্তন
emitViewবন্ধ করে দেওয়া হয়েছে। Compose-এর মধ্যে ভিউ এমিট করার জন্য সম্ভব হলেAndroidViewব্যবহার করুন। মনে রাখবেন, কম্পোজিশন ট্রি-তে এগুলি লিফ না হলে, সরাসরি Views ও ViewGroups কম্পোজ করা ভবিষ্যতে কাজ করবে না। এই ক্ষেত্রে, AndroidView ব্যবহার করে এটি করা যেতে পারে। (I29b1e, b/163871221)FocusState2বাতিল করা হয়েছে এবংFocusState(Ia8b79, b/160822876, b/160923332) দিয়ে প্রতিস্থাপন করা হয়েছে- সিস্টেমের আর ব্যবহার করা হয় না এমন AndroidView ওভারলোড সরিয়ে দেওয়া হয়েছে। (I946b9, b/163802393)
- কাস্টম এমিট এখন ঘোষণা করতে পারে যে এর এক বা একাধিক সেটার এমিট থেকে আলাদাভাবে এড়িয়ে যাওয়া ও আবার কম্পোজ করা যেতে পারে। (Ibbd13)
ভেক্টর ক্লাস পরিবর্তন করে আর ডেটা ক্লাস রাখা হয়নি, কারণ কম্পোজিশনের জন্য একই অবজেক্ট ইনস্ট্যান্স ব্যবহার করা হয়।
VectorPainter -এর জন্য mutableStateOf ফ্ল্যাগ যোগ করা হয়েছে, যাতে ভেক্টরের কন্টেন্ট পরিবর্তন হলে কন্ডিশনাল ভিত্তিতে আবার আঁকা যায়।
VectorComponent ইনস্ট্যান্সকে রিফ্যাক্টর করে VectorPainter-এর অংশ করা হয়েছে, কারণ এটি বিভিন্ন কম্পোজিশনে আবার ব্যবহার করা হয়।
নাম ফিল্ড পরিবর্তনযোগ্য (Ieae45, b/151378808) করার জন্য GroupComponent ও PathComponent আপডেট করা হয়েছে
onChildPositionedওOnChildPositionedModifierসরিয়ে দেওয়া হয়েছে। এর পরিবর্তে, ডেভেলপারদের চাইল্ড লেআউটেonPositionedএবংOnPositionedModifierব্যবহার করা উচিত। (I4522e, b/162109766)অফসেট ইনলাইন ক্লাস হয়ে গেছে (Iaec70)
SelectionContainer-এ মডিফায়ার প্যারামিটার যোগ করা হয়েছে (I4aada, b/161487952)
পুরনো হয়ে যাওয়া FocusModifier সরানো হয়েছে (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
SemanticsPropertyKey-এmergePolicyল্যাম্বডা যোগ করা হয়েছে। এটি mergeAllDescendants সিম্যান্টিক্স মার্জ করার জন্য কাস্টম নীতি নির্ধারণ করতে ব্যবহার করা যেতে পারে। ডিফল্ট নীতি হল, আগে থেকেই উপস্থিত থাকলে প্যারেন্ট ভ্যালু ব্যবহার করা, অন্যথায় চাইল্ড ভ্যালু ব্যবহার করা। (Iaf6c4, b/161979921)Constraints এখন একটি ইনলাইন ক্লাস (I88736)
AndroidComposeView থেকে সাধারণ ফোকাস লজিক সরিয়ে FocusManager যোগ করা হয়েছে (I528ef, b/161487952, b/162206799)
আলফা রিলিজের জন্য আপডেট করা PointerEventPass নাম। (Ifda6f)
IntOffset এখন একটি ইনলাইন ক্লাস (Iac0bf)
IntSize এখন একটি ইনলাইন ক্লাস (I2bf42)
PlacementScope.placeAbsolute()-এর নাম পরিবর্তন করেPlacementScope.place()করা হয়েছে এবং আগেরPlacementScope.place()-এর নাম পরিবর্তন করেPlacementScope.placeRelative()করা হয়েছে। এর ফলে,PlacementScope.place()পদ্ধতি আর বাঁদিক থেকে ডানদিকে কনটেক্সটে অটোমেটিক পজিশন মিরর করবে না। এটি করতে চাইলে,PlacementScope.placeRelative()ব্যবহার করুন। (I873ac, b/162916675)AlertDialog এখন বোতামের জন্য FlowRow ব্যবহার করে (I00ec1, b/161809319, b/143682374)
কিছু টেস্ট ইউটিলিটি নন-পাবলিক করা হয়েছে কারণ সেগুলি যেখানে থাকার কথা সেখানে নেই। ভবিষ্যতে সর্বজনীন করা হবে। (I32ab1)
পয়েন্টার ইনপুট কোডের রিফ্যাক্টর করা অর্গানাইজেশন। (Ie3f45)
Rect-এর পরিবর্তে PxBounds ব্যবহার করা হয় না। rect সহ PxBounds-এর সব ব্যবহার আপডেট করা হয়েছে এবং মাইগ্রেশনে সহায়তা করার জন্য সঠিক deprecate/replace with অ্যানোটেশন যোগ করা হয়েছে। (I37038, b/162627058)
বাতিল হয়ে যাওয়া KeyEvent2 সরানো হয়েছে। এর পরিবর্তে KeyEvent ব্যবহার করুন। (Ied2d0, b/162097587)
KeyEvent-এ একটি ইউনিকোড প্রপার্টি আছে যা নির্দিষ্ট কী ও মেটা কী স্টেট কম্বিনেশন (If3afc) থেকে তৈরি হওয়া ইউনিকোড অক্ষর পেতে ব্যবহার করা যেতে পারে
DelayUp কাস্টম ইভেন্ট এবং সম্পর্কিত ক্লাসকে একটি অপ্ট-ইন API হিসেবে তৈরি করা হয়েছে কারণ এটি খুব সম্ভবত পরিবর্তিত হতে চলেছে। (I56d6f)
আর প্রয়োজন নেই এমন ২টি PointerEventPasses সরিয়ে দেওয়া হয়েছে। (I3dd9d)
Paragraph.paint-এ প্যারামিটার কালার, শ্যাডো ও TextDecoration যোগ করুন। অপ্রয়োজনীয় Paragraph রিক্রিয়েশন এড়াতে এই ফাংশনটি কাজে লাগে। (I81689)
সমস্যার সমাধান
- TextField থেকে onFocusChanged কলব্যাক সরানো হয়েছে। এর পরিবর্তে Modifier.focusObserver ব্যবহার করুন। (I51089, b/161297615)
- Modifier.drawBorder অবচিত করা হয়েছে। এর পরিবর্তে Modifier.border ব্যবহার করুন। BorderStroke (I4257d, b/158160576) দ্বারা বর্ডার ডেটা ক্লাস প্রতিস্থাপন করা হয়েছে
পুরনো হয়ে যাওয়া FrameManager কল সরানো হয়েছে।
ইন্টার্নাল কম্পোজ API-তে পরিবর্তন করা হয়েছে যাতে
mutableStateof()(I80ba6)-এর মতো স্টেট অবজেক্ট ট্র্যাক করার জন্য ওভারহেড কমানো যায়VerticalScroller ও HorizontalScroller সরিয়ে দেওয়া হয়েছে। পরিবর্তে ScrollableColumn/Row ব্যবহার করুন। Modifier.drawBackground সরিয়ে দেওয়া হয়েছে। Modifier.background ব্যবহার করুন (I73b0d, b/163019183)
লুপের মধ্যে স্টেট সেভ করে এমন কিছু ব্যবহার করা হলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। এখন savedInstanceState()-এ একই কী থাকার অনুমতি দেওয়া হয়েছে, UiSavedStateRegistry-এর API এখন এই নতুন প্রয়োজনীয়তা অনুযায়ী অ্যাডজাস্ট করা হয়েছে (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
state { ... }কম্পোজ করার উপযুক্ত এখন আর ব্যবহার করা হয় না, এর পরিবর্তে স্পষ্টতার জন্যremember { mutableStateOf(...) }-এ এক্সপ্লিসিট কল করা হয়। এটি স্টেট ম্যানেজমেন্টের জন্য সামগ্রিক API সারফেস ও কনসেপ্টের সংখ্যা কমিয়ে দেয় এবং ক্লাস প্রপার্টি ডেলিগেশনের জন্যby mutableStateOf()প্যাটার্নের সাথে ম্যাচ করে। (Ia5727)RRect-এর নাম পরিবর্তন করে RoundRect করা হয়েছে যাতে কম্পোজের নামকরণের প্যাটার্নের সাথে আরও ভালোভাবে মানানসই হয় RRect-এর মতো একই ধরনের ফাংশন কনস্ট্রাক্টর তৈরি করা হয়েছে এবং RRect ফাংশন কনস্ট্রাক্টর (I5d325)-এর ব্যবহার বন্ধ করে দেওয়া হয়েছে
ভার্সন 0.1.0-dev16
৫ আগস্ট, ২০২০
androidx.compose.ui:ui-*:0.1.0-dev16 রিলিজ করা হয়েছে। ভার্সন 0.1.0-dev16-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- OnChildPositioned বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে চাইল্ডে OnPositioned ব্যবহার করুন। (I87f95, b/162109766)
- setViewContent বন্ধ করা হয়েছে। এর পরিবর্তে setContent ব্যবহার করা উচিত। (I7e497, b/160335130)
- ViewBinding-এর উপর ভিত্তি করে লেআউট রিসোর্স ইনফলেশন ও কম্পোজ করার জন্য AndroidViewBinding API যোগ করা হয়েছে। (I081c6)
- KeyEvent2-এর পরিবর্তে KeyEvent ব্যবহার করা হয় (I2d770, b/162097585)
- Alt হার্ডওয়্যার কী (I9036b)-এর জন্য সহায়তা যোগ করা হয়েছে
- FocusManager বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে Modifier.focus(), Modifier.focusObserver() এবং Modifier.focusRequester() ব্যবহার করুন। (I74ae4, b/162211322)
- loadVectorResource trimPath অ্যাট্রিবিউট (I808fe) সাপোর্ট করে
- ডায়ালগকে UI-তে সরান (I47fa6)
- আর প্রয়োজন নেই এমন ২টি PointerEventPasses সরিয়ে দেওয়া হয়েছে। (I33ca7)
- PointerInteropModifier প্রয়োগ করা হয়েছে যা MotionEvents গ্রহণ করা এবং Compose-এর সাথে ইন্টার্যাক্ট করার ক্ষমতা প্রদান করে, যেন আপনি Android View-এর প্রয়োগ করছেন। (Ieb08c)
- পুরনো হয়ে যাওয়া ট্যাগ মডিফায়ার সরিয়ে দেওয়া হয়েছে। পরিবর্তে layoutId ব্যবহার করুন। (Idaa05, b/162023919)
- ডান-থেকে-বামে কাজ করার জন্য API আপডেট করা হয়েছে। LayoutDirectionAmbient যোগ করা হয়েছে, যা লেআউটের দিকনির্দেশ পড়তে ও পরিবর্তন করতে ব্যবহার করা যেতে পারে। Modifier.rtl এবং Modifier.ltr সরিয়ে দেওয়া হয়েছে। (I080b3)
- ভেক্টর গ্রাফিক্সের পাথ ট্রিমিং কাজ করে (Ie16c9, b/158188351)
- Modifier.layout() যোগ করা হয়েছে যা সহজে কাস্টম লেআউট মডিফায়ার তৈরি করতে দেয় (I73b69, b/161355194)
- নতুন AndroidView API যোগ করা হয়েছে এবং আগে থেকে থাকা API সরিয়ে দেওয়া হয়েছে। (I5bcfd)
- Modifier.plus বন্ধ করা হয়েছে, এর পরিবর্তে Modifier.then ব্যবহার করুন। 'তারপর' শব্দটির মধ্যে ক্রম নির্দেশ করার একটি শক্তিশালী সিগন্যাল আছে, একই সাথে এটি
Modifier.padding().background() + anotherModifierটাইপ করাও নিষিদ্ধ করে, যা চেইন ভেঙে দেয় এবং পড়তে অসুবিধা হয় (Iedd58, b/161529964) - ভিউ হায়ারার্কিতে Compose কন্টেন্ট হোস্ট করার জন্য [Abstract]ComposeView View সাবক্লাস যোগ করুন। (I46357)
RowওColumnএখন ইনলাইন ফাংশন হিসেবে কাজ করে এবং এর ফলে এগুলি ব্যবহার করার ওভারহেড অনেক কমে যায়। (I75c10)- SubcomposeLayout যোগ করা হয়েছে। এটি একটি লো লেভেল প্রিমিটিভ যা পরিমাপ করার সময় চাইল্ডদের কম্পোজ করতে দেয় যদি আমরা সাবট্রি কম্পোজিশনের জন্য পরিমাপ করার সময় পরে উপলভ্য হওয়া কিছু ভ্যালু ব্যবহার করতে চাই। যেমন, WithConstraints, SubcomposeLayout ব্যবহার করে প্রয়োগ করা হয় না। (I25cc8)
- Compose হায়ারার্কির রুটের সাথে সম্পর্কিত
SemanticsNode-এর পজিশন পেতে
SemanticsNode.positionInRootযোগ করা হয়েছে (Icdf26, b/161336532) - Android থেকে Compose-এ এবং সেখান থেকে আবার Android-এ MotionEvents সম্পূর্ণভাবে পাস করা হয়েছে। (I14be8, b/158034713)
- dropdownPopup সরানো হয়েছে। (I00430)
- কাট-আউট ডিসপ্লেতে পপ-আপের পজিশন ঠিক করা হয়েছে। (Idd7dd)
- TextLayoutResult (I9d6e6) পেতে অ্যাক্সেসিবিলিটি অ্যাকশন যোগ করুন
- RemeasurementModifier যোগ করা হয়েছে। এটি লেআউটকে সিঙ্ক্রোনাসভাবে আবার পরিমাপ করার অনুমতি দেয়। সাধারণত, রিমজার/রিলেআউট অটোমেটিক হওয়ার কারণে আপনার এটি প্রয়োজন হয় না, তবে স্ক্রল করার সময় আমরা LazyColumnItems-এর মধ্যে এটি ব্যবহার করি। (I5f331, b/160791058)
- getLineEllipsisOffset/getLineEllipsisCount সরিয়ে দিন। এর পরিবর্তে getLineVisibleEnd/getLineEnd/isLineEllipsized ব্যবহার করুন। (I85aa2)
- পেশাদার পদ্ধতি মেনে চলার জন্য কিছু মার্ক/অ্যানোটেশন যোগ করুন। (I66b20)
- TextLayoutResult-এ আরও লাইন API এক্সপোজ করা হয়েছে। (I79bd2)
- বিল্ট-ইন ইউনিট কনভার্ট করার জন্য বিল্ট-ইন ভেক্টর কনভার্টার এখন Foo.VectorConverter-এর মাধ্যমে অ্যাক্সেস করা যাবে। যেমন, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter, ইত্যাদি (I3e273)
সমস্যার সমাধান
- ঠিকানা সংক্রান্ত API-তে হওয়া বড় ধরনের সমস্যা সমাধান (I077bc)
- ব্যবহার না করা OffsetBase ইন্টারফেস সরিয়ে দেওয়া
- অফসেট ও IntOffset ক্লাসগুলিকে সারিবদ্ধ করে একটি সামঞ্জস্যপূর্ণ API সারফেস তৈরি করুন
- Offset API-এর সাথে সামঞ্জস্য বজায় রাখতে IntOffset.Origin-এর নাম পরিবর্তন করে IntOffset.Zero করুন
- গ্রাহকদের নিজেদের Canvas ইনস্ট্যান্স তৈরি করতে সাহায্য করার জন্য Canvas ইন্টারফেস থেকে nativeCanvas পদ্ধতি সরানো হয়েছে
- refactor DrawScope-এর জন্য EmptyCanvas ক্লাস তৈরি করা হয়েছে যাতে এটি lateinit-এর পরিবর্তে নন-নাল প্যারামিটার হয় এবং ফিল্ডের নন-নাল হওয়ার বিষয়টি নিশ্চিত করা যায়
- ClipOp এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
- FilterQuality এনুমের নাম পরিবর্তন করে পাসকেল কেস করা হয়েছে
- StrokeJoin এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
- PointMode এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
- রিনেম করা PaintingStyle enum-কে পাস্কেল কেস করা হয়েছে
- PathFillType এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
- StrokeCap এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
- DrawCache-এর আপডেট করা প্রয়োগ আর lateinit প্যারামিটার ব্যবহার করে না
- fillPaint ও strokePaint ইন্টার্নাল প্যারামিটারের জন্য লেজি ডেলিগেশন আর ব্যবহার না করতে DrawScope আপডেট করা হয়েছে
- কম ওভারহেডের জন্য Box ব্যবহার এড়াতে আপডেট করা ইমেজ কম্পোজযোগ্য
- @Immutable অ্যানোটেশন সহ আপডেট করা আউটলাইন ক্লাস
- প্রতিটি পাথ নির্দেশাবলীর জন্য @Immutable অ্যানোটেশন সহ আপডেট করা PathNode
- কম্পোজ যেহেতু ইতিমধ্যেই এগুলি ম্যানেজ করে, তাই সমান কিনা তা চেক করার জন্য অপ্রয়োজনীয় কন্ডিশনাল চেক সরিয়ে দিতে আপডেট করা ভেক্টর সাবকম্পোজিশন
- ফাংশন কনস্ট্রাক্টরের পরিবর্তে বন্ধ করে দেওয়া Rect কম্প্যানিয়ন কনস্ট্রাক্টর পদ্ধতি
- @Immutable এবং @Stable API সহ আপডেট করা ব্রাশ ক্লাস এবং ফাংশন কনস্ট্রাক্টর
- VertexMode enum-কে PascalCase হিসেবে আপডেট করা হয়েছে
- পরিবর্তিত হলে, ড্রস্কোপের selectPaint পদ্ধতিটি কন্ডিশনালভাবে পেইন্টের স্ট্রোক প্যারামিটার ওভাররাইট করার জন্য আপডেট করা হয়েছে
- ডেস্ট্রাকচারিং API যোগ করতে সাইজ আপডেট করা হয়েছে, নাম পরিবর্তন করে UnspecifiedSize-এর নাম Unspecified করা হয়েছে এবং অব্যবহৃত পদ্ধতি সরিয়ে দেওয়া হয়েছে
- API লেভেলের উপর নির্ভর করে Android ফ্রেমওয়ার্ক BlendModes ও PorterDuff মোডের মধ্যে সঠিকভাবে ম্যাপ করার জন্য আপডেট করা কম্পোজ BlendMode API কনজাম্পশন। BlendMode#isSupported API চালু করা হয়েছে যা BlendMode ডিভাইসে কাজ করে কিনা তা নির্ধারণ করতে ব্যবহার করা হয়। (I0ef42)
- LazyItemScope, লেজি লিস্টের itemContent প্যারামিটারের জন্য যোগ করা হয়েছে। এটি প্যারেন্ট সর্বাধিক সাইজ পূরণ করার জন্য মডিফায়ার প্রদান করে, এর ফলে আইটেম ভিউপোর্ট পূরণ করার সময় ব্যবহার করা যায় এবং সাধারণ Modifier.fillMaxSize() কাজ করে না কারণ আইটেমটি অসীম সীমাবদ্ধতার সাথে পরিমাপ করা হয়। (Ibd3b2, b/162248854)
SemanticsNodeInteraction.performPartialGestureসরানো হয়েছে। এর পরিবর্তেSemanticsNodeInteraction.performGestureব্যবহার করুন। (Id9b62)LazyColumnItems-এর নাম পরিবর্তন করেLazyColumnForকরা হয়েছে।LazyRowItems-এর নাম পরিবর্তন করেLazyRowForকরা হয়েছে (I84f84)foundation.shape.cornerপ্যাকেজটি ফ্ল্যাটেন করেfoundation.shareকরা হয়েছে (I46491, b/161887429)AndroidComposeTestRule-এর নাম পরিবর্তন করেcreateAndroidComposeRuleকরা হয়েছে। (I70aaf)TextLayoutResult-এ আরও API যোগ করা হয়েছে। (Id7e04)- সবচেয়ে সহজ কাঙ্ক্ষিত API যাতে সহজে খুঁজে পাওয়া ও ব্যবহার করা যায় সেই জন্য Material
FilledTextField-এর নাম পরিবর্তন করেTextFieldএবং foundationalTextField-এর নাম পরিবর্তন করেBaseTextFieldরাখা হয়েছে (Ia6242, b/155482676) - Modifier.drawBackground-এর নাম পরিবর্তন করে Modifier.background করা হয়েছে (I13677)
ভার্সন 0.1.0-dev15
২২ জুলাই, ২০২০
androidx.compose.ui:ui-*:0.1.0-dev15 রিলিজ করা হয়েছে। 0.1.0-dev15 ভার্সনে এইসব কমিট আছে।
ডিপেন্ডেন্সি আপডেট
- Compose-এর
0.1.0-dev15ভার্সন ব্যবহার করতে, আপনাকে ডিপেন্ডেন্সি ঘোষণা করা বিভাগে উপরে দেখানো নতুন কোড স্নিপেট অনুযায়ী ডিপেন্ডেন্সি আপডেট করতে হবে।
API-তে পরিবর্তন
- FocusModifier-এর পরিবর্তে Modifier.focus, Modifier.focusRequester, Modifier.focusObserver ব্যবহার করা হয়। FocusState2 (I46919, b/160822875, b/160922136)-এর পরিবর্তে FocusState ও FocusDetailedState আর ব্যবহার করা হয় না
- ফোকাস স্টেট পরিবর্তন লক্ষ্য করার জন্য একটি মডিফায়ার যোগ করা হয়েছে। (I05866, b/160924455, b/160923326)
- ফোকাস পরিবর্তন করার অনুরোধে একটি মডিফায়ার যোগ করা হয়েছে (I8dd73, b/161182057, b/160924778)
- কপি, কাট ও পেস্ট বিকল্পগুলি সঠিকভাবে দেখাতে টুলবার মেনু অ্যাডজাস্ট করুন। (Id3955)
- সিঙ্গেল-ভ্যালু সিম্যান্টিক প্রপার্টি এখন কলিং স্টাইল ব্যবহার করে।
যেমন, 'semantics { hidden = true }' এখন এইভাবে লেখা হয়:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - Modifier.focus যোগ করা হয়েছে যা FocusModifier-এর পরিবর্তে ব্যবহার করা হবে। (Ib852a, b/160924778)
- TextField বেছে নেওয়ার জন্য FloatingToolbar যোগ করুন। (Ie8b07)
- কী ইনপুট সম্পর্কিত API-এর জন্য একটি পরীক্ষামূলক API টীকা যোগ করা হয়েছে (I53c0a)
- ফোকাস সম্পর্কিত সব API-এর জন্য একটি এক্সপেরিমেন্টাল API অ্যানোটেশন যোগ করা হয়েছে (I53b24, b/160903352)
- FocusState2 যোগ করা হয়েছে যা FocusDetailedState-কে সরিয়ে দেবে (I0a3ba, b/160822595)
- ExperimentalFocus যোগ করা হয়েছে, এটি Focus API-এর জন্য @OptIn অ্যানোটেশন। (I1544b, b/160820961)
- IntBounds ইউনিট ক্লাস যোগ করা হয়েছে, যা লেআউট থেকে পূর্ণসংখ্যা পিক্সেল বাউন্ড দেখায়। এটি ব্যবহার করার জন্য PopupPositionProvider-এর API আপডেট করা হয়েছে। (I0d8d0, b/159596546)
- কম্পোজিশন ডিসপোজ করার জন্য এখন অ্যাপ্লায়ারের clear() মেথড প্রয়োজন হয় (Ibe697)
- KeyEvent বন্ধ করা হয়েছে এবং KeyEvent2 (I68730) দিয়ে প্রতিস্থাপন করা হয়েছে
- টেস্ট ফাইন্ডারে একটি নতুন ঐচ্ছিক ফ্ল্যাগ useUnmergedTree যোগ করা হয়েছে। (I2ce48)
- Made LayoutNode experimental API (I4f2e9)
বিভিন্ন ইনলাইন ক্লাস ধরনের জন্য কপি করার পদ্ধতি যোগ করা হয়েছে, এর মধ্যে রয়েছে:
- অফসেট
- আকার
- ব্যাসার্ধ
- মোশন
TransformOrigin
সাজেস্ট করা হয়েছে এমন Size.copy কম্প্যানিয়ন অবজেক্ট মেথড ইনস্ট্যান্স কপি মেথডের (Ife290, b/159905651) পরিবর্তে
পপ-আপ, ডায়ালগ ও মেনু এখন প্রাসঙ্গিক MaterialTheme (Ia3665, b/156527485) থেকে ইনহেরিট করছে
TextDirection-এর নাম পরিবর্তন করে ResolvedTextDirection রাখা হয়েছে (I3ff38)
Layout() ফাংশনের মেজার ব্লক থেকে লেআউট ডিরেকশন প্যারামিটার সরানো হয়েছে। তবে, লেআউট ডিরেকশন, মেজার স্কোপ অবজেক্টের (Ic7d9d) মাধ্যমে কলব্যাকের মধ্যে উপলভ্য
আবার ব্যবহার করার জন্য SelectionHandles রিফ্যাক্টর করুন। (I420e0)
ক্লিক করা যায় এমন অংশটি সরিয়ে দেওয়া হয়েছে। Modifier.clickable (I84bdf) ব্যবহার করুন
TestTag ও Semantics মুছে দেওয়া হয়েছে। এর পরিবর্তে Modifier.testTag ও Modifier.semantics ব্যবহার করুন (I15ff0, b/158841414)
এই পরিবর্তনের আগে, @Composable ফাংশনের মধ্যে কনস্ট্রাক্টরদের কাছে কল ইন্টারসেপ্ট করার জন্য কম্পোজ কম্পাইলার প্লাগ-ইন ব্যবহার করা হত, যদি সেখানে (I5205a, b/158123804) থাকে
Modifier.testTag-এর সাথে বিভ্রান্তি এড়াতে Modifier.tag-এর নাম পরিবর্তন করে Modifier.layoutId করা হয়েছে। (I995f0)
Placeable#get(AlignmentLine) থেকে রিটার্ন করা অ্যালাইনমেন্ট লাইন Int পজিশন এখন নন-নাল। কোয়েরি করা অ্যালাইনমেন্ট লাইন না থাকলে, AlignmentLine.Unspecified রিটার্ন করা হবে। (I896c5, b/158134875)
AndroidView কম্পোজ করার উপযুক্ত আইটেমে একটি মডিফায়ার প্যারামিটার যোগ করা হয়েছে। (I48a88, b/158746303)
Semantics() বন্ধ করা হয়েছে। এর পরিবর্তে Modifier.semantics() ব্যবহার করুন। (I72407, b/158841414)
viewModel() কম্পোজ করার উপযুক্ত আইটেম যোগ করুন যা Activity বা Fragment-এ যেভাবে কাজ করে সেই একই পদ্ধতিতে আগে থেকেই তৈরি করা ViewModel তৈরি করতে বা পেতে সাহায্য করে (I5fdd1)
IntPx-এর ব্যবহার Int-এর সাথে পরিবর্তন করা হয়েছে। IntPxPosition -এর ব্যবহার IntOffset-এর সাথে পরিবর্তন করা হয়েছে। IntPxSize-এর পরিবর্তে IntSize ব্যবহার করা হয়েছে। (Ib7b44)
সাইজিং সংক্রান্ত তথ্য দেখানোর জন্য ব্যবহৃত ক্লাসের সংখ্যাকে একত্রিত করতে, PxSize-এর পরিবর্তে Size ক্লাসের ব্যবহারকে স্ট্যান্ডার্ডাইজ করুন। এটি একটি ইনলাইন ক্লাসের সুবিধা প্রদান করে যা একটি বড় মানকে ব্যবহার করে ২টি ফ্লোট ভ্যালুকে প্যাক করে এবং ফ্লোট হিসেবে প্রস্থ ও উচ্চতাকে দেখায়। (Ic0191)
পজিশনিং সংক্রান্ত তথ্য দেখানোর জন্য ব্যবহৃত ক্লাসের সংখ্যাকে একত্রিত করতে, PxPosition-এর পরিবর্তে Offset ক্লাসের ব্যবহারকে স্ট্যান্ডার্ডাইজ করুন। এটি ইনলাইন ক্লাসের সুবিধা প্রদান করে যা x এবং y অফসেটকে ফ্লোট হিসেবে দেখানোর জন্য ২টি ফ্লোট ভ্যালুকে প্যাক করতে একটি লং ভ্যালুকে লিভারেজ করে। (I3ad98)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার বড় রিফ্যাক্টরিং এফর্টের অংশ হিসেবে পরিবর্তন করা হয়েছে। সম্পূর্ণ Px ক্লাস মুছে দেওয়া হয়েছে (I3ff33)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে। এটি একটি বড় রিফ্যাক্টরিং প্রচেষ্টার অংশ (I086f4)
বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে। এর ফলে পিক্সেল প্যারামিটারের জন্য Dp ও আদিম ধরনের উপর নির্ভর করা যাবে। এটি একটি বড় রিফ্যাক্টরিং এফর্টের অংশ (Id3434)
পিক্সেল প্যারামিটারের জন্য (I97a5a) শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তিত ব্যবহার করা হয়েছে। এটি একটি বড় রিফ্যাক্টরিং এফোর্ট।
TestTag এখন আর ব্যবহার করা যাবে না। এর পরিবর্তে Modifier.testTag ব্যবহার করুন। (If5110, b/157173105)
ParentDataModifier#modifyParentData-এর ডিফল্ট, নো-অপ, ইমপ্লিমেন্টেশন সরিয়ে দেওয়া হয়েছে - এটি প্রথম স্থানে ইন্টারফেস ইমপ্লিমেন্ট না করার সমতুল্য ছিল। (I0deaa)
আগে থেকেই ScaleFit-এর ব্যবহার বন্ধ করা হয়েছে এবং সেটি সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে ContentScale ব্যবহার করুন। (Ifbc5b)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বড় রিফ্যাক্টরিং প্রচেষ্টার অংশ হিসেবে বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তে অন্য কিছু ব্যবহার করা হয়েছে (I19d02)
ui-material-এ DropdownMenu কম্পোনেন্ট যোগ করা হয়েছে, এটি হল মেটেরিয়াল ডিজাইন মেনু ইমপ্লিমেন্টেশন। (I9bb3d)
পুরনো হয়ে যাওয়া LayoutTag() সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Modifier.tag() ব্যবহার করুন। পুরনো হয়ে যাওয়া Modifier.matchParent() সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Modifier.matchParentSize() ব্যবহার করুন। (If8044)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তে বড় রিফ্যাক্টরিং এফর্টের অংশ হিসেবে ব্যবহার করা হয়েছে (I57bff)
উচ্চ-স্তরের কম্পোনেন্ট ব্যবহারের অনুমতি দিতে Modifier.semantics-কে আনডিপ্রিকেট করা হয়েছে। (I4cfdc)
CanvasScope-এর একত্রিত প্রয়োগ তাই এখন শুধু DrawScope এবং ContentDrawScope আছে CanvasScope-এর নাম পরিবর্তন করে DrawScope করা হয়েছে। Density ইন্টারফেস প্রয়োগ করতে DrawScope আপডেট করা হয়েছে এবং LayoutDirection প্রদান করা হয়েছে ContentDrawScope-এ DrawScope সাবক্লাস মুছে দেওয়া হয়েছে RTL প্রপার্টি আর নিজে থেকে ম্যানেজ না করার জন্য Painter ও PainterModifier আপডেট করা হয়েছে কারণ DrawScope এটি ম্যানুয়ালি প্রদান না করেই আগে থেকেই প্রদান করে (I1798e)
DoubleTapGestureFilter এখন ট্রি জুড়ে SingleTapGestureFilter-কে দ্ব্যর্থতা নিরসন করে। (If92b1)
আপডেট করা অ্যালাইনমেন্ট API এবং সম্পূর্ণ অ্যালাইনমেন্টের জন্য সহায়তা যোগ করা হয়েছে (যা RTL কনটেক্সটে অটো-মিরর করে না) (I38cd3)
DrawLayer মডিফায়ার API পরিবর্তন করা হয়েছে: outlineShape-এর নাম পরিবর্তন করে shape করা হয়েছে এবং এর ডিফল্ট ভ্যালু RectangleShape এবং এখন এটি নন-নাল; clipToOutline-এর নাম পরিবর্তন করে clip করা হয়েছে; clipToBounds সরিয়ে দেওয়া হয়েছে কারণ এটি RectangleShape-এর সাথে clip == true-এর মতো (I7ef11, b/155075735)
আপডেট করা উন্নত লেভেলের কম্পোজ API যা Canvas-কে এক্সপোজ করে পরিবর্তে CanvasScope-কে এক্সপোজ করে। এর ফলে গ্রাহকদের নিজস্ব Paint অবজেক্ট ম্যানেজ করার প্রয়োজন হয় না। যেসব গ্রাহকের এখনও Canvas অ্যাক্সেস করার প্রয়োজন তারা drawCanvas এক্সটেনশন মেথড ব্যবহার করতে পারেন, যা অন্তর্নিহিত Canvas-এর সাথে ড্রয়িং কমান্ড ইস্যু করার জন্য কলব্যাক প্রদান করে। (I80afd)
WithConstraints ট্রেলিং ল্যাম্বডা API পরিবর্তন করা হয়েছে। এখন দুটি প্যারামিটারের পরিবর্তে এতে একটি রিসিভার স্কোপ আছে যা সীমাবদ্ধতা এবং layoutDirection ছাড়াও Dp-তে (I91b9a, b/149979702) minWidth, maxWidth, minHeight এবং maxHeight প্রপার্টি প্রদান করে
LayoutModifier2-এর নাম পরিবর্তন করে LayoutModifier করা হয়েছে। (Id29f3)
পুরনো হয়ে যাওয়া LayoutModifier ইন্টারফেস সরিয়ে দেওয়া হয়েছে। (I2a9d6)
Layout এবং LayoutModifier2-এর ইন্ট্রিনসিক পরিমাপ ফাংশনে এখন একটি IntrinsicMeasureScope রিসিভার আছে যা অন্তর্নিহিতভাবে প্রচারিত লেআউট ডিরেকশন সহ ইন্ট্রিনসিক কোয়েরি API প্রদান করে। (Id9945)
Layout এবং LayoutModifier চাইল্ডকে আলাদা লেআউট ডিরেকশন দিয়ে পরিমাপ করা যেতে পারে। (Ibd731)
একই প্যারেন্ট লেআউটের মধ্যে চিলড্রেনদের ড্র করার ক্রম নিয়ন্ত্রণ করতে, New Modifier.zIndex() যোগ করা হয়েছে। DrawLayerModifier-এর elevation প্রপার্টির নাম পরিবর্তন করে shadowElevation করা হয়েছে এবং এটি আর ড্র করার ক্রম নিয়ন্ত্রণ করে না। DrawShadow-এর প্যারামিটার অর্ডার পরিবর্তন করা হয়েছে: এখন এলিভেশন প্রথম এবং শেপ দ্বিতীয়, যার ডিফল্ট মান হল RectangleShape। (I20150, b/152417501)
মালিকের মধ্যে থেকে onSizeChange ও onPositionChange সরানো হয়েছে। (I5c718)
Added Constraints2, Constraints-এর একটি কপি যা শুধুমাত্র Int connstraints ভ্যালু সাপোর্ট করে, IntPx নয়। IntPx সরিয়ে দেওয়া হবে এবং সব পূর্ণসংখ্যা সীমাবদ্ধতা Android-এর মতো পিক্সেল হিসেবে ধরে নেওয়া হবে।
- IntSize-ও যোগ করা হয়েছে, যা পরে IntPxSize-এর পরিবর্তে ব্যবহার করা হবে। (I4b43a)
যেকোনও ভ্যালু সহ অ্যালাইনমেন্ট ইনস্ট্যান্টিয়েবল করা হয়েছে। 1D অ্যালাইনমেন্ট যোগ করা হয়েছে। (Ia0c05)
alignToSiblings এখন Placeable-এর পরিবর্তে Measured গ্রহণ করে। (I5788d)
-
- ScaleFit-এর নাম পরিবর্তন করে ContentScale করা হয়েছে
- Alignment API-এর মতো একই মডিউলে থাকার জন্য ContentScale-কে ui-graphics থেকে ui-core মডিউলে সরানো হয়েছে।
- FillMaxDimension-এর নাম পরিবর্তন করে Crop করা হয়েছে
- FillMinDimension-এর নাম পরিবর্তন করে Fit করা হয়েছে
- আরও ভালোভাবে ম্যাচ করার জন্য Fit-এর নাম বদলে Inside রাখা হয়েছে
- ImageView.ScaleType-এর সমতুল্য
- যোগ করা ডকুমেন্টেশন থেকে জানা যায় যে, Crop ও Alignment.Center-এর কম্বিনেশন ImageView.ScaleType.CENTER_CROP-এর মতো একই ফলাফল দেয় এবং Fit Alignment.Center-এর সাথে ব্যবহার করা হলে তা ImageView.ScaleType.FIT_CENTER-এর মতো একই ফলাফল দেয়। Alignment.Center-এর সাথে ব্যবহার করা হলে তা ImageView.ScaleType.CENTER_INSIDE-এর মতো একই ফলাফল দেয়
ড্র মডিফায়ারের জন্য RTL সহায়তা। (I0aaf9)
XML থেকে Android Views ইনফলেটের জন্য API রিলিজ করা হয়েছে। আরও বিবরণের জন্য ViewInCompose ডেমো দেখুন। (I42916)
DrawModifier API-তে উন্নতি করা হয়েছে:
- draw() ContentDrawScope-এর জন্য রিসিভার স্কোপ তৈরি করা হয়েছে
- draw()-এ সব প্যারামিটার সরিয়ে দেওয়া হয়েছে
- DrawScope-এর ইন্টারফেস আগের CanvasScope-এর মতোই
- ContentDrawScope-এ drawContent() মেথড আছে (Ibaced, b/152919067)
LayoutCoordinates-এর জন্য positionInParent ও boundsInParent যোগ করা হয়েছে। (Icacdd, b/152735784)
DrawLayerModifier এবং drawLayer() এখন ডিফল্ট হিসেবে clipToBounds এবং clipToOutline-এর মান false হিসেবে সেট করা থাকে। (I0eb8b, b/152810850)
LayoutResult-এর নাম পরিবর্তন করে MeasureResult করা হয়েছে। (Id8c68)
লেআউট মডিফায়ারকে সংজ্ঞায়িত করার জন্য নতুন API, LayoutModifier2 যোগ করা হয়েছে; LayoutModifier (If32ac) আর ব্যবহার করা যাবে না
ফ্যাক্টরি এক্সটেনশন ফাংশন (I225e4) দিয়ে মডিফায়ার প্লাস অপারেটর পরিবর্তন করা হয়েছে
কোনও প্রদত্ত লেয়ারের জন্য ড্রয়িং কমান্ডের ডিসপ্লে তালিকা অফসেট করার সুবিধা দিতে translationX/Y প্রপার্টি যোগ করা হয়েছে। অ্যানিমেশন বা টাচ ইভেন্টের প্রতিক্রিয়া হিসেবে কন্টেন্ট সরানোর জন্য এটি কাজে লাগে। (I8641c)
লেয়ার API-তে pivotX, pivotY প্যারামিটার যোগ করা হয়েছে যাতে কোনও লেয়ারের নির্দিষ্ট পয়েন্টের (Icf7c3) চারপাশে রোটেশন ও স্কেলিং কাজ করে
OnPositioned এবং OnChildPositioned কম্পোজ করার উপযুক্ত ফাংশনগুলি পরিবর্তন করতে OnPositionedModifier এবং OnChildPositionedModifier যোগ করুন। (I2ec8f)
LayerModifier যোগ করা হয়েছে, এটি এমন একটি মডিফায়ার যা লেআউটের জন্য RenderNode যোগ করতে দেয়। এটি ক্লিপিং, অস্বচ্ছতা, রোটেশন, স্কেলিং ও ছায়া সেট করার অনুমতি দেয়। এটি RepaintBoundary-এর পরিবর্তে ব্যবহার করা হবে। (I7100d, b/150774014)
লেআউট ডিরেকশনকে প্যারেন্ট লেআউট নোড থেকে চাইল্ড নোডে প্রোপাগেট করা হয়েছে। লেআউট ডিরেকশন মডিফায়ার যোগ করা হয়েছে। (I3d955)
স্ট্যাক কম্পোনেন্ট ডান-থেকে-বাম দিকনির্দেশ (Ic9e00) মেনে চলে
Compose লেআউটে RTL-এর জন্য প্রাথমিক সহায়তা (Ia5519)
Density ও DensityScope একটি ইন্টারফেসে মার্জ করা হয়েছে। ambientDensity()-এর পরিবর্তে আপনি এখন DensityAmbient.current ব্যবহার করতে পারবেন। withDensity(density)-এর পরিবর্তে শুধু with(density) (I11cb1)
প্রদত্ত অ্যালাইনমেন্ট লাইনকে ম্যাপের পরিবর্তে সেট করতে LayoutCoordinates পরিবর্তন করা হয়েছে এবং ভ্যালু রিট্রিভ করার জন্য LayoutCoordinates-এ get() অপারেটর প্রয়োগ করা হয়েছে। এর ফলে, প্রতিটি মডিফায়ারের জন্য নতুন কালেকশন তৈরি না করেই মডিফায়ারদের পক্ষে সেটের এক বা একাধিক ভ্যালু পরিবর্তন করা সহজ হয়ে যায়। (I0245a)
LayoutCoordinates-এ আর কোনও পজিশন প্রপার্টি নেই। LayoutModifiers, rotation বা স্কেলিংয়ের কথা বিবেচনা করলে position প্রপার্টি অর্থপূর্ণ হয় না। পরিবর্তে, ডেভেলপারদের উচিত একটি LayoutCoordinate থেকে অন্যটিতে ট্রান্সফর্ম গণনা করার জন্য parentCoordinates এবং childToLocal() ব্যবহার করা।
LayoutCoordinates, সাইজ প্রপার্টির জন্য PxSize-এর পরিবর্তে IntPxSize ব্যবহার করে। লেআউটের জন্য লেআউট ইন্টিজার পিক্সেল সাইজ ব্যবহার করে, তাই সব লেআউট সাইজ ইন্টিজার ব্যবহার করা উচিত এবং ফ্লোটিং পয়েন্ট ভ্যালু ব্যবহার করা উচিত নয়। (I9367b)
Constraints-এর API সারফেসে উন্নতি (I0fd15)
CanvasScope API তৈরি করা হয়েছে যা Canvas অবজেক্টকে র্যাপ করে যাতে স্টেটলেস, ডিক্ল্যারেটিভ ড্রয়িং API সারফেস এক্সপোজ করা যায়। ট্রান্সফর্মেশনগুলি নিজস্ব রিসিভার স্কোপের মধ্যে থাকে এবং সাইজিং সংক্রান্ত তথ্যও অনুরূপ ইনসেট বাউন্ডের মধ্যে স্কোপ করা হয়। ড্রয়িং অপারেশন কনফিগার করার জন্য গ্রাহককে নিজস্ব Paint state object বজায় রাখতে হয় না।
- CanvasScopeSample যোগ করা হয়েছে এবং ঘোষণামূলক গ্রাফিক্স ডেমো (Ifd86d) যোগ করতে ডেমো অ্যাপ আপডেট করা হয়েছে
অপ্রয়োজনীয় MaskFilter API সরিয়ে দেওয়া হয়েছে কারণ এর ব্যবহার সীমিত এবং বেশিরভাগ ব্যবহারের ক্ষেত্রে হার্ডওয়্যার অ্যাক্সিলারেশনের জন্য এটি অপ্টিমাইজ করা হয়নি (I54f76)
RectangleShape androidx.ui.foundation.shape.* থেকে androidx.ui.graphics.*-এ সরানো হয়েছে (Ia74d5, b/154507984)
API-তে সবকটি নাল হতে পারে এমন কালার ব্যবহারকে নন-নাল হতে পারে এমন কালার ব্যবহার দিয়ে পরিবর্তন করা হয়েছে এবং null-এর পরিবর্তে Color.Unset ব্যবহার করা হয়েছে (Iabaa7)
আন্ডারলায়িং ImageAsset-এর (I0ea9e) একটি সাবসেকশন ড্র করার জন্য ImagePainter-এ অতিরিক্ত ঐচ্ছিক rect প্যারামিটার যোগ করা হয়েছে
কালার বক্সিং না করে অনির্দিষ্ট ভ্যালু বোঝাতে আনসেট কালার যোগ করা হয়েছে। (If901a)
ট্রান্সফর্মেশনের জন্য ঐচ্ছিক পিভট কোঅর্ডিনেট ব্যবহার করতে Canvas.rotate ও Canvas.scale এক্সটেনশন পদ্ধতি যোগ করা হয়েছে। এইসব ডিফল্ট বর্তমান ক্যানভাসের ট্রান্সলেশনের উপরের বাঁদিকের কোণে থাকে।
এছাড়াও, সামঞ্জস্যের জন্য Canvas.rotateRad-কে এক্সটেনশন মেথড হিসেবে সরানো হয়েছে (Ibaca6)
ImageAsset থেকে পিক্সেল সংক্রান্ত তথ্য কোয়েরি করার জন্য PixelMap API তৈরি করা হয়েছে। (I69ad6)
Compose এবং Android ফ্রেমওয়ার্ক API-এর মধ্যে অবজেক্ট কনভার্সনের জন্য নামকরণ কনভেনশন ম্যাচ করাতে toFrameworkRect/toFrameworkRectF-এর নাম পরিবর্তন করে toAndroidRect/toAndroidRectF করা হয়েছে। এছাড়াও, এইসব API-এর ডকুমেন্ট আপডেট করা হয়েছে (I86337)
ভেক্টর গ্রাফিক্সের জন্য আগে থেকে থাকা সাবকম্পোজিশন API-এর পরিবর্তে VectorPainter API যোগ করা হয়েছে। সাবকম্পোজিশনের ফলাফল হল একটি VectorPainter অবজেক্ট, কোনও DrawModifier নয়। VectorPainter-এর জন্য আগের DrawVector কম্পোজ করার উপযুক্ত আইটেম বাতিল করা হয়েছে।
Image(Painter) API-এর নাম পরিবর্তন করে PaintBox(Painter) করা হয়েছে একটি ভেক্টর কম্পোজ করার মতো করে ভেক্টর কম্পোজ করার মতো করে তৈরি করা হয়েছে Image কম্পোজ করার মতো করে তৈরি করা হয়েছে, তবে ImageAsset-এর পরিবর্তে VectorAsset (I9af9a, b/149030271)
Image ডেটা এবং লেআউটে অংশগ্রহণ ও কন্টেন্ট ড্র করার জন্য ব্যবহৃত আসন্ন Image কম্পোজ করার উপযুক্ত আইটেমের মধ্যে পার্থক্য আরও ভালোভাবে আলাদা করতে Image-এর নাম পরিবর্তন করে ImageAsset করা হয়েছে। _বডি:android.graphics.Bitmap-এ এক্সটেনশন পদ্ধতি তৈরি করা হয়েছে, Bitmap.asImageAsset(), যাতে ImageAsset-এর একটি ইনস্ট্যান্স তৈরি করা যায়। এটি কম্পোজ ফ্রেমওয়ার্কের (Id5bbd) সাথে ঐতিহ্যবাহী Android অ্যাপ্লিকেশন ডেভেলপমেন্টকে একত্রিত করার জন্য সহায়ক
TextDirection.Content যোগ করা হয়েছে (I48f36)
TextDecoration.plus অপারেটর যোগ করা হয়েছে (I0ad1a)
TextDirectionAlgorithm enum ভ্যালু (Icc944) থেকে
Forceসরানো হয়েছেTextDirectionAlgorithm-এর নাম পরিবর্তন করে TextDirection করা হয়েছে (I75ce8)
TextField বেছে নেওয়ার জন্য LongPressAndDrag প্রয়োগ করে। (I17919)
AnnotatedString.getStringAnnotations যোগ করা হয়েছে যা রেঞ্জের মধ্যে থাকা সব অ্যানোটেশন রিটার্ন করে। (I1fa00)
Locale ও LocaleList-এর প্যাকেজের নাম androidx.ui.text থেকে পরিবর্তন করে androidx.ui.intl করা হয়েছে (I8132c)
TextField-এর কার্সরে ব্লিঙ্ক করার অ্যানিমেশন আছে (Id10a7)
API পরিবর্তন: AnnotatedString(builder: Builder)-এর নাম পরিবর্তন করে annotatedString(builder: Builder) করা হয়েছে। (Ia6377)
API পরিবর্তন: AnnotatedString.Item-এর নাম পরিবর্তন করে AnnotatedString.Range করা হয়েছে। (I2d44d)
AnnotatedString.Builder.addAnnotationString-এর নাম পরিবর্তন করে addStringAnnotation করুন। (I5059e)
এখন onTextInputStarted কলব্যাক (I8dc44, b/151860051) দ্বারা ডেলিভার করা SoftwareKeyboardController ব্যবহার করে সফ্টওয়্যার কীবোর্ড লুকানো/দেখানো সম্ভব
(Text/Paragraph/Span)Style-এর জন্য প্লাস অপারেটর যোগ করা হয়েছে যা merge() ফাংশনে ডেলিগেট করে। (Ia1add)
FontWeight.lerp আর স্ন্যাপ করে না। এটি এখনও একটি ডেটা ক্লাস। (I521c2)
FontWeight কনস্ট্রাক্টর এখন সর্বজনীন, এটি আর ডেটা ক্লাস নয়। (Id6b1f)
TextLayoutResult-এ getLineStart, getLineEnd, getEllipsisOffset ও getEllipsisCount যোগ করুন (Ibc801)
ui-text মডিউলের নাম পরিবর্তন করে ui-text-core রাখা হয়েছে (I57dec)
ui-geometry মডিউলে Size class -এর ডুপ্লিকেট থাকার কারণে ব্যবহার না করা Size class সরিয়ে দেওয়া হয়েছে যা ব্যবহার করা হচ্ছে। (I1b602)
AdapterList যোগ করা হয়েছে, এটি একটি স্ক্রল করা যায় এমন তালিকা কম্পোনেন্ট যা শুধুমাত্র দৃশ্যমান আইটেম কম্পোজ ও লেআউট করে। বর্তমানে পরিচিত সমস্যাগুলির মধ্যে রয়েছে যে এটি শুধুমাত্র উল্লম্বভাবে কাজ করে এবং এর চাইল্ডে হওয়া পরিবর্তনের সব কেস সম্পূর্ণভাবে ম্যানেজ করতে পারে না। (Ib351b)
Box-এ প্যাডিং, বর্ডার, শেপ ও ব্যাকগ্রাউন্ড প্যারামিটার যোগ করুন (I05027, b/148147281)
সমস্যার সমাধান
- টেক্সট ফিল্ডে onFocusChange কলব্যাক ফাংশনের নাম পরিবর্তন করে onFocusChanged করা হয়েছে (Ida4a1)
- VerticalScroller এবং HoriziontalScroller বন্ধ করে দেওয়া হয়েছে। বিল্ট-ইন অভিজ্ঞতার জন্য Column/Row আচরণ ও প্যারামিটার সহ ScrollableColumn ও ScrollableRow ব্যবহার করুন অথবা আপনার নিজস্ব এলিমেন্টে Modifier.verticalScroll ও Modifier.horizontalScroll ব্যবহার করুন। একইভাবে, ScrollerPosition-এর পরিবর্তে ScrollState' (I400ce, b/157225838, b/149460415, b/154105299) ব্যবহার করা হবে
runOnIdleCompose-এর নাম পরিবর্তন করেrunOnIdleকরা হয়েছে (I83607)- আরও বেশি স্বজ্ঞাত করার জন্য বেশ কিছু টেস্টিং API-এর নাম পরিবর্তন করা হয়েছে। findXYZ API-এর নাম পরিবর্তন করে onNodeXYZ করা হয়েছে। doXYZ নামের সব API-এর নাম পরিবর্তন করে performXYZ করা হয়েছে। (I7f164)
- নতুন কম্পোজিশনের প্রয়োজন ছাড়াই Compose UI এখন ViewGroups-এর মধ্যে কম্পোজ করা যাবে। উদাহরণের জন্য ViewInteropDemo দেখুন। (I9ab0b, b/160455080)
- MutableVector-এ sortWith ও removeRange যোগ করা হয়েছে (Icccf7)
- TextField-এর জন্য বেছে নেওয়া অংশ পরিবর্তন করতে ড্র্যাগ সিলেকশন হ্যান্ডেল প্রয়োগ করুন। (I27032)
- Shader ইনলাইন ক্লাস সরানো হয়েছে যা NativeShader এক্সপেক্ট ক্লাসকে র্যাপ করে NativeShader-এর নাম পরিবর্তন করে Shader করা হয়েছে। র্যাপ করা Shader ইনলাইন ক্লাসটি API সারফেসে কোনও গুরুত্বপূর্ণ কিছু যোগ করেনি এবং এটি একটি ইনলাইন ক্লাস, তাই NativeShader ক্লাসটি সরাসরি ব্যবহার করুন। (I25e4d)
প্রদত্ত সীমাবদ্ধতা এবং ContentScale প্যারামিটারের উপর ভিত্তি করে স্কেলিং আর প্রদান না করতে PainterModifier রিফ্যাক্টর করা হয়েছে। Painter-এর ইমপ্লিমেন্টেশন হল, সেগুলিকে ড্রয়িং কন্টেন্ট নিজেদেরই স্কেল করতে হবে, যে DrawScope-এ তারা ড্র করছে তার দেওয়া সাইজের উপর ভিত্তি করে।
VectorPainter-এর ক্যাশে বিম্যাপ আঁকার জন্য দেওয়া সাইজের পরিবর্তে ডিফল্ট সাইজে সেট হয়ে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ImagePainter আপডেট করা হয়েছে, যাতে এটি PainterModifier-এর উপর নির্ভর না করে নিজের কন্টেন্ট স্কেল করতে পারে। (I6ba90)
অ্যানিমেশন টাইমিংয়ের জন্য top-level withFrameNanos ফাংশন যোগ করা হয়েছে (Ie34c5)
@Untracked অ্যানোটেশন পুরনো হয়ে গেছে। @ComposableContract(tracked=false) (Id211e) দিয়ে পাল্টান
androidx.ui.foundation.TextFieldValue এবং androidx.ui.input.EditorValue বন্ধ করা হয়েছে। TextField, FilledTextField এবং CoreTextField কম্পোজ করার উপযুক্ত আইটেম যা এই ধরনের আইটেম ব্যবহার করে সেগুলিও বাতিল করা হয়েছে। এর পরিবর্তে androidx.ui.input.TextFieldValue ব্যবহার করুন (I4066d, b/155211005)
dispatch চলাকালীন subcomposition-এর মাধ্যমে PointerInputFilters সরিয়ে দেওয়া হলে, pointer input dispatch ক্র্যাশ হওয়ার কারণ সম্পর্কিত সমস্যার সমাধান করা হয়েছে। এটি এখন ঠিক করা হয়েছে। (I1f48b, b/157998762)
সেই সমস্যার সমাধান করা হয়েছে যেখানে ডিসপ্যাচ করার সময় সাবকম্পোজিশনের মাধ্যমে PointerInputFilters সরিয়ে দেওয়া হলে পয়েন্টার ইনপুট ডিসপ্যাচ করার ফলে ক্র্যাশ হয়ে যেত। এটি এখন ঠিক করা হয়েছে। (Iab398, b/157998762)
Radius ক্লাসকে রিফ্যাক্টর করে ইনলাইন ক্লাস করা হয়েছে। বাধ্যতামূলক x-অক্ষ ব্যাসার্ধ প্যারামিটারের সাথে y-অক্ষ বরাবর ব্যাসার্ধ ম্যাচ করার জন্য ডিফল্ট প্যারামিটার সহ ফাংশন কনস্ট্রাক্টরের পক্ষে কম্প্যানিয়ন ক্রিয়েশন পদ্ধতি সরানো হয়েছে।
x ও y অক্ষ বরাবর রেডিয়াসের জন্য ২টি আলাদা ফ্লোট ভ্যালুর পরিবর্তে একটি রেডিয়াস প্যারামিটার ব্যবহার করতে DrawScope.drawRoundRect আপডেট করা হয়েছে (I46d1b)
Recompose কম্পোজ করার উপযুক্ত আর কোনও কার্যকর অ্যাবস্ট্রাকশন নয়। MutableState অ্যাসাইনমেন্টের ফলে বেশিরভাগ রিকম্পোজিশন হওয়া উচিত। এর বাইরে কিছু করার প্রয়োজন হলে, বর্তমান স্কোপের রিকম্পোজিশন ট্রিগার করার জন্য
invalidateফাংশন ব্যবহার করার সাজেশন দেওয়া হয়। (Ifc992)বড় রিফ্যাক্টরিংয়ের অংশ হিসেবে বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে, যাতে পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ডেটা টাইপের উপর নির্ভর করা যায় (Iede0b)
Compose-এর কম্পাইলারের কোড জেনারেশন স্ট্র্যাটেজি পরিবর্তন করে। পরিবর্তনের আগে, কম্পোজ কম্পাইলার কলগুলিকে কম্পোজ করার উপযুক্ত ফাংশনে ট্রান্সফর্ম করত। এই পরিবর্তনের ফলে, আমরা এখন কম্পোজ করা যায় এমন ফাংশনের বডিকে ট্রান্সফর্ম করি এবং কলসাইটকে অপরিবর্তিত রাখি (বেশিরভাগ ক্ষেত্রে)।
এর অর্থ হল, কম্পোজ রানটাইমের সাথে যোগাযোগকারী বেশিরভাগ লজিক কলসাইটের পরিবর্তে ফাংশন বডির শুরুতে ঘটে।
কম্পোজের সব ব্যবহারের জন্য এটি সোর্স-মানানসই পরিবর্তন হতে হবে। এই পরিবর্তনের ফলে কম্পোজের বেশিরভাগ ব্যবহারকারীকে কোনও কোড আপডেট করতে হবে না।
এই কাজকে সমর্থন করার জন্য, সমস্ত কম্পোজ করা যায় এমন ফাংশনের JVM সিগনেচার পরিবর্তন করা হয়েছে। একটি প্যারামিটার গ্রহণকারী কম্পোজ করার উপযুক্ত ফাংশনকে ৩টি প্যারামিটার গ্রহণকারী ফাংশনে রূপান্তরিত করা হয়, অতিরিক্ত প্যারামিটারগুলি হল কম্পোজার, একটি ‘কী’ ইন্টিজার, কল করার মাধ্যমে মেটাডেটা প্রচার করতে ব্যবহৃত বিটমাস্ক ইন্টিজার।
এছাড়াও, 'কম্পোজ করো' এখন ডিফল্ট আর্গুমেন্টকে কম্পোজ করার উপযুক্ত ফাংশনে ট্রান্সফর্ম করে। এটি ফাংশনের অতিরিক্ত সিন্থেটিক ডিফল্ট ওভারলোড যোগ না করেই এটি করে, তাই এই পরিবর্তনের ফলে কম ফাংশন সংজ্ঞায়িত করা হবে।
এর ফলে পরিচিত ইচ্ছাকৃত আচরণগত পরিবর্তন:
- আগে যেখানে এড়িয়ে যাওয়া হত না, সেখানে কিছু কল এড়িয়ে যাওয়া হবে
- ডিফল্ট আর্গুমেন্ট এক্সপ্রেশনে কম্পোজ করা যায় এমন এক্সপ্রেশন এখন সঠিকভাবে সাবস্ক্রাইব করা ও ম্যানেজ করা হয়
এই কাজের মধ্যে কিছু অপ্টিমাইজেশন অন্তর্ভুক্ত ছিল: ১. প্যারামিটার তুলনা করার ফলাফল কল গ্রাফের মাধ্যমে অন্যান্য কম্পোজ করা যায় এমন ফাংশনে প্রোপাগেট করা হয়। এর ফলে রানটাইমে কম তুলনা করতে হবে, স্লট টেবিলের সাইজ কমে যাবে এবং কম্পোজ করার উপযুক্ত ফাংশন আরও বেশি করে এড়িয়ে যাওয়া যাবে, যেগুলি আগে এড়িয়ে যাওয়া হত না ২. কম্পাইল করার সময় যে প্যারামিটারগুলিকে "স্ট্যাটিক" হিসেবে নির্ধারণ করা হয়, সেগুলিকে আর রানটাইমে তুলনা বা স্টোর করা হয় না। এর ফলে তুলনা করার সংখ্যা কমে যায় এবং স্লট টেবিলের সাইজও কমে যায়। ৩. তৈরি হওয়া গ্রুপের সংখ্যা কমানোর জন্য ফাংশনের বডির কন্ট্রোল ফ্লো স্ট্রাকচার ব্যবহার করা হয়। এর ফলে স্লট টেবিলের সাইজ কমে যায় এবং রানটাইম ৪-এর কাজও কমে যায়। ফাংশনের মধ্যে ব্যবহার না করা হলে, ফাংশনের স্কিপ করার উপযুক্ততা নির্ধারণ করার সময় ফাংশনে পাঠানো ও ফাংশন থেকে পাওয়া প্যারামিটার অন্তর্ভুক্ত করা হয় না।
বেশিরভাগ ব্রেকিং পরিবর্তন সেইসব API-এর জন্য করা হয়েছে যেগুলিকে কম্পাইলার সরাসরি টার্গেট করে এবং Compose-এর সাধারণ ব্যবহার প্রভাবিত হবে না: ১. Composer::startExpr সরানো হয়েছে ২. Composer::endExpr সরানো হয়েছে ৩. Composer::call বাতিল করা হয়েছে ৪.
key-এর নন-ভারআর্গ ওভারলোড সরিয়ে দেওয়া হয়েছে। এরপর থেকেvarargভার্সন ব্যবহার করুন। ৫. Pivotal অ্যানোটেশন বন্ধ করে দেওয়া হয়েছে। পরিবর্ত হিসেবেkeyব্যবহার করুন। ৬. ScopeUpdateScope::updateScope-কে পরিবর্তন করে Function1-এর পরিবর্তে Function3 করা হয়েছে ৭. restartableFunction ও restartableFunctionN-কে আপডেট করে অতিরিক্ত কম্পাইল টাইম প্যারামিটার যোগ করা হয়েছে (I60756, b/143464846)পুরনো হয়ে যাওয়া LayoutAlign মডিফায়ার সরিয়ে দেওয়া হয়েছে। (I10877)
DrawLayerModifier-এর (I00aa4) জন্য RepaintBoundary সরানো হয়েছে
Button, FloatingActionButton এবং Clickable-এ এখন আলাদা
enabledparam আছে। বোতামের কিছু প্যারামিটার নতুন নাম দেওয়া হয়েছে বা নতুন ক্রমে সাজানো হয়েছে। (I54b5a)আলাদা আলাদা ফাংশন সহ ButtonStyle পরিবর্তন করা হয়েছে এবং টেক্সট (স্ট্রিং) ওভারলোড সরিয়ে দেওয়া হয়েছে। ব্যবহার সংক্রান্ত তথ্যের জন্য আপডেট করা নমুনা দেখুন। (If63ab, b/146478620, b/146482131)
অ্যাম্বিয়েন্ট API-তে ব্রেকিং পরিবর্তন। বিস্তারিত জানতে লগ ও
Ambient<T>ডকুমেন্টেশন দেখুন (I4c7ee, b/143769776)LayoutDirection-এর মাধ্যমে নির্ধারণ করার জন্য ডিফল্ট TextDirection-এর আচরণ পরিবর্তন করা হয়েছে। যেমন, LayoutDirection RTL হলে, ডিফল্ট TextDirection RTL হবে। আগে এটি ছিল TextDirection.ContentOrLtr/Rtl (I4e803)
সমস্যার সমাধান: AnnotatedString-এ ফন্ট ওয়েট ও ফন্ট স্টাইল নেস্ট করা থাকলে, টেক্সট সঠিকভাবে রেন্ডার হয় না। (I77a9d)
Text()-এ সাধারণত ব্যবহৃত প্যারামিটার যোগ করে। আপনি যদি বর্তমানে এই প্যারামিটারগুলির একটি ছোট সংখ্যা পাস করার জন্য একটি স্থানীয় টেক্সট স্টাইল তৈরি করে থাকেন, যেমন Text(style = TextStyle(textAlign = TextAlign.Center)), তাহলে আপনি এখন সরাসরি প্যারামিটার প্রদান করতে পারবেন: Text(textAlign = TextAlign.Center) (I82768)
ui-android-text মডিউলের নাম পরিবর্তন করে ui-text-android করা হয়েছে (I68cbe)