Compose Foundation
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(সব Compose প্যাকেজের জন্য 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 ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টের জন্য
ডিপেন্ডেন্সি যোগ করুন:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.12.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.12.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।
মতামত
আপনার মতামত Jetpack-কে আরও ভালো করে তুলতে সাহায্য করে। আপনি যদি নতুন কোনও সমস্যা খুঁজে পান বা এই লাইব্রেরি উন্নত করার জন্য কোনও আইডিয়া থাকে, তাহলে আমাদের জানান। নতুন লাইব্রেরি তৈরি করার আগে এই লাইব্রেরিতে আগে থেকে থাকা সমস্যা দেখে নিন। আপনি তারকাচিহ্ন বোতামে ক্লিক করে আগে থেকে থাকা কোনও সমস্যাতে আপনার ভোট যোগ করতে পারবেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
ভার্সন 1.13
ভার্সন 1.13.0-beta01
০৭ অক্টোবর, ২০২৬
androidx.compose.foundation:foundation-*:1.13.0-beta01 রিলিজ করা হয়েছে। 1.13.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PolygonShapeওPolygonShapeScopeফ্যাক্টরি প্যারামিটারে@FloatRangeও@IntRangeঅ্যানোটেশন যোগ করা হয়েছে এবংPolygonShape.starওPolygonShape.pillStar-এinnerRadiusRatio-কে(0f, 1f)-এ সীমাবদ্ধ করা হয়েছে। (I47ea3)- আপডেট করা
PolygonShapeAPI:CornerRounding-কেdp()ওfraction()ফ্যাক্টরির সাথে টপ-লেভেলে সরানো হয়েছে,transformed()ওscaledToFit()এক্সটেনশনকে ইন-প্লেস মিউটেবলPolygonShape.transform(PolygonShapeTransformScope.() -> Unit)ওPolygonShape.copy()দিয়ে পাল্টানো হয়েছে। (If5970) - একটি সমস্যার সমাধান করা হয়েছে যেখানে উইন্ডো ফোকাস করার আগে
BasicTextField-এ ফোকাস করার অনুরোধ করলে (যেমন,onCreate-এ) সফ্টওয়্যার কীবোর্ড দেখা যেত না।BasicTextFieldএখন টেক্সট ইনপুট সেশন শুরু করার আগে উইন্ডো ফোকাস না হওয়া পর্যন্ত অপেক্ষা করে। এর ফলে ডেভেলপারদের কোনও সমস্যা হলে,ComposeFoundationFlags.isTextFieldWaitWindowFocusForInputSessionEnabled-এর মান false সেট করে আগের আচরণ ফিরিয়ে আনতে পারবেন। (I4206b) - লাইব্রেরি এখন Kotlin 2.2-কে টার্গেট করে এবং kotlinc 2.2 (I82396, b/498369605) প্রয়োজন
styleLayer()-এCommonStyleপদ্ধতি যোগ করা হয়েছে যা ঘোষণা করে যে কোনও লেয়ারে থাকা সব প্রপার্টি, তার নিচে থাকা লেয়ারে সেট করা প্রপার্টির চেয়ে বেশি অগ্রাধিকার পাবে।state()পদ্ধতি (এবংpressed()-এর মতো স্টেট হেল্পার) এখন অন্তর্নিহিতভাবে একটি লেয়ার তৈরি করে। (I24473)
সমস্যার সমাধান
FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানেalignContent(FlexAlignContent.Stretch) ভুলভাবে সেট করার ফলে চাইল্ড আইটেমগুলিকে লাইন সহ স্ট্রেচ করতে বাধ্য করা হয়েছে। (Ida156)FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে একটি র্যাপ করা লাইন (FlexWrap.WrapবাFlexWrap.WrapReverse) জোর করে কন্টেনারের ন্যূনতম ক্রস-অ্যাক্সিস কনস্ট্রেন্ট পর্যন্ত প্রসারিত করা হয়েছিল, যার ফলেalignContentএবংalignItemsআইটেমগুলি ভুলভাবে অ্যালাইন হয়ে গিয়েছিল। (I038b1)movableContentমুভমেন্টের মতো আলাদা করা মডিফায়ার নোডেconsumeWindowInsets,windowInsetsPaddingবাonConsumedWindowInsetsChangedআপডেট করার সময়IllegalStateExceptionক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (I80ae5)androidx.lifecycle:lifecycle-runtimeডিপেনডেন্সি আপডেট করে 2.10.0 করা হয়েছে। AGP 9.5.0-alpha04 বা এর পরের যেকোনও ভার্সনের সাথে বান্ডেল করা লাইফসাইকেল রানটাইম লিন্ট চেক চালানোর জন্য এই ভার্সনটি প্রয়োজন। (I99bfd, b/556807521)
ভার্সন 1.13.0-alpha03
৯ সেপ্টেম্বর, ২০২৬
androidx.compose.foundation:foundation-*:1.13.0-alpha03 রিলিজ করা হয়েছে। 1.13.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- কম্পাউন্ড কম্পোজ করার উপযুক্ত আইটেমের (যেমন,
TextFieldবাDatePicker) আলাদা আলাদা অংশের স্টাইল কম্পোজ করার উপযুক্ত আইটেমের স্টাইল প্যারামিটারে সরাসরি নির্দিষ্ট করার সুবিধা যোগ করে। এর ফলে, উদাহরণস্বরূপ,TextField-এর মতো কম্পোজ করা যায় এমন আইটেম তৈরি করা যায় যা স্টাইল ব্যবহার করে প্রতিটি ডেকোরেটর বক্স কাস্টমাইজ করতে দেয়, এর ফলে থিম লেভেল বা কল সাইটে সেগুলি ওভাররাইড করা যায়। (I43c0f) - Material 2 টেক্সট ফিল্ড ওভারলোড যা
value, onValueChangeপ্যারামিটার গ্রহণ করে তা বন্ধ করা হয়েছে।TextFieldStateব্যবহার করে স্টেট হোইস্ট করে এমন ওভারলোডে মাইগ্রেট করুন। (I6b841, b/556234973) TextFieldState-এundoStateথেকে@ExperimentalFoundationApiঅ্যানোটেশন সরিয়ে দেওয়া হয়েছে। (I93a44)- প্রতিটি লেজি লেআউটের জন্য ডিফল্ট কনফিগারেশন অবজেক্ট যোগ করুন যাতে সংশ্লিষ্ট
@Composeableফাংশনে ব্যবহৃত ডিফল্ট ভ্যালু থাকে। বর্তমানে প্রতিটি লেআউটের জন্য শুধু ডিফল্ট ক্যাশে উইন্ডো থাকে। (I58633) - চালু করা হলে, ফ্ল্যাগ
isUsingDynamicDefaultCacheWindowIn[List|Grid|StaggeredGrid]sলেজি লেআউটকে এমন একটি ক্যাশে উইন্ডো ব্যবহার করতে বাধ্য করবে যা ভিউপোর্টের ১০% ন্যূনতম অগ্রিম উইন্ডো এবং ভিউপোর্টের ৫০% সর্বাধিক অগ্রিম উইন্ডো সহ ভিউপোর্টের আগে প্রিফেচ করার জন্য দৃশ্যমান আইটেমের গড় সাইজ ব্যবহার করে। (I59212) LazyListPrefetchStrategy,LazyListPrefetchScopeওLazyListPrefetchResultScopeশীঘ্রই বন্ধ করা হবে।LazyColumnবাLazyRow-এLazyLayoutCacheWindowব্যবহার করে প্রিফেচিং আচরণ কনফিগার করতে হবে।LazyLayoutCacheWindowএকটি ডিক্ল্যারেটিভ, ভিউপোর্ট-ভিত্তিক ক্যাশিং মেকানিজম প্রদান করে যা জটিল ইম্পারেটিভ শিডিউলিং কলব্যাক না করেই আইটেমগুলিকে আগে থেকে অটোমেটিক প্রস্তুত করে এবং দৃশ্যমান উইন্ডোর পিছনে আইটেমগুলিকে রাখে। নতুন API আরও সহজ এবংLazyListPrefetchStrategy-এর তুলনায় কম কনফিগারেশন ধাপ প্রয়োজন। (I1fa2d)- পলিগন শেপ ট্রান্সফর্ম ও ফিট করার জন্য Compose Foundation-এ
PolygonShape.transformedওPolygonShape.scaledToFitএক্সটেনশন ফাংশন যোগ করে। (I3f327) - এই পরিবর্তনের ফলে Styles API-কে দুটি স্বতন্ত্র অংশে রিফ্যাক্টর করা হয়েছে: Styles DSL এবং DSL-এর মাধ্যমে কনফিগার করা মডিফায়ার। আগের
Style-ভিত্তিক প্রয়োগ এখনও আছে, তবে এটি বন্ধ করে দেওয়া হবে এবং সরিয়ে দেওয়া হবে। এর যেকোনও ব্যবহার নতুনCommonStyleভিত্তিক API দিয়ে পরিবর্তন করতে হবে। - প্রধান কম্পোনেন্ট:
CustomStyleওCommonStyle: কম্পোজেবল স্টাইল ঘোষণা করার জন্য বেস ইন্টারফেস ও মার্জিং হেল্পার।StyleResolver: কম্পোজিশনে স্টাইল প্রপার্টি সমাধান করে এবংModifier.styleResolver-এর মাধ্যমে লেআউট নোডের সাথে বাইন্ড করে।Modifier scopes:Modifier.appearance,Modifier.placementএবং ডায়নামিক কলব্যাক-ভিত্তিকModifier.paddingওModifier.graphicsLayer।- প্রপার্টি প্রিমিটিভ:
stylePropertyOf,styleLocalOf. - স্টাইল প্রপার্টির জন্য উপযোগী ধরন:
Breadth,FillএবংShadows.
- নতুন মডিফায়ারগুলি Styles API ব্যবহার করে ডিজাইন সিস্টেম প্রয়োগ করার জন্য সহায়ক হলেও এটি আবশ্যক নয়। কোনও ডিজাইন সিস্টেম এইসব মডিফায়ার ব্যবহার করতে পারে অথবা নিজস্ব মডিফায়ার প্রদান করতে পারে। (Ieb8cc, b/549921960)
- পরিবর্তন ট্র্যাক করা
TextFieldBufferAPI থেকেExperimentalFoundationApiঅ্যানোটেশন সরানো হয়েছে (I546a7) MorphPolygonShape-এর জন্যRoundedCornerShapeওCutCornerShapetoPolygonShape()কনভার্টার সহ পলিগন শেপের মধ্যে মরফিং অ্যানিমেশনের জন্য Compose Foundation-এ যোগ করা হয়েছে। (Ic5a89)- কর্নার স্মুথিং সহ সাধারণ, স্টার ও কাস্টম রাউন্ডেড পলিগন রেন্ডার করার জন্য Compose Foundation-এ
PolygonShapeযোগ করা হয়েছে। (I0b99d) BasicTextFieldওভারলোড যাvalue, onValueChangeপ্যারামিটার গ্রহণ করে তা বন্ধ করা হয়েছে।BasicTextFieldওভারলোডে মাইগ্রেট করুন যা নিজের স্টেট হোইস্ট করতেTextFieldStateব্যবহার করে। (I636bf, b/552879150)BasicTextField(value, onValueChange)-এর সাথে,VisualTransformation-ও বাতিল করা হয়েছে কারণ এটি শুধুমাত্র এইTextFieldফ্লেভারের মাধ্যমে এক্সপোজ করা হয়। আগে থেকে থাকা ট্রান্সফর্মেশনOutputTransformation-এ মাইগ্রেট করা উচিত। (I636bf, b/552879150)LazyListState-এর মাধ্যমেLazyLayoutCacheWindowওLazyListPrefetchStrategyপ্রদান করার পদ্ধতিটি কম্পোজেবল ফাংশনেLazyLayoutCacheWindowপ্রদান করার জন্য বন্ধ করে দেওয়া হয়েছে। (I71f19)- সাময়িক ফিচার ফ্ল্যাগ
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledসরানো হয়েছে। (Ifff7f) - অতিরিক্ত ইনপুট অক্ষর ট্রাঙ্কেট করে টেক্সটের দৈর্ঘ্য সীমিত করতে
InputTransformation.maxLengthTrimযোগ করা হয়েছে,maxLength-এর বেশি ইনপুট বাতিল করতেInputTransformation.maxLengthRejectযোগ করা হয়েছে এবংmaxLengthTrimওmaxLengthReject-এর জন্যInputTransformation.maxLengthসরিয়ে দেওয়া হয়েছে। (I8d4cd)
সমস্যার সমাধান
compileSdk-এর জন্য Compose লাইব্রেরি 37.1-এ আপডেট করা হয়েছে। এর জন্য Compose ব্যবহার করা সব অ্যাপ ও লাইব্রেরির জন্যcompileSdkট্রানজিটিভ আপডেট করতে হবে। (I05b0f)- প্রিডিক্টিভ ব্যাক চলাকালীন
WindowInsetsRulersIME ইনসেট অ্যানিমেট করা হচ্ছে বলে চিহ্নিত না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে এবং টেক্সট ফিল্ডের মধ্যে ফোকাস পরিবর্তন করার সময়imePaddingআপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Id4562, b/537386261, b/539686000) TextObfuscationMode.RevealLastTyped-এর পরিবর্তেTextObfuscationMode.System-কে ডিফল্ট অস্পষ্টতা মোড হিসেবে ব্যবহার করতেSecureTextFieldওOutlinedSecureTextFieldকম্পোনেন্ট (পাশাপাশি, বন্ধ হয়ে যাওয়াBasicSecureTextFieldওভারলোড) আপডেট করা হয়েছে। (I76c7e)
ভার্সন 1.13.0-alpha02
২৬ আগস্ট, ২০২৬
androidx.compose.foundation:foundation-*:1.13.0-alpha02 রিলিজ করা হয়েছে। 1.13.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- প্রোমোটেড গ্রিড লেআউট API (
Grid,GridScope,GridConfigurationScope,GridFlow,Fr,GridTrackSize,GridTrackSpec,Modifier.gridItem) স্টেবল ভার্সনে আপডেট করা হয়েছে। (I43ac4, b/462550392) - Modifier.background-এর জন্য নতুন সিম্যান্টিক প্রপার্টি
BackgroundColorযোগ করা হয়েছে (I7eec3, b/518049030) ExperimentalFlexBoxApiঅ্যানোটেশন সরিয়ে দেওয়া হয়েছে এবংFlexConfigScope-এ পিক্সেল-ভিত্তিক প্রপার্টির নাম পরিবর্তন করেPxসাফিক্স যোগ করা হয়েছে, যাতে বিষয়টি স্পষ্ট হয়। (I5b24e, b/543092286)- লুকঅহেড পাসে না থাকলে, শুধুমাত্র ক্যাশে করা আইটেমগুলিই রেখে দিন। ফ্ল্যাগ
isKeepAroundDuringLookaheadDisabledচালু করা হয়েছে। পুরনো আচরণে ফিরে যেতে, ফ্ল্যাগকেfalseহিসেবে সেট করুন। (I110e9) isLazyLayoutItemAnimatorVisibleBoundsFixEnabledকম্পোজ ফ্ল্যাগ যোগ করা হয়েছে। চালু করা হলে,LazyListওLazyGridমেজারমেন্টে প্লেসমেন্ট অ্যানিমেশন রান করার আগে, দৃশ্যমান আইটেম ইনডেক্স বাউন্ড গণনা করা হয়। (I56150)- Draggable-এ প্রাথমিক পাসে কনজাম্পশন সংক্রান্ত সমস্যার সমাধান করুন। এর ফলে নিশ্চিত হওয়া যায় যে প্রাথমিক পাসে কোনও ডাউন ইভেন্ট ব্যবহার করা হলে, মূল পাসে সঙ্গে সঙ্গে ড্র্যাগিং শুরু হয়ে যায়। এই আচরণগত পরিবর্তন ফিচার ফ্ল্যাগ
ComposeFoundationFlags.isDraggableInitialPassConsumptionFixEnabled-এর মাধ্যমে নিয়ন্ত্রিত হয়। (I6a77f, b/532946466)
ভার্সন 1.13.0-alpha01
১২ আগস্ট, ২০২৬
androidx.compose.foundation:foundation-*:1.13.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.13.0-alpha01-এ এইসব কমিট রয়েছে।
ব্রেকিং পরিবর্তন
- আগের রিলিজের ঘোষণাকে অনুসরণ করে,
Modifier.onFocusedBoundsChanged-এর প্রয়োগ সম্পূর্ণভাবে সরিয়ে দেওয়া হয়েছে। এই মডিফায়ার ব্যবহার করলে এখন কোনও অপারেশন হয় না। প্রয়োজন অনুযায়ী এই তথ্য কোয়েরি করার জন্যFocusTargetModifierNode.getFocusedRect()ব্যবহার করার বিকল্পে মাইগ্রেট করুন। (Ia39db, b/220030968)
API-তে পরিবর্তন
LazyGridState-এর মাধ্যমেLazyLayoutCacheWindowওLazyGridPrefetchStrategyপ্রদান করার পদ্ধতিটি কম্পোজেবল ফাংশনেLazyLayoutCacheWindowপ্রদান করার জন্য বন্ধ করে দেওয়া হয়েছে। (I3f31e)isSkipItemPlacementAnimationFixEnabledফ্ল্যাগ সরান (I890f3, b/493183465)isClearNestedScrollCoroutineScopeFixEnabledফ্ল্যাগ সরিয়ে দিন (Iedfd7, b/506963276)- পতাকা
isCacheWindowVisibleItemCountCheckEnabledথেকে পরিবর্তন করেisCacheWindowLookaheadCheckEnabledকরা হয়েছে (I2ea06) TextFieldStateএখন টেক্সট স্টাইল সংক্রান্ত তথ্য সেভ ও রিস্টোর করে।AnnotatedString.Annotationঅবজেক্ট সেভ ও রিস্টোর করার অনুমতি দিতেAnnotatedString.Annotation.Saverএখন সর্বজনীন করা হয়েছে। (I8b533, b/135556699)- লেজি স্ট্যাগার্ড গ্রিড লেআউটে ক্যাশে উইন্ডো যোগ করে। পুরনো প্রিফেচ আচরণে ফিরে যেতে,
isUsingCacheWindowInStaggeredGrids-কে false হিসেবে সেট করুন। (I1c70d) FlexBoxএবং এর সাথে সম্পর্কিত কনফিগারেশন API এখন আর পরীক্ষামূলক নয়, এগুলিকে স্টেবল হিসেবে প্রোমোট করা হয়েছে। (I209ed, b/475491619)- র্যাপিং চালু থাকলে, প্রতি লাইনে আইটেমের সংখ্যা সীমিত করার অনুমতি দিতে
FlexBox-এmaxItemsInEachLineকনফিগারেশন যোগ করা হয়েছে। (I2744b, b/475491619) - Compose জুড়ে
@EmptySuperসহ অ্যানোটেট করা ওভাররাইড করা যায় এমন খালি বেস পদ্ধতি, যাতে বোঝানো যায় যে ওভাররাইডিং প্রয়োগ সুপারকে ইনভোক করবে না। (Id407b) WindowInsetsদৃশ্যমানতা ও অ্যানিমেশন API-কে প্রোমোট করে স্থিতিশীল করা হয়েছে। (I37441, b/537329254)- ক্লিক করা যায় এমন এলিমেন্টে ক্লিক করলে এখন Android-এ অটোমেটিক ইন্ট্যার্যাকশন সাউন্ড এফেক্ট বাজবে। (Ia72f8)
- স্ক্রল না করেই দৃশ্যমান আইটেমের সংখ্যা পরিবর্তন হলে, ক্যাশে উইন্ডো এখন আগে থেকে লোড করা উইন্ডো রিফিল করে। এই চেক বন্ধ করতে এবং পুরনো আচরণে ফিরে যেতে,
isCacheWindowVisibleItemCountCheckEnabledফ্ল্যাগকেfalseহিসেবে সেট করুন। (I67b5a) - আনঅ্যাটাচ বা ডিট্যাচ করা হলে নিরাপদে বাতিল করা
CoroutineScopeফিরিয়ে আনার জন্যNestedScrollDispatcher.coroutineScopeপ্রপার্টি আপডেট করা হয়েছে। (I9b112, b/535290281) enableNonScrollCaching-এর নাম পরিবর্তন করেisNonScrollCachingEnabledকরা হয়েছে (I7a54b, b/535290282)SemanticsNodeInteraction.isDisplayed() ওisNotDisplayed()-এ @CheckResultযোগ করা হয়েছে যাতে নিশ্চিত করা যায় যে রিটার্ন ভ্যালু অ্যাসার্ট করা হয়েছে। এর ফলে, ডেভেলপাররা অ্যাসারশন API-এর পরিবর্তে ভুলবশত এগুলি ব্যবহার করলে, টেস্ট নীরবে ব্যর্থ হওয়া আটকানো যায়। (I1b447, b/508178494)LazyLayoutCacheWindowস্থিতিশীল করুন (I2cda3)- Pager-এর ডিফল্ট ইমপ্লিমেন্টেশন ওভাররাইড করার অনুমতি দিতে, অনুভূমিক ও
উল্লম্ব পেজারের জন্য
bringIntoViewSpecপ্যারামিটার যোগ করা হয়েছে। (Icdcbf, b/505052292) - লেজি লেআউট প্রিফেচ শিডিউলারের আইডল ডিটেকশনে হওয়া একটি সমস্যার সমাধান করে। আগে, কোনও ফ্রেম খুব বেশি দেরিতে এলে, শিডিউলার ভুল করে নিজেকে অলস হিসেবে বিবেচনা করতে পারত, যার ফলে স্ক্রল করার সময় সম্ভাব্য জ্যাঙ্ক হতে পারত। পুরনো আচরণে ফিরে যেতে,
isLazyPrefetchSchedulerIdleTimeFixEnabledকম্পোজ ফ্ল্যাগকে false হিসেবে সেট করুন। (If0594, b/458024295) NestedScrollDispatcher-এcoroutineScopeOrNull()-এর ব্যাপারে জানুন, এটি হল ডিসপ্যাচারের পেরেন্ট কোরাউটিন স্কোপ অ্যাক্সেস করার একটি বিকল্প API। (I18c0f)- কম্পোজে ওভারস্ক্রল করার সময় অনুভূমিক টেক্সট সরে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
AndroidComposeFoundationFlags.isOverscrollPixelRoundingEnabled-এর মাধ্যমে বন্ধ করা যেতে পারে। (Ica169, b/532079110, b/532081619) - Draggable-এ এই সমস্যার সমাধান রোল-আউট করার প্রসেস নিয়ন্ত্রণ করতে ফ্ল্যাগ
isDraggableZeroDeltaConsumptionEnabledযোগ করুন। জিরো ডেল্টা ইভেন্ট এখন সঠিকভাবে প্রসেস করা হয়। (I50eb1, b/524163413) - ক্র্যাশ হওয়া আটকাতে, একই সাথে টেক্সট আপডেট করার সময় টেক্সট বেছে নেওয়ার প্রসেস এখন নিরাপদে টেক্সটের দৈর্ঘ্যের মধ্যে সীমাবদ্ধ রাখা হয়। (I64fd7)
androidx.benchmark-এর এখন ২৪টিminSdkআছে। (Ic2a85)- স্প্যান মাল্টিলাইন হলে লিঙ্কগুলি এখন ক্লিক আরও ভালোভাবে ম্যানেজ করতে পারে। এটি কাজ করানোর জন্য টাচ টার্গেটকে ওভাররাইড করে ০ করা হয়েছে। এটি কাঙ্ক্ষিত আচরণ না হলে, এটি ওভাররাইড করতে
ComposeFoundationFlags.isLinkMinimumTouchTargetSizeZeroEnabledফ্ল্যাগ ব্যবহার করুন। (Ide41b, b/361106057) - পরিবর্তনযোগ্য স্টেট অবজেক্টে লেখার সময় কম ভলিউম সংক্রান্ত ব্যতিক্রমের সমাধান করা হয়েছে। (I48194, b/503110696)
- নেভিগেশন/ব্যাক স্ট্যাক স্টেট ম্যানেজমেন্ট সহজ করতে
SaveableStateHolder-এ দৃশ্যমানkeysএক্সপোজ করুন এবং এক্সটার্নালkeyট্র্যাকিংয়ের প্রয়োজনীয়তা সরিয়ে দিন।holder.keys-এর মাধ্যমে অ্যাক্সেস করুন;removeState-এর মাধ্যমে সরিয়ে দিন। (I9bbbb, b/398887924) - পরীক্ষামূলক পুরনো
IndirectPointerEventহেল্পার ফাংশন সরিয়ে দেয়। (I05dee, b/499336763, b/501098299, b/501098376, b/513249467) - Android-এ
LocalBringIntoViewSpecস্থিতিশীল করুন। (Ibcb97) isMultiLaneCacheWindowEnabledফ্ল্যাগ যোগ করুন (I3d997)- বেছে নেওয়া টেক্সট পর্যবেক্ষণ ও প্রোগ্র্যামাটিক উপায়ে বেছে নেওয়া অংশ আপডেট করার জন্য
SelectionContainer-এ পাস করার জন্য নতুনSelectionStateAPI তৈরি করা হয়েছে।" into androidx-main am: 929401883c am: c02871cac4 (I15bd4) LocalTextFieldContentObserverRegistrationExecutorযোগ করা হয়েছে যা ব্যাকগ্রাউন্ড থ্রেডেTextField-এ হওয়া অন্তর্নিহিতContentObserverরেজিস্ট্রেশন ডেলিগেট করার একটি উপায় অফার করে। (Ib4fa6, b/505287297, b/509842675)TextObfuscationMode.Default-এর নাম পরিবর্তন করেSystemকরা হয়েছে।TextObfuscationMode.RevealLastTypedএখন একটি সম্পূর্ণ ওভাররাইড হিসেবে কাজ করে এবং সবসময় শেষ টাইপ করা অক্ষরটি দেখায়।BasicSecureTextField-এর ডিফল্ট আর্গুমেন্ট সিস্টেম হিসেবে আপডেট করা হয়েছে। (If26d3, b/425658491, b/453647378)
সমস্যার সমাধান
- Android স্ক্রল কন্টেনারের (যেমন
ScrollViewবাCoordinatorLayout) মধ্যে নেস্ট করা কম্পোজে দ্রুত স্ক্রল করার সময় কখনও কখনও ভুল ভেলোসিটি গণনা করার সমস্যা সমাধান করা হয়েছে। (I0f017) FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে রিভার্স দিকনির্দেশ, রিভার্স র্যাপ বা কাস্টম আইটেম অর্ডার ব্যবহার করার সময় ফোকাস ট্রাভার্সাল আইটেমের ভিজ্যুয়াল অর্ডারের সাথে ম্যাচ করেনি। (I4cc61, b/521609263)Modifier.fillMaxWidth()এবংModifier.fillMaxHeight()-এর মতো স্ট্যান্ডার্ড লেআউট মডিফায়ার,FlexBox-এর মধ্যে থাকা আইটেমের উপর কোনও প্রভাব ফেলত না, যদি না কোনও স্পষ্ট 'ফ্লেক্স গ্রো ফ্যাক্টর' নির্দিষ্ট করা থাকত। এই সমস্যার সমাধান করা হয়েছে। (Ib0ac3, b/515657458)- ডায়নামিক গেটার ব্যবহার করে
foundationটপ-লেভেল ভ্যালু ক্লাস প্রপার্টির অপ্টিমাইজ করা ফাইল-লেভেল ইনিশিয়ালাইজেশন। (I570d7) - ডায়নামিক গেটার ব্যবহার করে
foundation-layoutভ্যালু ক্লাসের (WindowInsetsSidesইত্যাদি) অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (I01c2b) android:configChanges-এর মাধ্যমে অ্যাক্টিভিটি রিস্টার্ট করার সুবিধা বন্ধ করা থাকলে, ইন-অ্যাপ লোকালে পরিবর্তন করার পরে কম্পোজ টেক্সট বেছে নেওয়ার কনটেক্সট মেনু আইটেম পুরনো স্ট্রিং দেখানোর সমস্যার সমাধান করা হয়েছে। (Ic910b, b/515156417)- ডায়নামিক গেটার ব্যবহার করে
compose:foundationভ্যালু ক্লাস (KeyModifiers,MarqueeAnimationMode,Source, ইত্যাদি) -এর অপ্টিমাইজ করা কম্প্যানিয়ন অবজেক্ট ইনিশিয়ালাইজেশন। (I78455) - স্টাইল অ্যানিমেশন সংক্রান্ত সমস্যা সমাধান করে যাতে, কোনও অ্যানিমেশনে শুধুমাত্র শর্তসাপেক্ষে সেট করা কোনও ভ্যালুতে ট্রানজিট করার সময় এবং সেটি থেকে বেরিয়ে আসার সময়, এটিকে প্রপার্টির ডিফল্ট ভ্যালুতে অ্যানিমেট করা এবং সেটি থেকে বেরিয়ে আসা হিসেবে বিবেচনা করা হয়। (I8e41d, b/527140078)
- গ্রিডে একটি সমস্যার সমাধান করা হয়েছে যেখানে সীমাবদ্ধ দিকে উপলভ্য এক্সপ্লিসিট ট্র্যাকের চেয়ে বেশি স্প্যান সহ অটোমেটিক প্লেস করা আইটেম, গ্যাপ প্রয়োগ করা হলে গ্রিডের সীমানার বাইরে চলে যেত। (I00ce0, b/506570362)
- API সংক্রান্ত তথ্য ক্লিন-আপ করে (Ia8066)
BasicTextField-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে অনুরোধ করা হলে এটি IME-কে সঠিকভাবে এক্সট্র্যাক্ট করা টেক্সট আপডেট প্রদান করত না। (I746fa, b/203549026, b/492363474)
ভার্সন 1.12
ভার্সন 1.12.1
৯ সেপ্টেম্বর, ২০২৬
androidx.compose.foundation:foundation-*:1.12.1 রিলিজ করা হয়েছে। 1.12.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.12.0
১২ আগস্ট, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0 রিলিজ করা হয়েছে। 1.12.0 ভার্সনে এইসব কমিট আছে।
1.11.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন:
ভার্সন 1.12.0-rc01
২৯ জুলাই, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.12.0-rc01-এ এইসব কমিট রয়েছে।
ভার্সন 1.12.0-beta02
১ জুলাই, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-beta02 রিলিজ করা হয়েছে। 1.12.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.12.0-beta01
১৭ জুন, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-beta01 রিলিজ করা হয়েছে। 1.12.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পরোক্ষ পয়েন্টার ইভেন্ট ট্রিগার করার জন্য টেস্ট ফাংশনের নাম পরিবর্তন করে (I3ee35, b/509618414)
TextObfuscationMode.Default-এর নাম পরিবর্তন করেSystemকরা হয়েছে।TextObfuscationMode.RevealLastTypedএখন একটি সম্পূর্ণ ওভাররাইড হিসেবে কাজ করে এবং সবসময় শেষ টাইপ করা অক্ষরটি দেখায়।BasicSecureTextField-এর ডিফল্ট আর্গুমেন্টSystem-এ আপডেট করা হয়েছে। (If26d3, b/425658491, b/453647378)- আলাদা আলাদা স্টার্ট/এন্ড ইন্ডেক্সের পরিবর্তে
TextRangeনেওয়ার জন্যgetSpanStylesওgetParagraphStylesআপডেট করা হয়েছে। স্টাইল কোয়েরিতে শিথিল বাউন্ডস চেকিং আর ব্যতিক্রম ঘটায় না এবং ইনভ্যালিডTrackedRanges-এর প্রপার্টি কোয়েরি করার সময় ক্র্যাশ হওয়া আটকায়। (I62a9a, b/514404697) - গ্রিড লেআউটে নামযুক্ত এরিয়া ফিচার যোগ করা হয়েছে। ডেভেলপাররা
এখন
GridConfigurationScope.area()ব্যবহার করে সিম্যান্টিক এরিয়া ডিফাইন করতে এবং নতুনModifier.gridItem(area)ওভারলোড ব্যবহার করে সেগুলিতে আইটেম প্লেস করতে পারবেন। এর ফলে, ফিজিক্যাল কোঅর্ডিনেট থেকে সিম্যান্টিক ইনটেন্ট আলাদা করা যাবে। (Id9303, b/487503921) - লেআউট কনফিগারেশন মার্জ ও ওভাররাইড করার অনুমতি দিতে
FlexBoxConfigওFlexConfig-এর জন্য অপারেটর ও কম্বিনেশন ফ্যাক্টরি ফাংশন যোগ করা হয়েছে। (Icfdd8, b/475491619) RevealState.drag(),SwipeToRevealDragScopeযোগ করা হয়েছে এবং সোয়াইপ জেসচার, অফসেট ও সেটেল অ্যানিমেশনের উপর প্রোগ্রাম্যাটিক কন্ট্রোল চালু করতেSwipeToReveal-এ কাস্টমflingBehaviorএক্সপোজ করা হয়েছে। (Ibfe56, b/484185090)
সমস্যার সমাধান
- টেক্সট বেছে নেওয়ার টুলবার তার পজিশন বা আইটেম আপডেট করতে না পারার সমস্যা সমাধান করা হয়েছে। (Ib2566)
এক্সটার্নাল কন্ট্রিবিউশন
SelectionContainer-এ,Textবেছে নেওয়ার উপযুক্ত আইটেমের মধ্যে ফাঁকা জায়গা থেকে শুরু করার জন্য বেছে নেওয়ার (মাউসের মাধ্যমে) অনুমতি দিন। (I93f69, b/502151445)- ক্লিপবোর্ড ইমপ্লিমেন্টেশন মক করার উপায় প্রদান করতে, পরীক্ষার জন্য
AndroidClipboardইন্টারফেস এক্সপোজ করা (Ie4d72, b/512924975) commitText()ওsetComposingText()-এরTextAttributeভার্সনের জন্য ব্যাকওয়ার্ড কম্প্যাটিবিলিটি যোগ করুন। SDK>=37-এর জন্য, অ্যাক্সেসিবিলিটি পরিষেবা ঘোষণা করতে পারবে যে কোনও সাজেশন পরিবর্ত টেক্সট বেছে নেওয়া হয়েছে কিনা। SDK<37-এর জন্য, স্পোকেন ফিডব্যাককে প্রভাবিত করবে না (অর্থাৎ, আগে থেকে থাকা আচরণ)। (I90e3d, b/439879822)
ভার্সন 1.12.0-alpha03
১৯ মে, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-alpha03 রিলিজ করা হয়েছে। 1.12.0-alpha03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- পরীক্ষামূলক Style API-তে, কাস্টম স্টাইল স্কোপ থাকতে পারে এমন কাস্টম স্টাইলের ধরন তৈরি করার জন্য সহায়তা যোগ করা হয়েছে। এটি স্টাইলের মাধ্যমে সেট করা যায় এমন প্রপার্টিকে সাবসেট করার (যেমন, গ্রাফিক্স লেয়ার বা টেক্সট প্রপার্টি সম্পূর্ণভাবে সরিয়ে দেওয়া) পাশাপাশি অন্যান্য স্টাইল থেকে আলাদাভাবে স্কোপকে এক্সটেন্ড করার (যেমন, কম্পোজ করা যায় এমন
MediaPlayerএলিমেন্টে শুধুমাত্রplaying { }সিনট্যাক্স কাজ করে) অনুমতি দেয়। এই পরিবর্তনের ফলে বাইনারি ও সোর্স কোড আর মানানসই থাকে না। সোর্স কম্প্যাটিবিলিটি ভেঙে যাওয়ার মূল কারণ হল,StyleScope-এর মধ্যে থাকা হেল্পার ফাংশন এখন এক্সটেনশন ফাংশন হিসেবে কাজ করে (যেমন,fun contentProperty(all: Dp)এখন একটি এক্সটেনশন ফাংশন)। প্রয়োজনীয় এক্সটেনশন ফাংশন ইমপোর্ট করা অথবা androidx.compose.foundation.styles থেকে সব চিহ্ন ইমপোর্ট করা, এই পদ্ধতিগুলি সঠিকভাবে কম্পাইল করার জন্য এই মেথড কল করা কোড পাওয়ার জন্য যথেষ্ট। (I1ef27, b/493676648). ScrollIndicatorStateপ্রয়োগ এখন উল্টো লেআউটের জন্য ভিজ্যুয়াল শুরুর থেকে স্ক্রল অফসেট সঠিকভাবে রিটার্ন করে, এর ফলে ইন্ডিকেটর সঠিকভাবে ভিজ্যুয়ালি উপস্থাপন করা যায়। (Ia3fae, b/503604996)- সমস্যার সমাধান কন্ট্রোল করতে
isClearNestedScrollCoroutineScopeFixEnabledফ্ল্যাগ যোগ করা হয়েছে। (Ibd394, b/505343254)
এক্সটার্নাল কন্ট্রিবিউশন
SelectionContainer-এ ভিউপোর্টের বাইরে টেক্সট বেছে নেওয়ার জন্য ড্র্যাগ করার সময় অটোমেটিক স্ক্রল করার সুবিধা চালু করা হয়েছে। (Ibcb08, b/424433794)
ভার্সন 1.12.0-alpha02
৬ মে, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.12.0-alpha02-এ এইসব কমিট রয়েছে।
ভার্সন 1.12.0-alpha01
২২ এপ্রিল, ২০২৬
androidx.compose.foundation:foundation-*:1.12.0-alpha01 রিলিজ করা হয়েছে। 1.12.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- সর্বনিম্ন/সর্বাধিক লাইনের সংখ্যায় টেক্সট ফিল্ডের উচ্চতা গণনা করার সময় অপ্টিমাইজেশন চালু করতে একটি নতুন ফ্ল্যাগ
isBasicTextFieldHeighInLinesOptimizationEnabledযোগ করা হয়েছে। এটি ডিফল্ট হিসেবে চালু থাকতে হবে। টেক্সট ফিল্ড লেআউটে কোনও রিগ্রেশন দেখতে পেলে এবং এই ফ্ল্যাগ বন্ধ করে দিলে সেটি ঠিক হয়ে গেলে, তদন্ত করার জন্য কম্পোজ টিমকে একটি বাগ ফাইল করুন। (Idffae, b/486871837, b/487546327) - জেসচার চলাকালীন টেক্সট এডিট করার সময়
textfieldবেছে নেওয়া সংক্রান্ত সমস্যার সমাধান করুন। (I6fd98, b/490509264) - Compose Foundation-এ
StyleScope-এcolorFilterসংক্রান্ত সুবিধা যোগ করা হয়েছে। (I553a0) StyleScope-এtextMotionযোগ করা হয়েছে। (Id8523, b/482301609)- Android-এ কাজ করে এমন কীবোর্ড বিকল্পের সেট সম্পূর্ণ করতে অতিরিক্ত
KeyboardTypeবিকল্প যোগ করে, যার মধ্যে তারিখ, সময়, তারিখ ও সময়, সই করা দশমিক সংখ্যা এবং আরও অনেক কিছু অন্তর্ভুক্ত। (I3713e, b/202353328) - ফ্ল্যাগ সরানো
isNestedDraggablesTouchConflictFixEnabled(I79e52, b/485966180) - ফ্ল্যাগ সরানো
isDelayPressesUsingGestureConsumptionEnabled(I533dd, b/485966702) - স্থির ভার্সনে রিলিজ করা হয়েছে বলে
isBringIntoViewRltBouncyBehaviorInPagerFixEnabledফ্ল্যাগ সরিয়ে দিন। (I73fb2, b/485967682) - স্থির ভার্সনে রিলিজ করা হয়েছে বলে
isCacheWindowRefillFixEnabledফ্ল্যাগ সরিয়ে দিন। (Ic7505, b/485967875) ComposeFoundationFlags#isNonSuspendingPointerInputInCombinedClickableEnabledসরিয়ে দেয় (I1f76c, b/485966320, b/477836055)StyleScope-এcontentPaddingওexternalPadding-এর জন্য ওভারলোড যোগ করা হয়েছে যাPaddingValuesগ্রহণ করে। (I3a6ce, b/493154098)- Android ফ্রেমওয়ার্কের (
AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled-এর মাধ্যমে কনফিগার করা যায়) দেওয়া ইমপ্লিমেন্টেশন ব্যবহার করার জন্যVelocityTrackerপরিবর্তন করা হয়েছে। (Ibc7e2, b/359962905)
সমস্যার সমাধান
- একই প্রপার্টির জন্য ওভারল্যাপ করা অ্যানিমেশন এড়াতে, কীভাবে অ্যানিমেশন ও প্রপার্টি ট্র্যাক করা হয় তা পরিবর্তন করা হয়েছে। (I4921f)
TextField(বা বেছে নেওয়ার মতো টেক্সট) ডায়ালগে থাকলে, প্রসঙ্গ মেনু ক্র্যাশ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I21461, b/441759435)- Compose
compileSdkথেকে API 37-এ আপডেট করা হয়েছে। এর অর্থ হল, Compose ব্যবহার করার সময় ন্যূনতম AGP ভার্সন 9.2.0 প্রয়োজন। (Id45cd, b/413674743) - গ্রিডে একটি সমস্যার সমাধান করা হয়েছে যেখানে কীবোর্ড ফোকাস এবং অ্যাক্সেসিবিলিটি ট্রাভার্সাল ভিজ্যুয়াল Z-আকৃতির প্লেসমেন্ট অর্ডারের পরিবর্তে আইটেম কম্পোজিশন অর্ডার অনুসরণ করে। (I122a8, b/494096503)
- টেক্সট বেছে নেওয়ার টুলবার ভুলভাবে লুকিয়ে যাওয়ার সমস্যা সমাধান করা হয়েছে, এটি তখন হত যখন শুরু ও শেষের হ্যান্ডেলগুলি অনুভূমিকভাবে সারিবদ্ধ থাকত (যেমন, একাধিক লাইন জুড়ে বেছে নেওয়া যা একটি ফাঁকা লাইনে শেষ হয়)। (I391d2, b/497724722)
FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে কন্টেনার বাউন্ড অতিক্রম করলে আইটেম সঠিকভাবে ছোট করা যেত না। (Ia741d, b/480797591)foregroundColorসঠিকভাবে বাতিল না হওয়ার সমস্যার সমাধান। (I74abe, b/493245886)- Compose-এর ইনসেট লিসনার আলাদা করে আবার অ্যাটাচ করা হলে, ইনসেট সংক্রান্ত পুরনো সমস্যা সমাধান করে। (I1e905, b/491346046, b/486084139)
- ব্যবহারকারী কার্সরকে স্ক্রল করা যায় এমন জায়গার বাইরে নিয়ে গেলে, কার্সরটি এখন দৃশ্যমান জায়গায় স্ক্রল করা হয়। (If694c, b/266094055)
ভার্সন 1.11
ভার্সন 1.11.4
১ জুলাই, ২০২৬
androidx.compose.foundation:foundation-*:1.11.4 রিলিজ করা হয়েছে। 1.11.4 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.3
১৭ জুন, ২০২৬
androidx.compose.foundation:foundation-*:1.11.3 রিলিজ করা হয়েছে। ভার্সন 1.11.3-এ এইসব কমিট রয়েছে।
ভার্সন 1.11.2
১৯ মে, ২০২৬
androidx.compose.foundation:foundation-*:1.11.2 রিলিজ করা হয়েছে। 1.11.2 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.1
৬ মে, ২০২৬
androidx.compose.foundation:foundation-*:1.11.1 রিলিজ করা হয়েছে। 1.11.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে কন্টেনার বাউন্ড অতিক্রম করলে আইটেম সঠিকভাবে ছোট করা যেত না। (Ia741d, b/480797591)
ভার্সন 1.11.0
২২ এপ্রিল, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0 রিলিজ করা হয়েছে। 1.11.0 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.11.0-rc01
৮ এপ্রিল, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-rc01 রিলিজ করা হয়েছে। 1.11.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- জেসচার চলাকালীন টেক্সট এডিট করার সময়
textfieldবেছে নেওয়া সংক্রান্ত সমস্যার সমাধান করুন। (I2ba33, b/490509264)
ভার্সন 1.11.0-beta02
২৫ মার্চ, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-beta02 রিলিজ করা হয়েছে। 1.11.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- এই সমস্যার সমাধান রোল-আউট করার প্রসেস কন্ট্রোল করতে
isReverseLayoutNestedScrollConnectionInPagerFixEnabledফ্ল্যাগ যোগ করা হয়েছে। (I07404, b/399800244) - এই ফিচারের রোল-আউট কন্ট্রোল করতে
isSkipItemPlacementAnimationFixEnabledচালু করা হয়েছে। (Id665d, b/455884472, b/352584409, b/410487464, b/372509998) GridTrackSize-এMinMax(min: Dp, max: Fr)যোগ করা হয়েছে। এর ফলে ডেভেলপাররা কোনও ফ্লেক্সিবল ট্র্যাকের ন্যূনতম বাউন্ড স্পষ্টভাবে নির্ধারণ করতে পারেন।MinMax(0.dp, 1.fr)ব্যবহার করলে তা ইন্টার্নাল পরিমাপ সংক্রান্ত কোয়েরিকে সফলভাবে বাইপাস করে, এর ফলে ক্র্যাশ না করেইSubcomposeLayoutকম্পোনেন্ট যেমনLazyColumnওLazyRow-কে ফ্লেক্সিবল গ্রিড ট্র্যাকের মধ্যে নিরাপদে প্লেস করা যায়। (Ieb8c2, b/483822148)
সমস্যার সমাধান
FlexBox-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে আইটেমগুলি তাদের ন্যূনতম ইন্ট্রিনসিক সাইজে পৌঁছালে ভুলভাবে ছোট হয়ে যেত। আইটেম এখন সঠিকভাবে অব্যবহৃত শ্রঙ্ক স্পেসকে সহোদরদের সাথে শেয়ার করে। এছাড়াও,FlexBoxআর মূল অ্যাক্সিসে কৃত্রিমভাবে আইটেম ক্ল্যাম্প করবে না; আইটেমগুলি কন্টেনারে ফিট করার জন্য যথেষ্ট ছোট করা না গেলে, সেগুলি এখন মূল অ্যাক্সিসে দৃশ্যত ওভারফ্লো করবে। ক্লিপিং চাইলেModifier.clipToBounds()ব্যবহার করুন। (Ief751, b/480797591)- বেআইনি ইন্ডেক্স অ্যাক্সেস করা থেকে keep around-কে আটকানো। (I19121, b/485626636)
- গ্রিডে একটি সমস্যার সমাধান করা হয়েছে যেখানে অন্তর্নিহিতভাবে তৈরি করা সারি বা কলামের মধ্যে গ্যাপ কন্টেনারের মোট সাইজ গণনা থেকে বাদ দেওয়া হয়েছিল, যার ফলে কন্টেন্ট ক্লিপ করা হয়েছিল। (Ib9df8, b/480372415)
ClipboardএবংClipboardManagerএখন প্রথম মেথড কলের (If0016, b/487947860) মাধ্যমে সিস্টেম পরিষেবার জন্য অনুরোধ করে- RTL-এ
Row-এর মধ্যেArrangement.spacedBy-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে ওভারফ্লো হওয়া আইটেমগুলি ভুল লেআউট ও স্পেসিং তৈরি করত। (I44e53, b/476006478)
ভার্সন 1.11.0-beta01
১১ মার্চ, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-beta01 রিলিজ করা হয়েছে। 1.11.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
BasicTextField-এর ইন্টার্নাল ন্যূনতম সাইজ সংক্রান্ত গণনা অপ্টিমাইজ করা হয়েছে। এগুলিComposeFoundationFlags#isBasicTextFieldMinSizeOptimizationEnabledদ্বারা নিয়ন্ত্রিত হয়, আপনার প্রয়োজন হলে সেগুলি বন্ধ করে দিতে পারেন। (I70ade)- পরীক্ষামূলক Style API-এর অংশ হিসেবে
rememberUpdatedStyleStateযোগ করা হয়েছে। কম্পোজ করার উপযুক্ত কম্পোনেন্টের (যেমনenabled) প্যারামিটার স্টাইল স্টেটে (Idf7ff, b/485510967) কপি করা হলেStyleState-এর ইনস্ট্যান্স তৈরি করার সময়rememberUpdatedব্যবহার করা উচিত - স্কেল ও প্যান ভ্যালু রিট্রিভ করার জন্য
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) - উপলভ্য সাইজের উপর ভিত্তি করে গ্রিড ট্র্যাক নির্ধারণ করার অনুমতি দিতে
GridConfigurationScope-এconstraintsযোগ করা হয়েছে। (I80a41, b/481205205, b/481205205) FlexBoxDSL এখনFlexBoxConfigও Modifier.flex-এর মধ্যে কনফিগারেশনের জন্য প্রপার্টির (যেমন, grow = 1f) পরিবর্তে ফাংশন(যেমন, grow (1f)) ব্যবহার করে। (I8dbae, b/475491619)
সমস্যার সমাধান
OutputTransformationব্যবহার করলে কিছু IME-তে ডুপ্লিকেট অক্ষর ইনসার্ট হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I9fdc0)- ট্র্যাকপ্যাড স্ক্রলিং জেসচারে ফ্লিং সাপোর্ট যোগ করে (I55f8a, b/479285849)
- পরীক্ষামূলক Style API-এর জন্য বেঞ্চমার্ক যোগ করা (I67437)
এক্সটার্নাল কন্ট্রিবিউশন
- টেক্সট রিপ্লেসমেন্ট সংক্রান্ত সাজেশন উপলভ্য থাকলে, ট্রান্সলিটারেশন ইনপুট কোন কোন আলাদা আলাদা স্টেটে থাকতে পারে তা শনাক্ত করতে সাহায্য করার জন্য একটি
InputTextSuggestionStateপ্রপার্টি যোগ করুন। এছাড়াও, বর্তমান অনুবাদ করা টেক্সট কম্পোজিশন রেঞ্জের রেঞ্জ ট্র্যাক করার জন্যTextCompositionRangeযোগ করা হয়েছে; শূন্য মান ইঙ্গিত করে যে কোনও কম্পোজিশন নেই। (I7a67f, b/476472318) BasicTooltipBox-এ নতুন ওভারলোড যোগ করা হয়েছে যাpropagateMinConstraintsকনফিগার করতে দেয়, এটি একই নামের Box-এর প্যারামিটারের মতো। এর ফলেBasicTooltipBox-এর চাইল্ড নোডে সরাসরি ন্যূনতম বিধিনিষেধ প্রয়োগ করা যায়,BasicTooltipBox-এর মাধ্যমে সেগুলি শিথিল করা হয় না। ধন্যবাদ Steven Schoen! (Ib145f, b/467532639, b/301605744)
ভার্সন 1.11.0-alpha06
২৫ ফেব্রুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-alpha06 রিলিজ করা হয়েছে। 1.11.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পরীক্ষামূলক স্টাইল API চালু করা হয়েছে যা কম্পোজ করা যায় এমন ফাংশনের কাস্টমাইজেশন চালু করার একটি সামঞ্জস্যপূর্ণ উপায় প্রদান করে। এই API এখনও ডেভেলপ করা হচ্ছে এবং স্থিতিশীল হওয়ার আগে এতে উল্লেখযোগ্য পরিবর্তন করা হতে পারে। এই API কীভাবে ব্যবহার করতে হয় সেই বিষয়ে বিস্তারিত জানতে অন্তর্ভুক্ত ডকুমেন্টেশন দেখুন। (I7fed2, b/455788242)
সমস্যার সমাধান
- অপ্টিমাইজেশন হিসেবে সাসপেন্ড পয়েন্টার ইনপুট ব্যবহার না করার জন্য
Modifier.combinedClickableআবার লেখা হয়েছে। এই ফিচারটি এমন একটি ফ্ল্যাগ দ্বারা চালু করা হয় যা আপনি নতুন প্রয়োগে কোনও বাগ দেখতে পেলে বন্ধ করে দিতে পারেন -ComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled.(Iea684)
পরিচিত সমস্যা
Modifier.combinedClickableরিরাইট করার ফলে, দীর্ঘক্ষণ ক্লিক করার আচরণে রিগ্রেশন দেখা দেয়, এর ফলে কিছু ডিভাইসে দীর্ঘক্ষণ ক্লিক করার কারণে বারবার দীর্ঘক্ষণ ক্লিক করার মতো আচরণ ট্রিগার হতে পারে। পরবর্তী রিলিজে এটি ঠিক করা হবে, ততক্ষণ পর্যন্ত এই সমস্যা এড়াতে আপনিComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled=falseসেট করতে পারবেন।
ভার্সন 1.11.0-alpha05
১১ ফেব্রুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-alpha05 রিলিজ করা হয়েছে। 1.11.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নেস্টেড ড্র্যাগ করার ক্ষেত্রে হওয়া সমস্যা সমাধান করতে
isNestedDraggablesTouchConflictFixEnabledযোগ করা হয়েছে। আমরা অনুভূমিক ড্র্যাগ করার চেয়ে উল্লম্ব ড্র্যাগ করাকে বেশি গুরুত্ব দেব, কারণ UX-এর দিক থেকে দেখলে, কোনও ব্যবহারকারী অনুভূমিক জেসচারের পরিবর্তে উল্লম্ব জেসচার পারফর্ম করলে, সেখানে আরও বেশি স্বাধীনতা ও অনিশ্চয়তা থাকে। (I273c7, b/252334353, b/269627294, b/363198504, b/442390269, b/419580124) - ট্র্যাকপ্যাড জেসচার ও ট্র্যাকপ্যাড ইনপুট ইভেন্ট থেকে মাউসে কনভার্সনের সুবিধা যোগ করে। এই পরিবর্তনের ফলে, ট্যাবলেট বা ল্যাপটপের মতো কার্সর কন্ট্রোল করা ট্র্যাকপ্যাড পয়েন্টার ইভেন্টকে সাধারণত মাউস পয়েন্টার হিসেবে রিপোর্ট করা হবে। প্যান ও স্কেল জেস্চারও পয়েন্টার ইভেন্ট পরিবর্তনের মধ্যে উপলভ্য অতিরিক্ত তথ্য সহ রিপোর্ট করা হবে, এর সাথে নতুন
PointerEventType.PanওPointerEventType.Scaleথেকে বোঝা যাবে যে এই ভ্যালু সেট করা হবে (Id071a, b/315527861, b/459831570) isDelayPressesUsingGestureConsumptionEnabled-এর ব্যাপারে জানুন। এই ফ্ল্যাগ চালু করা থাকলে, ড্র্যাগ জেসচার সহ কন্টেনার প্রেস করতে দেরি হবে। এর মধ্যেModifier.draggable-এর উপর ভিত্তি করে কন্টেনারের আচরণের পরিবর্তন অন্তর্ভুক্ত যা আগে প্রেস করতে দেরি করেনি। (I53f24, b/203141462)isDetectTapGesturesImmediateCoroutineDispatchEnabledফ্ল্যাগ সরিয়ে দেওয়া হয়েছে এবংDetectTapGesturesEnableNewDispatchingBehaviorফ্ল্যাগ (I9bba3) আর ব্যবহার করা হয় না
সমস্যার সমাধান
- ``OutputTransformation ব্যবহার করার সময়
BasicTextField-এIndexOutOfBoundsExceptionসংক্রান্ত সমস্যা সমাধান করা হয়েছে এবং টেক্সট মুছে দেওয়া হয়েছে। (I20ee1) GridTrackSize.Autoআচরণ পরিবর্তন করা হয়েছে। এটি এখনmin-contentথেকেmax-contentপর্যন্ত ট্র্যাকের সাইজ পরিবর্তন করে। (Ifa22e, b/477748472)
এক্সটার্নাল কন্ট্রিবিউশন
NumPadমুভমেন্ট কী (I1ff12)-এর জন্য সহায়তা যোগ করুন
ভার্সন 1.11.0-alpha04
২৮ জানুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-alpha04 রিলিজ করা হয়েছে। 1.11.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- এমন একটি সমস্যার সমাধান করা হয়েছে যেখানে একই অফসেটে একাধিক অ্যাঙ্কর সহ কিছু পরিস্থিতিতে
AnchoredDraggableState-এরtargetValueভুল ছিল। অন্য অ্যাঙ্করের মতো একই অফসেটে সেটেল করা হলে,targetValueএই অফসেটে অ্যাঙ্করগুলির মধ্যে শেষ অ্যাঙ্করটি ভুলভাবে রিটার্ন করে। এটি এখনcurrentValue-এর অফসেটে সেটেল করা হলেcurrentValueরিটার্ন করে। (I66a7a, b/476365336) FlexBoxচালু করা হয়েছে, এটি একটি কনফিগার করা যায় এমন লেআউট সিস্টেম যাRow,Column,FlowRowওFlowColumn-এর সুপারসেট। এটিFlexBoxConfigওModifier.flex-এর মাধ্যমে flex-grow, flex-shrink, কাস্টম র্যাপিং, দিক পরিবর্তন ও বিস্তারিত অ্যালাইনমেন্ট কন্ট্রোলের মতো ফিচার কাজ করে। (I44780)Gridচালু করা হয়েছে, এটি CSS গ্রিড থেকে অনুপ্রাণিত একটি নতুন নন-লেজি ২ডি লেআউট কম্পোজ করার উপযুক্ত। এই প্রাথমিক ভার্সনconfigব্লকের মাধ্যমেFixed,Percentage,Flexএবং কন্টেন্ট-ভিত্তিক বিকল্প সহ বিভিন্ন ট্র্যাক সাইজের সাথে স্পষ্ট গ্রিড স্ট্রাকচারকে সংজ্ঞায়িত করার অনুমতি দেয়।Modifier.gridItem()ব্যবহার করে গ্রিডের মধ্যে আইটেম স্পষ্টভাবে প্লেস করার জন্য মূল লেআউট লজিক কাজ করে। বর্তমানে, গ্রিড সম্পর্কিত সব API পরীক্ষামূলক এবং@OptIn(ExperimentalGridApi::class)-এর মাধ্যমে অপ্ট-ইন করতে হবে। এই নতুন লেআউট সম্পর্কে আপনার মতামত জানার জন্য আমরা খুবই আগ্রহী! (I04907, b/462550392)
ভার্সন 1.11.0-alpha03
১৪ জানুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.11.0-alpha03 রিলিজ করা হয়েছে। 1.11.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
LookaheadScopeI286ad-এর মধ্যে ব্যবহার করা হলেLazyStaggeredGrid-এ মেমরি লিক সংক্রান্ত সমস্যার সমাধান করা
ভার্সন 1.11.0-alpha02
১৭ ডিসেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.11.0-alpha02 রিলিজ করা হয়েছে। 1.11.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
MultiModalInjectionScopeAPI এখন স্টেবল। এর মধ্যেperformKeyInputওperformRotaryScrollInputএবং তাদের অন্তর্নিহিত কী ও রোটারি API অন্তর্ভুক্ত। পরীক্ষামূলক অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। (Ie8bbc, b/261561237)isNonSuspendingPointerInputInClickableEnabledফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। (I6a168, b/455591971)
ভার্সন 1.11.0-alpha01
৩ ডিসেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.11.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.11.0-alpha01-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- স্ক্রল করা যায় এমন কন্টেনারে কাস্টম স্ক্রল ইন্ডিকেটর যোগ করার অনুমতি দিতে
Modifier.scrollIndicatorচালু করা হয়েছে।ScrollIndicatorFactoryইন্টারফেস, স্ক্রল ইন্ডিকেটরের চেহারা ও আচরণ নির্ধারণ করে তা তৈরি করতে সাহায্য করে। (I89322) ComposeFoundationFlags.isTextFieldDpadNavigationEnabledসরানো হয়েছে। নতুন আচরণ এখন সব সময়ের জন্য চালু করা হয়েছে। (I3f034)- ক্যাশে উইন্ডো রিফিল সংক্রান্ত সমস্যার সমাধান রোল-আউট করার প্রসেস কন্ট্রোল করতে
isCacheWindowRefillFixEnabledচালু করা হয়েছে। (I4e52b, b/454439658) ComposeFoundationFlags.isKeepInViewFocusObservationChangeEnabledসরানো হয়েছে। নতুন আচরণ এখন সব সময়ের জন্য চালু করা হয়েছে। (I7cbd4)Modifier.onFirstVisible()আর ব্যবহার করা হয় না কারণ এর আচরণ বিভ্রান্তিকর এবং নামের সাথে দাবি করা চুক্তি সবসময় মেনে চলে না। যেমন, এটিLazyColumnআইটেমে যোগ করা হলে, স্ক্রল করার পরে এই আইটেমটি যতবার দৃশ্যমান হবে ততবার এই কলব্যাক কল করা হবে। এই নামের মডিফায়ারের ব্যবহারকারীরা এটি আশা করেননি। এর পরিবর্তেModifier.onVisibilityChanged()ব্যবহার করার সাজেশন দেওয়া হয় এবং নির্দিষ্ট ব্যবহারের ক্ষেত্রে প্রয়োজনীয়তা অনুযায়ী লেআউট আগে থেকেই দেখা যাচ্ছিল কিনা তা ম্যানুয়ালি ট্র্যাক করুন। (Ia7095, b/447601783)MeasuredSizeAwareModifierNodeচালু করা হয়েছে, কলব্যাকonRemeasured()প্রয়োজন হলে এটি দরকার হয়। অন্য কলব্যাক প্রয়োজন না হলে, আরও সাধারণLayoutAwareModifierNodeব্যবহার না করে সরাসরি এই ইন্টারফেস ব্যবহার করুন। (If6fb0)visibleমডিফায়ার যোগ করে যা কোনও কম্পোজ করার মতো আইটেমের কন্টেন্ট না এঁকে, সেটি যে স্পেস দখল করে আছে তাতে কোনও প্রভাব না ফেলেই ব্যবহার করা যেতে পারে। (Ia6871, b/158837937)
ভার্সন 1.10
ভার্সন 1.10.6
২৫ মার্চ, ২০২৬
androidx.compose.foundation:foundation-*:1.10.6 রিলিজ করা হয়েছে। 1.10.6 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- স্থিতিশীলতা সংক্রান্ত সমস্যার সমাধান করতে,
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledডিফল্ট হিসেবে বন্ধ করা থাকে। (I73960, b/482223006, b/488433633)
ভার্সন 1.10.5
১১ মার্চ, ২০২৬
androidx.compose.foundation:foundation-*:1.10.5 রিলিজ করা হয়েছে। 1.10.5 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
OutputTransformationব্যবহার করার সময় এবং টেক্সট মুছে দেওয়ার সময়BasicTextField-এ হওয়াIndexOutOfBoundsExceptionসংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I20ee1)
ভার্সন 1.10.4
২৫ ফেব্রুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.10.4 রিলিজ করা হয়েছে। ভার্সন 1.10.4-এ এইসব কমিট আছে।
সমস্যার সমাধান
- একটি রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে যেখানে আলাদা স্কোপ থেকে অ্যালাইনমেন্ট মডিফায়ার (যেমন,
ColumnScope.alignRow-এর মধ্যে) ব্যবহার করলে ভুল পজিশনিং হত। (6888f2b, b/477639546)
ভার্সন 1.10.3
১১ ফেব্রুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.10.3 রিলিজ করা হয়েছে। 1.10.3 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.2
২৮ জানুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.10.2 রিলিজ করা হয়েছে। 1.10.2 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অ্যাক্টিভ টেক্সট বেছে নেওয়া স্ক্রিন থেকে নেভিগেট করে ফিরে আসার সময় ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I9f540, b/444482508)
ভার্সন 1.10.1
১৪ জানুয়ারি, ২০২৬
androidx.compose.foundation:foundation-*:1.10.1 রিলিজ করা হয়েছে। ভার্সন 1.10.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- টেক্সট বেছে নেওয়ার সময় একটি টেক্সট ইনস্ট্যান্স থেকে অন্য একটিতে এক্সটেন্ড করা হলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়, এগুলি অনুভূমিকভাবে অ্যালাইন করা হয়। I351311, b/439758956
ভার্সন 1.10.0
৩ ডিসেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0 রিলিজ করা হয়েছে। 1.10.0 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.0-rc01
১৯ নভেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-rc01 রিলিজ করা হয়েছে। 1.10.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
isCacheWindowForPagerEnabledফ্ল্যাগ বন্ধ করা হয়েছে। (Iffdec, b/458193632)
ভার্সন 1.10.0-beta02
৫ নভেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-beta02 রিলিজ করা হয়েছে। 1.10.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.10.0-beta01
২২ অক্টোবর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-beta01 রিলিজ করা হয়েছে। 1.10.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- পয়েন্টার ইনপুট API-এর সাথে ম্যাচ করার জন্য পরোক্ষ টাচ API-কে পরোক্ষ পয়েন্টার API নাম ব্যবহার করার জন্য আপডেট করে। (I238ce, b/451607214)
@FrequentlyChangingValueদিয়েPagerState.currentPageOffsetFractionঅ্যানোটেট করা হয়েছে। (Idfaab)
সমস্যার সমাধান
- RTL লেআউট নির্দেশনার জন্য মারকিউ আচরণ সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ib8be3)
ভার্সন 1.10.0-alpha05
৮ অক্টোবর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.10.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PaddingValuesএখন সাধারণ প্যাডিং গণনাকে সহজ করার জন্য যোগ ও বিয়োগ করা যায়। (I327e1, b/244468479)
সমস্যার সমাধান
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledসাধারণত চালু করা থাকে। এটি একটি পারফর্ম্যান্স অপ্টিমাইজেশন, যা আমাদের প্রিফেচ করার সময় আমাদের করতে হবে এমন কাজকে আরও ভালোভাবে ডিস্ট্রিবিউট করতে দেয়, যেমন আমরা শুধুমাত্র একটি UI ফ্রেমের সময়LazyColumn'এর নেক্সট আইটেমের অংশগুলির জন্য কম্পোজিশন পারফর্ম করতে পারি এবং তারপরে পরবর্তী ফ্রেমে বাকি অংশ কম্পোজ করা চালিয়ে যেতে পারি। (I4c7fe)
ভার্সন 1.10.0-alpha04
২৪ সেপ্টেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-alpha04 রিলিজ করা হয়েছে। 1.10.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PagerState-এর জন্যScrollIndicatorStateপ্রয়োগ করা হয়েছে। (I113b7)LazyStaggeredGridState-এর জন্যScrollIndicatorStateপ্রয়োগ করা হয়েছে। (I1028e)LazyGridState-এর জন্যScrollIndicatorStateপ্রয়োগ করা হয়েছে। (I9e50c)LazyListState-এর জন্যScrollIndicatorStateপ্রয়োগ করা হয়েছে। (I5ee29)ScrollState-এর জন্যScrollIndicatorStateপ্রয়োগ করা হয়েছে। (I27f66)ScrollableStateইন্টারফেসেscrollIndicatorStateপ্রপার্টি চালু করা (Idca93)- 'ফ্ল্যাগ
isWindowInsetsModifierLocalNodeImplementationEnabled' সরানো হয়েছে (I15e8f, b/440964232) scrollableArea()মডিফায়ার এক্সপোজ করুন যা কম্পোনেন্টকে স্ক্রল করার উপযুক্ত করে তুলতে ব্যবহার করা যেতে পারে। এর মধ্যে কন্টেন্টকে তার বাউন্ডে ক্লিপ করা এবং ওরিয়েন্টেশন, RTL ওreverseScrollingফ্ল্যাগের উপর ভিত্তি করে কন্টেন্ট স্ক্রল করার দিক অটোমেটিক ম্যানেজ করা অন্তর্ভুক্ত। (I9471b, b/316559454)
ভার্সন 1.10.0-alpha03
১০ সেপ্টেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.10.0-alpha03-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
ComposeFoundationFlags.isNonComposedClickableEnabledসরিয়ে দেয় (I0dfc0, b/406228525)FillableDataইনস্ট্যান্স তৈরি করার জন্য ফ্যাক্টরি ফাংশন কম্প্যানিয়ন অবজেক্টে সরান।FillableData(value)-এর পরিবর্তে, নতুন ফ্যাক্টরি পদ্ধতি ব্যবহার করুন:FillableData.createFrom(value)। (I2e200, b/441719650)- ফোকাস সার্চের জন্য বাউন্ড লেআউটের বাইরে পারফর্ম করতে
BeyondBoundsLayoutModifierNodeএকটি নতুন মডিফায়ার নোড যোগ করা হয়েছে। (I39be1, b/416133658) ScrollState.value-কে@FrequentlyChangingValueপ্রপার্টি হিসেবে চিহ্নিত করা হয়েছে। (I4723d)- ডিফল্ট প্রয়োগের জন্য
LazyLayoutKeyIndexMapও ফ্যাক্টরি চালু করা হয়েছে। (I4fd0c, b/415038029)
সমস্যার সমাধান
- কলাম ও সারি এখন
Modifier.align-এ আইটেমের আসল সাইজ সঠিকভাবে পাস করে, এর ফলে কাস্টমModifier.alignপ্রয়োগে ভুল 0 ভ্যালু পাওয়ার সমস্যাটির সমাধান হয়ে যায়। (I8194f, b/439716351)
ভার্সন 1.10.0-alpha02
২৭ আগস্ট, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-alpha02 রিলিজ করা হয়েছে। 1.10.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ফ্ল্যাগ সরানো হয়েছে
isFlingContinuationAtBoundsEnabled। (I6b84f) - ফ্ল্যাগ সরানো হয়েছে
isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled। (I62380) - ফ্ল্যাগ সরানো হয়েছে
isOnScrollChangedCallbackEnabled। (I667dc) - ফ্ল্যাগ সরানো হয়েছে
isAutomaticNestedPrefetchEnabled। (I4f416) - ফ্ল্যাগ সরানো হয়েছে
DragGesturePickUpEnabled। (Ib8500) - স্ক্রলবার স্টেট (I5e229) দেখানোর জন্য
ScrollIndicatorStateAPI যোগ করা হয়েছে
সমস্যার সমাধান
Modifier.anchoredDraggableব্যবহার করলেconfirmValueChangeচালু না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Iff7cc)
ভার্সন 1.10.0-alpha01
১৩ আগস্ট, ২০২৫
androidx.compose.foundation:foundation-*:1.10.0-alpha01 রিলিজ করা হয়েছে। 1.10.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- স্ক্রল করার দিকে ডিফল্ট ১টি আইটেমের পরিবর্তে ক্যাশে উইন্ডো ব্যবহার করতে Pager-এর প্রিফেচ স্ট্র্যাটেজি আপডেট করুন। এখন, Pager-এ ডিফল্ট হিসেবে প্রাথমিক প্রিফেচিং চালু করা আছে এবং প্রিফেচিং ১ ভিউপোর্টের সমান উইন্ডোর সাইজের উপর ভিত্তি করে করা হবে, অর্থাৎ, আমরা প্রিফেচ করা আইটেম দিয়ে ১টি সম্পূর্ণ ভিউপোর্ট পূরণ করার চেষ্টা করব। আইটেমগুলিও আরও বেশি দিন ধরে রাখা হবে। (I4d45e, b/292136289)
ComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabledফ্ল্যাগ যোগ করা হয়েছে যাতে নতুন প্রয়োগের ফলে আচরণগত পরিবর্তন হলেWindowInsetsপারফর্ম্যান্স অপ্টিমাইজেশন বন্ধ করা যায়। (I8e912)SnapFlingBehaviorএখন স্ন্যাপিংয়ের সময় স্ন্যাপ অ্যানিমেশন স্পেককে ওভারশুট করার অনুমতি দেয়। এটিsnapAnimationSpecহিসেবে একটি বাউন্সি স্প্রিং স্পেক চালু করে, যাতে একটি বাউন্সি স্ন্যাপ অ্যানিমেশন তৈরি করা যায়। স্ন্যাপ স্পেক ব্যবহার করে অ্যাপ্রোচ পারফর্ম করার সময় অতিরিক্ত বেশি ভ্যালু উপেক্ষা করা হয়। (I373c2)ComposeView-এ মাউস বা টাচপ্যাড দিয়ে পয়েন্টার ডাউন করলে, ফোকাস করা নোডের সীমানার মধ্যে পয়েন্টার ডাউন না হলে, এখন অটোমেটিক ফোকাস সরে যাবে। এর ফলে "ফোকাস সরাতে ট্যাপ করুন" UX পাওয়া যায় যা পয়েন্টার ইনপুট ডিভাইস ব্যবহার করার সময় বর্তমান আচরণের থেকে বেশি প্রত্যাশিত। নতুনAbstractComposeView.isClearFocusOnPointerDownEnabledAPI-এর মাধ্যমে এই আচরণ থেকে বেরিয়ে আসা যাবে। (I6322b, b/282963174)- এখন স্ক্রল করার উপযুক্ত আইটেম ২ ডাইমেনশনাল মাউস হুইল স্ক্রল ইভেন্ট আরও ভালোভাবে সাপোর্ট করে।
MouseInjectionScope-এ ব্যবহারের ক্ষেত্রে পরীক্ষা করতে সাহায্য করার জন্য একটি নতুন টেস্ট API এসেছে। এছাড়াও, আমরাMouseInjectionScope-এ স্ক্রল পদ্ধতির জন্য একটি নতুন ওভারলোড এবংisMouseWheel1DAxisLockingEnabled(I136df) নামের নতুন আচরণ নিয়ন্ত্রণ করার জন্য একটি ফ্ল্যাগ চালু করেছি - অপ্টিমাইজেশনের জন্য পয়েন্টার ইনপুট সাসপেন্ড করার পরিবর্তে র পয়েন্টার ইনপুট ব্যবহার করতে
DragGestureNodeআপডেট করা হয়েছে। পরিবর্তনগুলি ফ্ল্যাগisNonSuspendingPointerInputInDraggableEnabled(I0fa4b)-এর পিছনে যোগ করা হয়েছে AnchoredDraggableAPI-তে@FrequentlyChangingValueযোগ করা হয়েছে।offset,requireOffsetওprogressপ্রায়ই পরিবর্তিত হয় এবং কম্পোজিশনে এগুলি পড়া উচিত নয়। এর পরিবর্তে লেআউট ও ড্রয়িং ফেজ, এফেক্ট বা কম্পোজিশনের বাইরে থেকে এইসব ভ্যালু অ্যাক্সেস করুন। (I05539)- সরানো ফ্ল্যাগ
isOnScrollChangedCallbackEnabled,isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled,isFlingContinuationAtBoundsEnabled,isAutomaticNestedPrefetchEnabled,DragGesturePickUpEnabled,isPointerInteropFilterDispatchingFixEnabled,isNestedScrollInteropPostFlingFixEnabled,isNestedScrollDispatcherNodeFixEnabled(I36c18) CompositionLocalচালু করা হয়েছে যা অটোফিলের সফলভাবে পূরণ করা হাইলাইটের ব্রাশ পরিবর্তন করতে ব্যবহার করা যেতে পারে। (I52329)FocusProperties-এ কাস্টমাইজ করা যায় এমন ফোকাস রেক্ট যোগ করা হয়েছে। আপনি এখন ফোকাস করার উপযুক্ত এলিমেন্টের বাউন্ডিং বক্স ডিফল্ট হিসেবে সেট করার পরিবর্তে কাস্টম ফোকাস এরিয়া নির্ধারণ করতে পারবেন। এই তথ্য ফোকাস ট্রাভার্সাল সিস্টেম এবং স্ক্রল করা যায় এমন কন্টেনারের 'ভিউতে রাখুন' লজিক ব্যবহার করে। (Id6555, b/368378073)Tightনামের নতুনLineHeightStyle.Modeযোগ করা হয়েছে। এই মোডটি ছোট লাইন হাইট প্রয়োগ করতে সাহায্য করে, এমনকি যখন এটি সম্ভবত বড় গ্লিফ কেটে দিতে পারে। (Id3849)- নতুন ইন্টারপোলেটেবল ইন্টারফেস চালু করা হয়েছে যা বিভিন্ন ধরনের ডেটার মধ্যে অটোমেটিক ইন্টারপোলেশন করতে দেয়। এটি ধরে নেয় যে এক ধরনের ডেটা অন্য ধরনের ডেটায় কীভাবে কনভার্ট করতে হয় তা জানে। এই ইন্টারফেসটি ব্রাশ ও শেপের মতো বিভিন্ন কম্পোজ ধরনের ক্ষেত্রে ব্যবহার করা হয়, তবে এটি এক্সটার্নালিও ব্যবহার করা যেতে পারে। (I58eab)
- ইনডাইরেক্ট ইনপুট ইভেন্ট যোগ করে এবং স্ক্রল করার জন্য ব্যবহার করার জন্য কোঅর্ডিনেট অ্যাক্সিস নির্দিষ্ট করার একটি উপায়। (I58e7c)
- ডিসপ্লে কাটআউটের পাথ পাওয়ার জন্য নতুন
WindowInsets.cutoutPathAPI যোগ করা হয়েছে (Ib90b1, b/279636456) isWindowInsetsDefaultPassThroughEnabledফ্ল্যাগ সরিয়ে দেওয়া হয়েছে, এর ফলে WindowInsets ডিফল্ট হিসেবে কনজিউম করা হয় না, যাতে চাইল্ড ভিউ ডিফল্ট হিসেবেWindowInsetsপেতে পারে। (I888e0, b/412469666)
সমস্যার সমাধান
isNonSuspendingPointerInputInDraggableEnabledএখন বন্ধ করে দেওয়া উচিত। (Ia41c4)- ডিফল্ট minSdk API 21 থেকে API 23-এ সরানো হচ্ছে (Ibdfca, b/380448311, b/435705964, b/435705223)
- অন্যান্য
DraggableAnchorsAPI-এর সাথে সামঞ্জস্য রেখে এইসব API-কে Float.NaN রিটার্ন করতে হবে তা বোঝাতেDraggableAnchors'minPosition/maxPositionডকুমেন্টেশন আপডেট করা হয়েছে। (I0460a) - অ্যাঙ্কর খালি থাকলে (I4e646)
DraggableAnchors#closestAnchorক্র্যাশ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে DraggableAnchors-এর জন্য পারফর্ম্যান্সের উন্নতি (If4065, I0460a)TextFieldState.edit { }আর 'পূর্বাবস্থায় ফেরানো' ইতিহাস মুছে দেয় না। পরিবর্তে, এটি একটি স্বতন্ত্র 'আগের অবস্থায় ফিরিয়ে আনা' এন্ট্রি তৈরি করে।editকল করার পরে, যদি আনডু স্ট্যাক মুছে ফেলতে চান, তাহলেTextFieldState.undoState.clearHistory()ব্যবহার করুন। (I12c14)SelectionContainerওBasicTextField(value, onValueChange)ওভারলোডে শব্দ বেছে নেওয়ার জন্য ডবল ট্যাপ করার সুবিধা যোগ করা হয়েছে। (Ibb06a)- K1 ও K2 (Ie81c1) দু'টির সাথেই
AutoboxingStateValuePropertyDetectorযাতে কাজ করে তার জন্য ছোটখাটো সমস্যার সমাধান করা হয়েছে - AndroidViews-এর করা
requestRectangleOnScreenঅনুরোধ এখন Compose-এ সঠিকভাবে প্রোপাগেট করা হয়। এর ফলেEditText-এর মতো ভিউয়ের সাথে ইন্টার্যাক্ট করা হলে সেটি স্ক্রিনে থেকে যায়। (Ibbf4c) - কলাম ও সারি এখন
Alignment.Vertical.alignওAlignment.Horizontal.align-এ আইটেমের আসল সাইজ সঠিকভাবে পাস করে, এর ফলে কাস্টম অ্যালাইনমেন্ট প্রয়োগ করার সময় ভুল 0 ভ্যালু পাওয়ার সমস্যাটির সমাধান হয়ে যায়। (I3e460, b/349722072)
ভার্সন 1.9
ভার্সন ১.৯.৫
১৯ নভেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.9.5 রিলিজ করা হয়েছে। ভার্সন 1.9.5-এ এইসব কমিট রয়েছে।
ভার্সন 1.9.4
২২ অক্টোবর, ২০২৫
androidx.compose.foundation:foundation-*:1.9.4 রিলিজ করা হয়েছে। ভার্সন 1.9.4-এ এইসব কমিট রয়েছে।
ভার্সন 1.9.3
৮ অক্টোবর, ২০২৫
androidx.compose.foundation:foundation-*:1.9.3 রিলিজ করা হয়েছে। 1.9.3 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.9.2
২৪ সেপ্টেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.9.2 রিলিজ করা হয়েছে। ভার্সন 1.9.2-এ এইসব কমিট রয়েছে।
ভার্সন 1.9.1
১০ সেপ্টেম্বর, ২০২৫
androidx.compose.foundation:foundation-*:1.9.1 রিলিজ করা হয়েছে। ভার্সন 1.9.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
LazyLists-এLazyLayoutCacheWindowব্যবহার করার সময় ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করে (c39f5f3)
ভার্সন 1.9.0
১৩ আগস্ট, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0 রিলিজ করা হয়েছে। 1.9.0 ভার্সনে এইসব কমিট রয়েছে
1.8.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- Compose-এর সাথে শিপ করা লিন্ট চেকের জন্য এখন ন্যূনতম AGP ভার্সন 8.8.2 প্রয়োজন। আপনি AGP আপগ্রেড করতে না পারলে, তার পরিবর্তে আপনার
gradle.properties-এandroid.experimental.lint.version=8.8.2(বা এর পরের যেকোনও ভার্সন) ব্যবহার করে Lint-কে আলাদাভাবে আপগ্রেড করতে পারবেন। IDE-এর মধ্যে Compose লিন্ট চেক রান করাতে, Android Studio Ladybug বা এর পরের যেকোনও ভার্সন প্রয়োজন। - ব্রেকিং পরিবর্তন:
clickable,combinedClickable,selectable,toggleableওtriStateToggleableওভারলোড, যেগুলিতে কোনও ইন্ডিকশন প্যারামিটার নেই, সেগুলি এখন শুধুমাত্রLocalIndicationব্যবহার করে প্রদান করাIndicationNodeFactoryইনস্ট্যান্সের সাথে কাজ করে। Compose-এর এই ভার্সন ব্যবহার করে আপনি যখন এইসব মডিফায়ার ব্যবহার করার কোড আবার কম্পাইল করবেন, তখন এই পরিবর্তন প্রয়োগ করা হবে। বাইনারি / ট্রানজিটিভ ডিপেন্ডেন্সি প্রভাবিত হয় না। আপনি যদিLocalIndication-কে কোনও বাতিল করা ইঙ্গিত প্রয়োগ প্রদান করেন এবং এই API ব্যবহার করেন, তাহলে এটি রানটাইমে ক্র্যাশ করবে। পারফর্ম্যান্স উন্নত করতে এবং রিকম্পোজিশনের সময় এইসব মডিফায়ার ব্যবহার করে কম্পোজ করা যায় এমন ফাংশন এড়িয়ে যাওয়ার অনুমতি দিতে এই আচরণগত পরিবর্তন প্রয়োজন। এই মাইগ্রেশনে ব্লক না হয়ে Compose আপগ্রেড করার জন্য, এই আচরণগত পরিবর্তন থেকে সাময়িকভাবে অপ্ট-আউট করতে আপনিComposeFoundationFlags.isNonComposedClickableEnabled=falseব্যবহার করতে পারেন। একটি স্থিতিশীল রিলিজের পরে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। সমাধান করতে,IndicationNodeFactoryব্যবহার করার জন্য কোনও বাতিল করা ইঙ্গিত সংক্রান্ত প্রয়োগকে মাইগ্রেট করুন। এছাড়াও, আপনি একটি স্পষ্ট ইঙ্গিত প্যারামিটারের সাথে ওভারলোড ব্যবহার করতে পারেন - এই ওভারলোডগুলি ইঙ্গিত প্যারামিটারের নন-IndicationNodeFactoryইনস্ট্যান্সকে সমর্থন করা চালিয়ে যাবে, যদিও পারফর্ম্যান্সের কারণে এটি সাজেস্ট করা হয় না। (I6bcdc, b/316914333) - নেস্টেড স্ক্রলিংয়ে ফ্লিং প্রোপাগেশন সংক্রান্ত সমস্যা সমাধান করতে
isFlingCancellationWithNestedScrollFixEnabledযোগ করা হয়েছে। এই CL-এ আমরা I9326a-এ সরানো ফ্লিং কন্টিনিউয়েশন বিহেভিয়ার রিস্টোর করছি। কম্পোজিশন থেকে বাচ্চাকে সরিয়ে দেওয়া হলে আমরা এখনও ফ্লিং অ্যানিমেশন বাতিল করব। (I467f4, b/405910180, b/419049142, b/416784125) ContentInViewNode-এscrollAnimationSpec-এর ব্যবহার আবার যোগ করুন।scrollAnimationSpecবন্ধ করার সময় আচরণটি সরিয়ে দেওয়া হয়েছে যার ফলে ব্যবহারের ক্ষেত্রে সমস্যা হয়েছে। (I1436a, b/403301605)- স্টেবিলাইজ করা হয়েছে
LazyLayout। (If5db4),LazyLayoutPrefetchStateএবং এর শিডিউল করার পদ্ধতিschedulePrecompositionওschedulePrecompositionAndPremeasure। (I4362f, b/252853717) এবংLazyLayoutItemProvider(Icce09,b/261565751) ViewTreeObserver.OnScrollChangedট্রিগার করার জন্য 'কম্পোজ' বিকল্পকে অনুমতি দিন।isOnScrollChangedCallbackEnabledফ্ল্যাগের অধীনে এই আচরণ চালু করা হয়েছে। এছাড়াও, আমরাDelegatableNode dispatchOnScrollChanged-এর একটি এক্সটেনশন ফাংশন চালু করেছি। (I34b9d, b/238109286)- স্টেট তৈরি করার জন্য
Modifier.scrollable2D,Scrollable2DStateও কম্প্যানিয়ন API চালু করা হয়েছে। এছাড়াও, সাধারণ স্ক্রল এক্সটেনশন ফাংশন চালু করা হয়েছে। (Ic61c8, b/214410040) PrefetchSchedulerএবং কাস্টমাইজেশন বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে ইন্টার্নাল ইমপ্লিমেন্টেশন ব্যবহার করা হয় যা অটোমেটিক সব কাজ করে দেয়। (I3a9a6, b/420551535)TextFieldState.edit { }আর 'পূর্বাবস্থায় ফেরানো' ইতিহাস মুছে দেয় না। এর পরিবর্তে এটি একটি স্বতন্ত্র 'আগের অবস্থায় ফিরিয়ে আনা' এন্ট্রি তৈরি করে। এডিট কল করার পরে, যদি আনডু স্ট্যাক মুছে ফেলতে চান, তাহলেTextFieldState.undoState.clearHistory()ব্যবহার করুন। (I12c14)- কনটেক্সট মেনু ও বেছে নেওয়ার টুলবার এখন দু'টিই স্মার্ট আইটেম (স্মার্ট বেছে নেওয়া) কাজ করে
stateওভারলোড ব্যবহার করেTextField-এর আউটপুট স্টাইল করার অনুমতি দিতে স্টাইল করা টেক্সটOutputTransformationযোগ করা হয়েছে।TextField: সহায়তা প্রসঙ্গ মেনু (মাউসের ডানদিকের বোতামে ক্লিক করলে যে মেনু দেখা যায়)।SelectionContainerথেকে কপি করা একাধিক টেক্সট কম্পোজ করার উপযুক্ত আইটেমে, আলাদা আলাদা টেক্সট কম্পোজ করার উপযুক্ত আইটেম থেকে আসা টেক্সটের মধ্যে এখন একটি লাইন সেপারেটর \n যোগ করা হবে। (I25332, b/285036739)AnnotatedString-এর মাধ্যমে কাস্টম বুলেট তালিকা তৈরি করার জন্য API চালু করা হয়েছে (I1d066, b/383269496, b/139326648)stateওভারলোডেরBasicTextFieldসাইজ পরিবর্তন হলে কার্সর স্ক্রল করে ভিউতে রাখা হবে। (I0eb41, b/406187741)- ব্রেকিং পরিবর্তন:
backgroundএবংborderমডিফায়ার নোড এখনSemanticsModifierNodeপ্রয়োগ করে। এর ফলে, সিম্যান্টিক ট্রি-তে নতুনSemanticsNodesযোগ হতে পারে এবং তাই, সিম্যান্টিক ট্রি স্ট্রাকচার সম্পর্কে অনুমান করা টেস্টে, টেস্ট ফেল হতে পারে। যেমন,onChild,onParent,onSiblingও অন্যান্য একই ধরনের পদ্ধতি ব্যবহার করে অ্যাসারশন তৈরি করা টেস্ট, বর্তমান ও টার্গেট নোডের মধ্যে নতুন নোড যোগ করা হলে, ব্যর্থ হতে পারে। এইসব ব্যর্থতা সমাধানের সবচেয়ে ভাল উপায় হল,testTagসরাসরি টার্গেট নোডে যোগ করা। আরেকটি উপায় হল,onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))-এর মতো আরও বেশি ম্যাচ করা যায় এমন ম্যাচিং ব্যবহার করা। (I638b5)
ভার্সন 1.9.0-rc01
৩০ জুলাই, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.9.0-rc01-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
TextFieldState.edit { }আর 'পূর্বাবস্থায় ফেরানো' ইতিহাস মুছে দেয় না। পরিবর্তে, এটি একটি স্বতন্ত্র 'আগের অবস্থায় ফিরিয়ে আনা' এন্ট্রি তৈরি করে।editকল করার পরে, যদি আনডু স্ট্যাক মুছে ফেলতে চান, তাহলেTextFieldState.undoState.clearHistory()ব্যবহার করুন। (I12c14)
ভার্সন 1.9.0-beta03
১৬ জুলাই, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-beta03 রিলিজ করা হয়েছে। 1.9.0-beta03 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
- খালি হেডার কন্টেন্ট প্রদান করা হলে, লেজি গ্রিডে স্টিকি হেডার আচরণ ভেঙে যাওয়া একটি রিগ্রেশন বাগ সমাধান করা হয়েছে। (e3e3400)
ভার্সন 1.9.0-beta02
২ জুলাই, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-beta02 রিলিজ করা হয়েছে। 1.9.0-beta02 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- কন্টেক্সট মেনু ও বেছে নেওয়ার টুলবারে স্মার্ট আইটেম কাজ করে।
API-তে পরিবর্তন
- নির্দিষ্ট হার্ডওয়্যার কীবোর্ড বা টিভি রিমোটের ক্ষেত্রে, দিকনির্দেশক কী ব্যবহার করে নতুন
TextFields-এ কার্সর সরাতে না পারা এবং পরিবর্তে অন্য কম্পোজ করার উপযুক্ত আইটেমে ফোকাস পরিবর্তন করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে।ComposeFoundationFlag.isTextFieldDpadNavigationFixEnabledযোগ করা হয়েছে যাতে এটি যদি এমন কোনও অবাঞ্ছিত আচরণ করে যা আর ঠিক করা যাবে না, তাহলে সাময়িকভাবে এই সমাধান বন্ধ করা যায়। (Ie1922)
সমস্যার সমাধান
- পিন করা আইটেম থাকলে স্টিকি হেডার স্টিক না করার সমস্যা সমাধান করা হয়েছে। (I9198d, b/385006133)
TextObfuscationMode.RevealLastTypedএখন সিস্টেম সেটিং “TEXT_SHOW_PASSWORD” ফলো করে। (I41c0c)- প্রথমবার টেক্সট টুলবার খোলার সময়
BasicTextFieldভুল করে “ক্লিপবোর্ড থেকে পেস্ট করা হয়েছে” সতর্কতা দেখানো সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I5fda2)
ভার্সন 1.9.0-beta01
১৮ জুন, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-beta01 রিলিজ করা হয়েছে। 1.9.0-beta01 ভার্সনে এইসব কমিট রয়েছে।
ব্রেকিং পরিবর্তন
backgroundওborderমডিফায়ার নোড এখনSemanticsModifierNodeপ্রয়োগ করে। এর ফলে, সিম্যান্টিক ট্রি-তে নতুনSemanticsNodesযোগ হতে পারে এবং তাই, সিম্যান্টিক ট্রি স্ট্রাকচার সম্পর্কে অনুমান করা টেস্টে, টেস্ট ফেল হতে পারে। যেমন,onChild,onParent,onSiblingও অন্যান্য একই ধরনের পদ্ধতি ব্যবহার করে অ্যাসারশন তৈরি করা টেস্ট, বর্তমান ও টার্গেট নোডের মধ্যে নতুন নোড যোগ করা হলে, ব্যর্থ হতে পারে। এইসব ব্যর্থতা সমাধানের সবচেয়ে ভাল উপায় হল,testTagসরাসরি টার্গেট নোডে যোগ করা। আরেকটি উপায় হল,onNode(hasAnyAncestor(hasText("ancestor")) and hasText("target"))-এর মতো আরও বেশি ম্যাচ করা যায় এমন ম্যাচিং ব্যবহার করা। (I638b5)
API-তে পরিবর্তন
Modifier.addTextContextMenuComponents-এর নাম পরিবর্তন করেappendTextContextMenuComponentsকরুন। (I4c43f)AnnotatedOutputTransformationসরিয়েaddStyleফাংশনTextFieldBuffer-এ নিয়ে যাওয়া হয়েছে।addStyle-কে এখনও শুধুমাত্রOutputTransformationথেকে কল করা যাবে। (I9930a, b/417991824)- অপ্টিমাইজেশন হিসেবে সাসপেন্ড পয়েন্টার ইনপুট ব্যবহার না করার জন্য ক্লিক করার মতো আইটেম আবার লেখা হয়েছে। একটি ফ্ল্যাগের মাধ্যমে এই ফিচার চালু করা হয় - নতুন প্রয়োগে কোনও বাগ দেখতে পেলে আপনি এটি বন্ধ করে দিতে পারেন -
ComposeFoundationFlags.isNonSuspendingPointerInputInClickableEnabled। (I85b65) - নেস্টেড স্ক্রলিংয়ে ফ্লিং প্রোপাগেশন সংক্রান্ত সমস্যা সমাধান করতে
isFlingCancellationWithNestedScrollFixEnabledযোগ করা হয়েছে। এই CL-এ, আমরা aosp/3260391-এ সরানো ফ্লিং কন্টিনিউয়েশন বিহেভিয়ার রিস্টোর করছি। কম্পোজিশন থেকে বাচ্চাকে সরিয়ে দেওয়া হলে আমরা এখনও ফ্লিং অ্যানিমেশন বাতিল করব। (I467f4, b/405910180, b/419049142, b/416784125) WindowInsetsRulers:rulersIgnoringVisibility-এর মান পরিবর্তন করে সর্বাধিক করা হয়েছে।getDisplayCutoutBounds()-কেPlacementScope-এর এক্সটেনশন ফাংশন হিসেবে পরিবর্তন করা হয়েছে।WindowInsetsAnimationPropertiesপরিবর্তন করেWindowInsetsAnimationকরা হয়েছে এবংgetAnimationProperties()পরিবর্তন করেgetAnimation()করা হয়েছে। (I3816f)InsetsRulersপরিবর্তন করেWindowInsetsRulersনামের সাধারণ কোডে রাখা হয়েছে। API-কে আরও সহজ করা হয়েছে যাতে সব ইনসেটWindowInsetsRulersহয়।AnimationPropertiesক্লাসে নন-রুলার অ্যানিমেশন প্রপার্টি এক্সট্র্যাক্ট করা হয়েছে। একাধিকWindowInsetsRulersমার্জ করতেWindowInsetsRulers.innermostOf()ব্যবহার করা যেতে পারে। (I2f0c6, b/415012444)
সমস্যার সমাধান
ContentInViewNode-এscrollAnimationSpec-এর ব্যবহার আবার যোগ করুন।scrollAnimationSpecবন্ধ করার সময় আচরণটি সরিয়ে দেওয়া হয়েছে যার ফলে ব্যবহারের ক্ষেত্রে সমস্যা হয়েছে। (I1436a, b/403301605)
ভার্সন 1.9.0-alpha04
৪ জুন, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PrefetchSchedulerএবং কাস্টমাইজেশন বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে ইন্টার্নাল ইমপ্লিমেন্টেশন ব্যবহার করা হয় যা অটোমেটিক সব কাজ করে দেয়। (I3a9a6, b/420551535)canScrollপদ্ধতিতে কোণের পরিবর্তে অফসেট ব্যবহার করার জন্যScrollable2DStateআপডেট করা হয়েছে। (I28694, b/417268474)AnnotatedOutputTransformation-এaddAnnotation-এর জায়গায়addStyleব্যবহার করা হয়েছে। (I91c6f, b/417991824)- স্টেবিলাইজ করা হয়েছে
LazyLayout। (If5db4) LazyLayoutPrefetchState-এর জন্য খালি কনস্ট্রাক্টর এবং এর শিডিউলিং পদ্ধতিschedulePrecompositionওschedulePrecompositionAndPremeasureস্থিতিশীল করা হয়েছে। (I4362f, b/252853717)PROCESS_TEXTইনটেন্ট অ্যাকশনের জন্য যোগ করা প্রসঙ্গ মেনু আইটেমের জন্য Android-এProcessTextKeyচালু করা হয়েছে। (If0ac4)- কন্টেক্সট মেনু API সর্বজনীন করুন। কন্টেক্সট মেনুতে আইটেম যোগ করতে ও সরাতে
Modifier.addTextContextMenuComponentsওModifier.filterTextContextMenuComponentsএক্সপোজ করা হয়েছে। এছাড়াও, নিম্নলিখিত প্রাথমিক API-কে সর্বজনীন করা হয়েছে যাতে কাস্টমাইজ করা প্রসঙ্গ মেনু তৈরি করা যায়:TextContextMenuProviderTextContextMenuDataProviderTextContextMenuDataTextContextMenuComponentLocalTextContextMenuDropdownProviderLocalTextContextMenuToolbarProvider(I1b7b0)
LazyLayoutItemProviderভার্সন স্থিতিশীল করুন (Icce09, b/261565751)ComposeFoundationFlags.isSmartSelectionEnabled-এর মাধ্যমে চালু/বন্ধ করা যায় এমন Android স্মার্ট বেছে নেওয়ার ফিচার চালু করা হয়েছে। এছাড়াও, এটি একটি স্ট্যাটিকcompositionLocalLocalTextClassifierCoroutineContextপ্রকাশ করে যাCoroutineContextনির্দিষ্ট করতে ব্যবহার করা যেতে পারে যেখানেTextClassificationজব লঞ্চ করা হয়। (I1dbaa, b/139321320)
ভার্সন 1.9.0-alpha03
২০ মে, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha03-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- রেন্ডার করার আগে
TextField-এ অ্যানোটেশন যোগ করার একটি উপায় প্রদান করে এমনAnnotatedOutputTransformationযোগ করা হয়েছে। (Ibc6f0, b/389978748) LazyLayoutMeasurePolicyযোগ করেLazyLayoutMeasureScope-কে স্থিতিশীল করুন। (I8c5df, b/252853717)BasicSecureTextFieldএখন এর ইন্টার্নালBasicTextField-এর ScrollState হোইস্ট করে। (I6e576)Modifier.onFirstVisibleওModifier.onVisibilityChangedমডিফায়ার চালু করা হয়েছে, এগুলিModifier.onLayoutRectChanged-এর উপরে তৈরি করা হাই-লেভেল মডিফায়ার। এইসব মডিফায়ারকে অনেক সাধারণ অ্যাপ্লিকেশন সংক্রান্ত প্রয়োজনীয়তা যেমন, ইম্প্রেশন লগ করা, ভিডিও অটোমেটিক চালানো ইত্যাদি হ্যান্ডেল করার জন্য বিশেষভাবে তৈরি করা হয়েছে। পারফর্ম্যান্সের কথা মাথায় রেখে এগুলি তৈরি করা হয়েছে যাতে স্ক্রল পারফর্ম্যান্সের ক্ষেত্রে কোনও ঝুঁকি না নিয়েই এগুলিকে গুরুত্বপূর্ণ তালিকা-ভিত্তিক পরিস্থিতিতে ব্যবহার করা যায়। এইসব মডিফায়ার API ছাড়াও, এইসব ব্যবহারের ক্ষেত্রে সহায়তা করতে এবং ডেভেলপারদের জন্য ঠিক তাদের ব্যবহারের ক্ষেত্রে উপযুক্ত একই ধরনের কাস্টম মডিফায়ার সহজে তৈরি করা সহজ করতে,RelativeLayoutBoundsঅতিরিক্ত API যোগ করা হয়েছে। (I759b8)detectDragGesturesওভারলোড চালু করা হয়েছে যাতে টাচ স্লপ ও ওরিয়েন্টেশন লক কন্ট্রোল আছে। (Iadb0d)- স্টেট তৈরি করার জন্য
Modifier.scrollable2D,Scrollable2DStateও কম্প্যানিয়ন API চালু করা হয়েছে। এছাড়াও, সাধারণ স্ক্রল এক্সটেনশন ফাংশন চালু করা হয়েছে। (Ic61c8, b/214410040) - Compose 64-বিট কালার ভ্যালু সরাসরি Android
ColorLongs-এর সাথে তুলনা করা যায় না কারণ কিছু কালার স্পেসের জন্য কালার স্পেস আইডি ক্রমবহির্ভূত। Android কালার স্পেসে কনভার্ট করতে এবং তা থেকে কনভার্ট করার জন্য, দুটি নতুন API যোগ করা হয়েছে:toColorLong()এবংfromColorLong(). (I36899)
সমস্যার সমাধান
SelectionContainerথেকে কপি করা একাধিক টেক্সট কম্পোজ করার উপযুক্ত আইটেমে\nএখন আলাদা টেক্সট কম্পোজ করার উপযুক্ত আইটেম থেকে আসা টেক্সটের মধ্যে একটি লাইন সেপারেটর যোগ করা হবে। (I25332, b/285036739)
ভার্সন 1.9.0-alpha02
৭ মে, ২০২৫
androidx.compose.foundation:foundation-*:1.9.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.9.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DragGestureNode-এVelocityTracker-তে কীভাবে পয়েন্টার ইনপুট পরিবর্তন যোগ করা হয় তা ঠিক করা হয়েছে, এটি নতুন ফ্ল্যাগisOffsetPositionBeforeAddingToVelocityTrackerEnabled-এর মাধ্যমে কন্ট্রোল করা যেতে পারে। (Ic7992, b/292556787, b/236451818)await[Vertical/Horizontal]PointerSlopOrCancellationসর্বজনীন করুন (I6968b, b/298903681)AbstractComposeView.consumeWindowInsetsএখন ডিফল্ট হিসেবে false থাকে।WindowInsets-এর মান false হিসেবে সেট করা থাকলে, সেটি অটোমেটিক বাচ্চার সাইজ ও পজিশন অনুযায়ী অ্যাডজাস্ট হয়ে যাবে, তাই এটিকে আর true হিসেবে ডিফল্ট করার প্রয়োজন নেই। এর ফলে, চাইল্ড ভিউতেWindowInsetsডিফল্ট হিসেবে আপডেট না পাওয়ার সমস্যা সমাধান হয়ে যায়। ডেভেলপাররা পরীক্ষামূলকComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabled-এর মান পরিবর্তন করে true করলে অথবা, আরও ভাল হয়, সব Compose ভিউ ইনস্ট্যান্সেAbstractComposeView.consumeWindowInsets-এর মান true করলে আপডেট থেকে অপ্ট-আউট করতে পারবেন। (I6fa0a, b/411868840)
এক্সটার্নাল কন্ট্রিবিউশন
- অত্যন্ত বড় beyondViewportPageCount ভ্যালু (Idb2db) সহ পেজার ক্র্যাশ সংক্রান্ত সমস্যার সমাধান করা হয়েছে
ভার্সন 1.9.0-alpha01
২৩ এপ্রিল, ২০২৫
androidx.compose.foundation:foundation-*: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 বা এর পরের যেকোনও ভার্সন প্রয়োজন।ব্রেকিং পরিবর্তন:
clickable,combinedClickable,selectable,toggleableওtriStateToggleableওভারলোড, যেগুলিতে কোনও ইন্ডিকশন প্যারামিটার নেই, সেগুলি এখন শুধুমাত্রLocalIndicationব্যবহার করে প্রদান করাIndicationNodeFactoryইনস্ট্যান্সের সাথে কাজ করে। Compose-এর এই ভার্সন ব্যবহার করে আপনি যখন এইসব মডিফায়ার ব্যবহার করার কোড আবার কম্পাইল করবেন, তখন এই পরিবর্তন প্রয়োগ করা হবে। বাইনারি / ট্রানজিটিভ ডিপেন্ডেন্সি প্রভাবিত হয় না। আপনি যদিLocalIndication-কে কোনও বাতিল করা ইঙ্গিত প্রয়োগ প্রদান করেন এবং এই API ব্যবহার করেন, তাহলে এটি রানটাইমে ক্র্যাশ করবে। পারফর্ম্যান্স উন্নত করতে এবং রিকম্পোজিশনের সময় এইসব মডিফায়ার ব্যবহার করে কম্পোজ করা যায় এমন ফাংশন এড়িয়ে যাওয়ার অনুমতি দিতে এই আচরণগত পরিবর্তন প্রয়োজন। এই মাইগ্রেশনে ব্লক না হয়ে Compose আপগ্রেড করার জন্য, এই আচরণগত পরিবর্তন থেকে সাময়িকভাবে অপ্ট-আউট করতে আপনিComposeFoundationFlags.isNonComposedClickableEnabled=falseব্যবহার করতে পারেন। একটি স্থিতিশীল রিলিজের পরে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। সমাধান করতে,IndicationNodeFactoryব্যবহার করার জন্য কোনও বাতিল করা ইঙ্গিত সংক্রান্ত প্রয়োগকে মাইগ্রেট করুন। এছাড়াও, আপনি একটি স্পষ্ট ইঙ্গিত প্যারামিটারের সাথে ওভারলোড ব্যবহার করতে পারেন - এই ওভারলোডগুলি ইঙ্গিত প্যারামিটারের নন-IndicationNodeFactoryইনস্ট্যান্সকে সমর্থন করা চালিয়ে যাবে, যদিও পারফর্ম্যান্সের কারণে এটি সাজেস্ট করা হয় না। (I6bcdc, b/316914333)
API-তে পরিবর্তন
AnnotatedString-এর মাধ্যমে কাস্টম বুলেট তালিকা তৈরি করার জন্য API চালু করা হয়েছে (I1d066, b/383269496, b/139326648)ViewTreeObserver.OnScrollChangedট্রিগার করার জন্য 'কম্পোজ' বিকল্পকে অনুমতি দিন।isOnScrollChangedCallbackEnabledফ্ল্যাগের অধীনে এই আচরণ চালু করা হয়েছে। এছাড়াও, আমরাDelegatableNode dispatchOnScrollChanged-এর একটি এক্সটেনশন ফাংশন চালু করেছি। (I34b9d, b/238109286)- Kotlin 2.0-এর সাথে রিলিজ করা প্রোজেক্ট ব্যবহার করার জন্য KGP 2.0.0 বা এর পরের যেকোনও ভার্সন প্রয়োজন (Idb6b5)
TextFieldState-এর জন্য লিন্ট চেক করার সুবিধা যোগ করা হয়েছে যাতে কম্পোজিশনের মধ্যে এটি মনে রাখা যায়। এর পরিবর্তেrememberTextFieldStateব্যবহার করার কথা বিবেচনা করুন। (I53d74)- কম্পোজিশনের মধ্যে এটি যাতে মনে রাখা হয় তা নিশ্চিত করতে
FocusRequester-এর জন্য লিন্ট চেক সাপোর্ট যোগ করা হয়েছে (I6bf91) BringIntoViewRequester-এর জন্য লিন্ট চেক করার সুবিধা যোগ করা হয়েছে যাতে কম্পোজিশনের মধ্যে এটি মনে রাখা যায়। (Ibfba6)- সাইজ ও ইন্ডেক্স সংক্রান্ত তথ্য প্রদান করার
LazyListPrefetchStateক্ষমতার সাথে সামঞ্জস্য রেখে গ্রিড ও লিস্ট স্ট্র্যাটেজিতেschedulePrefetchকলের জন্য স্কোপ চালু করা হয়েছে। (Iad80c) - ব্রেকিং পরিবর্তন:
clickable,combinedClickable,selectable,toggleableওtriStateToggleableওভারলোড, যেগুলিতে কোনও ইন্ডিকশন প্যারামিটার নেই, সেগুলি এখন শুধুমাত্রLocalIndicationব্যবহার করে প্রদান করাIndicationNodeFactoryইনস্ট্যান্সের সাথে কাজ করে। Compose-এর এই ভার্সন ব্যবহার করে আপনি যখন এইসব মডিফায়ার ব্যবহার করার কোড আবার কম্পাইল করবেন, তখন এই পরিবর্তন প্রয়োগ করা হবে। বাইনারি / ট্রানজিটিভ ডিপেন্ডেন্সি প্রভাবিত হয় না। আপনি যদিLocalIndication-কে কোনও বাতিল করা ইঙ্গিত প্রয়োগ প্রদান করেন এবং এই API ব্যবহার করেন, তাহলে এটি রানটাইমে ক্র্যাশ করবে। পারফর্ম্যান্স উন্নত করতে এবং রিকম্পোজিশনের সময় এইসব মডিফায়ার ব্যবহার করে কম্পোজ করা যায় এমন ফাংশন এড়িয়ে যাওয়ার অনুমতি দিতে এই আচরণগত পরিবর্তন প্রয়োজন। এই মাইগ্রেশনে ব্লক না হয়ে Compose আপগ্রেড করার জন্য, এই আচরণগত পরিবর্তন থেকে সাময়িকভাবে অপ্ট-আউট করতে আপনিComposeFoundationFlags.isNonComposedClickableEnabled=falseব্যবহার করতে পারেন। একটি স্থিতিশীল রিলিজের পরে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। সমাধান করতে,IndicationNodeFactoryব্যবহার করার জন্য কোনও বাতিল করা ইঙ্গিত সংক্রান্ত প্রয়োগকে মাইগ্রেট করুন। এছাড়াও, আপনি একটি স্পষ্ট ইঙ্গিত প্যারামিটারের সাথে ওভারলোড ব্যবহার করতে পারেন - এই ওভারলোডগুলি ইঙ্গিত প্যারামিটারের নন-IndicationNodeFactoryইনস্ট্যান্সকে সমর্থন করা চালিয়ে যাবে, যদিও পারফর্ম্যান্সের কারণে এটি সাজেস্ট করা হয় না। (I6bcdc, b/316914333) - অটোমেটিক নেস্টেড প্রিফেচ আচরণ কন্ট্রোল করার জন্য একটি ফ্ল্যাগ যোগ করা হয়েছে:
isAutomaticNestedPrefetchEnabled(I8d448) LazyGridStateওrememberLazyGridState-এর জন্য ওভারলোড চালু করুন যাLazyLayoutCacheWindowসময় নেয়। (I51151)- উইন্ডো ইনসেটের জন্য রুলার যোগ করে। অন্য Ruler থেকে Ruler গণনা করার অনুমতি দিতে
DerivedRulerযোগ করে। ঘনত্ব প্রয়োগ করতেPlacmentScopeপরিবর্তন করে। (I658bc, b/359260964) - খালি
WindowInsetsসহজে তৈরি করতে, শূন্য আর্গুমেন্ট সহWindowInsets()ফ্যাক্টরি ফাংশন যোগ করা হয়েছে। (I65f62, b/395311689) - খালি
PaddingValues-এর জন্যPaddingValues.Zeroযোগ করা হয়েছে। (If193e, b/386255688)
সমস্যার সমাধান
stateওভারলোডেরBasicTextFieldসাইজ পরিবর্তন হলে কার্সর স্ক্রল করে ভিউতে রাখা হবে। (I0eb41, b/406187741)- প্রাথমিক অবস্থা সম্পর্কে জানাতে
LazyListPrefetchStrategyওLazyGridPrefetchStrategy-এonVisibleItemsUpdatedAPI আপডেট করা হয়েছে। (If2cfa)
ভার্সন ১.৮
ভার্সন 1.8.3
১৮ জুন, ২০২৫
androidx.compose.foundation:foundation-*:1.8.3 রিলিজ করা হয়েছে। ভার্সন 1.8.3-এ এইসব কমিট রয়েছে।
ভার্সন 1.8.2
২০ মে, ২০২৫
androidx.compose.foundation:foundation-*:1.8.2 রিলিজ করা হয়েছে। ভার্সন 1.8.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ফোকাস সার্চের জন্য লোড করা আইটেমের সংখ্যা গণনা করার সময় শূন্য দিয়ে ভাগ করার সমস্যা প্রতিরোধ করার জন্য একটি সমাধান প্রকাশ করা হয়েছে।
LazyLayoutBeyondBoundsStateব্যবহার করে এমন সব লেআউটে চেক প্রয়োগ করা হয়েছে। (8e6dc8)
ভার্সন 1.8.1
৭ মে, ২০২৫
androidx.compose.foundation:foundation-*:1.8.1 রিলিজ করা হয়েছে। ভার্সন 1.8.1-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
BasicTextওTextAutoSize-এ একটি সমস্যার সমাধান করা হয়েছে যেখানেTextOverflow.Ellipsizeব্যবহার করলে অপ্টিমালের চেয়ে ছোট টেক্সট দেখা যেত। (I1e1d8, b/396582066)BasicTextField-এ একটি সমস্যার সমাধান করা হয়েছে যার ফলেTextFieldDecorator,innerTextField-কে কল করা এড়িয়ে গেলে বিভিন্ন ধরনের ক্র্যাশ হয়। (I2638c), b/308398612TextField-এ একটি বাগ সমাধান করা হয়েছে যার কারণেTextFieldStateইনস্ট্যান্স পরিবর্তন করা হলে টেক্সট টুলবার এবং বেছে নেওয়ার হ্যান্ডেল সম্পূর্ণ অদৃশ্য হয়ে যেত। (I8068a), b/390477786BasicText-এ একটি সমস্যার সমাধান করা হয়েছে যেখানেtextAlign-এর মান ডিফল্ট মান ছাড়া অন্য কিছুতে সেট করা থাকলে, ন্যূনতম প্রস্থ সংক্রান্ত বিধিনিষেধ পরিবর্তন করলে টেক্সটের প্লেসমেন্ট আপডেট হত না। (I77a96), b/406305552
ভার্সন 1.8.0
২৩ এপ্রিল, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0 রিলিজ করা হয়েছে। 1.8.0 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.8.0-rc03
৯ এপ্রিল, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-rc03 রিলিজ করা হয়েছে। 1.8.0-rc03 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.8.0-rc02
২৬ মার্চ, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-rc02 রিলিজ করা হয়েছে। ভার্সন 1.8.0-rc02-এ এইসব কমিট রয়েছে।
ভার্সন 1.8.0-rc01
১২ মার্চ, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.8.0-rc01-এ এইসব কমিট আছে।
ভার্সন 1.8.0-beta03
২৬ ফেব্রুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-beta03 রিলিজ করা হয়েছে। 1.8.0-beta03 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- আউটপুট ট্রান্সফর্মেশন প্রয়োগ করার আগে টেক্সটফিল্ডের ভ্যালু ক্যাপচার করে এমন একটি নতুন সিম্যান্টিক্স প্রপার্টি
InputTextযোগ করা হয়েছে। (Iae46a, b/395911609, b/176949051) - পুরনো হয়ে যাওয়া
AutoSizeওভারলোড সরিয়ে দেওয়া হয়েছে। একই ফাংশন পরিবেশনকারীTextAutoSizeAPI ব্যবহার করুন। (I2c90f) TextAutoSize-এর সাথে ক্যাশিং সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যেখানে একই সীমাবদ্ধতা সহ দ্বিতীয় লেআউট পাসের ফলে সবচেয়ে বড় ফন্ট সাইজের পরিবর্তে দ্বিতীয় সবচেয়ে বড় ফন্ট সাইজ ব্যবহার করা হতে পারে। (Id367f)
ভার্সন 1.8.0-beta02
১২ ফেব্রুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-beta02 রিলিজ করা হয়েছে। 1.8.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
LayoutModifierNodeব্যবহার করে ওভারস্ক্রল প্রয়োগ করা হলে স্ক্রল করা যায় এমন কন্টেনারের মধ্যে সঠিকভাবে কাজ না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ভার্সন 1.8.0-beta01
২৯ জানুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.8.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
SemanticsNodeInteraction.semanticsId()সরানো হয়েছে৷ পরিবর্তেSemanticsNodeInteraction.fetchSemanticsNode().idব্যবহার করুন। (Ie397a)requestAutofillAPI-কে অটোফিল ম্যানেজারের বাইরে রাখার জন্য আবার লেখা। (Id1929)ContextualFlowRowওContextualFlowColumnবন্ধ করা হয়েছে হিসেবে চিহ্নিত করা হয়েছে। এই পরীক্ষামূলক কম্পোনেন্টটি 1.7 ভার্সনে চালু করা হয়েছিল এবং এখনও স্থিতিশীল হয়নি এবং এর প্রয়োগকে অবাঞ্ছিত বলে মনে করা হয়েছে। ভবিষ্যতে, এই কম্পোনেন্টটি যে সমস্যার সমাধান করার জন্য তৈরি করা হয়েছে, সেই সমস্যার সমাধানকারী কম্পোনেন্ট প্রদান করা হতে পারে।FlowRowওFlowColumn-এ 1.7-এ চালু করা এক্সপেরিমেন্টাল ওভারলোড আছে যার মধ্যেoverflowপ্যারামিটার অন্তর্ভুক্ত। এই প্যারামিটারের ব্যবহার বাতিল করা হয়েছে এবং এর পরিবর্তে এই প্যারামিটার ছাড়া ওভারলোড ব্যবহার করা যেতে পারে। এইসব ওভারলোডের জন্য ডিফল্ট "ওভারফ্লো" আচরণ হবে "ক্লিপ", কারণ এটি শুরু থেকেই এমন ছিল।ContextualFlowRow-এর অনেক ব্যবহারিক ক্ষেত্রেFlowRowব্যবহার করা যেতে পারে, তবে আমরা বুঝি যে এটি সম্পূর্ণভাবে সত্যি নয়।ContextualFlowRowসম্পূর্ণভাবে ব্যবহারকারীর স্পেসে প্রয়োগ করা যায় এবং চাইলে এর প্রয়োগ কপি করে অ্যাডাপ্ট করা যায়। ভবিষ্যতে, আমরা আশা করি যে এইসব ব্যবহারের ক্ষেত্রে অন্যভাবে সমাধান করতে পারব। (Ibafec)
সমস্যার সমাধান
- অ্যানিমেশনের সময় কখনও কখনও ভুল অনুবাদ হওয়া এলিপসিস সহ টেক্সট লেআউট ঠিক করা, আরও তথ্যের জন্য b/389707025 দেখুন (Ie55b1, b/389707025)
BasicText-এTextAutoSizeওmaxLines-এর মান ১ হিসেবে সেট করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (Ic0450, b/376834366)- টেক্সটের ন্যূনতম ইন্ট্রিনসিক উচ্চতা এখন
minLinesপ্যারামিটারকে বিবেচনা করে। এর অর্থ হল,minLinesপ্যারামিটার (I225f9, b/388299762) পূরণ করার জন্য প্রয়োজনীয় উচ্চতার থেকে রিপোর্ট করা ন্যূনতম ইন্ট্রিনসিক উচ্চতা ছোট হবে না
ভার্সন 1.8.0-alpha08
১৫ জানুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.8.0-alpha08 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha08-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- AutoSize:
AutoSizeনাম পরিবর্তন করেTextAutoSizeকরা হয়েছে এবং কাস্টমTextAutoSizeপ্রয়োগ তৈরি করার সুবিধা দেয় এমন API প্রকাশ করা হয়েছে। কাস্টম টেক্সট অটো সাইজ প্রয়োগের উদাহরণ দেখতেTextAutoSizeSampleদেখুন। (I85756) DetectTapGesturesEnableNewDispatchingBehaviorফিচার ফ্ল্যাগটিComposeFoundationFlags-এ সরিয়ে নিয়ে গিয়েisDetectTapGesturesImmediateCoroutineDispatchEnabledনামে রিনেম করা হয়েছে। পুরনো ফ্ল্যাগটি বন্ধ করে দেওয়া হয়েছে এবং এখন সেটিComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabled-এর পরিবর্তে অন্য কোনও জায়গায় ডেলিগেট করা হবে। (I62932)
সমস্যার সমাধান
- ডিফল্ট হিসেবে
DetectTapGesturesEnableNewDispatchingBehaviorচালু করা থাকে।TapGestureDetectorAPI এখন ডিফল্ট হিসেবে নতুন ডিসপ্যাচিং আচরণ (অবিলম্বে ডিসপ্যাচ) ব্যবহার করে। (I9f2bc, b/369648479) - ইনট্রিনসিক সাইজ সঠিকভাবে ম্যানেজ করার জন্য
requiredWidth/Height/Sizeমডিফায়ার সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (Ie3d7d, b/368113212)
এক্সটার্নাল কন্ট্রিবিউশন
BasicTooltip-কে ফাউন্ডেশনে এবংBasicTooltip/Tooltip-কে Material3-তে কমনাইজ করা হয়েছে। (Ifc2e6)- নতুন ক্লিপবোর্ড ইন্টারফেস ও তার জন্য কম্পোজিশন লোকাল যোগ করা হয়েছে। (I80809)
ভার্সন 1.8.0-alpha07
১১ ডিসেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha07 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha07-এ এইসব কমিট আছে।
API-তে পরিবর্তন
ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledমুছে দেওয়া হয়েছে, এই ফ্ল্যাগটিBasicTextথেকে ইন্টার্নালgraphicsLayerসরিয়ে দেওয়ার প্রসেস রিভার্ট করতে সাহায্য করেছে। আপনি এই ফ্ল্যাগ ব্যবহার করে থাকলে, বাগ ফাইল করে কারণগুলি আমাদের জানান। এছাড়াও, আগের মতো একই আচরণ পেতে, আপনারBasicTextকলেModifier.graphicsLayer()পাস করতে পারেন। (Id9f90)- নতুন
stickyHeaderDSL-এর জন্য ডিফল্ট প্রয়োগ যোগ করা হয়েছে। (I68986) LocalAutofillHighlightColorকম্পোজিশনে কালার টাইপ ব্যবহার করা হয়েছে। (I0e05b)OverscrollEffect#withoutDrawing-এর নাম পরিবর্তন করেOverscrollEffect#withoutVisualEffectকরা হয়েছে। (I1a154)
সমস্যার সমাধান
AnchoredDraggable-এর টার্গেট ক্যালকুলেশনে হওয়া সমস্যার ফলো-আপ সমাধান, যেখানে নির্দিষ্ট সোয়াইপের জন্য ভুল অ্যাঙ্করে সেটেল হতে পারত। (I23b87, b/367660226)
এক্সটার্নাল কন্ট্রিবিউশন
- UI-তে
BringIntoViewResponderModifierNodeযোগ করুন, যা Bring Into View ফাংশনালিটি প্রয়োগ করার একটি নতুন উপায় প্রদান করে এবং প্ল্যাটফর্ম লেভেলে প্রয়োগ করার অনুমতি দেয় (Ia6dd8) - কার্সর যেভাবে আঁকা হয়, আমরা তাতে সামান্য পরিবর্তন করে চলেছি। পরীক্ষার সময় কার্সরের মাধ্যমে আঁকা বন্ধ করতে আপনি
LocalCursorBlinkEnabledব্যবহার করতে পারেন। (I4c697)
ভার্সন 1.8.0-alpha06
১৩ নভেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha06 রিলিজ করা হয়েছে। 1.8.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
stylusHoverIconমডিফায়ার যোগ করে। (Iff20a, b/331289114)- অননুমোদিত
AnchoredDraggableState-এরconfirmValueChange. স্টেট পরিবর্তন বাতিল করার পরিবর্তে, অনুমোদিত নয় এমন অ্যাঙ্কর অ্যাক্টিভ অ্যাঙ্কর সেটে থাকা উচিত নয় এবং অনুরোধ করা অ্যাকশন উপলভ্য নেই তা বোঝাতেOverscrollEffectব্যবহার করা উচিত। (Ia717f) - অটোফিল ম্যানেজারকে ইন্টারফেস হিসেবে পরিবর্তন করে। (I84914, b/376080755)
OverscrollEffect#withoutDrawingএবংOverscrollEffect#withoutEventHandlingAPI যোগ করে - এই API-গুলি প্রদান করা ওভারস্ক্রল এফেক্টের একটি র্যাপ করা ইনস্ট্যান্স তৈরি করে যা যথাক্রমে ইভেন্ট ড্র / হ্যান্ডেল করে না, যা ইভেন্ট ডিসপ্যাচ করা কম্পোনেন্ট থেকে আলাদা কম্পোনেন্টে ওভারস্ক্রল রেন্ডার করার অনুমতি দেয়। যেমন, লেজি লিস্টের মধ্যে ওভারস্ক্রল ড্র করার সুবিধা বন্ধ করে দেওয়া এবং তারপরে উপরে / অন্য কোথাও ওভারস্ক্রল আলাদাভাবে ড্র করা। (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244)- টেক্সট টুলবারে অটোফিল সংক্রান্ত সুবিধা যোগ করা হয়েছে। (Ie6a4c)
OverscrollConfigurationওLocalOverscrollConfigurationসরিয়ে দেয় এবং ডিফল্ট ওভারস্ক্রল ইমপ্লিমেন্টেশনের ইনস্ট্যান্স তৈরি করতে / প্যারামিটার কাস্টমাইজ করতেrememberPlatformOverscrollFactoryযোগ করে। ওভারস্ক্রল বন্ধ করতে,LocalOverscrollConfiguration provides null-এর পরিবর্তেLocalOverscrollFactory provides nullব্যবহার করুন। গ্লো কালার / প্যাডিং পরিবর্তন করতে,LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)-এর পরিবর্তেLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)ব্যবহার করুন। (Ie71f9, b/255554340, b/234451516)- অন্যান্য API-এর সাথে সামঞ্জস্য রেখে
OverscrollEffect-এরeffectModifierপ্রপার্টি পরিবর্তন করেnode: DelegatableNodeকরা হয়েছে। (Ic0b46, b/255554340) - এক্সপেরিমেন্টাল
GlobalAssertionsAPI সরিয়ে দেওয়া হয়েছে। এটি অ্যাক্সেসিবিলিটি চেক চালানোর জন্য ব্যবহার করার কথা ছিল, সেই উদ্দেশ্যেenableAccessibilityChecks()দেখুন। (I59322)
ভার্সন 1.8.0-alpha05
৩০ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha05 রিলিজ করা হয়েছে। 1.8.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
- টেক্সট অটোমেটিক সাইজ করার সুবিধা। আপনার প্রিয় টেক্সট কম্পোজ করার উপযুক্ত (যেমন
BasicText) কম্পোনেন্টে একটিAutoSizeইনস্ট্যান্স (যেমনAutoSize.StepBased) পাস করুন এবং উপলভ্য স্পেস অনুযায়ী আপনার টেক্সট সাইজ অ্যাডজাস্ট হতে দেখুন! (Ice7e0, b/139320827) - হায়ারার্কির মধ্যে ওভারস্ক্রল কনফিগার করার অনুমতি দিতে
OverscrollFactoryওLocalOverscrollFactoryAPI যোগ করে।LocalOverscrollFactory-এর মাধ্যমে প্রদান করা ভ্যালু ডিফল্ট হিসেবেOverscrollEffectতৈরি করার জন্য ব্যবহার করা হবে। বর্তমান ফ্যাক্টরি থেকে কোনও এফেক্ট তৈরি ও মনে রাখতে,rememberOverscrollEffect()ব্যবহার করুন। (I51ca4, b/255554340)
API-তে পরিবর্তন
CompositionLocalযোগ করা হয়েছে যা অটোফিলের সফলভাবে পূরণ করা হাইলাইটের হিউ পরিবর্তন করতে ব্যবহার করা যেতে পারে। (I32092)ScrollableDefaults.overscrollEffectসরানো হয়েছে - এর পরিবর্তে আপনাকেrememberOverscrollEffectব্যবহার করতে হবে। এটিLocalOverscrollFactory-এর সাথে প্রদান করা বর্তমান ওভারস্ক্রল প্রয়োগের একটি ইনস্ট্যান্স তৈরি করবে। (I1651a, b/255554340),(b/234451516)- ব্যবহারকারীর অটোফিল জার্নি ফাইন-টিউন করার জন্য ব্যবহার করা যেতে পারে এমন নতুন
AutofillManagerইন্টারফেস এবং অটোফিলের এই নতুন ভার্সন চালু করার জন্যisSemanticAutofillEnabledফ্ল্যাগ নিয়ে আসে। (I9d484) CombinedClickableNodeসরিয়ে দেয়। পারফর্ম্যান্স সংক্রান্ত কাজ আনব্লক করার জন্য এই পরীক্ষামূলক API সাময়িকভাবে প্রকাশ করা হয়েছিল, তবে এখন আর এটির প্রয়োজন নেই। পরিবর্তে, অন্যান্য মডিফায়ার API-এর মতো আপনাকে সরাসরিModifier.combinedClickableব্যবহার করতে হবে। (I4b658)- কাস্টম
OverscrollEffectনির্দিষ্ট করার সুবিধা সহhorizontalScroll,verticalScroll,LazyColumn,LazyRow,LazyHorizontalGrid,LazyVerticalGrid,LazyHorizontalStaggeredGrid,LazyVerticalStaggeredGrid,HorizontalPagerএবংVerticalPager-এ ওভারলোড যোগ করে। প্রদান করাOverscrollEffectইভেন্ট পাবে এবং এইসব কম্পোনেন্টের সীমার মধ্যে রেন্ডার করা হবে। মনে রাখবেন, একইOverscrollEffectদু'বার আঁকা যায় না - তাই আপনিModifier.overscrollব্যবহার করে এই কম্পোনেন্টগুলির মধ্যে একটিতে দেওয়া একইOverscrollEffectআলাদাভাবে আঁকতে পারবেন না। এইসব কম্পোনেন্টের সীমার বাইরে ওভারস্ক্রল করার ব্যবহারিক উদাহরণ ভবিষ্যতে আলাদাভাবে আলোচনা করা হবে। (I2dc42, b/266550551, b/234274772, b/224572538, b/353805117)
ভার্সন 1.8.0-alpha04
১৬ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.8.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DelegatableNode#onDensityChangeওDelegatableNode#onLayoutDirectionChangeকলব্যাক যোগ করে যাতে এগুলি পরিবর্তন হলে নোড স্টেট আপডেট করা যায়। (I04f3e, b/340662451)- অনুচ্ছেদ ও
ParagraphIntrinsicsএখনAnnotatedString-এ প্রয়োগ করা সব অ্যানোটেশনের তালিকা নেয়, আগে এতে শুধুমাত্রSpanStyles-এর তালিকা থাকত। (I12f80) PointerInputModifierNode#touchBoundsExpansionচালু করা হয়েছে, যা একটি পয়েন্টার ইনপুট মডিফায়ারের টাচ বাউন্ড বড় করতে ব্যবহার করা যেতে পারে। (Iccf02, b/335339283)
সমস্যার সমাধান
AnchoredDraggableDefaults.flingBehavior-এ পাস করা পজিশনাল থ্রেশহোল্ড কিছু পরিস্থিতিতে সঠিকভাবে বিবেচনা করা হয়নি, এমন একটি সমস্যার সমাধান করা হয়েছে। (Ifdf0d, b/367660226)- চলমান ফ্লিংয়ের সময় নোড ট্রি থেকে সরিয়ে দেওয়া নেস্টেড স্ক্রল করার মতো কন্টেন্টের জন্য একটি সমাধান প্রকাশ করা হয়েছে। এখন এই নোডগুলি ফ্লিং বাতিল করবে এবং বাকি ভেলোসিটি সহ
onPostFlingইভেন্ট সঠিকভাবে পাঠাবে। এছাড়াও, রিগ্রেশন হলে আচরণ নিয়ন্ত্রণ করার জন্য আমরা ফ্ল্যাগNewNestedScrollFlingDispatchingEnabledচালু করছি। বিটা ভার্সন প্রকাশ করার আগে ফ্ল্যাগ সরিয়ে দেওয়া হবে। (I05c37, b/371168883) OverscrollEffectsথেকেModifier.anchoredDraggable-এ পাস করা হলে 1D-এর পরিবর্তে 2D ডেল্টা পাওয়ার সমস্যা সমাধান করা হয়েছে। (Ie52c0)
ভার্সন 1.8.0-alpha03
২ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha03 রিলিজ করা হয়েছে। 1.8.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Kotlin ভার্সন 1.9-এ আপডেট করা হয়েছে (I1a14c)
- ফ্ল্যাগ
DraggableAddDownEventFixEnabled(I848d5) যোগ করা হয়েছে - a11y পরিষেবার জন্য পেজারে তালিকার আচরণ এমুলেট করতে, ক্যারোজেল নামে একটি নতুন সিম্যান্টিক রোল চালু করা হয়েছে। (Id354b, b/354109776, b/239672673)
BasicTextকম্পোজ করার উপযুক্ত থেকে অন্তর্নিহিতgraphicsLayerমডিফায়ার সরিয়ে দেওয়া হয়েছে। পুরনো আচরণে ফিরে যেতে পরীক্ষামূলকComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledফ্ল্যাগ যোগ করা হয়েছে। (Ie478d)Modifier.recalculateWindowInsets()যোগ করা হয়েছে যাতে হায়ারার্কিতে থাকা বাচ্চারাinsetsPaddingব্যবহার করতে পারে, এমনকি অভিভাবক তাদেরconsumeWindowInsets()-এর সাথে অ্যালাইন না করলেও। (I7f9e4)
সমস্যার সমাধান
detectDragGestures, ড্র্যাগ করা যায় ও স্ক্রল করা যায় এমন আইটেমে জেসচার পিক-আপ প্রয়োগ করা। এখন কোনও বাচ্চা ড্র্যাগ করার মতো কোনও জেসচার ছেড়ে দিলে, অভিভাবক সেটি সম্পূর্ণ করার সুযোগ পাবেন। এর ফলে আরও একটানা ও ইন্টিগ্রেটেড জেসচার ম্যানেজমেন্ট সম্ভব হয়। (Ic88fe)- স্ক্রল করা যায় এমন আইটেমে ফ্লিং বাতিল করার আচরণ আপডেট করুন। এখন কোনও স্ক্রল করা যায় এমন আইটেম ফ্লিং করলে এবং তা বাউন্ডে হিট করলে, ফ্লিং চালিয়ে যাওয়ার পরিবর্তে চেনে থাকা পরবর্তী স্ক্রল করা যায় এমন আইটেমে ফ্লিং ভেলোসিটি সঠিকভাবে পাস করা হবে। (I9326a)
ভার্সন 1.8.0-alpha02
১৮ সেপ্টেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha02 রিলিজ করা হয়েছে। 1.8.0-alpha02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
TextOverflow.StartEllipsisএবংTextOverflow.MiddleEllipsisএখন উপলভ্য, যা সিঙ্গেল লাইন টেক্সটের (I38913, b/185418980) লাইনের শুরুতে বা মাঝে উপবৃত্ত বসাতে দেয়
ভার্সন 1.8.0-alpha01
৪ সেপ্টেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.8.0-alpha01 রিলিজ করা হয়েছে। 1.8.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.7
ভার্সন 1.7.8
১২ ফেব্রুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.7.8 রিলিজ করা হয়েছে। ভার্সন 1.7.8-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- পেস্ট করা টেক্সটের অংশ পরিবর্তন করার সময় ইনপুট ট্রান্সফর্মেশনের সাথে
BasicTextField-এ ক্র্যাশ হওয়ার সমস্যার সমাধান করা হয়েছে। (I73702)
ভার্সন 1.7.7
২৯ জানুয়ারি, ২০২৫
androidx.compose.foundation:foundation-*:1.7.7 রিলিজ করা হয়েছে। ভার্সন 1.7.7-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- লিঙ্ক অ্যানোটেশন সহ
IndexOutOfBoundক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (Ic96d2) - লিঙ্ক সহ কিছু এজ কেসে, ইনফিনিট রিকম্পোজিশন সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (I04a03)
পরিচিত বাগ
- একটি বাগ শনাক্ত করা হয়েছে যা Android API লেভেল ৩৫-এ বিরল পরিস্থিতিতে অপ্রত্যাশিতভাবে টেক্সট র্যাপ করতে পারে। 1.7 ভার্সনে এটি ঠিক করা যাবে না, তাই 1.8 ভার্সনে এটি ঠিক করা হবে। (b/391378120)
ভার্সন 1.7.6
১১ ডিসেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.6 রিলিজ করা হয়েছে। ভার্সন 1.7.6-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- অ্যাক্সেসিবিলিটি পরিষেবার ক্ষেত্রে ফিক্সড টেক্সট ইনলাইন কন্টেন্ট দেখা যাচ্ছে না।
AndroidEmbeddedExternalSurfaceসঠিকভাবে রিসেট না হওয়া এবং লেজি লিস্টে আবার ব্যবহার করার সময় আটকে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ভার্সন 1.7.5
৩০ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.5 রিলিজ করা হয়েছে। ভার্সন 1.7.5-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- কন্টেন্ট প্যাডিং এরিয়ায় পিন করা আইটেম দু'বার সাবকম্পোজ করা হয়নি কিনা তা নিশ্চিত করুন। (Ic6224)
ভার্সন 1.7.4
১৬ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.4 রিলিজ করা হয়েছে। ভার্সন 1.7.4-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- টেক্সট ফিল্ডে বিরল ক্র্যাশ হওয়ার কারণ সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I475c6, b/313010266)
- Lazy লেআউট আইটেমের মূল থেকে
ReusableContentHostসরানো হয়েছে। "ডিঅ্যাক্টিভেট করা নোডে কল করা পরিমাপ" ক্র্যাশ হওয়ার সম্ভাব্য মূল কারণ এটি ছিল। (Id6e60)
ভার্সন 1.7.3
২ অক্টোবর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.3 রিলিজ করা হয়েছে। ভার্সন 1.7.3-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- minLines-এর মান ডিফল্ট মান ছাড়া অন্য কিছুতে সেট করা থাকলে
BasicText-এর ক্ষেত্রে মেমরি লিক সংক্রান্ত সমস্যার সমাধান করা হয়েছে।
ভার্সন 1.7.2
১৮ সেপ্টেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.2 রিলিজ করা হয়েছে। ভার্সন 1.7.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ড্র্যাগ করা যায় এমন আইটেম সংক্রান্ত সমস্যার সমাধান করা হয়েছে, এতে ডাউন ইভেন্ট মিসিং ছিল যার ফলে ফ্লিং স্বাভাবিকের চেয়ে ধীরে হতে দেখা যাচ্ছিল।
ভার্সন 1.7.1
১০ সেপ্টেম্বর, ২০২৪
- Android আর্টিফ্যাক্টে কোনও পরিবর্তন করা হয়নি।
-desktopআর্টিফ্যাক্ট সরিয়ে দেওয়া হয়েছে এবং-jvmStubsও-linuxx64Stubsআর্টিফ্যাক্ট যোগ করা হয়েছে। এইসব টার্গেটের কোনওটিই ব্যবহার করার জন্য নয়, Jetbrains Compose-এর প্রচেষ্টায় সাহায্য করার জন্য এগুলি প্লেসহোল্ডার হিসেবে ব্যবহার করা হয়।
ভার্সন 1.7.0
৪ সেপ্টেম্বর, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0 রিলিজ করা হয়েছে। 1.7.0 ভার্সনে এইসব কমিট আছে।
1.6.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
Modifier.clickable,Modifier.focusable,Modifier.indication,Modifier.scrollableওModifier.draggable-এর পারফর্ম্যান্স উল্লেখযোগ্যভাবে উন্নত করা হয়েছে। এই প্রচেষ্টার অংশ হিসেবে, ইন্টার্নাল পরিবর্তনের পাশাপাশি নিম্নলিখিত API পরিবর্তন করা হয়েছে- নতুন Indication API,
IndicationNodeFactoryযোগ করা হয়েছে। এর ফলে আগের (এখন আর ব্যবহার করা হয় না)rememberUpdatedInstanceAPI-এর তুলনায় আরও ভাল পারফর্ম্যান্সের ইঙ্গিত সংক্রান্ত প্রয়োগ করা যায়। মাইগ্রেশন সংক্রান্ত তথ্যের জন্য, developer.android.com দেখুন। clickable/combinedClickable/selectable/toggleableএখন নাল ভ্যালু নেওয়া যায় এমনMutableInteractionSourceপ্যারামিটার গ্রহণ করে। নাল হলে এবং প্রদত্ত ইঙ্গিতটিIndicationNodeFactoryহলে, ইঙ্গিতটি শুধুমাত্র প্রয়োজন হলেই অলসভাবে তৈরি করা যেতে পারে, যা পারফর্ম্যান্স উন্নত করে। আপনি যদিMutableInteractionSourceহোয়েস্ট ও ব্যবহার না করেন, তাহলেremember { MutableInteractionSource() }পাস করার পরিবর্তে null পাস করার সাজেশন দেওয়া হয়।Indication#rememberUpdatedInstanceবন্ধ করে দেওয়া হয়েছে। এতে পারফর্ম্যান্সের উপর অনিবার্যভাবে নেতিবাচক প্রভাব পড়ে এবং অন্যান্য অপ্টিমাইজেশন করা যায় না। পরিবর্তে, আপনাকে নতুনIndicationNodeFactoryAPI ব্যবহার করতে হবে।
- নতুন Indication API,
BasicTextFieldব্যবহার করেTextFieldStateএখন স্থিতিশীল এবং আমরা সমস্ত কল-সাইটকেBasicTextField(value, onValueChange)থেকেBasicTextField(TextFieldState)-এ মাইগ্রেশন শুরু করার পরামর্শ দিই।ClickableTextবন্ধ করে দেওয়া হয়েছে। আপনার টেক্সটে ক্লিক করা যায় এমন লিঙ্ক যোগ করতে, আপনারAnnotatedString-এ নতুনLinkAnnotationঅ্যানোটেশনের সাথেBasicTextব্যবহার করুন।LinkAnnotationলিঙ্কের অবস্থার (যেমন, ফোকাস করা, মাউস নিয়ে যাওয়া) উপর ভিত্তি করে কাস্টম স্টাইলিংয়ের অনুমতি দেয়।MaxLinesওOverflow-এর সাথেContextualFlowRowওEnhanced FlowRow/Columnচালু করা হচ্ছে। আমরা পরীক্ষামূলকFlowRowওFlowColumn-এ উন্নতির ঘোষণা করতে পেরে আনন্দিত। এখন এতেmaxLinesও ওভারফ্লো সহায়তা রয়েছে। এছাড়াও,ContextualFlowRowওContextualFlowColumnপ্রথমবার লঞ্চ করা হয়েছে। এই আপডেটটি পারফর্ম্যান্স অপ্টিমাল কম্পোনেন্ট প্রদান করার জন্য ডিজাইন করা হয়েছে, যেখানেContextualFlow*হল অল্প maxLines কনফিগারেশন এবং ডায়নামিক +N আরও দেখুন বোতাম ব্যবহার করে আইটেমের একটি বড় সংখ্যার জন্য উপযুক্ত এবংFlowRowএবংFlowColumnহল আইটেমের একটি ছোট সংখ্যার জন্য উপযুক্ত, ১০০টির কম আইটেম। গুরুত্বপূর্ণ:FlowRowবাFlowColumn-এ আগে থেকে থাকা আচরণ বজায় রাখতে, ক্রস অ্যাক্সিস ম্যাক্স ফিট করুক বা না করুক, সব আইটেম কম্পোজ করা হয়। তাই ইনিশিয়ালাইজেশনের সময় ওভারফ্লোFlowRowOverflow.VisibleবাFlowColumnOverflow.Visible-এ সেট করুন। এইসব নতুন ফিচার কীভাবে কাজ করে তা জানতেContextualFlowRowSampleওFlowRowSampleদেখুন। (Ib9135, b/293577082)LazyColumnওLazyRow-এ আইটেম দেখা ও অদৃশ্য হওয়া সংক্রান্ত অ্যানিমেশন সাপোর্ট যোগ করা হয়েছে। আগে প্লেসমেন্ট (পুনর্বিন্যাস) অ্যানিমেশন কাজ করানোর জন্যModifier.animateItemPlacement()মডিফায়ার যোগ করা যেত। আমরা এই মডিফায়ারটি সরিয়ে দিয়েছি এবংModifier.animateItem()নামের একটি নতুন নন-এক্সপেরিমেন্টাল মডিফায়ার নিয়ে এসেছি যা আপনাকে তিনটি অ্যানিমেশন টাইপেই সহায়তা করতে দেয়: দৃশ্যমান হওয়া (ফেড-ইন), অদৃশ্য হওয়া (ফেড-আউট) এবং রিঅর্ডার করা। (I2d7f7, b/150812265)- অফিসিয়াল Android API (
ScrollCaptureCallback) ব্যবহার করে Compose স্ক্রল কন্টেনারে বড় স্ক্রিনশটের জন্য পরীক্ষামূলক সহায়তা প্রয়োগ করা হয়েছে। NestedScrollসোর্স ড্র্যাগ ও ফ্লিংকেUserInputওSideEffectদিয়ে প্রতিস্থাপন করা হচ্ছে, যাতে এই সোর্সগুলির বর্ধিত সংজ্ঞা অন্তর্ভুক্ত করা যায়, যার মধ্যে এখন অ্যানিমেশন (সাইড এফেক্ট) এবং মাউস হুইল ও কীবোর্ড (UserInput) অন্তর্ভুক্ত।LazyLayoutপ্রিফেচ অনুরোধকে এখন 'জরুরি' হিসেবে চিহ্নিত করা যেতে পারে, এর অর্থ হল আমরা আশা করি যে এই আইটেমটি পরবর্তী ফ্রেমে প্রয়োজন হবে এবং আগে থেকে আরও কাজ করার বিষয়টি নিশ্চিত করতে ফ্রেম বাজেট উপেক্ষা করতে চাই (Id513f)- Android U-এর পরের ভার্সনে ডিভাইসে স্টাইলাস দিয়ে হাতের লেখা ফিচার কাজ করে। (I002e4)
- বিভিন্ন API-কে স্টেবল হিসেবে প্রমোট করা হয়েছে
- পেজার, স্ন্যাপিং, উইন্ডো ইনসেট
ভার্সন 1.7.0-rc01
২১ আগস্ট, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-rc01-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- একটি রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে যেখানে ফোকাস করা যায় (বা ক্লিক করা যায়) এবং বন্ধ করা আছে এমন কোনও এলিমেন্ট কোনও পেরেন্টের মধ্যে ফোকাস করা হলে ক্র্যাশ হয়। (b/317561689)
ভার্সন 1.7.0-beta07
৭ আগস্ট, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta07 রিলিজ করা হয়েছে। 1.7.0-beta07 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- টেক্সট ইনপুট সংক্রান্ত
SemanticsNodeInteractionফাংশনperformTextReplacement,performTextInputওperformTextClearanceএখন শুধু রিড-অনলিTextFields-এ কল করা হলে অ্যাসার্শন এরর দেখাবে। (I4ae8f) - হাইপারলিঙ্কে হওয়া ভিজ্যুয়াল গ্লিচ সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I23311)
- কিছু IME-এর সাথে
contentReceiverমডিফায়ার কাজ না করার সমস্যা সমাধান করা হয়েছে। - ভেলোসিটি জেনারেশন: Compose UI ও Foundation-এ NaN ভ্যালু ছড়িয়ে পড়া আটকানো।
ভার্সন 1.7.0-beta06
২৪ জুলাই, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta06 রিলিজ করা হয়েছে। 1.7.0-beta06 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.7.0-beta05
১০ জুলাই, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta05 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta05-এ এইসব কমিট আছে।
সমস্যার সমাধান
SnapFlingBehaviorও Pager-এ Nan ভ্যালু ট্রিটমেন্ট সংক্রান্ত সমস্যার সমাধান।
ভার্সন 1.7.0-beta04
২৬ জুন, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta04 রিলিজ করা হয়েছে। 1.7.0-beta04 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- খুব বড় টেক্সট লাইন (যেমন, ১০ হাজার অক্ষর) পরিমাপ করার সময় ক্র্যাশ হওয়া এড়ানো (8157ab)
- নতুন
BasicTextField-এ (6b7575) ক্র্যাশ হওয়ার কারণ খুব বড় টেক্সটের পরিমাপ সংক্রান্ত সমস্যার সমাধান করে - সারি/কলামের পরিমাপের ক্ষেত্রে আচরণের পরিবর্তন আগের অবস্থায় ফিরিয়ে আনে যা নির্দিষ্ট কিছু পরিস্থিতিতে টেক্সট ব্যবহার করাকে ভেঙে দেয় (69e8ba)
ভার্সন 1.7.0-beta03
১২ জুন, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta03 রিলিজ করা হয়েছে। 1.7.0-beta03 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.7.0-beta02
২৯ মে, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta02 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta02-এ এইসব কমিট আছে।
API-তে পরিবর্তন
LazyGrids-এর জন্য আগে থেকে থাকা পরীক্ষামূলক API-এর মতোLazyLists-এর প্রিফেচ আচরণ কনফিগার করার জন্য একটি পরীক্ষামূলক API যোগ করে। এর মধ্যে নেস্টেডLazyGrids-এ আইটেম প্রিফেচ করার সুবিধা অন্তর্ভুক্ত।LazyListPrefetchStrategy-এর মতো, ডিফল্ট হিসেবে প্রতিটি গ্রিডের প্রথম ২টি নেস্টেড আইটেম প্রিফেচ করা হয়, তবে নতুনLazyGridPrefetchStrategy(nestedPrefetchItemCount)ওLazyListPrefetchStrategy#onNestedPrefetchAPI-এর মাধ্যমে এটি কনফিগার করা যায়। (I591c4)SemanticsProperties.Editable-এর নাম পরিবর্তন করেIsEditableকরা হয়েছে এবংSemanticsPropertyReceiver.editable-এর মান পরিবর্তন করেisEditableকরা হয়েছে। প্রপার্টি এখন একটি বুলিয়ান এবং সবসময় টেক্সট ফিল্ডের মাধ্যমে নির্দিষ্ট করা হয়। (I8acd8)basicMarqueeডিফল্ট ভ্যালুMarqueeDefaultsঅবজেক্টে সরানো হয়েছে। (I12ff6)basicMarqueedelayMillisপ্যারামিটারের নাম পরিবর্তন করেrepeatDelayMillisকরা হয়েছে। (I12ff6)- লিঙ্ক স্টাইল করার জন্য API আপডেট করা হয়েছে:
TextLinkStylesথেকেTextStyle-এ সরানো হয়েছে এবং মেটেরিয়াল থেকেTextDefaultsসরিয়ে দেওয়া হয়েছে (I5477b)
সমস্যার সমাধান
- এর উদ্দেশ্য আরও ভালোভাবে বোঝাতে
LayoutCoordinates.introducesFrameOfReference-এর নাম পরিবর্তন করেLayoutCoordinates.introducesMotionFrameOfReferenceকরা হয়েছে। সেই ফ্ল্যাগের উপর ভিত্তি করে কোঅর্ডিনেট গণনা করার জন্য সম্পর্কিত ফাংশনের নাম পরিবর্তন করা হয়েছে। (I3a330) MarqueeDefaultsপ্রপার্টি থেকে 'ডিফল্ট' সরানো হয়েছে। (I1d8a0)MarqueeDefaultsপ্রপার্টি থেকে 'মারকিউ' সরানো হয়েছে। (Iad4f4)TextStyleক্লাস থেকেTextLinkStyles-কে সরিয়ে দেওয়া হয়েছে। পরিবর্তে,TextLinkStylesহলLinkAnntationকনস্ট্রাক্টর ওAnnotatedString.fromHtmlপদ্ধতির (I90b2b) অংশ- Pager আগে থেকেই বাউন্ডে সেটেল হয়ে থাকার সময় বাউন্ডের দিকে ফ্লিং করলে তা স্ন্যাপ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I9f373, b/339171222)
- BTF2-এ এখন মাউস বেছে নেওয়ার সঠিক জেসচার আছে। (Ibe8c6)
এক্সটার্নাল কন্ট্রিবিউশন
- 'নির্ভুলতা উন্নত করতে প্রিফেচে কম্পোজ/সময় গণনা কন্টেন্ট-টাইপ ভিত্তিক করুন' (Iea622) আবার জমা দিন
- আরও নিখুঁতভাবে সময় গণনা করার জন্য প্রিফেচে কম্পোজ/মাপার সময় গণনা সংক্রান্ত কন্টেন্টের ধরন ভিত্তিক করুন (Ibccb1)
- সাধারণ সোর্স সেট (I070b2) থেকে
WindowInsetsPaddingমডিফায়ার উপলভ্য করা
ভার্সন 1.7.0-beta01
১৪ মে, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-beta01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- বাইনারি সামঞ্জস্যের জন্য বন্ধ করা লুকানো
KeyboardOptions.shouldShowKeyboardOnFocusপ্রপার্টি আবার যোগ করা হয়েছে। (I15cfe) - RTL লেআউটে ব্যবহার করা হলে,
Modifier.anchoredDraggableএখন ডিফল্ট হিসেবে হরাইজন্টাল ওরিয়েন্টেশন সহ কম্পোনেন্টের জন্য ড্র্যাগ ডেল্টা রিভার্স করে। (I3c6d9) AnnotatedString.hasEqualsAnnotationsএখনhasEqualAnnotations. (I685c0)- টেক্সটে Material থিমের লিঙ্ক পাওয়ার জন্য API আপডেট করা হয়েছে। বিশেষ করে, থিমযুক্ত
LinkAnnotationsতৈরি করতে এবং থিমযুক্ত লিঙ্ক সহ HTML পার্স করার জন্যTextDefaultsথেকে পদ্ধতিগুলি সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে, একটিTextLinkStylesক্লাস যোগ করা হয়েছে যা টেক্সট কম্পোজ করার যোগ্য আইটেমের প্যারামিটার হিসেবে লিঙ্ককে স্টাইল করার অনুমতি দেয়। (I31b93) - সাসপেন্ড না করা কলব্যাক দিয়ে
onDragStartedওonDragStoppedপরিবর্তন করা হয়েছে। (I59de8)
সমস্যার সমাধান
- Pager ক্র্যাশ করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে, যেখানে
contentPaddingইনকামিং সীমাবদ্ধতার চেয়ে বড় ছিল। Pager এখনPageSizeথেকে পাওয়া নেগেটিভ ভ্যালুকে ০ হিসেবে গণ্য করে। (Iba5d8, b/314008560)
ভার্সন 1.7.0-alpha08
১ মে, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha08 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha08-এ এইসব কমিট রয়েছে।
নতুন ফিচার
BasicTextFieldওSelectionContainer-এ ডানদিকের বোতামে ক্লিক করলে যে কনটেক্সট মেনু দেখা যায় তাতে কাট, কপি, পেস্ট ও সবকটি বেছে নেওয়ার অ্যাকশন যোগ করা হয়েছে। (If8c93, Ia2b49, I6f268)
API-তে পরিবর্তন
LazyLayoutপ্রিফেচ অনুরোধকে এখন 'জরুরি' হিসেবে চিহ্নিত করা যেতে পারে, এর অর্থ হল আমরা আশা করি যে এই আইটেমটি পরবর্তী ফ্রেমে প্রয়োজন হবে এবং আগে থেকে আরও কাজ করার বিষয়টি নিশ্চিত করতে ফ্রেম বাজেট উপেক্ষা করতে চাই (Id513f)isPositionedByParentWithDirectManipulation-এর নাম পরিবর্তন করেintroducesFrameOfReferenceকরা হয়েছে। মনে রাখবেন, এখন এর বিপরীত প্রভাব রয়েছে, অর্থাৎ ডিফল্ট হিসেবে, বেশিরভাগLayoutCoordinatesরেফারেন্স ফ্রেম যোগ করে এবং শুধুমাত্র ডাইরেক্ট ম্যানিপুলেশনের অধীনে রাখলে প্রপার্টিটি মিথ্যা হবে। শুধুমাত্র সেইসব পজিশন কোয়েরি করতে যা রেফারেন্সের ফ্রেমকে ইন্ট্রোডিউস করে,positionInLocalFrameOfReference(...)ব্যবহার করুন। অথবাLookaheadScopeথেকেpositionInLocalLookaheadFrameOfReference। (Ifc5f7)LinkInteractionListener-এর (Iaa35c) মধ্যেonClicked-এর নাম পরিবর্তন করেonClickকরা হয়েছে- API কাউন্সিল ফিডব্যাক অনুযায়ী
getScrollViewportLength-এর জন্য অ্যাকশন ল্যাম্বডা পরিবর্তন করো। (Ibc74a) - স্টাইলাস হ্যান্ডরাইটিং ডেলিগেশন API-এর নাম পরিবর্তন করা হয়েছে। (Ica45f, b/327271923)
TextInclusionStrategy.isInside-এর নাম পরিবর্তন করেisIncludedকরুন।Paragraph/MultiParagraph#getRangeForRect()রিটার্ন টাইপকে নন-নাল করুন। (I51f26)
সমস্যার সমাধান
SelectionContainer-এ সব টেক্সট কনটেক্সচুয়াল মেনুতে "সব বেছে নিন" বিকল্প যোগ করা হয়েছে। (Ib750e, b/240143283)reverseScrolling=true-এর সাহায্যে স্ক্রল করা যায় এমন কন্টেনারের জন্য লম্বা স্ক্রিনশট ক্যাপচার করার সমস্যা সমাধান করা হয়েছে। (I7c59c)- সেই সমস্যার সমাধান করা হয়েছে যেখানে রাজ্যের সীমানার কাছাকাছি পৌঁছালে
AnchoredDraggableState-এরcurrentValueপরিবর্তন হয়ে যেত। (Iea30b, b/333846848)
এক্সটার্নাল কন্ট্রিবিউশন
- এর দায়িত্ব আরও ভালোভাবে বোঝাতে
PrefetchExecutor->PrefetchSchedulerনাম পরিবর্তন করা হয়েছে। (Ib9154) - নেস্টেড
LazyLists-এ (যেমন, নেস্টেডLazyRowsরেন্ডার করে এমনLazyColumn) আইটেম প্রিফেচ করার জন্য সহায়তা যোগ করা হয়েছে। এই পরিবর্তনের ফলে এইসবLazyLists-এর জন্য স্ক্রল করার সময় ফ্রেম ড্রপ কমে যাবে বলে আশা করা যায়। ইমপ্লিমেন্টেশনের ডিফল্ট হল প্রথম ২টি নেস্টেড আইটেম প্রিফেচ করা, তবে এই আচরণ নতুনLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)ওLazyListPrefetchStrategy#onNestedPrefetchAPI-এর মাধ্যমে কন্ট্রোল করা যেতে পারে। (I51952)
ভার্সন 1.7.0-alpha07
১৭ এপ্রিল, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha07 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha07-এ এইসব কমিট রয়েছে।
নতুন ফিচার
TextDefaultsঅবজেক্ট যোগ করা হয়েছে যাতেLinkAnnotationতৈরি করা ও HTML-ট্যাগ করা স্ট্রিং পার্স করার পদ্ধতি রয়েছে যা লিঙ্কেMaterialThemeপ্রয়োগ করে। (I98532, b/139312671)LazyVerticalGridওLazyHorizontalGrid-এ আইটেম দেখা ও অদৃশ্য হয়ে যাওয়ার অ্যানিমেশন সংক্রান্ত সহায়তা যোগ করা হয়েছে। আগে প্লেসমেন্ট (পুনর্বিন্যাস) অ্যানিমেশন কাজ করানোর জন্যModifier.animateItemPlacement()মডিফায়ার যোগ করা যেত। আমরা এই মডিফায়ারটি সরিয়ে দিয়েছি এবংModifier.animateItem()নামের একটি নতুন নন-এক্সপেরিমেন্টাল মডিফায়ার নিয়ে এসেছি যা আপনাকে তিনটি অ্যানিমেশন টাইপেই সহায়তা করতে দেয়: দৃশ্যমান হওয়া (ফেড-ইন), অদৃশ্য হওয়া (ফেড-আউট) এবং রিঅর্ডার করা। (Ib7d12, b/330510929)LazyVerticalStaggeredGridওLazyHorizontalStaggeredGrid-এ আইটেম দেখা ও অদৃশ্য হওয়া সংক্রান্ত অ্যানিমেশন সাপোর্ট যোগ করা হয়েছে। আগে প্লেসমেন্ট (পুনর্বিন্যাস) অ্যানিমেশন কাজ করানোর জন্যModifier.animateItemPlacement()মডিফায়ার যোগ করা যেত। আমরা এই মডিফায়ারটি সরিয়ে দিয়েছি এবংModifier.animateItem()নামের একটি নতুন নন-এক্সপেরিমেন্টাল মডিফায়ার নিয়ে এসেছি যা আপনাকে তিনটি অ্যানিমেশন টাইপেই সহায়তা করতে দেয়: দৃশ্যমান হওয়া (ফেড-ইন), অদৃশ্য হওয়া (ফেড-আউট) এবং রিঅর্ডার করা। (I69bc9, b/330511290)
API-তে পরিবর্তন
ContextMenuColorsএবং এর সাথে যুক্তLocalContextMenuThemeProvidableCompositionLocalযোগ করে। কম্পোজিশন লোকাল প্রদান করে টেক্সট ফিল্ড ও বেছে নেওয়ার মতো টেক্সটের কন্টেক্সট মেনুর রঙ পরিবর্তন করা যেতে পারে। (Ifa154)- সাধারণ স্টাইলিং, হোভার ও ফোকাস করার পাশাপাশি টেক্সট লিঙ্কে প্রেস করা স্ট্যাট স্টাইলিং বিকল্প যোগ করা হয়েছে। (I5f864, b/139312671)
- হাতের লেখা জেসচারের জন্য
ViewConfiguration.HandwritingGestureLineMarginচালু করুন।BasicTextField-এর জন্য হাতের লেখার জেসচার কাজ করে। (Ie6e13, b/325660505) - 1.7 রিলিজের জন্য
DelegatableNode.scrollIntoViewসরিয়ে দেওয়া হয়েছে কারণ এর সাথে সম্পর্কিত API সারফেসের বাকি অংশ স্থিতিশীল করার জন্য আমাদের কাছে সময় ছিল না। এই ফাংশনটি 1.8 ভার্সনে আবার যোগ করা হবে (I6cf61, b/333421581, b/332900232) - Layout কোঅর্ডিনেট কোয়েরি করার সময়, আপনি এখন
excludeDirectManipulationOffsetআর্গুমেন্ট ব্যবহার করে,Placeable.PlacementScope.withDirectManipulationPlacementব্যবহার করে চাইল্ড লেআউট প্লেস করা প্যারেন্ট লেআউট দ্বারা সেট করা অফসেট বাদ দিতে পারেন। একইভাবে, কোনও লেআউট যদি তার চাইল্ডের পজিশন ঘন ঘন পরিবর্তন করে, তাহলে সেটি এখনwithDirectManipulationPlacementব্যবহার করে সেগুলি প্লেস করতে পারে (যেমন, ডিফল্ট হিসেবে প্রয়োগ করা স্ক্রল)। এর ফলেapproachLayoutভিত্তিক অ্যানিমেশন আরও স্বজ্ঞাত হয়ে ওঠে, কারণ এখন অ্যানিমেট করার জন্য কোন অফসেট ব্যবহার করতে হবে এবং কোন অফসেট সরাসরি প্রয়োগ করতে হবে তা আলাদা করে বোঝা যায়। (I60ec7) LazyStaggeredGrid-এর জন্যrequestScrollToItemচালু করা। প্রতিটি পরিমাপ-পাসের জন্য, ক্লায়েন্ট এখনrequestScrollToItemকল করে কীয়ের উপর ভিত্তি করে ইন্ডেক্স বজায় রাখা থেকে অপ্ট-আউট করতে পারে।requestScrollToItemকল না করা পর্যন্ত এটি কোনওভাবেই আগে থেকে থাকা আচরণ পরিবর্তন করে না। (I63983)- Pager-এ
requestScrollToPage-এর ব্যাপারে জানানো। প্রতিটি পরিমাপ-পাসের জন্য, ক্লায়েন্ট এখনrequestScrollToPageকল করে কীয়ের উপর ভিত্তি করে ইন্ডেক্স বজায় রাখা থেকে অপ্ট-আউট করতে পারে।requestScrollToPageকল না করা পর্যন্ত এটি কোনওভাবেই আগে থেকে থাকা আচরণ পরিবর্তন করে না। (Ic4213) LazyGrids-এর জন্যrequestScrollToItemচালু করা হয়েছে। প্রতিটি পরিমাপ-পাসের জন্য, ক্লায়েন্ট এখনrequestScrollToItemকল করে কীয়ের উপর ভিত্তি করে ইন্ডেক্স বজায় রাখা থেকে অপ্ট-আউট করতে পারে।requestScrollToItemকল না করা পর্যন্ত এটি কোনওভাবেই আগে থেকে থাকা আচরণ পরিবর্তন করে না। (I0a7a0)ClickableTextবন্ধ করে দেওয়া হয়েছে হিসেবে চিহ্নিত করা হয়েছে। টেক্সটে লিঙ্ক যোগ করতে, আপনার লিঙ্কের সাথে সম্পর্কিতLinkAnnotationসহ একটিAnnotatedStringতৈরি করুন এবং এইAnnotatedString-কেTextকম্পোজ করার উপযুক্ত (I34d4b, b/323346994)UrlAnnotationবন্ধ করা হয়েছে, এর পরিবর্তেLinkAnnotation.Urlব্যবহার করুন। আপনি যদি মেটেরিয়াল থিমিং ব্যবহার করেন, তাহলে মেটেরিয়াল থিমিং প্রয়োগ করা অ্যানোটেশন তৈরি করতেTextDefaultsঅবজেক্ট ব্যবহার করুন (I8d180, b/323346545)String.parseAsHtml-এর নাম পরিবর্তন করেAnnotatedString.Companion.fromHtmlরাখা হয়েছে (I43dcd)parseAsHtmlপদ্ধতিতে স্টাইলিং আর্গুমেন্ট (linkStyle,focusedLinkStyle,hoveredLinkStyle) এবং লিঙ্ক ইন্টার্যাকশন লিসনার যোগ করা হয়েছে।<a>ট্যাগ সহ HTML-ট্যাগ করা স্ট্রিং পার্স করার সময়, এই পদ্ধতিটি এই ধরনের প্রতিটি ট্যাগের জন্য একটিLinkAnnotation.Urlতৈরি করবে এবং প্রতিটি অ্যানোটেশনে স্টাইলিং অবজেক্ট ও লিঙ্ক ইন্টার্যাকশন লিসনার পাস করবে। (I7c977)LinkAnnotationএখন স্টেট-ভিত্তিক স্টাইলিং আর্গুমেন্ট ও একটিLinkInteractionListenerনেয়। হাইপারলিঙ্ক পেতেAnnotatedString-এ এই অ্যানোটেশন যোগ করুন।focusedStateএবং/অথবাhoveredStateপাস করার মাধ্যমে, লিঙ্ক ফোকাস করা এবং/অথবা মাউস নিয়ে যাওয়া হলে, আপনি সেগুলির ভিজ্যুয়াল কনফিগারেশন নির্ধারণ করতে পারবেন। (I81ce4, b/139312671)- 'বড় স্ক্রিনশট' ফিচারের ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে। (I28648, b/329128246)
LazyColumnএখন দীর্ঘ স্ক্রিনশটে স্টিকি হেডার সঠিকভাবে রেন্ডার করবে। (I8d239, b/329296635)- নতুন
BasicTextField-এর সাথে চালু করা বাকি পরীক্ষামূলক API-এর বেশিরভাগই স্থিতিশীল করা হয়েছে। (I714e2) BasicSecureTextField-এtextObfuscationCharacterপ্যারামিটার যোগ করা হয়েছে যা কন্টেন্ট অস্পষ্ট করার সময় কোন অক্ষর ব্যবহার করতে হবে তা নিয়ন্ত্রণ করে। (I0588b)NestedScrollসোর্স ড্র্যাগ ও ফ্লিংকেUserInputওSideEffectদিয়ে প্রতিস্থাপন করা হচ্ছে, যাতে এই সোর্সগুলির বর্ধিত সংজ্ঞা অন্তর্ভুক্ত করা যায়, যার মধ্যে এখন অ্যানিমেশন (সাইড এফেক্ট) এবং মাউস হুইল ও কীবোর্ড (UserInput) অন্তর্ভুক্ত। (I40579)LocalBringIntoViewSpec-এর সাথে পরিচিত হন, এটি একটি প্ল্যাটফর্ম নির্ভর ফোকাস স্ক্রলিং আচরণ যা স্ক্রল করা যায় এমন মডিফায়ার লেয়ারে প্রয়োগ করা হয়। (I27aa5, b/317453911)TextFieldCharSequenceসরানো হয়েছে।TextFieldBuffer.originalValues-এর পরিবর্তেTextFieldBuffer.originalTextওTextFieldBuffer.originalSelectionব্যবহার করা হয়েছে। (I2c7d6)ImeOptions.hintLocalesআর নাল হতে পারবে না। আপনি খালি লোকেল তালিকা পাস করতে চাইলে,LocaleList.Emptyব্যবহার করুন। (Ic5bc4)getOffsetFractionForPage-এর নাম পরিবর্তন করেgetOffsetDistanceInPagesকরা হয়েছে। (Ia05e2)
সমস্যার সমাধান
InputTransformations-এর সাথেnextযোগ করা হলে, নতুনKeyboardOptions.mergeপদ্ধতি ব্যবহার করে স্বতন্ত্র বিকল্পের মাধ্যমে তাদেরKeyboardOptionsএখন সঠিকভাবে মার্জ করা হয়। (Ie5304, b/295951492)AnchoredDraggableState-এরtargetValueএখন আর পজিশনাল থ্রেশহোল্ড বিবেচনা করে না। এতে এখন ৫০% ইমপ্লিসিট থ্রেশহোল্ড আছে, এর অর্থ হলtargetValueদুটি অ্যাঙ্করের মধ্যবিন্দুতে পরিবর্তিত হয়। (I82c2c)
এক্সটার্নাল কন্ট্রিবিউশন
- ২টি স্ক্রল API-এর নাম পরিবর্তন করা হয়েছে (I56a75)
ভার্সন 1.7.0-alpha06
৩ এপ্রিল, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha06-এ এইসব কমিট রয়েছে।
নতুন ফিচার
LazyColumnওLazyRow-এ আইটেম দেখা ও অদৃশ্য হওয়া সংক্রান্ত অ্যানিমেশন সাপোর্ট যোগ করা হয়েছে। আগে প্লেসমেন্ট (পুনর্বিন্যাস) অ্যানিমেশন কাজ করানোর জন্যModifier.animateItemPlacement()মডিফায়ার যোগ করা যেত। আমরা এই মডিফায়ারটি সরিয়ে দিয়েছি এবংModifier.animateItem()নামের একটি নতুন নন-এক্সপেরিমেন্টাল মডিফায়ার নিয়ে এসেছি যা আপনাকে তিনটি অ্যানিমেশন টাইপেই সহায়তা করতে দেয়: দৃশ্যমান হওয়া (ফেড-ইন), অদৃশ্য হওয়া (ফেড-আউট) এবং রিঅর্ডার করা। (I2d7f7, b/150812265)LazyColumn/LazyRow-এর ক্লায়েন্টরা এখন সাসপেন্ড করা হয়নি এমনLazyListState.requestToScroll-এ কল করে আসন্ন পরিমাপ-পাসের জন্য কী-এর উপর ভিত্তি করে ইন্ডেক্স বজায় রাখা থেকে অপ্ট-আউট করতে পারেন। (I98036, b/209652366)- স্টাইল করা স্ট্রিংয়ের জন্য
parseAsHtmlপদ্ধতি যোগ করা হয়েছে: এটি HTML ট্যাগ দিয়ে চিহ্নিত করা স্ট্রিংকেAnnotatedString-এ কনভার্ট করতে দেয়। মনে রাখবেন, সব ট্যাগ কাজ করে না, যেমন, আপনি এখনও বুলেট তালিকা দেখাতে পারবেন না। (I84d3d) - অফিসিয়াল Android API (
ScrollCaptureCallback) ব্যবহার করে কম্পোজ স্ক্রল কন্টেনারে বড় স্ক্রিনশট নেওয়ার জন্য পরীক্ষামূলক সহায়তা প্রয়োগ করা হয়েছে। এই ফিচারটি পরীক্ষামূলক এবং বর্তমানে সব ক্ষেত্রে সঠিকভাবে কাজ নাও করতে পারে। সেই কারণে, এটি বর্তমানে ডিফল্ট হিসেবে বন্ধ করা আছে। চালু করতে,ComposeFeatureFlag_LongScreenshotsEnabledফ্ল্যাগকে 'সত্য' হিসেবে সেট করুন। 1.7 বিটা ভার্সনের আগে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। (I2b055, b/329296471) GraphicsLayerইনস্ট্যান্সের প্লেসমেন্ট ও রেন্ডারিংয়ে আরও বেশি নমনীয়তা প্রদান করতে নতুনGraphicsLayerAPI নিয়ে আসা হয়েছে এবংGraphicsLayerমডিফায়ার ইনস্ট্যান্স নির্দিষ্ট করার জন্য কম্পোজ করার উপযুক্ত ইমপ্লিমেন্টেশনের সাথে কোঅর্ডিনেট করার প্রয়োজন ছাড়াই ইন্ট্রিন্সিক রেন্ডারিং ফিচার কাজ করে।
API-তে পরিবর্তন
- সব
KeyboardOptionsপ্যারামিটারের ডিফল্ট মান এখন অনির্দিষ্ট।KeyboardOptions.mergeপদ্ধতি যোগ করা হয়েছে। KeyboardOptions.autoCorrect-এর নাম পরিবর্তন করেautoCorrectEnabledকরা হয়েছে এবং এটিকে নাল করা যায়, যেখানে নাল মানে কোনও ভ্যালু নির্দিষ্ট করা হয়নি। (Ia8ba0, b/295951492)outOfBoundsPageCount-এর নাম পরিবর্তন করেbeyondViewportPageCountকরা হয়েছে। (I129c6)fun ClipEntry.getMetadata()পরিবর্তন করেval ClipEntry.clipMetadataকরা হয়েছে। (I50155)TextFieldState.valueAsFlow()সরানো হয়েছে।snapshotFlow { state.text }অথবাsnapshotFlow { TextFieldCharSequence(state.text, state.selection) }ব্যবহার করতে পছন্দ করি (I7d629)InputTransformation.transformInputপ্যারামিটার আবার সাজানো হয়েছে।originalValue: TextFieldCharSequenceসরানো হয়েছে। পরিবর্তে,TextFieldBufferএখন একই নামের সাথে এই মানটি বহন করে। এছাড়াও,valueWithChanges: TextFieldBufferপ্যারামিটার সরিয়ে দেওয়া হয়েছে। ফাংশনেTextFieldBufferএখন হল রিসিভার স্কোপ। (I919cc)- সফ্টওয়্যার কীবোর্ড দ্বারা নেওয়া অ্যাকশন প্রসেস করার জন্য
BasicTextField(state)এবংBasicSecureTextFieldএখনKeyboardActions-এর পরিবর্তেKeyboardActionHandlerব্যবহার করে। (I58dda) - "নকল" টেক্সট ইনপুট ফিল্ডে স্টাইলাস হাতের লেখা কাজ করার জন্য স্টাইলাস হাতের লেখা ডেলিগেশন API. (I9c09c, b/327271923)
KeyboardOptions.shouldShowKeyboardOnFocus-এর নাম পরিবর্তন করেshowKeyboardOnFocusকরা হয়েছে। (Ib4b7a, b/295951492)Modifier.contentReceiverথেকেhintMediaTypesপ্যারামিটার সরিয়ে দেওয়া হয়েছে। ডেভেলপারদের আগেই প্রাপ্তTransferableContent-এর মিডিয়া টাইপ চেক করার জন্য উৎসাহিত করা হয়েছে, কারণ এটি কনফিগার করাhintMediaTypes-এর সাথে মানানসই নাও হতে পারে। (I82f99)BasicSecureTextField-এর প্যারামিটার আবার সাজানো হয়েছে।BasicSecureTextField-এর জন্য উপযুক্ত একই ডিফল্ট রেখে সম্পূর্ণKeyboardOptionsক্লাসের জন্যkeyboardTypeওimeActionপ্যারামিটার সরিয়ে দেওয়া হয়েছে। এছাড়াও,scrollStateপ্যারামিটার সরিয়ে দেওয়া হয়েছে। (Ibbfa9)TextFieldState.text-এর ধরনTextFieldCharSequenceথেকে পরিবর্তন করে শুধুCharSequenceকরা হয়েছে। তাই, বর্তমান নির্বাচন ও কম্পোজিশন ভ্যালু সরাসরি স্টেট অবজেক্ট থেকে পড়ার জন্যTextFieldState.selection: TextRangeওTextFieldState.composition: TextRange?যোগ করা হয়েছে।TextFieldState.forEachTextValueসরানো হয়েছে। (Idb2a2)ClipboardManager.getClipMetadataওClipboardManager.hasClipফাংশন সরিয়ে দেওয়া হয়েছে। বর্তমান ক্লিপ এন্ট্রির মেটাডেটা পড়তেclipEntry.getMetadata()ব্যবহার করুন। এছাড়াও, ক্লিপবোর্ডে কোনও বর্তমান ক্লিপ আছে কিনা তা বোঝার জন্যClipboardManager.getClip-এর ফলাফল নাল বা নয় কিনা তা চেক করুন। (I50498)ClipboardManager.setClipএখন ক্লিপবোর্ড খালি করার জন্য নাল ভ্যালু গ্রহণ করে। (I7d2e9)ReceiveContentListenerএকটি ফাংশন ইন্টারফেসে কনভার্ট করা হয়। এছাড়াও,Modifier.receiveContentওভারলোড যা ল্যাম্বডাতে নেওয়া হয় তা সরিয়ে দেওয়া হয়েছে কারণReceiveContentListenerএখন একটি ফাংশন ইন্টারফেস।Modifier.receiveContent-এর নাম পরিবর্তন করেModifier.contentReceiverকরা হয়েছে। (I1e6af)TransferableContent.consumeEach-এর নাম পরিবর্তন করেTransferableContent.consumeকরা হয়েছে। (I1e462)rememberTextFieldStateএখন একটি স্থিতিশীল API হিসেবে কাজ করে। (I37999)
সমস্যার সমাধান
BasicTextField(state)ভেরিয়েন্ট CJK(কম্পোজিশন ভিত্তিক) কীবোর্ডের সাথে কাজ না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I54425)Modifier.dragAndDropTarget()-এর মাধ্যমেModifier.Nodeআবার ব্যবহার করার সময় নির্দিষ্ট কিছু পরিস্থিতিতে পুরনো ডেটা রেফার করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I05bb1)- সম্প্রতি চুক্তিতে করা পরিবর্তন আগের অবস্থায় ফিরিয়ে আনা হয়েছে, যেখানে
anchoredDragঅপারেশন শেষ হওয়ার পরেAnchoredDraggableState#anchoredDragকল স্ন্যাপ হয়ে যেত। (I95715)
ভার্সন 1.7.0-alpha05
২০ মার্চ, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha05-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- হাইপারলিঙ্ক স্টাইলিংয়ের জন্য পরীক্ষামূলক
LocalTextLinkStyleকম্পোজিশন লোকাল সরিয়ে দেওয়া হয়েছে। (Iebfa7) onLinkClickedআর্গুমেন্ট সহBasicText-এর পরীক্ষামূলক ওভাররাইড সরিয়ে দেওয়া হয়েছে। ভবিষ্যতে হাইপারলিঙ্ক সহায়তার জন্য একটি বিকল্প API প্রকাশ করা হবে। (I107d5)TextFieldStateওTextFieldBuffer-এর অধীনে কোডপয়েন্ট সম্পর্কিত পদ্ধতি ও প্রপার্টি সরিয়ে দেওয়া হয়েছে। এছাড়াও, বাকি বেছে নেওয়া ও কম্পোজিশন সম্পর্কিত API থেকেinCharsপ্রত্যয় সরিয়ে দেওয়া হয়েছে। (Ief7ce)AnchoredDraggable-এরcurrentValueএখন অ্যাঙ্কর পয়েন্টের মধ্যে দিয়ে যাওয়ার সময় আপডেট হবে। আগেরcurrentValueসিম্যান্টিক্স পেতেsettledValueব্যবহার করুন, শুধুমাত্র অ্যাঙ্করে সেটেল করার সময় আপডেট করুন। প্রগ্রেস এখন প্রপার্টির পরিবর্তে ফাংশন হিসেবে দেখানো হয় (এর জন্য শুরুর ও শেষের পয়েন্ট প্রয়োজন)। (Ibe6e8, b/318707189, b/298271489, b/294991954)BasicTextField(state),TextFieldState,InputTransformation,OutputTransformation,TextFieldLineLimits,TextFieldDecoratorভার্সনগুলি স্টেবল ভার্সনে আপগ্রেড করা হয়েছে। (I9582b)InterceptPlatformTextInputচালু করা হয়েছে, এর সাহায্যে লো-লেভেল IME-সম্পর্কিত টেস্ট ও অন্যান্য লো-লেভেল IME ব্যবহারের ক্ষেত্র লেখা যায়।PlatformTextInputTestOverrideবন্ধ করে দেওয়া হয়েছে। (I862ed, b/322680547)restrictedConstraints()-কে দুটি পদ্ধতিতে ভাগ করুন:fitPrioritizingWidth()এবংfitPrioritizingHeight()(I6d7fd)
এক্সটার্নাল কন্ট্রিবিউশন
- লেটেস্ট স্ক্রল অ্যাকশনের জন্য স্ক্রল ডিরেকশন চেক করতে ২টি নতুন API
isLastScrollForward/isLastScrollBackwardযোগ করা হয়েছে, এখনও কোনও স্ক্রল অ্যাকশন না হয়ে থাকলে false রিটার্ন করে। (I63a0e)
ভার্সন 1.7.0-alpha04
৬ মার্চ, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Android U-এর পরের ভার্সনে ডিভাইসে স্টাইলাস দিয়ে হাতের লেখা ফিচার কাজ করে। (I002e4)
TextFields-কে পছন্দসই ভাষা আগে থেকে সেট করার জন্য নির্দিষ্ট লোকেল সহ IME-কে ইঙ্গিত করার ক্ষমতা প্রদান করতেKeyboardOptions-এhintLocalesযোগ করা হয়েছে। (Id18c2)value: StringওonValueChange: () -> Stringপ্যারামিটার নেওয়া এক্সপেরিমেন্টালBasicTextField2ওBasicSecureTextFieldওভারলোড সরিয়ে দেওয়া হয়েছে। (I568b4)BasicTextField2-এর উপর প্রয়োগ করাInputTransformation-এর শব্দার্থকে প্রভাবিত করতে,InputTransformation-এ একটি ঐচ্ছিকapplySemanticsফাংশন যোগ করুন। (I74a2f, b/170648072)- এই CL-এ আমরা
GetScrollViewportLengthসিম্যান্টিক অ্যাকশন যোগ করছি যাতে কম্পোজে স্ক্রল করা হচ্ছে এমন কম্পোনেন্ট সম্পর্কে তথ্য a11y সিস্টেমে পাইপ করা যায়। এই CL, Foundation Scrollable Lists-এ উল্লিখিত প্রপার্টির ব্যবহারও প্রয়োগ করে। (Ic5fa2) BasicTextField2-এর নাম পরিবর্তন করেBasicTextFieldকরা হয়েছে। (Ie5713)FocusRequester.createRefsএখন স্থিতিশীল (I4d92c, b/261436820)DelegatableNode.scrollIntoView()যোগ করা হয়েছে যাতে মডিফায়ার নোড সরাসরিscrollIntoViewঅনুরোধ করতে পারে। (I2b3b7, b/299939840)- কম্পোজিশন লোকাল না পড়েই মডিফায়ার নোডকে বর্তমান Android
Viewপেতে দেওয়ার জন্যDelegatableNode.requireView()যোগ করা হয়েছে। (I40768) - কন্টেক্সচুয়াল ফ্লো রো স্কোপ ও কন্টেক্সচুয়াল ফ্লো কলাম স্কোপের মধ্যে কন্টেক্সচুয়াল লেআউট সংক্রান্ত তথ্য যোগ করা হয়েছে। এর মধ্যে রয়েছে লাইন ইন্ডেক্স, পজিশন এবং নির্দিষ্ট পজিশনে থাকার জন্য সর্বাধিক প্রস্থ ও উচ্চতার সীমাবদ্ধতা। সর্বাধিক প্রস্থ/উচ্চতা অতিক্রম করা আইটেমগুলি ওভারফ্লো সেটিংসের উপর ভিত্তি করে পরবর্তী লাইনে ফ্লো করতে পারে বা বাদ দেওয়া হতে পারে। (Id13f8, b/292114798)
সমস্যার সমাধান
TextField-এরenabledবাreadOnlyঅ্যাট্রিবিউট টগল করলে নির্দিষ্ট কিছু ক্ষেত্রে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (Iae17b)
ভার্সন 1.7.0-alpha03
২১ ফেব্রুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha03 রিলিজ করা হয়েছে। 1.7.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DelegatableNode.requireLayoutCoordinates()-কেModifier.Node-এর বর্তমানLayoutCoordinatesপাওয়ার একটি উপায় হিসেবে চালু করা হয়েছে, এর জন্যonPlacedওভাররাইড করার প্রয়োজন নেই এবং আপনি নিজেই কোনও প্রপার্টিতে কোঅর্ডিনেট স্টোর করতে পারবেন। (Ia8657)DelegatableNode.currentLayoutCoordinates-কেModifier.Node-এর বর্তমানLayoutCoordinatesপাওয়ার একটি উপায় হিসেবে চালু করা হয়েছে, এর জন্যonPlacedওভাররাইড করার প্রয়োজন নেই এবং আপনি নিজেই কোনও প্রপার্টিতে কোঅর্ডিনেট স্টোর করতে পারবেন। (Iaebaa)AnchoredDraggable-এর ব্যবহার করাDraggableAnchors-এ পারফর্ম্যান্স অপ্টিমাইজেশন। (I89cff)androidx.compose.foundation.text2প্যাকেজের অধীনেBasicTextField2ও সম্পর্কিত APIandroidx.compose.foundation.text-এ সরানো হয়েছে। (I9f635)BasicTextField2আরCodepointTransformationপ্যারামিটার গ্রহণ করে না।BasicSecureTextFieldবাOutputTransformationব্যবহার করুন। (Id34ff)- শুধুমাত্র দুটি
AnnotatedStrings-এর অ্যানোটেশন তুলনা করার পদ্ধতি যোগ করা হয়েছে। (I32659) MaxLinesওOverflow-এর সাথে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)
সমস্যার সমাধান
- কার্সর অ্যানিমেশন আর চালু ও বন্ধ অবস্থার মধ্যে ফ্রেমের অনুরোধ করে না। (Ia2253)
KeyboardOptions' deprecated কপি কনস্ট্রাক্টর এখন সব প্রপার্টি সঠিকভাবে কপি করবে। (If12de)
ভার্সন 1.7.0-alpha02
৭ ফেব্রুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha02-এ এইসব কমিট আছে।
API-তে পরিবর্তন
HorizontalPager,VerticalPagerওPagerState-কে স্টেবল ভার্সনে প্রোমোট করা হয়েছে। (I67660, b/316966909)LocalTextLinkStyleকম্পোজিশন লোকাল যোগ করা হয়েছে যা অ্যাপ জুড়ে টেক্সটে লিঙ্কের স্টাইল পরিবর্তন করতে দেয়। আপনি অ্যাপে নিজের থিম ব্যবহার করলে, আপনার থিমিং অনুযায়ী এই কম্পোজিশন লোকাল সেট করতে হবে। Material থিম ব্যবহার করার সময়, ডিফল্ট হিসেবে লিঙ্কের রঙ Material-এর প্রাথমিক রঙ হিসেবে সেট করা হবে। (I7eb10)receiveContentমডিফায়ার চালু করা হয়েছে যা Jetpack Compose-এ রিচ কন্টেন্ট পাওয়ার একটি উপায় ডেভেলপারদের প্রদান করে।- সফ্টওয়্যার কীবোর্ড বা ক্লিপবোর্ড পেস্ট অ্যাকশনের মাধ্যমে প্রদান করা উন্নত কন্টেন্ট গ্রহণ করতে
receiveContent,BasicTextField2-এর সাথে ইন্টিগ্রেট করে। (I81b72) - এই পরিবর্তনের মাধ্যমে, আমরা পেজারে
SnapFlingBehavior-এর পরিবর্তেTargetedFlingBehaviorব্যবহার করছি যাতে অন্যান্য ব্যবহারের ক্ষেত্রে আনলক করা যায় এবং আরও বেশি নমনীয়তা প্রদান করা যায়। (I762ea) - এই পরিবর্তনের মাধ্যমে আমরা Snapping API-কে স্থিতিশীল করছি। এছাড়াও, আমরা কিছু টেস্টিং কোড পরিষ্কার করছি এবং Snapping-এ আরও নমুনা যোগ করছি। (Id8da9)
TargetedFlingBehavior, একটিFlingBehavior-এর সাথে পরিচিত হন যা চলমান অ্যানিমেশনের অবস্থা এবং এর টার্গেট স্ক্রল অফসেট সম্পর্কে তথ্য প্রচার করার অনুমতি দেয়। (I6a207)
সমস্যার সমাধান
BasicTextField2এখন টাইপ করার সময় কার্সরটি স্ক্রল করে সরিয়ে দেওয়া হলে বা ইনপুট দেওয়ার ফলে সেটি স্ক্রিনের বাইরে চলে গেলে, কার্সরটি স্ক্রিনের মধ্যে রাখে। (Ieb856, b/237190748)
এক্সটার্নাল কন্ট্রিবিউশন
- LazyLists-এর প্রিফেচ আচরণ কনফিগার করার জন্য একটি পরীক্ষামূলক API যোগ করে। (I022a4)
ভার্সন 1.7.0-alpha01
২৪ জানুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.7.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.7.0-alpha01-এ এইসব কমিট আছে।
নতুন ফিচার
- নতুন
Indication API,IndicationNodeFactoryযোগ করা হয়েছে। এর ফলে আগের (এখন আর ব্যবহার করা হয় না)rememberUpdatedInstanceAPI-এর তুলনায় আরও ভাল পারফর্ম্যান্সেরIndicationপ্রয়োগ করা যায়। মাইগ্রেশন সংক্রান্ত তথ্যের জন্য, developer.android.com দেখুন। clickable / combinedClickable / selectable / toggleableএখন একটি নালMutableInteractionSourceপ্যারামিটার গ্রহণ করে। নাল হলে এবং প্রদত্তIndicationহল একটিIndicationNodeFactory,Indicationশুধুমাত্র প্রয়োজন হলেই অলসভাবে তৈরি করা যেতে পারে, যা পারফর্ম্যান্স উন্নত করে। আপনি যদিMutableInteractionSourceহোয়েস্ট ও ব্যবহার না করেন, তাহলে নাল পাস করার জন্য সাজেস্ট করা হয়।
API-তে পরিবর্তন
AnchoredDraggable-এDecayAnimationযোগ করা হয়েছে, এই পরিবর্তনের ফলেAnchoredDraggable-এdecayAnimationSpecপ্যারামিটার যোগ করা হয়েছে, এর ফলে কোনও একটি অ্যাঙ্করে সেটেল করার সময় ডে-কে অ্যানিমেশন ব্যবহার করা যাবে। এছাড়াও, প্রতিটি স্পেক ব্যবহারের ক্ষেত্রে সাহায্য করার জন্য, এই পরিবর্তনের মধ্যে বর্তমানanimationSpec-এর নাম পরিবর্তন করেsnapAnimationSpecকরা অন্তর্ভুক্ত।BasicTextField2পরীক্ষামূলক ব্যবহারের জন্য উপলভ্য। এটিBasicTextField-এর সাথে মোটামুটি ফিচার প্যারিটি হতে হবে এবং আচরণ প্রোডাকশন-রেডি হতে হবে। তবে, API এখনও পরীক্ষামূলক পর্যায়ে রয়েছে। স্থিতিশীল হওয়ার আগে, এটির নাম পরিবর্তন করেBasicTextFieldরাখা হবে এবং একই প্যাকেজে সরানো হবে।BasicTextField2-এর জন্যOutputTransformationAPI-এর প্রথম ড্রাফ্ট প্রকাশ করা হয়েছে। এই API পুরনোBasicTextField-এVisualTransformation-এর বেশিরভাগ ব্যবহারিক প্রয়োগকে প্রতিস্থাপন করে। তবে এটি এখনও সম্পূর্ণ হয়নি এবং কিছু জিনিস সঠিকভাবে কাজ করবে না, কিন্তু আপনার ব্যবহারের ক্ষেত্রে API-এর ব্যবহারযোগ্যতা সম্পর্কে কোনও মতামত পেলে আমরা কৃতজ্ঞ থাকব। (aosp/2708848)LinkAnnotationচালু করা হয়েছে যা টেক্সটে লিঙ্ক ও ক্লিক করার উপযুক্ত আইটেম যোগ করতে দেয়। লিঙ্ক করার ফিচার এখনও সম্পূর্ণ হয়নি এবং আরও API পরিবর্তন আসতে চলেছে।receiveContentমডিফায়ার চালু করা হয়েছে যা Jetpack Compose-এ রিচ কন্টেন্ট পাওয়ার একটি উপায় ডেভেলপারদের প্রদান করে।- সফ্টওয়্যার কীবোর্ড থেকে বা ক্লিপবোর্ড থেকে পেস্ট করার মাধ্যমে পাওয়া রিচ কন্টেন্ট গ্রহণ করতে
receiveContentBasicTextField2-এর সাথে ইন্টিগ্রেট করে। KeyboardOptions.shouldShowKeyboardOnFocusআপনাকে ফোকাস করার সময় সফ্টওয়্যার কীবোর্ড অনুরোধ করারBasicTextField-এর ডিফল্ট আচরণ বন্ধ করার অনুমতি দেয়।TextInputServiceএবংLocalTextInputServiceএখন বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে প্ল্যাটফর্ম IME API-এর সাথে সরাসরি ইন্টিগ্রেট করতেPlatformTextInputModifierNodeব্যবহার করুন। (aosp/2862698)Indication#rememberUpdatedInstanceবন্ধ করে দেওয়া হয়েছে। এতে পারফর্ম্যান্সের উপর অনিবার্যভাবে নেতিবাচক প্রভাব পড়ে এবং অন্যান্য অপ্টিমাইজেশন করা যায় না। পরিবর্তে, আপনাকে নতুনIndicationNodeFactoryAPI ব্যবহার করতে হবে।
সমস্যার সমাধান
VisualTransformationপাস করা হলে,BasicTextFieldএখন অফসেট ম্যাপিংয়ের একটি ছোট অংশ আগে থেকেই যাচাই করে নেবে। এটি সাধারণ কোডিং সংক্রান্ত ভুল ধরতে সাহায্য করে যা পরবর্তীকালে পরিমাপ বা ড্র পাসে রিকভার করা যায় না। কম্পোজিশনের সময় থ্রো করার মাধ্যমে, ডেভেলপমেন্টের সময় ডেভেলপারদের এইসব সমস্যা দেখতে পাওয়ার সম্ভাবনা বেশি থাকে, যা প্রোডাকশন ক্র্যাশ এড়াতে সাহায্য করে। (I0fd42)VisualTransformationভুল ইন্ডেক্সের জন্য ভুল ইন্ডেক্স রিটার্ন করলে কোনও সমস্যা হবে না (b/316401857 )
ভার্সন 1.6
ভার্সন 1.6.8
১২ জুন, ২০২৪
androidx.compose.foundation:foundation-*:1.6.8 রিলিজ করা হয়েছে। 1.6.8 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.6.7
১ মে, ২০২৪
androidx.compose.foundation:foundation-*:1.6.7 রিলিজ করা হয়েছে। ভার্সন 1.6.7-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.6
১৭ এপ্রিল, ২০২৪
androidx.compose.foundation:foundation-*:1.6.6 রিলিজ করা হয়েছে। ভার্সন 1.6.6-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
TextField-এরenabledবাreadOnlyঅ্যাট্রিবিউট টগল করলে নির্দিষ্ট কিছু ক্ষেত্রে ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। (Iae17b)
ভার্সন 1.6.5
৩ এপ্রিল, ২০২৪
androidx.compose.foundation:foundation-*:1.6.5 রিলিজ করা হয়েছে। ভার্সন 1.6.5-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- সারি/কলামে সহজে রিপ্রোডিউস করা যায় না এমন সমস্যার ক্ষেত্রে ডিবাগিং লগ যোগ করে: (b/300280216 এবং b/297974033)
ভার্সন 1.6.4
২০ মার্চ, ২০২৪
androidx.compose.foundation:foundation-*:1.6.4 রিলিজ করা হয়েছে। ভার্সন 1.6.4-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- দীর্ঘক্ষণ প্রেস করে টেনে এনে বেছে নেওয়ার জেসচার, যা টেনে আনার প্রথম ফ্রেমে টেক্সটের লেআউটের সীমার বাইরে চলে যায়, তা আর ক্র্যাশ করে না। (Icdf90, b/325307463)
ভার্সন 1.6.3
৬ মার্চ, ২০২৪
androidx.compose.foundation:foundation-*:1.6.3 রিলিজ করা হয়েছে। ভার্সন 1.6.3-এ এইসব কমিট রয়েছে।
ভার্সন 1.6.2
২১ ফেব্রুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.6.2 রিলিজ করা হয়েছে। 1.6.2 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
AnimateContentSizeসঠিকভাবে রিসেট না হওয়া সংক্রান্ত সমস্যার সমাধান করা। (I07051)- কিছু পরিস্থিতিতে
intrinsicHeightটেক্সট অতিরিক্ত ক্যাশে করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (3cd398, b/217910352)
ভার্সন 1.6.1
৭ ফেব্রুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.6.1 রিলিজ করা হয়েছে। 1.6.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- সীমা পেরিয়ে স্ক্রল করলে স্ট্যাগার্ড গ্রিড পরিমাপ সংক্রান্ত সমস্যার সমাধান করা। (bffc39)
- বড় ডাইমেনশন সহ লেআউট চেক করার সুবিধা যোগ করুন। (e74af5)
- স্ট্যাগার্ড গ্রিডের শুরুতে ০-সাইজের আইটেমের প্লেসমেন্ট সংক্রান্ত সমস্যা সমাধান করুন। (785f94)
- onForgotten-এর মতো একই ক্রমে onRelease কলব্যাক কল করুন। (31ce3b)
ভার্সন 1.6.0
২৪ জানুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.6.0 রিলিজ করা হয়েছে। ভার্সন 1.6.0-এ এই কমিটগুলি রয়েছে।
1.5.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
- নতুন মডিফায়ার
Modifier.anchoredDraggableযা আগে থেকে নির্দিষ্ট করা অ্যাঙ্করের মধ্যে ড্র্যাগ ও অ্যানিমেট করার ক্ষমতা আনলক করে। এই মডিফায়ারটিModifier.swipeable-এর পরিবর্তে ব্যবহার করার জন্য তৈরি করা হয়েছে। মাইগ্রেশন গাইড থেকে কীভাবে এটি ব্যবহার করতে হয় এবংModifier.swipeableথেকে মাইগ্রেট করতে হয় তা জানুন। - অ্যাপ ও কম্পোনেন্টের মধ্যে টেনে নিয়ে রাখার ফাংশনালিটি যোগ করা হয়েছে। শুরু করতে
DragAndDropTarget,Modifier.dragAndDropSourceএবং অন্যান্য API দেখুন Modifier.draggable2Dহল নতুন মডিফায়ার যা সহজে 2D ড্র্যাগ করার সুবিধা দেয়। নমুনা দেখুন।- কম্পোজে সারফেস-চালিত কম্পোনেন্ট যোগ করা সহজ করতে
AndroidExternalSurfaceওAndroidEmbeddedExternalSurfaceযোগ করা হয়েছে PagerওsnapFlingBehaviour-এ বিভিন্ন API পরিবর্তন ও উন্নতি- বিভিন্ন ফোকাস, টেক্সট ও ইনসেট API-কে স্টেবল API হিসেবে প্রোমোট করা হয়েছে
ভার্সন 1.6.0-rc01
১০ জানুয়ারি, ২০২৪
androidx.compose.foundation:foundation-*:1.6.0-rc01 রিলিজ করা হয়েছে। 1.6.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DragAndDropTarget()এক্সটেনশন কনস্ট্রাক্টর সরিয়ে দেওয়া হয়েছে।object: DragAndDropTarget {}ব্যবহার করে নতুন ইনস্ট্যান্স তৈরি করুন। (I32318)
ভার্সন 1.6.0-beta03
১৩ ডিসেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-beta03 রিলিজ করা হয়েছে। 1.6.0-beta03 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
- অসীম সীমাবদ্ধতা সহ পরিমাপ করা খুব বড় টেক্সটকে প্রভাবিত করে এমন ক্র্যাশ ঠিক করুন। (I1a7df, b/312294386)
PlatformImeOptionsএখন ইন্টারফেসের পরিবর্তে একটি কনক্রিট ক্লাস। (If40a4)
ভার্সন 1.6.0-beta02
২৯ নভেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-beta02 রিলিজ করা হয়েছে। 1.6.0-beta02 ভার্সনে এই কমিটগুলি রয়েছে।
সমস্যার সমাধান
- শুধুমাত্র রিলেআউট-অনলি স্ক্রল করার পরে
canScrollআপডেট না হওয়া সংক্রান্ত সমস্যার সমাধান। (I60a86) - ছোট স্ক্রল করার পরে
Modifier.animateItemPlacement()ওLookaheadScope-এর জন্য সমাধান। (I3a2b7)
ভার্সন 1.6.0-beta01
১৫ নভেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-beta01 রিলিজ করা হয়েছে। 1.6.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
DragAndDropTargetমডিফায়ার এখন গ্রহণকারীDragAndDropTargetস্পষ্টভাবে নেয় এবং ড্র্যাগ অ্যান্ড ড্রপ সেশনে অপ্ট-ইন করার জন্য ল্যাম্বডা থাকে।DragAndDropModifierNode-এর জন্য এখন দুটি ফ্যাক্টরি ফাংশন আছে। একটি ট্রান্সফার গ্রহণ করার জন্য এবং একটি ডেটা ট্রান্সফার করার জন্য (I69481)maximumFlingVelocity-কে Float হিসেবে দেখানোর জন্য আপডেট করা হয়েছে।maximumFlingVelocityইউনিটি সম্পর্কে আরও স্পষ্ট ধারণা দিতে ডকুমেন্টেশন আপডেট করা হয়েছে। (I8adc7)DragAndDropModifierNodeফ্যাক্টরিতেonDragAndDropStart-এর নাম পরিবর্তন করেacceptDragAndDropTransferকরা হয়েছে।ড্র্যাগ অ্যান্ড ড্রপ সেশন থেকে গ্রহণ করার জন্য
acceptsDragAndDropTransfer-কেdragAndDropTargetModifier-এ যোগ করা হয়েছে। ড্র্যাগ অ্যান্ড ড্রপ সেশনে আগ্রহী হলে, এই ল্যাম্বডা একটি উপযুক্তDragAndDropTargetরিটার্ন করে। ড্র্যাগ ইভেন্ট প্রসেস করার জন্য অন্যান্য ল্যাম্বডাকে এটি দিয়ে প্রতিস্থাপন করা হয়েছে।ড্র্যাগ অ্যান্ড ড্রপ সেশন থেকে ডেটা গ্রহণ করার জন্য একটি
DragAndDropTargetফ্যাক্টরি ফাংশন যোগ করা হয়েছে (Iebf3a)startDragImmediately-এরAnchoredDraggable-এ এক্সপোজ করা হলে, এটি ব্যবহার করার সময় ড্র্যাগিং জেসচার শনাক্ত করার কন্ট্রোল পাওয়া যায়। কোনও টার্গেট অ্যাঙ্করে উইজেট অ্যানিমেট করার সময় এটি সেট করা কাজে লাগে। নমুনা দেখুন। (Ie6d13, b/285139987)Foundation Tooltip API এখন
@ExperimentalFoundationApi(I30b0b)DragAndDropInfoসরিয়ে দেওয়া হয়েছে,DragAndDropModifierNode.dragএখনtransferData, সাজসজ্জার সাইজ ও ড্র্যাগ ডেকোরেশনDrawScopeল্যাম্বডার প্যারামিটার নেয়DragAndDropTarget-এ একটিমাত্র অ্যাবস্ট্রাক্ট পদ্ধতির পরিবর্তে নির্দিষ্ট ড্র্যাগ অ্যান্ড ড্রপ ইভেন্টের জন্য পদ্ধতি আছেDragAndDropModifierNode-এর জন্য ফ্যাক্টরি ফাংশনেonDragAndDropEvent-এর নাম পরিবর্তন করেonDragAndDropStartকরা হয়েছে যাতে এটি আরও ভালভাবে বোঝানো যায় যেDragAndDropTargetশুধুমাত্র প্রদত্ত ড্র্যাগ অ্যান্ড ড্রপ সেশনের জন্যই বৈধDragAndDropEventTypeসরিয়ে দেওয়া হয়েছে (I645b1)PlatformTextInputModifierNode.runTextInputSession-এর নাম পরিবর্তন করেestablishTextInputSessionকরা হয়েছে। (I03cd0)TextSubstitutionদিয়েOriginalTextপরিবর্তন করুন। (Ifa5a8)PlatformTextInputModifierNode.textInputSession-এর নাম পরিবর্তন করেrunTextInputSessionকরা হয়েছে। (Ie9c6b)SubcomposeLayout-এর চিলড্রেন (এবংLazyColumn-এর মতো লেআউট যা এর উপর ভিত্তি করে তৈরি) যা ভবিষ্যতে আবার ব্যবহার করার জন্য রেখে দেওয়া হয়, সেগুলি ডিঅ্যাক্টিভেট করা হয়েছে বলে ধরে নেওয়া হয়। এই ধরনের নোড পরীক্ষা করার জন্য নতুনassertIsDeactivated()টেস্ট API চালু করা হয়েছে। বাকি টেস্ট API ডিফল্ট হিসেবে বন্ধ করা নোড ফিল্টার করে দেবে। (I2ef84, b/187188981)Modifier.magnifier-এরclippingEnabledপ্যারামিটারের নাম পরিবর্তন করেclipকরা হয়েছে।একই ডিফল্ট আচরণ বজায় রেখে
Modifier.magnifier-এরmagnifierCenterপ্যারামিটারকে নাল করা হয়েছে। (I6aa66)Material
SwipeToRevealAPI (কার্ড ও চিপের জন্য) এখন সেইসব স্লট তৈরি করার জন্য ডেটা ক্লাস ভিত্তিক ইনস্ট্যান্সের পরিবর্তে স্লট ভিত্তিক API (Compose-এর সাজেশন অনুযায়ী) ব্যবহার করে। এটি একটি ব্রেকিং পরিবর্তন, নতুন API কীভাবে ব্যবহার করতে হয় তার উদাহরণ দেখতে ডেমো ও স্যাম্পেল কোড দেখুন। (Ia8943)
সমস্যার সমাধান
PageSize.Fixed-এর জন্য equals ও hashcode প্রয়োগ করুন। (Ie3ede, b/300134276)minWidthপরিবর্তন করা হলে এবংminWidthপ্রাথমিক পরিমাপের সীমাবদ্ধতাmaxWidth(Idb19c)-এর থেকে কম হলেBasicTextলেআউট ছোট না হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছেArcLine-এ সুইপ গ্রেডিয়েন্টের জন্য রেন্ডারার সাপোর্ট যোগ করুন। (I4d5bb)- Window Inset পরিবর্তনের সাথে বাইনারি কম্প্যাটিবিলিটি সংক্রান্ত সমস্যার সমাধান করা (Iee695)
- Material3 চিপ/বোতামের জন্য মেটেরিয়াল কোড লেয়ার সরিয়ে দিন কারণ মাইক্রোবেঞ্চমার্ক দেখায় যে এটি ছাড়া পারফর্ম্যান্স আরও ভালো হয়। (I55555)
ভার্সন 1.6.0-alpha08
১৮ অক্টোবর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha08 রিলিজ করা হয়েছে। 1.6.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
Modifier.draggable2Dহল নতুন মডিফায়ার যা সহজে 2D ড্র্যাগ করার সুবিধা দেয়। নমুনা দেখুন (Id95f5, b/214412658)
API-তে পরিবর্তন
Modifier.dragAndDrawSource-এরonDrawDragShadowlambda-র নাম পরিবর্তন করেdrawDragDecorationকরা হয়েছে এবংDragAndDropInfo-এর সাইজ প্যারামিটারের নাম পরিবর্তন করেdragDecorationSizeকরা হয়েছে। (Id0e30, b/303904810)BasicTextField2-এরdecorationBoxপ্যারামিটারের নাম পরিবর্তন করেdecoratorকরা হয়েছে। এর ধরনও পরিবর্তন করে সমতুল্য মজাদার ইন্টারফেসTextFieldDecoratorকরা হয়। (I23c1c)
সমস্যার সমাধান
onValueChangeসংক্রান্ত প্রয়োজনীয়তা সম্পর্কেBasicTextField-এ উন্নত ডকুমেন্টেশন। (I90fc9, b/160257648)
ভার্সন 1.6.0-alpha07
৪ অক্টোবর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha07 রিলিজ করা হয়েছে। 1.6.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- কাস্টম টেক্সট এডিটরের জন্য টেস্ট লেখার
PlatformTextInputMethodTestOverrideচালু করা হয়েছে। (Id159b) GraphicsSurface-এর নাম পরিবর্তন করেAndroidExternalSurfaceকরা হয়েছে (I11680)- নন-লিনিয়ার ফন্ট স্কেলিং বন্ধ করতে
DisableNonLinearFontScalingInComposeঅস্থায়ী ফ্ল্যাগ যোগ করা হয়েছে। পরিষ্কার করার জন্য সময় প্রয়োজন হলে, আপনার পরীক্ষায়DisableNonLinearFontScalingInCompose = trueসেট করুন। Compose 1.6.0-beta01 ভার্সনে এই ফ্ল্যাগ সরিয়ে দেওয়া হবে। (Ic9486) - অ্যালোকেশন এড়িয়ে যাওয়া
ColorListওColorSetসংগ্রহ যোগ করা হয়েছে। (I744bd) - এই পরিবর্তনের ফলে
shortSnapVelocityThresholdসরিয়ে দেওয়া হয়েছে, যাSnapLayoutInfoProvider-এর প্রয়োগের বিবরণ হিসেবে পরিবর্তিত হয়েছে। (I65f6d) - ড্র্যাগ অ্যান্ড ড্রপ সেশন শুরু করার জন্য
dragAndDropSourceমডিফায়ার এবং ড্র্যাগ অ্যান্ড ড্রপ সেশন থেকে পাওয়ার জন্যdragAndDropTargetমডিফায়ার যোগ করে (Ib7828, b/286038936) SnapPositionInLayoutডকুমেন্টেশন ও পজিশন পদ্ধতি আপডেট করুন।SnapPositionInLayout-এ পজিশন পদ্ধতিতে কন্টেন্ট প্যাডিং যোগ করুন। (Id7938, b/300116110)UndoState-এTextFieldStateযোগ করা হয়েছে যা ব্যবহারকারীর করা পরিবর্তনগুলি আগের অবস্থায় ফিরিয়ে আনা/আবার করার সুবিধা প্রদান করে। (Icc024)
সমস্যার সমাধান
- ভেলোসিটি পরিবর্তন করার পরে
basicMarqueeঅ্যানিমেট না হওয়া সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (Id2e77, b/297974036)
ভার্সন 1.6.0-alpha06
২০ সেপ্টেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha06 রিলিজ করা হয়েছে। 1.6.0-alpha06 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
SurfaceView,TextureView: GraphicsSurface()ওEmbeddedGraphicsSurface()-এর জন্য নতুন কম্পোজ করার উপযুক্ত র্যাপার। এটি একটি পরীক্ষামূলক API এবং এতে পরিবর্তন ও সংশোধন করা হতে পারে। (I9ddb2)Modifier.magnifier()এখন একটি স্টেবল API. এর মধ্যে মডিফায়ারে ইনলাইন প্যারামিটারের জন্যMagnifierStyleসরিয়ে দেওয়া অন্তর্ভুক্ত। (I83bec, b/298381260, b/262367109, b/261438887)
API-তে পরিবর্তন
ScrollScope-এupdateCurrentPageওupdateTargetPageচালু করা হয়েছে, এগুলি হলPagerState.scroll-এর মাধ্যমে অ্যানিমেটেড স্ক্রল কাস্টমাইজ করার অনুমতি দেওয়ার জন্য প্রয়োজনীয় শেষ অংশ। (I9cad5, b/267744105, b/243786897)SnapFlingBehaviorথেকে ঘনত্ব সরিয়ে দিন।SnapLayoutInfoProvider-এর সব প্রয়োগে আগে থেকেই ঘনত্ব অ্যাক্সেস করার একটি উপায় আছে, রিসিভার স্কোপ সরিয়ে দেওয়া যেতে পারে, এর ফলেSnapFlingBehaviorওSnapLayoutInfoProvidersদুটিরই প্রয়োগ কম জটিল হবে। (I153c3)- আরও মডিফায়ারকে স্থিতিশীল হিসেবে চিহ্নিত করা হয়েছে। (I56af1, b/298046462)
SnapLayoutInfoProviderথেকেSnapStepSizeসরানো হয়েছে। লেআউট সংক্রান্ত তথ্য ব্যবহার করে গণনা করতে হবে এবং অ্যাপ্রোচ বা স্ন্যাপিং অফসেটের মাধ্যমে প্রদান করতে হবে। (If320c)
আচরণে পরিবর্তন
- আরও ভালভাবে পড়া ও অ্যাক্সেস করার জন্য Compose এখন নন-লিনিয়ার ফন্ট স্কেলিং ব্যবহার করে। সিস্টেম সেটিংসে ফন্ট স্কেল > ১০০% হলে, ছোট টেক্সটের সাইজ স্বাভাবিকভাবে বাড়বে, কিন্তু আগে থেকেই বড় টেক্সটের সাইজ সামান্যই বাড়বে। এছাড়াও, SP-তে নির্দিষ্ট করা লাইন হাইট অটোমেটিক অ্যাডজাস্ট হয়ে যায় যাতে তা ১০০% স্কেলে প্রত্যাশিত হাইটের সাথে সমানুপাতিক থাকে। আরও তথ্যের জন্য ফন্ট স্কেলিং পেশাদার পদ্ধতি দেখুন। (I11518)
সমস্যার সমাধান
- টুলটিপের জন্য
rememberSaveable-এর ব্যবহার সরিয়ে দিন। (Icc131, b/299500338)
ভার্সন 1.6.0-alpha05
৬ সেপ্টেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha05 রিলিজ করা হয়েছে। 1.6.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- বর্তমান
BasicTextFieldAPI-এর মতো,BasicSecureTextField-এর জন্য ওভারলোড যোগ করুন যা অপরিবর্তনীয় ভ্যালু এবং সেই ভ্যালু পরিবর্তন করার জন্য একটি কলব্যাক গ্রহণ করে। (Ia4882) - API 33 ও তার পরের যেকোনও ভার্সনে ফ্লোটিং উইন্ডো এড়িয়ে চলতে চাইলে, কম্পোজ করার উপযুক্ত হিসেবে চিহ্নিত করতে
Modifier.preferKeepClear()যোগ করুন। (Ib51d5, b/297260115) ScrollViewওRecyclerView-এর মতো ভিউ কম্পোনেন্টে ফ্লিং ভেলোসিটিViewConfiguration.ScaledMaximumFlingVelocity-এ সীমাবদ্ধ থাকে। Compose-এ এখনmaximumFlingVelocity-এর নিজস্ব ভার্সন আছে যা এখনDraggable-এ প্রযোজ্য। (Ibf974)- পুরনো হয়ে যাওয়া
PagerএবংPagerStateওভারলোড সরিয়ে দেওয়া হয়েছে। (Iea07e) compose.foundation-এBasicTooltipBoxযোগ করা হয়েছে এবং নতুনPlainTooltipওRichTooltipকম্পোজেবল সহTooltipBoxব্যবহার করতেPlainTooltipBoxওRichTooltipBoxআপডেট করা হয়েছে। (I79e1d)
ভার্সন 1.6.0-alpha04
২৩ আগস্ট, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha04 রিলিজ করা হয়েছে। 1.6.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- সাবকম্পোজিশনের লাইফসাইকেল ম্যানেজ করা ও সেগুলি আবার ব্যবহার করার জন্য
ReusableCompositionইন্টারফেস যোগ করুন। (I812d1, b/252846775) Modifier.focusGroup-কে স্টেবল API হিসেবে প্রোমোট করা হয়েছে। (I7ffa3)- বর্তমান
BasicTextFieldAPI-এর মতো,BasicTextField2-এর জন্য ওভারলোড যোগ করুন যা অপরিবর্তনীয় ভ্যালু এবং সেই ভ্যালু পরিবর্তন করার জন্য একটি কলব্যাক গ্রহণ করে। (I3f2b8) GridItemSpan::currentLineSpanএখন একটি স্টেবল API. (Icc29c)contentDescriptionগ্রহণ করে এমন ক্যানভাস এখন একটি স্টেবল API। (Ib3d29)viewportSize-এScrollStateচালু করা হয়েছে, এটি হলScrollStateব্যবহার করা কম্পোনেন্টেরviewPortসাইজ জানার একটি উপায়, এটি পরিমাপ করার পরে করা হয়। (I8b85a, b/283102682)- Pager-এ প্রিফেচ করার বিষয়টি Views-এর আচরণের সাথে না মেলা সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I93352, b/289088847)
Modifier.consumeWindowInsets(PaddingValues)এখন স্থিতিশীল।Deprecated Modifier.consumedWindowInsetsAPI এখন সরিয়ে দেওয়া হয়েছে। পরিবর্তেModifier.consumeWindowInsetsব্যবহার করুন। (Id72bb)
ভার্সন 1.6.0-alpha03
৯ আগস্ট, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha03 রিলিজ করা হয়েছে। 1.6.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
LazyLayout-এর ওভারলোড যোগ করা হয়েছে, এটিLazyLayoutItemProvider-এর ল্যাম্বডা গ্রহণ করে, আগেকার মতো সাধারণ অবজেক্ট নয়। আগের ওভারলোড বন্ধ করে দেওয়া হয়েছে। (I42a5a)privateImeOptionsকনফিগার করার জন্য সহায়তা যোগ করা হয়েছে (Idb772)
সমস্যার সমাধান
readOnlyসঠিক হলে, কীবোর্ড দেখাচ্ছে এবং এডিট করা যাচ্ছে এমন টেক্সট ফিল্ড সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এছাড়াও, ফোকাস করা অবস্থায়readOnly-এর মান true থেকে false-এ পরিবর্তন করা হলে কীবোর্ড না দেখানোর সমস্যা সমাধান করা হয়েছে। (I34a19, b/246909589)
ভার্সন 1.6.0-alpha02
২৬ জুলাই, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha02 রিলিজ করা হয়েছে। 1.6.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
Pager-এ পরিমাপ পাস করার পরে সংগ্রহ করা তথ্য সহPagerLayoutInfoচালু করা হয়েছে। এছাড়াও,PageInfoচালু করা হয়েছে, এটিPager-এ পরিমাপ করা একটি পৃষ্ঠার তথ্য। (Iad003, b/283098900)- কম্পোজ করার উপযুক্ত আইটেমে অনুমোদিত ইনপুট নির্দিষ্ট করার জন্য অতিরিক্ত অ্যানোটেশন (I51109)
- পরীক্ষায় ফোকাস করার অনুরোধ জানানোর আরও সুবিধাজনক ও খুঁজে পাওয়ার উপযুক্ত উপায় হিসেবে
SemanticsNodeInteraction.requestFocusযোগ করা হয়েছে। (Ie8722) - সম্পূর্ণ নতুন ডিজাইন করা
PlatformTextInput*API. (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardControllerওLocalSoftwareKeyboardControllerআর পরীক্ষামূলক নয়।LocalSoftwareKeyboardControllerএখন একটি উপযুক্তCompositionLocal। (I4c364)Modifier.transformableএখনcanPanপ্যারামিটারে প্যান ডেল্টা প্রদান করে যাতে প্যান করার দিক নির্ধারণ করা যায় এবং সেটি অনুমোদিত হবে নাকি হবে না তা বোঝা যায়। (I692aa, b/266829800)- সুপারক্লাস
AbstractComposeView(Iacd74, b/269479941) এক্সটেন্ড করতে মডিফায়ারconsumeWindowInsetsআপডেট করে
ভার্সন 1.6.0-alpha01
২১ জুন, ২০২৩
androidx.compose.foundation:foundation-*:1.6.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.6.0-alpha01-এ এইসব কমিট আছে।
নতুন ফিচার
- Foundation-এ নতুন
AnchoredDraggableAPI চালু করা হয়েছে। এটি এমন কম্পোনেন্ট তৈরি করতে ব্যবহার করা যেতে পারে যা আলাদা আলাদা স্টেটের মধ্যে ড্র্যাগ করা যায়, যেমন মোডাল বটম শিট। এই API, Material-এরSwipeableAPI-কে প্রতিস্থাপন করে। (I4a2ed)
API-তে পরিবর্তন
- সহায়তা
InputConnection#requestCursorUpdates(I0c69b) - কাস্টম অ্যানিমেশন স্পেসিফিকেশন অনুমোদনের জন্য
scrollAnimationSpecযোগ করা হয়েছে।BringIntoViewCalculatorথেকেBringIntoViewScroller-এ আপডেট করা হয়েছে। (Idb741) ResourceResolutionExceptionটাইপ যোগ করুন যাতে লোড করা যায়নি এমন অ্যাসেট পাথের বিবরণ সহ বিটম্যাপ অ্যাসেট লোড করার চেষ্টা করার সময় থ্রোয়েবল র্যাপ করা যায়। (I19f44, b/230166331, b/278424788)- টেক্সট অনুবাদ করার জন্য শব্দার্থ সংক্রান্ত প্রপার্টি ও অ্যাকশন যোগ করা হয়েছে। (I4a6bc)
BringIntoViewCalculatorAPI চালু করা হয়েছে যাbringIntoViewঅনুরোধের উত্তরেScrollable-এর মতো কম্পোনেন্ট কীভাবে উত্তর দেবে তা কাস্টমাইজ করতে ব্যবহার করা যেতে পারে।BringIntoViewCalculator-এর কোনও ইনস্ট্যান্স ঐচ্ছিকভাবে গ্রহণ করার জন্য স্ক্রল করার উপযুক্ত ওভারলোড পরিবর্তন করা হয়েছে। (Iaf5af)
সমস্যার সমাধান
- আপনি যদি
MutableInteractionSourceতৈরি করার কথা ভুলে গিয়ে কম্পোজিশনে সেটি তৈরি করেন, তাহলে সতর্ক করার জন্য একটি লিন্ট চেক যোগ করা হয়েছে, এটি পরিবর্তনযোগ্য স্টেট /Animatableতৈরি করার জন্য লিন্ট চেকের মতো। (I5daae) - মাউসের মাধ্যমে বেছে নেওয়ার সুবিধা যোগ করা হয়েছে। টাচ-ভিত্তিক বেছে নেওয়ার ক্ষেত্রে, একটি শব্দ যোগ করে বেছে নেওয়ার পরিধি বাড়ানো হবে এবং একটি অক্ষর বাদ দিয়ে বেছে নেওয়ার পরিধি কমানো হবে। (Ic0c6c, b/180639271)
- কাস্টম
FocusTargetতৈরি করতে ব্যবহার করা যায় এমনFocusTargetModifierNodeইন্টারফেস যোগ করা হয়েছে। (I9790e)
ভার্সন 1.5
ভার্সন 1.5.4
১৮ অক্টোবর, ২০২৩
androidx.compose.foundation:foundation-*:1.5.4 রিলিজ করা হয়েছে। 1.5.4 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.5.3
৪ অক্টোবর, ২০২৩
androidx.compose.foundation:foundation-*:1.5.3 রিলিজ করা হয়েছে। এই ভার্সনে কোনও পরিবর্তন করা হয়নি।
ভার্সন 1.5.2
২৭ সেপ্টেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.5.2 রিলিজ করা হয়েছে। ভার্সন 1.5.2-এ এইসব কমিট রয়েছে।
সমস্যার সমাধান
- টেক্সটে থাকা একটি সমস্যার সমাধান করা হয়েছে যার ফলে শব্দার্থ ভুল হলে নির্দিষ্ট কিছু পরিস্থিতিতে ক্র্যাশ হত।
ভার্সন 1.5.1
৬ সেপ্টেম্বর, ২০২৩
androidx.compose.foundation:foundation-*:1.5.1 রিলিজ করা হয়েছে। 1.5.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
readOnlyসঠিক হলে, কীবোর্ড দেখাচ্ছে এবং এডিট করা যাচ্ছে এমন টেক্সট ফিল্ড সংক্রান্ত সমস্যার সমাধান করা হয়েছে। এছাড়াও, ফোকাস করা অবস্থায়readOnly-এর মান true থেকে false-এ পরিবর্তন করা হলে কীবোর্ড না দেখানোর সমস্যা সমাধান করা হয়েছে। (I34a19, b/246909589)
ভার্সন 1.5.0
৯ আগস্ট, ২০২৩
androidx.compose.foundation:foundation-*:1.5.0 রিলিজ করা হয়েছে। 1.5.0 ভার্সনে এইসব কমিট আছে।
1.4.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
Modifier.clickable,Modifier.draggable,Modifier.scrollable, লেআউট মডিফায়ার ও আরও অনেক কিছু সহ অনেক ফাউন্ডেশনাল মডিফায়ারModifier.NodeAPI-তে মাইগ্রেট করা হয়েছে, এর ফলে প্রাথমিক কম্পোজিশনের ওভারহেড কমে গেছে।- পেজারের স্থিতিশীলতা উন্নত করা হয়েছে। অনেক সমস্যার সমাধান করা হয়েছে।
pageCountপ্যারামিটার এখন পেজারের পরিবর্তেPagerState-এ থাকে
ভার্সন 1.5.0-rc01
২৬ জুলাই, ২০২৩
androidx.compose.foundation:foundation-*:1.5.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.5.0-rc01-এ এইসব কমিট আছে।
সমস্যার সমাধান
প্রিমিটিভের জন্য সংশ্লিষ্ট বিশেষ ধরনের
mutableStateOf()কল মাইগ্রেট করার সাজেশন দিতে একটি ঐচ্ছিক পরিদর্শন উপলভ্য। এর লিন্ট আইডি হলAutoboxingStateCreation. আগে, এই পরিদর্শন সব প্রোজেক্টের জন্য ডিফল্ট হিসেবে চালু করা থাকত। Android Studio-এর এডিটরে এবং আপনার প্রজেক্টের লিন্ট আউটপুটে এই সতর্কতা দেখতে, আপনার মডিউলেরbuild.gradleবাbuild.gradle.ktsকনফিগারেশনের মধ্যেwarning "AutoboxingStateCreation"ঘোষণা করে এর গুরুত্ব তথ্যমূলক থেকে সতর্কতা (বা আরও বেশি) হিসেবে পরিবর্তন করুন, যেমন দেখানো হয়েছে (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
ভার্সন 1.5.0-beta03
২৮ জুন, ২০২৩
androidx.compose.foundation:foundation-*:1.5.0-beta03 রিলিজ করা হয়েছে। 1.5.0-beta03 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.5.0-beta02
৭ জুন, ২০২৩
androidx.compose.foundation:foundation-*:1.5.0-beta02 রিলিজ করা হয়েছে। 1.5.0-beta02 ভার্সনে এইসব কমিট আছে।
ভার্সন 1.5.0-beta01
২৪ মে, ২০২৩
androidx.compose.foundation:foundation-*:1.5.0-beta01 রিলিজ করা হয়েছে। 1.5.0-beta01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- হার্ট রেট ও দৈনিক পদক্ষেপের তথ্য দিতে
PlatformDataProviderপ্রয়োগ করুন। পাবলিক API থেকেSensorGatewayইন্টারফেস সরিয়ে দেওয়া হয়েছে। (I55b84)
সমস্যার সমাধান
- লেজি লিস্ট/গ্রিড/ইত্যাদি পরিমাপের সময় অ্যাসাইনমেন্ট কমান (Iaf9e2)
- স্ন্যাপশট প্রয়োগ করার সময় কমে যাওয়া অ্যালোকেশন (I65c09)
- স্প্রিং অ্যানিমেশন থেকে অ্যাসাইনমেন্ট সরানো হয়েছে (Ie9431)
TextLayoutথেকে বরাদ্দ সরিয়ে দেওয়া হয়েছে (I0fd11)- পয়েন্টার ভেলোসিটি ট্র্যাকিংয়ে একাধিক অ্যালোকেশন সরানো হয়েছে (I26bae)
ভার্সন 1.5.0-alpha04
১০ মে, ২০২৩
androidx.compose.foundation:foundation:1.5.0-alpha04 ও androidx.compose.foundation:foundation-layout:1.5.0-alpha04 রিলিজ করা হয়েছে। 1.5.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- সম্পূর্ণ প্যারামিটার তালিকা সহ অপ্টিমাইজ করা
TextStyle.merge(...)যোগ করা হয়েছে। (Iad234, b/246961787) LazyGridState-এর সাথে ব্যবহার করা যায় এমনSnapLayoutInfoProvider-এর ব্যাপারে জানুন। (I92134, b/269237141, b/260914964)- লেজি স্ট্যাগার্ড গ্রিড আইটেম স্কোপের জন্য পরীক্ষামূলক
Modifier.animateItemPlacement()যোগ করা হয়েছে। অটোমেশন পজিশন পরিবর্তন/পুনর্ক্রমিক অ্যানিমেশন পাওয়ার জন্য আপনি আইটেমে এটি প্রয়োগ করতে পারবেন। (I4b62d, b/257034719) GridCells.FixedSizeথেকে স্টেবল ভার্সনে প্রোমোট করুন।FixedSizeএমন একটিLazyGridনির্ধারণ করে যেখানে প্রতিটি সেল ক্রস অ্যাক্সিসে সঠিক সাইজ নেয় এবং বাকি স্পেস ক্রস অ্যাক্সিস অ্যারেঞ্জমেন্টের মাধ্যমে ডিস্ট্রিবিউট করা হয়। (I8542f)- Pager-এর জন্য রিসিভার স্কোপ
PagerScopeএবং প্রদত্ত পৃষ্ঠার অফসেট গণনা করার জন্য ইউটিলিটি ফাংশন চালু করা হয়েছে। (If2577) - স্ন্যাপ ফ্লিং আচরণ তৈরি করার সময়
snapPositionalThreshold-এর ব্যাপারে বলুন। Pager-এ শর্ট স্ন্যাপিংয়ের জন্য পজিশনাল থ্রেশহোল্ড নির্দিষ্ট করতে এই প্যারামিটার ব্যবহার করুন। (If8f7f) SnapLayoutInfoProvider.calculateSnappingOffsetBounds-এর জায়গায়calculateSnappingOffsetব্যবহার করা হয়েছে। এই নতুন পদ্ধতিতে আমরা শুধু পরবর্তী অফসেট স্ন্যাপ করার অনুরোধ করি। বাউন্ডের গণনা প্রয়োগের লেভেলে করা উচিত কারণ কীভাবে স্ন্যাপিং করতে হবে তার উপর নির্ভর করে এটি আলাদা হতে পারে। (I923a4)LazyStaggeredGridAPI-কে স্টেবল ভার্সনে আপগ্রেড করা হয়েছে। (I633a5)Horizontal/VerticalPagerথেকেpageCountসরান। এটি স্টেট তৈরি করার সময় প্রদান করতে হবে।pageCountগ্রহণ করার জন্যPagerStateওrememberPagerStateআপডেট করা হয়েছে। (Ieb52d, b/266965072)Horizontal/VerticalPagerথেকেpageCountসরান। এটি স্টেট তৈরি করার সময় প্রদান করতে হবে।pageCountগ্রহণ করার জন্যPagerStateওrememberPagerStateআপডেট করা হয়েছে। (Ifa3cb, b/266965072)- Pager-এর
SnapFlingBehavior-এshortSnapVelocityThreshold-এর ব্যাপারে জানান। (I7379e, b/275579012) FlowRowScopeওFlowColumnScopeযোগ করে। (I54fe2)
সমস্যার সমাধান
- সীমাবদ্ধতা
minWidthওminHeightথাকলে টেক্সটের শব্দার্থ সংক্রান্ত কল আর ক্র্যাশ করে না। (Ibd072) Dialogকম্পোজ করার মাধ্যমে তৈরি করা হয়নি এমন ডায়ালগের মধ্যে থাকা টেক্সট ফিল্ডের জন্য কীবোর্ড না দেখানোর রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I82551, b/262140644)
ভার্সন 1.5.0-alpha03
১৯ এপ্রিল, ২০২৩
androidx.compose.foundation:foundation:1.5.0-alpha03 ও androidx.compose.foundation:foundation-layout:1.5.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.5.0-alpha03-এ এইসব কমিট রয়েছে।
এই রিলিজে Compose-এর জন্য নতুন টেক্সট রেন্ডারিং স্ট্যাক চালু করা হয়েছে। নতুন স্ট্যাক পারফর্ম্যান্সের জন্য অপ্টিমাইজ করা হয়েছে এবং আপনি কোনও দৃশ্যমান পরিবর্তন দেখতে পাবেন না।
রেন্ডার করা টেক্সটে পরিবর্তন দেখতে পেলে, আচরণের পার্থক্য কনফার্ম করতে NewTextRendering1_5 = false সেট করে আপনি ডিবাগ করতে পারবেন। এটি সেট করলে, আবার কম্পোজ করতে হবে। দুটি ভার্সনের মধ্যে কোনও পার্থক্য দেখতে পেলে, সেটিকে বাগ হিসেবে ফাইল করুন।
1.5 beta01 রিলিজ করার আগে ডিবাগ ফ্ল্যাগ সরিয়ে দেওয়া হবে।(Iada23, b/246960758)
API-তে পরিবর্তন
FlowColumn/FlowRowইনলাইন করুন। (Idab37)
ভার্সন 1.5.0-alpha02
৫ এপ্রিল, ২০২৩
androidx.compose.foundation:foundation:1.5.0-alpha02 ও androidx.compose.foundation:foundation-layout:1.5.0-alpha02 রিলিজ করা হয়েছে। 1.5.0-alpha02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
LazyGrid-এ নির্দিষ্ট সাইজের সেলের জন্য সহায়তা যোগ করা হয়েছে এবং ক্রস অ্যাক্সিস অ্যারেঞ্জমেন্টের মাধ্যমে সেগুলি সাজানো হয়েছে। (I83ed9, b/235121277, b/267942510)LazyStaggeredGrid-এ নির্দিষ্ট সাইজের লেন যোগ করা হয়েছে এবং ক্রস অ্যাক্সিস অ্যারেঞ্জমেন্টের মাধ্যমে সেগুলি সাজানো হয়েছে। (I7d519)AnnotatedString-এর মধ্যে থাকাUrlAnnotationএখনTalkBack-এর মতো অ্যাক্সেসিবিলিটি পরিষেবার মাধ্যমে খোলা যেতে পারে। (If4d82, b/253292081)- টেক্সট ফিল্ডের জন্য
InsertTextAtCursorসিম্যান্টিক্স অ্যাকশন যোগ করা হয়েছে। (I11ed5) - টেক্সট-সম্পর্কিত টেস্ট অ্যাকশন (যেমন,
performTextInput) এখন ফিল্ডে ক্লিক করার পরিবর্তে, সরাসরি ফোকাস করার অনুরোধ করবে, এর জন্য সিম্যান্টিক অ্যাকশন ব্যবহার করা হবে। (I6ed05) FlowRow-এverticalArrangementএবংFlowColumn-এhorizontalArrangementব্যবহার করে ক্রস অ্যাক্সিস স্পেসিং/অ্যারেঞ্জমেন্টের জন্য সহায়তা যোগ করে। এছাড়াও, আমরাFlowRow/FlowColumn-এ টপ-লেভেলverticalAlignmentওhorizontalAlignmentসরিয়ে দিই। এর পরিবর্তে ডেভেলপাররাModifier.alignব্যবহার করতে পারেন। এর ফলেverticalAlignmentওverticalArrangement-এর নামকরণের কনভেনশনের মধ্যে বিভ্রান্তি কমে যায়। (I87b60, b/268365538)
ভার্সন 1.5.0-alpha01
২২ মার্চ, ২০২৩
androidx.compose.foundation:foundation:1.5.0-alpha01 ও androidx.compose.foundation:foundation-layout:1.5.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.5.0-alpha01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নতুন মডিফায়ার সিস্টেম ব্যবহার করার জন্য টেক্সট ও
BasicTextরিফ্যাক্টর করা হয়েছে। এর ফলে অনেক ক্ষেত্রে পারফর্ম্যান্স উল্লেখযোগ্যভাবে উন্নত হয়। কোনও পরিবর্তন দেখা যাবে না। (If1d17, b/246961435) - টেক্সট এডিটর নোডে IME অ্যাকশন ইনভোক করতে
PerformImeActionসিম্যান্টিক্স অ্যাকশন যোগ করা হয়েছে। (Ic606f, b/269633506)
সমস্যার সমাধান
Modifier.hoverable-এর ইন্টার্নাল আপডেট করা হয়েছে।hoverableমডিফায়ার চালু করা থাকলে তবেই তা ইন্সপেক্টরে দেখা যাবে। (I82103)
ভার্সন 1.4
ভার্সন 1.4.3
৩ মে, ২০২৩
androidx.compose.foundation:foundation:1.4.3 ও androidx.compose.foundation:foundation-layout:1.4.3 কোনও পরিবর্তন ছাড়াই রিলিজ করা হয়েছে (শুধুমাত্র ভার্সন আপগ্রেড করা হয়েছে)।
ভার্সন 1.4.2
১৯ এপ্রিল, ২০২৩
androidx.compose.foundation:foundation:1.4.2 ও androidx.compose.foundation:foundation-layout:1.4.2 রিলিজ করা হয়েছে। 1.4.2 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.4.1
৫ এপ্রিল, ২০২৩
androidx.compose.foundation:foundation:1.4.1 ও androidx.compose.foundation:foundation-layout:1.4.1 রিলিজ করা হয়েছে। 1.4.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.4.0
২২ মার্চ, ২০২৩
androidx.compose.foundation:foundation:1.4.0 ও androidx.compose.foundation:foundation-layout:1.4.0 রিলিজ করা হয়েছে। 1.4.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.3.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
TextওTextField-এ ইমোজি কম্প্যাট ইন্টিগ্রেশন যোগ করা হয়েছে, সেই সাথে লোয়ার লেভেল প্যারাগ্রাফও যোগ করা হয়েছে। emojicompat কনফিগার করা থাকলে এটি ডিফল্ট হিসেবে চালু থাকে।EmojiCompat-কেPlatformParagraphStyleব্যবহার করে নির্দিষ্ট টেক্সটে কনফিগার করা যেতে পারে।LazyStaggeredGrid(I28252)-এ সম্পূর্ণ লাইন স্প্যান যোগ করা হয়েছেClickableText(I6938f)-এ এক্সপেরিমেন্টালonHoverযোগ করা হচ্ছেrunComposeUiTestফাংশন ওcreate*ComposeRuleফাংশনের জন্য নতুন পরীক্ষামূলক ওভারলোড চালু করা হয়েছে যেগুলিCoroutineContextপ্যারামিটার গ্রহণ করে। টেস্ট কম্পোজিশন ও কম্পোজিশনে থাকা যেকোনওLaunchedEffectওrememberCoroutineScope()কলের জন্য প্রসঙ্গ ব্যবহার করা হবে। (I10614, b/265177763)FlowRowওFlowColumnএখন@ExperimentalFoundationApiহিসেবে উপলভ্য, যা কম্পোনেন্টগুলির আরও বেশি নমনীয় সারি ও কলাম ভিত্তিক লেআউট প্রদান করে। মূল অ্যাক্সেসে পর্যাপ্ত জায়গা না থাকলে এটি নতুন লাইনে চলে যাবে। (I3a7b2)Modifier.basicMarquee()স্ক্রল করা মারকিউ এফেক্টের মাধ্যমে কন্টেন্ট দেখানোর জন্য পরীক্ষামূলক হিসেবে উপলভ্য। (I2df44, b/139321650)
ভার্সন 1.4.0-rc01
৮ মার্চ, ২০২৩
androidx.compose.foundation:foundation:1.4.0-rc01 ও androidx.compose.foundation:foundation-layout:1.4.0-rc01 রিলিজ করা হয়েছে। 1.4.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
PlatformTextInputAdapterকাস্টম টেক্সট ইনপুট ইমপ্লিমেন্টেশন তৈরি করার জন্য নতুন লো-লেভেল API চালু করা হয়েছে যা সরাসরি প্ল্যাটফর্ম API-এর সাথে যোগাযোগ করে। (I58df4)LazyStaggeredGrid-এ রিভার্স লেআউটের জন্য সহায়তা যোগ করুন। (I3ef4a)
সমস্যার সমাধান
BasicTextField-এরSetTextসিম্যান্টিক অ্যাকশন এখন IME আপডেট ও টেস্টিং ফাংশনের (যেমন,performTextReplacement) মতো একই কোড পাথ ব্যবহার করে টেক্সট বাফার আপডেট করবে।- টেক্সট টেস্টিং ফাংশন
performTextClearance,performTextReplacementওperformTextSelectionএখনSemanticsActionsব্যবহার করে। (I0807d, b/269633168, b/269624358)
ভার্সন 1.4.0-beta02
২২ ফেব্রুয়ারি, ২০২৩
androidx.compose.foundation:foundation:1.4.0-beta02 ও androidx.compose.foundation:foundation-layout:1.4.0-beta02 রিলিজ করা হয়েছে। 1.4.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
Modifier.Node.onReset()নতুন কলব্যাক যোগ করা হয়েছে যা আপনাকে কিছু লোকাল স্টেট রিসেট করতে দেয় যাতেLayoutআবার ব্যবহার করা হলে (যেমন,LazyColumn-এর আইটেম হিসেবে) তা সঠিকভাবে ম্যানেজ করা যায়। ফোকাস করা স্টেট সঠিকভাবে রিসেট করার জন্যFocusTargetModifierNodeঠিক করা হয়েছে। (I65495, b/265201972)- Canvas-এ টেক্সট ড্র করার সময় বিভিন্ন ব্লেন্ডিং অ্যালগরিদম কাজ করানোর জন্য
DrawScope.drawText,Paragraph.paintওMultiParagraph.paintপদ্ধতিতেBlendModeপ্যারামিটার যোগ করা হয়েছে। (I57508) modifierElementOf()API সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে সরাসরিModifierNodeElementথেকে এক্সটেন্ড করুন। (Ie6d21)
সমস্যার সমাধান
- বেছে নেওয়ার হ্যান্ডেল অ্যাডজাস্ট করে আর আংশিক অক্ষর বেছে নেওয়া যাবে না। (Idedd1)
- খালি
TextField-এ (I0427f, b/244185537) ctrl+backspace প্রেস করলে ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করুন
ভার্সন 1.4.0-beta01
৮ ফেব্রুয়ারি, ২০২৩
androidx.compose.foundation:foundation:1.4.0-beta01 ও androidx.compose.foundation:foundation-layout:1.4.0-beta01 রিলিজ করা হয়েছে। 1.4.0-beta01 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- 1.3 ভার্সন থেকে,
TextওTextField-এ ইমোজি কম্প্যাটিবিলিটি ইন্টিগ্রেশন যোগ করা হয়েছে, সেই সাথে লোয়ার লেভেল প্যারাগ্রাফও যোগ করা হয়েছে। emojicompat কনফিগার করা থাকলে এটি ডিফল্ট হিসেবে চালু থাকে। EmojiCompat-কেPlatformParagraphStyleব্যবহার করে নির্দিষ্ট টেক্সটে কনফিগার করা যেতে পারে।
API-তে পরিবর্তন
PinnableContainerAPI-এর সাধারণ প্রয়োগ যোগ করা হয়েছে যা কম্পোজিশন থেকে বেরিয়ে আসা আইটেম ধরে রাখার জন্য সবLazyLayouts-এ ব্যবহার করা হয়, তবে এখনও অ্যাক্টিভ থাকতে হবে। (If45a4)PinnableContainer.PinnedHandle.unpin()-এর নাম পরিবর্তন করেrelease()রাখা হয়েছে (I4667a)
এক্সটার্নাল কন্ট্রিবিউশন
LazyListLayoutInfo,LazyGridLayoutInfoওLazyStaggeredGridItemInfo-এ (I52fad)mainAxisItemSpacingপ্রপার্টি যোগ করা হয়েছে
ভার্সন 1.4.0-alpha05
২৫ জানুয়ারি, ২০২৩
androidx.compose.foundation:foundation:1.4.0-alpha05 ও androidx.compose.foundation:foundation-layout:1.4.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.4.0-alpha05-এ এইসব কমিট রয়েছে।
নতুন ফিচার
LazyStaggeredGrid-এ সম্পূর্ণ লাইন স্প্যান সাপোর্ট যোগ করা হয়েছে (I28252)ClickableText-এ পরীক্ষামূলকonHoverযোগ করা হচ্ছে (I6938f)runComposeUiTestফাংশন ওcreate*ComposeRuleফাংশনের জন্য নতুন পরীক্ষামূলক ওভারলোড চালু করা হয়েছে যেগুলিCoroutineContextপ্যারামিটার গ্রহণ করে। টেস্ট কম্পোজিশন ও কম্পোজিশনে থাকা যেকোনওLaunchedEffectওrememberCoroutineScope()কলের জন্য প্রসঙ্গ ব্যবহার করা হবে। (I10614, b/265177763)
API-তে পরিবর্তন
OverscrollEffect-এর আগে/পরে API-কে একত্রিত করে 'ডেকোরেটর'applyToScrollওapplyToFlingফাংশনে মার্জ করে। নতুন API শেপের মাধ্যমে কীভাবে ওভারস্ক্রল এফেক্ট প্রয়োগ করতে হয় তার উদাহরণ হিসেবে ডকুমেন্টেশনে আপডেট করা স্যাম্পেল দেখুন। (I8a9c4, b/255554340)- ইনলাইন/পুরনো-লুকানো ফাংশনের আরও বেশি ধরন/নালিবিলিটি (I24f91)
TextStyle-এরLineBreakওHyphensAPI এখন স্টেবল ভার্সনে আপগ্রেড করা হয়েছে। (Ic1e1d)
সমস্যার সমাধান
- অ্যানিমেশন বন্ধ করা থাকলেও টেক্সট ফিল্ডে কার্সর ব্লিঙ্ক করা চালিয়ে যাবে। (I95e70, b/265177763)
Modifier.basicMarqueeএখন অ্যানিমেশন সিস্টেম সেটিংসে বন্ধ করা থাকলেও অ্যানিমেট করে। (I23389, b/262298306, b/265177763)
এক্সটার্নাল কন্ট্রিবিউশন
TextInputSessionওTextInputService-এরnotifyFocusedRectপদ্ধতি আর অবচিত করা হয়নি। (I23a04, b/262648050)
ভার্সন 1.4.0-alpha04
১১ জানুয়ারি, ২০২৩
androidx.compose.foundation:foundation:1.4.0-alpha04 ও androidx.compose.foundation:foundation-layout:1.4.0-alpha04 রিলিজ করা হয়েছে। 1.4.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
নতুন ফিচার
FlowRowওFlowColumnএখন@ExperimentalFoundationApiহিসেবে উপলভ্য যা কম্পোনেন্টগুলির আরও বেশি নমনীয় সারি ও কলাম ভিত্তিক লেআউট তৈরি করতে দেয়। প্রধান অ্যাক্সিসে পর্যাপ্ত জায়গা না থাকলে এটি নতুন লাইনে চলে যাবে। (I3a7b2)Modifier.basicMarquee()স্ক্রল করা মারকিউ এফেক্টের মাধ্যমে কন্টেন্ট দেখানোর জন্য পরীক্ষামূলক হিসেবে উপলভ্য। (I2df44, b/139321650)
API-তে পরিবর্তন
FocusRequesterModifier-এর পরিবর্তেFocusRequesterNodeব্যবহার করা হয় (I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589)AndroidFontconstructor সহvariationSettingsএখন একটি স্থিতিশীল API এবং এটি ফন্ট ডেসক্রিপ্টরের নতুন ধরন তৈরি করতে ব্যবহার করা যেতে পারে। (I5adcc, b/261565807)PinnableContainerকম্পোজিশন লোকালের মাধ্যমে লেজি লিস্টের দ্বারা প্রোপাগেট করা API চালু করা হয়েছে যা বর্তমান আইটেম পিন করার অনুমতি দেয়। এর অর্থ হল, স্ক্রল করে ভিউ থেকে সরিয়ে দেওয়া হলেও এই ধরনের আইটেম ডিসপোজ করা হবে না। যেমন,Modifier.focusable()এই মেকানিজমের মাধ্যমে বর্তমান ফোকাস করা আইটেমটি পিন করবে। (Ib8881, b/259274257, b/195049010)bringIntoViewRequesters-এর ক্ষেত্রে স্ক্রল করা যায় এমন আইটেম এবং ফোকাস করা যায় এমন আইটেম যেভাবে উত্তর দেয়, তা আবার লেখা হয়েছে। এর ফলে, এই অপারেশনগুলির জটিলতা আরও ভালোভাবে মডেল করা যায় এবং আরও বেশি এজ কেস ম্যানেজ করা যায়। (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114)- পুরনো-লুকানো ফাংশনের আরও রিটার্ন টাইপ নালিবিলিটি (Ibf7b0)
TextStyle-এ পরীক্ষামূলকTextMotionযোগ করা হয়েছে, যাতে টেক্সটStatic(default)বা অ্যানিমেটেড হিসেবে নির্ধারণ করা যায়। অ্যানিমেশনের মাধ্যমে টেক্সট স্কেল, অনুবাদ বা রোটেট করা হলেTextMotion.Animatedব্যবহার করুন। (I24dd7)- Android প্ল্যাটফর্মের জন্য ফোকাস নেভিগেশন আচরণ সংক্রান্ত সমস্যার সমাধান করতে
TextFieldFocusModifierযোগ করুন (I00303) - অন্যান্য
DrawScopeফাংশনের সাথে ইনলাইন হতেdrawText-এmaxSize: IntSizeআর্গুমেন্টটিsize: Sizeদিয়ে পরিবর্তন করা হয়েছে।sizeডিফল্ট হিসেবেSize.Unspecifiedমানে সেট করা থাকে যা আগের ডিফল্ট আচরণ পরিবর্তন করে না। (Icd27d)
সমস্যার সমাধান
- আরও স্বাভাবিক অনুভূতি পেতে
SnapFlingBehaviour-এ স্ন্যাপিং ফিজিক্সের অ্যাডজাস্টমেন্ট।
পরিচিত সমস্যা
androidx.compose.foundation:1.4.0-alpha03থেকেandroidx.compose.foundation:1.4.0-alpha04-এ আপডেট করার সময়, আপনিjava.lang.NoSuchFieldErrorসমস্যা দেখতে পেতে পারেন। এখানেই প্রথম সমস্যাটি সম্পর্কে অভিযোগ জানানো হয়েছিল। সমস্যার সমাধান জমা দেওয়া হয়েছে এবং পরবর্তী কম্পোজ আপডেটেই এটি উপলভ্য হবে। এর বিকল্প হিসেবে, আপনারandroidx.compose.materialওandroidx.compose.material3লাইব্রেরি লেটেস্ট ভার্সনে(1.1.0-alpha04) আপডেট করুন অথবাandroidx.compose.foundationভার্সন 1.4.0-alpha03-এ ডাউনগ্রেড করুন।
ভার্সন 1.4.0-alpha03
৭ ডিসেম্বর, ২০২২
androidx.compose.foundation:foundation:1.4.0-alpha03 ও androidx.compose.foundation:foundation-layout:1.4.0-alpha03 রিলিজ করা হয়েছে। 1.4.0-alpha03 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- Compose নিয়ম ব্যবহার করে UI টেস্টে,
withFrameNanosকলব্যাকের সময় আবার চালু হওয়া কন্টিনিউয়েশন, সব ফ্রেম কলব্যাক রান করা শেষ না হওয়া পর্যন্ত ডিসপ্যাচ করা হবে না। এটি স্বাভাবিকভাবে চালানোর সময় কম্পোজ করার আচরণের সাথে মেলে। তবে, পুরনো আচরণ নির্ভর পরীক্ষাগুলি কাজ নাও করতে পারে। এটি শুধুমাত্র সেই কোডকে প্রভাবিত করবে যা সরাসরিwithFrameNanosবাwithFrameMillisকল করে এবং সেইসব ফাংশনে পাস করা কলব্যাকের বাইরে লজিক থাকে যা কলব্যাকের মধ্যে সরানোর প্রয়োজন হতে পারে। উদাহরণ হিসেবে এই CL-এ অ্যানিমেশন টেস্টের পরিবর্তন দেখুন। TestMonotonicFrameClockকনস্ট্রাক্টর ও ফ্যাক্টরি ফাংশনে ঐচ্ছিকonPerformTraversals: (Long) -> Unitপ্যারামিটার যোগ করা হয়েছে, যাতেwithFrameNanosকলব্যাকের পরে কিন্তু কলারের কোরাউটিন আবার চালু করার আগে কোড রান করা যায়। (Idb413, b/254115946, b/222093277, b/255802670)- পৃষ্ঠার অ্যাক্সেসিবিলিটি অ্যাকশন সম্পর্কে জানুন:
PageUp,PageDown,PageLeft,PageRight. মনে রাখবেন, এগুলি শুধুমাত্র API 29 থেকে উপলভ্য। (Ida4ab) HorizontalPagerওVerticalPager-এর ব্যাপারে জানুন, এটি হল পেজার পদ্ধতিতে কম্পোজ করার উপযুক্ত আইটেম দেখানোর একটি উপায়। পেজার কন্ট্রোল করার পাশাপাশি পেজারের বর্তমান অবস্থা সম্পর্কে কোয়েরি করার জন্যPagerStateচালু করা হয়েছে।PageSizeচালু করা হয়েছে, এটি হল Pager-এর পৃষ্ঠার সাইজ নিয়ন্ত্রণ করার একটি উপায়, এটি Pager-এর মতো ক্যারোজেল তৈরি করতে ব্যবহার করা যেতে পারে। Pager-এর ফ্লিং আচরণে স্ন্যাপিং কীভাবে কাজ করবে তা নিয়ন্ত্রণ করার একটি উপায়PagerSnapDistanceচালু করা হয়েছে। (I01120)SnapFlingBehavior.performFling-এ ওভারলোড চালু করা হয়েছে যাতে ফ্লিং কোথায় গিয়ে পড়বে তা বোঝা যায়। (I569f6)OverscrollEffect#isEnabledসরানো হয়েছে। এই ফ্ল্যাগ মনে রেখে সেট করার পরিবর্তে, আপনি যেখানে ওভারস্ক্রল দেখাতে চান না (যেমন,ScrollableState#canScrollForward/backwardদুটিই false রিটার্ন করলে) সেখানে ওভারস্ক্রল এফেক্টে ইভেন্ট ডিসপ্যাচ করবেন না। (I1a4b0, b/255554340, b/255557085)ScrollableState-এ যেকোনও দিকে স্ক্রল করার জায়গা আছে কিনা তা কোয়েরি করার জন্যScrollableState#canScrollForwardওScrollableState#canScrollBackwardযোগ করা হয়েছে (সেটি রেঞ্জের সর্বনিম্ন / সর্বোচ্চ পর্যায়ে আছে কিনা)।ScrollableState-এর আগে থেকে থাকা প্রয়োগের সাথে পুরনো ভার্সনের ইন্টারফেস ব্যবহার করার জন্য এটি ডিফল্ট হিসেবে 'true' সেট করা থাকে। স্ক্রল করার জন্য এখনও জায়গা আছে তা ব্যবহারকারীকে বোঝানোর জন্য গ্রাহকরা এটি ব্যবহার করতে পারেন এবংScrollableStates-এ অপ্রয়োজনীয় ডেটা পাঠানো এড়ানোর জন্যও এটি ব্যবহার করা যেতে পারে, কারণ সেগুলিতে স্ক্রল করার কোনও জায়গা নেই। (Idf1a0, b/255557085)- পূর্বপুরুষদের স্ক্রল সংক্রান্ত তথ্য কোয়েরি করার জন্য একটি মডিফায়ার API যোগ করা হয়েছে। (I2ba9d, b/203141462)
Clickable-এ প্রেস ইন্টার্যাকশন সঠিকভাবে ডিলে করতে ব্যবহার করা হয়, যখন জেসচার স্ক্রল ইভেন্ট হয়ে যেতে পারে।Clickables-এর মধ্যে ব্যবহার করা হলে,Scrollable ViewGroupসঠিকভাবে বিলম্বিত না করার সমস্যা সমাধান করা হয়েছে।- জেসচার স্ক্রল ইভেন্ট হয়ে গেলে, প্রেস ডিলে করার জন্য ড্রয়ার ও শিট আপডেট করা হয়েছে।
SnapLayoutInfoProvider-এ অন্যান্য পদ্ধতির সাথে সামঞ্জস্যপূর্ণ হতেsnapStepSize-এর নাম আপডেট করুন। (Ife67c)EmojiCompatথেকেComposeপর্যন্ত যোগ করা হয়েছে (Ibf6f9, b/139326806)consumedWindowInsets()-এর নাম পরিবর্তন করেconsumeWindowInsets()এবংwithConsumedWindowInsets()-এর নাম পরিবর্তন করেonConsumedWindowInsetsChanged()করা হয়েছে এবং মডিফায়ারকে সর্বজনীন করা হয়েছে। (Ie44e1)
সমস্যার সমাধান
Modifier.animateItemPlacement()ও লেজি গ্রিড সংক্রান্ত ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে। কিছু কিছু ক্ষেত্রে এটি ঘটেছিল যখন নতুন আইটেমের সংখ্যা আগেরটির থেকে কম ছিল। (I0bcac, b/253195989)
ভার্সন 1.4.0-alpha02
৯ নভেম্বর, ২০২২
androidx.compose.foundation:foundation:1.4.0-alpha02 ও androidx.compose.foundation:foundation-layout:1.4.0-alpha02 রিলিজ করা হয়েছে। 1.4.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
awaitFirstDownওwaitForUpOrCancellationএখন আরও বেশি নমনীয়তার জন্যPointerEventPassগ্রহণ করে। (I7579a, b/212091796)- Lazy* API থেকে
beyondBoundCountAPI ফিরিয়ে নেওয়া (I12197) - ভিউপোর্ট আইটেমের বাইরে কম্পোজ ও প্লেস করার জন্য লেজি API-তে প্যারামিটার যোগ করা হয়েছে (I69e89, b/172029355)
BasicTextওBasicTextField-এminLinesপ্যারামিটার যোগ করা হয়েছে। এটি লাইনের সংখ্যা (I24294, b/122476634) অনুযায়ী এইসব কম্পোজ করার উপযুক্ত আইটেমের ন্যূনতম উচ্চতা সেট করতে দেয়
ভার্সন 1.4.0-alpha01
২৪ অক্টোবর, ২০২২
androidx.compose.foundation:foundation:1.4.0-alpha01 ও androidx.compose.foundation:foundation-layout:1.4.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.4.0-alpha01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- জেসচার ডিটেক্টরদের জন্য একটি নতুন পদ্ধতি,
awaitEachGesture(), যোগ করা হয়েছে। এটিforEachGesture()-এর মতো কাজ করে, কিন্তু জেসচার ওভার লুপ সম্পূর্ণভাবেAwaitPointerEventScope-এর মধ্যে কাজ করে, তাই ইটারেশনের মধ্যে ইভেন্ট হারিয়ে যায় না। awaitEachGesture()-এর জন্যforEachGesture()বন্ধ করে দেওয়া হয়েছে কারণ এটি জেসচারের মধ্যে ইভেন্ট হারিয়ে যেতে দেয়। (Iffc3f, b/251260206)- অ্যানিমেশনের অগ্রগতি নির্ধারণ করতে এবং অ্যানিমেশন সম্পূর্ণ হওয়ার পরে IME কোথায় থাকবে তা জানতে
WindowInsets.imeAnimationSource এবংWindowInsets.imeAnimationTargetযোগ করা হয়েছে। (I356f1, b/217770337)
ভার্সন 1.3
ভার্সন 1.3.1
৯ নভেম্বর, ২০২২
androidx.compose.foundation:foundation:1.3.1 ও androidx.compose.foundation:foundation-layout:1.3.1 রিলিজ করা হয়েছে। 1.3.1 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
BeyondBoundsLayout-এ পারফর্ম্যান্স সংক্রান্ত সমস্যার সমাধান করুন (aosp/2255266)ContentInViewModifierঅ্যাটাচ করা না থাকলে লেআউট কোঅর্ডিনেট পড়বে না (aosp/2241316)
ভার্সন 1.3.0
২৪ অক্টোবর, ২০২২
androidx.compose.foundation:foundation:1.3.0 ও androidx.compose.foundation:foundation-layout:1.3.0 রিলিজ করা হয়েছে। 1.3.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.2.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
LazyVerticalStaggeredGridওLazyHorizontalStaggeredGrid-এর পরীক্ষামূলক ভার্সন প্রকাশ করা হয়েছে।SnapFlingBehavior,rememberSnapFlingBehaviorএবং অন্যান্য সংশ্লিষ্ট API পরীক্ষামূলক হিসেবে যোগ করা হয়েছে।Modifier.clickable,Modifier.toggleableওModifier.selectableএখন রিমোট কন্ট্রোলের কীবোর্ড বা ডি-প্যাড দিয়ে ক্লিক করলে রিপেল দেখায়।
ভার্সন 1.3.0-rc01
৫ অক্টোবর, ২০২২
androidx.compose.foundation:foundation:1.3.0-rc01 ও androidx.compose.foundation:foundation-layout:1.3.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.3.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
lowVelocityAnimationSpecচালু করা হয়েছে, এটি অ্যাপ্রোচ স্টেপ ব্যবহার করে যখন ক্ষয় হওয়ার জন্য পর্যাপ্ত ফ্লিং ভেলোসিটি থাকে না। (Iaeb27)- টেক্সটে অটোমেটিক হাইফেন যোগ করার সুবিধা দিতে নতুন পরীক্ষামূলক API হাইফেন যোগ করা হয়েছে (Iaa869)
ভার্সন 1.3.0-beta03
২১ সেপ্টেম্বর, ২০২২
androidx.compose.foundation:foundation:1.3.0-beta03 ও androidx.compose.foundation:foundation-layout:1.3.0-beta03 রিলিজ করা হয়েছে। 1.3.0-beta03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- টেক্সটে লাইন ব্রেকিং কাস্টমাইজ করার বিকল্প যোগ করুন। (I86907)
BringIntoViewResponderএখন কোনও অনুরোধ প্রসেস করার সময় সেটির সবচেয়ে আপ-টু-ডেট বাউন্ড পেতে পারবে। (If86a5, b/241591211)- এক্সপেরিমেন্টাল
Staggered Grid-এ (I10b82) আইটেমের মধ্যে স্পেসিংয়ের জন্য সহায়তা যোগ করা - পরীক্ষামূলক
Staggered Grid-এ কন্টেন্ট প্যাডিং যোগ করা হয়েছে (I342ea) - ন্যূনতম প্রস্থ সংক্রান্ত বিধিনিষেধের ক্ষেত্রে কাজ করার জন্য
TextMeasurer.measureপদ্ধতিতেconstraints: Constraints-এর সাথেsize:IntSizeআর্গুমেন্ট পরিবর্তন করা হয়েছে। (I37530, b/242707525) windowInsetsPadding-এর বাইরে ব্যবহারের জন্যWindowInsetsব্যবহার করতেModifier.withConsumedWindowInsets()যোগ করা হয়েছে।WindowInsetsসহজে পরিবর্তন করার অনুমতি দিতেMutableWindowInsetsযোগ করা হয়েছে, এর জন্য আবার কম্পোজ করতে হবে না। (I7fd28, b/237019262, b/243119659)
ভার্সন 1.3.0-beta02
৭ সেপ্টেম্বর, ২০২২
androidx.compose.foundation:foundation:1.3.0-beta02 ও androidx.compose.foundation:foundation-layout:1.3.0-beta02 রিলিজ করা হয়েছে। 1.3.0-beta02 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- পরীক্ষামূলক
StaggeredGrid-এর প্রাথমিক ভার্সন (Ia48be) FocusDirection.InওFocusDirection.Out-এর নাম পরিবর্তন করেFocusDirection.EnterওFocusDirection.Exitকরা হয়েছে (Ia4262, b/183746982)rememberSnapFlingBehaviorওভারলোড চালু করা হয়েছে যাLazyLists-এ স্ন্যাপিং চালু করার একটি দ্রুত উপায় প্রদান করে। (Ifb48a)snapFlingBehaviorফ্যাক্টরিকে একটি কংক্রিটSnapFlingBehaviorক্লাসের সাথে পরিবর্তন করা হয়েছে। API ব্যবহারকারীদের জন্য Dp<->Px কনভার্সন সহজ করতে ডেনসিটির জন্য স্কোপ করাSnapLayoutInfoProviderপদ্ধতি। (I54a11)- ফেরত আসা ভ্যালুর কাঙ্ক্ষিত অপরিবর্তনীয়তা হাইলাইট করে প্লেসেবল আইটেমের তালিকা রিটার্ন করতে
LazyLayoutMeasureScope.measureআপডেট করুন। (I48b7c) SnapLayoutInfoProviderচালু করা হয়েছে যাLazyListStateনিয়েSnapLayoutInfoProvider-এর একটি ইনস্ট্যান্স তৈরি করে যাLazyLists-এর জন্য স্ন্যাপFlingBehaviorচালু করতে ব্যবহার করা যেতে পারে। (I2dd10)
সমস্যার সমাধান
- অন্যান্য await ফাংশনের সাথে ম্যাচ করার জন্য রিফ্যাক্টর করা হয়েছে
AwaitPointerEventScope#awaitLongPressOrCancellation(I646e6)
ভার্সন 1.3.0-beta01
২৪ আগস্ট, ২০২২
androidx.compose.foundation:foundation:1.3.0-beta01 ও androidx.compose.foundation:foundation-layout:1.3.0-beta01 রিলিজ করা হয়েছে। ভার্সন 1.3.0-beta01-এ এইসব কমিট আছে।
API-তে পরিবর্তন
OverscrollEffectথেকেpointerPositionসরানো হয়েছে - যেসব এফেক্ট পয়েন্টারের পজিশন সম্পর্কে সচেতন, সেগুলি পরিবর্তে বর্তমান পয়েন্টারের পজিশন পেতেeffectModifier-এModifier.pointerInput { }ব্যবহার করতে পারে। (I9f606, b/241239306)- আরও জটিল জেসচার শনাক্তকরণের জন্য অতিরিক্ত বিল্ডিং ব্লক হিসেবে
AwaitPointerEventScope#awaitLongPressOrCancellationএক্সপোজ করা হয়েছে (I04374, b/181577176) - Lazy Lists-এ স্ন্যাপিং চালু করতে
lazyListSnapLayoutInfoProviderযোগ করা হয়েছে। (I3ecdf) SnapFlingBehaviorচালু করা হয়েছে, এটি একটি ফ্লিং আচরণ যা তালিকা স্ন্যাপ করার সুবিধা দেয়। আপনার স্ন্যাপিং লেআউট সম্পর্কিত তথ্য সহSnapLayoutInfoProvider-এর একটি উদাহরণ দিন। (Ie754c)
ভার্সন 1.3.0-alpha03
১০ আগস্ট, ২০২২
androidx.compose.foundation:foundation:1.3.0-alpha03 ও androidx.compose.foundation:foundation-layout:1.3.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.3.0-alpha03-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- রিসোর্স ফন্ট এখন ফন্ট ভেরিয়েশন সেটিংস (API 26+) সেট করা যায়। (I900dd, b/143703328)
DeviceFontFamilyNameFont-এ ভেরিয়েবল ফন্ট কাজ করে (Ic1279, b/143703328)PlatformTextStyleওLineHeightStyleথেকে পরীক্ষামূলক অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। (I64bef)VisualTransformation-এর দেওয়াOffsetMappingভুল ইন্ডেক্স রিটার্ন করলে, টেক্সট ফিল্ড এখন আরও বিস্তারিত ব্যতিক্রম দেখাবে। (Ie73f9, b/229378536)- লেজি লেআউটের মধ্যে আইটেম প্রদানকারী লজিক শেয়ার করার জন্য পরীক্ষামূলক API নিয়ে আসা। (Ic891c)
ScrollableDefaults.reverseDirection()আর পরীক্ষামূলক পর্যায়ে নেই। (Iba646)SemanticsModifier.idবাতিল করা হয়েছে এবং এর পরিবর্তেLayoutInfo.semanticsId-এ সিম্যান্টিক্স আইডি সরানো হয়েছে। (Iac808, b/203559524)checkScrollableContainerConstraints()আর পরীক্ষামূলক পর্যায়ে নেই। (I2c290)Modifier.clipScrollableContainer()আর পরীক্ষামূলক পর্যায়ে নেই। (Ia2b44)TextInputService.show|hideSoftwareKeyboardশীঘ্রই বন্ধ করুন। অ্যাপ কোডেSoftwareKeyboardControllerএবং IME-ম্যানেজমেন্ট কোডেTextInputSessionব্যবহার করুন। (I14e4c, b/183448615)
ভার্সন 1.3.0-alpha02
২৭ জুলাই, ২০২২
androidx.compose.foundation:foundation:1.3.0-alpha02 ও androidx.compose.foundation:foundation-layout:1.3.0-alpha02 রিলিজ করা হয়েছে। 1.3.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
DrawScope-এdrawTextএক্সটেনশন ফাংশন যোগ করা হয়েছে যাতেDrawScope-এর মতোCanvasওdrawBehind-এ কাজ করে এমন কম্পোজ করার উপযুক্ত আইটেম ও মডিফায়ারে একাধিক স্টাইলের টেক্সট ড্র করার একটি উপায় প্রদান করা যায়। (I16a62, b/190787898)
সমস্যার সমাধান
- ফোকাস করা অবস্থায় কোনও টেক্সট ফিল্ড বন্ধ করা হলে, সফট কীবোর্ড এখন লুকানো থাকবে। (I6e3e4, b/237308379)
- Velocity Tracker-এ
InputEventChangeইভেন্ট যোগ করার সময় আমরা এখন পজিশনের পরিবর্তে ডেল্টা বিবেচনা করব, এর ফলে টার্গেট এলিমেন্ট সরে গেলেও (Icea9d, b/216582726, b/223440806, b/227709803) সব ক্ষেত্রে ভেলোসিটি সঠিকভাবে গণনা করা যাবে - কোনও স্ক্রল করার উপযুক্ত আইটেমে ফোকাস করা চাইল্ড থাকলে, সেটির সাইজ কমে গেলেও ফোকাস করা চাইল্ডকে ভিউতে রাখার জন্য এটি এখন সঠিকভাবে স্ক্রল করবে, এমনকি সাইজ অ্যানিমেট করা হলেও এটি করবে। (I80867, b/230756508, b/220119990)
- সিলেকশন অ্যাক্টিভ থাকাকালীন
TextFieldমুছে দিয়ে আবার পূরণ করার সময় ক্র্যাশ হওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I1235b, b/208655565, b/214253689)
ভার্সন 1.3.0-alpha01
২৯ জুন, ২০২২
androidx.compose.foundation:foundation:1.3.0-alpha01 ও androidx.compose.foundation:foundation-layout:1.3.0-alpha01 রিলিজ করা হয়েছে। 1.3.0-alpha01 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
UrlAnnotationঅ্যানোটেশন টাইপ এবংAnnotatedString-এTalkBackলিঙ্ক সংক্রান্ত সহায়তা প্রদান করার জন্য সংশ্লিষ্ট পদ্ধতি চালু করা হয়েছে। (I1c754, b/231495122)
সমস্যার সমাধান
- কার্সর টাইমার রিস্টার্ট না করেই
BasicTextFieldcursorBrushএখন অ্যানিমেট করা যেতে পারে। (I812e6, b/236383522)
ভার্সন 1.2
ভার্সন 1.2.1
১০ আগস্ট, ২০২২
androidx.compose.foundation:foundation:1.2.1 ও androidx.compose.foundation:foundation-layout:1.2.1 রিলিজ করা হয়েছে। 1.2.1 ভার্সনে এইসব কমিট রয়েছে।
ভার্সন 1.2.0
২৭ জুলাই, ২০২২
androidx.compose.foundation:foundation:1.2.0 ও androidx.compose.foundation:foundation-layout:1.2.0 রিলিজ করা হয়েছে। 1.2.0 ভার্সনে এই কমিটগুলি রয়েছে।
1.1.0 ভার্সনের পর থেকে গুরুত্বপূর্ণ পরিবর্তন
LazyVerticalGridওLazyHorizontalGridএখন স্থিতিশীল।- আপনি এখন লেজি তালিকা ও গ্রিডে আইটেমের জন্য কন্টেন্টের ধরন নির্দিষ্ট করতে পারবেন। এর ফলে কম্পোনেন্টগুলি আরও দক্ষতার সাথে এলিমেন্টগুলি আবার ব্যবহার করতে পারবে।
- লেজি লিস্ট ও গ্রিডে এখন
userScrollEnabledপ্যারামিটার আছে যা ব্যবহারকারীর জেসচারের মাধ্যমে স্ক্রল করার সুবিধা বন্ধ করে দেয়। LazyLayoutনামের একটি নতুন পরীক্ষামূলক API যোগ করা হয়েছে। এটি হল সেই API যা আমরা ইন্টার্নালি লেজি তালিকা ও গ্রিডকে পাওয়ার করার জন্য ব্যবহার করি।OverscrollEffectAPI পরীক্ষামূলক হিসেবে চালু করা হয়েছে। আপনি কাস্টম স্ক্রল করা যায় এমন কন্টেনারে স্ট্যান্ডার্ড প্ল্যাটফর্মের একটি যোগ করার পাশাপাশি কাস্টম ওভারস্ক্রল এফেক্টও নির্ধারণ করতে পারবেন।- নেস্টেড স্ক্রলিং ইন্টারঅপারেবিলিটি API ভিউ ও কম্পোজ স্ক্রলিং অ্যাক্টরদের মধ্যে ইন্টারঅপারেবিলিটি নিশ্চিত করতে চালু করা হয়েছে।
- সব স্ক্রলিং কন্টেনারে মাউস ও ট্র্যাকপ্যাড স্ক্রলিং যোগ করা হয়েছে।
ভার্সন 1.2.0-rc03
২৯ জুন, ২০২২
androidx.compose.foundation:foundation:1.2.0-rc03 ও androidx.compose.foundation:foundation-layout:1.2.0-rc03 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc03-এ এইসব কমিট রয়েছে।
- 1.2.0-rc02 ভার্সনের পর থেকে কোনও পরিবর্তন করা হয়নি।
ভার্সন 1.2.0-rc02
২২ জুন, ২০২২
androidx.compose.foundation:foundation:1.2.0-rc02 ও androidx.compose.foundation:foundation-layout:1.2.0-rc02 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc02-এ এইসব কমিট রয়েছে।
ভার্সন 1.2.0-rc01
১৫ জুন, ২০২২
androidx.compose.foundation:foundation:1.2.0-rc01 ও androidx.compose.foundation:foundation-layout:1.2.0-rc01 রিলিজ করা হয়েছে। ভার্সন 1.2.0-rc01-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
Modifier.scrollableওভারলোড সহ কাস্টম ওভারস্ক্রল এফেক্টের অনুমতি দেওয়ার জন্য একটি পরীক্ষামূলকOverscrollEffectচালু করা হয়েছে যা এটি গ্রহণ করে।- পরীক্ষামূলক
LocalOverScrollConfiguration-কেfoundation.gestureথেকে সরিয়ে ফাউন্ডেশন প্যাকেজে যোগ করা হয়েছে এবং এর নাম পরিবর্তন করেLocalOverscrollConfigurationরাখা হয়েছে (If19fb, b/204650733) - Compose লাইব্রেরির ইন্টারফেস এখন jdk8 ডিফল্ট ইন্টারফেস পদ্ধতি ব্যবহার করে তৈরি করা হয় (I5bcf1)
- পরীক্ষামূলক API
checkScrollableContainerConstraints()চালু করা হয়েছে যা চেক করে দেখে যে আমরা স্ক্রল করা যায় এমন কন্টেনার নেস্ট করি না।LazyLayout-এর মাধ্যমে নিজের স্ক্রল করা যায় এমন লেজি লেআউট তৈরি করার সময় আপনি এটি ব্যবহার করতে পারবেন। (Id6fab, b/233352497) androidx.compose.foundation.lazyপ্যাকেজ থেকে বাতিল করাLazyVerticalGridসরানো হয়েছে। নতুন স্টেবল APIandroidx.compose.foundation.lazy.grid-এ (I73c76, b/225192009) আছে
ভার্সন 1.2.0-beta03
১ জুন, ২০২২
androidx.compose.foundation:foundation:1.2.0-beta03 ও androidx.compose.foundation:foundation-layout:1.2.0-beta03 রিলিজ করা হয়েছে। 1.2.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- নতুন পরীক্ষামূলক
IntervalListওMutableIntervalListযোগ করা হয়েছে। এটি একাধিক ইন্টারভ্যালের মাধ্যমে কিছু ভ্যালুর তালিকা দেখানোর অনুমতি দেয়।LazyColumn-এর মতো আপনার নিজস্ব dsl তৈরি করতে চাইলে এটি কাজে লাগবে, যেখানে একাধিক আইটেম/আইটেম কলের মাধ্যমে তালিকা আইটেমকে ডিফাইন করা যায়। (I2d05e, b/228580728)
সমস্যার সমাধান
WindowInsets.ime-এর ডকুমেন্টেশনে এটি স্পষ্ট করে বলা হয়েছে যেimeইনসেট API 23-এর মতো পুরনো ভার্সনেও রিপোর্ট করা হয়, তবে 30+ ভার্সনে শুধুমাত্র অ্যানিমেটেড ইনসেট রিপোর্ট করা হয়। (Ia7fc0, b/230756508)- কার্সর টেক্সট ফিল্ডের শেষে থাকলে, 'ফরোয়ার্ড ডিলিট' কী প্রেস করলে আর ক্র্যাশ হবে না।
DeleteSurroundingTextCommandওDeleteSurroundingTextInCodePointsCommand-এর কনস্ট্রাক্টর আর্গুমেন্ট এখন নেগেটিভ নয় এমন পূর্ণসংখ্যা হতে হবে। (Ica8e6, b/199919707)
ভার্সন 1.2.0-beta02
১৮ মে, ২০২২
androidx.compose.foundation:foundation:1.2.0-beta02 ও androidx.compose.foundation:foundation-layout:1.2.0-beta02 রিলিজ করা হয়েছে। 1.2.0-beta02 ভার্সনে এইসব কমিট আছে।
- ডাউনলোড করা যায় এমন ফন্ট রেজোলিউশন যা টেক্সটের লেআউট সাইজ পরিবর্তন করে না বা
TextFieldআগে রিড্র করা হত না, এর ফলে পুরনো ফন্ট ডিসপ্লে করা হত। এই বাগফিক্স নিশ্চিত করে যে টেক্সট লেআউট সবসময় রিড্র (b/229727404) ট্রিগার করে। (I1d49e, b/229727404)
ভার্সন 1.2.0-beta01
১১ মে, ২০২২
androidx.compose.foundation:foundation:1.2.0-beta01 ও androidx.compose.foundation:foundation-layout:1.2.0-beta01 রিলিজ করা হয়েছে। 1.2.0-beta01 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- এটি হল 1.2-এর প্রথম বিটা রিলিজ!
API-তে পরিবর্তন
- পরীক্ষামূলক
BeyondBoundsIntervalযোগ করা হয়েছে যা দৃশ্যমান সীমার বাইরে আইটেম লেআউট করার সময়LazyList-এর কাস্টম প্রয়োগের মাধ্যমে ব্যবহার করা যেতে পারে (Ifabfb, b/184670295) LineHeightBehavior-এর নাম পরিবর্তন করেLineHeightStyleকরা হয়েছেLineVerticalAlignment-এর নাম পরিবর্তন করেLineHeightStyle.Alignmentকরা হয়েছেLineHeightTrim-এর নাম পরিবর্তন করেLineHeightStyle.Trimকরা হয়েছেLineHeightStyleথেকে ডিফল্ট কনস্ট্রাক্টর ভ্যালু সরিয়ে দেওয়া হয়েছে (I582bf, b/181155707)LazyLayoutItemProviderইন্টারফেসের ঐচ্ছিক মেম্বারদের জন্য ডিফল্ট ভ্যালু যোগ করা হয়েছে। (Iba8a0)LazyLayoutItemProviderapi-তে ফ্যাক্টরি ইন্ডেক্স অনুযায়ী কম্পোজ করা যায় এমন ল্যাম্বডা রিটার্ন করার পরিবর্তে, এখন আমাদের কাছে ইন্ডেক্স গ্রহণকারী আরও সহজ কম্পোজ করা যায় এমন ফাংশন আইটেম আছে। (Id2196)- LazyLayoutItemsProvider-এর নাম পরিবর্তন করে LazyLayoutItemProvider করা হয়েছে (I0638c)
LazyLayoutItemsProvider.itemsCount-এর নাম পরিবর্তন করেitemCount(Id409c) করা হয়েছে- গ্রেডিয়েন্ট কালারিংয়ের মাধ্যমে টেক্সট আঁকার একটি উপায় প্রদান করতে
TextStyleও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)পরীক্ষামূলক
imeNestedScroll()মডিফায়ার যোগ করা হয়েছে যাতে ডেভেলপাররা স্ক্রল করার মাধ্যমে IME কন্ট্রোল করতে পারেন। (I60759)
সমস্যার সমাধান
- ফোকাস করা অবস্থায় কম্পোজিশন থেকে সরিয়ে দেওয়া হলে টেক্সট ফিল্ড কীবোর্ড লুকাবে না, এই রিগ্রেশন সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (I7a410, b/230536793, b/225541817)
- উচ্চতা সীমিত হলে এবং সব টেক্সট লাইন না ফিট করলে এলিপসিস কাজ করে (Ie528c, b/168720622)
BringIntoViewRequester.bringIntoViewএখন থেকে সবসময় সাসপেন্ড করা হবে যতক্ষণ না অনুরোধটি সম্পূর্ণ হয় অথবা নতুন, ওভারল্যাপ না করা অনুরোধের মাধ্যমে বাধা পায়। ওভারল্যাপ করা অনুরোধগুলি সারিবদ্ধ করা হবে। (I43e7f, b/216790855)- সম্পূর্ণভাবে ওভারল্যাপ করা আয়তক্ষেত্রের জন্য কনকারেন্ট
BringIntoViewRequester.bringIntoViewকল এখন শুধুমাত্র বড় আয়তক্ষেত্রের অনুরোধ মেনে চলবে। (I34be7, b/216790855, b/184760918) - ডিফল্ট
includeFontPaddingচালু করা হয়েছে।TextStyle.platformTextStyleঅ্যাট্রিবিউট ব্যবহার করেincludeFontPaddingবন্ধ করা সম্ভব। আমরা অদূর ভবিষ্যতে ডিফল্ট আচরণ পরিবর্তন করব, তবে সেই সময় পর্যন্ত এটি আমাদের লাইন হাইট সংক্রান্ত উন্নতি (aosp/2058653) আরও ভালোভাবে ইন্টিগ্রেট করতে এবংTextFieldক্লিপিং সংক্রান্ত সমস্যা সমাধান করতে সাহায্য করবে। (I01423, b/171394808) Modifier.bringIntoViewRequesterআরonGloballyPositionedব্যবহার করে না। (I630f5)
এক্সটার্নাল কন্ট্রিবিউশন
- উল্লম্বভাবে স্ক্রল করলে
MouseInjectionScope.scroll(delta = someDelta)এখন Android-এ উল্টে যায় (someDelta পজিটিভ হলে, এটি নিচের দিকে স্ক্রল করবে) (Ifb697, b/224992993)
ভার্সন 1.2.0-alpha08
২০ এপ্রিল, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha08 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha08 রিলিজ করা হয়েছে। 1.2.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
FontFamily.SansSerifব্যবহার করার সময় Android-এ সিস্টেম ফন্টের জন্য উপলভ্য সবকটি ওজন দেখান। এটি API 21-28-এ ইন্টার্নালি sans-serif-medium-এর মতো ফলব্যাক ফন্টের নাম ব্যবহার করবে। এটি একটি আচরণগত পরিবর্তন কারণ এর আগে API 21-28-এ শুধুমাত্র 400 এবং 700 ওয়েট কাজ করত। (I380fe, b/156048036, b/226441992)- Paragraph ও MultiParagraph এখন Constraints প্যারামিটার গ্রহণ করছে।
Constraints.maxHeightপাস করা বর্তমানে কোনও অপারেশন নয়, তবে এটি ভবিষ্যতে কিছু গণনা করার অনুমতি দেবে, যেমন উচ্চতার উপর ভিত্তি করে এলিipsizing। (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()এখন কাস্টম MutableSet-এর মতো ক্লাস গ্রহণ করে যা এতে নতুন আইটেম যোগ করার অনুমতি দেয় না। (Icd314)PointerInputChange-এ আংশিক কনজাম্পশন (নিচে অথবা পজিশন) বন্ধ করা হয়েছে। পরিবর্তন সম্পূর্ণভাবে প্রয়োগ করতে আপনিconsume()ব্যবহার করতে পারেন। অন্য কেউ আগে পরিবর্তনটি ব্যবহার করেছেন কিনা তা নির্ধারণ করতে আপনিisConsumedব্যবহার করতে পারেন।PointerInputChange::copy()এখন সবসময় একটি অগভীর কপি তৈরি করে। এর অর্থ হল,PointerInputChange-এর একটি কপি ব্যবহার করা হয়ে গেলে, কপিগুলি ব্যবহার করা হয়ে যাবে। আপনি আনবাউন্ডPointerInputChangeতৈরি করতে চাইলে, পরিবর্তে কনস্ট্রাক্টর ব্যবহার করুন। (Ie6be4, b/225669674)- নতুন পরীক্ষামূলক
LazyLayoutAPI চালু করা হয়েছে। এটি আপনাকেLazyVerticalGrid-এরLazyColumn-এর মতো নিজস্ব কম্পোনেন্ট তৈরি করতে দেয়। মনে রাখবেন, API এখনও প্রাথমিক পর্যায়ে রয়েছে এবং ভবিষ্যতে রিলিজের ক্ষেত্রে এটি পরিবর্তন করা হতে পারে। (Iba2bc, b/166591700) AndroidFontএখন কনস্ট্রাক্টর প্যারামিটার হিসেবেtypefaceLoaderনেয়। (I2c971)WindowInsetsকম্প্যানিয়ন এখন দৃশ্যমানতা (সেটি স্ক্রিনে আছে কিনা, উইন্ডোর সাথে ইন্টারসেক্ট করছে কিনা তা নির্বিশেষে) এবং ডিভাইসে উপলভ্য থাকলে, কিন্তু বর্তমানে অ্যাক্টিভ না থাকলে, তার সম্ভাব্য সাইজ প্রকাশ করে। (I65182, b/217770337)
ভার্সন 1.2.0-alpha07
৬ এপ্রিল, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha07 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha07 রিলিজ করা হয়েছে। 1.2.0-alpha07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- এমন
PinnableParentAPI যোগ করা হয়েছে যা লেজি লেআউটের চিলড্রেনকে বর্তমানে কম্পোজ করা আইটেম ডিসপোজ করা থেকে আটকায় (Ibbdd0, b/184670295) LazyListLayoutInfoওLazyGridLayoutInfo-এ এখনbeforeContentPaddingওafterContentPaddingফিল্ড আছে (I3b628, b/200920410)- IME-তে দশমিক বিভাজক অন্তর্ভুক্ত করার জন্য
Keyboard.Number-এর বিকল্প হিসেবেKeyboardType.Decimalযোগ করা হয়েছে। (Iec4c8, b/209835363) - ফন্ট ফলব্যাক চেনের সময় ঐচ্ছিকভাবে সিস্টেম-ইনস্টল করা ফন্ট খুঁজে দেখতে, নতুন ফন্ট ডেসক্রিপ্টর Font(DeviceFontFamilyName) যোগ করুন। (I30468, b/219754572)
PointerEventType.ScrollওPointerEvent.scrollDeltaএখন স্থিতিশীল API (I574c5, b/225669674)TextStyle/ParagraphStyle. includeFontPadding-এincludeFontPadding-এর জন্য সাময়িক কম্প্যাটিবিলিটি কনফিগারেশন যোগ করা হয়েছে যাTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))-এর মাধ্যমে পরিবর্তন করা যাবে। মাইগ্রেশন চালু করার জন্য এটি একটি সাময়িক কনফিগারেশন বিকল্প এবং এটি সরিয়ে দেওয়া হবে। (If47be, b/171394808)- সিস্টেম-ব্যাপী বোল্ড টেক্সট অ্যাক্সেসিবিলিটি সেটিং (I6c1e7) ইন্টিগ্রেট করতে
FontFamily.Resolverআপডেট করা হয়েছে ComposeView-এরconsumeWindowInsetsএক্সটেনশন প্রপার্টি ডেভেলপারদের Android WindowInsets-এর ব্যবহার বন্ধ করে দিতে দেয়। এর ফলে, হায়ারার্কিতে থাকা আলাদা আলাদাComposeViewsএকে অপরের কাজে বাধা না দিয়েইWindowInsetsপ্রয়োগ করতে পারে। (I0ef08, b/220943142)
ভার্সন 1.2.0-alpha06
২৩ মার্চ, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha06 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha06 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha06-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ফোকাস করা যায় এমন টার্গেটে ফোকাস করার অনুরোধ করতে
RequestFocusশব্দার্থ সংক্রান্ত অ্যাকশন যোগ করা হয়েছে। (I17b71) FocusOrderএখনFocusProperties-এর সাথে মার্জ করা হয়েছে এবংfocusProperties()-এর কাছে এখনfocusOrder()-এর সব ক্ষমতা আছে।FocusOrderএবংfocusOrder()বন্ধ করে দেওয়া হয়েছে।focusOrder()যাfocusRequesterগ্রহণ করে, সেটিকেfocusProperties()-এর সাথেfocusRequester()মডিফায়ার ব্যবহার করে পরিবর্তন করতে হবে। এর ফলে মডিফায়াররা আরও ভালোভাবে তাদের কাজ আলাদা আলাদাভাবে করতে পারেন। (I601b7)- কম্পোজিশনে না থেকেই ডেভেলপারদের কনভার্সন করার অনুমতি দেওয়ার জন্য
WindowInsets.asPaddingValues(Density)যোগ করা হয়েছে। (I94c35) - বর্তমান লেআউটের
দিকনির্দেশ RTL হলে,
VectorPainter-এর কন্টেন্ট ফ্লিপ করার জন্য অটোমেটিক মিররিং কাজ করে, সেই জন্য ভেক্টর ড্রয়েবল পার্সিং আপডেট করা হয়েছে। (I79cd9, b/185760237)
সমস্যার সমাধান
- স্ক্রল এরিয়া রিসাইজ করা হলে এবং ফোকাস করা কম্পোজেবল আগে দেখা গেলে,ফোকাস করা কম্পোজেবলকে দৃশ্যমান রাখতে স্ক্রল মডিফায়ার (
Modifier.verticalScroll(),Modifier.horizontalScroll()ওModifier.scrollable()) এখন স্ক্রল করবে। - TextField এখন ফোকাস করা হলে এবং কীবোর্ড দেখানো হলে, কীবোর্ডের উপরে রাখা হবে, যখন এটি নন-লেজি স্ক্রল করার মতো এবং সফ্ট ইনপুট মোড
ADJUST_RESIZE-এর মধ্যে থাকে। (I4a485, b/190539358, b/192043120, b/216842427)
ভার্সন 1.2.0-alpha05
৯ মার্চ, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha05 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.2.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
LazyVerticalGridওLazyHorizontalGridএখন স্থিতিশীল। (I307c0)LazyGridItemInfo.Unknown-এর পরিবর্তে আলাদাLazyGridItemInfo.UnknownRowওLazyGridItemInfo.UnknownColumnব্যবহার করা হয়েছে (I56d51)LazyVerticalGrid/LazyHorizontalGridএবং সম্পর্কিত সব API.gridসাবপ্যাকেজে সরানো হয়েছে।androidx.compose.foundation.lazyথেকেandroidx.compose.foundation.lazy.gridপর্যন্ত আপনার ইমপোর্ট আপডেট করুন। (I2d446, b/219942574)- টেক্সট:
includeFontPaddingএখন ডিফল্ট হিসেবে বন্ধ করা থাকে।includeFontPadding=false-এর ফলে হওয়া ক্লিপিং সংক্রান্ত সমস্যা সমাধান করা হয়েছে এবং লম্বা স্ক্রিপ্টের ক্ষেত্রে কোনও ক্লিপিং হওয়া উচিত নয়। (I31c84, b/171394808) - পরিমাপ করা ইন্টারফেস এখন parentData প্রপার্টি (I3313f) এক্সপোজ করে
- পরীক্ষামূলক
Modifier.onFocusedBoundsChangedচালু করা হয়েছে যা বাচ্চাদের ফোকাস করার উপযুক্ত আইটেমের সীমানা পর্যবেক্ষণ করার অনুমতি দেয়। (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - LazyHorizontalGrid যোগ করা হয়েছে। (I61ae7, b/191238807)
- ক্রস অ্যাক্সিস সাইজ (I17723) নির্ধারণ করতে নতুন
LazyVerticalGridAPI যোগ করা হয়েছে - FocusGroup মডিফায়ার যোগ করা হয়েছে (I64bc0, b/213508274, b/184670295)
সমস্যার সমাধান
WindowInsets.toString()এখন সঠিক ভ্যালু দেখাবে। (I1585d)
এক্সটার্নাল কন্ট্রিবিউশন
- Kotlinx coroutines 1.6.0 (I3366d) ব্যবহার করার জন্য আপডেট করা হয়েছে
ভার্সন 1.2.0-alpha04
২৩ ফেব্রুয়ারি, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha04 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha04 রিলিজ করা হয়েছে। 1.2.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
BringIntoViewResponders-কে আর ম্যানুয়ালি অভিভাবক উত্তরদাতাদের কাছে অনুরোধ পাস করতে হবে না, পরিবর্তে তাকে অবিলম্বে সেই আয়তক্ষেত্রটি ফেরত দিতে হবে যেটি সে চায় যে তার অভিভাবক দৃশ্যমান করুন। (I8e66a)- Text-এ অ্যাসিঙ্ক ফন্ট লোডিং কাজ করে (I77057, b/214587005)
LazyVerticalGridএখনline breaking-এর আগে এমন আইটেম সাপোর্ট করে যেগুলির স্প্যান বর্তমান লাইনের মধ্যে ফিট করে না। (I05c40, b/207462103)excludeFromSystemGestures-এর নাম পরিবর্তন করেsystemGesturesExclusionকরা হয়েছে (I19526)LazyVerticalGridএখন reverseLayout-এ কাজ করে। (I6d7d7, b/215572963, b/211753558)- ডেভেলপারদের WindowInsets থেকে
শুধুমাত্র ডাইমেনশন অন্তর্ভুক্ত করার অনুমতি দিতে
WindowInsets.only()পদ্ধতি যোগ করুন। (I14c94, b/217768486) ComposableTarget,ComposableTargetMarkerএবংComposableOpenTargetযোগ করা হয়েছে যা কম্পাইল করার সময় রিপোর্ট করার অনুমতি দেয় যখন কোনও কম্পোজেবল ফাংশন এমন কোনও অ্যাপ্লায়ারকে টার্গেট করে কল করা হয় যা ব্যবহার করার জন্য ডিজাইন করা হয়নি।বেশিরভাগ ক্ষেত্রে, কম্পোজ কম্পাইলার প্লাগ-ইন থেকে অ্যানোটেশন অনুমান করা যেতে পারে, তাই এই অ্যানোটেশন সরাসরি ব্যবহার করা বিরল হওয়া উচিত। যেসব ক্ষেত্রে অনুমান করা যায় না তার মধ্যে রয়েছে কাস্টম অ্যাপ্লায়ার তৈরি ও ব্যবহার করা, অ্যাবস্ট্র্যাক্ট কম্পোজ করার উপযুক্ত ফাংশন (যেমন ইন্টারফেস পদ্ধতি), ফিল্ড বা গ্লোবাল ভেরিয়েবল যা কম্পোজ করার উপযুক্ত ল্যাম্বডা (লোকাল ভেরিয়েবল ও প্যারামিটার অনুমান করা হয়), অথবা
ComposeNodeবা সম্পর্কিত কম্পোজ করার উপযুক্ত ফাংশন ব্যবহার করার সময়।কাস্টম অ্যাপ্লায়ারের জন্য, কম্পোজ করা যায় এমন ফাংশন যা
ComposeNodeবাReusableComposeNodeকল করে, সেগুলিকে ফাংশন ও যেকোনও কম্পোজ করা যায় এমন ল্যামডা প্যারামিটারCompoableTargetটাইপের জন্য অ্যানোটেশন যোগ করতে হবে। তবে, এটি সাজেস্ট করা হয় যে,ComposableTargetMarkerদিয়ে অ্যানোটেট করা একটি অ্যানোটেশন তৈরি করুন এবং তারপরে সরাসরিComposableTarget-এর পরিবর্তে চিহ্নিত অ্যানোটেশন ব্যবহার করুন।ComposableTargetMarkerচিহ্নিত কম্পোজ করার উপযুক্ত অ্যানোটেশন হলComposbleTarget, যার মধ্যে অ্যাপ্লায়ার প্যারামিটার হিসেবে অ্যাট্রিবিউট ক্লাসের সম্পূর্ণ কোয়ালিফায়েড নাম থাকে।ComposableTargetMarkerব্যবহারের উদাহরণ দেখতেanroidx.compose.ui.UiComposableদেখুন। (I38f11)
সমস্যার সমাধান
- এখন
LazyGridState.scrollToItem()ওLazyGridState.animateScrollToItem()-এ নেগেটিভ স্ক্রল অফসেট পাস করার অনুমতি দেওয়া হয়েছে। (I025c6, b/211753558) - TextField-এর জন্য অ্যাসিঙ্ক ফন্ট লোডিং কাজ করে। (Icc4bf, b/214587005)
ভার্সন 1.2.0-alpha03
৯ ফেব্রুয়ারি, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha03 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha03 রিলিজ করা হয়েছে। 1.2.0-alpha03 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
TextInputSessionওTextInputService-এnotifyFocusedRectপদ্ধতি এখন অবচিত করা হয়েছে এবং আর কল করা হবে না। এর পরিবর্তেBringIntoViewRequesterব্যবহার করুন। (Ia4302, b/192043120, b/216842427, b/178211874)- Modifier.animateItemPlacement() সহ লেজি গ্রিডের আইটেমের জন্য অ্যানিমেশন চালু করা হয়েছে। (Ib6621, b/211753218)
BringIntoViewRequesterএখন হোস্টিং Android ভিউতে অনুরোধ প্রোপাগেট করে। (Ia7a51)FontFamilyResolverএখনLocalFontFamilyResolver.current- -এর মাধ্যমে উপলভ্য
- কম্পোজ ব্যবহারের বাইরে নতুন
FontFamily রিজলভার তৈরি করতে
createFontFamilyResolver(context)এবংcreateFontFamilyResolver(context, coroutineScope)যোগ করা হয়েছে। - Paragraph ও MultiParagraph এখন
FontFamily.Resolverনেয় TextLayoutResult.layoutInput.fontFamilyResolver-এ এখন এই লেআউটের জন্য ব্যবহৃত রেজোলভার আছে, এটি আর ব্যবহার করা হয় না বলেTextLayoutResult.layoutInput.resourceLoaderসরিয়ে দেওয়া হয়েছে। (Id5a45, b/174162090)
- কম্পোজ ব্যবহারের বাইরে নতুন
FontFamily রিজলভার তৈরি করতে
- 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)
- আপনি এখন
LazyVerticalGrid-এর আইটেমের জন্য কন্টেন্টের ধরন নির্দিষ্ট করতে পারবেন -LazyGridScope-এ আইটেম/আইটেম ফাংশন এখন এই ধরনের প্যারামিটার গ্রহণ করে। এই ধরনের তথ্য প্রদান করলে, আইটেম কম্পোজিশন রিইউজিং লজিক আরও দক্ষতার সাথে কাজ করতে পারে এবং শুধুমাত্র একই ধরনের আইটেমের মধ্যে কন্টেন্ট রিইউজ করতে পারে। (I7b355, b/215372836) LazyListLayoutInfoওLazyGridLayoutInfo-এ এখন নতুন প্রপার্টি আছে:viewportSize,orientation,reverseLayout(Ifc8ed, b/200920410)- আপনি এখন LazyColumn/LazyRow-এর আইটেমের জন্য কন্টেন্টের ধরন নির্দিষ্ট করতে পারবেন - LazyListScope-এ আইটেম/আইটেম ফাংশন এখন এই ধরনের প্যারামিটার গ্রহণ করে। এই ধরনের তথ্য প্রদান করলে, আইটেম কম্পোজিশন রিইউজিং লজিক আরও দক্ষতার সাথে কাজ করতে পারে এবং শুধুমাত্র একই ধরনের আইটেমের মধ্যে কন্টেন্ট রিইউজ করতে পারে। (I26506)
SubcomposeLayoutStateকনস্ট্রাক্টরmaxSlotsToRetainForReuseগ্রহণ করা এখন বন্ধ করা হয়েছে। এর পরিবর্তে,SubcomposeSlotReusePolicyগ্রহণকারী একটি নতুন কনস্ট্রাক্টর আছে - একটি নতুন ইন্টারফেস যা ভবিষ্যতে আবার ব্যবহারের জন্য কোন স্লটগুলি ধরে রাখা উচিত তার উপর আরও গ্র্যানুলার কন্ট্রোল প্রদান করে। (I52c4d)- প্যাডিং ও সাইজিং, দু'টির জন্যই WindowInsets-এর জন্য মডিফায়ার যোগ করে। এর ফলে কিছু কন্টেন্ট ইনসেট এরিয়াতে প্রসারিত হতে পারে, এবং তা সত্ত্বেও মূল কন্টেন্ট ইনসেট এরিয়ার বাইরে থাকে। যেমন, windowInsetsPadding ব্যবহার করে কন্টেন্ট এরিয়া প্যাড করা যেতে পারে যাতে সম্পূর্ণ বা আংশিকভাবে কভার করা এলাকা এড়ানো যায়। (Id0395, b/213942085)
সমস্যার সমাধান
- TextField এখন কীবোর্ডের উপরে রাখা হবে, যদি সেটি ফোকাস করা থাকে এবং কীবোর্ড দেখানো হয়, যদি সফ্ট ইনপুট মোড
ADJUST_PANহয়। (I8eaeb, b/190539358, b/192043120) - ডেস্কটপ
FontFamily.Resolver-এর জন্য কম্পোজিশন লোকাল ব্যবহার করে- ডেস্কটপ
FontLoaderবন্ধ করে দেওয়া হয়েছে - ডেস্কটপে নতুন
createFontFamilyResolverফ্যাক্টরি (I6bbbb, b/174162090)
- ডেস্কটপ
- টেক্সট ফিল্ডের মধ্যে ফোকাস পরিবর্তন করার সময় সফ্ট কীবোর্ড ইনপুট টাইপ আর ফ্লিকার করে না। (I1bf50, b/187746439)
- কার্সর হ্যান্ডেল দেখা গেলে, টেক্সট ফিল্ডে আর অতিরিক্ত ব্যাক প্রেস করতে হয় না। (Ideb4b, b/205726883)
- প্ল্যাটফর্ম ম্যাগনিফায়ারের সাথে ম্যাচ করাতে টেক্সট বেছে নেওয়ার ম্যাগনিফায়ারের আচরণ আরও উন্নত করা হয়েছে। (Idd918, b/206833278)
ভার্সন 1.2.0-alpha02
২৬ জানুয়ারি, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha02 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha02 রিলিজ করা হয়েছে। 1.2.0-alpha02 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- জটিল যুক্তি ছাড়াই আগে থেকে থাকা পদ্ধতির ওভারলোড করা পদ্ধতির সাথে
NonRestartableComposableযোগ করা হয়েছে । এটি কল করা হয় এমন ইন্টার্নাল ফাংশনে রিপিট করা সব প্যারামিটারের জন্য কম্পাইলারের জেনারেট করা মেমোরাইজেশন চেক (সমান) কমায়। (I90490) - Android-এর
setSystemGestureExclusionRects(I46f07) সহজে অ্যাক্সেস করার জন্যexcludeFromSystemGestureমডিফায়ার যোগ করা হয়েছে
সমস্যার সমাধান
- প্ল্যাটফর্ম ম্যাগনিফায়ারের সাথে ম্যাচ করাতে টেক্সট বেছে নেওয়ার ম্যাগনিফায়ারের আচরণ আরও উন্নত করা হয়েছে। (Idd918, b/206833278)
LazyColumn,LazyRow,Modifier.verticalScrollএবংModifier.scrollableব্যবহার করে এমন অন্যান্য কন্টেনার এখন মাউস হুইল স্ক্রলিং কাজ করে। (I2b5e1, b/198214718)
ভার্সন 1.2.0-alpha01
১২ জানুয়ারি, ২০২২
androidx.compose.foundation:foundation:1.2.0-alpha01 ও androidx.compose.foundation:foundation-layout:1.2.0-alpha01 রিলিজ করা হয়েছে। 1.2.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ব্যবহারকারীদের টাচ জেসচার বা অ্যাক্সেসিবিলিটি অ্যাকশনের মাধ্যমে ব্যবহারকারীর দ্বারা শুরু করা স্ক্রল সাময়িকভাবে বা স্থায়ীভাবে বন্ধ করার অনুমতি দেওয়ার জন্য
LazyColumn,LazyRowএবংLazyVerticalGrid-এ নতুন প্যারামিটারuserScrollEnabledযোগ করা হয়েছে। স্টেটের পদ্ধতিতে প্রোগ্রাম্যাটিক স্ক্রল করার অনুমতি এখনও দেওয়া হবে। (I7eae9, b/201150093) - Magnifier মডিফায়ারে
onSizeChangedকলব্যাক যোগ করুন। (I6879f) SelectionContainer-এ সিলেকশন হ্যান্ডেল ড্র্যাগ করার সময় ম্যাগনিফায়ার উইজেট এখন দেখা যায়। (I30b38, b/139320979)
সমস্যার সমাধান
TextFieldকার্সর হ্যান্ডেল স্ক্রল করে ভিউয়ের বাইরে নিয়ে গেলে তা আর লুকানো যায় না, এই সমস্যার সমাধান করা হয়েছে। (I14552, b/208883748)
নির্ভরতা সংক্রান্ত আপডেট
- এখন Kotlin
1.6.10-এর উপর নির্ভর করে।
ভার্সন 1.1
ভার্সন 1.1.1
২৩ ফেব্রুয়ারি, ২০২২
androidx.compose.foundation:foundation:1.1.1 ও androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0 ও androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0-rc03 ও androidx.compose.foundation:foundation-layout:1.1.0-rc03 রিলিজ করা হয়েছে। Version 1.1.0-rc03-এ এইসব কমিট আছে।
সমস্যার সমাধান
- Compose Material 1.1.0-rc03 ভার্সনে কাজ করার জন্য আপডেট করা হয়েছে
ভার্সন 1.1.0-rc01
১৫ ডিসেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-rc01 ও androidx.compose.foundation:foundation-layout:1.1.0-rc01 রিলিজ করা হয়েছে। 1.1.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- এখন
LazyListState.scrollToItem()ওLazyListState.animateScrollToItem()-এ নেগেটিভ স্ক্রল অফসেট পাস করার অনুমতি দেওয়া হয়েছে। (Iceb90, b/184252837) - অ্যাক্সেসিবিলিটি স্ক্রল অ্যাকশন (I7cbfb) মিসিং হওয়ার কারণে হওয়া সমস্যার সমাধান করা হয়েছে
ভার্সন 1.1.0-beta04
১ ডিসেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-beta04 ও androidx.compose.foundation:foundation-layout:1.1.0-beta04 রিলিজ করা হয়েছে। 1.1.0-beta04 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- Kotlin
1.6.0-এর সাথে মানানসই করে আপডেট করা হয়েছে
API-তে পরিবর্তন
androidx.core.view-এ নালিবিলিটি ক্লিন-আপ করা হয়েছে(I7078a, b/204917439)- পরীক্ষামূলক API যোগ করা হয়েছে যা PointerInputchange-কে সামগ্রিকভাবে ব্যবহার করতে দেয় অথবা এটি ব্যবহার করা হয়েছে কিনা তা চেক করে। (I2e59d)
- টেক্সট ফিল্ডের মধ্যে কার্সর বা সিলেকশন হ্যান্ডেল ড্র্যাগ করার সময় ম্যাগনিফায়ার উইজেট দেখান। (I5391e, b/203781358)
সমস্যার সমাধান
- IME দৃশ্যমানতা পরিবর্তন হলে টেক্সট হ্যান্ডেল না সরানোর সমস্যা সমাধান করা। (I25f2e)
ভার্সন 1.1.0-beta03
১৭ নভেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-beta03 ও androidx.compose.foundation:foundation-layout:1.1.0-beta03 রিলিজ করা হয়েছে। 1.1.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- LazyVerticalGrid-এ অনুভূমিক স্প্যান সংক্রান্ত সহায়তা যোগ করা হয়েছে। (I7e2fa, b/176758183)
Lazy list আইটেমের পজিশন অ্যানিমেট করার পরীক্ষামূলক সুবিধা যোগ করা হয়েছে। LazyItemScope-এর মধ্যে
Modifier.animateItemPlacement()নামের একটি নতুন মডিফায়ার উপলভ্য। ব্যবহারের উদাহরণ:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }LazyListScope.itemবাLazyListScope.items-এর মাধ্যমে কোনও কী প্রদান করলে, এই মডিফায়ার আইটেম আবার সাজানোর অ্যানিমেশন চালু করবে। আইটেম নতুন করে সাজানো ছাড়াও, অ্যারেঞ্জমেন্ট বা অ্যালাইনমেন্টের মতো ইভেন্টের কারণে পজিশনে হওয়া অন্যান্য পরিবর্তনও অ্যানিমেট করা হবে। (I59e7b, b/150812265)
ভার্সন 1.1.0-beta02
৩ নভেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-beta02 ও androidx.compose.foundation:foundation-layout:1.1.0-beta02 রিলিজ করা হয়েছে। 1.1.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
সমস্যার সমাধান
- ডাউন ইভেন্টের জন্য সবসময় দেরি না করে, এখন থেকে রিপেল ও অন্যান্য ইঙ্গিত শুধুমাত্র
Modifier.scrollable()কন্টেনারের মধ্যে থাকলে দেরি হবে। (Ibefe0, b/203141462) - পরীক্ষামূলক BringIntoView API যোগ করা হয়েছে যা আপনাকে অভিভাবকের কাছে অনুরোধ পাঠাতে দেয় যাতে তারা স্ক্রল করে কোনও আইটেমকে ভিউতে আনতে পারেন (Ib918d, b/195353459)
এক্সটার্নাল কন্ট্রিবিউশন
Modifier.pointerHoverIconযোগ করা হয়েছে (I95f01)
ভার্সন 1.1.0-beta01
২৭ অক্টোবর, ২০২১
androidx.compose.foundation:foundation:1.1.0-beta01 ও androidx.compose.foundation:foundation-layout:1.1.0-beta01 রিলিজ করা হয়েছে। 1.1.0-beta01 ভার্সনে এইসব কমিট আছে।
সমস্যার সমাধান
- পরীক্ষামূলক BringIntoView API যোগ করা হয়েছে যা আপনাকে অভিভাবকের কাছে অনুরোধ পাঠাতে দেয় যাতে তারা স্ক্রল করে কোনও আইটেমকে ভিউতে আনতে পারেন (Ib918d, b/195353459)
ভার্সন 1.1.0-alpha06
১৩ অক্টোবর, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha06 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha06 রিলিজ করা হয়েছে। 1.1.0-alpha06 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- লেআউটের জন্য চাইল্ড-লেস ওভারলোড যোগ করা হয়েছে, যার ফলে কার্যকারিতা উন্নত হয়েছে (Ib0d9a)
SemanticsNodeInteraction.performSemanticsActionএখন যেSemanticsNodeInteraction-এ ফাংশন কল করা হয়েছে সেটি রিটার্ন করে। (I9e5db)performScrollToNode(matcher: SemanticsMatcher)যোগ করা হয়েছে যা প্রদত্ত ম্যাচারের মাধ্যমে ম্যাচ করা কন্টেন্টে স্ক্রল করা যায় এমন কন্টেনারকে স্ক্রল করে। (Ic1cb8)
ভার্সন 1.1.0-alpha05
২৯ সেপ্টেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha05 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha05 রিলিজ করা হয়েছে। 1.1.0-alpha05 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- PointerEventChange-এ এক্সপেরিমেন্টাল ঐতিহাসিক পয়েন্টার যোগ করা হয়েছে। (Ic1fd8, b/197553056, b/199921305)
সমস্যার সমাধান
- স্ক্রল করার ক্ষেত্রে স্ক্রল করা যায় এমন কন্টেন্টের (লেজি ও নন-লেজি, দু'টিই) অ্যাক্সেসিবিলিটি সংক্রান্ত সহায়তা সম্পর্কিত সমস্যা সমাধান করা হয়েছে (I6cdb0)
ভার্সন 1.1.0-alpha04
১৫ সেপ্টেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha04 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha04 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha04-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
performGestureওGestureScopeবাতিল করা হয়েছে, যেগুলিperformTouchInputওTouchInjectionScopeদ্বারা প্রতিস্থাপিত হয়েছে। (Ia5f3f, b/190493367)touchBoundsInRootথেকেSemanticsNode-এ যোগ করা হয়েছে, যার মধ্যে ন্যূনতম টাচ টার্গেট সাইজ অন্তর্ভুক্ত, যাতে ডেভেলপাররা নিশ্চিত করতে পারেন যে টাচ টার্গেট অ্যাক্সেসিবিলিটি সংক্রান্ত ন্যূনতম প্রয়োজনীয়তা পূরণ করে। (I2e14b, b/197751214)
সমস্যার সমাধান
- Android 12 ডিভাইসে স্ট্রেচ ওভারস্ক্রল করার সুবিধা যোগ করা হয়েছে। (Iccf3c, b/171682480)
ভার্সন 1.1.0-alpha03
১ সেপ্টেম্বর, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha03 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha03 রিলিজ করা হয়েছে। 1.1.0-alpha03 ভার্সনে এইসব কমিট আছে।
নতুন ফিচার
- Compose
1.1.0-alpha03-কে Kotlin1.5.30-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে। (I74545)
API-তে পরিবর্তন
- স্ক্রল করার সময় গ্লো এফেক্ট যোগ করা হয়েছে। ওভারস্ক্রল ভিজ্যুয়াল এফেক্ট কনফিগার করার অনুমতি দিতে নতুন পরীক্ষামূলক OverScrollConfiguration API যোগ করা হয়েছে। ওভারস্ক্রল এফেক্ট বন্ধ করতে null দিন। (I0c304, b/171682480)
- AwaitPointerEventScope-এ এখন withTimeout() এবং withTimeoutOrNull() আছে (I507f0, b/179239764, b/182397793)
- ক্লিপ করা বাউন্ড পাওয়ার জন্য টেস্ট পদ্ধতি যোগ করা হয়েছে। (I6b28e)
- অ্যাক্সেসিবিলিটি নিশ্চিত করতে, সিম্যান্টিক্স ও পয়েন্টার ইনপুটে ব্যবহারের জন্য ViewConfiguration -এ ন্যূনতম টাচ টার্গেট সাইজ যোগ করা হয়েছে। (Ie861c)
ভার্সন 1.1.0-alpha02
১৮ আগস্ট, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha02 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.1.0-alpha02-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
Modifier.sizeওrequiredSize-এর জন্য DpSize ভার্সন যোগ করা হয়েছে (I3fc7e, b/194219828)
ভার্সন 1.1.0-alpha01
৪ আগস্ট, ২০২১
androidx.compose.foundation:foundation:1.1.0-alpha01 ও androidx.compose.foundation:foundation-layout:1.1.0-alpha01 রিলিজ করা হয়েছে। 1.1.0-alpha01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
DrawScope#drawImageপদ্ধতি আপডেট করা হয়েছে যা ঐচ্ছিক FilterQuality প্যারামিটার ব্যবহার করার জন্য সোর্স ও ডেস্টিনেশন রেক্ট ব্যবহার করে। পিক্সেল আর্টের ক্ষেত্রে এটি উপযোগী, কারণ পিক্সেল ভিত্তিক আর্টের জন্য স্কেল আপ করা হলে এটি পিক্সেল আর্ট হিসেবেই দেখা যাবে। এছাড়াও, BitmapPainter + Image composable আপডেট করে ঐচ্ছিক FilterQuality প্যারামিটার (Ie4fb0, b/180311607) ব্যবহার করা হয়েছে- TextField এখন ব্যাক বোতাম প্রেস করা হলে বেছে নেওয়া অংশ মুছে দেয়, যা Android EditText-এর আচরণের সাথে মেলে। (I3ca16, b/174173645)
- কার্সর হ্যান্ডেল যোগ করুন। (I07a82, b/173016579)
সমস্যার সমাধান
- লেজি লিস্ট ও সাধারণ স্ক্রলিং কম্পোনেন্টের জন্য সিম্যান্টিক অ্যাকশনের মাধ্যমে স্ক্রল করার সুবিধা এখন অ্যানিমেটেড (Id9066, b/190742024)
এক্সটার্নাল কন্ট্রিবিউশন
LazyVerticalGridএখন হরাইজন্টাল ও ভার্টিক্যাল, দুটি অ্যারেঞ্জমেন্ট প্যারামিটারই গ্রহণ করে। (If9c92)
ভার্সন ১.০
ভার্সন 1.0.5
৩ নভেম্বর, ২০২১
androidx.compose.foundation:foundation:1.0.5 ও androidx.compose.foundation:foundation-layout:1.0.5 রিলিজ করা হয়েছে। 1.0.5 ভার্সনে এই কমিটগুলি রয়েছে।
সমস্যার সমাধান
- ক্র্যাশ ট্র্যাকিং derivedStateOf ইনস্ট্যান্স সংক্রান্ত সমস্যার সমাধান করা হয়েছে। (aosp/1792247)
ভার্সন 1.0.4
১৩ অক্টোবর, ২০২১
androidx.compose.foundation:foundation:1.0.4 ও androidx.compose.foundation:foundation-layout:1.0.4 রিলিজ করা হয়েছে। 1.0.4 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.31-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে
ভার্সন 1.0.3
২৯ সেপ্টেম্বর, ২০২১
androidx.compose.foundation:foundation:1.0.3 ও androidx.compose.foundation:foundation-layout:1.0.3 রিলিজ করা হয়েছে। 1.0.3 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.30-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে
ভার্সন 1.0.2
১ সেপ্টেম্বর, ২০২১
androidx.compose.foundation:foundation:1.0.2 ও androidx.compose.foundation:foundation-layout:1.0.2 রিলিজ করা হয়েছে। 1.0.2 ভার্সনে এইসব কমিট রয়েছে।
Compose 1.0.2 রিলিজের সাথে কাজ করার জন্য আপডেট করা হয়েছে। Compose 1.0.2 এখনও Kotlin 1.5.21-এর সাথে মানানসই।
ভার্সন 1.0.1
৪ আগস্ট, ২০২১
androidx.compose.foundation:foundation:1.0.1 ও androidx.compose.foundation:foundation-layout:1.0.1 রিলিজ করা হয়েছে। 1.0.1 ভার্সনে এইসব কমিট রয়েছে।
নির্ভরতা সংক্রান্ত আপডেট
- Kotlin
1.5.21-এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে।
ভার্সন 1.0.0
২৮ জুলাই, ২০২১
androidx.compose.foundation:foundation:1.0.0 ও androidx.compose.foundation:foundation-layout:1.0.0 রিলিজ করা হয়েছে। ভার্সন 1.0.0-এ এইসব কমিট আছে।
1.0.0 ভার্সনের প্রধান ফিচার
Compose-এর এটিই প্রথম স্থিতিশীল রিলিজ। আরও বিবরণের জন্য অফিসিয়াল Compose রিলিজ ব্লগ দেখুন!
পরিচিত সমস্যা
আপনি Android Studio Bumblebee Canary 4 বা AGP
7.1.0-alpha04/7.1.0-alpha05ব্যবহার করলে, নিম্নলিখিত ক্র্যাশ হতে পারে:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"এটি সমাধান করতে, আপনার
build.gradleফাইলে সাময়িকভাবে minSdkVersion বাড়িয়ে 24+ করুন। Android Studio Bumblebee এবং AGP7.1-এর পরবর্তী ভার্সনে এই সমস্যার সমাধান করা হবে। (b/194289155)
ভার্সন 1.0.0-rc02
১৪ জুলাই, ২০২১
androidx.compose.foundation:foundation:1.0.0-rc02 ও androidx.compose.foundation:foundation-layout:1.0.0-rc02 রিলিজ করা হয়েছে। 1.0.0-rc02 ভার্সনে এইসব কমিট রয়েছে।
- নির্দিষ্ট ডাইমেনশন দিয়ে পাথ সংজ্ঞায়িত করার ক্ষেত্রে সমস্যার সমাধান করতে, সাধারণ আকারের জন্য আপডেট করা বর্ডার রেন্ডারিং। (aosp/1748871, b/191817116)
ভার্সন 1.0.0-rc01
১ জুলাই, ২০২১
androidx.compose.foundation:foundation:1.0.0-rc01 ও androidx.compose.foundation:foundation-layout:1.0.0-rc01 রিলিজ করা হয়েছে। 1.0.0-rc01 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Canvas এখন অ্যাক্সেসিবিলিটির জন্য contentDescription প্যারামিটার ব্যবহার করতে পারে। (Ib547c)
সমস্যার সমাধান
- বন্ধ করা বোতাম, কার্ড, চেকবক্স এবং সামগ্রিকভাবে
Modifier.clickable(enabled=false)অভিভাবকের কাছে ক্লিক যেতে বাধা দেবে। (Ic2c3b, b/183908811)
ভার্সন 1.0.0-beta09
১৬ জুন, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta09 ও androidx.compose.foundation:foundation-layout:1.0.0-beta09 রিলিজ করা হয়েছে। 1.0.0-beta09 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
ManualFrameClockসরানো হয়েছে। আপনি অ্যানিমেশন কন্ট্রোল করতে চাইলে,composeTestRule.mainClockব্যবহার করুন। (I3c3e8, b/189951065)- enum Role ও LiveRegionMode-কে প্রাইভেট কনস্ট্রাক্টর (Id1890) সহ ইনলাইন ক্লাসে পরিবর্তন করুন
- KeyboardCapitalization ইনলাইন ক্লাসে কনভার্ট করা হয়। (Id5a1c)
- TextOverflow-কে ইনলাইন ক্লাসে পরিবর্তন করা হয়েছে। (I433af)
সমস্যার সমাধান
- এখন আপনি LazyColumn/Row আইটেমের জন্য অনন্য কী নির্দিষ্ট করলে, কীয়ের উপর ভিত্তি করে স্ক্রল পজিশন বজায় রাখা হবে, যার অর্থ হল বর্তমানে দৃশ্যমান আইটেমের আগে কোনও আইটেম যোগ/সরিয়ে দিলে, প্রদত্ত কী সহ আইটেমটি প্রথম দৃশ্যমান আইটেম হিসেবে রাখা হবে। (Id263f, b/184257857)
- এখনকার জন্য মূল কনস্ট্যান্ট হল @ExperimentalComposeUiApi। ব্যবহারকারী কোড স্থিতিশীল হওয়ার আগে ব্যক্তিগত ধ্রুবক ঘোষণা করতে পারে। (Ia5d48)
- AndroidComposeTestRule-এ IdlingStrategy যোগ করা হয়েছে যা
টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে অপেক্ষা করার
বা কোয়েসেন্স পাওয়ার বিকল্প মেকানিজম ইনস্টল করতে পারে। আপনার কৌশল ইনস্টল করতে
পরীক্ষা শুরু হওয়ার আগে
AndroidComposeTestRule.setIdlingStrategyFactory()ব্যবহার করুন। (I608fa)
যোগ করা প্রোফাইল সংক্রান্ত নিয়ম
এই রিলিজে নিম্নলিখিত কম্পোজ মডিউলে প্রোফাইল সংক্রান্ত নিয়ম যোগ করা হয়েছে (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.foundation:foundation:1.0.0-beta08 ও androidx.compose.foundation:foundation-layout:1.0.0-beta08 রিলিজ করা হয়েছে। 1.0.0-beta08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- NestedScrollSource enum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়। (Ie321b, b/187055290)
- নতুন enum ভ্যালু যোগ করা হলে, <0x0A>when স্টেটমেন্টের সাথে এক্সহস্ট করার ক্ষেত্রে সমস্যা এড়াতে <0x0A>ইনলাইন ক্লাসে রিফ্যাক্টর করা enum ব্যবহার। (I2b5eb)
- ক্লিক করা যায় / টগল করা যায় এমন আইটেমে ট্যাপ করার জন্য টাইম-আউট যোগ করে যাতে স্ক্রল / ড্র্যাগ করার সময় রিপেল দেখা না যায় (Ia2704, b/168524931)
- ContentDescription এবং Text সিম্যান্টিক্স প্রপার্টি আর সিঙ্গেল ভ্যালু নয়, এখন তালিকা। এটি সেগুলিকে কনক্যাটেনেশনের পরিবর্তে যেমন আছে তেমনই মার্জ করতে দেয়। এছাড়াও, এই পরিবর্তনগুলি ব্যবহার করার জন্য আরও ভাল টেস্টিং API প্রদান করা হয়েছে (Ica6bf, b/184825850)
Modifier.focusModifier()বন্ধ করে দেওয়া হয়েছে এবংModifier.focusTarget()(I6c860) দিয়ে প্রতিস্থাপন করা হয়েছে- KeyboardType enum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়। (I73045, b/187055290)
FocusStateenum-এর পরিবর্তেFocusStateইন্টারফেস ব্যবহার করা হয়েছে (Iccc1a, b/187055290)- ImeAction enum-এর পরিবর্তে ইনলাইন ক্লাস ব্যবহার করা হয়। (I18be5, b/187055290)
AnnotatedString.withAnnotationফাংশনগুলি এখন ExperimentalComposeApi-এর পরিবর্তে ExperimentalTextApi. (I0cd0a)- TextUnitType সহ TextUnit কনস্ট্রাক্টর এখন ExperimentalComposeApi-এর পরিবর্তে ExperimentalTextApi.
- PaddingValues এখন
@Immutable-এর পরিবর্তে@Stable(I88c50)
সমস্যার সমাধান
- খালি নয় এমন টেক্সটে ফাঁকা জায়গায় বেশিক্ষণ প্রেস করলে ক্র্যাশ হওয়ার সমস্যা সমাধান করা। (I33ab5, b/187437299)
- SelectAll-এর পরে টুলবার দেখানো (I495d9, b/185919613)
- ক্রস অ্যাক্সিসে স্ক্রল করা যায় এমন কন্টেনার তার চিলড্রেনকে ক্লিপ করা সংক্রান্ত সমস্যার সমাধান। আপনার কাছে কার্ড আইটেম সহ LazyRow থাকলে এটি সহজেই রিপ্রোডিউস করা যেত। এখন আর শ্যাডো ক্লিপ করা হবে না। (Icb635, b/186318448)
- Modifier.combinedClickable ব্যবহার করার সময় কখনও কখনও দীর্ঘক্ষণ ক্লিক করলে রিপেল / অন্যান্য ইঙ্গিত আটকে যাওয়া সংক্রান্ত সমস্যার সমাধান করা হয়েছে (I2298c, b/186223077)
- এখন
detectDragGesures,detectVerticalGesturesওdetectHorizontalGesturesঅটোমেটিক পজিশন পরিবর্তন কনজিউম করবে, onDrag কলব্যাকে change.consumePositionChange কল করার প্রয়োজন নেই (I42fc4, b/185096350, b/187320697) Modifier.onGloballyPositioned()পরিবর্তন করে মডিফায়ার চেনে এই মডিফায়ারের কোঅর্ডিনেট রিপোর্ট করা হয়েছে, সব মডিফায়ার প্রয়োগ করার পরে লেআউট কোঅর্ডিনেট নয়। এর অর্থ হল, এখন মডিফায়ারদের ক্রম নির্ধারণ করছে যে কোন কোঅর্ডিনেট রিপোর্ট করা হবে। (Ieb67d, b/177926591)
ভার্সন 1.0.0-beta07
১৮ মে, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta07 ও androidx.compose.foundation:foundation-layout:1.0.0-beta07 রিলিজ করা হয়েছে। 1.0.0-beta07 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- LazyColumn/Row-এর জন্য পরবর্তী দৃশ্যমান আইটেম প্রিফেচিং লজিক চালু করা হয়েছে (I8a4bc, b/184940225)
- Added Clip Selection Handle (Iff80d, b/183408447)
সমস্যার সমাধান
- LazyColumn/Row এখন আগে থেকে দৃশ্যমান থাকা সর্বাধিক ২টি আইটেম অ্যাক্টিভ (ডিসপোজ করা হয়নি) রাখবে, এমনকি সেগুলি স্ক্রল করে সরিয়ে দেওয়া হলেও। এর ফলে, নতুন আইটেম কম্পোজ করার প্রয়োজন হলে কম্পোনেন্ট অ্যাক্টিভ সাবকম্পোজিশন আবার ব্যবহার করতে পারে, যা স্ক্রল করার পারফর্ম্যান্স উন্নত করে। (Ie5555)
- paintBackground সরিয়ে দিন। (I38660)
- DrawScope ব্যবহার করে বেছে নেওয়ার ব্যাকগ্রাউন্ড আঁকুন। (I73c61, b/186674472)
- ওয়েটেড চিলড্রেন লেআউট করার জন্য স্পেসডবাই অ্যারেঞ্জমেন্ট ব্যবহার করে এমন সারি/কলামকে প্রভাবিত করে এমন beta06 রিগ্রেশন সংক্রান্ত সমস্যা সমাধান করা হয়েছে। (Ifaf8c, b/187326588)
ভার্সন 1.0.0-beta06
৫ মে, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta06 ও androidx.compose.foundation:foundation-layout:1.0.0-beta06 রিলিজ করা হয়েছে। 1.0.0-beta06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- নেভিগেশন জেসচারের সাথে কনফ্লিক্ট সমাধান করা (I1145e)
- অ্যাক্সেসিবিলিটি API-এর CollectionInfo ও CollectionItemInfo যোগ করা হয়েছে যা অ্যাক্সেসিবিলিটি পরিষেবার জন্য সংগ্রহ ও এর আইটেমকে চিহ্নিত করার অনুমতি দেয় (Id54ef, b/180479017)
- নির্দিষ্ট ইন্ডেক্স সহ আইটেমে ইন্ডেক্স করা আইটেম সহ তালিকা স্ক্রল করতে
SemanticsActions.ScrollToIndexযোগ করা হয়েছে এবং কীযুক্ত আইটেম সহ তালিকায় আইটেমের ইন্ডেক্স পেতেSemanticsProperties.IndexForKeyযোগ করা হয়েছে। LazyList-এর মাধ্যমে দুটি অ্যাকশনই প্রয়োগ করা হয়।SemanticsNodeInteraction.performScrollToIndexযোগ করা হয়েছে যা প্রদত্ত ইনডেক্সে একটি তালিকা স্ক্রল করে এবংSemanticsNodeInteraction.performScrollToKeyযা প্রদত্ত কী সহ আইটেমে একটি তালিকা স্ক্রল করে। (I4fe63, b/178483889, b/161584524)
- TextFieldValue.Saver-এ AnnotatedString সেভ করার সুবিধা। AnnotatedString.Builder-এ addTtsAnnotation এবং withAnnotation ইউটিলিটি ফাংশন যোগ করা হয়েছে (I8cbdc, b/178446304)
PaddingValues(horizontal, vertical)-এ ডিফল্ট0.dpপ্যারামিটার ভ্যালু যোগ করা হয়েছে (I05571, b/181336792)
সমস্যার সমাধান
weight(fill = false)সহ সারি ও কলাম চিলড্রেন আর উপলভ্য সম্পূর্ণ প্রধান অ্যাক্সিস স্পেস পূরণ করছে না। (Ied94d, b/186012444, b/184355105)
ভার্সন 1.0.0-beta05
২১ এপ্রিল, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta05 ও androidx.compose.foundation:foundation-layout:1.0.0-beta05 রিলিজ করা হয়েছে। 1.0.0-beta05 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
- FlingBehavior ইন্টারফেস এখন @Stable হিসেবে চিহ্নিত করা হয়েছে। সব প্রয়োগকে
@Stableচুক্তি মেনে চলতে হবে। (I93354, b/184830577)
সমস্যার সমাধান
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.foundation:foundation:1.0.0-beta04 ও androidx.compose.foundation:foundation-layout:1.0.0-beta04 রিলিজ করা হয়েছে। 1.0.0-beta04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- SoftwareKeyboardController-এ hideSoftwareKeyboard ও showSoftwareKeyboard-এর নাম পরিবর্তন করে
যথাক্রমে
hide()ওshow()করুন।- LocalSoftwareKeyboardController-এর জন্য সম্পূর্ণ CompositionLocal ইন্টারফেস প্রদান করুন, যাতে এটি সেট করা যায় (বিশেষ করে পরীক্ষার ক্ষেত্রে এটি কাজে লাগে) (I579a6)
TextOverflow.Visible-এর ব্যাপারে জানানো হয়েছে। (Ic8f89)RowScope,ColumnScope,BoxScope,BoxWithConstraintsScope-এর সর্বজনীন ইনস্ট্যান্স সরিয়ে দেওয়া হয়েছে। (I4e83e, b/181869067)
সমস্যার সমাধান
- দ্রুত ফ্লিং করার পরে, এজে থাকা
LazyColumn/LazyRowআইটেম ভুলভাবে পজিশন করা হলে সেই সমস্যা সমাধান করা হয়েছে (Ie4d13, b/183877420) এই পরিবর্তনের আগে, স্থানীয় কম্পোজ করার উপযুক্ত ফাংশন তাদের প্যারামিটারের উপর ভিত্তি করে এড়িয়ে যাওয়া যেত। এই পরিবর্তনের পরে, কোনও লোকাল কম্পোজ করার উপযুক্ত ফাংশন এড়িয়ে যাওয়া হবে না। এই পরিবর্তন করা হয়েছে কারণ প্যারেন্ট থেকে প্যারামিটার ক্যাপচার করা লোকাল ফাংশনের ক্ষেত্রে সাধারণ ও প্রত্যাশিত এবং সেগুলি বাদ দেওয়া হল বাগ হওয়ার সাধারণ কারণ।
সংক্ষেপে, এই উদাহরণটি বিবেচনা করুন:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }এই পরিবর্তনের আগে,
countপ্যারামিটার আপডেট করা হলেওShowCountকম্পোজ করার উপযুক্ত ফাংশন সবসময় এড়িয়ে যাওয়া হত। এখন আর তা হয় না। (I5648a)
ভার্সন 1.0.0-beta03
২৪ মার্চ, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta03 ও androidx.compose.foundation:foundation-layout:1.0.0-beta03 রিলিজ করা হয়েছে। 1.0.0-beta03 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
DefaultMonotonicFrameClockবন্ধ করা হয়েছে।MonotonicFrameClockনা দিয়েwithFrameNanosবাRecomposer.runRecomposeAndApplyChanges-এ কল করলেIllegalStateExceptionদেখানো হবে। (I4eb0d)
সমস্যার সমাধান
- ভেলোসিটি ০ (I0b6e5, b/181237123) হলেও এখন
FlingBehavior.performFling()কল করা হয়
ভার্সন 1.0.0-beta02
১০ মার্চ, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta02 ও androidx.compose.foundation:foundation-layout:1.0.0-beta02 রিলিজ করা হয়েছে। 1.0.0-beta02 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- LazyColumn-এর পরিমাপ সংক্রান্ত যুক্তিতে একাধিক ছোটখাটো অপ্টিমাইজেশন যোগ করা হয়েছে (Ic6889)
- TextField-এ আগের SoftwareKeyboardController ইন্টারফেস
পরিবর্তন করতে নতুন
LocalSoftwareKeyboardControllercomposition local API যোগ করা হয়েছে। (I5951e, b/168778053) - TextField-এ আগের SoftwareKeyboardController ইন্টারফেস
পরিবর্তন করতে নতুন
LocalSoftwareKeyboardControllercomposition local API যোগ করা হয়েছে। (I84472, b/168778053)
সমস্যার সমাধান
- এক্সপেরিমেন্টাল API-এর (I6aa29, b/174531520) সর্বজনীন ব্যবহারের উপর বিধিনিষেধ আরোপ করা
ভার্সন 1.0.0-beta01
২৪ ফেব্রুয়ারি, ২০২১
androidx.compose.foundation:foundation:1.0.0-beta01 ও androidx.compose.foundation:foundation-layout:1.0.0-beta01 রিলিজ করা হয়েছে। 1.0.0-beta01 ভার্সনে এইসব কমিট আছে।
এটি হল Compose 1.0.0 Beta-এর প্রথম রিলিজ।
API-তে পরিবর্তন
detectDragGestures-এ onStart কলব্যাক যোগ করা হয়েছে (I67269, b/179995594)- ইনট্রিনসিকের সাইজিংয়ের জন্য মডিফায়ার আর পরীক্ষামূলক নয়। (I15744)
- সরানো dp অ্যাসার্শন (I798d2)
- নতুন API শীঘ্রই প্রকাশ করা হবে, তাই সব টেক্সট ফিল্ড থেকে SoftwareKeyboardController কলব্যাক সরিয়ে দেওয়া হয়েছে। (Iae869, b/168778053)
- 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)
- পুরনো হয়ে যাওয়া LayoutCoordinates পদ্ধতি সরানো হয়েছে, positionInParent ও boundsInParent-এর জন্য প্রপার্টির পরিবর্তে ফাংশন ব্যবহার করুন (I580ed, b/169874631, b/175142755)
- CoreTextField-এর মতো লো লেভেল টেক্সট কম্পোনেন্ট থেকে ইনপুট সেশনের জন্য নতুন TextInputSession তৈরি করা হয়েছে। (I8817f, b/177662148)
- Placeable এখন measuredSize দেখায়, এটি সেই সাইজ যা চাইল্ড লেআউট আসলে পরিমাপ করে। এই সাইজ পরিমাপ সংক্রান্ত বিধিনিষেধ মেনে নাও চলতে পারে। (Ib2729, b/172560206, b/172338608)
- অ্যাক্সেসিবিলিটির উদ্দেশ্যে ট্যাব বা রেডিও বোতামের সংগ্রহকে চিহ্নিত করার অনুমতি দেয় এমন selectionGroup মডিফায়ার যোগ করুন (Ie5c29)
LazyListState.animateScrollToItem যোগ করুন
এই পদ্ধতিটি তালিকার একটি নির্দিষ্ট আইটেমে স্মুথ স্ক্রল করে। (I4bfd7)
ScrollableState.smoothScrollBy()-এর নাম পরিবর্তন করে animateScrollBy() করা হয়েছে LazyListState.snapToItemIndex()-এর নাম পরিবর্তন করে scrollToItem() করা হয়েছে ScrollState.smoothScrollTo()-এর নাম পরিবর্তন করে animateScrollTo() করা হয়েছে (I35ded)
Modifier.zoomable-এর পরিবর্তে Modifier.transformable ব্যবহার করা হচ্ছে। smoothPanBy, smoothRotationBy-কে কার্যকারিতা হিসেবে যোগ করা হয়েছে। (Ifc32b, b/175294473)
compositionLocalOfওstaticCompositionLocalOf-এর জন্যdefaultFactoryএখন প্রয়োজন, ঐচ্ছিক নয়।যেখানে কোনও ডিফল্ট ফ্যাক্টরি প্রদান করা হয়নি, সেখানে এই পরিবর্তনটি নন-নাল টাইপের জন্য সম্ভাব্য টাইপ সংক্রান্ত সমস্যা সরিয়ে দেয়। আগে এটি নন-নাল ধরনের জন্য একটি নাল রেফারেন্স প্রদান করত।
নাল হতে পারে এমন ধরনের জন্য,
{ null }কে ডিফল্ট ফ্যাক্টরি হিসেবে সাপ্লাই করার কথা বিবেচনা করুন।আমরা নাল মান গ্রহণ করে না এমন ধরনের লোকাল ভেরিয়েবল ব্যবহার করার সাজেশন দিই না, যদি না কোনও যুক্তিসঙ্গত ডিফল্ট মান প্রদান করা যায়। কোনও উপযুক্ত ডিফল্ট না থাকলে,
defaultFactorylambda-কে একটি ব্যতিক্রম দেখাতে হবে। তবে, কোনও ব্যতিক্রম ঘটানো মানে হল যে লোকালের কনজিউমারদের এটি প্রদান করার উপর একটি অন্তর্নিহিত নির্ভরতা থাকবে যা টাইপ সিস্টেম দ্বারা এনফোর্স করা হয় না। (Ifbd2a)Indication#createIndication()পরিবর্তন করেIndication#rememberUpdatedIndication(InteractionState)করা হয়েছে এবং IndicationInstance#drawIndication()থেকেInteractionStateপ্যারামিটার সরিয়ে দেওয়া হয়েছে। InteractionState-এ পরিবর্তনের উত্তরে অ্যানিমেশন লঞ্চ করা / স্টেট লেখা নয়, শুধুমাত্র ভিজ্যুয়াল এফেক্ট আঁকার দায়িত্ব IndicationInstance-এর। এইসব অ্যানিমেশন ও স্টেট রাইটrememberUpdatedIndication()-এর মধ্যে হওয়া উচিত।Modifier.indication-এরindicationপ্যারামিটারও পরিবর্তন করে প্রয়োজনীয় প্যারামিটার করা হয়েছে। (Ic1764, b/152525426)টেক্সট অ্যাকশন এখন অটোমেটিক ফোকাস চেক করে (I13777, b/179648629)
সরানো হয়েছে
runBlockingWithManualClock(I15cdc, b/179664814)Modifier.verticalScroll()/horizontalScroll()-এ স্ক্রল পজিশন এখন Ints দিয়ে দেখানো হয় (I81298)
smoothScrollBy ও scrollBy পদ্ধতির প্যাকেজ পরিবর্তন করে
androidx.compose.foundation.gestures.*করা হয়েছে (I3f7c1, b/175294473)FlingConfig-এর নাম পরিবর্তন করে FlingBehavior করা হয়েছে। এখন এটি পূর্বনির্ধারিত Decays-এর পরিবর্তে সাসপেন্ড অ্যানিমেশন কাস্টমাইজ করার অনুমতি দেয়। (I02b86, b/175294473)
সাইজ মডিফায়ারগুলির নাম পরিবর্তন করা হয়েছে। Modifier.width/height/size-এর নাম পরিবর্তন করে requiredWidth/requiredHeight/requiredSize করা হয়েছে। Modifier.preferredWidth/preferredHeight/preferredSize-এর নাম পরিবর্তন করে width/height/size করা হয়েছে। (I5b414)
defaultMinSizeConstraints-এর নাম পরিবর্তন করে defaultMinSize করা হয়েছে। (I4eaae)
Modifier.tapGestureFilter সরিয়ে দেওয়া হয়েছে। পরিবর্তে
Modifier.pointerInput { detectTapGestures(...) }ব্যবহার করুন। (I266ed, b/175294473)পয়েন্টার ইনপুট সিস্টেম থেকে আংশিক কনজাম্পশন সরিয়ে দেওয়া হয়েছে। আংশিক কনজাম্পশন কোঅর্ডিনেট করার সাজেস্ট করা উপায় হল Modifier.nestedScroll. (Ie9c9b)
ওরিয়েন্টেশন ফাউন্ডেশন প্যাকেজে সরিয়ে দেওয়া হয়েছে। VelocirtTracker ui.gesture থেকে ui.input.pointer-এ সরানো হয়েছে। (Iff4a8, b/175294473)
AnimationClockObservable ও এর সাবক্লাস সরিয়ে দেওয়া হয়েছে। AnimatedFloat সরিয়ে দেওয়া হয়েছে। (Icde52, b/177457083)
drawerState.open() এবং drawerState.close() এখন সাসপেন্ড করা ফাংশন। সেগুলিকে কল করার জন্য কম্পোজিশনের স্কোপ পেতে rememberCoroutineScope() ব্যবহার করুন (I16f60, b/175294473)
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)
Modifier.scrollable-এর উপর নতুন করে কাজ করা হয়েছে। এখন এটি ScrollableController ক্লাসের পরিবর্তে স্ক্রল করা যায় এমন ইন্টারফেস ব্যবহার করে (I4f5a5, b/174485541, b/175294473)
Modifier.draggable এখন সাধারণ ল্যাম্বডার পরিবর্তে DraggableState গ্রহণ করে। আগের মতো একই আচরণ পেতে আপনি
rememberDraggableState { delta -> }-এর মাধ্যমে স্টেট তৈরি করতে পারবেন (Ica70f, b/175294473)আসল সাইজের জন্য প্রয়োজনীয় সাইজিংয়ের জন্য requiredWidth(IntrinsicSize) ও requiredHeight(IntrinsicSize) মডিফায়ার যোগ করা হয়েছে। (I0a6b4)
বন্ধ করে দেওয়া
emptyContent()সরিয়ে দেওয়া হয়েছে। পরিবর্তে{}ব্যবহার করুন। (Idb33f, b/179432510)আগে বাতিল করা কিছু API মুছে দেওয়া হয়েছে (Ice5da, b/178633932)
সমস্যার সমাধান
- TextField-এ আগের SoftwareKeyboardController ইন্টারফেস পরিবর্তন করতে নতুন LocalSoftwareKeyboardController কম্পোজিশন local API যোগ করা হয়েছে। (I658b6, b/168778053)
ভার্সন 1.0.0-alpha12
১০ ফেব্রুয়ারি, ২০২১
androidx.compose.foundation:foundation:1.0.0-alpha12 ও androidx.compose.foundation:foundation-layout:1.0.0-alpha12 রিলিজ করা হয়েছে। 1.0.0-alpha12 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
- Modifier.pointerInput-এর এখন মনে রাখার কী প্রয়োজন হয়, যাতে নতুন ডিপেন্ডেন্সির জন্য পয়েন্টার ইনপুট ডিটেকশন কোরাউটিন কখন রিস্টার্ট করতে হবে তা বোঝা যায়। (I849cd)
- টেস্টিং আপডেট: hasText() টেক্সট ফিল্ডে ইনপুট ও লেবেল/হিন্ট/প্লেসহোল্ডার টেক্সট, দু'টিই চেক করবে (Iab803)
- PaddingValues.Absolute যোগ করা হয়েছে এবং PaddingValues গ্রহণ করে এমন API-তে ব্যবহার করা যেতে পারে। (Ia5f30)
- onImeActionPerformed বাতিল করা হয়েছে। এর পরিবর্তে KeyboardActions ব্যবহার করুন (If0bbd, b/179071523)
- ImageBitmap ও ImageVector-এর সাথে নামের কনভেনশন আরও ভালোভাবে ম্যাচ করানোর জন্য, ImagePainter-এর নাম পরিবর্তন করে BitmapPainter রাখা হয়েছে, যা VectorPainter-এর সমান্তরাল। (Iba381, b/174565889)
- সাবস্ট্রিং এখন আর্গুমেন্ট হিসেবে (Icbe78) সহ আরও ভাল সাবস্ট্রিং টেস্ট API
InfiniteAnimationPolicyকোরাউটিন কনটেক্সট এলিমেন্ট যোগ করা হয়েছে যা অসীম অ্যানিমেশনে প্রয়োগ করা হবে।ComposeTestRule-এর সাথে পরীক্ষা চালানোর সময় ছাড়া ডিফল্ট হিসেবে কোনও নীতি ইনস্টল করা হয় না। (I50ec4, b/151940543)- Animatable.snapTo ও Animatable.stop এখন সাসপেন্ড ফাংশন (If4288)
- ComponentActivity.setContent androidx.activity:activity-compose মডিউলের মধ্যে androidx.activity.compose.setContent-এ সরানো হয়েছে। (Icf416)
- ডিস্ট্রাকচারিং ও copy() পদ্ধতিকে বিভিন্ন ক্লাস থেকে সরিয়ে দেওয়া হয়েছে, কারণ সেগুলি খুব কমই ব্যবহার করা হত। (I26702, b/178659281)
LazyColumn/LazyRow-এর জন্য কাস্টম কী কাজ করে। এর ফলে আমরা আইটেম আবার অর্ডার করার বিষয়টি আরও স্মার্টভাবে ম্যানেজ করতে পারি। তাই, আপনি মনে রাখুন {} ব্লকে যে স্টেট সেভ করেছেন, এলিমেন্ট আবার সাজালে বা মাঝখান থেকে আইটেম সরিয়ে দিলে, সেটি আইটেমের সাথে একসাথে সরে যাবে।
LazyColumn { items(users, key = { user -> user.id }) { ... } }Changed Indication#createInstance-কে @Composable হিসেবে পরিবর্তন করা হয়েছে এবং LocalIndication-কে পরিবর্তন করে এতে () -> Indication-এর পরিবর্তে Indication রাখা হয়েছে। (I5eeea, b/157150564)
Constraints.enforce-এর পরিবর্তেConstraints.constrainব্যবহার করা হয়েছে। (I8b8ea)loadFontResource বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে fontResource ব্যবহার করুন। imageResource, loadImageResource, vectorResource এবং loadVectorResource বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে painterResource ব্যবহার করুন। (I6b809)
পারফর্ম্যান্সের কারণে, ScrollAxisRange সিম্যান্টিক এখন সরাসরি Float ভ্যালুর পরিবর্তে Float রিটার্ন করা ল্যাম্বডা নেয়। (If4a35, b/178657186)
অ্যাক্সেসিবিলিটির জন্য টেক্সট ফিল্ডের এডিট করা যায় এমন ইনপুট টেক্সট চিহ্নিত করতে EditableText সিম্যান্টিক্স এবং সিম্যান্টিক্স চেক করার জন্য সংশ্লিষ্ট টেস্ট পদ্ধতি যোগ করা হয়েছে (I8e07a)
Modifier.clickable-এ এখন ডবল ও লং ক্লিক কাজ করে না। এই কার্যকারিতা পেতে Modifier.combinedClickable ব্যবহার করুন। (Iafad1)
toIntPx() ফাংশনের নাম পরিবর্তন করে roundToPx() করা হয়েছে। (I9b7e4, b/173502290)
IntBounds-এর নাম পরিবর্তন করে IntRect করা হয়েছে এবং API উন্নত করা হয়েছে। (I1f6ff)
Modifier.dragGestureFilter ব্যবহার করা বন্ধ করে দেওয়া হয়েছে। পরিবর্তে
Modifier.pointerInput { detectDragGestures (...)}ব্যবহার করুন। অথবা, এক অ্যাক্সিস ড্র্যাগ করার জন্য Modifier.draggable ব্যবহার করুন (I0ba93, b/175294473)Ambient-এর নাম পরিবর্তন করে CompositionLocal-এর সাথে ম্যাচ করানো হয়েছে। আগে অ্যাম্বিয়েন্টকে AmbientFoo নামে ডাকা হত, এখন CompositionLocals-কে LocalFoo নামে ডাকা হয়। (I2d55d)
বেছে নেওয়া আইটেমটি ফাউন্ডেশনে সরানো হয়েছে। (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)
অ্যানিমেশনে প্লেটাইম এখন ন্যানোসেকেন্ডে ইউনিফাই করা হয়েছে (If776a)
তিনটি আরও নির্দিষ্ট অ্যানোটেশনের জন্য @ComposableContract বাতিল করা হয়েছে।
@ComposableContract(restartable = false)এখন@NonRestartableComposable@ComposableContract(readonly = true)এখন@ReadOnlyComposable@ComposableContract(preventCapture = true)এখন@DisallowComposableCalls@ComposableContract(tracked = true)সরিয়ে দেওয়া হয়েছে। (I60a9d)emptyContent()ও(@Composable () -> Unit).orEmpty()ইউটিলিটি আর ব্যবহার করা হয় না কারণ এগুলি আর কোনও ইতিবাচক পারফর্ম্যান্স প্রভাব বা ভ্যালু প্রদান করে না (I0484d)এখন রিকম্পোজার বন্ধ করা যাবে। বন্ধ হয়ে যাওয়া রিকম্পোজাররা কম্পোজিশন চাইল্ড কোরাউটিন সম্পূর্ণ না হওয়া পর্যন্ত রিকম্পোজিশন চালিয়ে যাবে। Recomposer.shutDown-এর নাম পরিবর্তন করে cancel করা হয়েছে, যাতে close-এর সাথে এর পার্থক্য বোঝা যায়। (Ib6d76)
LazyVerticalGrid সম্পর্কিত API-কে এক্সপেরিমেন্টাল (Ia53e3, b/178519862) হিসেবে চিহ্নিত করা হয়েছে
rememberSavedInstanceState() ফাংশনের নাম পরিবর্তন করে rememberSaveable() করা হয়েছে এবং এটি androidx.compose.runtime.saveable প্যাকেজে সরানো হয়েছে। (I1366e, b/177338004)
RestorableStateHolder-এর নাম পরিবর্তন করে SaveableStateHolder করা হয়েছে এবং এটি androidx.compose.runtime.saveable প্যাকেজে সরানো হয়েছে। ইনার মেথড RestorableStateProvider-এর নাম পরিবর্তন করে SaveableStateProvider করা হয়েছে। জেনেরিক ধরন সরিয়ে দেওয়া হয়েছে, তাই আপনি শুধু Any-কে কী হিসেবে পাস করতে পারবেন। পরীক্ষামূলক অ্যানোটেশন আর প্রয়োজন নেই। (I0902e, b/174598702)
Saver, listSaver(), mapSaver(), autoSaver-কে androidx.compose.runtime.savedinstancestate থেকে androidx.compose.runtime.saveable-এ সরানো হয়েছে (I77fe6)
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)
RTL ডিরেকশনে শেপের অটোমেটিক মিররিং কাজ করানোর জন্য RounderCornerShape, CutCornerShape ও CornerBasedShape-এর প্যারামিটারগুলির নাম বাঁদিক/ডানদিক থেকে পরিবর্তন করে শুরু/শেষ করা হয়েছে। অটো-মিররিং না চাইলে, সেইসব ক্ষেত্রে AbsoluteRounderCornerShape এবং AbsoluteCutCornerShape ব্যবহার করা হয়। (I61040, b/152756983)
Modifier.scrollable থেকে canDrag সরিয়ে দেওয়া হয়েছে। (Id66e7, b/175294473)
Compose কম্পাইলার প্লাগ-ইন যে API-কে টার্গেট করে সেটি রিফ্যাক্টর করা হয়েছে যাতে কংক্রিট ক্লাসের পরিবর্তে ইন্টারফেস ব্যবহার করা যায়। এছাড়াও, ইন্টারফেসটি আর কোনও টাইপ প্যারামিটার ব্যবহার করে না।
এটি একটি ইন্টার্নাল পরিবর্তন যা সোর্স কোড কম্প্যাটিবিলিটির উপর প্রভাব ফেলবে না, তবে এটি একটি বাইনারি ব্রেকিং পরিবর্তন। (I3b922, b/169406779)
Modifier.scaleGestureFilter সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে Modifier.zoomable ব্যবহার করুন। অথবা,
Modifier.pointerInput { detectMultitouchGestures { ... }}(Id5da1, b/175294473) ব্যবহার করুনAnimatedValue/Float এখন আর ব্যবহার করা হয় না। পরিবর্তে Animatable ব্যবহার করুন। (I71345, b/177457083)
- পাবলিক API থেকে CoreText ও CoreTextField সরানো হয়েছে
- বন্ধ করে দেওয়া SelectionContainer ওভারলোড (I99c19) সরানো হয়েছে
সাসপেন্ড না করা স্ক্রল করার পুরনো ফাংশন সরানো হয়েছে আগের রিলিজের পরিবর্তনগুলি চালিয়ে নিয়ে, সাসপেন্ড না করা স্ক্রল করার ফাংশন এখন সম্পূর্ণভাবে সরিয়ে দেওয়া হয়েছে। একই নামের সাসপেন্ড ফাংশনে কনভার্ট করুন। CoroutineScope rememberCoroutineScope() ব্যবহার করে পাওয়া যেতে পারে। (I3d39c, b/178169563)
androidx.constraintlayout.compose.ConstraintLayout-এর পরিবর্তে androidx.compose.foundation.layout.ConstraintLayout বন্ধ করা হয়েছে। আপনাকে
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01-এর উপর নির্ভরতা যোগ করতে হবে। (I87adc)tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter এবং pressIndicaitonGestureFilter বন্ধ করা হয়েছে। এর পরিবর্তে detectTapGestures ফাংশনের সাথে Modifier.clickable বা Modifier.pointerInput ব্যবহার করুন। (I6baf9, b/175294473)
Recomposer.current()সরানো হয়েছে। [সারসংক্ষেপ]ComposeView এখন ডিফল্ট হিসেবে লেজি ক্রিয়েটেড, উইন্ডো-স্কোপড রিকম্পোজার দ্বারা পরিচালিত হয় উইন্ডোর জন্য ViewTreeLifecycleOwner. হোস্ট লাইফসাইকেল বন্ধ থাকাকালীন রিকম্পোজিশন এবং withFrameNanos-ভিত্তিক অ্যানিমেশন টিক পজ করা থাকে। (I38e11)Recomposer.runningRecomposers এখন প্রসেসে চলমান কম্পোজিশন স্টেট পর্যবেক্ষণ করার জন্য রিড-অনলি RecomposerInfo-এর একটি গ্লোবাল StateFlow অফার করে। Recomposer.current()-এর পরিবর্তে এই API ব্যবহার করুন, এটি এখন অননুমোদিত। (If8ebe)
ভার্সন 1.0.0-alpha11
২৮ জানুয়ারি, ২০২১
androidx.compose.foundation:foundation:1.0.0-alpha11 ও androidx.compose.foundation:foundation-layout:1.0.0-alpha11 রিলিজ করা হয়েছে। 1.0.0-alpha11 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
সাসপেন্ড না করা scrollBy-কে বাতিল করা, সাসপেন্ড না করা scrollTo-কে সরানো
আমরা এখন স্ক্রলিং কন্ট্রোল করতে এবং স্ক্রল সম্পূর্ণ হওয়ার জন্য অপেক্ষা করতে সাসপেন্ড ফাংশন ব্যবহার করার সাজেশন দিই। এই ট্রানজিশনের অংশ হিসেবে আমরা এইসব ফাংশনের সাসপেন্ড করা যায় না এমন ভার্সন বন্ধ করে দিচ্ছি এবং/অথবা সরিয়ে দিচ্ছি। (Ie9ced)
নন-সাসপেন্ড smoothScrollBy-এর ব্যবহার বন্ধ করা আমরা এখন স্ক্রলিং কন্ট্রোল করতে সাসপেন্ড ফাংশন ব্যবহার করার সাজেশন দিই এবং স্ক্রল শেষ হওয়ার জন্য অপেক্ষা করি। এই ট্রানজিশনের অংশ হিসেবে আমরা এই ফাংশনের সাসপেন্ড না করা ভার্সন বন্ধ করে দিচ্ছি। (I12880)
ছবি ও আইকনে কন্টেন্টের বিবরণ সংক্রান্ত প্যারামিটার যোগ করা হয়েছে। অ্যাক্সেসিবিলিটি পরিষেবার (I2ac4c) বিবরণ প্রদান করতে এটি ব্যবহার করা হয়
BasicTextField-এ 'decorationBox' নামের একটি নতুন প্যারামিটার যোগ করা হয়েছে। এটি আইকন, প্লেসহোল্ডার, লেবেল এবং টেক্সট ফিল্ডের মতো সজ্জা যোগ করতে এবং এর হিট টার্গেট এরিয়া বাড়াতে দেয়। (I16996)
Modifier.draggable থেকে canDrag প্যারামিটার সরিয়ে দেওয়া হয়েছে (Ic4bec, b/175294473)
FlingConfig গ্রহণ করে এমন AnimatedFloat.fling সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে suspend Animatable.animateDecay ব্যবহার করুন। (I4659b, b/177457083)
নিচের ক্লাস থেকে
data classসরানো হয়েছে:- InlineTextContent
- LocaleList
- (I605c7)
ক্লিক করা যায়, টগল করা যায় ও বেছে নেওয়া যায় এমন আইটেম এখন কম্পোজিশনের বাইরে তৈরি করা যাবে (I0a130, b/172938345, b/175294473)
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)পুরনো হয়ে যাওয়া AbsoluteArrangement সরিয়ে দেওয়া হয়েছে। (Iffa96, b/177641870)
ইনকামিং ন্যূনতম বিধিনিষেধ Box-এর কন্টেন্টে পাস করা উচিত কিনা তা নির্দিষ্ট করার জন্য Box-এ propagateMinConstraints প্যারামিটার যোগ করা হয়েছে। ডিফল্ট হিসেবে false থাকে। (I0125b, b/152613457)
সমস্যার সমাধান
- SideEffect এবং DisposableEffect API-এর (If760e) পরিবর্তে onCommit, onDispose এবং onActive বন্ধ করে দেওয়া হয়েছে
- WithConstraints-এর নাম পরিবর্তন করে BoxWithConstraints করা হয়েছে এবং এটিকে foundation.layout-এ সরানো হয়েছে। (I9420b, b/173387208)
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)
অ্যারেঞ্জমেন্ট ইন্টারফেসের জন্য ডেনসিটি এখন রিসিভার স্কোপ। (I18aad)
TextFieldValue AnnotatedString গ্রহণ করে। তবে এটি শুধুমাত্র একটি API পরিবর্তন এবং মাল্টি-স্টাইল টেক্সট এডিটিং এখনও কার্যকর করা হয়নি।
- EditingBuffer কনস্ট্রাক্টর প্যারামিটার থেকে
initialসরানো হয়েছে। (I326d5)
- EditingBuffer কনস্ট্রাক্টর প্যারামিটার থেকে
invalidate এবং compositionReference() এখন যথাক্রমে currentRecomposeScope এবং rememberCompositionReference-এর পরিবর্তে ব্যবহার করা হয়। (I583a8)
kotlin.CharSequence থেকে এক্সটেন্ড করার জন্য AnnotatedString পরিবর্তন করা হয়েছে। তাই, length ও subSequence এখন ইনস্ট্যান্স ফাংশন, এবং এক্সটেনশন ফাংশন সরিয়ে দেওয়া হয়েছে। (Iaf429)
সময়সীমা ও আপটাইমকে বড় মিলিসেকেন্ড দিয়ে পরিবর্তন করা হবে, এবং এই ধাপটি সেইসব ক্লাসে পয়েন্টার ইনপুটের নির্ভরতা সরিয়ে দেয়। (Ia33b2, b/175142755, b/177420019)
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)TransformedText.transformedText-এর নাম পরিবর্তন করে TransformedText.text করা হয়েছে
- TransformedText আর ডেটা ক্লাস (Ie672a) নয়
নিম্নলিখিত ক্লাসগুলি আর ডেটা ক্লাস নয়:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
পরীক্ষামূলক monotonicFrameAnimationClockOf পদ্ধতি (Ib753f, b/170708374) সরানো হয়েছে
পুরনো গ্লোবাল কোঅর্ডিনেট পদ্ধতি সরিয়ে দিয়ে নতুন উইন্ডো-ভিত্তিক কোঅর্ডিনেট পদ্ধতি যোগ করা হয়েছে। (Iee284)
ImeAction.NoAction-এর পরিবর্তে ImeAction.None ব্যবহার করুন
- ImeAction.Unspecified (Ie1bcc)-এর পরিবর্তে ImeAction.Default ব্যবহার করুন
FocusRequester.createRefs এখন পরীক্ষামূলক হিসেবে চিহ্নিত করা হয়েছে কারণ এটি পরিবর্তন হতে পারে। (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden-এর নাম পরিবর্তন করে invisibleToUser করা হয়েছে এবং @ExperimentalComposeUiApi হিসেবে চিহ্নিত করা হয়েছে। AccessibilityRangeInfo-এর নাম পরিবর্তন করে ProgressBarRangeInfo করা হয়েছে। stateDescriptionRange-এর নাম পরিবর্তন করে progressBarRangeInfo করা হয়েছে। AccessibilityScrollState-এর নাম পরিবর্তন করে ScrollAxisRange করা হয়েছে। horizontalAccessibilityScrollState-এর নাম পরিবর্তন করে horizontalScrollAxisRange করা হয়েছে। verticalAccessibilityScrollState-এর নাম পরিবর্তন করে verticalScrollAxisRange করা হয়েছে। (Id3148)
VisualTransformation-কে ফাংশনাল ইন্টারফেস হিসেবে পরিবর্তন করা হয়েছে (I3bba4)
টেস্টিংয়ে TestCoroutineDispatcher ব্যবহার করা (I532b6)
PointerInputData সরিয়ে দেওয়া হয়েছে এবং PointerInputChange পরিবর্তন করে PointerInputData-এর সব ফিল্ড দেওয়া হয়েছে। PointerInputEvent ও PointerInputEventData ইন্টার্নাল করা হয়েছে কারণ সেগুলি কোনও পাবলিক API-তে ব্যবহার করা হয় না। (Ifff97, b/175142755)
TextInputService.onStateUpdated-এর নাম পরিবর্তন করে updateState করা হয়েছে (Id4853)
displaySize সরিয়ে দিন কারণ এটি এড়িয়ে যাওয়া উচিত। সাধারণত, onRoot() বা উইন্ডো সাইজের সাইজ ব্যবহার করা ভাল। (I62db4)
ভার্সন 1.0.0-alpha10
১৩ জানুয়ারি, ২০২১
androidx.compose.foundation:foundation:1.0.0-alpha10 ও androidx.compose.foundation:foundation-layout:1.0.0-alpha10 রিলিজ করা হয়েছে। 1.0.0-alpha10 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- ImeOptions এবং KeyboardOptions আর ডেটা ক্লাস নয় (I3c898, b/168684531)
- VisualTransformation API-তে পরিবর্তন
- OffsetMap-এর নাম পরিবর্তন করে OffsetMapping করা হয়েছে
- OffsetMapping.identityOffsetMap-এর নাম পরিবর্তন করে OffsetMapping.Identity করা হয়েছে
- PasswordTransformation আর ডেটা-ক্লাস নয়
- OffsetMapping-কে নিজস্ব ফাইলে সরানো হয়েছে
- (I0bdf3)
- EditOperations API-তে পরিবর্তন
- EditOperation-এর নাম পরিবর্তন করে EditCommand করা হয়েছে
- EditOperation কনক্রিট ইমপ্লিমেন্টেশনের জন্য কমান্ড সাফিক্স যোগ করা হয়েছে
- EditCommand আর ডেটা ক্লাস নয়
- EditOperation.process ফাংশনের নাম পরিবর্তন করে applyTo করা হয়েছে
- InputEventListener-এর নাম পরিবর্তন করে InputEventCallback করা হয়েছে
- (I0a366)
- পরিবর্তিত ভেলোসিটিতে কম্পোনেন্ট পার্ট ও গাণিতিক অপারেশন থাকতে হবে। (Ib0447)
- একই ধরনের পরীক্ষামূলক API অ্যানোটেশনের (Ia4502, b/171464963) সাথে সামঞ্জস্যপূর্ণ হতে @ExperimentalTesting-এর নাম পরিবর্তন করে @ExperimentalTestApi করা হয়েছে
- LazyColumn/LazyRow-এর জন্য পরীক্ষামূলক stickyHeader পদ্ধতি যোগ করা হয়েছে (I0a81d)
- Color.useOrElse() থেকে Color.takeOrElse() নাম পরিবর্তন করা হয়েছে (Ifdcf5)
- বাতিল করা TestUiDispatcher. এর পরিবর্তে Dispatchers.Main ব্যবহার করুন (Ic171f, b/175385255)
- Toggle to foundation Strings.kt (I4a5b7, b/172366489) যোগ করুন
- nativeClass-কে ui মডিউলে সরানো হয়েছে এবং এটিকে ইন্টার্নাল করা হয়েছে। equals ইমপ্লিমেন্টেশনে nativeClass-এর আপডেট করা ব্যবহার পরিবর্তে 'is MyClass' ব্যবহার করা। (I4f734)
- FlowRow ও FlowColumn বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে কাস্টম লেআউট ব্যবহার করুন। (I09027)
- Modifier.focus() ও Modifier.focusRequester() বন্ধ করা হয়েছে। এর পরিবর্তে Modifier.focusModifier() এবং Modifier.focusReference() ব্যবহার করুন। (I75a48, b/175160751, b/175160532, b/175077829)
- SelectionManager-কে বেছে নেওয়ার মতো আইটেম সংক্রান্ত আপডেট জানানোর জন্য SelectionRegistrar.notifySelectableChange চালু করা হয়েছে। (I6ff30, b/173215242)
fun Dp.isFinite()-কেval Dp.isFinite-এ পরিবর্তন করা হয়েছে (I50e00)- Constraints#satisfiedBy-এর নাম পরিবর্তন করে isSatisfiedBy করা হয়েছে। (I9cf5c)
- নির্দিষ্ট করা নেই এমন কনস্ট্যান্ট সহ ইনলাইন ক্লাসের জন্য isSpecified, isUnspecified এবং useOrElse যোগ করা হয়েছে। (I93f7b, b/174310811)
সমস্যার সমাধান
- নতুন কোরাউটিন-ভিত্তিক API
Animatableযা এর অ্যানিমেশনগুলির মধ্যে পারস্পরিক এক্সক্লুসিভনেস নিশ্চিত করে। মাল্টি-ডাইমেনশনাল ডেকি অ্যানিমেশন (I820f2, b/168014930) কাজ করে এমন নতুন DecayAnimationSpec - বন্ধ করা ও শুধু-পঠনযোগ্য টেক্সট ফিল্ডের জন্য সহায়তা যোগ করা হয়েছে (I35279, b/171040474, b/166478534)
animate()এখনanimateAsState()দিয়ে পরিবর্তন করা হয়েছে, যাT-এর পরিবর্তেState<T>রিটার্ন করে। এর ফলে আরও ভাল পারফর্ম্যান্স পাওয়া যায়, কারণ স্টেট ভ্যালু যেখানে রিড করা হয় সেখানে ইনভ্যালিডেশনের স্কোপ কমিয়ে আনা যায়। (Ib179e)- Semantics রোল API যোগ করুন এবং ক্লিক করা যায়, বেছে নেওয়া যায় ও টগল করা যায় এমন SemanticsModifier-এ প্যারামিটার হিসেবে রোল যোগ করুন। পরিবর্তিত Modifier.progressSemantics যাতে Slider-ও এটি ব্যবহার করতে পারে। (I216cd)
- nativeKeyEvent এখন keyEvent.nativeKeyEvent (I87c57, b/173086397) থেকে অ্যাক্সেস করা যাবে
ভার্সন 1.0.0-alpha09
১৬ ডিসেম্বর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha09 ও androidx.compose.foundation:foundation-layout:1.0.0-alpha09 রিলিজ করা হয়েছে। 1.0.0-alpha09 ভার্সনে এই কমিটগুলি রয়েছে।
API-তে পরিবর্তন
স্ক্রল করা যায় এমন ইন্টারফেস যোগ করা
এর ফলে ScrollState ও LazyListState-কে একটি সাধারণ টাইপ হিসেবে বিবেচনা করা যায় এবং উভয় টাইপ জুড়ে কাস্টম স্ক্রলিং প্রয়োগ করা যায়।
এছাড়াও, এটি smoothScrollBy-কে Scrollable-এর একটি এক্সটেনশন ফাংশনে সরিয়ে দেয়, এই ফাংশনালিটির সুবিধা নেয়। (I2153b)
LazyVerticalGrid যোগ করা হয়েছে। (I17267, b/162213211)
LazyColumnFor, LazyRowFor, LazyColumnForIndexed এবং LazyRowForIndexed শীঘ্রই বন্ধ করা হবে। এর পরিবর্তে LazyColumn ও LazyRow ব্যবহার করুন (I5b48c)
পয়েন্টার ইনপুট API সাসপেন্ড করার জন্য, রিনেম করা হয়েছে HandlePointerInputScope-কে AwaitPointerEventScope এবং handlePointerInput()-কে awaitPointerEventScope() হিসেবে। (Idf0a1, b/175142755)
LazyListState.layoutInfo যোগ করা হয়েছে যা বর্তমানে দৃশ্যমান আইটেমের সাইজ ও অফসেটের তালিকা দেখায় (If8678, b/170472532)
ExperimentalPointerInput অ্যানোটেশন সরানো হয়েছে (Ia7a24)
TextField-এর জন্য InteractionState সহায়তা যোগ করা হয়েছে। (I61d91)
LazyColumn/Row-এর জন্য reverseLayout প্যারামিটার যোগ করুন। এর ফলে
trueআইটেমগুলি নিচ থেকে উপরের দিকে কম্পোজ করা হবে এবংLazyListState.firstVisibleItemIndex == 0-এর অর্থ হল প্রথম আইটেমটি নিচে থাকবে। (I552ae, b/166589935)LazyColumn-এর জন্য verticalArrangement প্যারামিটার যোগ করা হয়েছে। LazyRow-এর জন্য horizontalArrangement প্যারামিটার যোগ করা হয়েছে। ব্যবস্থা আমাদের আইটেমগুলির মধ্যে স্পেসিং যোগ করতে এবং যখন আমাদের কাছে পুরো ন্যূনতম সাইজ পূরণ করার জন্য পর্যাপ্ত আইটেম থাকে না তখন আইটেমগুলির ব্যবস্থা নির্দিষ্ট করতে দেয়। (Icf79a, b/170394300)
detectMultitouchGestures এখন একত্রিত সেন্ট্রয়েড, প্যান, জুম ও রোটেট প্যারামিটার সহ একটি কলব্যাক ব্যবহার করে। (Ie6e1c)
DrawScope-এর সাথে থাকার জন্য ContentDrawScope-কে ui-graphics মডিউলে সরানো হয়েছে। (Iee043, b/173832789)
সমস্যার সমাধান
- অফসেট মডিফায়ারে ল্যাম্বডা এখন 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)
Modifier.focusObserver বন্ধ করা হয়েছে। পরিবর্তে Modifier.onFocusChanged বা Modifier.onFocusEvent ব্যবহার করুন (I30f17, b/168511863, b/168511484)
অটোফিল API এখন পরীক্ষামূলক API এবং এর জন্য অপ্ট-ইন করতে হবে (I0a1ec)
FocusRequester ইনস্ট্যান্স তৈরি করতে ডিস্ট্রাকচারিং ঘোষণা যোগ করা (I35d84, b/174817008)
accessibilityLabel-এর নাম পরিবর্তন করে contentDescription করা হয়েছে। accessibilityValue-এর নাম পরিবর্তন করে stateDescription করা হয়েছে। (I250f2)
SelectionRegistrar-এ একাধিক নতুন ফাংশন যোগ করা হয়েছে এবং onPositionChange-এর নাম পরিবর্তন করে notifyPositionChange করা হয়েছে। (Ifbaf7)
AndroidOwner ইন্টার্নাল (Ibcad0, b/170296980)
InfiniteRepeatableSpec তৈরি করার জন্য নতুন infiniteRepeatable ফাংশন (I668e5)
Applierইন্টারফেস পরিবর্তন করে ট্রি তৈরির প্রক্রিয়াকে আরও সহজ করা হয়েছে। এখন ট্রি উপর থেকে নিচে না তৈরি করে নিচ থেকে উপরে তৈরি করা হয়।insert()পদ্ধতির নাম পরিবর্তন করেinsertTopDown()করা হয়েছে।insertBottomUp()নামে একটি নতুন পদ্ধতি যোগ করা হয়েছে।যে অ্যাপ্লায়ার এডিট করছে, সেটি
insertTopDown()বাinsertBottomUp()ব্যবহার করে ট্রি-তে নোড যোগ করে। কোনটি ভালো পারফর্ম করছে তার উপর নির্ভর করে এটি করা হয়।LayoutNodeওView-এর মতো কিছু ট্রি, টপ-ডাউন পদ্ধতির তুলনায় বটম-আপ পদ্ধতিতে অনেক বেশি দক্ষতার সাথে তৈরি করা যায়। এই পরিবর্তনের আগে, বটম-আপ প্রয়োগ করার জন্য ইনসার্ট স্ট্যাকের প্রয়োজন ছিল, যা প্রতিটি অ্যাপ্লায়ারে কপি করতে হত এবং পারফর্ম্যান্সের জন্য বটম-আপ কনস্ট্রাকশনের প্রয়োজন ছিল। এই পরিবর্তনের ফলে,Applierনিচ থেকে উপরে ট্রি তৈরি করতেinsertBottomUp()এবং উপর থেকে নিচে ট্রি তৈরি করতেinsertTopDown()ওভাররাইড করে। (Icbdc2)রাস্টারাইজড অ্যাসেট ফর্ম্যাট (যেমন PNG) বা VectorDrawables থেকে অস্বচ্ছভাবে লোড করা Painter অবজেক্ট ম্যানেজ করতে painterResource API যোগ করা হয়েছে। গ্রাহকদের আর আগে থেকে অ্যাসেটের ধরন নির্ধারণ করতে হবে না এবং Image composables বা painter modifiers-এ ব্যবহার করার জন্য Painter অবজেক্ট পেতে এই মেথড কল করতে পারবেন। (I2c703, b/173818471)
AnnotatedString তৈরি করার জন্য buildAnnotatedString ফ্যাক্টরি ফাংশন যোগ করা হয়েছে। deprecated annotatedString builder function. (Idfe0b)
ভার্সন 1.0.0-alpha08
২ ডিসেম্বর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha08 ও androidx.compose.foundation:foundation-layout:1.0.0-alpha08 রিলিজ করা হয়েছে। 1.0.0-alpha08 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
CoreTextFieldথেকেmaxLinesপ্যারামিটার সরিয়ে দেওয়া হয়েছে। আপনি যদি লাইনের সংখ্যার মাধ্যমে টেক্সট ফিল্ডের উচ্চতা সীমাবদ্ধ করতে চান, তাহলেBasicTextFieldব্যবহার করুন। (Iec002)await*TouchSlop()পদ্ধতি পরিবর্তন করে পয়েন্টার ডাউন শনাক্ত না করার জন্য সেট করা হয়েছে এবং সেগুলির নাম পরিবর্তন করে*OrCancellationকরা হয়েছে। এছাড়াও,orientationLockপ্যারামিটার আর প্রয়োজন নেই। (Ie96e1)- Compose নির্দেশিকা অনুযায়ী সামঞ্জস্য আছে কিনা তা চেক করতে, কম্পোজ করা যায় এমন ল্যাম্বডা প্যারামিটারের নাম ও পজিশনের জন্য লিন্ট চেক যোগ করা হয়েছে।
এছাড়াও, লিন্ট চেক ও নির্দেশিকা অনুযায়ী, কিছু API-এর ট্রেলিং ল্যাম্বডার নাম
childrenথেকেcontent-এ মাইগ্রেট করা হয়েছে। (Iec48e) foundation:foundation-textAPI সরিয়েfoundation:foundation-এ নিয়ে যাওয়া হয়েছে। প্যাকেজ স্ট্রাকচার একই আছে (Id3eb2)- নতুন মাল্টিটাচ জেসচার ডিটেক্টর, যার মধ্যে রোটেট, জুম ও প্যান করার জন্য হেল্পার অন্তর্ভুক্ত। (Ic459d)
- নতুন ড্র্যাগ জেসচার ডিটেক্টর সাসপেন্ডিং পয়েন্টার ইনপুট API, যার মধ্যে ওরিয়েন্টেশন লকিং অন্তর্ভুক্ত। (Icef25)
- VectorAsset-এর নাম পরিবর্তন করে ImageVector করা হয়েছে এবং VectorAsset-এর নাম পরিবর্তন করে Builder করা হয়েছে। এটি API কাউন্সিল নির্দেশিকা অনুসারে ImageVector-এর একটি ইন্টার্নাল ক্লাস। কম্প্যাটিবিলিটির জন্য ImageVector.Builder-এর সাথে লিঙ্ক করতে VectorAssetBuilder-এর typealias যোগ করা হয়েছে। (Icfdc8)
- ImageBitmap-এ ImageAsset ও সম্পর্কিত পদ্ধতিগুলির নাম পরিবর্তন করা হয়েছে। (Ia2d99)
- ui-তে ফাউন্ডেশন সিম্যান্টিক্স প্রপার্টি সরানো হয়েছে (I6f05c)
করুটিন-ভিত্তিক স্ক্রল করার API যোগ করুন:
LazyListState.snapToItem এবং LazyListState.smoothScrollBy যোগ করে, সেইসাথে স্ক্রল কন্ট্রোলের জন্য লোয়ার-লেভেল API যোগ করে। এইসব API স্ক্রলিং কন্ট্রোল করার জন্য একটি সাসপেন্ড ইন্টারফেস প্রদান করে যা স্ক্রল শেষ না হওয়া পর্যন্ত অপেক্ষা করে তারপর রিটার্ন করে। (Ie5642)
BasicTextField, TextField ও OutlinedTextField-এ একটি singeLine প্যারামিটার যোগ করা হয়েছে। টেক্সট ফিল্ডকে একটি অনুভূমিকভাবে স্ক্রল করা যায় এমন লাইন হিসেবে দেখাতে এই প্যারামিটারকে true হিসেবে সেট করুন। (I57004, b/168187755)
নতুন সাসপেন্ডিং পয়েন্টার ইনপুট ব্যবহার করে ট্যাপ, ডবল ট্যাপ, লং প্রেস ও প্রেস ইন্ডিকেশনের জন্য জেসচার ডিটেক্টর যোগ করা হয়েছে। এছাড়াও, কিছু ইউটিলিটি যোগ করা হয়েছে, যা ডেভেলপারদের জন্য তাদের নিজস্ব জেসচার ডিটেক্টর লেখা আরও সহজ করে তোলে। (I00807)
Modifier.focusable-এ ফাউন্ডেশনে যোগ করার প্রয়োজন আছে। সঠিক শব্দার্থ ও অ্যাক্সেসিবিলিটি সহ কোনও কম্পোনেন্টে ফোকাস করার মতো আচরণ যোগ করতে এটি ব্যবহার করুন। (I41eb9, b/152525426, b/162865824)
আগে বন্ধ করে দেওয়া API সরিয়ে দেওয়া হয়েছে: Border সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে BorderStroke ব্যবহার করুন। Modifier.drawBorder সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Modifier.border ব্যবহার করুন। Modifier.gravity সরিয়ে দেওয়া হয়েছে, পরিবর্তে Modifier.align ব্যবহার করুন। Stack সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Box ব্যবহার করুন (I32c2b, b/172470874)
AbsoluteArrangement-এর নাম পরিবর্তন করে Arrangement.Absolute করা হয়েছে। (If26f2)
সমস্যার সমাধান
- 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)
- SubcomposeLayout ঘোষণা থেকে
<T>সরিয়ে দেওয়া হয়েছে। আপনি এখন কোনও ধরন উল্লেখ না করেই এটি ব্যবহার করতে পারবেন। (Ib60c8) - PointerInputData-এর আপটাইম ও পজিশন ফিল্ডকে নন-নাল করা হয়েছে। (Id468a)
- MaterialTheme এখন বেছে নেওয়ার হ্যান্ডেল ও বেছে নেওয়ার ব্যাকগ্রাউন্ডের জন্য সঠিক রঙ সেট করে। বেছে নেওয়ার জন্য ব্যবহৃত রঙ কাস্টমাইজ করতে, নন-ম্যাটেরিয়াল অ্যাপ ম্যানুয়ালি AmbientTextSelectionColors ব্যবহার করতে পারে। (I1e6f4, b/139320372, b/139320907)
- Box-এর অ্যালাইনমেন্ট প্যারামিটারের নাম পরিবর্তন করে contentAlignment রাখা হয়েছে। (I2c957)
- offsetPx মডিফায়ারগুলির নাম পরিবর্তন করে offset করা হয়েছে। এগুলি এখন State-এর পরিবর্তে ল্যাম্বডা প্যারামিটার নিচ্ছে। (Ic3021, b/173594846)
- হোস্ট উইন্ডো ফোকাসে আছে কিনা তা চেক করার জন্য WindowManager.isWindowFocused যোগ করা হয়েছে এবং WindowFocusObserver যা onWindowFocusChanged কলব্যাক প্রদান করে। (I53b2a, b/170932874)
- TextInputService#onStateUpdated-এ resetInput প্যারামিটার যোগ করা হয়েছে (I3e8f5, b/172239032, b/171860947)
- TextFieldValue API আপডেট করা হয়েছে
- TextFieldValue.composition রিড-অনলি করা হয়েছে
- ভুল বেছে নেওয়ার রেঞ্জের জন্য সরানো ব্যতিক্রম (I4a675, b/172239032)
Ambientনামের সাফিক্স সহ পুরনো হয়ে যাওয়া অ্যাম্বিয়েন্ট সরিয়ে দেওয়া হয়েছে এবং সেগুলির জায়গায় Ambient প্রিফিক্স সহ নতুন প্রপার্টি যোগ করা হয়েছে। এটি অন্যান্য অ্যাম্বিয়েন্ট ও Compose API নির্দেশিকা মেনে করা হয়েছে। (I33440)- Android Typeface র্যাপার যোগ করা হয়েছে। আপনি
typefaceফাংশনের মাধ্যমে Android Typeface লোড করতে পারবেন, যেমনtypeface(Typeface.DEFAULT)। এছাড়াও,typefaceFromFontFamily()-এর নাম পরিবর্তন করেtypeface()(I52ab7) করা হয়েছে - মডিফায়ার ফ্যাক্টরি ইন্টার্নালি
androidx.compose.ui.composed {}ব্যবহার করে কিনা তা চেক করার জন্য লিন্ট চেক যোগ করা হয়েছে, এর পরিবর্তে@Composableহিসেবে চিহ্নিত করা হয়েছে। (I3c4bc) - মডিফায়ার ফ্যাক্টরি ফাংশনগুলি মডিফায়ারের এক্সটেনশন হিসেবে ডিফাইন করা হয়েছে কিনা তা চেক করার জন্য লিন্ট চেক যোগ করা হয়েছে, যাতে সেগুলি সাবলীলভাবে একসাথে চেইন করা যায়। (I07981)
- semantics আর্গুমেন্ট mergeAllDescendants-এর নাম পরিবর্তন করে mergeDescendants করা হয়েছে। (Ib6250)
- টেস্টে টাইম কন্ট্রোল (TestAnimationClock ও এর ব্যবহার) এখন পরীক্ষামূলক (I6ef86, b/171378521)
- পুরনো ui-test মডিউল ও এর স্টাব (I3a7cb) সরিয়ে দিন
- অন্যান্য ইউনিটের সাথে সামঞ্জস্য রেখে TextUnit.Inherit-এর নাম পরিবর্তন করে TextUnit.Unspecified করা হয়েছে। (Ifce19)
- অ্যালাইনমেন্ট ইন্টারফেস আপডেট করা হয়েছে এবং এটি এখন কাজ করছে। (I46a07, b/172311734)
foundation:foundation-textমডিউলটিfoundation:foundation-এর (Idac0f) সাথে মার্জ করা হয়েছে- place(Offset) ও placeRelative(Offset) বাতিল করুন। এর পরিবর্তে int অফসেট সহ ওভারলোড ব্যবহার করুন (I4c5e7)
LayoutIdParentData-এর জন্যid-এর নাম পরিবর্তন করেlayoutIdকরা হয়েছে।Measurable.id-এর নাম পরিবর্তন করেMeasurable.layoutIdকরা হয়েছে। (Iadbcb, b/172449643)
ভার্সন 1.0.0-alpha07
১১ নভেম্বর ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 ও androidx.compose.foundation:foundation-text:1.0.0-alpha07 রিলিজ করা হয়েছে। 1.0.0-alpha07 ভার্সনে এইসব কমিট আছে।
API-তে পরিবর্তন
Modifier.fillMaxSize[Width|Height]-এর মতো, আমরা এখনLazyColumn/Row-এর (I797e2, b/166586426) মধ্যেModifier.fillParentMaxSize[Width|Height]-এ ভগ্নাংশ ব্যবহার করতে পারিKeyboardOptions.toImeOptions-কে পাবলিক API থেকে সরিয়ে দেওয়া হয়েছে। (Ic2e45)- AmbientTextStyle, ProvideTextStyle এবং AmbientContentColor-এর ফাউন্ডেশন বন্ধ করে দেওয়া হয়েছে। পরিবর্তে, মেটেরিয়াল লাইব্রেরিতে উপলভ্য নতুন ভার্সন ব্যবহার করুন। নন-ম্যাটেরিয়াল অ্যাপ্লিকেশনের ক্ষেত্রে, আপনার নিজস্ব ডিজাইন সিস্টেম নির্দিষ্ট থিমিং অ্যাম্বিয়েন্ট তৈরি করা উচিত যা আপনার নিজস্ব কম্পোনেন্টে ব্যবহার করা যেতে পারে। (I74acc, b/172067770)
- foundation.Text আর ব্যবহার করা হয় না এবং এর পরিবর্তে material.Text ব্যবহার করা হয়। কোনও থিম থেকে ভ্যালু গ্রহণ করে না এমন সাধারণ, নিরপেক্ষ টেক্সট API-এর জন্য androidx.compose.foundation.BasicText দেখুন। (If64cb)
- TextField-এ maxLines যোগ করা হয়েছে (Ib2a5b)
- KeyboardOptions গ্রহণ করার জন্য TextField আপডেট করুন (Ida7f3)
- TextField-এ ব্যবহারের জন্য KeyboardOptions যোগ করা হয়েছে (I9ca32)
- BasicTextField-এর মতো টেক্সটের জন্য ডিজাইন-নিরপেক্ষ API হিসেবে BasicText যোগ করে। (I28268)
- ExperimentalLazyDsl অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। LazyColumn/LazyRow এখন @OptIn যোগ না করেই ব্যবহার করা যাবে (Idab7a, b/166584730)
- BaseTextField বন্ধ করা হয়েছে। এর পরিবর্তে BasicTextField ব্যবহার করুন। (I896eb)
- CoreTextField ও BaseTextField, দু'টির পরিবর্তে BasicTextField যোগ করা হয়েছে (Id4cea)
- সিস্টেম থেকে সরিয়ে দেওয়া LazyColumnItems/LazyRowItems (I1d8a8)
- ইন্ট্রিনসিক পরিমাপের জন্য সাইজিংয়ের ক্ষেত্রে অপ্রচলিত কম্পোজেবল সরিয়ে দেওয়া হয়েছে। (I18537, b/171811496)
- relativePaddingFrom-এর নাম পরিবর্তন করে paddingFrom করা হয়েছে। লেআউট বাউন্ড থেকে টেক্সট বেসলাইন পর্যন্ত দূরত্ব নির্দিষ্ট করার সুবিধা হিসেবে paddingFromBaseline মডিফায়ার যোগ করা হয়েছে। (I0440a, b/170633813)
- aspectRatio মডিফায়ারে matchHeightConstraintsFirst প্যারামিটার যোগ করা হয়েছে, যা প্রস্থের সাথে মানানসই করার চেষ্টা করার আগে উচ্চতা সংক্রান্ত সীমাবদ্ধতা অনুযায়ী সাইজ করার জন্য মডিফায়ার নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। (Ie7c43, b/155290593)
- পুরনো হয়ে যাওয়া DpConstraints সরিয়ে দেওয়া হয়েছে। (I87884, b/171702471)
সমস্যার সমাধান
- নন-ইউনিফর্ম স্কেলিং ব্যবহারের ক্ষেত্রে সহায়তা করার জন্য
হরাইজন্টাল ও ভার্টিকাল
অক্ষের জন্য স্কেল
ফ্যাক্টরকে আলাদা আলাদাভাবে দেখানোর জন্য
inline class ScaleFactor
যোগ করা হয়েছে।
- ContentScale-এ computeScaleFactor মেথড যোগ করা হয়েছে
- গন্তব্য সম্পূর্ণভাবে পূরণ করার জন্য src bounds-কে স্ট্রেচ করতে অসম স্কেলিং পারফর্ম করার জন্য ContentScale.FillBounds যোগ করা হয়েছে।
- Size প্যারামিটারের সাথে ScaleFactor প্যারামিটার গণনা করতে অপারেটর পদ্ধতি যোগ করা হয়েছে।
- (Ic96a6, b/172291582)
- captureToBitmap, captureToImage-এ সরানো হয়েছে। (I86385)
- CoreText-কে @InternalTextApi হিসেবে চিহ্নিত করে। এর পরিবর্তে BasicText ব্যবহার করুন। (I6aaeb)
- KeyboardOptions-এর নাম পরিবর্তন করে ImeOptions করুন (I82f36)
- KeyboardOptions-এ KeyboardType ও ImeAction সরানো হয়েছে (I910ce)
- CoreTextField-কে @InternalTextApi হিসেবে চিহ্নিত করা হয়েছে। এর পরিবর্তে BasicTextField ব্যবহার করুন (Ie2469)
- ExperimentalSubcomposeLayoutApi অ্যানোটেশন সরিয়ে দেওয়া হয়েছে। SubcomposeLayout এখন @OptIn যোগ না করেই ব্যবহার করা যাবে (I708ad)
- ui-test-junit4 মডিউল যোগ করা হয়েছে (Ib91f8)
- সম্ভাব্য টিন্ট কালার হিসেবে Color.Unspecified নেওয়ার জন্য Icon API আপডেট করা হয়েছে, এটি ColorFilter ছাড়াই প্রদত্ত অ্যাসেট বা পেইন্টার ড্র করবে। আগে Color.Unspecified ব্যবহার করে টিংট করা এড়ানোর চেষ্টা করলে স্বচ্ছ রঙ দিয়ে টিংট করা হত এবং শেষ পর্যন্ত কিছুই রেন্ডার করা হত না। (I049e2, b/171624632)
- MeasureResult-কে MeasureScope-এর বাইরে সরানো হয়েছে। (Ibf96d, b/171184002)
- লেআউট সম্পর্কিত একাধিক চিহ্ন androidx.compose.ui থেকে androidx.compose.layout.ui-তে সরানো হয়েছে। (I0fa98, b/170475424)
- androidx.ui.test androidx.compose.ui.test-এ সরানো হয়েছে (I9ffdb)
- FirstBaseline ও LastBaseline androidx.compose.ui.layout প্যাকেজে সরানো হয়েছে (Ied2e7)
- কলব্যাক ছাড়া Added SelectionContainer (Ibfadb)
- SelectionContainer-এ SelectionHandles-এর পজিশনের জন্য টেস্ট যোগ করুন। (Ie93db)
- কীবোর্ডে অটোমেটিক সংশোধন করার IME বিকল্প যোগ করা হয়েছে (I57b8d)
ভার্সন 1.0.0-alpha06
২৮ অক্টোবর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha06, androidx.compose.foundation:foundation-layout:1.0.0-alpha06 ও androidx.compose.foundation:foundation-text:1.0.0-alpha06 রিলিজ করা হয়েছে। 1.0.0-alpha06 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- androidx.compose.foundation.Icon androidx.compose.material.Icon-এ সরানো হয়েছে। এছাড়াও, আপনি Material লাইব্রেরি ব্যবহার করতে না চাইলে, Painter-এর সাথে Image কম্পোনেন্ট / Modifier.paint() ব্যবহার করতে পারেন। (I9f622)
- Modifier.scrollable, ScrollableColumn ও LazyColumnFor-এ interactionState যোগ করা হয়েছে (I81566, b/169509805)
- RowScope-এ alignByBaseline যোগ করা হয়েছে এবং alignWithSiblings-এর নাম পরিবর্তন করে alignBy করা হয়েছে (I06503, b/170628732)
- Box-কে ইনলাইন ফাংশন হিসেবে তৈরি করা হয়েছে। (Ibce0c, b/155056091)
- CoreTextField-এ maxLines যোগ করা হয়েছে (Ibee58, b/143687793)
- CoreTextField-এ softwrap যোগ করা হয়েছে। (I21a4b)
সমস্যার সমাধান
- কম্পোজিশন জুড়ে ডেটা পারসিস্ট করার জন্য কম্পোজ করার উপযুক্ত API ইন্টার্নালি 'remember' ব্যবহার করে তা আরও ভালোভাবে বোঝাতে, rememberVectorPainter-এর পক্ষে VectorPainter-কে বাতিল করুন। (Ifda43)
- ComposeTestRule-এ ট্রানজিশন চালু করুন; ComposeTestRule থেকে ব্লিঙ্ক করা কার্সর চালু করার বিকল্প সরান। (If0de3)
- CoreTextField-এ সিঙ্গেল লাইন কীবোর্ড বিকল্প যোগ করা হয়েছে (I72e6d)
- Compose জুড়ে এটি কীভাবে ব্যবহার করা হয় তা আরও ভালভাবে প্রকাশ করতে Radius API-এর নাম পরিবর্তন করে CornerRadius করা হয়েছে। নেগেটিভ কোণার ব্যাসার্ধ শূন্যে ক্ল্যাম্প করা হয় তা বোঝাতে ডকুমেন্টেশন আপডেট করা হয়েছে। (I130c7, b/168762961)
- কম্পোজ করা মডিফায়ারে পরিদর্শকের তথ্য নির্দিষ্ট করার ক্ষমতা যোগ করা হয়েছে (Idee08, b/163494569)
- KeyboardCapitalization IME বিকল্প (I8ac38) যোগ করা হয়েছে
- Rtl হ্যান্ডেলের পজিশন ঠিক করুন। (I6e1e0)
- ব্রেকিং পরিবর্তন: PointerInputFilter.onPointerEvent(...) থেকে রিটার্ন ভ্যালু সরিয়ে দেওয়া হয়েছে, কারণ পয়েন্টার ইভেন্টে শুধুমাত্র কনজাম্পশন ডেটা পরিবর্তন করা যায়। PointerInputFilter.onPointerEvent(...) থেকে ডেটা রিটার্ন করার পরিবর্তে, এখন আপনি শুধু পাস করা PointerEvents-এর কনজাম্পশন ডেটা মিউটেট করতে পারবেন। (I6acd0)
- বেছে নেওয়ার মেনুতে 'সব বেছে নিন' বিকল্প যোগ করা হয়েছে (Ief02b)
ভার্সন 1.0.0-alpha05
১৪ অক্টোবর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 ও androidx.compose.foundation:foundation-text:1.0.0-alpha05 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha05-এ এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- CoreTextField এখন কার্সর ফাংশনালিটির (Id23aa) সাথে কাজ করে
contentColor() ও currentTextStyle() API বাতিল করে এবং তার পরিবর্তে AmbientContentColor ও AmbientTextStyle অ্যাম্বিয়েন্ট ব্যবহার করে। অন্যান্য অ্যাম্বিয়েন্টের মতো, অ্যাম্বিয়েন্ট প্রপার্টিতে
.currentব্যবহার করে আপনি বর্তমান ভ্যালু অ্যাক্সেস করতে পারবেন। সামঞ্জস্য বজায় রাখতে এবং একই কাজ করার একাধিক উপায় এড়াতে এই পরিবর্তন করা হয়েছে। এছাড়াও, নিম্নলিখিত উদ্দেশ্যগুলি আরও ভালোভাবে বর্ণনা করার জন্য কিছু অ্যাম্বিয়েন্ট প্রপার্টির নাম পরিবর্তন করে:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
সমস্যার সমাধান
- ইনলাইন ক্লাসের জন্য স্ট্যান্ডার্ডাইজেশন অংশ হিসেবে, অন্যান্য ইনলাইন ক্লাসের (I97611, b/169797763) সাথে সামঞ্জস্য বজায় রাখতে Color.Unset-এর নাম পরিবর্তন করে Color.Unspecified করা হয়েছে
- কপি/পেস্ট/কাট অ্যাক্সেসিবিলিটি অ্যাকশন যোগ করা হয়েছে (I6db4f)
- TextOverflow.None যোগ করা হয়েছে। ওভারফ্লো 'নেই' হলে, টেক্সট আর ওভারফ্লো ম্যানেজ করবে না এবং LayoutNode-কে এর আসল সাইজ জানাবে। (I175c9, b/158830170)
- Size.Unspecified প্যারামিটার আপডেট করে Float.POSITIVE_INFINITY-এর পরিবর্তে Float.NaN করা হয়েছে। Size.Unspecified-এর পাশাপাশি অসীম নয় এমন সাইজের বিরুদ্ধেও চেক করার জন্য আপডেট করা Painter ইমপ্লিমেন্টেশন। (I95a7e)
- পেজিং কম্পোজ মডিউল ও পেজিং ইন্টিগ্রেশন যোগ করা হয়েছে (Ib85da)
- নাল মান পাওয়ার জন্য LazyListScope পরিবর্তন করুন (I1765b)
- OnPositionedModifier-এর নাম পরিবর্তন করে OnGloballyPositionedModifier এবং onPositioned()-এর নাম পরিবর্তন করে onGloballyPositioned() করা হয়েছে। (I587e8, b/169083903)
- LazyColumn/Row-এর জন্য নমুনা যোগ করা হয়েছে (Idc16d)
- emptyList-কে অনুমতি দেওয়ার জন্য items ও itemsIndexed পদ্ধতির সমস্যা সমাধান করা হয়েছে (I06647)
- পরিদর্শক সংক্রান্ত তথ্য নির্দিষ্ট করার জন্য DSL যোগ করুন (Ic9a22)
- 'লংপ্রেস' বিকল্পটি টেক্সটে সরান। (Iff2bc)
- টেক্সট থেকে বেছে নেওয়ার বিকল্প বন্ধ করা এবং একটি ডেমো। (Ie7e97)
- অ্যাক্সেসিবিলিটির জন্য AnnotatedString থেকে SpannableString কনভার্সন কাজ করে। (Ief907)
PointerInputFilter.onPointerInput(...)সরানো হয়েছে। এর পরিবর্তেPointerInputFilter.onPointerEvent(...)ব্যবহার করা উচিত। (I6f04a)
ভার্সন 1.0.0-alpha04
১ অক্টোবর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 ও androidx.compose.foundation:foundation-text:1.0.0-alpha04 রিলিজ করা হয়েছে। 1.0.0-alpha04 ভার্সনে এইসব কমিট রয়েছে।
API-তে পরিবর্তন
- Stack-এর নাম পরিবর্তন করে Box করা হয়েছে। আগে থেকে থাকা foundation.Box বাতিল করে নতুন Box-কে compose.foundation.layout-এ যোগ করা হবে। নতুন বক্সের আচরণ হল, এতে একাধিক চাইল্ড থাকলে সেগুলিকে একটির উপরে একটি করে স্ট্যাক করা হয় - এটি আগের বক্সের থেকে আলাদা, আগের বক্সটি কলামের মতো আচরণ করত। (I94893, b/167680279)
- Box decoration প্যারামিটার বন্ধ করে দেওয়া হয়েছে। আপনার বক্সে সজ্জা/প্যাডিং রাখতে চাইলে, পরিবর্তে মডিফায়ার ব্যবহার করুন (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- নতুন LazyListState ক্লাস যোগ করুন। এটি LazyRow এবং LazyColumn কম্পোনেন্টের স্ক্রল পজিশন পর্যবেক্ষণ ও কন্ট্রোল করার অনুমতি দেয়। rememberLazyListState() ব্যবহার করে ইনস্ট্যান্স তৈরি করা যায় এবং কম্পোনেন্টের স্টেট প্যারামিটারে পাস করা যায়। বর্তমানে, প্রথম দৃশ্যমান আইটেম এবং অফসেট এই প্রাথমিক ভার্সনে দেখা যেতে পারে। (Ic7cb7, b/159307669)
- অ্যাক্টিভিটি রিক্রিয়েশন জুড়ে এখন লেজি লিস্ট পজিশন ও স্ক্রল অফসেট সেভ ও রিস্টোর করা হয় (Ie045f, b/166589058)
- দীর্ঘক্ষণ ক্লিক করার অ্যাকশন যোগ করুন (I6281b, b/156468846)
- MutatorMutex ইউটিলিটি যোগ করা হয়েছে, এর ফলে সময়ের সাথে সাথে শেয়ার করা স্টেটের একটিই মিউটেটর থাকবে এবং অগ্রাধিকারের ভিত্তিতে (I3f975) পরস্পরবিরোধী মিউটেটর বাতিল করা যাবে
- Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled এবং textInputServiceFactory-কে @VisibleForTesting সহ ইন্টার্নাল API হিসেবে চিহ্নিত করুন এবং তাদের kdoc লুকান (I554eb, b/168308412)
- স্ট্রিং ইনপুট সহ টেক্সট থেকে inlineContent প্যারামিটার সরিয়ে দেওয়া হয়েছে। এটি ব্যবহার করা হবে না কারণ inlineContent-কে AnnotatedString-এর সাথে কাজ করতে হবে। (Ief403)
- বন্ধ করে দেওয়া কাস্টম অ্যারেঞ্জমেন্ট API সরিয়ে দেওয়া হয়েছে। (Ic576d, b/168297922, b/168297923)
- wrapContentSize মডিফায়ারে
unboundedপ্যারামিটার যোগ করা হয়েছে, যা অসীম সর্বাধিক সীমাবদ্ধতা সহ লেআউট এলিমেন্ট পরিমাপ করতে সক্ষম করে। (I77951, b/158559319) - আমরা লেআউট স্কোপের কন্টেন্টের স্ট্যাটিক ইমপোর্ট (যেমন, RowScope-এ alignWithSiblings) আটকিয়েছি। এর পরিবর্তে স্পষ্ট স্কোপের বিকল্প ব্যবহার করা উচিত:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)
সমস্যার সমাধান
- অনেক গ্রাফিক্স 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)
- প্রতিটি স্ক্রল করার সময় অপ্রয়োজনীয় রিকম্পোজিশন না করে LazyColumnFor/LazyRowFor স্ক্রল করার জন্য পারফর্ম্যান্স অপ্টিমাইজেশন (I64f65, b/168293643, b/167972292, b/165028371)
- স্ক্রল করার পরে আইটেম পরিবর্তন করলে LazyColumnFor/LazyRowFor-এ ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে এবং আগে দেখা যাওয়া আইটেম সরিয়ে দেওয়া হলে অটোমেটিক উপরের দিকে স্ক্রল করার সুবিধা প্রয়োগ করা হয়েছে যাতে শেষে আর ফাঁকা জায়গা না দেখানো হয় (I220ab, b/161480164, b/167855468)
- ScrollableContainer ও LazyColumnFor-এর মতো একই দিকে স্ক্রল করা যায় এমন কন্টেনারের মধ্যে নেস্টিং আর অনুমোদিত নয়। এটি কখনও কাজ করেনি এবং এটি ফ্লিং ও LazyColumnFor (I6e101) আইটেম কম্পোজ করার সমস্ত অলসতা ভেঙে দেয়
- অনেক গ্রাফিক্স 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)
- semantics প্রপার্টিতে AccessibilityScrollState যোগ করুন। (Ifeda9)
- অবজেক্ট তৈরি করা এড়াতে TextRange ইনলাইন করুন। (Id034b)
- ParagraphConstraints সরিয়ে দেওয়া হয়েছে। প্রস্থ এখন সরাসরি প্যারাগ্রাফে পাস করা হয়। (Ica712)
ভার্সন 1.0.0-alpha03
১৬ সেপ্টেম্বর ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 ও androidx.compose.foundation:foundation-text:1.0.0-alpha03 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha03-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- InnerPadding-এর নাম পরিবর্তন করে PaddingValues করা হয়েছে। (I195f1, b/167389171)
- লেআউট API-তে অ্যালাইন বা অ্যালাইনমেন্টের সাথে সামঞ্জস্য রেখে গ্র্যাভিটি শব্দটির ব্যবহার ধারাবাহিকভাবে রিনেম করা হয়েছে। (I2421a, b/164077038)
- Stack-এ একটি অ্যালাইনমেন্ট প্যারামিটার যোগ করা হয়েছে, যা Stack-এর সব চিলড্রেনের জন্য ডিফল্ট অ্যালাইনমেন্ট নির্দিষ্ট করতে দেয়। (Ie80ca, b/164085265)
সমস্যার সমাধান
- DpConstraints এবং এটি ব্যবহার করে এমন API-এর ব্যবহার বন্ধ করে দেওয়া হয়েছে। (I90cdb, b/167389835)
widthIn-এর প্যারামিটারminWidthওmaxWidth-এর নাম পরিবর্তন করেminওmaxকরা হয়েছে।preferredWidthIn,heightIn,preferredHeightIn-এর ক্ষেত্রেও একই রকম। (I0e5e1, b/167389544)- ComposeTestRule-এ onNode ও অন্যান্য গ্লোবাল মেথড যোগ করা হয়েছে, কারণ বর্তমান গ্লোবাল মেথডগুলি আর ব্যবহার করা যাবে না। (Ieae36)
- GestureScope-এ ফিক্সড সাইজ ও পজিশন ক্যালকুলেশন, যা অন্যান্য কারণের মধ্যে ভুল সোয়াইপ জেসচার (Iaf358, b/166589947) তৈরি করে
createAndroidComposeRuleওAndroidInputDispatcher-কেandroidx.ui.test.androidথেকেandroidx.ui.test-এ সরানো হয়েছে (Idef08, b/164060572)
ভার্সন 1.0.0-alpha02
২ সেপ্টেম্বর, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 ও androidx.compose.foundation:foundation-text:1.0.0-alpha02 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha02-এ এইসব কমিট আছে।
সমস্যার সমাধান
- TestUiDispatcher-কে পরীক্ষামূলক হিসেবে চিহ্নিত করা হয়েছে (Iae99d, b/161247083)
ManualFrameClock.hasAwaitersযোগ করা হয়েছে, যাতে দেখা যায় যে সেই ক্লক থেকে কোনও ফ্রেম আসার অপেক্ষায় আছে কিনা;runWithManualClock, ম্যানুয়াল ফ্রেম ক্লকের প্রয়োজন হয় এমন টেস্ট চালানোর সময়runBlocking-এর পরিবর্তে ব্যবহার করা যায়;TestUiDispatcher.Main, যা আপনার টেস্টে মূল UI ডিসপ্যাচারকে সহজ অ্যাক্সেস দেয়।যেমন:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
ভার্সন 1.0.0-alpha01
২৬ আগস্ট, ২০২০
androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 ও androidx.compose.foundation:foundation-text:1.0.0-alpha01 রিলিজ করা হয়েছে। ভার্সন 1.0.0-alpha01-এ এইসব কমিট আছে।
ভার্সন 0.1.0-dev
ভার্সন 0.1.0-dev17
১৯ আগস্ট, ২০২০
androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 ও androidx.compose.foundation:foundation-text:0.1.0-dev17 রিলিজ করা হয়েছে। ভার্সন 0.1.0-dev17-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- নির্দিষ্ট স্পেসিং সহ লেআউট চিলড্রেন পজিশন করার সুবিধা চালু করতে, সারি ও কলামের জন্য spacedBy অ্যারেঞ্জমেন্ট যোগ করা হয়েছে। এছাড়াও, অ্যালাইনমেন্ট অনুযায়ী সারিতে/কলামে একটির পাশে আরেকটি লেআউট চাইল্ড পজিশন করার জন্য অ্যালাইন করা অ্যারেঞ্জমেন্ট যোগ করা হয়েছে। আগের Arrangement.Vertical#arrange এবং Arrangement.Horizontal#arrange পদ্ধতিগুলি আর ব্যবহার করা যাবে না এবং ভবিষ্যতে কাস্টম অ্যারেঞ্জমেন্ট লেখার সুবিধা আর থাকবে না। (I6733d, b/161985975)
- অফসেট ইনলাইন ক্লাস হয়ে গেছে (Iaec70)
- TextField থেকে onFocusChanged কলব্যাক সরানো হয়েছে। এর পরিবর্তে Modifier.focusObserver ব্যবহার করুন। (I51089, b/161297615)
- Modifier.drawBorder অবচিত করা হয়েছে। এর পরিবর্তে Modifier.border ব্যবহার করুন। BorderStroke (I4257d, b/158160576) দ্বারা বর্ডার ডেটা ক্লাস প্রতিস্থাপন করা হয়েছে
- VerticalScroller ও HorizontalScroller সরিয়ে দেওয়া হয়েছে। পরিবর্তে ScrollableColumn/Row ব্যবহার করুন। Modifier.drawBackground সরিয়ে দেওয়া হয়েছে। Modifier.background ব্যবহার করুন (I73b0d, b/163019183)
- LazyItemScope থেকে deprecated হিসেবে চিহ্নিত fillMax* মডিফায়ার সরিয়ে দিন, কারণ এগুলি LazyColumnFor-এর সরাসরি চাইল্ড নয় এমন আইটেমের জন্য এই ধরনের মডিফায়ার সঠিকভাবে যোগ করা কঠিন করে তুলছে (Ifa78d)
- DSL হিসেবে LazyColumn/LazyRow ইমপ্লিমেন্টেশন যোগ করা হয়েছে (I93cc6)
- Constraints এখন একটি ইনলাইন ক্লাস (I88736)
- fillMaxWidth, fillMaxHeight ও fillMaxSize মডিফায়ার ব্যবহার করে উপলভ্য স্পেসের ভগ্নাংশ অনুযায়ী লেআউটের সাইজ সেট করার সুবিধা যোগ করা হয়েছে। (I945bb, b/161562591)
সমস্যার সমাধান
- SelectionContainer-এ মডিফায়ার প্যারামিটার যোগ করা হয়েছে (I4aada, b/161487952)
- SemanticsPropertyKey-তে mergePolicy ল্যাম্বডা যোগ করা হয়েছে। এটি mergeAllDescendants সিম্যান্টিক্স মার্জ করার জন্য কাস্টম নীতি নির্ধারণ করতে ব্যবহার করা যেতে পারে। ডিফল্ট নীতি হল, আগে থেকেই উপস্থিত থাকলে প্যারেন্ট ভ্যালু ব্যবহার করা, অন্যথায় চাইল্ড ভ্যালু ব্যবহার করা। (Iaf6c4, b/161979921)
PlacementScope.placeAbsolute()-এর নাম পরিবর্তন করেPlacementScope.place()করা হয়েছে এবং আগেরPlacementScope.place()-এর নাম পরিবর্তন করেPlacementScope.placeRelative()করা হয়েছে। এর ফলে,PlacementScope.place()পদ্ধতি আর বাঁদিক থেকে ডানদিকে কনটেক্সটে অটোমেটিক পজিশন মিরর করবে না। এটি করতে চাইলে,PlacementScope.placeRelative()ব্যবহার করুন। (I873ac, b/162916675)- সচল নয় এমন FilledTextField কম্পোনেন্ট সরিয়ে দেওয়া হয়েছে। Filled টেক্সট ফিল্ডের Material Design প্রয়োগ পেতে TextField ব্যবহার করুন। (I5e889)
- LinearProgressIndicator-এ backgroundColor প্যারামিটার যোগ করা হয়েছে এবং CircularProgressIndicator থেকে ইন্টার্নাল প্যাডিং সরিয়ে দেওয়া হয়েছে। নতুন ProgressIndicatorConstants.DefaultProgressAnimationSpec যোগ করা হয়েছে যা ভ্যালুর মধ্যে প্রগ্রেস অ্যানিমেট করার সময় ডিফল্ট AnimationSpec হিসেবে ব্যবহার করা যেতে পারে (If38b5, b/161809914, b/161804677)
state { ... }কম্পোজ করার উপযুক্ত এখন আর ব্যবহার করা হয় না, এর পরিবর্তে স্পষ্টতার জন্যremember { mutableStateOf(...) }-এ এক্সপ্লিসিট কল করা হয়। এটি স্টেট ম্যানেজমেন্টের জন্য সামগ্রিক API সারফেস ও কনসেপ্টের সংখ্যা কমিয়ে দেয় এবং ক্লাস প্রপার্টি ডেলিগেশনের জন্যby mutableStateOf()প্যাটার্নের সাথে ম্যাচ করে। (Ia5727)- RRect-এর নাম পরিবর্তন করে RoundRect করা হয়েছে যাতে কম্পোজের নামকরণের প্যাটার্নের সাথে আরও ভালোভাবে মানানসই হয় RRect-এর মতো একই ধরনের ফাংশন কনস্ট্রাক্টর তৈরি করা হয়েছে এবং RRect ফাংশন কনস্ট্রাক্টর (I5d325)-এর ব্যবহার বন্ধ করে দেওয়া হয়েছে
- Removed onChildPositioned এবং OnChildPositionedModifier. এর পরিবর্তে, ডেভেলপারদের চাইল্ড লেআউটে onPositioned এবং OnPositionedModifier ব্যবহার করা উচিত। (I4522e, b/162109766)
- IntSize এখন একটি ইনলাইন ক্লাস (I2bf42)
- এডিট করতে ফাঁকা জায়গায় বেশিক্ষণ প্রেস করে রাখুন। (Ib1e5b)
- টেক্সটে ট্যাপ করার পরে ফ্লোটিং টুলবার লুকান। (If4525)
- বেছে নেওয়া আইটেম আপডেট করার সময় ফ্লোটিং টুলবার লুকান। (I8444c)
- 'অস্পষ্ট করুন' বিকল্পটি থেকে টিকচিহ্ন সরিয়ে দিন। (I781a2)
ভার্সন 0.1.0-dev16
৫ আগস্ট, ২০২০
androidx.compose.foundation:foundation:0.1.0-dev16, androidx.compose.foundation:foundation-layout:0.1.0-dev16 ও androidx.compose.foundation:foundation-text:0.1.0-dev16 রিলিজ করা হয়েছে। ভার্সন 0.1.0-dev16-এ এইসব কমিট আছে।
API-তে পরিবর্তন
- LazyItemScope, লেজি লিস্টের itemContent প্যারামিটারের জন্য যোগ করা হয়েছে। এটি প্যারেন্ট সর্বাধিক সাইজ পূরণ করার জন্য মডিফায়ার প্রদান করে, এর ফলে আইটেম ভিউপোর্ট পূরণ করার সময় ব্যবহার করা যায় এবং সাধারণ Modifier.fillMaxSize() কাজ করে না কারণ আইটেমটি অসীম সীমাবদ্ধতার সাথে পরিমাপ করা হয়। (Ibd3b2, b/162248854)
- ডায়ালগকে UI-তে সরান (I47fa6)
- LazyColumnForIndexed/LazyRowForIndexed যোগ করা হয়েছে - LazyColumnFor/LazyRowFor-এর এমন ভার্সন যা itemCallback-এ ইন্ডেক্স ও আইটেম, দুটিই প্রদান করে। বর্তমান আইটেমের পাশাপাশি বর্তমান ইন্ডেক্স জানার প্রয়োজন হলে এটি কাজে লাগে। (I65ff3)
- Modifier.deternimateProgress-এর নাম পরিবর্তন করে Modifier.progressSemantics করা হয়েছে (I9c0b4)
- LazyColumnItems-এর নাম পরিবর্তন করে LazyColumnFor করা হয়েছে। LazyRowItems-এর নাম পরিবর্তন করে LazyRowFor করা হয়েছে (I84f84)
- পেশাদার পদ্ধতি মেনে চলার জন্য কিছু মার্ক/অ্যানোটেশন যোগ করুন। (I66b20)
- foundation.shape.corner প্যাকেজ foundation.share-এ ফ্ল্যাটেন করা হয়েছে (I46491, b/161887429)
- LazyRowItems/LazyColumnItems-এর জন্য сrossaxis গ্র্যাভিটি প্যারামিটার যোগ করা হয়েছে। LazyRowItems/LazyColumnItems এখন কন্টেন্ট র্যাপ করার আচরণ সমর্থন করে। (Ib39fc)
- ZoomableState-এর নাম পরিবর্তন করে ZoomableController করা হয়েছে। smoothScale-এর জন্য কাস্টম কার্ভ সহায়তা যোগ করা হয়েছে।
enabledওonZoomStartedকার্যকারিতা যোগ করা হয়েছে (If8b8f) - সবচেয়ে সহজ ও কাঙ্ক্ষিত API যাতে সহজে খুঁজে পাওয়া ও ব্যবহার করা যায় সেই জন্য Material FilledTextField-এর নাম পরিবর্তন করে TextField এবং foundational TextField-এর নাম পরিবর্তন করে BaseTextField রাখা হয়েছে (Ia6242, b/155482676)
- আগে বাতিল করা AdapterList সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে LazyColumnItems ব্যবহার করুন (I12b9b)
- Modifier.drawBackground-এর নাম পরিবর্তন করে Modifier.background করা হয়েছে (I13677)
- পুরনো ConstraintLayout DSL সরিয়ে দেওয়া হয়েছে। ConstraintSet2-এর নাম পরিবর্তন করে ConstraintSet করা হয়েছে। (If58d1, b/162450908)
- Modifier.absoluteOffset() ও Modifier.absoluteOffsetPx() যোগ করা হয়েছে। অফসেট মডিফায়ারের মতো, বাঁদিক থেকে ডানদিকে কনটেক্সটে অ্যাবসলিউট অফসেট মডিফায়ার অটোমেটিক মিরর হবে না (I3aa21)
RowওColumnএখন ইনলাইন ফাংশন হিসেবে কাজ করে এবং এর ফলে এগুলি ব্যবহার করার ওভারহেড অনেক কমে যায়। (I75c10)
সমস্যার সমাধান
- ঠিকানা সংক্রান্ত 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 করা হয়েছে এবং অব্যবহৃত পদ্ধতি সরিয়ে দেওয়া হয়েছে
MonotonicFrameAnimationClock যোগ করা হয়েছে যা আপনাকে নতুন কোরাউটিন ভিত্তিক ক্লক এবং API-এর মধ্যে গ্যাপ পূরণ করতে AnimationClockObservable হিসেবে MonotonicFrameClock ব্যবহার করতে দেয়। এগুলি এখনও পুরনো কলব্যাক ভিত্তিক ক্লক ব্যবহার করে।
ManualAnimationClock-এর সমতুল্য MonotonicFrameClock এখন ManualFrameClock. (I111c7, b/161247083)
SemanticsNodeInteraction.performPartialGestureসরানো হয়েছে। এর পরিবর্তেSemanticsNodeInteraction.performGestureব্যবহার করুন। (Id9b62)SemanticsNodeInteraction.getBoundsInRoot()-এর নাম পরিবর্তন করেSemanticsNodeInteraction.getUnclippedBoundsInRoot()করা হয়েছে (Icafdf, b/161336532)ডান-থেকে-বামে কাজ করার জন্য API আপডেট করা হয়েছে। LayoutDirectionAmbient যোগ করা হয়েছে, যা লেআউটের দিকনির্দেশ পড়তে ও পরিবর্তন করতে ব্যবহার করা যেতে পারে। Modifier.rtl এবং Modifier.ltr সরিয়ে দেওয়া হয়েছে। (I080b3)
Modifier.plus বন্ধ করা হয়েছে, এর পরিবর্তে Modifier.then ব্যবহার করুন। 'তারপর' শব্দটির মধ্যে ক্রম নির্দেশ করার একটি শক্তিশালী সিগন্যাল আছে, একই সাথে এটি
Modifier.padding().background() + anotherModifierটাইপ করাও নিষিদ্ধ করে, যা চেইন ভেঙে দেয় এবং পড়তে অসুবিধা হয় (Iedd58, b/161529964)isFocused()ওisNotFocused()SemanticsMatcher যোগ করা হয়েছে। (I0b760)RemeasurementModifier যোগ করা হয়েছে। এটি ব্যবহারকারীদের লেআউট সিঙ্ক্রোনাসভাবে আবার পরিমাপ করতে দেয়। সাধারণত, রিমজার/রিলেআউট অটোমেটিক হওয়ার কারণে আপনার এটি প্রয়োজন হয় না, তবে স্ক্রল করার সময় আমরা এটি LazyColumnItems-এর মধ্যে ব্যবহার করি। (I5f331, b/160791058)
isSystemInDarkTheme এখন সবসময় সিস্টেম-ব্যাপী ডার্ক থিম সেটিং বিবেচনা করে এবং Q-এর আগের ভার্সনে পাওয়ার সেভিং স্ট্যাটাস উপেক্ষা করে, যা লেটেস্ট নির্দেশিকা মেনে চলে। (I0c10c)
OnChildPositioned বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে চাইল্ডে OnPositioned ব্যবহার করুন। (I87f95, b/162109766)
AndroidComposeTestRule-এর নাম পরিবর্তন করে createAndroidComposeRule করা হয়েছে। (I70aaf)
TextLayoutResult (I9d6e6) পেতে অ্যাক্সেসিবিলিটি অ্যাকশন যোগ করুন
ভার্সন 0.1.0-dev15
২২ জুলাই, ২০২০
androidx.compose.foundation:foundation:0.1.0-dev15, androidx.compose.foundation:foundation-layout:0.1.0-dev15 ও androidx.compose.foundation:foundation-text:0.1.0-dev15 রিলিজ করা হয়েছে। 0.1.0-dev15 ভার্সনে এইসব কমিট আছে।
Compose-এর 0.1.0-dev15 ভার্সন ব্যবহার করতে, আপনাকে এগুলি করতে হবে:
ডিপেন্ডেন্সি আপডেট
- Compose-এর
0.1.0-dev15ভার্সন ব্যবহার করতে, আপনাকে ডিপেন্ডেন্সি ঘোষণা করা বিভাগে উপরে দেখানো নতুন কোড স্নিপেট অনুযায়ী ডিপেন্ডেন্সি আপডেট করতে হবে।
API-তে পরিবর্তন
- ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems-এর নতুন প্যারামিটারের মতো, এখন contentPadding প্যারামিটারও আছে যা কন্টেন্ট ক্লিপ করার পরে তাতে প্যাডিং যোগ করতে দেয়, যা শুধুমাত্র মডিফায়ার প্যারামিটারের মাধ্যমে সম্ভব নয়। এছাড়াও, এটি শুধুমাত্র প্রথম আইটেমের আগে/শেষ আইটেমের পরে স্পেসিং যোগ করার অনুমতি দেয়। (Ibc24e)
- টেক্সট ফিল্ডে onFocusChange কলব্যাক ফাংশনের নাম পরিবর্তন করে onFocusChanged করা হয়েছে (Ida4a1)
- VerticalScroller এবং HoriziontalScroller বন্ধ করে দেওয়া হয়েছে। বিল্ট-ইন অভিজ্ঞতার জন্য Column/Row আচরণ ও প্যারামিটার সহ ScrollableColumn ও ScrollableRow ব্যবহার করুন অথবা আপনার নিজস্ব এলিমেন্টে Modifier.verticalScroll ও Modifier.horizontalScroll ব্যবহার করুন। একইভাবে, ScrollerPosition-এর পরিবর্তে ScrollState' (I400ce, b/157225838, b/149460415, b/154105299) ব্যবহার করা হবে
- Modifier.draggable এবং Modifier.scrollable API-তে নতুন করে কাজ করা হয়েছে। Orientation-এর জন্য DragDirection সরিয়ে দেওয়া হয়েছে। স্ক্রল করা যায় এমন কন্টেন্টের জন্য প্রয়োজনীয় রাজ্যের নামকে আরও সহজ করা হয়েছে। ScrollableState-এর নাম পরিবর্তন করে ScrollableController করা হয়েছে (Iab63c, b/149460415)
- সিঙ্গেল-ভ্যালু সিম্যান্টিক প্রপার্টি এখন কলিং স্টাইল ব্যবহার করে।
যেমন, 'semantics { hidden = true }' এখন এইভাবে লেখা হয়:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - RoundedCornerShape ও CutCornerShape-এর ব্যবহার করা কোণের সাইজ এখন ৫০%-এর বেশি হতে পারে (Id2340, b/160400213)
- Image composable-এর জন্য ডিফল্ট ContentScale প্যারামিটার Inside থেকে পরিবর্তন করে Fit করা হয়েছে। লেআউট সাইজ যদি পেইন্টারের ইন্টার্নাল সাইজের চেয়ে বড় হয়, তাহলে অ্যাস্পেক্ট রেশিও বজায় রেখে আন্ডারলায়িং পেইন্টারকে স্কেল-আপ করার বিহেভিয়ার পাওয়ার জন্য এটি করা হয়েছে। এই ব্যবহারটি, কম্পোজ করার উপযুক্ত আইটেমের সাইজ ক্যালকুলেট করার জন্য শুধুমাত্র ইন্ট্রিনসিক সাইজ ব্যবহার করা হলে, ডিফল্ট আচরণকে প্রভাবিত না করে, ইমেজের জন্য নির্দিষ্ট সাইজ প্রদান করার ক্ষেত্রে প্রত্যাশার সাথে আরও ভালভাবে মেলে। (I40ae3, b/159838006)
- টপ লেভেল API-তে AnimationBuilder-এর পরিবর্তে AnimationSpec ব্যবহার করুন যাতে স্ট্যাটিক অ্যানিমেশন স্পেসিফিকেশন সম্পর্কে ধারণা স্পষ্ট করা যায় -tween, spring-এর মতো AnimationSpec তৈরি করার জন্য ল্যাম্বডা সংক্রান্ত প্রয়োজনীয়তা সরিয়ে দিয়ে ট্রানজিশন DSL উন্নত করুন। এর পরিবর্তে, এগুলি সরাসরি কনস্ট্রাক্টর প্যারামিটার নেয়। -বিল্ডারের উপর নির্ভর না করে কনস্ট্রাক্টর খুলে AnimationSpec-এর সামগ্রিক ব্যবহারযোগ্যতা উন্নত করা -KeyFrames ও Tween-এর সময়সীমা ও বিলম্ব Int-এ পরিবর্তন করা। এটি অপ্রয়োজনীয় টাইপ কাস্ট ও মেথড ওভারলোডিং (Long ও Int, দুটি ফর্ম্যাটেই কাজ করার জন্য) সরিয়ে দেয়। (Ica0b4)
- ক্লিক করা যায় এমন অংশটি সরিয়ে দেওয়া হয়েছে। Modifier.clickable (I84bdf) ব্যবহার করুন
- LazyRowItems যোগ করা হয়েছে - LazyColumnItems-এর অনুভূমিকভাবে স্ক্রল করা যায় এমন অ্যানালগ (Ibbcf7)
- লো লেভেল স্টেটলেস অ্যানিমেশন API চালু করা হয়েছে। এইসব API (I63bf7)
- androidx.ui.foundation.TextFieldValue এবং androidx.ui.input.EditorValue বন্ধ করা হয়েছে। TextField, FilledTextField এবং CoreTextField কম্পোজ করার উপযুক্ত আইটেম যা এই ধরনের আইটেম ব্যবহার করে সেগুলিও বাতিল করা হয়েছে। এর পরিবর্তে androidx.ui.input.TextFieldValue ব্যবহার করুন (I4066d, b/155211005)
- IntPx-এর ব্যবহার Int-এর সাথে পরিবর্তন করা হয়েছে। IntPxPosition -এর ব্যবহার IntOffset-এর সাথে পরিবর্তন করা হয়েছে। IntPxSize-এর পরিবর্তে IntSize ব্যবহার করা হয়েছে। (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape সরানো হয়েছে; androidx.ui.graphics.RectangleShape ব্যবহার করুন (I94939, b/154507984)
- সাইজিং সংক্রান্ত তথ্য দেখানোর জন্য ব্যবহৃত ক্লাসের সংখ্যাকে একত্রিত করতে, PxSize-এর পরিবর্তে Size ক্লাসের ব্যবহারকে স্ট্যান্ডার্ডাইজ করুন। এটি একটি ইনলাইন ক্লাসের সুবিধা প্রদান করে যা একটি বড় মানকে ব্যবহার করে ২টি ফ্লোট ভ্যালুকে প্যাক করে এবং ফ্লোট হিসেবে প্রস্থ ও উচ্চতাকে দেখায়। (Ic0191)
- পজিশনিং সংক্রান্ত তথ্য দেখানোর জন্য ব্যবহৃত ক্লাসের সংখ্যাকে একত্রিত করতে, PxPosition-এর পরিবর্তে Offset ক্লাসের ব্যবহারকে স্ট্যান্ডার্ডাইজ করুন। এটি ইনলাইন ক্লাসের সুবিধা প্রদান করে যা x এবং y অফসেটকে ফ্লোট হিসেবে দেখানোর জন্য ২টি ফ্লোট ভ্যালুকে প্যাক করতে একটি লং ভ্যালুকে লিভারেজ করে। (I3ad98)
- পিঞ্চ-টু-জুম ফাংশনের জন্য Modifier.zoomable যোগ করা হয়েছে (Id5d63)
- Toggleable কম্পোনেন্ট বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে Modifier.toggleable ব্যবহার করুন (I35220, b/157642842)
- MutuallyExclusiveSetItem বন্ধ করা হয়েছে। এর পরিবর্তে Modifier.selectable ব্যবহার করুন। (I02b47, b/157642842)
- TestTag এখন আর ব্যবহার করা যাবে না। এর পরিবর্তে Modifier.testTag ব্যবহার করুন। (If5110, b/157173105)
- Text-এ fontWeight প্যারামিটার যোগ করে, যা আগে ভুলবশত যোগ করা হয়নি (I56937)
- পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বড় রিফ্যাক্টরিং প্রচেষ্টার অংশ হিসেবে বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তে অন্য কিছু ব্যবহার করা হয়েছে (I19d02)
- VerticalScroller এখন বক্সের বাইরে কলাম প্রদান করে। HorizontalScroller এখন বক্সের বাইরে Row প্রদান করে। (Ieca5d, b/157020670)
- বড় রিফ্যাক্টরিংয়ের অংশ হিসেবে বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে, যাতে পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ডেটা টাইপের উপর নির্ভর করা যায় (Iede0b)
- Modifier.indication, foundation প্যাকেজে যোগ করা হয়েছে। আপনার কাস্টম ইন্ট্যার্যাক্টেবল এলিমেন্টে (I8425f, b/155287131) প্রেস/ড্র্যাগ/অন্যান্য ইঙ্গিত দেখাতে এটি ব্যবহার করুন
- VerticalScroller ও HorizontalScroller-এ এখন উল্টো দিকে স্ক্রল করার সুবিধা কাজ করে, যদি ScrollerPosition-এ isReversed সেট করা থাকে (I953bd)
- টেক্সট লেআউটে কম্পোজ করার উপযুক্ত আইটেম যোগ করা যায়। (I1373c)
- CanvasScope-এর একত্রিত প্রয়োগ তাই এখন শুধু DrawScope এবং ContentDrawScope আছে CanvasScope-এর নাম পরিবর্তন করে DrawScope করা হয়েছে। Density ইন্টারফেস প্রয়োগ করতে DrawScope আপডেট করা হয়েছে এবং LayoutDirection প্রদান করা হয়েছে ContentDrawScope-এ DrawScope সাবক্লাস মুছে দেওয়া হয়েছে RTL প্রপার্টি আর নিজে থেকে ম্যানেজ না করার জন্য Painter ও PainterModifier আপডেট করা হয়েছে কারণ DrawScope এটি ম্যানুয়ালি প্রদান না করেই আগে থেকেই প্রদান করে (I1798e)
- Modifier-এ drawBackground extension API-এর পরিবর্তে বন্ধ হয়ে যাওয়া DrawBackground API সরিয়ে দেওয়া হয়েছে। কোড পাথ কমানোর পাশাপাশি কম্পোজিশনের অংশ হিসেবে Modifier তৈরি করার প্রয়োজনীয়তা দূর করতে কালার, ব্রাশ ও পেইন্ট drawBackground ইমপ্লিমেন্টেশন রিফ্যাক্টর করা হয়েছে। (I0343a)
- আপডেট করা উন্নত লেভেলের কম্পোজ API যা Canvas-কে এক্সপোজ করে পরিবর্তে CanvasScope-কে এক্সপোজ করে। এর ফলে গ্রাহকদের নিজস্ব Paint অবজেক্ট ম্যানেজ করার প্রয়োজন হয় না। যেসব গ্রাহকের এখনও Canvas অ্যাক্সেস করার প্রয়োজন তারা drawCanvas এক্সটেনশন মেথড ব্যবহার করতে পারেন, যা অন্তর্নিহিত Canvas-এর সাথে ড্রয়িং কমান্ড ইস্যু করার জন্য কলব্যাক প্রদান করে। (I80afd)
- সেভ করা ইনস্ট্যান্স স্টেট ব্যবহার করে HorizontalScroller ও VerticalScroller তাদের স্ক্রল পজিশন রিস্টোর করে না। (Ia0fae, b/155075048)
- FocusManagerAmbient সরিয়ে দেওয়া হয়েছে। ফোকাস পেতে FocusModifier.requestFocus ব্যবহার করুন। (Ic4826)
- আমরা রিফ্রেশ করা API-এর মাধ্যমে এটি আবার উপলভ্য না করা পর্যন্ত টেবিল লেআউট সাময়িকভাবে সরিয়ে দেওয়া হয়েছে। (Id88a7)
CanvasScope API তৈরি করা হয়েছে যা Canvas অবজেক্টকে র্যাপ করে যাতে স্টেটলেস, ডিক্ল্যারেটিভ ড্রয়িং API সারফেস এক্সপোজ করা যায়। ট্রান্সফর্মেশনগুলি নিজস্ব রিসিভার স্কোপের মধ্যে থাকে এবং সাইজিং সংক্রান্ত তথ্যও অনুরূপ ইনসেট বাউন্ডের মধ্যে স্কোপ করা হয়। ড্রয়িং অপারেশন কনফিগার করার জন্য গ্রাহককে নিজস্ব Paint state object বজায় রাখতে হয় না।
CanvasScopeSample যোগ করা হয়েছে এবং ঘোষণামূলক গ্রাফিক্স ডেমো (Ifd86d) যোগ করতে ডেমো অ্যাপ আপডেট করা হয়েছে
ColoredRect সরিয়ে দেওয়া হয়েছে। পরিবর্তে drawBackground মডিফায়ার সহ User Box (I983c7, b/152753731)
TextField-এ (I6e33f) কার্সরের রঙ কাস্টমাইজ করার সুবিধা যোগ করুন
এখন onTextInputStarted কলব্যাক (I8dc44, b/151860051) দ্বারা ডেলিভার করা SoftwareKeyboardController ব্যবহার করে সফ্টওয়্যার কীবোর্ড লুকানো/দেখানো সম্ভব
TextFieldValue এখন TextField-এর সাথে ব্যবহার করা যায় এবং এইভাবে ব্যবহার করলে অ্যাক্টিভিটি আবার তৈরি হওয়ার পরেও এটি টিকে থাকতে পারে:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce, b/155075724)Text()-এ সাধারণত ব্যবহৃত প্যারামিটার যোগ করে। আপনি যদি বর্তমানে এই প্যারামিটারগুলির মধ্যে অল্প কিছু প্যারামিটার, যেমন
Text(style = TextStyle(textAlign = TextAlign.Center))পাস করার জন্য লোকাল টেক্সট স্টাইল তৈরি করে থাকেন, তাহলে এখন আপনি সরাসরি প্যারামিটার প্রদান করতে পারবেন:Text(textAlign = TextAlign.Center)(I82768)ফোকাস সাবসিস্টেমের সাথে ইন্টিগ্রেট করার জন্য CoreTextField/TextField focusIdentifier প্যারামিটারকে FocusNode-এর সাথে পরিবর্তন করা হয়েছে। (I7ea48)
TextField আপডেট - অনুভূমিক ডাইমেনশনে এটি সেটির জন্য মঞ্জুর করা সমস্ত উপলভ্য স্পেস দখল করবে (Ib08df, b/154638552)
InteractionState ও Interaction যোগ করা হয়েছে, এর ফলে প্রেস করা ও ড্র্যাগ করার (Icfe25, b/152525426) মতো UI স্টেট পরিবর্তনের ক্ষেত্রে প্রতিক্রিয়া জানানো কম্পোনেন্ট তৈরি করা সহজ হয়েছে
RectangleShape androidx.ui.foundation.shape.* থেকে androidx.ui.graphics.*-এ সরানো হয়েছে (Ia74d5, b/154507984)
API-তে সবকটি নাল হতে পারে এমন কালার ব্যবহারকে নন-নাল হতে পারে এমন কালার ব্যবহার দিয়ে পরিবর্তন করা হয়েছে এবং null-এর পরিবর্তে Color.Unset ব্যবহার করা হয়েছে (Iabaa7)
TextField API আপডেট - onFocus এবং onBlur কলব্যাককে প্যারামিটার(I66cd3) সহ একটি onFocusChange (Boolean) কলব্যাকে মার্জ করা হয়েছে
ScaleFit-এর নাম পরিবর্তন করে ContentScale করা হয়েছে ui-graphics থেকে ContentScale সরিয়ে ui-core-এ মডিউলে নিয়ে যাওয়া হয়েছে যাতে এটি Alignment API-এর মতো একই মডিউলে থাকে। FillMaxDimension-এর নাম পরিবর্তন করে Crop করা হয়েছে FillMinDimension-এর নাম পরিবর্তন করে Fit করা হয়েছে আরও ভালোভাবে ম্যাচ করানোর জন্য Fit-এর নাম পরিবর্তন করে Inside করা হয়েছে ImageView.ScaleType-এর সমার্থক শব্দ Crop ও Alignment.Center-এর কম্বিনেশন একই ফলাফল দেয় তা বোঝাতে ডকুমেন্টেশন যোগ করা হয়েছে ImageView.ScaleType.CENTER_CROP এবং Fit Alignment.Center-এর সাথে ব্যবহার করা হলে একই ফলাফল দেয় ImageView.ScaleType.FIT_CENTER Alignment.Center-এর সাথে ব্যবহার করা হলে Inside একই ফলাফল দেয় ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
ProvideContentColor সরিয়ে দেয়, পরিবর্তে সরাসরি
Providers(Iee942) সহ ContentColorAmbient ব্যবহার করেটেক্সটে কালার প্যারামিটার যোগ করে, এর ফলে থিমে দেওয়া স্টাইলের সাথে ম্যানুয়ালি মার্জ না করেই টেক্সট স্টাইলের কালার ওভাররাইড করা যায়। (I41a66)
DrawModifier API-তে উন্নতি করা হয়েছে:
- draw() ContentDrawScope-এর জন্য রিসিভার স্কোপ তৈরি করা হয়েছে
- draw()-এ সব প্যারামিটার সরিয়ে দেওয়া হয়েছে
- DrawScope-এর ইন্টারফেস আগের CanvasScope-এর মতোই
- ContentDrawScope-এ drawContent() মেথড আছে (Ibaced, b/152919067)
ColoredRect আর ব্যবহার করা যাবে না। পরিবর্তে
Box(Modifier.preferredSize(width, height).drawBackground(color))ব্যবহার করুন। (I499fa, b/152753731)মেটেরিয়াল ডিজাইন স্পেসিফিকেশন অনুযায়ী শেপ থিমিং সিস্টেম আপডেট করা হয়েছে। এখন আপনি বেশিরভাগ কম্পোনেন্ট (Ifb4d1) ব্যবহার করার জন্য ছোট, মাঝারি ও বড় আকারের শেপ প্রদান করতে পারবেন
ফ্যাক্টরি এক্সটেনশন ফাংশন (I225e4) দিয়ে মডিফায়ার প্লাস অপারেটর পরিবর্তন করা হয়েছে
Draggable-কে মডিফায়ারে সরানো হয়েছে (Id9b16, b/151959544)
Text-কে androidx.ui.core থেকে androidx.ui.foundation প্যাকেজে সরানো হয়েছে। (I87ce5)Checkbox, Switch ও Toggleable-এ
enabledparam যোগ করুন (I41c16)Ripple এখন একটি মডিফায়ার। 'ক্লিক করা যায়' ফিচার এখনও কনভার্ট করা না হলেও, সাজেস্ট করা ব্যবহার হল
Clickable(onClick = { ... }, modifier = ripple())(Ie5200, b/151331852, b/150060763)ভেক্টর গ্রাফিক্সের জন্য আগে থেকে থাকা সাবকম্পোজিশন API-এর পরিবর্তে VectorPainter API যোগ করা হয়েছে। সাবকম্পোজিশনের ফলাফল হল একটি VectorPainter অবজেক্ট, কোনও DrawModifier নয়। VectorPainter-এর জন্য আগের DrawVector কম্পোজ করার উপযুক্ত আইটেম বাতিল করা হয়েছে।
Image(Painter)API-এর নাম পরিবর্তন করেPaintBox(Painter)করা হয়েছে Vector composable তৈরি করা হয়েছে যা ImageAsset-এর পরিবর্তে VectorAsset ছাড়া Image composable-এর মতো আচরণ করে (I9af9a, b/149030271)স্ক্রিনে প্রদত্ত ImageAsset আঁকার পাশাপাশি সাইজিং/লেআউট ম্যানেজ করার জন্য তৈরি করা ইমেজ কম্পোজ করা যায়। এই কম্পোজ করার উপযুক্ত ফিচারটি যেকোনও ইচ্ছামতো Painter ইনস্ট্যান্সের ইন্ট্রিনসিক সাইজ মেনে চলার পাশাপাশি একটি নির্দিষ্ট ফিক্সড সাইজ বা ন্যূনতম সাইজ (Ibcc8f) মেনে চলার ক্ষেত্রেও কাজ করে
Button, FloatingActionButton এবং Clickable-এ এখন আলাদা
enabledparam আছে। বোতামের কিছু প্যারামিটার নতুন নাম দেওয়া হয়েছে বা নতুন ক্রমে সাজানো হয়েছে। (I54b5a)Image থেকে ImageAsset নাম পরিবর্তন করা হয়েছে যাতে Image ডেটা এবং লেআউটে অংশগ্রহণ ও কন্টেন্ট ড্র করার জন্য ব্যবহৃত হতে চলা Image কম্পোজ করার উপযুক্ত আইটেমের মধ্যে পার্থক্য আরও ভালোভাবে বোঝা যায়।
android.graphics.Bitmap-এ এক্সটেনশন পদ্ধতি তৈরি করা হয়েছে,
Bitmap.asImageAsset(), যাতে ImageAsset-এর একটি ইনস্ট্যান্স তৈরি করা যায়। এটি কম্পোজ ফ্রেমওয়ার্কের সাথে ঐতিহ্যবাহী Android অ্যাপ্লিকেশন ডেভেলপমেন্টকে একত্রিত করার জন্য উপযোগী। (Id5bbd)DrawImage কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। আগে থেকে থাকা লেআউটে ছবি আঁকতে ImagePainter ব্যবহার করুন অথবা জায়গা নেয় এমন ছবি যোগ করতে SimpleImage ব্যবহার করুন (I595e1, b/149827027)
স্ট্যাক কম্পোনেন্ট ডান-থেকে-বাম দিকনির্দেশ (Ic9e00) মেনে চলে
AppBarIcon সরিয়ে Icon, IconButton ও IconToggleButton যোগ করা হয়েছে। আপনি সরাসরি AppBarIcon-এর আগে থেকে থাকা ব্যবহার IconButton-এর সাথে পরিবর্তন করতে পারবেন, এবং এখন সেগুলিতে সঠিক টাচ টার্গেট থাকবে। ব্যবহার সংক্রান্ত তথ্যের স্যাম্পল দেখুন এবং এইসব কম্পোনেন্টের সাথে সরাসরি ব্যবহার করার জন্য প্রদত্ত Material Icons-এর আইকন দেখুন। (I96849)
DrawShape কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে DrawBackground মডিফায়ার ব্যবহার করুন। (I7ceb2)
AdapterList যোগ করা হয়েছে, এটি একটি স্ক্রল করা যায় এমন তালিকা কম্পোনেন্ট যা শুধুমাত্র দৃশ্যমান আইটেম কম্পোজ ও লেআউট করে। বর্তমানে পরিচিত সমস্যাগুলির মধ্যে রয়েছে যে এটি শুধুমাত্র উল্লম্বভাবে কাজ করে এবং এর চাইল্ডে হওয়া পরিবর্তনের সব কেস সম্পূর্ণভাবে ম্যানেজ করতে পারে না। (Ib351b)
স্ক্রল করা যায় এমন কম্পোনেন্ট যোগ করা হয়েছে, যা কাস্টম স্ক্রলার/তালিকা তৈরি করতে দেয় (I5fd37)
ব্যাকগ্রাউন্ডের নাম পরিবর্তন করে DrawBackground করা হয়েছে এবং এটি ডিফল্ট হিসেবে মেমোরাইজ করা হবে (Ia0bd3)
Box-এ প্যাডিং, বর্ডার, শেপ ও ব্যাকগ্রাউন্ড প্যারামিটার যোগ করুন (I05027, b/148147281)
Canvas কম্পোনেন্ট যোগ করা হয়েছে। এই কম্পোজেবল কিছু সাইজ (ব্যবহারকারীর দেওয়া) নেয় এবং আপনাকে CanvasScope (I0d622) ব্যবহার করে আঁকতে দেয়
Borderমডিফায়ারকেDrawBorder(I8ffcc) নামে পরিবর্তন করোলেআউট একত্রিত করা এবং সাধারণ কার্যকারিতা আঁকার জন্য বক্স কম্পোনেন্ট যোগ করা হয়েছে। (I6e2a7)
স্ক্রলার এখন নেটিভ Android ফ্লিং মোশন আচরণ দেখায়। (I922af, b/147493715)
Border Modifier (Id335a)-এর জন্য DrawBorder পরিবর্তন করা হয়েছে
Modifier.testTag-এর সাথে বিভ্রান্তি এড়াতে Modifier.tag-এর নাম পরিবর্তন করে Modifier.layoutId করা হয়েছে। (I995f0)
ConstraintLayout নির্দেশিকা তৈরি করার সময় শতাংশ প্যারামিটারের নাম পরিবর্তন করে ফ্র্যাকশন করা হয়েছে। (Ida2db)
ConstraintLayout ব্যারিয়ারের মার্জিনের জন্য সহায়তা যোগ করা হয়েছে। (I47ffe)
ConstraintLayout-এ RTL সংক্রান্ত সমস্যার সমাধান করা হয়েছে। RTL সম্পর্কে অজ্ঞ API যোগ করা হয়েছে। (I3b1c7)
ConstraintLayout-এর জন্য নতুন DSL যোগ করা হয়েছে। আরও বিবরণের জন্য নমুনা দেখুন। (Icaa9a)
@ExperimentalLayout অ্যানোটেশন যোগ করা হয়েছে। ConstraintLayout, FlowRow ও FlowColumn-কে এখন এটি দিয়ে ট্যাগ করা হয়েছে যাতে বোঝা যায় যে তাদের API পরিবর্তন হতে চলেছে। (I412a8)
Modifier.padding(InnerPadding)যোগ করা হয়েছে (I94985, b/157133803)সারি ও কলামে বাতিল হয়ে যাওয়া RowAlign, ColumnAlign সরানো হয়েছে। (If60d4, b/155858731)
পুরনো হয়ে যাওয়া LayoutTag() সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Modifier.tag() ব্যবহার করুন। পুরনো হয়ে যাওয়া Modifier.matchParent() সরিয়ে দেওয়া হয়েছে, এর পরিবর্তে Modifier.matchParentSize() ব্যবহার করুন। (If8044)
offsetPx লেআউট মডিফায়ার যোগ করা হয়েছে, যা পিক্সেল (ডায়নামিক) অফসেটকে সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে। (I5af57)
AlignmentLineOffset composable বন্ধ করা হয়েছে, এর পরিবর্তে relativePaddingFrom() মডিফায়ার ব্যবহার করুন। CenterAlignmentLine কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। (I60107)
defaultMinSizeConstraints লেআউট মডিফায়ার যোগ করা হয়েছে, যা ইনকামিং সংশ্লিষ্ট সীমাবদ্ধতা নির্দিষ্ট না করা থাকলে (ন্যূনতম সীমাবদ্ধতার জন্য ০ এবং সর্বাধিক সীমাবদ্ধতার জন্য অসীম) শুধুমাত্র র্যাপ করা লেআউটের জন্য সাইজ সীমাবদ্ধতা সেট করে। (I311ea, b/150460257)
কন্টেনার সরিয়ে দেওয়া হয়েছে। এর পরিবর্তে Box ব্যবহার করুন (Ibbc2b, b/151407926)
পুরনো হয়ে যাওয়া LayoutWidth/Height/Size মডিফায়ার সরিয়ে দেওয়া হয়েছে। (Ib0bc1)
অফসেট মডিফায়ারের জন্য ডিফল্ট প্যারামিটার ভ্যালু যোগ করা হয়েছে। (I37f06)
সিমেট্রিক প্যাডিং মডিফায়ার যোগ করা হয়েছে। (I39840)
পুরনো হয়ে যাওয়া LayoutAspectRatio মডিফায়ার সরিয়ে দেওয়া হয়েছে। (I65a74)
পুরনো হয়ে যাওয়া LayoutAlign মডিফায়ার সরিয়ে দেওয়া হয়েছে। (I10877)
প্রস্থ ও উচ্চতা মডিফায়ারে একটি বাগ সমাধান করা হয়েছে, যার ফলে মোড়ানো লেআউটকে কোনও বিপরীত অক্ষের সীমাবদ্ধতা ছাড়াই পরিমাপ করা হচ্ছিল। (I210b8, b/154797971)
সারি ও কলামে যথাক্রমে verticalGravity ও horizontalGravity প্যারামিটার যোগ করা হয়েছে। (I7dc5a)
যেকোনও অ্যালাইনমেন্টের পরিবর্তে উল্লম্ব বা অনুভূমিক অ্যালাইনমেন্টের প্রত্যাশা করতে wrapContentWidth ও wrapContentHeight আপডেট করা হয়েছে। উল্লম্ব বা অনুভূমিক অ্যালাইনমেন্ট গ্রহণ করার জন্য গ্র্যাভিটি মডিফায়ার আপডেট করা হয়েছে। কাস্টম কন্টিনিউয়াস অ্যালাইনমেন্ট কাজ করার জন্য সারি, কলাম ও স্ট্যাক আপডেট করা হয়েছে। (Ib0728)
যেকোনও ভ্যালু সহ অ্যালাইনমেন্ট ইনস্ট্যান্টিয়েবল করা হয়েছে। 1D অ্যালাইনমেন্ট যোগ করা হয়েছে। (Ia0c05)
EdgeInsets-এর নাম পরিবর্তন করে InnerPadding করা হয়েছে। Material Buttons-এর innerPadding প্যারামিটারের নাম পরিবর্তন করে padding করা হয়েছে। (I66165)
alignToSiblings এখন Placeable-এর পরিবর্তে Measured গ্রহণ করে। (I5788d)
ইন্ট্রিনসিক পরিমাপের জন্য সাইজিংয়ের মডিফায়ার যোগ করা হয়েছে এবং এই উদ্দেশ্যে ব্যবহৃত কম্পোনেন্ট সরিয়ে দেওয়া হয়েছে। (I8295d)
ConstraintLayout-এর (Idb1a5) চাইল্ডের ডাইমেনশন কাস্টমাইজ করার জন্য সহায়তা যোগ করা হয়েছে
সচল নয় এমন Wrap ও Center কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। (I29e23)
লেআউট মডিফায়ারকে সংজ্ঞায়িত করার জন্য নতুন API, LayoutModifier2 যোগ করা হয়েছে; LayoutModifier (If32ac) আর ব্যবহার করা যাবে না
RowScope ও ColumnScope মেম্বার এখন সারি ও কলামের বাইরে অ্যাক্সেস করা যাবে। (I3a641)
কন্টেনার বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে Box ব্যবহার করুন। (I675ce, b/151407926)
লেআউট পজিশন অফসেট করার জন্য LayoutOffset মডিফায়ার যোগ করা হয়েছে (I0b8a3)
Compose লেআউটে RTL-এর জন্য প্রাথমিক সহায়তা (Ia5519)
উপলভ্য স্পেস আর পূরণ না করার জন্য LayoutAlign আপডেট করা হয়েছে (I2b14f)
পরিবর্তকের পরিবর্তে AspectRatio কম্পোজ করার উপযুক্ত আইটেম সরিয়ে দেওয়া হয়েছে। পুরনো হয়ে যাওয়া FlexColumn, FlexRow কম্পোজ করার মতো আইটেম ও Spacing মডিফায়ার মুছে দেওয়া হয়েছে (Iec8a7)
সারি ও কলামের জন্য LayoutInflexible মডিফায়ার সরানো হয়েছে (I0d820)
TextField-এর জন্য বেছে নেওয়া অংশ পরিবর্তন করতে ড্র্যাগ সিলেকশন হ্যান্ডেল প্রয়োগ করুন। (I27032)
TextField বেছে নেওয়ার জন্য LongPressAndDrag প্রয়োগ করে। (I17919)
সমস্যার সমাধান
- FocusModifier-এর পরিবর্তে Modifier.focus, Modifier.focusRequester, Modifier.focusObserver ব্যবহার করা হয়। FocusState2 (I46919, b/160822875, b/160922136)-এর পরিবর্তে FocusState ও FocusDetailedState আর ব্যবহার করা হয় না
runOnIdleCompose-এর নাম পরিবর্তন করেrunOnIdleকরা হয়েছে (I83607)- আরও বেশি স্বজ্ঞাত করার জন্য বেশ কিছু টেস্টিং API-এর নাম পরিবর্তন করা হয়েছে। findXYZ API-এর নাম পরিবর্তন করে onNodeXYZ করা হয়েছে। doXYZ নামের সব API-এর নাম পরিবর্তন করে performXYZ করা হয়েছে। (I7f164)
- আগে বাতিল করা Modifier.ripple সরিয়ে দেয়। Clickable এখন ডিফল্ট ইঙ্গিত হিসেবে রিপেল ব্যবহার করে (আপনার অ্যাপ্লিকেশনে MaterialTheme {} সেট করা থাকলে) তাই বেশিরভাগ ক্ষেত্রে আপনি শুধু clickable ব্যবহার করতে এবং রিপেল ইঙ্গিত ফ্রিতে পেতে পারবেন। রিপেলের জন্য রঙ / সাইজ / বাউন্ডেড প্যারামিটার কাস্টমাইজ করার প্রয়োজন হলে, আপনি ম্যানুয়ালি RippleIndication তৈরি করতে পারেন এবং এটিকে ক্লিক করা যায় এমন আইটেমে indication প্যারামিটার হিসেবে পাস করতে পারেন। (I663b2, b/155375067)
- পুরনো হয়ে যাওয়া সাইজ টেস্টিং API সরিয়ে দেওয়া হয়েছে। (Iba0a0)
- Made LayoutNode experimental API (I4f2e9)
- Compose জুড়ে স্ক্রল ওরিয়েন্টেশন লকিংয়ের ভার্সন ১ ইমপ্লিমেন্ট করা হয়েছে। (I1ce7a, b/150289741)
- পপ-আপ, ডায়ালগ ও মেনু এখন প্রাসঙ্গিক MaterialTheme (Ia3665, b/156527485) থেকে ইনহেরিট করছে
- Layout() ফাংশনের মেজার ব্লক থেকে লেআউট ডিরেকশন প্যারামিটার সরানো হয়েছে। তবে, লেআউট ডিরেকশন, মেজার স্কোপ অবজেক্টের (Ic7d9d) মাধ্যমে কলব্যাকের মধ্যে উপলভ্য
- AbsoluteArrangement যোগ করুন - এটি RTL-এ (I3a1df) অটোমেটিক মিররিং ছাড়াই সারির মধ্যে বাচ্চাদের অ্যারেঞ্জমেন্টের অনুমতি দেয়
- @Untracked অ্যানোটেশন পুরনো হয়ে গেছে। @ComposableContract(tracked=false) (Id211e) দিয়ে পাল্টান
- এই পরিবর্তনের আগে, @Composable ফাংশনের মধ্যে কনস্ট্রাক্টরদের কাছে কল ইন্টারসেপ্ট করার জন্য কম্পোজ কম্পাইলার প্লাগ-ইন ব্যবহার করা হত, যদি সেখানে (I5205a, b/158123804) থাকে
viewModel()composable যোগ করুন যা Activity বা Fragment-এ যেভাবে কাজ করে সেই একই পদ্ধতিতে আগে থেকে তৈরি করা ViewModel তৈরি করতে বা পেতে সাহায্য করে (I5fdd1)Radius ক্লাসকে রিফ্যাক্টর করে ইনলাইন ক্লাস করা হয়েছে। বাধ্যতামূলক x-অক্ষ ব্যাসার্ধ প্যারামিটারের সাথে y-অক্ষ বরাবর ব্যাসার্ধ ম্যাচ করার জন্য ডিফল্ট প্যারামিটার সহ ফাংশন কনস্ট্রাক্টরের পক্ষে কম্প্যানিয়ন ক্রিয়েশন পদ্ধতি সরানো হয়েছে।
x ও y অক্ষ বরাবর রেডিয়াসের জন্য ২টি আলাদা ফ্লোট ভ্যালুর পরিবর্তে একটি রেডিয়াস প্যারামিটার ব্যবহার করতে DrawScope.drawRoundRect আপডেট করা হয়েছে (I46d1b)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার বড় রিফ্যাক্টরিং এফর্টের অংশ হিসেবে পরিবর্তন করা হয়েছে। সম্পূর্ণ Px ক্লাস মুছে দেওয়া হয়েছে (I3ff33)
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে। এটি একটি বড় রিফ্যাক্টরিং প্রচেষ্টার অংশ (I086f4)
বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের ব্যবহার পরিবর্তন করা হয়েছে। এর ফলে পিক্সেল প্যারামিটারের জন্য Dp ও আদিম ধরনের উপর নির্ভর করা যাবে। এটি একটি বড় রিফ্যাক্টরিং এফর্টের অংশ (Id3434)
পিক্সেল প্যারামিটারের জন্য (I97a5a) শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তিত ব্যবহার করা হয়েছে। এটি একটি বড় রিফ্যাক্টরিং এফোর্ট।
TextField-এর কার্সরে ব্লিঙ্ক করার অ্যানিমেশন আছে (Id10a7)
আংশিক জেসচারের জন্য আর GestureToken (Id7ae5) পাস করতে হয় না
পিক্সেল প্যারামিটারের জন্য শুধুমাত্র Dp ও আদিম ধরনের উপর নির্ভর করার জন্য বিভিন্ন কম্পোজ ক্লাসে Px ক্লাসের পরিবর্তে বড় রিফ্যাক্টরিং এফর্টের অংশ হিসেবে ব্যবহার করা হয়েছে (I57bff)
উচ্চ-স্তরের কম্পোনেন্ট ব্যবহারের অনুমতি দিতে Modifier.semantics-কে আনডিপ্রিকেট করা হয়েছে। (I4cfdc)
AnnotatedString.Builder.addAnnotationString-এর নাম পরিবর্তন করে addStringAnnotation করুন। (I5059e)
আপডেট করা অ্যালাইনমেন্ট API এবং সম্পূর্ণ অ্যালাইনমেন্টের জন্য সহায়তা যোগ করা হয়েছে (যা RTL কনটেক্সটে অটো-মিরর করে না) (I38cd3)
Layout এবং LayoutModifier চাইল্ডকে আলাদা লেআউট ডিরেকশন দিয়ে পরিমাপ করা যেতে পারে। (Ibd731)
আন্ডারলায়িং ImageAsset-এর (I0ea9e) একটি সাবসেকশন ড্র করার জন্য ImagePainter-এ অতিরিক্ত ঐচ্ছিক rect প্যারামিটার যোগ করা হয়েছে
আইটেম সরানোর সময় AdapterList-এ ক্র্যাশ হওয়ার সমস্যা সমাধান করা হয়েছে (Ic64b0, b/153195921)
activity.setContent { } ব্লকের মধ্যে আপনার দেওয়া প্রথম লেআউট আমরা যেভাবে পরিমাপ করি তা পরিবর্তন করেছি। আগে এটি পুরো অ্যাক্টিভিটি স্ক্রিন পূরণ করতে বাধ্য হত এবং এখন এটি এমন আচরণ করে যেন আপনি নিজের লেআউট একটি স্ট্যাকের মধ্যে রেখেছেন: এটি স্ক্রিনের থেকে ছোট হতে পারে এবং স্ক্রিনের উপরের বামদিকে পজিশন করা হবে। আপনি যদি আগের মতো আচরণ চান, তাহলে আপনার লেআউটের জন্য Modifier.fillMaxSize() প্রয়োগ করতে পারেন। (Ie88a7, b/153453714)
ui-text-compose মডিউলের নাম পরিবর্তন করে ui-text করা হয়েছে। ui-text এখন CoreText ও CoreTextField কম্পোজ করার উপযুক্ত আইটেম (Ib7d47) কন্টেন করে
ui-text মডিউলের নাম পরিবর্তন করে ui-text-core রাখা হয়েছে (I57dec)
ui-framework/CoreText, CoreTextField composables-কে ui-text-compose-এর অধীনে সরানো হয়েছে। আপনার প্রোজেক্টে ui-text-compose অন্তর্ভুক্ত করতে পারেন। (I32042)
runOnIdleComposeওrunOnUiThreadএখন ComposeTestRule-এর মেথড না হয়ে গ্লোবাল ফাংশন হয়ে গেছে। (Icbe8f)[পরিবর্তনযোগ্য]Kotlin 1.4 প্রপার্টি ডেলিগেট অপ্টিমাইজেশনের জন্য স্টেট প্রপার্টি ডেলিগেট অপারেটর এক্সটেনশনে সরানো হয়েছে।
by state { ... }বাby mutableStateOf(...)ব্যবহার করা চালিয়ে যেতে, কলারদের অবশ্যই ইমপোর্ট যোগ করতে হবে। (I5312c)DrawLayerModifier এবং drawLayer() এখন ডিফল্ট হিসেবে clipToBounds এবং clipToOutline-এর মান false হিসেবে সেট করা থাকে। (I0eb8b, b/152810850)
LayoutResult-এর নাম পরিবর্তন করে MeasureResult করা হয়েছে। (Id8c68)
অননুমোদিত Center composable. এটি LayoutSize.Fill + LayoutAlign.Center মডিফায়ার অথবা উপযুক্ত মডিফায়ার প্রয়োগ করা Box বা Stack কম্পোজেবলগুলির মধ্যে কোনও একটি দিয়ে পরিবর্তন করতে হবে (Idf5e0)
LayoutFlexible-এর নাম পরিবর্তন করে LayoutWeight করা হয়েছে। টাইট প্যারামিটারের নাম পরিবর্তন করে ফিল করা হয়েছে। (If4738)
DrawVector-কে সাধারণ কম্পোজ করার উপযুক্ত ফাংশন থেকে পরিবর্তন করে একটি Modifier drawVector() রিটার্ন করা হয়েছে যা লেআউটের ব্যাকগ্রাউন্ড হিসেবে ভেক্টর ড্র করবে। (I7b8e0)
কম্পোজ করা যায় এমন ফাংশন Clip-এর পরিবর্তে মডিফায়ার drawClip() ব্যবহার করুন। DrawClipToBounds হল একটি সুবিধাজনক মডিফায়ার যা আপনি তখনই ব্যবহার করতে পারেন যখন আপনাকে শুধুমাত্র আয়তাকার শেপের মাধ্যমে লেয়ার বাউন্ডে ক্লিপ করতে হয়। (If28eb)
DrawShadow কম্পোজেবল ফাংশন পরিবর্তন করে drawShadow() মডিফায়ার করা হয়েছে। ছায়া এখন LayerModifier-এর অংশ হিসেবে আঁকা হয়। (I0317a)
androidx.compose.ViewComposer-কে androidx.ui.node.UiComposer-এ সরানো হয়েছে androidx.compose.Emittable সরিয়ে দেওয়া হয়েছে। এটি ComponentNode-এর সাথে অপ্রয়োজনীয় ছিল। androidx.compose.ViewAdapters সরিয়ে দেওয়া হয়েছে। এগুলি আর কাজ করে না। Compose.composeInto বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে
setContentবাsetViewContentব্যবহার করুন। Compose.disposeComposition বন্ধ করা হয়েছে। এর পরিবর্তেsetContent-এর মাধ্যমে রিটার্ন করাComposition-এdisposeপদ্ধতি ব্যবহার করুন। androidx.compose.Compose.subcomposeInto androidx.ui.core.subcomposeInto-এ সরানো হয়েছে ComponentNode#emitInsertAt-এর নাম পরিবর্তন করে ComponentNode#insertAt করা হয়েছে ComponentNode#emitRemoveAt-এর নাম পরিবর্তন করে ComponentNode#removeAt করা হয়েছে ComponentNode#emitMode-এর নাম পরিবর্তন করে ComponentNode#move করা হয়েছে (Idef00)পুরনো হয়ে যাওয়া Wrap কম্পোজেবল। এটি LayoutAlign মডিফায়ার বা Stack composable (Ib237f) দিয়ে পরিবর্তন করা যেতে পারে
লেআউট ডিরেকশনকে প্যারেন্ট লেআউট নোড থেকে চাইল্ড নোডে প্রোপাগেট করা হয়েছে। লেআউট ডিরেকশন মডিফায়ার যোগ করা হয়েছে। (I3d955)
নতুন তৈরি হওয়া Modifier-এর মূল Painter-এর রেফারেন্স আছে যা একাধিক Modifier ইনস্ট্যান্সের মধ্যে শেয়ার করা যায়, তাই Painter.toModifier-এর নাম পরিবর্তন করে Painter.asModifier করুন (I7195b)
LayoutPadding মডিফায়ারে ডান-থেকে-বামে দিকনির্দেশ কাজ করে (I9e8da)
Density ও DensityScope একটি ইন্টারফেসে মার্জ করা হয়েছে। ambientDensity()-এর পরিবর্তে আপনি এখন DensityAmbient.current ব্যবহার করতে পারবেন। withDensity(density)-এর পরিবর্তে শুধু with(density) (I11cb1)
ValueHolder ক্লাস সরিয়ে দেওয়া হয়েছে। অ্যানিমেশন ভ্যালু ফিল্ডকে অ্যাবস্ট্রাক্ট করার জন্য পুনর্গঠিত AnimatedValue, AnimatedFloat ক্লাস যাতে সাবক্লাস ভ্যালু আপডেট দেখতে পারে।
- AnimatedValue, AnimatedFloat ইত্যাদির জন্য মডেল ক্লাস যোগ করা হয়েছে।
- ভ্যালুর মধ্যে অ্যানিমেট করার জন্য হালকা ওজনের @Composable API-এর একটি নতুন সেট যোগ করা হয়েছে।
- (I79530)
অ্যাম্বিয়েন্ট API-তে ব্রেকিং পরিবর্তন। বিস্তারিত জানতে লগ ও
Ambient<T>ডকুমেন্টেশন দেখুন (I4c7ee, b/143769776)Placeable#get(AlignmentLine) থেকে রিটার্ন করা অ্যালাইনমেন্ট লাইন Int পজিশন এখন নন-নাল। কোয়েরি করা অ্যালাইনমেন্ট লাইন না থাকলে, AlignmentLine.Unspecified রিটার্ন করা হবে। (I896c5, b/158134875)
ConstraintLayout সংক্রান্ত সমস্যার সমাধান করা হয়েছে যার ফলে রিকম্পোজিশনের সময় ক্র্যাশ হচ্ছিল। (Ibee5a, b/158164341)
WithConstraints ট্রেলিং ল্যাম্বডা API পরিবর্তন করা হয়েছে। এখন দুটি প্যারামিটারের পরিবর্তে এতে একটি রিসিভার স্কোপ আছে যা সীমাবদ্ধতা এবং layoutDirection ছাড়াও Dp-তে (I91b9a, b/149979702) minWidth, maxWidth, minHeight এবং maxHeight প্রপার্টি প্রদান করে
LayoutModifier2-এর নাম পরিবর্তন করে LayoutModifier করা হয়েছে। (Id29f3)
Layout এবং LayoutModifier2-এর ইন্ট্রিনসিক পরিমাপ ফাংশনে এখন একটি IntrinsicMeasureScope রিসিভার আছে যা অন্তর্নিহিতভাবে প্রচারিত লেআউট ডিরেকশন সহ ইন্ট্রিনসিক কোয়েরি API প্রদান করে। (Id9945)
LayoutDirectionAmbient বন্ধ করা হয়েছে। লোকাল দ্বারা নির্ধারিত লেআউট ডিরেকশন পড়তে, ConfigurationAmbient-এ (I851b1) localeLayoutDirection ব্যবহার করুন
LayoutCoordinates-এর জন্য positionInParent ও boundsInParent যোগ করা হয়েছে। (Icacdd, b/152735784)
ParentData কম্পোজ করার উপযুক্ত নয়। আপনাকে হয় ParentDataModifier ইন্টারফেস প্রয়োগ করে এমন একটি মডিফায়ার তৈরি করতে হবে, অথবা আপনি যদি শুধু লেআউট চিলড্রেনকে ট্যাগ করতে চান, যাতে সেগুলিকে মেজার ব্লকের মধ্যে শনাক্ত করা যায়, তাহলে LayoutTag মডিফায়ার ব্যবহার করুন। (I51368, b/150953183)
OnPositioned এবং OnChildPositioned কম্পোজ করার উপযুক্ত ফাংশনগুলি পরিবর্তন করতে OnPositionedModifier এবং OnChildPositionedModifier যোগ করুন। (I2ec8f)
LayoutPadding-এ নেগেটিভ প্যাডিং ব্যবহার করা যাবে না। নেগেটিভ পজিশন অফসেটের জন্য LayoutOffset ব্যবহার করা উচিত। (Ifb5b1)
WithConstraints-এ LayoutDirection প্যারামিটার আছে (I6d6f7)
ComposeFlags.COMPOSER_PARAMফ্ল্যাগ আপডেট করেtrueকরা হয়েছে, এর ফলে কম্পোজ প্লাগ-ইনের কোড জেনারেশন স্ট্র্যাটেজি পরিবর্তিত হবে। মোটামুটিভাবে, এর ফলে @Composable ফাংশন অতিরিক্ত সিন্থেটিক প্যারামিটার সহ জেনারেট হয়, যা রানটাইমকে সঠিকভাবে এক্সিকিউশন ম্যানেজ করার জন্য পরবর্তী @Composable কলে পাস করা হয়। এটি একটি গুরুত্বপূর্ণ বাইনারি ব্রেকিং পরিবর্তন, তবে কম্পোজের অনুমোদিত সমস্ত ব্যবহারে সোর্স-লেভেল কম্প্যাটিবিলিটি বজায় রাখা উচিত। (I7971c)প্রদত্ত অ্যালাইনমেন্ট লাইনকে ম্যাপের পরিবর্তে সেট করতে LayoutCoordinates পরিবর্তন করা হয়েছে এবং ভ্যালু রিট্রিভ করার জন্য LayoutCoordinates-এ get() অপারেটর প্রয়োগ করা হয়েছে। এর ফলে, প্রতিটি মডিফায়ারের জন্য নতুন কালেকশন তৈরি না করেই মডিফায়ারদের পক্ষে সেটের এক বা একাধিক ভ্যালু পরিবর্তন করা সহজ হয়ে যায়। (I0245a)
LayoutCoordinates-এ আর কোনও পজিশন প্রপার্টি নেই। LayoutModifiers, rotation বা স্কেলিংয়ের কথা বিবেচনা করলে position প্রপার্টি অর্থপূর্ণ হয় না। পরিবর্তে, ডেভেলপারদের উচিত একটি LayoutCoordinate থেকে অন্যটিতে ট্রান্সফর্ম গণনা করার জন্য parentCoordinates এবং childToLocal() ব্যবহার করা।
LayoutCoordinates, সাইজ প্রপার্টির জন্য PxSize-এর পরিবর্তে IntPxSize ব্যবহার করে। লেআউটের জন্য লেআউট ইন্টিজার পিক্সেল সাইজ ব্যবহার করে, তাই সব লেআউট সাইজ ইন্টিজার ব্যবহার করা উচিত এবং ফ্লোটিং পয়েন্ট ভ্যালু ব্যবহার করা উচিত নয়। (I9367b)
Constraints-এর API সারফেসে উন্নতি (I0fd15)
TextDirection.Content যোগ করা হয়েছে (I48f36)
কপি, কাট ও পেস্ট বিকল্পগুলি সঠিকভাবে দেখাতে টুলবার মেনু অ্যাডজাস্ট করুন। (Id3955)
TextField বেছে নেওয়ার জন্য FloatingToolbar যোগ করুন। (Ie8b07)
TextDirectionAlgorithm-এর নাম পরিবর্তন করে TextDirection করা হয়েছে (I75ce8)
TextDirection-এর নাম পরিবর্তন করে ResolvedTextDirection রাখা হয়েছে (I3ff38)
TextField বেছে নেওয়ার সময় HapticFeedback যোগ করুন। (I58050)
TextField বেছে নেওয়ার বিকল্পে কপি, কাট ও পেস্ট করার পদ্ধতি যোগ করুন। (Idb70b)
TestTag ও Semantics মুছে দেওয়া হয়েছে। এর পরিবর্তে Modifier.testTag ও Modifier.semantics ব্যবহার করুন (I15ff0, b/158841414)
Locale ও LocaleList-এর প্যাকেজের নাম androidx.ui.text থেকে পরিবর্তন করে androidx.ui.intl করা হয়েছে (I8132c)
API পরিবর্তন:
AnnotatedString(builder: Builder)-এর নাম পরিবর্তন করেannotatedString(builder: Builder)করা হয়েছে। (Ia6377)API পরিবর্তন:
AnnotatedString.Item-এর নাম পরিবর্তন করেAnnotatedString.Rangeকরা হয়েছে। (I2d44d)টেক্সট সম্পর্কিত অপারেশনের জন্য টুলবার যোগ করুন। (I49d53)
নতুন LifecycleOwnerAmbient এখন উপলভ্য। Compose UI-এর সাথে আপনি এখন যে অ্যাক্টিভিটি ব্যবহার করছেন সেটি androidx.activity.ComponentActivity (বা AppCompatActivity) থেকে এক্সটেন্ড করা উচিত। android.app.Activity-তে setContent এখন আর ব্যবহার করা হয় না (Idb25a, b/153141084)
androidx নীতির সাথে সামঞ্জস্য বজায় রাখতে ui-android-text প্যাকেজের নাম (androidx.text) পরিবর্তন করে androidx.ui.text.platform করা হয়েছে। (I42711)