Compose Foundation

বিল্ডিং ব্লক ব্যবহার করার জন্য রেডি এবং আপনার নিজস্ব ডিজাইন সিস্টেমের অংশ তৈরি করার জন্য ফাউন্ডেশন এক্সটেন্ড করে Jetpack Compose অ্যাপ্লিকেশন লিখুন।
লেটেস্ট আপডেট স্টেবল রিলিজ রিলিজ ক্যান্ডিডেট বিটা রিলিজ আলফা রিলিজ
০৭ অক্টোবর, ২০২৬ ১.১২.১ - 1.13.0-beta01 -

গঠন

androidx-এর মধ্যে ৭টি Maven Group Id-এর কম্বিনেশন হল Compose. প্রতিটি গ্রুপে কার্যকারিতার একটি টার্গেট করা সাবসেট থাকে, প্রতিটি গ্রুপের নিজস্ব রিলিজ নোট থাকে।

এই সারণীতে গ্রুপ ও রিলিজ নোটের প্রতিটি সেটের লিঙ্ক ব্যাখ্যা করা হয়েছে।

গ্রুপবর্ণনা
compose.animationব্যবহারকারীর অভিজ্ঞতা আরও ভাল করতে Jetpack Compose অ্যাপ্লিকেশনে অ্যানিমেশন তৈরি করা।
compose.compilerKotlin কম্পাইলার প্লাগ-ইনের মাধ্যমে @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.runtimeCompose-এর প্রোগ্রামিং মডেল ও স্টেট ম্যানেজমেন্টের মৌলিক বিল্ডিং ব্লক এবং টার্গেট করার জন্য 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)
  • আপডেট করা PolygonShape API: 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)
  • পরিবর্তন ট্র্যাক করা TextFieldBuffer API থেকে ExperimentalFoundationApi অ্যানোটেশন সরানো হয়েছে (I546a7)
  • MorphPolygonShape-এর জন্য RoundedCornerShape ও CutCornerShape toPolygonShape() কনভার্টার সহ পলিগন শেপের মধ্যে মরফিং অ্যানিমেশনের জন্য 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)
  • প্রিডিক্টিভ ব্যাক চলাকালীন WindowInsetsRulers IME ইনসেট অ্যানিমেট করা হচ্ছে বলে চিহ্নিত না করা সংক্রান্ত সমস্যার সমাধান করা হয়েছে এবং টেক্সট ফিল্ডের মধ্যে ফোকাস পরিবর্তন করার সময় 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-এ পাস করার জন্য নতুন SelectionState API তৈরি করা হয়েছে।" 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)
  • FlexBox DSL এখন 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 ভার্সনে এইসব কমিট রয়েছে।

সমস্যার সমাধান

  • LookaheadScope I286ad-এর মধ্যে ব্যবহার করা হলে LazyStaggeredGrid-এ মেমরি লিক সংক্রান্ত সমস্যার সমাধান করা

ভার্সন 1.11.0-alpha02

১৭ ডিসেম্বর, ২০২৫

androidx.compose.foundation:foundation-*:1.11.0-alpha02 রিলিজ করা হয়েছে। 1.11.0-alpha02 ভার্সনে এইসব কমিট রয়েছে।

API-তে পরিবর্তন

  • MultiModalInjectionScope API এখন স্টেবল। এর মধ্যে 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.align Row-এর মধ্যে) ব্যবহার করলে ভুল পজিশনিং হত। (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) দেখানোর জন্য ScrollIndicatorState API যোগ করা হয়েছে

সমস্যার সমাধান

  • 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.isClearFocusOnPointerDownEnabled API-এর মাধ্যমে এই আচরণ থেকে বেরিয়ে আসা যাবে। (I6322b, b/282963174)
  • এখন স্ক্রল করার উপযুক্ত আইটেম ২ ডাইমেনশনাল মাউস হুইল স্ক্রল ইভেন্ট আরও ভালোভাবে সাপোর্ট করে। MouseInjectionScope-এ ব্যবহারের ক্ষেত্রে পরীক্ষা করতে সাহায্য করার জন্য একটি নতুন টেস্ট API এসেছে। এছাড়াও, আমরা MouseInjectionScope-এ স্ক্রল পদ্ধতির জন্য একটি নতুন ওভারলোড এবং isMouseWheel1DAxisLockingEnabled (I136df) নামের নতুন আচরণ নিয়ন্ত্রণ করার জন্য একটি ফ্ল্যাগ চালু করেছি
  • অপ্টিমাইজেশনের জন্য পয়েন্টার ইনপুট সাসপেন্ড করার পরিবর্তে র পয়েন্টার ইনপুট ব্যবহার করতে DragGestureNode আপডেট করা হয়েছে। পরিবর্তনগুলি ফ্ল্যাগ isNonSuspendingPointerInputInDraggableEnabled (I0fa4b)-এর পিছনে যোগ করা হয়েছে
  • AnchoredDraggable API-তে @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.cutoutPath API যোগ করা হয়েছে (Ib90b1, b/279636456)
  • isWindowInsetsDefaultPassThroughEnabled ফ্ল্যাগ সরিয়ে দেওয়া হয়েছে, এর ফলে WindowInsets ডিফল্ট হিসেবে কনজিউম করা হয় না, যাতে চাইল্ড ভিউ ডিফল্ট হিসেবে WindowInsets পেতে পারে। (I888e0, b/412469666)

সমস্যার সমাধান

  • isNonSuspendingPointerInputInDraggableEnabled এখন বন্ধ করে দেওয়া উচিত। (Ia41c4)
  • ডিফল্ট minSdk API 21 থেকে API 23-এ সরানো হচ্ছে (Ibdfca, b/380448311, b/435705964, b/435705223)
  • অন্যান্য DraggableAnchors API-এর সাথে সামঞ্জস্য রেখে এইসব 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-কে সর্বজনীন করা হয়েছে যাতে কাস্টমাইজ করা প্রসঙ্গ মেনু তৈরি করা যায়:
    • TextContextMenuProvider
    • TextContextMenuDataProvider
    • TextContextMenuData
    • TextContextMenuComponent
    • LocalTextContextMenuDropdownProvider
    • LocalTextContextMenuToolbarProvider (I1b7b0)
  • LazyLayoutItemProvider ভার্সন স্থিতিশীল করুন (Icce09, b/261565751)
  • ComposeFoundationFlags.isSmartSelectionEnabled-এর মাধ্যমে চালু/বন্ধ করা যায় এমন Android স্মার্ট বেছে নেওয়ার ফিচার চালু করা হয়েছে। এছাড়াও, এটি একটি স্ট্যাটিক compositionLocal LocalTextClassifierCoroutineContext প্রকাশ করে যা 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-এ onVisibleItemsUpdated API আপডেট করা হয়েছে। (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/308398612
  • TextField-এ একটি বাগ সমাধান করা হয়েছে যার কারণে TextFieldState ইনস্ট্যান্স পরিবর্তন করা হলে টেক্সট টুলবার এবং বেছে নেওয়ার হ্যান্ডেল সম্পূর্ণ অদৃশ্য হয়ে যেত। (I8068a), b/390477786
  • BasicText-এ একটি সমস্যার সমাধান করা হয়েছে যেখানে 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 ওভারলোড সরিয়ে দেওয়া হয়েছে। একই ফাংশন পরিবেশনকারী TextAutoSize API ব্যবহার করুন। (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)
  • requestAutofill API-কে অটোফিল ম্যানেজারের বাইরে রাখার জন্য আবার লেখা। (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 চালু করা থাকে। TapGestureDetector API এখন ডিফল্ট হিসেবে নতুন ডিসপ্যাচিং আচরণ (অবিলম্বে ডিসপ্যাচ) ব্যবহার করে। (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)
  • নতুন stickyHeader DSL-এর জন্য ডিফল্ট প্রয়োগ যোগ করা হয়েছে। (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#withoutEventHandling API যোগ করে - এই 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)
  • এক্সপেরিমেন্টাল GlobalAssertions API সরিয়ে দেওয়া হয়েছে। এটি অ্যাক্সেসিবিলিটি চেক চালানোর জন্য ব্যবহার করার কথা ছিল, সেই উদ্দেশ্যে 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 ও LocalOverscrollFactory API যোগ করে। 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 যোগ করা হয়েছে। এর ফলে আগের (এখন আর ব্যবহার করা হয় না) rememberUpdatedInstance API-এর তুলনায় আরও ভাল পারফর্ম্যান্সের ইঙ্গিত সংক্রান্ত প্রয়োগ করা যায়। মাইগ্রেশন সংক্রান্ত তথ্যের জন্য, developer.android.com দেখুন।
    • clickable / combinedClickable / selectable / toggleable এখন নাল ভ্যালু নেওয়া যায় এমন MutableInteractionSource প্যারামিটার গ্রহণ করে। নাল হলে এবং প্রদত্ত ইঙ্গিতটি IndicationNodeFactory হলে, ইঙ্গিতটি শুধুমাত্র প্রয়োজন হলেই অলসভাবে তৈরি করা যেতে পারে, যা পারফর্ম্যান্স উন্নত করে। আপনি যদি MutableInteractionSource হোয়েস্ট ও ব্যবহার না করেন, তাহলে remember { MutableInteractionSource() } পাস করার পরিবর্তে null পাস করার সাজেশন দেওয়া হয়।
    • Indication#rememberUpdatedInstance বন্ধ করে দেওয়া হয়েছে। এতে পারফর্ম্যান্সের উপর অনিবার্যভাবে নেতিবাচক প্রভাব পড়ে এবং অন্যান্য অপ্টিমাইজেশন করা যায় না। পরিবর্তে, আপনাকে নতুন IndicationNodeFactory 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#onNestedPrefetch API-এর মাধ্যমে এটি কনফিগার করা যায়। (I591c4)
  • SemanticsProperties.Editable-এর নাম পরিবর্তন করে IsEditable করা হয়েছে এবং SemanticsPropertyReceiver.editable-এর মান পরিবর্তন করে isEditable করা হয়েছে। প্রপার্টি এখন একটি বুলিয়ান এবং সবসময় টেক্সট ফিল্ডের মাধ্যমে নির্দিষ্ট করা হয়। (I8acd8)
  • basicMarquee ডিফল্ট ভ্যালু MarqueeDefaults অবজেক্টে সরানো হয়েছে। (I12ff6)
  • basicMarquee delayMillis প্যারামিটারের নাম পরিবর্তন করে 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#onNestedPrefetch API-এর মাধ্যমে কন্ট্রোল করা যেতে পারে। (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 এবং এর সাথে যুক্ত LocalContextMenuTheme ProvidableCompositionLocal যোগ করে। কম্পোজিশন লোকাল প্রদান করে টেক্সট ফিল্ড ও বেছে নেওয়ার মতো টেক্সটের কন্টেক্সট মেনুর রঙ পরিবর্তন করা যেতে পারে। (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 ইনস্ট্যান্সের প্লেসমেন্ট ও রেন্ডারিংয়ে আরও বেশি নমনীয়তা প্রদান করতে নতুন GraphicsLayer API নিয়ে আসা হয়েছে এবং 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 ও সম্পর্কিত API androidx.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 যোগ করা হয়েছে। এর ফলে আগের (এখন আর ব্যবহার করা হয় না) rememberUpdatedInstance API-এর তুলনায় আরও ভাল পারফর্ম্যান্সের 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-এর জন্য OutputTransformation API-এর প্রথম ড্রাফ্ট প্রকাশ করা হয়েছে। এই API পুরনো BasicTextField-এ VisualTransformation-এর বেশিরভাগ ব্যবহারিক প্রয়োগকে প্রতিস্থাপন করে। তবে এটি এখনও সম্পূর্ণ হয়নি এবং কিছু জিনিস সঠিকভাবে কাজ করবে না, কিন্তু আপনার ব্যবহারের ক্ষেত্রে API-এর ব্যবহারযোগ্যতা সম্পর্কে কোনও মতামত পেলে আমরা কৃতজ্ঞ থাকব। (aosp/2708848)
  • LinkAnnotation চালু করা হয়েছে যা টেক্সটে লিঙ্ক ও ক্লিক করার উপযুক্ত আইটেম যোগ করতে দেয়। লিঙ্ক করার ফিচার এখনও সম্পূর্ণ হয়নি এবং আরও API পরিবর্তন আসতে চলেছে।
  • receiveContent মডিফায়ার চালু করা হয়েছে যা Jetpack Compose-এ রিচ কন্টেন্ট পাওয়ার একটি উপায় ডেভেলপারদের প্রদান করে।
  • সফ্টওয়্যার কীবোর্ড থেকে বা ক্লিপবোর্ড থেকে পেস্ট করার মাধ্যমে পাওয়া রিচ কন্টেন্ট গ্রহণ করতে receiveContent BasicTextField2-এর সাথে ইন্টিগ্রেট করে।
  • KeyboardOptions.shouldShowKeyboardOnFocus আপনাকে ফোকাস করার সময় সফ্টওয়্যার কীবোর্ড অনুরোধ করার BasicTextField-এর ডিফল্ট আচরণ বন্ধ করার অনুমতি দেয়।
  • TextInputService এবং LocalTextInputService এখন বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে প্ল্যাটফর্ম IME API-এর সাথে সরাসরি ইন্টিগ্রেট করতে PlatformTextInputModifierNode ব্যবহার করুন। (aosp/2862698)
  • Indication#rememberUpdatedInstance বন্ধ করে দেওয়া হয়েছে। এতে পারফর্ম্যান্সের উপর অনিবার্যভাবে নেতিবাচক প্রভাব পড়ে এবং অন্যান্য অপ্টিমাইজেশন করা যায় না। পরিবর্তে, আপনাকে নতুন IndicationNodeFactory API ব্যবহার করতে হবে।

সমস্যার সমাধান

  • 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-কে dragAndDropTarget Modifier-এ যোগ করা হয়েছে। ড্র্যাগ অ্যান্ড ড্রপ সেশনে আগ্রহী হলে, এই ল্যাম্বডা একটি উপযুক্ত 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 SwipeToReveal API (কার্ড ও চিপের জন্য) এখন সেইসব স্লট তৈরি করার জন্য ডেটা ক্লাস ভিত্তিক ইনস্ট্যান্সের পরিবর্তে স্লট ভিত্তিক 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-এর onDrawDragShadow lambda-র নাম পরিবর্তন করে 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-তে পরিবর্তন

  • বর্তমান BasicTextField API-এর মতো, 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)
  • বর্তমান BasicTextField API-এর মতো, 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.consumedWindowInsets API এখন সরিয়ে দেওয়া হয়েছে। পরিবর্তে 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-এ নতুন AnchoredDraggable API চালু করা হয়েছে। এটি এমন কম্পোনেন্ট তৈরি করতে ব্যবহার করা যেতে পারে যা আলাদা আলাদা স্টেটের মধ্যে ড্র্যাগ করা যায়, যেমন মোডাল বটম শিট। এই API, Material-এর Swipeable API-কে প্রতিস্থাপন করে। (I4a2ed)

API-তে পরিবর্তন

  • সহায়তা InputConnection#requestCursorUpdates (I0c69b)
  • কাস্টম অ্যানিমেশন স্পেসিফিকেশন অনুমোদনের জন্য scrollAnimationSpec যোগ করা হয়েছে। BringIntoViewCalculator থেকে BringIntoViewScroller-এ আপডেট করা হয়েছে। (Idb741)
  • ResourceResolutionException টাইপ যোগ করুন যাতে লোড করা যায়নি এমন অ্যাসেট পাথের বিবরণ সহ বিটম্যাপ অ্যাসেট লোড করার চেষ্টা করার সময় থ্রোয়েবল র‍্যাপ করা যায়। (I19f44, b/230166331, b/278424788)
  • টেক্সট অনুবাদ করার জন্য শব্দার্থ সংক্রান্ত প্রপার্টি ও অ্যাকশন যোগ করা হয়েছে। (I4a6bc)
  • BringIntoViewCalculator API চালু করা হয়েছে যা 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.Node API-তে মাইগ্রেট করা হয়েছে, এর ফলে প্রাথমিক কম্পোজিশনের ওভারহেড কমে গেছে।
  • পেজারের স্থিতিশীলতা উন্নত করা হয়েছে। অনেক সমস্যার সমাধান করা হয়েছে।
  • 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)
  • LazyStaggeredGrid API-কে স্টেবল ভার্সনে আপগ্রেড করা হয়েছে। (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-তে পরিবর্তন

  • PinnableContainer API-এর সাধারণ প্রয়োগ যোগ করা হয়েছে যা কম্পোজিশন থেকে বেরিয়ে আসা আইটেম ধরে রাখার জন্য সব 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 ও Hyphens API এখন স্টেবল ভার্সনে আপগ্রেড করা হয়েছে। (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)
  • AndroidFont constructor সহ 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 থেকে beyondBoundCount API ফিরিয়ে নেওয়া (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)

সমস্যার সমাধান

  • কার্সর টাইমার রিস্টার্ট না করেই BasicTextField cursorBrush এখন অ্যানিমেট করা যেতে পারে। (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 যা আমরা ইন্টার্নালি লেজি তালিকা ও গ্রিডকে পাওয়ার করার জন্য ব্যবহার করি।
  • OverscrollEffect API পরীক্ষামূলক হিসেবে চালু করা হয়েছে। আপনি কাস্টম স্ক্রল করা যায় এমন কন্টেনারে স্ট্যান্ডার্ড প্ল্যাটফর্মের একটি যোগ করার পাশাপাশি কাস্টম ওভারস্ক্রল এফেক্টও নির্ধারণ করতে পারবেন।
  • নেস্টেড স্ক্রলিং ইন্টারঅপারেবিলিটি 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 সরানো হয়েছে। নতুন স্টেবল API androidx.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)
  • LazyLayoutItemProvider api-তে ফ্যাক্টরি ইন্ডেক্স অনুযায়ী কম্পোজ করা যায় এমন ল্যাম্বডা রিটার্ন করার পরিবর্তে, এখন আমাদের কাছে ইন্ডেক্স গ্রহণকারী আরও সহজ কম্পোজ করা যায় এমন ফাংশন আইটেম আছে। (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 কনফিগারেশন সঠিকভাবে কাজ করে শুধুমাত্র যখন includeFontPadding false হয়। (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)
  • নতুন পরীক্ষামূলক LazyLayout API চালু করা হয়েছে। এটি আপনাকে 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-তে পরিবর্তন

  • এমন PinnableParent API যোগ করা হয়েছে যা লেজি লেআউটের চিলড্রেনকে বর্তমানে কম্পোজ করা আইটেম ডিসপোজ করা থেকে আটকায় (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) নির্ধারণ করতে নতুন LazyVerticalGrid API যোগ করা হয়েছে
  • 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)
  • Android-এ নতুন ধরনের ফন্ট রিসোর্স ডেসক্রিপ্টর প্রদান করার জন্য AndroidFont, একটি নতুন লো-লেভেল API যোগ করা হয়েছে। যেমন, কোনও অ্যাপ-নির্দিষ্ট ব্যাকএন্ড থেকে ফন্ট লোড করা, ডিভাইসে আগে থেকে ইনস্টল করা ফন্ট ঐচ্ছিকভাবে লোকেট করা অথবা বর্তমান ফন্ট ফ্যাক্টরি দ্বারা প্রদান করা হয়নি এমন কোনও রিসোর্স থেকে ফন্ট লোড করা।
    • ঐচ্ছিক ও অ্যাসিঙ্ক ফন্ট লোডিংয়ের জন্য আরও উন্নত Font.ResourceLoaded API. অ্যাপ্লিকেশন ডেভেলপারদের এই 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-কে Kotlin 1.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 এবং AGP 7.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)
  • FocusState enum-এর পরিবর্তে 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 ইন্টারফেস পরিবর্তন করতে নতুন LocalSoftwareKeyboardController composition local API যোগ করা হয়েছে। (I5951e, b/168778053)
  • TextField-এ আগের SoftwareKeyboardController ইন্টারফেস পরিবর্তন করতে নতুন LocalSoftwareKeyboardController composition 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 } কে ডিফল্ট ফ্যাক্টরি হিসেবে সাপ্লাই করার কথা বিবেচনা করুন।

    আমরা নাল মান গ্রহণ করে না এমন ধরনের লোকাল ভেরিয়েবল ব্যবহার করার সাজেশন দিই না, যদি না কোনও যুক্তিসঙ্গত ডিফল্ট মান প্রদান করা যায়। কোনও উপযুক্ত ডিফল্ট না থাকলে, defaultFactory lambda-কে একটি ব্যতিক্রম দেখাতে হবে। তবে, কোনও ব্যতিক্রম ঘটানো মানে হল যে লোকালের কনজিউমারদের এটি প্রদান করার উপর একটি অন্তর্নিহিত নির্ভরতা থাকবে যা টাইপ সিস্টেম দ্বারা এনফোর্স করা হয় না। (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)
  • 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-text API সরিয়ে 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")
        }
    }
    

    (I0a85b, b/161247083)

ভার্সন 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)
    1. ব্যবহার না করা OffsetBase ইন্টারফেস সরিয়ে দেওয়া
    2. অফসেট ও IntOffset ক্লাসগুলিকে সারিবদ্ধ করে একটি সামঞ্জস্যপূর্ণ API সারফেস তৈরি করুন
    3. Offset API-এর সাথে সামঞ্জস্য বজায় রাখতে IntOffset.Origin-এর নাম পরিবর্তন করে IntOffset.Zero করুন
    4. গ্রাহকদের নিজেদের Canvas ইনস্ট্যান্স তৈরি করতে সাহায্য করার জন্য Canvas ইন্টারফেস থেকে nativeCanvas পদ্ধতি সরানো হয়েছে
    5. refactor DrawScope-এর জন্য EmptyCanvas ক্লাস তৈরি করা হয়েছে যাতে এটি lateinit-এর পরিবর্তে নন-নাল প্যারামিটার হয় এবং ফিল্ডের নন-নাল হওয়ার বিষয়টি নিশ্চিত করা যায়
    6. ClipOp এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
    7. FilterQuality এনুমের নাম পরিবর্তন করে পাসকেল কেস করা হয়েছে
    8. StrokeJoin এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
    9. PointMode এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
    10. রিনেম করা PaintingStyle enum-কে পাস্কেল কেস করা হয়েছে
    11. PathFillType এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
    12. StrokeCap এনুমের নাম পরিবর্তন করে পাস্কেল কেস করা হয়েছে
    13. DrawCache-এর আপডেট করা প্রয়োগ আর lateinit প্যারামিটার ব্যবহার করে না
    14. fillPaint ও strokePaint ইন্টার্নাল প্যারামিটারের জন্য লেজি ডেলিগেশন আর ব্যবহার না করতে DrawScope আপডেট করা হয়েছে
    15. কম ওভারহেডের জন্য Box ব্যবহার এড়াতে আপডেট করা ইমেজ কম্পোজযোগ্য
    16. @Immutable অ্যানোটেশন সহ আপডেট করা আউটলাইন ক্লাস
    17. প্রতিটি পাথ নির্দেশাবলীর জন্য @Immutable অ্যানোটেশন সহ আপডেট করা PathNode
    18. কম্পোজ যেহেতু ইতিমধ্যেই এগুলি ম্যানেজ করে, তাই সমান কিনা তা চেক করার জন্য অপ্রয়োজনীয় কন্ডিশনাল চেক সরিয়ে দিতে আপডেট করা ভেক্টর সাবকম্পোজিশন
    19. ফাংশন কনস্ট্রাক্টরের পরিবর্তে বন্ধ করে দেওয়া Rect কম্প্যানিয়ন কনস্ট্রাক্টর পদ্ধতি
    20. @Immutable এবং @Stable API সহ আপডেট করা ব্রাশ ক্লাস এবং ফাংশন কনস্ট্রাক্টর
    21. VertexMode enum-কে PascalCase হিসেবে আপডেট করা হয়েছে
    22. পরিবর্তিত হলে, ড্রস্কোপের selectPaint পদ্ধতিটি কন্ডিশনালভাবে পেইন্টের স্ট্রোক প্যারামিটার ওভাররাইট করার জন্য আপডেট করা হয়েছে
    23. ডেস্ট্রাকচারিং 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-এ enabled param যোগ করুন (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-এ এখন আলাদা enabled param আছে। বোতামের কিছু প্যারামিটার নতুন নাম দেওয়া হয়েছে বা নতুন ক্রমে সাজানো হয়েছে। (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)