‫Compose Foundation

برنامه‌های Jetpack Compose را با واحدهای سازنده آماده استفاده بنویسید و پایه را گسترش دهید تا عناصر سیستم طراحی خودتان را بسازید.
جدیدترین به‌روزرسانی نسخه پایدار نامزد انتشار انتشار نسخه بتا نسخه آلفا
۷ اکتبر ۲۰۲۶ ۱.۱۲.۱ - 1.13.0-beta01 -

ساختار

«ترکیب» ترکیبی از ۷ «شناسه گروه Maven» در androidx است. هر «گروه» حاوی زیرمجموعه هدف‌گذاری‌شده‌ای از عملکرد است که هرکدام مجموعه یادداشت‌های انتشار خود را دارند.

این جدول گروه‌ها و پیوندها به هر مجموعه از یادداشت‌های انتشار را توضیح می‌دهد.

گروهشرح
compose.animationدر برنامه‌های Jetpack Compose خود پویانمایی بسازند تا تجربه کاربری را غنی‌تر کنند.
compose.compilerبا افزونه مترجم Kotlin، توابع @Composable را تبدیل کنید و بهینه‌سازی‌ها را فعال کنید.
compose.foundationبرنامه‌های Jetpack Compose را با واحدهای سازنده آماده استفاده بنویسید و پایه را گسترش دهید تا عناصر سیستم طراحی خودتان را بسازید.
compose.materialبا «عناصر طراحی Material» آماده استفاده، «میاناهای کاربر Jetpack Compose» بسازید. این نقطه ورود سطح بالاتر «نگارش» است که برای ارائه مؤلفه‌هایی طراحی شده است که با مؤلفه‌های شرح‌داده‌شده در www.material.io مطابقت دارند.
compose.material3ساختن میاناهای کاربر Jetpack Compose با «عناصر طراحی سه‌بعدی ۳»، تکامل بعدی «طراحی سه‌بعدی». «طراحی مادی ۳» شامل زمینه‌سازی و عناصر به‌روزرسانی‌شده و ویژگی‌های شخصی‌سازی «طراحی مادی شما» مثل رنگ پویا است و به‌گونه‌ای طراحی شده است که با سبک بصری جدید Android 12 و واسط کاربر سیستم منسجم باشد.
compose.runtimeواحدهای سازنده بنیادی مدل برنامه‌نویسی و مدیریت وضعیت Compose، و زمان اجرای اصلی برای هدف‌یابی «افزایه کامپایلر Compose».
compose.uiعناصر اساسی میانای کاربر Compose که برای تعامل با دستگاه لازم است، ازجمله چیدمان، طراحی، و ورودی.

اعلام وابستگی‌ها

برای افزودن وابستگی به Compose، باید مخزن Google Maven را به پروژه‌تان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.

وابستگی‌های آرتیفکت‌های موردنیازتان را در فایل build.gradle برای برنامه یا واحدتان اضافه کنید:

شیک

dependencies {
    implementation "androidx.compose.foundation:foundation:1.12.1"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

کاتلین

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.0-beta01

۷ اکتبر ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.13.0-beta01 منتشر شد. نسخه 1.13.0-beta01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫@FloatRange و @IntRange گزارمان را به PolygonShape و PolygonShapeScope پارامتر کارخانه اضافه کرد و innerRadiusRatio را در PolygonShape.star و PolygonShape.pillStar به (0f, 1f) محدود کرد. (I47ea3)
  • ‫PolygonShape «میانای برنامه‌سازی کاربردی» به‌روزرسانی شد: CornerRounding با کارخانه‌های dp() و fraction() به سطح بالا منتقل شد، افزونه‌های transformed() و scaledToFit() با PolygonShape.transform(PolygonShapeTransformScope.() -> Unit) و PolygonShape.copy() تغییرپذیر درجا جایگزین شد. (If5970)
  • اشکالی برطرف شد که در آن درخواست تمرکز روی BasicTextField قبل‌از تمرکز پنجره (برای نمونه در onCreate) باعث می‌شد صفحه‌کلید نرم‌افزاری نمایش داده نشود. اکنون BasicTextField منتظر می‌ماند تا پنجره تمرکز پیدا کند و سپس جلسه ورودی نوشتار را شروع می‌کند. اگر این امر برای توسعه‌دهندگان مشکل ایجاد می‌کند، می‌توانید با تنظیم ComposeFoundationFlags.isTextFieldWaitWindowFocusForInputSessionEnabled روی «نادرست»، به رفتار قبلی برگردید. (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)
  • مشکل ازکارافتادن IllegalStateException هنگام به‌روزرسانی consumeWindowInsets، windowInsetsPadding، یا onConsumedWindowInsetsChanged در گره‌های اصلاح‌گر جداشده، مثل هنگام حرکت movableContent، برطرف شد. (I80ae5)
  • ‫androidx.lifecycle:lifecycle-runtime پیش‌نیاز به نسخه ۲.۱۰.۰ به‌روزرسانی شد. این نسخه برای اجرای بررسی‌های لینت زمان اجرای چرخه حیات دسته‌ای با AGP نسخه ۹.۵.۰-alpha04 یا جدیدتر الزامی است. (I99bfd، b/556807521)

نسخه 1.13.0-alpha03

۹ سپتامبر ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.13.0-alpha03 منتشر شد. نسخه 1.13.0-alpha03 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی را برای مشخص کردن سبک بخش‌های جداگانه یک عنصر ترکیبی (مثل TextField یا DatePicker) مستقیماً در پارامتر سبک عنصر ترکیبی اضافه می‌کند. این کار امکان ایجاد یک عنصر ترکیبی TextField-مانند را فراهم می‌کند که به شما امکان می‌دهد هریک از چارگوش‌های تزئینی را بااستفاده از سبک سفارشی‌سازی کنید و آن‌ها را در سطح زمینه یا در سایت تماس لغو کنید. (I43c0f)
  • فیلدهای نوشتاری «مطلب ۲» که value, onValueChange پارامتر را می‌پذیرند منسوخ شده‌اند. لطفاً به سرباری که از TextFieldState برای بالا بردن وضعیتش استفاده می‌کند انتقال دهید. (I6b841، b/556234973)
  • گزارمان @ExperimentalFoundationApi از undoState در TextFieldState برداشته شد. (I93a44)
  • برای هر چیدمان تنبلی که حاوی مقادیر پیش‌فرض استفاده‌شده در توابع @Composeable مربوطه است، اشیای پیکربندی پیش‌فرض اضافه کنید. درحال‌حاضر فقط حاوی پنجره حافظه نهان پیش‌فرض برای هر چیدمان است. (I58633)
  • پرچم isUsingDynamicDefaultCacheWindowIn[List|Grid|StaggeredGrid]s وقتی فعال باشد باعث می‌شود چیدمان‌های تنبل از پنجره حافظه نهانی استفاده کنند که از اندازه میانگین عناصر نمایان برای پیش‌واکشی پیش‌از درگاه دید استفاده می‌کند و حداقل پنجره پیش‌واکشی ۱۰٪ درگاه دید و حداکثر پنجره پیش‌واکشی ۵۰٪ درگاه دید است. (I59212)
  • ‫LazyListPrefetchStrategy،‏ LazyListPrefetchScope، و LazyListPrefetchResultScope منسوخ شدند. عملکرد پیش‌دریافت باید بااستفاده از LazyLayoutCacheWindow در LazyColumn یا LazyRow پیکربندی شود. ‫LazyLayoutCacheWindow یک سازوکار ذخیره کردن براساس نمای دید اعلامی ارائه می‌دهد که به‌طور خودکار موارد را ازقبل آماده می‌کند و موارد را در پشت پنجره نمایان نگه می‌دارد، بدون اینکه نیاز به تماس‌های برگشتی زمان‌بندی اجباری پیچیده داشته باشد. «میانای برنامه‌سازی کاربردی» جدید ساده‌تر است و نسبت‌به LazyListPrefetchStrategy به مراحل پیکربندی کمتری نیاز دارد. (I1fa2d)
  • توابع افزونه PolygonShape.transformed و PolygonShape.scaledToFit را در «پایه Compose» برای تبدیل و برازش شکل‌های چندضلعی اضافه می‌کند. (I3f327)
  • این تغییر «میانای برنامه‌سازی کاربردی سبک‌ها» را به دو بخش مستقل بازسازی می‌کند: «زبان مدل‌سازی سبک‌ها» و اصلاح‌کننده‌هایی که با «زبان مدل‌سازی سبک‌ها» پیکربندی می‌شوند. پیاده‌سازی قبلی مبتنی بر Style همچنان وجود دارد اما منسوخ و برداشته خواهد شد. هرگونه استفاده از آن باید با میانای برنامه‌سازی کاربردی جدید مبتنی بر CommonStyle جایگزین شود.
  • عناصر اصلی معرفی‌شده:
    • CustomStyle و CommonStyle: میاناهای پایه و ادغام‌کننده‌های کمکی برای اعلام سبک‌های ساختنی.
    • ‫StyleResolver: دارایی‌های سبک را در ترکیب حل‌وفصل می‌کند و ازطریق Modifier.styleResolver به گره‌های چیدمان پیوند می‌دهد.
    • ‫Modifier scopes: ‏Modifier.appearance، ‏Modifier.placement، و Modifier.padding و Modifier.graphicsLayer مبتنی بر تماس برگشتی پویا.
    • عناصر اولیه دارایی: stylePropertyOf، styleLocalOf.
    • انواع مفید برای دارایی‌های سبک: Breadth، Fill، و Shadows.
  • اصلاح‌کننده‌های جدید برای پیاده‌سازی سیستم طراحی بااستفاده از «میانای برنامه‌سازی کاربردی سبک‌ها» مفید هستند اما الزامی نیستند. سیستم طراحی ممکن است از این اصلاح‌کننده‌ها استفاده کند یا اصلاح‌کننده‌های خود را ارائه دهد. (Ieb8cc، b/549921960)
  • ‫ExperimentalFoundationApi گزارمان از TextFieldBuffer «میانای برنامه‌سازی کاربردی» که تغییرات را پیگیری می‌کند برداشته شد (I546a7)
  • MorphPolygonShape را در «پایه Compose» برای پویانمایی‌های تغییر شکل بین شکل‌های چندضلعی، همراه با toPolygonShape() مبدل برای RoundedCornerShape و CutCornerShape معرفی می‌کند. (Ic5a89)
  • ‫PolygonShape را در «پایه Compose» برای پرداز کردن چندضلعی‌های گرد منظم، ستاره‌ای، و سفارشی با گوشه‌های صاف معرفی می‌کند. (I0b99d)
  • ‫BasicTextField سربار که value, onValueChange پارامتر را می‌پذیرد منسوخ شده است. لطفاً به BasicTextField سرباری که از TextFieldState برای بالا بردن وضعیتش استفاده می‌کند انتقال دهید. (I636bf, b/552879150)
  • هم‌زمان با BasicTextField(value, onValueChange)، VisualTransformation نیز منسوخ شده است زیرا فقط ازطریق این طعم TextField آشکار می‌شود. تبدیل‌های موجود باید به OutputTransformation منتقل شوند. (I636bf, b/552879150)
  • ارائه LazyLayoutCacheWindow و LazyListPrefetchStrategy ازطریق LazyListState منسوخ شده است و به‌جای آن LazyLayoutCacheWindow به تابع ترکیب‌شدنی ارائه می‌شود. (I71f19)
  • پرچم ویژگی موقت ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled برداشته شد. (Ifff7f)
  • ‫InputTransformation.maxLengthTrim برای محدود کردن طول نوشتار با کوتاه کردن نویسه‌های ورودی اضافی اضافه شد، InputTransformation.maxLengthReject برای رد کردن ورودی‌هایی که از maxLength فراتر می‌روند اضافه شد، و InputTransformation.maxLength به‌نفع maxLengthTrim و maxLengthReject منسوخ شد. (I8d4cd)

رفع اشکال‌ها

  • ‫compileSdk برای کتابخانه‌های Compose به نسخه ۳۷.۱ به‌روز شد. این کار مستلزم به‌روزرسانی انتقالی compileSdk برای همه برنامه‌ها و کتابخانه‌هایی است که از Compose استفاده می‌کنند. (I05b0f)
  • رفع مشکلی که باعث می‌شد درطول حرکت به عقب پیش‌بینانه، WindowInsetsRulers درونه‌گذاری‌های IME به‌عنوان متحرک علامت‌گذاری نشوند، و رفع مشکلی که باعث می‌شد imePadding هنگام تغییر کانون بین فیلدهای نوشتاری به‌روزرسانی نشود. (Id4562، b/537386261، b/539686000)
  • ‫SecureTextField و OutlinedSecureTextField عنصر (و همچنین BasicSecureTextField سربار منسوخ‌شده) به‌روزرسانی شد تا به‌جای TextObfuscationMode.RevealLastTyped از TextObfuscationMode.System به‌عنوان حالت مبهم‌سازی پیش‌فرض استفاده کند. (I76c7e)

نسخه 1.13.0-alpha02

۲۶ اوت ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.13.0-alpha02 منتشر شد. نسخه 1.13.0-alpha02 شامل این تغییرات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «میاناهای برنامه‌سازی کاربردی» چیدمان «جدول تبلیغات ویژه» (Grid،‏ GridScope،‏ GridConfigurationScope،‏ GridFlow،‏ Fr،‏ GridTrackSize،‏ GridTrackSpec،‏ Modifier.gridItem) به پایدار. (I43ac4، b/462550392)
  • دارایی معنایی جدید BackgroundColor برای Modifier.background (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)

تغییرات میانای برنامه‌سازی کاربردی

  • ارائه LazyLayoutCacheWindow و LazyGridPrefetchStrategy ازطریق LazyGridState منسوخ شده است و به‌جای آن LazyLayoutCacheWindow به تابع ترکیب‌شدنی ارائه می‌شود. (I3f31e)
  • برداشتن پرچم isSkipItemPlacementAnimationFixEnabled (I890f3، b/493183465)
  • برداشتن پرچم isClearNestedScrollCoroutineScopeFixEnabled (Iedfd7، b/506963276)
  • پرچم isCacheWindowVisibleItemCountCheckEnabled به isCacheWindowLookaheadCheckEnabled تغییر کرد (I2ea06)
  • ‫TextFieldState اکنون اطلاعات سبک نوشتار را ذخیره و بازیابی می‌کند. ‫AnnotatedString.Annotation.Saver اکنون عمومی است تا امکان ذخیره و بازیابی AnnotatedString.Annotation شیء فراهم شود. (I8b533، b/135556699)
  • پنجره حافظه نهان را به چیدمان شبکه نامنظم تنبل اضافه می‌کند. برای برگشتن به رفتار پیش‌جویی قدیمی، isUsingCacheWindowInStaggeredGrids را روی false تنظیم کنید. (I1c70d)
  • ‫FlexBox و میاناهای برنامه‌سازی کاربردی پیکربندی مربوط به آن به وضعیت پایدار ارتقا یافته‌اند و دیگر آزمایشی نیستند. (I209ed،‏ b/475491619)
  • پیکربندی maxItemsInEachLine به FlexBox اضافه شد تا درصورت فعال بودن پیچیدن، تعداد موارد در هر خط محدود شود. (I2744b،‏ b/475491619)
  • روش‌های پایه خالی قابل‌لغو با @EmptySuper در سراسر Compose حاشیه‌نویسی شده است تا نشان دهد پیاده‌سازی‌های لغوکننده نباید از super فراخوانی کنند. (Id407b)
  • میاناهای برنامه‌سازی کاربردی پویانمایی و رؤیت‌پذیری WindowInsets به پایدار ارتقا یافت. (I37441, b/537329254)
  • اکنون کلیک روی عناصر کلیک‌کردنی به‌طور خودکار جلوه‌های صوتی تعامل را در Android پخش می‌کند. (Ia72f8)
  • اگر تعداد عناصر نمایان بدون پیمایش تغییر کند، پنجره حافظه نهان اکنون پنجره پیش‌رو را دوباره پر می‌کند. پرچم isCacheWindowVisibleItemCountCheckEnabled را روی false تنظیم کنید تا این بررسی غیرفعال شود و به رفتار قدیمی برگردد. (I67b5a)
  • دارایی NestedScrollDispatcher.coroutineScope به‌روزرسانی شد تا CoroutineScope لغوشده را هنگام جدا شدن یا جدا شدن ایمن برگرداند. (I9b112، b/535290281)
  • نام enableNonScrollCaching به isNonScrollCachingEnabled تغییر کرد (I7a54b، b/535290282)
  • ‫ @CheckResult به SemanticsNodeInteraction.isDisplayed() و isNotDisplayed() اضافه شد تا مطمئن شویم مقادیر برگشتی آن‌ها تأیید می‌شود و درنتیجه وقتی توسعه‌دهندگان به‌اشتباه از آن‌ها به‌جای میاناهای برنامه‌سازی کاربردی تأیید استفاده می‌کنند، از خطاهای آزمایشی بی‌صدا جلوگیری شود. (I1b447، b/508178494)
  • پایدار کردن LazyLayoutCacheWindow (I2cda3)
  • پارامتر bringIntoViewSpec برای «صفحه‌بندی افقی و عمودی» اضافه شد تا امکان لغو پیاده‌سازی پیش‌فرض «صفحه‌بندی» فراهم شود. (Icdcbf، b/505052292)
  • اشکالی را در تشخیص عدم فعالیت زمان‌بندی پیش‌واکشی چیدمان تنبل برطرف می‌کند. قبلاً، زمان‌بند ممکن بود وقتی قاب به‌شدت تأخیر داشت، به‌اشتباه خود را در حالت آماده به‌کار درنظر بگیرد که احتمالاً هنگام پیمایش منجر به لرزش می‌شد. برای بازگشت به رفتار قدیمی، پرچم isLazyPrefetchSchedulerIdleTimeFixEnabled compose را روی false تنظیم کنید. (If0594،‏ b/458024295)
  • ‫coroutineScopeOrNull() را در NestedScrollDispatcher معرفی کنید، میانای برنامه‌سازی کاربردی جایگزینی برای دسترسی به محدوده روال هم‌زمان اصلی توزیع‌کننده. (I18c0f)
  • مشکل جابه‌جایی نوشتار افقی درحین پیمایش بیش‌ازحد در «نوشتن» برطرف شد. ازطریق AndroidComposeFoundationFlags.isOverscrollPixelRoundingEnabled می‌توان آن را غیرفعال کرد. (Ica169، b/532079110، b/532081619)
  • پرچم isDraggableZeroDeltaConsumptionEnabled را برای کنترل کردن عرضه تدریجی این اصلاح در Draggable معرفی کنید. اکنون رویدادهای دلتای صفر به‌درستی پردازش می‌شوند. (I50eb1،‏ b/524163413)
  • اکنون انتخاب نوشتار درطول به‌روزرسانی‌های هم‌زمان نوشتار به‌طور ایمن محدود می‌شود تا از خرابی جلوگیری شود. (I64fd7)
  • ‫androidx.benchmark اکنون minSdk برابر با ۲۴ دارد. (Ic2a85)
  • اکنون پیوندها هنگام چندخطی بودن بازه، کلیک‌ها را بهتر مدیریت می‌کنند. هدف لمسی برای پشتیبانی از این ویژگی به ۰ ملغی شده است. اگر این رفتار مطلوب نیست، از پرچم ComposeFoundationFlags.isLinkMinimumTouchTargetSizeZeroEnabled برای ملغی کردن آن استفاده کنید. (Ide41b، b/361106057)
  • رفع استثنای حجم پایین هنگام نوشتن در شیء حالت تغییرپذیر. (I48194،‏ b/503110696)
  • نمایش keys قابل‌مشاهده در SaveableStateHolder برای ساده کردن ناوبری/مدیریت وضعیت پشته برگشت و برداشتن نیاز به ردیابی خارجی key. دسترسی ازطریق holder.keys؛ با removeState برداشته می‌شود. (I9bbbb، b/398887924)
  • تابع کمکی آزمایشی و قدیمی IndirectPointerEvent را برمی‌دارد. (I05dee، b/499336763، b/501098299، b/501098376، b/513249467)
  • ‫LocalBringIntoViewSpec را در Android پایدار کنید. (Ibcb97)
  • افزودن پرچم isMultiLaneCacheWindowEnabled (I3d997)
  • ‫«SelectionState API جدیدی ایجاد شد تا به SelectionContainer ارسال شود تا نوشتار انتخاب‌شده را مشاهده کند و انتخاب را به‌صورت برنامه‌ریزی‌شده به‌روز کند.» به androidx-main am: 929401883c am: c02871cac4 (I15bd4)
  • ‫LocalTextFieldContentObserverRegistrationExecutor اضافه شد که روشی برای واگذاری ثبت ضمنی ContentObserver که در TextFields اتفاق می‌افتد به یک رشته پس‌زمینه ارائه می‌دهد. (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)
  • اطلاعات میانای برنامه‌سازی کاربردی را پاک می‌کند (Ia8066)
  • اشکالی در BasicTextField برطرف شد که باعث می‌شد وقتی درخواست می‌شد، به‌روزرسانی‌های نوشتار استخراج‌شده را به‌درستی به «ویرایشگر روش ورودی» ارائه نمی‌کرد. (I746fa،‏ b/203549026،‏ b/492363474)

نسخه ۱.۱۲

نسخه ۱.۱۲.۱

۹ سپتامبر ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.12.1 منتشر شد. نسخه ۱.۱۲.۱ شامل این تعهدات است.

نسخه ۱.۱۲.۰

‫۱۲ اوت ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.12.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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام تابع آزمایش را برای راه‌اندازی رویدادهای اشاره‌گر غیرمستقیم تغییر می‌دهد (I3ee35، b/509618414)
  • نام TextObfuscationMode.Default به System تغییر کرد. TextObfuscationMode.RevealLastTyped اکنون به‌عنوان یک لغو مطلق عمل می‌کند و همیشه آخرین نویسه تایپ‌شده را نشان می‌دهد. متغیر مستقل پیش‌فرض BasicSecureTextField به System به‌روزرسانی شد. (If26d3،‏ b/425658491،‏ b/453647378)
  • ‫getSpanStyles و getParagraphStyles به‌روزرسانی شد تا به‌جای شاخص‌های شروع/پایان جداگانه، TextRange را بگیرد. بررسی محدوده‌های آسان‌گیر در پُرسمان‌های سبک برای اینکه دیگر استثنا ایجاد نشود، و جلوگیری از خرابی هنگام پُرسمان کردن دارایی‌های TrackedRanges نامعتبر. (I62a9a، b/514404697)
  • ویژگی «مناطق نام‌گذاری‌شده» به چیدمان «جدولی» اضافه شد. توسعه‌دهندگان اکنون می‌توانند بااستفاده از GridConfigurationScope.area() حوزه‌های معنایی را تعریف کنند و بااستفاده از سربار جدید Modifier.gridItem(area) موارد را در آن‌ها قرار دهند و قصد معنایی را از مختصات فیزیکی جدا کنند. (Id9303، b/487503921)
  • سپس عملگرها و توابع کارخانه ترکیب برای FlexBoxConfig و FlexConfig اضافه شد تا امکان ادغام و ملغی کردن پیکربندی‌های چیدمان فراهم شود. (Icfdd8، b/475491619)
  • ‫RevealState.drag()‎،‏ SwipeToRevealDragScope اضافه شد و flingBehavior سفارشی در SwipeToReveal آشکار شد تا کنترل برنامه‌نویسی‌شده بر اشاره‌های تند کشیدن، جبران‌سازی‌ها، و پویانمایی‌های استقرار را فعال کند. (Ibfe56، b/484185090)

رفع اشکال‌ها

  • رفع مشکلی که در آن نوارابزار انتخاب نوشتار ممکن بود موقعیت یا موارد خود را به‌روزرسانی نکند. (Ib2566)

همیاری خارجی

  • در SelectionContainer، اجازه دهید انتخاب (ازطریق موشواره) در نواحی خالی بین Text انتخاب‌شدنی شروع شود. (I93f69، b/502151445)
  • نمایش رابط AndroidClipboard برای آزمایش به‌منظور ارائه روشی برای شبیه‌سازی پیاده‌سازی بریده‌دان (Ie4d72، b/512924975)
  • سازگاری با نسخه قدیمی را برای TextAttribute گونه از commitText() و setComposingText() اضافه کنید. برای «کیت توسعه نرم‌افزار»>=۳۷، خدمات دسترس‌پذیری می‌توانند اعلام کنند که آیا نوشتار جایگزین پیشنهادی انتخاب شده است یا نه. برای «کیت توسعه نرم‌افزار» <۳۷، بر بازخورد گفتاری (یعنی رفتار موجود) تأثیر نمی‌گذارد. (I90e3d، b/439879822)

نسخه 1.12.0-alpha03

‫۱۹ مه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.12.0-alpha03 منتشر شد. نسخه 1.12.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • در Style API آزمایشی، پشتیبانی از ایجاد انواع سبک سفارشی که می‌توانند محدوده‌های سبک سفارشی داشته باشند اضافه شد. این امر امکان می‌دهد تا زیرمجموعه‌ای از دارایی‌های قابل تنظیم توسط سبک (مثل برداشتن کامل لایه گرافیک یا دارایی‌های نوشتاری) ایجاد شود و همچنین امکان می‌دهد تا محدوده به‌طور مستقل از سبک‌های دیگر گسترش یابد (مثل پشتیبانی فقط از دستورگان playing { } در ترکیب‌شدنی MediaPlayer). این تغییر سازگاری باینری و منبع را قطع می‌کند. تغییر اصلی که سازگاری منبع را ازبین می‌برد این است که توابع کمکی در 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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم جدیدی به‌نام isBasicTextFieldHeighInLinesOptimizationEnabled اضافه شد تا بهینه‌سازی در محاسبه ارتفاع فیلد نوشتاری براساس تعداد خطوط کمینه/بیشینه فعال شود. باید به‌طور پیش‌فرض روشن باشد. اگر در چیدمان فیلد نوشتاری پس‌رفت‌هایی مشاهده کردید و غیرفعال کردن این پرچم آن را اصلاح کرد، لطفاً اشکالی را برای تیم «نوشتن» ثبت کنید تا بررسی کنند. (Idffae، b/486871837، b/487546327)
  • رفع کردن انتخاب textfield هنگام ویرایش نوشتار درحین اشاره. (I6fd98, b/490509264)
  • پشتیبانی از colorFilter به StyleScope در «پایه Compose» اضافه شد. ‫(I553a0)
  • textMotion به StyleScope اضافه شد. (Id8523، b/482301609)
  • گزینه‌های KeyboardType دیگری را برای تکمیل مجموعه گزینه‌های صفحه‌کلید پشتیبانی‌شده در Android اضافه می‌کند، ازجمله تاریخ، زمان، تاریخ و زمان، اعشاری علامت‌دار، و غیره. (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)
  • سربارهای contentPadding و externalPadding در StyleScope که PaddingValues را می‌پذیرند اضافه شد. (I3a6ce،‏ b/493154098)
  • VelocityTracker تغییر کرد تا از پیاده‌سازی ارائه‌شده توسط «چارچوب Android» استفاده کند (با AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled قابل پیکربندی است). (Ibc7e2، b/359962905)

رفع اشکال‌ها

  • نحوه ردیابی پویانمایی‌ها و دارایی‌ها تغییر کرده است تا از هم‌پوشانی پویانمایی‌ها برای دارایی یکسان جلوگیری شود. (I4921f)
  • اشکالی که باعث می‌شد وقتی TextField(یا نوشتار قابل‌انتخاب) در «کادر گفتگو» باشد منوِ بافت ازکار بیفتد برطرف شد. (I21461, b/441759435)
  • ‫Compose compileSdk به API 37 به‌روز شد. این یعنی هنگام استفاده از «نوشتن»، حداقل نسخه AGP باید ۹.۲.۰ باشد. (Id45cd،‏ b/413674743)
  • رفع مشکلی در «جدول» که در آن تمرکز صفحه‌کلید و پیمایش دسترس‌پذیری از ترتیب ترکیب مورد به‌جای ترتیب جای‌گذاری دیداری Z شکل پیروی می‌کرد. (I122a8، b/494096503)
  • اشکالی برطرف شد که در آن نوارابزار انتخاب نوشتار به‌اشتباه پنهان می‌شد وقتی دستگیره‌های شروع و پایان به‌صورت افقی تراز می‌شدند (برای نمونه، انتخاب در چند خط که به خط خالی ختم می‌شد). (I391d2, b/497724722)
  • رفع مشکلی در FlexBox که باعث می‌شد وقتی موارد از محدوده محتوی فراتر می‌رفتند به‌درستی کوچک نشوند. (Ia741d،‏ b/480797591)
  • رفع اشکال برای foregroundColor که به‌درستی نامعتبر نمی‌شد. (I74abe، b/493245886)
  • حاشیه‌های قدیمی را برای حالتی که شنونده حاشیه «نوشتن» جدا و دوباره پیوست می‌شود اصلاح می‌کند. (I1e905، b/491346046، b/486084139)
  • وقتی کاربر مکان‌نما را به خارج از ناحیه پیمایش‌پذیر می‌برد، مکان‌نما اکنون به فضای رؤیت‌پذیر پیمایش می‌شود. (If694c، b/266094055)

نسخه ۱.۱۱

نسخه ۱.۱۱.۴

۱ ژوئیه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.4 منتشر شد. نسخه ۱.۱۱.۴ شامل این تعهدات است.

نسخه ۱.۱۱.۳

‫۱۷ ژوئن ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.3 منتشر شد. نسخه ۱.۱۱.۳ شامل این تعهدات است.

نسخه ۱.۱۱.۲

‫۱۹ مه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.2 منتشر شد. نسخه ۱.۱۱.۲ شامل این تعهدات است.

نسخه ۱.۱۱.۱

۶ مه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.1 منتشر شد. نسخه ۱.۱۱.۱ شامل این تعهدات است.

رفع اشکال‌ها

  • رفع مشکلی در FlexBox که باعث می‌شد وقتی موارد از محدوده محتوی فراتر می‌رفتند به‌درستی کوچک نشوند. (Ia741d،‏ b/480797591)

نسخه ۱.۱۱.۰

‫۲۲ آوریل ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0 منتشر شد. نسخه ۱.۱۱.۰ شامل این تعهدات است.

نسخه 1.11.0-rc01

۸ آوریل ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0-rc01 منتشر شد. نسخه 1.11.0-rc01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • رفع کردن انتخاب textfield هنگام ویرایش نوشتار درحین اشاره. (I2ba33, b/490509264)

نسخه 1.11.0-beta02

۲۵ مارس ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0-beta02 منتشر شد. نسخه 1.11.0-beta02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم isReverseLayoutNestedScrollConnectionInPagerFixEnabled برای کنترل کردن عرضه این اصلاح اضافه شد. (I07404،‏ b/399800244)
  • ‫isSkipItemPlacementAnimationFixEnabled را برای کنترل کردن عرضه تدریجی این ویژگی معرفی کنید. (Id665d،‏ b/455884472،‏ b/352584409،‏ b/410487464،‏ b/372509998)
  • MinMax(min: Dp, max: Fr) به GridTrackSize اضافه شد. این کار به توسعه‌دهندگان امکان می‌دهد مرزهای حداقلی یک قطعه انعطاف‌پذیر را به‌طور صریح تعریف کنند. استفاده از 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)
  • مشکلی در Row با Arrangement.spacedBy در راست‌به‌چپ برطرف شد که در آن سرریز شدن موارد منجر به چیدمان و فاصله‌گذاری نادرست می‌شد. (I44e53، b/476006478)

نسخه 1.11.0-beta01

۱۱ مارس ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0-beta01 منتشر شد. نسخه 1.11.0-beta01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • محاسبات حداقل اندازه داخلی BasicTextField را بهینه‌سازی کرد. این موارد توسط ComposeFoundationFlags#isBasicTextFieldMinSizeOptimizationEnabled کنترل می‌شوند، درصورت نیاز می‌توانید آن‌ها را غیرفعال کنید. (I70ade)
  • ‫rememberUpdatedStyleState که بخشی از Style API آزمایشی است اضافه شد. هنگام ایجاد نمونه‌های StyleState باید از rememberUpdated استفاده شود، وقتی که پارامترهای عنصر ترکیب‌شدنی (مثل enabled) در وضعیت سبک کپی می‌شوند (Idf7ff، b/485510967)
  • ویژگی‌های PointerInputChange و HistoricalChange را برای بازیابی مقادیر مقیاس و حرکت تغییر نام می‌دهد. (I989a8،‏ b/481333653)
  • عملکرد بیشتری برای «میاناهای برنامه‌سازی کاربردی» آزمایش پد لمسی اضافه می‌کند تا منحنی‌ها و ورودی‌های مختلفی را برای اشاره پد لمسی شبیه‌سازی کند. (I290fb،‏ b/473603145،‏ b/479213358)
  • ‫PointerEventType.Pan جدید را به PointerEventType.PanStart، PointerEventType.PanMove، و PointerEventType.PanEnd تقسیم می‌کند. به‌همین ترتیب، PointerEventType.Scale به PointerEventType.ScaleStart، PointerEventType.ScaleChange، و PointerEventType.ScaleEnd تقسیم می‌شود. این تقسیم به شما امکان می‌دهد اطلاعات بیشتری درباره شروع و پایان حرکات پیمایش و مقیاس‌بندی تفسیرشده توسط پلاتفرم ارسال کنید، که به نوبه خود به مدیریت‌کننده‌های ورودی اشاره‌گر در «نگارش» امکان می‌دهد از این اطلاعات برای تشخیص صحیح رویدادها استفاده کنند، و به‌ویژه بدانند که پیمایش یا مقیاس‌بندی چه زمانی تمام می‌شود. (I4daf6، b/479285849، b/481333653)
  • ‫constraints به GridConfigurationScope اضافه شد تا امکان تعریف کردن قطعه‌های شبکه براساس اندازه دردسترس فراهم شود. (I80a41، b/481205205، b/481205205)
  • ‫FlexBox DSL اکنون به‌جای دارایی‌ها (مثلاً grow = 1f) از توابع(مثلاً grow (1f)) برای پیکربندی در FlexBoxConfig و Modifier.flex استفاده می‌کند. (I8dbae،‏ b/475491619)

رفع اشکال‌ها

  • اشکالی که در آن OutputTransformation باعث درج نویسه تکراری در برخی‌از «روش‌های ورودی» می‌شد برطرف شد. (I9fdc0)
  • پشتیبانی از حرکت تند را به اشاره‌های پیمایش صفحه لمسی اضافه می‌کند (I55f8a، b/479285849)
  • افزودن محک برای «میانای برنامه‌سازی کاربردی سبک» آزمایشی (I67437)

همیاری خارجی

  • دارایی InputTextSuggestionState را اضافه کنید تا به شناسایی وضعیت‌های مختلفی که ورودی ترانویسی می‌تواند در آن‌ها قرار گیرد کمک کند، زمانی که پیشنهادهای جایگزینی نوشتار دردسترس است. همچنین TextCompositionRange را برای پیگیری محدوده ترکیب نوشتاری ترانویسی فعلی معرفی می‌کند؛ مقدار تهی نشان می‌دهد که ترکیبی در جای خود وجود ندارد. (I7a67f،‏ b/476472318)
  • سربار جدیدی به BasicTooltipBox اضافه شد که امکان پیکربندی propagateMinConstraints را فراهم می‌کند، مشابه پارامتر Box با همان نام. این امر امکان می‌دهد محدودیت‌های حداقلی مستقیماً به فرزندان BasicTooltipBox منتقل شود، بدون اینکه BasicTooltipBox آن‌ها را کاهش دهد. از استیون شون سپاس‌گزاریم! (Ib145f،‏ b/467532639،‏ b/301605744)

نسخه 1.11.0-alpha06

۲۵ فوریه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0-alpha06 منتشر شد. نسخه 1.11.0-alpha06 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • میانای برنامه‌سازی کاربردی سبک آزمایشی را معرفی می‌کند که روشی یکنواخت برای فعال کردن سفارشی‌سازی توابع ترکیبی ارائه می‌دهد. این «میانای برنامه‌سازی کاربردی» درحال توسعه فعال است و ممکن است قبل‌از پایدار شدن، تغییرات قابل‌توجهی را تجربه کند. برای جزئیات نحوه استفاده از این «میانای برنامه‌سازی کاربردی»، مستندات پیوست‌شده را ببینید. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫isNestedDraggablesTouchConflictFixEnabled برای حل کردن تداخل‌های قابل‌کشیدن تودرتو معرفی شد. ما کشیدن عمودی را بیشتر از کشیدن افقی ترجیح می‌دهیم زیرا ازنظر تجربه کاربری، وقتی کاربر یک اشاره عمودی درمقایسه با اشاره افقی انجام می‌دهد، آزادی و عدم قطعیت بیشتری وجود دارد. (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)

رفع اشکال‌ها

  • IndexOutOfBoundsException در BasicTextField هنگام استفاده از ``OutputTransformation و حذف نوشتار رفع شد. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اشکالی برطرف شد که در آن targetValue AnchoredDraggableState در برخی‌از سناریوها با چندین لنگر در یک افست یکسان نادرست بود. وقتی در لنگری که همان انحراف لنگر دیگر را داشت مستقر می‌شد، targetValue آخرین لنگر را در این انحراف به‌اشتباه برمی‌گرداند. اکنون وقتی در افست currentValue تسویه می‌شود، currentValue را برمی‌گرداند. (I66a7a، b/476365336)
  • ‫FlexBox، سیستم چیدمان پیکربندی‌پذیری که مجموعه فرابالای Row،‏ Column،‏ FlowRow، و FlowColumn است معرفی شد. این ویژگی از امکاناتی مثل flex-grow،‏ flex-shrink،‏ wrapping سفارشی، تغییر جهت، و کنترل دقیق تراز ازطریق FlexBoxConfig و Modifier.flex پشتیبانی می‌کند. (I44780)
  • ‫Grid، چیدمان ترکیبی غیرتنبل دوبعدی جدیدی که از «جدول CSS» الهام گرفته شده است معرفی شد. این نسخه اولیه امکان تعریف ساختارهای شبکه صریح با اندازه‌های مختلف قطعه ازجمله Fixed، Percentage، Flex، و گزینه‌های مبتنی بر محتوا را ازطریق بلوک config فراهم می‌کند. منطق چیدمان اصلی از جای‌گذاری صریح مورد در شبکه بااستفاده از Modifier.gridItem() پشتیبانی می‌کند. درحال‌حاضر همه «میاناهای برنامه‌سازی کاربردی» مربوط به «شبکه» آزمایشی هستند و برای استفاده از آن‌ها باید با @OptIn(ExperimentalGridApi::class) موافقت کنید. ما فعالانه به‌دنبال بازخورد درباره این چیدمان جدید هستیم! (I04907، b/462550392)

نسخه 1.11.0-alpha03

‫۱۴ ژانویه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.11.0-alpha03 منتشر شد. نسخه 1.11.0-alpha03 شامل این تعهدات است.

رفع اشکال‌ها

  • رفع نشت حافظه در LazyStaggeredGrid هنگام استفاده در LookaheadScope I286ad

نسخه 1.11.0-alpha02

‫۱۷ دسامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.11.0-alpha02 منتشر شد. نسخه 1.11.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • میاناهای برنامه‌سازی کاربردی MultiModalInjectionScope اکنون پایدار هستند. این شامل performKeyInput و performRotaryScrollInput و میاناهای برنامه‌سازی کاربردی کلید و چرخشی زیربنایی آن‌ها می‌شود. گزارمان آزمایشی برداشته شده است. (Ie8bbc، b/261561237)
  • پرچم isNonSuspendingPointerInputInClickableEnabled برداشته شد. (I6a168، b/455591971)

نسخه 1.11.0-alpha01

۳ دسامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.11.0-alpha01 منتشر شد. نسخه 1.11.0-alpha01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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)

نسخه ۱.۱۰

نسخه ۱.۱۰.۶

۲۵ مارس ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.6 منتشر شد. نسخه 1.10.6 شامل این تعهدات است.

رفع اشکال‌ها

  • ‫ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled به‌طور پیش‌فرض غیرفعال است تا نگرانی‌های مربوط به پایداری برطرف شود. (I73960،‏ b/482223006،‏ b/488433633)

نسخه ۱.۱۰.۵

۱۱ مارس ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.5 منتشر شد. نسخه ۱.۱۰.۵ شامل این تعهدها است.

رفع اشکال‌ها

  • IndexOutOfBoundsException در BasicTextField هنگام استفاده از OutputTransformation و حذف نوشتار برطرف شد. (I20ee1)

نسخه ۱.۱۰.۴

۲۵ فوریه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.4 منتشر شد. نسخه ۱.۱۰.۴ شامل این تعهدات است.

رفع اشکال‌ها

  • اشکال پس‌رفتگی برطرف شد. در این اشکال، استفاده از اصلاح‌کننده تراز از دامنه‌ای متفاوت (برای نمونه، ColumnScope.align درون Row) منجر به موقعیت‌یابی نادرست می‌شد. ‫(6888f2b،‏ b/477639546)

نسخه ۱.۱۰.۳

‫۱۱ فوریه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.3 منتشر شد. نسخه ۱.۱۰.۳ حاوی این تعهدات است.

نسخه ۱.۱۰.۲

‫۲۸ ژانویه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.2 منتشر شد. نسخه ۱.۱۰.۲ شامل این تعهدات است.

رفع اشکال‌ها

  • خرابی هنگام پیمایش به عقب از صفحه‌ای با انتخاب نوشتار فعال برطرف شد. (I9f540، b/444482508)

نسخه ۱.۱۰.۱

‫۱۴ ژانویه ۲۰۲۶

‫androidx.compose.foundation:foundation-*:1.10.1 منتشر شد. نسخه ۱.۱۰.۱ شامل این تعهدات است.

رفع اشکال‌ها

  • رفع خرابی وقتی انتخاب نوشتار از یک نمونه «نوشتار» به نمونه دیگری که به‌صورت افقی تراز شده است گسترش می‌یابد. I351311،‏ b/439758956

نسخه ۱.۱۰.۰

۳ دسامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0 منتشر شد. نسخه ۱.۱۰.۰ شامل این تعهدات است.

نسخه 1.10.0-rc01

‫۱۹ نوامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-rc01 منتشر شد. نسخه 1.10.0-rc01 شامل این تعهدات است.

رفع اشکال‌ها

نسخه 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • همه میاناهای برنامه کاربردی لمس غیرمستقیم را به‌روز می‌کند تا از نام میاناهای برنامه کاربردی اشاره‌گر غیرمستقیم برای مطابقت با میاناهای برنامه کاربردی ورودی اشاره‌گر استفاده کند. (I238ce، b/451607214)
  • ‫PagerState.currentPageOffsetFraction با @FrequentlyChangingValue حاشیه‌نویسی شد. (Idfaab)

رفع اشکال‌ها

  • رفتار گردونه را برای جهت‌های چیدمان راست‌به‌چپ اصلاح می‌کند. (Ib8be3)

نسخه 1.10.0-alpha05

‫۸ اکتبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-alpha05 منتشر شد. نسخه 1.10.0-alpha05 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون PaddingValues از جمع و تفریق برای ساده‌سازی محاسبات معمول حاشیه پشتیبانی می‌کند. (I327e1، b/244468479)

رفع اشکال‌ها

  • ‫ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled به‌طور پیش‌فرض فعال است. این یک بهینه‌سازی عملکرد است که به ما امکان می‌دهد کار موردنیاز برای انجام درطول پیش‌واکشی را بهتر توزیع کنیم، برای مثال، می‌توانیم ترکیب را فقط برای بخش‌هایی از LazyColumnمورد بعدی درطول یک قاب رابط کاربری انجام دهیم و سپس ترکیب بقیه آن را در قاب‌های بعدی ادامه دهیم. (I4c7fe)

نسخه 1.10.0-alpha04

‫۲۴ سپتامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-alpha04 منتشر شد. نسخه 1.10.0-alpha04 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پیاده‌سازی ScrollIndicatorState برای PagerState اضافه شد. (I113b7)
  • پیاده‌سازی ScrollIndicatorState برای LazyStaggeredGridState اضافه شد. (I1028e)
  • پیاده‌سازی ScrollIndicatorState برای LazyGridState اضافه شد. (I9e50c)
  • پیاده‌سازی ScrollIndicatorState برای LazyListState اضافه شد. (I5ee29)
  • پیاده‌سازی ScrollIndicatorState برای ScrollState اضافه شد. (I27f66)
  • معرفی دارایی scrollIndicatorState در میانای ScrollableState (Idca93)
  • پرچم isWindowInsetsModifierLocalNodeImplementationEnabled برداشته شد (I15e8f،‏ b/440964232)
  • نمایان کردن اصلاح‌کننده scrollableArea() که می‌تواند برای پیمایش‌پذیر کردن مؤلفه با عملکردهای برش محتوا در محدوده‌های آن و مدیریت خودکار جهت پیمایش محتوا براساس «جهت»، «راست‌به‌چپ»، و پرچم reverseScrolling استفاده شود. (I9471b،‏ b/316559454)

نسخه 1.10.0-alpha03

‫۱۰ سپتامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-alpha03 منتشر شد. نسخه 1.10.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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 مقدار نادرست ۰ را دریافت می‌کرد برطرف می‌کنند. (I8194f, b/439716351)

نسخه 1.10.0-alpha02

‫۲۷ اوت ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-alpha02 منتشر شد. نسخه 1.10.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم isFlingContinuationAtBoundsEnabled برداشته شد. (I6b84f)
  • پرچم isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled برداشته شد. (I62380)
  • پرچم isOnScrollChangedCallbackEnabled برداشته شد. (I667dc)
  • پرچم isAutomaticNestedPrefetchEnabled برداشته شد. (I4f416)
  • پرچم DragGesturePickUpEnabled برداشته شد. (Ib8500)
  • معرفی میانای برنامه‌سازی کاربردی ScrollIndicatorState برای نمایش وضعیت نوار پیمایش (I5e229)

رفع اشکال‌ها

  • اشکالی که باعث می‌شد استفاده از Modifier.anchoredDraggable باعث فراخوانی confirmValueChange نشود برطرف شد. (Iff7cc)

نسخه 1.10.0-alpha01

‫۱۳ اوت ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.10.0-alpha01 منتشر شد. نسخه 1.10.0-alpha01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • استراتژی پیش‌دریافت Pager را به‌روز کنید تا به‌جای ۱ مورد پیش‌فرض در جهت پیمایش، از «پنجره حافظه نهان» استفاده کند. اکنون پیش‌واکشی اولیه به‌طور پیش‌فرض در «صفحه‌بندی» فعال است و پیش‌واکشی براساس اندازه پنجره به‌ارزش ۱ ناحیه نمایش خواهد بود، یعنی تلاش خواهیم کرد ۱ ناحیه نمایش کامل را با موارد پیش‌واکشی‌شده پر کنیم. موارد نیز برای مدت طولانی‌تری نگهداری خواهند شد. (I4d45e،‏ b/292136289)
  • پرچم ComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabled اضافه شده است تا درصورت ایجاد تغییر رفتاری توسط پیاده‌سازی جدید، امکان غیرفعال کردن بهینه‌سازی عملکرد WindowInsets فراهم شود. (I8e912)
  • ‫SnapFlingBehavior اکنون به مشخصات پویانمایی چسباندن اجازه می‌دهد درحین چسباندن از حد مجاز فراتر برود. این کار امکان می‌دهد، برای مثال، مشخصات فنر جهنده به‌عنوان snapAnimationSpec برای تولید پویانمایی جهنده ضربه سریع فعال شود. هنگام انجام رویکرد با مشخصات چسبنده، مقادیر فراتر از حد همچنان نادیده گرفته می‌شوند. (I373c2)
  • اگر اشاره با موشواره یا صفحه لمسی در ComposeView در محدوده گره کانونی رخ ندهد، اکنون تمرکز به‌طور خودکار پاک می‌شود. این امر منجر به تجربه کاربری «ضربه زدن برای پاک کردن تمرکز» می‌شود که در مقایسه با رفتار فعلی هنگام استفاده از دستگاه‌های ورودی اشاره‌گر، بیشتر موردانتظار است. با «میانای برنامه‌سازی کاربردی» جدید AbstractComposeView.isClearFocusOnPointerDownEnabled می‌توانید از این رفتار انصراف دهید. (I6322b، b/282963174)
  • اکنون «پیمایش‌پذیر» از رویدادهای پیمایش چرخ موشواره ۲ بعدی بهتر پشتیبانی می‌کند. میانای برنامه‌سازی کاربردی آزمایشی جدیدی برای کمک به آزمایش موارد استفاده در MouseInjectionScope ارائه شده است. همچنین سربار جدیدی برای روش‌های پیمایش در MouseInjectionScope و پرچمی برای کنترل رفتار جدید به‌نام isMouseWheel1DAxisLockingEnabled (I136df) معرفی کردیم
  • ‫DragGestureNode به‌روز شد تا به‌جای تعلیق ورودی اشاره‌گر برای بهینه‌سازی، از ورودی اشاره‌گر خام استفاده کند. تغییرات در پشت پرچم isNonSuspendingPointerInputInDraggableEnabled (I0fa4b) اضافه شده است
  • برخی‌از میاناهای برنامه‌سازی کاربردی AnchoredDraggable را با @FrequentlyChangingValue حاشیه‌نویسی کرد. ‫offset،‏ requireOffset، و progress اغلب تغییر می‌کنند و نباید در ترکیب خوانده شوند. لطفاً به‌جای آن، ازطریق مراحل چیدمان و طراحی، جلوه‌ها، یا موارد دیگر خارج از ترکیب به این مقادیر دسترسی پیدا کنید. (I05539)
  • پرچم‌های برداشته‌شده isOnScrollChangedCallbackEnabled، isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled، isFlingContinuationAtBoundsEnabled، isAutomaticNestedPrefetchEnabled، DragGesturePickUpEnabled، isPointerInteropFilterDispatchingFixEnabled، isNestedScrollInteropPostFlingFixEnabled، isNestedScrollDispatcherNodeFixEnabled (I36c18)
  • ‫CompositionLocal را معرفی کنید که می‌تواند برای اصلاح قلم‌موی برجستگی تکمیل موفقیت‌آمیز «تکمیل خودکار» استفاده شود. (I52329)
  • مستطیل کانونی سفارشی‌سازی‌شدنی به FocusProperties اضافه شد. اکنون می‌توانید به‌جای استفاده از چارگوش محدودکننده عنصر تمرکزپذیر به‌عنوان پیش‌فرض، ناحیه تمرکز سفارشی تعریف کنید. این اطلاعات توسط سیستم پیمایش تمرکز و منطق نگه داشتن در نمای محتویات پیمایش‌پذیر استفاده می‌شود. (Id6555،‏ b/368378073)
  • ‫LineHeightStyle.Mode جدیدی به‌نام Tight اضافه شد. این حالت کمک می‌کند ارتفاع خطوط کوچک‌تر اعمال شود، حتی اگر احتمالاً حروف بلندتر را برش دهد. (Id3849)
  • میانای جدیدی به نام «درون‌یابی‌شدنی» معرفی شد که امکان درون‌یابی خودکار بین انواع مختلف را فراهم می‌کند، به این شرط که یک نوع بداند چگونه از نوع دیگر تبدیل کند. این میانای کاربری در چندین نوع ترکیب مانند «قلم‌مو» و «شکل» استفاده می‌شود، اما می‌تواند به‌صورت خارجی نیز استفاده شود. (I58eab)
  • رویدادهای ورودی غیرمستقیم و روشی برای مشخص کردن محور مختصات برای استفاده در پیمایش اضافه می‌کند. (I58e7c)
  • میانای برنامه‌سازی کاربردی WindowInsets.cutoutPath جدیدی برای دریافت مسیر برش نمایشگر اضافه می‌کند (Ib90b1،‏ b/279636456)
  • پرچم isWindowInsetsDefaultPassThroughEnabled برداشته شده است و WindowInsets به‌طور پیش‌فرض مصرف نمی‌شود تا «نماهای» فرزند بتوانند WindowInsets را به‌طور پیش‌فرض دریافت کنند. (I888e0, b/412469666)

رفع اشکال‌ها

  • ‫isNonSuspendingPointerInputInDraggableEnabled باید فعلاً غیرفعال شود. (Ia41c4)
  • تغییر minSdk پیش‌فرض از API 21 به API 23 (Ibdfca، b/380448311، b/435705964، b/435705223)
  • سند DraggableAnchors‏ minPosition/maxPosition به‌روزرسانی شد تا نشان دهد این میاناهای برنامه‌سازی کاربردی باید مطابق با دیگر میاناهای برنامه‌سازی کاربردی DraggableAnchors، مقدار Float.NaN را برگردانند. (I0460a)
  • اشکالی برطرف شد که در آن اگر لنگرها خالی بودند، DraggableAnchors#closestAnchor ازکار می‌افتاد (I4e646)
  • بهبود عملکرد برای DraggableAnchors (If4065، I0460a)
  • ‫TextFieldState.edit { } دیگر سابقه واگرداندن را پاک نمی‌کند. درعوض، ورودی واگرد مستقل ایجاد می‌کند. اگر رفتار موردنظر پاک کردن پشته واگرداندن پس‌از تماس edit است، لطفاً از TextFieldState.undoState.clearHistory() استفاده کنید. (I12c14)
  • پشتیبانی از دو تک‌ضرب برای انتخاب کلمه در SelectionContainer و BasicTextField(value, onValueChange) اضافه بار اضافه شد. (Ibb06a)
  • رفع اشکال جزئی برای سازگار کردن AutoboxingStateValuePropertyDetector با K1 و K2 (Ie81c1)
  • ‫requestRectangleOnScreen درخواست که توسط AndroidViews ایجاد شده است اکنون به‌درستی به Compose منتقل می‌شود. این کار کمک می‌کند نماهایی مثل EditText هنگام تعامل در صفحه‌نمایش باقی بمانند. (Ibbf4c)
  • اکنون «ستون» و «ردیف» اندازه واقعی عنصر را به‌درستی به Alignment.Vertical.align و Alignment.Horizontal.align منتقل می‌کنند و مشکلی را که در آن پیاده‌سازی‌های تراز سفارشی مقدار نادرست ۰ را دریافت می‌کردند برطرف می‌کنند. (I3e460، b/349722072)

نسخه ۱.۹

نسخه ۱.۹.۵

‫۱۹ نوامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.5 منتشر شد. نسخه ۱.۹.۵ شامل این تعهدات است.

نسخه ۱.۹.۴

‫۲۲ اکتبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.4 منتشر شد. نسخه 1.9.4 شامل این تعهدات است.

نسخه 1.9.3

‫۸ اکتبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.3 منتشر شد. نسخه ۱.۹.۳ حاوی این تعهدات است.

نسخه ۱.۹.۲

‫۲۴ سپتامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.2 منتشر شد. نسخه 1.9.2 شامل این تعهدات است.

نسخه ۱.۹.۱

‫۱۰ سپتامبر ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.1 منتشر شد. نسخه 1.9.1 شامل این تعهدات است.

رفع اشکال‌ها

  • رفع خرابی هنگام استفاده از LazyLayoutCacheWindow در LazyLists (c39f5f3)

نسخه ۱.۹.۰

‫۱۳ اوت ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.0 منتشر شد. نسخه ۱.۹.۰ شامل این تعهدات است

تغییرات مهم از نسخه ۱.۸.۰

  • بررسی‌های Lint که همراه با Compose ارسال می‌شوند اکنون به حداقل نسخه ۸.۸.۲ از AGP نیاز دارند. اگر نمی‌توانید AGP را ارتقا دهید، می‌توانید به‌جای آن بااستفاده از android.experimental.lint.version=8.8.2 (یا نسخه جدیدتر) در gradle.properties، خود Lint را ارتقا دهید. برای اجرای بررسی‌های lint در Compose درون IDE، به Android Studio Ladybug یا نسخه‌های جدیدتر نیاز است.
  • تغییرات مخرب: clickable، combinedClickable،selectable، toggleable، و triStateToggleable سربار بدون پارامتر «نشانگر» اکنون فقط از IndicationNodeFactory نمونه ارائه‌شده بااستفاده از LocalIndication پشتیبانی می‌کنند. وقتی استفاده‌هایتان از این اصلاح‌کننده‌ها را بااستفاده از این نسخه Compose بازکامپایل کنید، این تغییر اعمال خواهد شد. وابستگی‌های باینری / انتقالی تحت تأثیر قرار نمی‌گیرند. اگر پیاده‌سازی منسوخ‌شده «نشانگر» را به LocalIndication ارائه می‌کنید و از این میاناهای برنامه‌سازی کاربردی استفاده می‌کنید، این کار باعث خرابی در زمان اجرا می‌شود. این تغییر رفتار برای فعال کردن عملکرد بهبودیافته و اجازه دادن به توابع «ترکیبی» بااستفاده از این اصلاح‌کننده‌ها برای رد شدن درطول ترکیب مجدد لازم است. می‌توانید از ComposeFoundationFlags.isNonComposedClickableEnabled=false برای انصراف موقت از این تغییر رفتار استفاده کنید تا ارتقا دادن «نگارش» بدون مسدود شدن در این انتقال ممکن شود. این پرچم پس‌از یک نسخه پایدار برداشته خواهد شد. برای حل کردن این مشکل، هر پیاده‌سازی منسوخ‌شده «نشانگر» را انتقال دهید تا به‌جای آن از IndicationNodeFactory استفاده کند. همچنین می‌توانید از سربارها با پارامتر «نشانگر» صریح استفاده کنید - این سربارها همچنان از نمونه‌های غیرIndicationNodeFactory «نشانگر» پشتیبانی خواهند کرد، اگرچه این کار به‌دلایل عملکردی توصیه نمی‌شود. (I6bcdc، b/316914333)
  • isFlingCancellationWithNestedScrollFixEnabled برای رفع مشکل انتشار پرتاب در پیمایش تودرتو معرفی شد. در این CL، رفتار ادامه پرتاب که در I9326a برداشته شده بود را بازیابی می‌کنیم. اگر کودک از ترکیب برداشته شود، همچنان پویانمایی پرتاب را لغو خواهیم کرد. (I467f4،‏ b/405910180،‏ b/419049142،‏ b/416784125)
  • استفاده از scrollAnimationSpec را در ContentInViewNode دوباره اضافه کنید. این رفتار درطول منسوخ شدن 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)
  • «منو زمینه‌ای» و «نوارابزار انتخاب» اکنون هر دو از «موارد هوشمند» (انتخاب هوشمند) پشتیبانی می‌کنند
  • نوشتار سبک‌دار OutputTransformation اضافه شد تا بااستفاده از سربار state، سبک‌دهی برونداد TextField امکان‌پذیر شود.
  • TextField: منو زمینه‌ای پشتیبانی (منو کلیک راست).
  • نوشتار کپی‌شده از چند عنصر نوشتاری «ترکیبی» در SelectionContainer اکنون بین نوشتار برگرفته از عناصر نوشتاری «ترکیبی» جداگانه، یک جداکننده خط \n اضافه خواهد داشت. (I25332،‏ b/285036739)
  • معرفی میانای برنامه‌سازی کاربردی برای ایجاد فهرست‌های نقطه‌ای سفارشی ازطریق AnnotatedString (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 شامل این تعهدات است.

ویژگی‌های جدید

  • از عناصر هوشمند در منو زمینه‌ای و نوارابزار انتخاب پشتیبانی می‌کند.

تغییرات میانای برنامه‌سازی کاربردی

  • اشکالی برطرف شد که در آن برخی‌از صفحه‌کلیدهای سخت‌افزاری یا کنترل‌های از دور تلویزیون نمی‌توانستند مکان‌نمای 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)

تغییرات میانای برنامه‌سازی کاربردی

  • نام Modifier.addTextContextMenuComponents به appendTextContextMenuComponents تغییر کند. (I4c43f)
  • ‫AnnotatedOutputTransformation برداشته شد و addStyle تابع به TextFieldBuffer منتقل شد. همچنان فقط از OutputTransformation می‌توان با addStyle تماس گرفت. (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 در کد مشترک قرار گیرد. میانای برنامه‌سازی کاربردی را ساده کردیم تا همه حاشیه‌ها WindowInsetsRulers باشند. دارایی‌های پویانمایی غیرخط‌کش به کلاس AnimationProperties استخراج شد. از WindowInsetsRulers.innermostOf() می‌توان برای ادغام کردن چند WindowInsetsRulers استفاده کرد. (I2f0c6،‏ b/415012444)

رفع اشکال‌ها

  • استفاده از scrollAnimationSpec را در ContentInViewNode دوباره اضافه کنید. این رفتار درطول منسوخ شدن scrollAnimationSpec برداشته شد که باعث ازکارافتادن موارد استفاده شد. (I1436a، b/403301605)

نسخه 1.9.0-alpha04

‫۴ ژوئن ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.0-alpha04 منتشر شد. نسخه 1.9.0-alpha04 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫PrefetchScheduler و سفارشی‌سازی به نفع پیاده‌سازی داخلی که همه کارها را به‌طور خودکار انجام می‌دهد منسوخ شده است. (I3a9a6, b/420551535)
  • ‫Scrollable2DState به‌روزرسانی شد تا به‌جای زاویه از انحراف در روش canScroll استفاده کند. (I28694، b/417268474)
  • ‫addAnnotation در AnnotatedOutputTransformation با addStyle جایگزین شد. (I91c6f, b/417991824)
  • ‫LazyLayout تثبیت شد. (If5db4)
  • سازنده خالی برای LazyLayoutPrefetchState پایدار شد و روش زمان‌بندی آن schedulePrecomposition و schedulePrecompositionAndPremeasure است. (I4362f، b/252853717)
  • در ProcessTextKey در Android برای موارد منو زمینه‌ای که برای کنش‌های هدف PROCESS_TEXT اضافه شده است معرفی شد. (If0ac4)
  • میاناهای برنامه‌سازی کاربردی منوِ زمینه‌ای را عمومی کنید. ‫Modifier.addTextContextMenuComponents و Modifier.filterTextContextMenuComponents آشکار شدند تا موارد را در منو زمینه‌ای اضافه و حذف کنند. همچنین میاناهای برنامه‌سازی کاربردی ابتدایی زیر را عمومی کرد تا بتوان منو زمینه‌ای سفارشی ساخت:
    • TextContextMenuProvider
    • TextContextMenuDataProvider
    • TextContextMenuData
    • TextContextMenuComponent
    • LocalTextContextMenuDropdownProvider
    • ‫LocalTextContextMenuToolbarProvider (I1b7b0)
  • ‫LazyLayoutItemProvider را پایدار کنید (Icce09، b/261565751)
  • ویژگی‌های انتخاب هوشمند Android معرفی شد که می‌توان آن‌ها را ازطریق ComposeFoundationFlags.isSmartSelectionEnabled فعال/غیرفعال کرد. همچنین compositionLocal LocalTextClassifierCoroutineContext ثابتی را آشکار کرد که می‌توان از آن برای مشخص کردن CoroutineContext که کار TextClassification در آن راه‌اندازی می‌شود استفاده کرد. (I1dbaa،‏ b/139321320)

نسخه 1.9.0-alpha03

‫۲۰ مه ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.0-alpha03 منتشر شد. نسخه 1.9.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫AnnotatedOutputTransformation اضافه شد که روشی برای افزودن گزارمان به TextField قبل‌از پرداز کردن ارائه می‌دهد. (Ibc6f0، b/389978748)
  • ‫LazyLayoutMeasurePolicy را معرفی کنید و LazyLayoutMeasureScope را پایدار کنید. (I8c5df, b/252853717)
  • ‫BasicSecureTextField اکنون ScrollState مربوط به BasicTextField داخلی‌اش را بالا می‌برد. (I6e576)
  • اصلاح‌کننده‌های Modifier.onFirstVisible و Modifier.onVisibilityChanged معرفی شدند که اصلاح‌کننده‌های سطح بالایی هستند که روی Modifier.onLayoutRectChanged ساخته شده‌اند. این اصلاح‌کننده‌ها به‌طور خاص برای مدیریت بسیاری از الزامات رایج برنامه مثل ثبت ظهور، پخش خودکار ویدیوها، و غیره ساخته شده‌اند. این اصلاح‌کننده‌ها با درنظر گرفتن عملکرد ساخته شده‌اند تا بتوانند بدون خطر کاهش عملکرد پیمایش در سناریوهای حیاتی مبتنی بر فهرست استفاده شوند. علاوه‌بر این میاناهای برنامه‌سازی کاربردی اصلاح‌گر، میاناهای برنامه‌سازی کاربردی دیگری برای RelativeLayoutBounds اضافه شده است تا از این موارد استفاده پشتیبانی کند و همچنین توسعه‌دهندگان بتوانند به‌راحتی اصلاح‌گرهای سفارشی مشابهی ایجاد کنند که دقیقاً مناسب مورد استفاده آن‌ها باشد. (I759b8)
  • یک detectDragGestures سرریز معرفی شد که دارای کنترل قفل جهت و شیب لمسی است. (Iadb0d)
  • ‫Modifier.scrollable2D،‏ Scrollable2DState، و APIهای همراه را برای ایجاد وضعیت معرفی کنید. همچنین توابع افزونه پیمایش رایج معرفی شد. (Ic61c8, b/214410040)
  • مقادیر رنگ ۶۴ بیتی «نوشتن» مستقیماً با Android ColorLongs قابل مقایسه نیست زیرا شناسه‌های فضای رنگ برای برخی‌از فضاهای رنگی نامرتب است. برای تبدیل به فضاهای رنگ Android و تبدیل از آن‌ها، دو میانای برنامه‌سازی کاربردی جدید اضافه شده است: toColorLong() و fromColorLong(). (I36899)

رفع اشکال‌ها

  • نوشتار کپی‌شده از چندین عنصر نوشتاری قابل ترکیب در SelectionContainer اکنون دارای یک جداکننده خط \n خواهد بود که بین نوشتار برگرفته از عناصر نوشتاری قابل ترکیب جداگانه اضافه می‌شود. (I25332،‏ b/285036739)

نسخه 1.9.0-alpha02

۷ مه ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.0-alpha02 منتشر شد. نسخه 1.9.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نحوه اضافه شدن تغییرات ورودی اشاره‌گر به VelocityTracker در DragGestureNode اصلاح شد، این مورد را می‌توان با پرچم جدید isOffsetPositionBeforeAddingToVelocityTrackerEnabled کنترل کرد. (Ic7992, b/292556787, b/236451818)
  • await[Vertical/Horizontal]PointerSlopOrCancellation را عمومی کنید (I6968b، b/298903681)
  • ‫AbstractComposeView.consumeWindowInsets اکنون به‌طور پیش‌فرض روی نادرست تنظیم شده است. وقتی روی false تنظیم شود، WindowInsets به‌طور خودکار برای اندازه و موقعیت کودک تنظیم می‌شود، بنابراین دیگر نیازی نیست آن را روی true پیش‌فرض کنید. این کار مشکلی را که در آن «نماهای کودک» به‌طور پیش‌فرض به‌روزرسانی‌های WindowInsets را دریافت نمی‌کردند برطرف می‌کند. توسعه‌دهندگان می‌توانند با تغییر دادن ComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabled آزمایشی به درست یا ترجیحاً با تنظیم AbstractComposeView.consumeWindowInsets به درست در همه نمونه‌های نمای «نوشتن»، از به‌روزرسانی انصراف دهند. (I6fa0a، b/411868840)

همیاری خارجی

  • خرابی «صفحه‌بندی ثابت» با مقادیر بسیار بزرگ beyondViewportPageCount برطرف شد (Idb2db)

نسخه 1.9.0-alpha01

‫۲۳ آوریل ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.9.0-alpha01 منتشر شد. نسخه 1.9.0-alpha01 شامل این تعهدها است.

تغییرات رفتار

  • بررسی‌های Lint که همراه با Compose ارسال می‌شوند اکنون به حداقل نسخه ۸.۸.۲ از AGP نیاز دارند. اگر نمی‌توانید AGP را ارتقا دهید، می‌توانید به‌جای آن بااستفاده از android.experimental.lint.version=8.8.2 (یا نسخه جدیدتر) در gradle.properties، خود Lint را ارتقا دهید. برای اجرای بررسی‌های lint در Compose درون IDE، به Android Studio Ladybug یا نسخه‌های جدیدتر نیاز است.

  • تغییرات اساسی: clickable، combinedClickable، selectable، toggleable، و triStateToggleable سربار بدون پارامتر «نشانگر» اکنون فقط از نمونه‌های IndicationNodeFactory ارائه‌شده بااستفاده از LocalIndication پشتیبانی می‌کنند. وقتی استفاده‌هایتان از این اصلاح‌کننده‌ها را بااستفاده از این نسخه Compose بازکامپایل کنید، این تغییر اعمال خواهد شد. وابستگی‌های باینری / انتقالی تحت تأثیر قرار نمی‌گیرند. اگر پیاده‌سازی منسوخ‌شده «نشانگر» را به LocalIndication ارائه می‌کنید و از این میاناهای برنامه‌سازی کاربردی استفاده می‌کنید، این کار باعث خرابی در زمان اجرا می‌شود. این تغییر رفتار برای فعال کردن عملکرد بهبودیافته و اجازه دادن به توابع «ترکیبی» بااستفاده از این اصلاح‌کننده‌ها برای رد شدن درطول ترکیب مجدد لازم است. می‌توانید از ComposeFoundationFlags.isNonComposedClickableEnabled=false برای انصراف موقت از این تغییر رفتار استفاده کنید تا ارتقا دادن «نگارش» بدون مسدود شدن در این انتقال ممکن شود. این پرچم پس‌از یک نسخه پایدار برداشته خواهد شد. برای حل کردن این مشکل، هر پیاده‌سازی منسوخ‌شده «نشانگر» را انتقال دهید تا به‌جای آن از IndicationNodeFactory استفاده کند. همچنین می‌توانید از سربارها با پارامتر «نشانگر» صریح استفاده کنید - این سربارها همچنان از نمونه‌های غیرIndicationNodeFactory «نشانگر» پشتیبانی خواهند کرد، اگرچه این کار به‌دلایل عملکردی توصیه نمی‌شود. (I6bcdc، b/316914333)

تغییرات میانای برنامه‌سازی کاربردی

  • معرفی میانای برنامه‌سازی کاربردی برای ایجاد فهرست‌های نقطه‌ای سفارشی ازطریق AnnotatedString (I1d066، b/383269496، b/139326648)
  • به «نوشتن» اجازه دهید ViewTreeObserver.OnScrollChanged را راه‌اندازی کند. این رفتار تحت پرچم isOnScrollChangedCallbackEnabled معرفی شده است. همچنین تابع افزونه‌ای از DelegatableNode dispatchOnScrollChanged را معرفی کردیم. (I34b9d، b/238109286)
  • برای استفاده از پروژه‌های منتشرشده با Kotlin 2.0، باید از KGP 2.0.0 یا نسخه‌های جدیدتر استفاده کنید (Idb6b5)
  • پشتیبانی بررسی lint برای TextFieldState اضافه شد تا مطمئن شویم در ترکیب به‌یاد آورده می‌شود. بهتر است به‌جای آن از rememberTextFieldState استفاده کنید. (I53d74)
  • پشتیبانی از بررسی lint برای FocusRequester اضافه شد تا مطمئن شویم در ترکیب به‌یاد آورده می‌شود (I6bf91)
  • پشتیبانی بررسی lint برای BringIntoViewRequester اضافه شد تا مطمئن شویم در ترکیب به‌یاد آورده می‌شود. (Ibfba6)
  • برای هماهنگ شدن با قابلیت‌های LazyListPrefetchState در ارائه اطلاعات اندازه و شاخص، محدوده‌هایی برای تماس‌های schedulePrefetch در استراتژی‌های جدولی و فهرستی معرفی شد. (Iad80c)
  • تغییرات اساسی: clickable، combinedClickable، selectable، toggleable، و triStateToggleable سربار بدون پارامتر «نشانگر» اکنون فقط از نمونه‌های IndicationNodeFactory ارائه‌شده بااستفاده از LocalIndication پشتیبانی می‌کنند. وقتی استفاده‌هایتان از این اصلاح‌کننده‌ها را بااستفاده از این نسخه Compose بازکامپایل کنید، این تغییر اعمال خواهد شد. وابستگی‌های باینری / انتقالی تحت تأثیر قرار نمی‌گیرند. اگر پیاده‌سازی منسوخ‌شده «نشانگر» را به LocalIndication ارائه می‌کنید و از این میاناهای برنامه‌سازی کاربردی استفاده می‌کنید، این کار باعث خرابی در زمان اجرا می‌شود. این تغییر رفتار برای فعال کردن عملکرد بهبودیافته و اجازه دادن به توابع «ترکیبی» بااستفاده از این اصلاح‌کننده‌ها برای رد شدن درطول ترکیب مجدد لازم است. می‌توانید از ComposeFoundationFlags.isNonComposedClickableEnabled=false برای انصراف موقت از این تغییر رفتار استفاده کنید تا ارتقا دادن «نگارش» بدون مسدود شدن در این انتقال ممکن شود. این پرچم پس‌از یک نسخه پایدار برداشته خواهد شد. برای حل کردن این مشکل، هر پیاده‌سازی منسوخ‌شده «نشانگر» را انتقال دهید تا به‌جای آن از IndicationNodeFactory استفاده کند. همچنین می‌توانید از سربارها با پارامتر «نشانگر» صریح استفاده کنید - این سربارها همچنان از نمونه‌های غیرIndicationNodeFactory «نشانگر» پشتیبانی خواهند کرد، اگرچه این کار به‌دلایل عملکردی توصیه نمی‌شود. (I6bcdc، b/316914333)
  • پرچمی برای کنترل رفتار واکشی اولیه تودرتوی خودکار معرفی کنید: isAutomaticNestedPrefetchEnabled (I8d448)
  • برای LazyGridState و rememberLazyGridState که LazyLayoutCacheWindow طول می‌کشد، اضافه بار معرفی کن. (I51151)
  • «خط‌کش‌ها» را برای «حاشیه‌های پنجره» اضافه می‌کند. ‫DerivedRuler را اضافه می‌کند تا «خط‌کش» از «خط‌کش» دیگری محاسبه شود. برای پیاده‌سازی «تراکم»، PlacmentScope را اصلاح می‌کند. (I658bc،‏ b/359260964)
  • تابع کارخانه WindowInsets() بدون آرگومان اضافه شد تا به‌راحتی WindowInsets خالی ایجاد شود. (I65f62, b/395311689)
  • ‫PaddingValues.Zero برای PaddingValues خالی اضافه شد. (If193e، b/386255688)

رفع اشکال‌ها

  • وقتی اندازه مکان‌نما تغییر می‌کند، state اضافه بار BasicTextField باعث می‌شود مکان‌نما به نمای پیمایش‌شده برود. (I0eb41، b/406187741)
  • ‫onVisibleItemsUpdated «میانای برنامه‌سازی کاربردی» در LazyListPrefetchStrategy و LazyGridPrefetchStrategy به‌روزرسانی شد تا درباره وضعیت اولیه اطلاع‌رسانی شود. (If2cfa)

نسخه ۱.۸

نسخه ۱.۸.۳

‫۱۸ ژوئن ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.8.3 منتشر شد. نسخه ۱.۸.۳ شامل این تعهدات است.

نسخه ۱.۸.۲

‫۲۰ مه ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.8.2 منتشر شد. نسخه ۱.۸.۲ شامل این تعهدات است.

رفع اشکال‌ها

  • اصلاحی معرفی شد که از محاسبه تعداد مواردی که برای جستجوی کانونی بارگیری می‌شود جلوگیری می‌کند تا باعث تقسیم بر صفر نشود. این بررسی را برای همه چیدمان‌هایی که از LazyLayoutBeyondBoundsState استفاده می‌کنند اعمال کرد. (8e6dc8)

نسخه ۱.۸.۱

۷ مه ۲۰۲۵

‫androidx.compose.foundation:foundation-*: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

نسخه ۱.۸.۰

‫۲۳ آوریل ۲۰۲۵

‫androidx.compose.foundation:foundation-*: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 میانای برنامه‌سازی کاربردی که همان عملکرد را ارائه می‌دهند استفاده کنید. (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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫SemanticsNodeInteraction.semanticsId() برداشته شده است. درعوض از SemanticsNodeInteraction.fetchSemanticsNode().id استفاده کنید. (Ie397a)
  • بازنویسی requestAutofill API برای وجود در خارج از مدیر تکمیل خودکار. (Id1929)
  • ‫ContextualFlowRow و ContextualFlowColumn به‌عنوان منسوخ علامت‌گذاری شده‌اند. این عنصر آزمایشی در نسخه ۱.۷ معرفی شد و هنوز پایدار نشده بود و پیاده‌سازی آن نامطلوب تشخیص داده شده است. در آینده، ممکن است مؤلفه‌ای ارائه شود که موارد استفاده‌ای را که این مؤلفه برای حل آن‌ها درنظر گرفته شده است حل کند.
    • ‫FlowRow و FlowColumn دارای سربارهای آزمایشی هستند که در نسخه ۱.۷ معرفی شده‌اند و شامل پارامتر 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «اندازه خودکار»: AutoSize به TextAutoSize تغییر نام داد و میاناهای برنامه‌سازی کاربردی را که امکان ایجاد پیاده‌سازی‌های سفارشی TextAutoSize را فراهم می‌کند منتشر کرد. برای نمونه‌ای از پیاده‌سازی اندازه خودکار نوشتار سفارشی، TextAutoSizeSample را ببینید. (I85756)
  • پرچم ویژگی DetectTapGesturesEnableNewDispatchingBehavior به ComposeFoundationFlags منتقل شد و نام آن به isDetectTapGesturesImmediateCoroutineDispatchEnabled تغییر کرد. پرچم قدیمی منسوخ شده است و اکنون به‌جای آن به ComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabled واگذار خواهد شد. (I62932)

رفع اشکال‌ها

  • به‌طور پیش‌فرض DetectTapGesturesEnableNewDispatchingBehavior فعال است. ‫TapGestureDetector «میانای برنامه‌سازی کاربردی» اکنون به‌طور پیش‌فرض از عملکرد توزیع جدید (توزیع فوری) استفاده می‌کند. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled که به برگرداندن برداشتن graphicsLayer داخلی از BasicText کمک می‌کرد حذف شد. اگر از این پرچم استفاده می‌کردید، لطفاً با ثبت اشکال، دلایل آن را به ما اطلاع دهید. همچنین می‌توانید فقط Modifier.graphicsLayer() را به تماس‌های BasicText خود ارسال کنید تا همان رفتار قبلی را داشته باشید. (Id9f90)
  • پیاده‌سازی پیش‌فرض برای stickyHeader DSL جدید اضافه شد. (I68986)
  • ‫LocalAutofillHighlightColor قطعه موسیقی محلی از نوع «رنگ» استفاده می‌کند. (I0e05b)
  • نام OverscrollEffect#withoutDrawing به OverscrollEffect#withoutVisualEffect تغییر کرد. (I1a154)

رفع اشکال‌ها

  • رفع پیگیری برای مشکلی در محاسبه هدف AnchoredDraggable که در آن می‌توانست برای کشیدن‌های خاص در جایگاه اشتباهی قرار بگیرد. (I23b87، b/367660226)

همیاری خارجی

  • ‫BringIntoViewResponderModifierNode را به واسط کاربر اضافه کنید، که روش جدیدی برای پیاده‌سازی عملکرد «نمایش در نما» ارائه می‌دهد و همچنین امکان پیاده‌سازی در سطح پلاتفرم را فراهم می‌کند (Ia6dd8)
  • ما همیشه کمی نحوه رسم مکان‌نما را تغییر می‌دهیم. می‌توانید از LocalCursorBlinkEnabled برای غیرفعال کردن رسم مکان‌نما در آزمون‌ها استفاده کنید. (I4c697)

نسخه 1.8.0-alpha06

‫۱۳ نوامبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.8.0-alpha06 منتشر شد. نسخه 1.8.0-alpha06 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اصلاح‌گر stylusHoverIcon را اضافه می‌کند. (Iff20a،‏ b/331289114)
  • ‫confirmValueChange AnchoredDraggableState منسوخ شد. به‌جای وتو کردن تغییرات حالت، لنگرهای غیرمجاز نباید در مجموعه لنگر فعال باشند و از 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)
  • خصوصیت effectModifier در OverscrollEffect به node: DelegatableNode تغییر کرد تا با دیگر «میاناهای برنامه‌سازی کاربردی» سازگار باشد. (Ic0b46، b/255554340)
  • ‫API آزمایشی GlobalAssertions برداشته شد. هدف اصلی آن اجرای بررسی‌های دسترس‌پذیری بود، برای این منظور به‌جای آن از enableAccessibilityChecks() استفاده کنید. (I59322)

نسخه 1.8.0-alpha05

۳۰ اکتبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.8.0-alpha05 منتشر شد. نسخه 1.8.0-alpha05 شامل این تعهدات است.

ویژگی‌های جدید

  • پشتیبانی از اندازه خودکار نوشتار. یک نمونه AutoSize (برای نمونه AutoSize.StepBased) را به عنصر چیدمانی نوشتاری موردعلاقه‌تان (مثل BasicText) ارسال کنید و ببینید اندازه نوشتار شما با فضای دردسترس تطبیق داده می‌شود! (Ice7e0، b/139320827)
  • ‫OverscrollFactory و LocalOverscrollFactory API را اضافه می‌کند تا پیکربندی پیمایش اضافی در سلسله‌مراتب را امکان‌پذیر کند. مقدار ارائه‌شده ازطریق LocalOverscrollFactory به‌طور پیش‌فرض برای ایجاد OverscrollEffect استفاده خواهد شد. برای ایجاد و به‌یاد آوردن جلوه‌ای از کارخانه ارائه‌شده کنونی، از rememberOverscrollEffect() استفاده کنید. (I51ca4, b/255554340)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫CompositionLocal را معرفی کنید که می‌تواند برای تغییر رنگ برجستگی تکمیل موفقیت‌آمیز «تکمیل خودکار» استفاده شود. (I32092)
  • ‫ScrollableDefaults.overscrollEffect برداشته شد - درعوض باید از rememberOverscrollEffect استفاده کنید. با این کار، نمونه‌ای از پیاده‌سازی فعلی پیمایش اضافی که با LocalOverscrollFactory ارائه شده است ایجاد خواهد شد. (I1651a, b/255554340),(b/234451516)
  • میانای جدید AutofillManager را معرفی می‌کند که می‌توان از آن برای تنظیم دقیق سفر «تکمیل خودکار» کاربران و پرچم isSemanticAutofillEnabled برای روشن کردن این نسخه جدید «تکمیل خودکار» استفاده کرد. (I9d484)
  • ‫CombinedClickableNode را برمی‌دارد. این «میانای برنامه‌سازی کاربردی» آزمایشی موقتاً برای رفع انسداد کار عملکردی آشکار شد، اما دیگر نیازی به آن نیست. به‌جای آن، باید مستقیماً از Modifier.combinedClickable مانند دیگر میاناهای برنامه‌سازی کاربردی اصلاح‌گر استفاده کنید. (I4b658)
  • با پشتیبانی از مشخص کردن OverscrollEffect سفارشی، سربارها را به horizontalScroll، verticalScroll، LazyColumn، LazyRow، LazyHorizontalGrid، LazyVerticalGrid، LazyHorizontalStaggeredGrid، LazyVerticalStaggeredGrid، HorizontalPager، و VerticalPager اضافه می‌کند. OverscrollEffect ارائه‌شده رویدادها را دریافت می‌کند و در محدوده این عناصر پرداز می‌شود. توجه داشته باشید که کشیدن یک OverscrollEffect یکسان دوبار پشتیبانی نمی‌شود - بنابراین نمی‌توانید OverscrollEffect یکسانی را که برای یکی از این عناصر ارائه شده است به‌طور جداگانه با Modifier.overscroll بکشید. مورد استفاده از کشیدن پیمایش اضافی در خارج از محدوده این عناصر در آینده به‌صورت جداگانه مورد بررسی قرار خواهد گرفت. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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 به‌جای دلتاهای یک‌بعدی، دلتاهای دوبعدی دریافت می‌کرد. (Ie52c0)

نسخه 1.8.0-alpha03

‫۲ اکتبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.8.0-alpha03 منتشر شد. نسخه 1.8.0-alpha03 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • به‌روزرسانی نسخه Kotlin به ۱.۹ (I1a14c)
  • پرچم DraggableAddDownEventFixEnabled (I848d5) معرفی شد
  • «نقش معنایی» جدیدی به نام «گردونه» معرفی شد تا رفتار فهرست را در «صفحه‌بندها» برای خدمات دسترس‌پذیری شبیه‌سازی کند. (Id354b، b/354109776، b/239672673)
  • اصلاح‌گر ضمنی graphicsLayer از عنصر ترکیبی BasicText برداشته شد. پرچم آزمایشی 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫TextOverflow.StartEllipsis و TextOverflow.MiddleEllipsis اکنون دردسترس است که امکان می‌دهد سه‌نقطه را در ابتدای یا میانه خط نوشتار تک‌خطی قرار دهید (I38913، b/185418980)

نسخه 1.8.0-alpha01

۴ سپتامبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.8.0-alpha01 منتشر شد. نسخه 1.8.0-alpha01 شامل این تعهدات است.

نسخه ۱.۷

نسخه ۱.۷.۸

‫۱۲ فوریه ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.7.8 منتشر شد. نسخه ۱.۷.۸ شامل این تعهدات است.

رفع اشکال‌ها

  • رفع خرابی در BasicTextField با تبدیل ورودی هنگام جایگزین کردن بخشی از نوشتار جای‌گذاری‌شده. (I73702)

نسخه ۱.۷.۷

‫۲۹ ژانویه ۲۰۲۵

‫androidx.compose.foundation:foundation-*:1.7.7 منتشر شد. نسخه ۱.۷.۷ شامل این تعهدات است.

رفع اشکال‌ها

  • خرابی IndexOutOfBound با حاشیه‌نویسی پیوند رفع شد. (Ic96d2)
  • ترکیب مجدد بی‌نهایت در برخی موارد حاشیه‌ای با پیوندها اصلاح شد. (I04a03)

اشکالات شناخته‌شده

  • اشکالی شناسایی شده است که می‌تواند باعث شود در سناریوهای نادر در سطح Android API 35، نوشتار به‌طور غیرمنتظره‌ای سرریز شود. این مشکل در نسخه ۱.۷ برطرف نمی‌شود، بنابراین در نسخه ۱.۸ برطرف خواهد شد. (b/391378120)

نسخه ۱.۷.۶

۱۱ دسامبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.6 منتشر شد. نسخه ۱.۷.۶ شامل این تعهدات است.

رفع اشکال‌ها

  • محتوای درون‌خطی نوشتار ثابت برای سرویس‌های دسترس‌پذیری رؤیت‌پذیر نیست.
  • رفع مشکلی که باعث می‌شد AndroidEmbeddedExternalSurface به‌درستی بازنشانی نشود و هنگام استفاده مجدد در فهرست تنبل گیر کند.

نسخه ۱.۷.۵

۳۰ اکتبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.5 منتشر شد. نسخه ۱.۷.۵ شامل این تعهدات است.

رفع اشکال‌ها

  • مطمئن شوید که عناصر سنجاق‌شده دوبار در ناحیه حاشیه محتوا ترکیب فرعی نمی‌شوند. (Ic6224)

نسخه ۱.۷.۴

‫۱۶ اکتبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.4 منتشر شد. نسخه ۱.۷.۴ شامل این تعهدات است.

رفع اشکال‌ها

  • اشکالی که باعث ازکارافتادن نادر در فیلدهای نوشتاری می‌شد برطرف شد. (I475c6، b/313010266)
  • ‫ReusableContentHost در ریشه عناصر چیدمان تنبل برداشته شد. این مورد علت ریشه‌ای بالقوه برای خرابی‌های «اندازه‌گیری در گره غیرفعال‌شده فراخوانده شد» بود. (Id6e60)

نسخه ۱.۷.۳

‫۲ اکتبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.3 منتشر شد. نسخه ۱.۷.۳ شامل این تعهدها است.

رفع اشکال‌ها

  • وقتی minLines روی مقدار غیرپیش‌فرض تنظیم شده باشد، مشکل نشت حافظه در BasicText برطرف شد.

نسخه ۱.۷.۲

‫۱۸ سپتامبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.2 منتشر شد. نسخه ۱.۷.۲ شامل این تعهدات است.

رفع اشکال‌ها

  • مشکل مربوط به کشیدنی که رویدادهای پایین را ازدست می‌داد و باعث می‌شد پرتاب‌ها کندتر از حد معمول به‌نظر برسند برطرف شد.

نسخه ۱.۷.۱

‫۱۰ سپتامبر ۲۰۲۴

  • هیچ تغییری در آرتیفکت‌های Android ایجاد نشده است. ‫-desktop مصنوع برداشته شد و -jvmStubs و -linuxx64Stubs مصنوع اضافه شد. هیچ‌کدام از این هدف‌ها برای استفاده درنظر گرفته نشده‌اند، بلکه جای‌گذاری‌هایی هستند که به تلاش‌های Jetbrains Compose کمک می‌کنند.

نسخه ۱.۷.۰

۴ سپتامبر ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0 منتشر شد. نسخه ۱.۷.۰ شامل این تعهدات است.

تغییرات مهم از نسخه ۱.۶.۰

  • عملکرد Modifier.clickable،‏ Modifier.focusable،‏ Modifier.indication،‏ Modifier.scrollable، و Modifier.draggable به‌طور قابل‌توجهی بهبود یافته است. به‌عنوان بخشی از این تلاش، تغییرات زیر در API علاوه بر تغییرات داخلی انجام شد
    • «میانای برنامه‌سازی کاربردی» جدیدی به نام «نشانگر» (IndicationNodeFactory) اضافه شد. این امر منجر به پیاده‌سازی‌های «نشانگر» با عملکرد بهتر در مقایسه با API قبلی (اکنون نامناسب) rememberUpdatedInstance می‌شود. برای اطلاعات انتقال، 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 منسوخ شده است. برای افزودن پیوندهای کلیک‌کردنی به نوشتار، از BasicText با حاشیه‌نویسی جدید LinkAnnotation در AnnotatedString استفاده کنید. ‫LinkAnnotation امکان سبک‌دهی سفارشی براساس وضعیت پیوند (مثلاً متمرکز، معلق) را فراهم می‌کند.
  • معرفی ContextualFlowRow و Enhanced FlowRow/Column با MaxLines و Overflow. با خوشحالی اعلام می‌کنیم که 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)
  • پشتیبانی آزمایشی برای نماگرفت‌های طولانی در محتویات پیمایش Compose بااستفاده از Android API رسمی (ScrollCaptureCallback) پیاده‌سازی شد.
  • منابع «کشیدن و پرتاب کردن» 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)
  • مشکل کار نکردن اصلاح‌گر contentReceiver با برخی‌از ویرایشگرهای روش ورودی برطرف شد.
  • تولید سرعت: از انتشار مقادیر NaN در «واسط کاربر Compose» و «پایه» جلوگیری می‌کند.

نسخه 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 شامل این تعهدات است.

رفع اشکال‌ها

  • رفع مشکل مقادیر Nan در SnapFlingBehavior و «صفحه‌بندی».

نسخه 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • میانای برنامه‌سازی کاربردی آزمایشی برای پیکربندی رفتار پیش‌دریافت LazyGrids اضافه می‌کند که مشابه میانای برنامه‌سازی کاربردی آزمایشی موجود برای LazyLists است. این شامل پشتیبانی از پیش‌دریافت کردن موارد در LazyGrids تودرتو می‌شود. مشابه LazyListPrefetchStrategy، پیاده‌سازی پیش‌فرض این است که ۲ عنصر تودرتوی اول هر شبکه را پیش‌دریافت کند، اما این کار را می‌توان با «میانای برنامه‌سازی کاربردی» جدید LazyGridPrefetchStrategy(nestedPrefetchItemCount) و LazyListPrefetchStrategy#onNestedPrefetch پیکربندی کرد. (I591c4)
  • نام SemanticsProperties.Editable به IsEditable تغییر کرد و SemanticsPropertyReceiver.editable به مقدار isEditable تغییر کرد. اکنون این دارایی بولی است و همیشه با فیلدهای نوشتاری مشخص می‌شود. (I8acd8)
  • ‫basicMarquee مقدار پیش‌فرض به شیء MarqueeDefaults منتقل شد. (I12ff6)
  • نام پارامتر basicMarquee delayMillis به repeatDelayMillis تغییر کرد. (I12ff6)
  • به‌روزرسانی میانای برنامه‌سازی کاربردی برای سبک‌دهی پیوندها: TextLinkStyles به TextStyle منتقل شد و TextDefaults از عنصر (I5477b) برداشته شد

رفع اشکال‌ها

  • نام LayoutCoordinates.introducesFrameOfReference به LayoutCoordinates.introducesMotionFrameOfReference تغییر کرد تا هدف آن بهتر منعکس شود. تابع مرتبط را تغییر نام داد تا مختصات را براساس آن پرچم محاسبه کند. (I3a330)
  • «پیش‌فرض» از MarqueeDefaults دارایی برداشته شد. (I1d8a0)
  • «سرصفحه» از MarqueeDefaults دارایی برداشته شد. (Iad4f4)
  • ‫TextLinkStyles را از کلاس TextStyle برداشت. درعوض، TextLinkStyles بخشی از سازنده LinkAnntation و روش AnnotatedString.fromHtml است (I90b2b)
  • اشکالی که باعث می‌شد «صفحه‌گرد» هنگام پرتاب به‌سمت مرز درحالی‌که ازقبل در مرز مستقر شده بود، به‌سرعت به مرز بچسبد برطرف شد. (I9f373, b/339171222)
  • ‫BTF2 اکنون ژست‌های انتخاب موشواره صحیح دارد. (Ibe8c6)

همیاری خارجی

  • ارسال مجدد «محاسبه زمان آهنگ‌سازی/میزان محتوا براساس نوع محتوا در پیش‌دریافت برای بهبود دقت» (Iea622)
  • برای بهبود دقت، محاسبه زمان نوشتن/اندازه‌گیری محتوا را در پیش‌دریافت براساس نوع محتوا انجام دهید (Ibccb1)
  • دسترسی به WindowInsetsPadding اصلاح‌کننده از مجموعه منبع مشترک (I070b2)

نسخه 1.7.0-beta01

۱۴ مه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0-beta01 منتشر شد. نسخه 1.7.0-beta01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • خصوصیت KeyboardOptions.shouldShowKeyboardOnFocus به‌عنوان منسوخ پنهان برای سازگاری باینری اضافه شد. (I15cfe)
  • ‫Modifier.anchoredDraggable اکنون به‌طور پیش‌فرض دلتاهای کشیدن را برای عناصر با جهت «افقی» هنگام استفاده در چیدمان «راست به چپ» معکوس می‌کند. (I3c6d9)
  • ‫AnnotatedString.hasEqualsAnnotations اکنون hasEqualAnnotations است. (I685c0)
  • «میانای برنامه‌سازی کاربردی» برای دریافت پیوندهای زمینه‌ای «طراحی مواد» در نوشتار به‌روز شد. به‌طور خاص، روش‌های ساخت LinkAnnotations با موضوع و تجزیه HTML با پیوندهای موضوعی را از TextDefaults برداشتیم. درعوض، کلاس TextLinkStyles اضافه شد که امکان می‌دهد پیوندها به‌عنوان پارامتر به «ترکیب‌بندی نوشتار» سبک‌دهی شوند. (I31b93)
  • ‫onDragStarted و onDragStopped را با برگشتی‌های غیرتعلیقی جایگزین کرد. (I59de8)

رفع اشکال‌ها

  • اشکالی که باعث می‌شد وقتی 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)

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون می‌توان LazyLayout درخواست پیش‌واکشی را به‌عنوان فوری علامت‌گذاری کرد، یعنی انتظار داریم این مورد در قاب بعدی موردنیاز باشد و می‌خواهیم بودجه قاب را نادیده بگیریم تا مطمئن شویم کار بیشتری ازقبل انجام می‌شود (Id513f)
  • نام isPositionedByParentWithDirectManipulation به introducesFrameOfReference تغییر کرد. توجه داشته باشید که اکنون اثر معکوس دارد، یعنی به‌طور پیش‌فرض، اکثر LayoutCoordinates چارچوب مرجعی را معرفی می‌کنند، و فقط زمانی که تحت دستکاری مستقیم قرار می‌گیرد، دارایی نادرست خواهد بود. برای پُرسمان کردن موقعیت با فقط مواردی که چارچوب مرجع را معرفی می‌کنند، از positionInLocalFrameOfReference(...) استفاده کنید. یا positionInLocalLookaheadFrameOfReference از LookaheadScope. (Ifc5f7)
  • نام onClicked به onClick در LinkInteractionListener (Iaa35c) تغییر کرد
  • کنش لامبدا را برای getScrollViewportLength براساس بازخورد شورای API تغییر دهید. (Ibc74a)
  • میاناهای برنامه‌سازی کاربردی واگذاری دست‌نویسی با قلم تغییر نام داد. (Ica45f، b/327271923)
  • نام TextInclusionStrategy.isInside به isIncluded تغییر کند. نوع برگشتی Paragraph/MultiParagraph#getRangeForRect() را غیرقابل تهی کنید. (I51f26)

رفع اشکال‌ها

  • «انتخاب همه» به همه منوهای زمینه‌ای نوشتار در SelectionContainer اضافه شد. (Ib750e، b/240143283)
  • ضبط نماگرفت طولانی برای محتویات پیمایشی با reverseScrolling=true اصلاح شد. (I7c59c)
  • مشکلی که در آن currentValue‏ AnchoredDraggableState هنگام نزدیک شدن به مرزهای ایالت تغییر می‌کرد برطرف شد. (Iea30b، b/333846848)

همیاری خارجی

  • نام PrefetchExecutor -> PrefetchScheduler تغییر کرد تا بهتر مسئولیت‌هایش را منعکس کند. (Ib9154)
  • پشتیبانی از پیش‌دریافت کردن عناصر در LazyLists تودرتو (برای نمونه، LazyColumn که LazyRows تودرتو را پرداز می‌کند) اضافه شد. انتظار می‌رود این تغییر باعث کاهش افت فریم درحین پیمایش برای این LazyLists شود. پیاده‌سازی پیش‌فرض این است که ۲ مورد تودرتوی اول را پیش‌دریافت کند، اما این رفتار را می‌توان با APIهای جدید LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) و LazyListPrefetchStrategy#onNestedPrefetch کنترل کرد. (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)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫ContextMenuColors و LocalContextMenuTheme ProvidableCompositionLocal مرتبط را اضافه می‌کند. با ارائه ترکیب محلی، می‌توان رنگ‌های منو زمینه‌ای در فیلدهای نوشتاری و نوشتار قابل‌انتخاب را تغییر داد. (Ifa154)
  • پیوندهای نوشتاری علاوه‌بر سبک‌بندی عادی، سبک‌بندی حالت معلق و متمرکز، گزینه سبک‌بندی حالت فشرده را نیز دریافت کردند. (I5f864, b/139312671)
  • ‫ViewConfiguration.HandwritingGestureLineMargin را برای اشاره‌های دست‌نویس معرفی کنید. از اشاره دست‌نویسی برای BasicTextField پشتیبانی می‌کند. (Ie6e13،‏ b/325660505)
  • ‫DelegatableNode.scrollIntoView را برای نسخه ۱.۷ برداشتیم زیرا فرصت کافی برای تکمیل پایدارسازی بقیه سطح میانای برنامه‌سازی کاربردی مربوطه نداشتیم. این عملکرد در نسخه ۱.۸ دوباره معرفی خواهد شد (I6cf61، b/333421581، b/332900232)
  • هنگام پُرسمان کردن مختصات «چیدمان»، اکنون می‌توانید از آرگومان excludeDirectManipulationOffset برای کنار گذاشتن انحراف تنظیم‌شده توسط «چیدمان‌های» والد که فرزندانشان را بااستفاده از Placeable.PlacementScope.withDirectManipulationPlacement قرار داده‌اند استفاده کنید. به‌همین ترتیب، «چیدمانی» که موقعیت فرزندانش را به‌طور مکرر تغییر می‌دهد، اکنون می‌تواند آن‌ها را بااستفاده از withDirectManipulationPlacement (مثل «پیمایش» که به‌طور پیش‌فرض پیاده‌سازی شده است) قرار دهد. این کار به پویانمایی‌های مبتنی بر approachLayout کمک می‌کند تا شهودی‌تر باشند و اکنون این فرصت را دارند که هنگام تصمیم‌گیری برای پویانمایی رویکرد خود، بین آنچه باید جابه‌جا شود و آنچه باید مستقیماً اعمال شود تمایز قائل شوند. (I60ec7)
  • ‫requestScrollToItem را با قیمت LazyStaggeredGrid معرفی کنید. برای هر گذر اندازه‌گیری، کارخواه اکنون می‌تواند با فراخواندن requestScrollToItem از حفظ کردن نمای براساس کلید انصراف دهد. این کار رفتار موجود را به‌هیچ‌وجه تغییر نمی‌دهد، مگر اینکه requestScrollToItem فراخوانی شود. (I63983)
  • ‫requestScrollToPage را در Pager معرفی کنید. برای هر گذر اندازه‌گیری، کارخواه اکنون می‌تواند با فراخواندن requestScrollToPage از حفظ کردن نمای براساس کلید انصراف دهد. این کار رفتار موجود را به‌هیچ‌وجه تغییر نمی‌دهد، مگر اینکه requestScrollToPage فراخوانی شود. (Ic4213)
  • ‫requestScrollToItem برای LazyGrids معرفی شد. برای هر گذر اندازه‌گیری، کارخواه اکنون می‌تواند با فراخواندن requestScrollToItem از حفظ کردن نمای براساس کلید انصراف دهد. این کار رفتار موجود را به‌هیچ‌وجه تغییر نمی‌دهد، مگر اینکه requestScrollToItem فراخوانی شود. (I0a7a0)
  • ‫ClickableText به‌عنوان منسوخ علامت‌گذاری شده است. برای افزودن پیوند به نوشتار، AnnotatedString را با LinkAnnotation متناظر با پیوندتان ایجاد کنید و این AnnotatedString را به عنصر ترکیبی Text (I34d4b، b/323346994) ارسال کنید
  • ‫UrlAnnotation منسوخ شده است، درعوض از LinkAnnotation.Url استفاده کنید. اگر از موضوع‌دهی Material استفاده می‌کنید، از TextDefaults شیء برای ایجاد گزارمان با موضوع‌دهی Material اعمال‌شده روی آن استفاده کنید (I8d180، b/323346545)
  • نام String.parseAsHtml به AnnotatedString.Companion.fromHtml تغییر کرد (I43dcd)
  • متغیرهای مستقل سبک‌دهی (linkStyle،‏ focusedLinkStyle،‏ hoveredLinkStyle) و شنونده تعامل پیوند به روش parseAsHtml اضافه شد. وقتی رشته برچسب‌گذاری‌شده HTML با برچسب‌های <a> تجزیه می‌شود، این روش برای هریک از این برچسب‌ها LinkAnnotation.Url می‌سازد و اشیای سبک‌دهی و شنونده تعامل پیوند را به هریک از این گزارمان‌ها منتقل می‌کند. (I7c977)
  • ‫LinkAnnotation اکنون آرگومان‌های سبک‌دهی مبتنی بر وضعیت و LinkInteractionListener را می‌گیرد. این گزارمان را به AnnotatedString اضافه کنید تا پیوند دریافت کنید. با گذراندن focusedState و/یا hoveredState می‌توانید پیکربندی دیداری پیوندها را وقتی که روی آن‌ها تمرکز می‌شود و/یا نگه داشته می‌شود تعریف کنید. (I81ce4, b/139312671)
  • پرچم ویژگی نماگرفت‌های بلند برداشته شده است. (I28648، b/329128246)
  • ‫LazyColumn اکنون سرایندهای چسبان را در نماگرفت‌های بلند به‌درستی ارائه می‌کند. (I8d239، b/329296635)
  • اکثریت میاناهای برنامه‌سازی کاربردی آزمایشی باقی‌مانده که با BasicTextField جدید معرفی شده بودند تثبیت شدند. (I714e2)
  • پارامتر textObfuscationCharacter به BasicSecureTextField اضافه شد که کنترل می‌کند از کدام نویسه هنگام مبهم‌سازی محتوا استفاده شود. (I0588b)
  • منابع «کشیدن و پرتاب کردن» NestedScroll با UserInput و SideEffect جایگزین می‌شوند تا تعریف گسترده این منابع را که اکنون شامل پویانمایی‌ها (اثر جانبی) و «چرخ موشواره» و «صفحه‌کلید» (UserInput) می‌شود دربر بگیرند. (I40579)
  • ‫LocalBringIntoViewSpec را معرفی کنید، رفتار پیمایش تمرکز وابسته به پلاتفرمی که در لایه اصلاح‌گر «پیمایش‌پذیر» اعمال می‌شود. (I27aa5, b/317453911)
  • ‫TextFieldCharSequence حذف شد. ‫TextFieldBuffer.originalValues با TextFieldBuffer.originalText و TextFieldBuffer.originalSelection جایگزین می‌شود. (I2c7d6)
  • ‫ImeOptions.hintLocales دیگر نمی‌تواند تهی باشد. اگر می‌خواهید فهرست «منطقه» خالی را بگذرانید، لطفاً از LocaleList.Empty استفاده کنید. (Ic5bc4)
  • نام getOffsetFractionForPage به getOffsetDistanceInPages تغییر کرد. (Ia05e2)

رفع اشکال‌ها

  • وقتی InputTransformations با next ترکیب می‌شود، KeyboardOptions آن‌ها اکنون بااستفاده از روش جدید KeyboardOptions.merge براساس گزینه‌های فردی به‌درستی ادغام می‌شود. (Ie5304, b/295951492)
  • ‫targetValue AnchoredDraggableState دیگر آستانه‌های موقعیتی را درنظر نمی‌گیرد. اکنون آستانه ضمنی ۵۰٪ دارد، یعنی targetValue در نقطه میانی بین دو لنگر تغییر می‌کند. (I82c2c)

همیاری خارجی

  • ‫۲ میانای برنامه‌سازی کاربردی پیمایش تغییر نام داده شد (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 (ScrollCaptureCallback) پیاده‌سازی شد. این ویژگی آزمایشی است و ممکن است درحال‌حاضر همه موارد را به‌درستی مدیریت نکند. به همین دلیل، درحال‌حاضر به‌طور پیش‌فرض غیرفعال است. برای موافقت کردن، پرچم ComposeFeatureFlag_LongScreenshotsEnabled را روی «درست» تنظیم کنید. این پرچم قبل‌از نسخه بتای ۱.۷ برداشته خواهد شد. (I2b055, b/329296471)
  • ‫GraphicsLayer API جدیدی معرفی کنید تا انعطاف‌پذیری بیشتری در جای آگهی و پرداز کردن نمونه‌های GraphicsLayer ارائه دهد و از ویژگی‌های پرداز کردن ذاتی بدون نیاز به هماهنگی با پیاده‌سازی‌های «ترکیبی» برای مشخص کردن نمونه‌های اصلاح‌گر GraphicsLayer پشتیبانی کند.

تغییرات میانای برنامه‌سازی کاربردی

  • همه پارامترهای KeyboardOptions اکنون به‌طور پیش‌فرض مقدار نامشخص دارند. روش KeyboardOptions.merge اضافه شد.
  • ‫KeyboardOptions.autoCorrect به autoCorrectEnabled تغییر نام داد و آن را تهی‌پذیر کرد، جایی که تهی نشان می‌دهد مقداری مشخص نشده است. (Ia8ba0، b/295951492)
  • نام outOfBoundsPageCount به beyondViewportPageCount تغییر کرد. (I129c6)
  • ‫fun ClipEntry.getMetadata() به val ClipEntry.clipMetadata تغییر کرد. (I50155)
  • ‫TextFieldState.valueAsFlow() حذف شد. ترجیح می‌دهید از snapshotFlow { state.text } یا snapshotFlow { TextFieldCharSequence(state.text, state.selection) } استفاده کنید (I7d629)
  • ‫InputTransformation.transformInput پارامتر را دوباره سازمان‌دهی کردید. ‫originalValue: TextFieldCharSequence برداشته شد. به‌جای آن، TextFieldBuffer اکنون این مقدار را با همان نام دارد. پارامتر valueWithChanges: TextFieldBuffer نیز برداشته شد. ‫TextFieldBuffer اکنون حوزه گیرنده در تابع است. (I919cc)
  • ‫BasicTextField(state) گونه و BasicSecureTextField اکنون به‌جای KeyboardActions از KeyboardActionHandler برای پردازش کنش‌های انجام‌شده توسط صفحه‌کلید نرم‌افزاری استفاده می‌کنند. (I58dda)
  • واگذاری «میاناهای برنامه‌سازی کاربردی» دست‌نویسی با قلم برای پشتیبانی از دست‌نویسی با قلم در فیلدهای ورودی نوشتاری «جعلی». (I9c09c, b/327271923)
  • نام KeyboardOptions.shouldShowKeyboardOnFocus به showKeyboardOnFocus تغییر کرد. (Ib4b7a، b/295951492)
  • ‫hintMediaTypes پارامتر از Modifier.contentReceiver برداشته شد. توسعه‌دهندگان ازقبل تشویق شده‌اند که نوع رسانه TransferableContent دریافتی را بررسی کنند زیرا ممکن است با hintMediaTypes پیکربندی‌شده سازگار نباشد. (I82f99)
  • ترتیب پارامترهای BasicSecureTextField را تغییر داد. پارامترهای keyboardType و imeAction را به‌نفع کلاس کامل KeyboardOptions برداشتیم و پیش‌فرض‌های مناسب برای BasicSecureTextField را حفظ کردیم. پارامتر scrollState نیز برداشته شد. (Ibbfa9)
  • نوع TextFieldState.text از TextFieldCharSequence به CharSequence تغییر کرد. بنابراین، TextFieldState.selection: TextRange و TextFieldState.composition: TextRange? را اضافه کردیم تا مقادیر انتخاب و ترکیب کنونی را مستقیماً از شیء وضعیت بخوانند.
  • ‫TextFieldState.forEachTextValue حذف شد. (Idb2a2)
  • ‫ClipboardManager.getClipMetadata و ClipboardManager.hasClip تابع برداشته شد. لطفاً از clipEntry.getMetadata() برای خواندن فراداده ورودی کلیپ فعلی استفاده کنید. همچنین نتیجه ClipboardManager.getClip را بررسی کنید که آیا تهی است یا نه تا متوجه شوید آیا «کلیپ‌بورد» کلیپ فعلی دارد یا نه. (I50498)
  • ‫ClipboardManager.setClip اکنون مقدار null را می‌پذیرد تا بتواند «بریده‌دان» را پاک کند. (I7d2e9)
  • ‫ReceiveContentListener به رابط تابع تبدیل می‌شود. همچنین Modifier.receiveContent سربار که لامبدا را می‌گیرد برداشته می‌شود زیرا ReceiveContentListener اکنون میانای تابع است.
  • نام Modifier.receiveContent به Modifier.contentReceiver تغییر کرد. (I1e6af)
  • نام TransferableContent.consumeEach به TransferableContent.consume تغییر کرد. (I1e462)
  • ‫rememberTextFieldState به «میانای برنامه‌سازی کاربردی پایدار» ارتقا یافته است. (I37999)

رفع اشکال‌ها

  • اشکالی برطرف شد که در آن متغیر BasicTextField(state) با صفحه‌کلیدهای CJK(ترکیبی) کار نمی‌کرد. (I54425)
  • اشکالی برطرف شد که در آن Modifier.dragAndDropTarget() می‌توانست در سناریوهای خاص با استفاده مجدد از Modifier.Node به داده‌های قدیمی ارجاع دهد. (I05bb1)
  • تغییر اخیر قرارداد که در آن تماس‌های AnchoredDraggableState#anchoredDrag در پایان عملیات anchoredDrag قطع می‌شد واگرد شد. (I95715)

نسخه 1.7.0-alpha05

‫۲۰ مارس ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0-alpha05 منتشر شد. نسخه 1.7.0-alpha05 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ترکیب محلی آزمایشی LocalTextLinkStyle برای سبک‌دهی پیوندها برداشته شد. (Iebfa7)
  • جایگزینی آزمایشی BasicText با onLinkClicked آرگومان برداشته شد. ‫API جایگزینی برای پشتیبانی از پیوندها در آینده ارائه خواهد شد. (I107d5)
  • روش‌ها و دارایی‌های مرتبط با «نقطه‌های کد» را در TextFieldState و TextFieldBuffer برداشت. همچنین پسوندهای inChars را از انتخاب باقی‌مانده و میاناهای برنامه‌سازی کاربردی مربوط به ترکیب برداشت. (Ief7ce)
  • ‫currentValue AnchoredDraggable اکنون هنگام عبور از نقطه اتکا به‌روزرسانی می‌شود. از settledValue برای دریافت معناشناسی قبلی currentValue استفاده کنید، فقط هنگام استقرار در یک نقطه اتکا به‌روزرسانی می‌شود. اکنون پیشرفت به‌جای دارایی به‌عنوان یک تابع (نیازمند نقطه شروع و پایان) آشکار می‌شود. (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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی از ویژگی دست‌نویسی با قلم در دستگاه‌های دارای Android U و نسخه‌های جدیدتر. (I002e4)
  • ‫hintLocales به KeyboardOptions اضافه شد تا به TextFields امکان دهد «روش‌های ورودی» را با منطقه‌های خاصی راهنمایی کند تا زبان ترجیحی ازپیش تنظیم شود. (Id18c2)
  • بارگذاری‌های سرریز «آزمایشی» BasicTextField2 و BasicSecureTextField را که پارامترهای value: String و onValueChange: () -> String را می‌گرفتند برداشتیم. ‫(I568b4)
  • تابع اختیاری applySemantics را به InputTransformation اضافه کنید تا بر معناشناسی BasicTextField2 که به آن اعمال می‌شود تأثیر بگذارد. (I74a2f، b/170648072)
  • در این CL، کنش معنایی GetScrollViewportLength را اضافه می‌کنیم تا بتوانیم اطلاعات مربوط به عناصر پیمایش‌شده در نوشتن را به سیستم دسترس‌پذیری منتقل کنیم. این CL همچنین استفاده از دارایی مذکور را در «فهرست‌های پیمایش‌پذیر Foundation» اعمال می‌کند. (Ic5fa2)
  • نام BasicTextField2 به BasicTextField تغییر کرد. (Ie5713)
  • ‫FocusRequester.createRefs اکنون پایدار است (I4d92c، b/261436820)
  • ‫DelegatableNode.scrollIntoView() معرفی شد تا به گره‌های اصلاح‌گر اجازه دهد مستقیماً درخواست‌های scrollIntoView را انجام دهند. (I2b3b7, b/299939840)
  • ‫DelegatableNode.requireView() معرفی شد تا گره‌های اصلاح‌کننده بتوانند View کنونی Android را بدون خواندن ترکیب محلی دریافت کنند. (I40768)
  • معرفی اطلاعات چیدمان زمینه‌ای در «محدوده ردیف جاری زمینه‌ای» و «محدوده ستون جاری زمینه‌ای»، شامل شاخص خط، موقعیت، و محدودیت‌های حداکثر عرض و ارتفاع برای ماندن در موقعیت مشخص. براساس تنظیمات سرریز، مواردی که از حداکثر عرض/ارتفاع فراتر می‌روند ممکن است به خط بعدی بروند یا حذف شوند. (Id13f8، b/292114798)

رفع اشکال‌ها

  • اشکالی برطرف شد که در شرایط خاص، روشن/خاموش کردن ویژگی‌های enabled یا readOnly در TextField باعث ازکارافتادن می‌شد. (Iae17b)

نسخه 1.7.0-alpha03

۲۱ فوریه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0-alpha03 منتشر شد. نسخه 1.7.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫DelegatableNode.requireLayoutCoordinates() به‌عنوان روشی برای دریافت LayoutCoordinates کنونی Modifier.Node بدون نیاز به ملغی کردن onPlaced و ذخیره کردن مختصات در دارایی خودتان معرفی شد. (Ia8657)
  • ‫DelegatableNode.currentLayoutCoordinates به‌عنوان روشی برای دریافت LayoutCoordinates کنونی Modifier.Node بدون نیاز به ملغی کردن onPlaced و ذخیره کردن مختصات در دارایی خودتان معرفی شد. (Iaebaa)
  • بهینه‌سازی‌های عملکرد در DraggableAnchors که AnchoredDraggable استفاده می‌کند. (I89cff)
  • ‫BasicTextField2 و میاناهای برنامه‌سازی کاربردی مرتبط تحت بسته androidx.compose.foundation.text2 به androidx.compose.foundation.text منتقل می‌شوند. (I9f635)
  • ‫BasicTextField2 دیگر پارامتر CodepointTransformation را نمی‌پذیرد. از BasicSecureTextField یا OutputTransformation استفاده کنید. (Id34ff)
  • روش مقایسه فقط گزارمان‌های دو AnnotatedStrings اضافه شد. (I32659)
  • معرفی ContextualFlowRow و «بهبودیافته» FlowRow/Column با MaxLines و Overflow. با خوشحالی اعلام می‌کنیم که FlowRow و FlowColumn آزمایشی را بهبود داده‌ایم و اکنون maxLines و پشتیبانی سرریز را به‌همراه رونمایی از ContextualFlowRow و ContextualFlowColumn ارائه می‌دهند. این به‌روزرسانی برای ارائه عناصر با عملکرد بهینه طراحی شده است، جایی که ContextualFlow* برای تعداد زیادی از موارد که از پیکربندی کوچک maxLines و دکمه‌های پویا +N دیدن موارد بیشتر استفاده می‌کنند عالی است، و FlowRow و FlowColumn برای تعداد کمی از موارد، کمتر از ۱۰۰ مورد، عالی است. مهم: برای حفظ رفتار موجود در FlowRow یا FlowColumn که در آن همه عناصر صرف‌نظر از اینکه با حداکثر محور متقاطع مطابقت دارند یا نه ترکیب می‌شوند، overflow را درطول مقداردهی اولیه روی FlowRowOverflow.Visible یا FlowColumnOverflow.Visible تنظیم کنید. برای دیدن نمونه‌هایی از این ویژگی‌های جدید در عمل، ContextualFlowRowSample و FlowRowSample را کاوش کنید. (Ib9135، b/293577082)

رفع اشکال‌ها

  • پویانمایی مکان‌نما دیگر قاب‌های بین وضعیت‌های روشن و خاموش را درخواست نمی‌کند. (Ia2253)
  • سازنده‌های کپی منسوخ‌شده KeyboardOptions اکنون همه دارایی‌ها را به‌درستی کپی می‌کنند. (If12de)

نسخه 1.7.0-alpha02

۷ فوریه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0-alpha02 منتشر شد. نسخه 1.7.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫HorizontalPager،‏ VerticalPager، و PagerState به نسخه پایدار ارتقا یافتند. (I67660، b/316966909)
  • ‫LocalTextLinkStyle ترکیب محلی اضافه شد که امکان تغییر سبک پیوندها را در «نوشتار» در سراسر برنامه فراهم می‌کند. اگر از زمینه خودتان در برنامه استفاده می‌کنید، باید این ترکیب محلی را براساس زمینه‌تان تنظیم کنید. هنگام استفاده از زمینه Material، رنگ پیوند به‌طور پیش‌فرض روی رنگ اصلی Material تنظیم می‌شود. (I7eb10)
  • اصلاح‌گر receiveContent معرفی شد که به توسعه‌دهندگان روشی برای دریافت محتوای غنی در Jetpack Compose ارائه می‌دهد.
  • ‫receiveContent با BasicTextField2 ادغام می‌شود تا محتوای غنی ارائه‌شده توسط صفحه‌کلید نرم‌افزاری یا ازطریق کنش جای‌گذاری «بریده‌دان» را بپذیرد. (I81b72)
  • در این تغییر، SnapFlingBehavior را در پیجر با TargetedFlingBehavior جایگزین می‌کنیم تا موارد استفاده دیگر را باز کنیم و انعطاف‌پذیری بیشتری ارائه دهیم. (I762ea)
  • در این تغییر، «میاناهای برنامه‌سازی کاربردی چسباندن» را «پایدار» می‌کنیم. همچنین برخی‌از کد آزمایش را پاک‌سازی می‌کنیم و نمونه‌های بیشتری به «چسباندن» اضافه می‌کنیم. (Id8da9)
  • ‫TargetedFlingBehavior را معرفی کنید، FlingBehavior که اجازه می‌دهد اطلاعات مربوط به وضعیت پویانمایی درحال انجام و جابه‌جایی پیمایش هدف آن منتشر شود. (I6a207)

رفع اشکال‌ها

  • اکنون BasicTextField2 مکان‌نما را هنگام تایپ کردن در نمای دید نگه می‌دارد، حتی اگر از نمای دید پیمایش شده باشد یا به‌دلیل ورودی از نمای دید خارج شود. (Ieb856، b/237190748)

همیاری خارجی

  • میانای برنامه‌سازی کاربردی آزمایشی برای پیکربندی رفتار پیش‌واکشی LazyLists اضافه می‌کند. (I022a4)

نسخه 1.7.0-alpha01

۲۴ ژانویه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.7.0-alpha01 منتشر شد. نسخه 1.7.0-alpha01 شامل این تعهدات است.

ویژگی‌های جدید

  • Indication API جدیدی، IndicationNodeFactory، اضافه شد. این امر منجر به پیاده‌سازی‌های Indication با عملکرد بهتر در مقایسه با API قبلی (اکنون نامناسب) rememberUpdatedInstance می‌شود. برای اطلاعات انتقال، developer.android.com را ببینید.
  • ‫clickable / combinedClickable / selectable / toggleable اکنون پارامتر MutableInteractionSource تهی‌پذیر را می‌پذیرد. اگر تهی باشد و Indication ارائه‌شده IndicationNodeFactory باشد، Indication فقط درصورت نیاز می‌تواند به‌صورت تنبل ایجاد شود که عملکرد را بهبود می‌بخشد. اگر MutableInteractionSource را برافراشته و استفاده نمی‌کنید، توصیه می‌شود که مقدار null را ارسال کنید.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫DecayAnimation در AnchoredDraggable معرفی شد. این تغییر پارامتر decayAnimationSpec را به AnchoredDraggable اضافه می‌کند و امکان استفاده از پویانمایی زوال را هنگام استقرار در یکی از لنگرها فراهم می‌کند. این تغییر همچنین شامل تغییر نام animationSpec موجود به snapAnimationSpec است تا به درک مورد استفاده هر مشخصه کمک کند.
  • ‫BasicTextField2 برای استفاده آزمایشی دردسترس است. تقریباً باید با BasicTextField برابری ویژگی داشته باشد و عملکرد آن باید آماده تولید باشد. بااین‌حال، این API فعلاً در مرحله آزمایشی باقی می‌ماند. قبل‌از پایدارسازی، به BasicTextField تغییر نام داده می‌شود و به همان بسته منتقل می‌شود.
  • اولین پیش‌نویس میانای برنامه‌سازی کاربردی OutputTransformation را برای BasicTextField2 معرفی کرد. این API جایگزین اکثر موارد استفاده از VisualTransformation در BasicTextField قدیمی می‌شود. بااین‌حال، هنوز کامل نیست و برخی‌چیزها به‌درستی کار نخواهند کرد، اما از هرگونه بازخورد درباره قابلیت استفاده از API برای موارد استفاده شما استقبال می‌کنیم. (aosp/2708848)
  • LinkAnnotation معرفی شد که امکان افزودن پیوندها و کلیک‌کردنی‌ها به نوشتار را فراهم می‌کند. ویژگی پیوندها هنوز کامل نیست و تغییرات بیشتری در «میانای برنامه‌سازی کاربردی» در راه است.
  • اصلاح‌گر receiveContent معرفی شد که به توسعه‌دهندگان روشی برای دریافت محتوای غنی در Jetpack Compose ارائه می‌دهد.
  • ‫receiveContent با BasicTextField2 ادغام می‌شود تا محتوای غنی ارائه‌شده توسط صفحه‌کلید نرم‌افزاری یا ازطریق جای‌گذاری از «بریده‌دان» را بپذیرد.
  • ‫KeyboardOptions.shouldShowKeyboardOnFocus به شما امکان می‌دهد رفتار پیش‌فرض BasicTextField را که درخواست صفحه‌کلید نرم‌افزاری در حالت تمرکز است غیرفعال کنید.
  • ‫TextInputService و LocalTextInputService اکنون منسوخ شده‌اند. به‌جای آن، از PlatformTextInputModifierNode برای ادغام مستقیم با میاناهای برنامه‌سازی کاربردی IME پلاتفرم استفاده کنید. (aosp/2862698)
  • ‫Indication#rememberUpdatedInstance منسوخ شده است. جریمه عملکرد اجتناب‌ناپذیر بالایی دارد و مانع بهینه‌سازی‌های دیگر می‌شود. درعوض، باید از IndicationNodeFactory API جدید استفاده کنید.

رفع اشکال‌ها

  • اکنون BasicTextField هنگام ارسال VisualTransformation، مجموعه کوچکی از نگاشت‌های جبرانی را ازپیش اعتبارسنجی می‌کند. این کار به شناسایی خطاهای رایج کدنویسی که منجر به استثناهای غیرقابل‌بازیابی در مراحل بعدی اندازه‌گیری یا طراحی می‌شود کمک می‌کند. با پرتاب کردن درطول ترکیب، احتمال اینکه توسعه‌دهندگان این خطاها را درطول توسعه ببینند بیشتر می‌شود و این امر به جلوگیری از خرابی‌های تولید کمک می‌کند. (I0fd42)
  • اگر شاخص نامعتبری را برای شاخص نامعتبر برگردانید، VisualTransformation خطا نمی‌دهد (b/316401857 )

نسخه ۱.۶

نسخه ۱.۶.۸

۱۲ ژوئن ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.8 منتشر شد. نسخه ۱.۶.۸ شامل این تعهدها است.

نسخه ۱.۶.۷

۱ مه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.7 منتشر شد. نسخه ۱.۶.۷ شامل این تعهدات است.

نسخه ۱.۶.۶

‫۱۷ آوریل ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.6 منتشر شد. نسخه ۱.۶.۶ شامل این تعهدات است.

رفع اشکال‌ها

  • اشکالی برطرف شد که در شرایط خاص، روشن/خاموش کردن مشخصه‌های enabled یا readOnly در TextField باعث ازکارافتادن می‌شد. (Iae17b)

نسخه ۱.۶.۵

۳ آوریل ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.5 منتشر شد. نسخه ۱.۶.۵ شامل این تعهدات است.

رفع اشکال‌ها

  • گزارش‌های اشکال‌زدایی را به اشکالاتی که بازتولید آن‌ها در «ردیف/ستون» دشوار است اضافه می‌کند: (b/300280216 و b/297974033)

نسخه ۱.۶.۴

‫۲۰ مارس ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.4 منتشر شد. نسخه ۱.۶.۴ شامل این تعهدات است.

رفع اشکال‌ها

  • اشاره انتخاب با فشار طولانی و سپس کشیدن که در قاب اول کشیدن از محدوده چیدمان نوشتار خارج می‌شود دیگر ازکار نمی‌افتد. (Icdf90, b/325307463)

نسخه ۱.۶.۳

۶ مارس ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.3 منتشر شد. نسخه ۱.۶.۳ شامل این تعهدات است.

نسخه ۱.۶.۲

۲۱ فوریه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.2 منتشر شد. نسخه ۱.۶.۲ شامل این تعهدات است.

رفع اشکال‌ها

  • رفع مشکل AnimateContentSize که به‌درستی بازنشانی نمی‌شود. (I07051)
  • رفع مشکلی که در برخی شرایط باعث می‌شد intrinsicHeight نوشتار بیش‌ازحد در حافظه نهان ذخیره شود. (3cd398, b/217910352)

نسخه ۱.۶.۱

۷ فوریه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.1 منتشر شد. نسخه ۱.۶.۱ حاوی این تعهدات است.

رفع اشکال‌ها

  • رفع مشکل اندازه‌گیری شبکه نامنظم هنگام پیمایش فراتر از حد مجاز. (bffc39)
  • بررسی چیدمان با ابعاد بزرگ اضافه شد. (e74af5)
  • جای‌گذاری عناصر با اندازه ۰ در ابتدای شبکه نامنظم اصلاح شد. (785f94)
  • بازخوانی Call onRelease را به همان ترتیبی که onForgotten دارد انجام دهید. (31ce3b)

نسخه ۱.۶.۰

۲۴ ژانویه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.0 منتشر شد. نسخه ۱.۶.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۵.۰

  • «اصلاح‌گر» جدید Modifier.anchoredDraggable که امکان کشیدن و پویانمایی بین مجموعه ازپیش تعریف‌شده‌ای از لنگرها را فراهم می‌کند. این اصلاح‌گر برای جایگزینی Modifier.swipeable درنظر گرفته شده است. در راهنمای انتقال، با نحوه استفاده از آن و انتقال از Modifier.swipeable آشنا شوید.
  • عملکرد کشیدن و رها کردن بین برنامه‌ها و عناصر اضافه شده است. برای شروع کار، به DragAndDropTarget، Modifier.dragAndDropSource، و دیگر میاناهای برنامه‌سازی کاربردی مراجعه کنید
  • ‫Modifier.draggable2D اصلاح‌گر جدیدی است که امکان پشتیبانی آسان از کشیدن دوبعدی را فراهم می‌کند. نمونه را ببینید.
  • AndroidExternalSurface و AndroidEmbeddedExternalSurface اضافه شده است تا افزودن عناصر سطح‌محور در نوشتن آسان‌تر شود
  • بهبودها و تغییرات مختلف در میانای برنامه‌سازی کاربردی در Pager و snapFlingBehaviour
  • میاناهای برنامه‌سازی کاربردی مختلفی برای تمرکز، نوشتار، و حاشیه‌ها به میاناهای برنامه‌سازی کاربردی پایدار ارتقا یافته‌اند

نسخه 1.6.0-rc01

‫۱۰ ژانویه ۲۰۲۴

‫androidx.compose.foundation:foundation-*:1.6.0-rc01 منتشر شد. نسخه 1.6.0-rc01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • سازنده افزونه 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اصلاح‌گر DragAndDropTarget اکنون DragAndDropTarget دریافت‌کننده را به‌طور صریح می‌پذیرد و یک لامبدا برای موافقت با جلسه کشیدن و رها کردن دارد. اکنون دو تابع کارخانه‌ای برای DragAndDropModifierNode وجود دارد. یکی برای دریافت انتقال‌ها و یکی برای انتقال داده‌ها (I69481)
  • ‫maximumFlingVelocity به‌روز شد تا به‌صورت «شناور» نشان داده شود. اسناد به‌روزرسانی‌شده برای شفاف‌تر کردن maximumFlingVelocity وحدت. (I8adc7)
  • نام onDragAndDropStart در کارخانه DragAndDropModifierNode به acceptDragAndDropTransfer تغییر کرد.

    ‫acceptsDragAndDropTransfer به dragAndDropTarget Modifier اضافه شد تا از جلسه کشیدن و رها کردن پذیرفته شود. این لامبدا درصورت علاقه‌مند بودن به جلسه کشیدن و رها کردن، DragAndDropTarget قابل‌اجرا را برمی‌گرداند. این تابع جایگزین توابع لامبدای دیگر برای پردازش رویدادهای کشیدن شده است.

    تابع کارخانه DragAndDropTarget برای دریافت از جلسه‌های کشیدن و رها کردن اضافه شده است (Iebf3a)

  • نمایان کردن startDragImmediately در AnchoredDraggable کنترل تشخیص اشاره‌های کشیدن هنگام استفاده از آن را فراهم می‌کند. این ویژگی زمانی مفید است که ابزاره درحال پویانمایی به یک لنگر هدف باشد. نمونه را ببینید. (Ie6d13،‏ b/285139987)

  • ‫Foundation Tooltip APIs اکنون @ExperimentalFoundationApi است (I30b0b)

  • ‫DragAndDropInfo به‌عنوان نوع برداشته شد و اکنون DragAndDropModifierNode.drag پارامترهای transferData، اندازه تزئین، و تزئین کشیدن DrawScope لامبدا را می‌پذیرد

    ‫DragAndDropTarget به‌جای اینکه یک روش انتزاعی واحد باشد، روش‌هایی برای رویدادهای خاص کشیدن و رها کردن دارد

    ‫onDragAndDropEvent در تابع کارخانه‌ای برای DragAndDropModifierNode به onDragAndDropStart تغییر نام داده است تا بهتر نشان دهد که DragAndDropTarget ارائه‌شده فقط برای جلسه معینی از کشیدن و رها کردن معتبر است

    ‫DragAndDropEventType برداشته شد (I645b1)

  • نام PlatformTextInputModifierNode.runTextInputSession به establishTextInputSession تغییر کرد. (I03cd0)

  • ‫OriginalText را تا TextSubstitution جایگزین کنید. (Ifa5a8)

  • نام PlatformTextInputModifierNode.textInputSession به runTextInputSession تغییر کرد. (Ie9c6b)

  • فرزندان SubcomposeLayout (و چیدمان‌هایی مثل LazyColumn که براساس آن ساخته شده‌اند) که برای استفاده مجدد در آینده نگهداری می‌شوند غیرفعال درنظر گرفته می‌شوند. میانای برنامه‌سازی کاربردی آزمایشی assertIsDeactivated() جدیدی برای آزمایش چنین گره‌هایی معرفی شده است. بقیه «میاناهای برنامه‌سازی کاربردی» آزمایش به‌طور پیش‌فرض گره‌های غیرفعال را فیلتر می‌کنند. (I2ef84،‏ b/187188981)

  • پارامتر clippingEnabled از Modifier.magnifier به clip تغییر نام داد.

  • پارامتر magnifierCenter از Modifier.magnifier با حفظ همان رفتار پیش‌فرض، تهی‌پذیر می‌شود. (I6aa66)

  • «میاناهای برنامه‌سازی کاربردی» SwipeToReveal Material (برای «کارت‌ها» و «تراشه‌ها») اکنون برای ایجاد آن جایگاه‌ها به‌جای نمونه‌های مبتنی بر کلاس داده، به «میانای برنامه‌سازی کاربردی» مبتنی بر جایگاه (طبق توصیه Compose) متکی است. این تغییر یک تغییر اساسی است، لطفاً برای دیدن نمونه‌هایی از نحوه استفاده از API جدید، کد نمونه و نسخه نمایشی را ببینید. (Ia8943)

رفع اشکال‌ها

  • ‫equals و hashcode را برای PageSize.Fixed پیاده‌سازی کنید. (Ie3ede, b/300134276)
  • اشکالی برطرف شد که باعث می‌شد چیدمان BasicText وقتی minWidth تغییر می‌کرد و minWidth کمتر از محدودیت‌های اندازه اولیه maxWidth بود (Idb19c) کوچک نشود
  • پشتیبانی از رندرکننده برای «گرادیان جارویی» در ArcLine اضافه کنید. (I4d5bb)
  • رفع مشکل سازگاری باینری با تغییر «حاشیه پنجره» (Iee695)
  • لایه اصلی مطالب را برای «تراشه/دکمه Material3» بردارید زیرا ریزسنجش‌ها نشان می‌دهد که بدون آن عملکرد بهتری دارد. (I55555)

نسخه 1.6.0-alpha08

۱۸ اکتبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha08 منتشر شد. نسخه 1.6.0-alpha08 حاوی این تعهدات است.

ویژگی‌های جدید

  • ‫Modifier.draggable2D اصلاح‌گر جدیدی است که امکان پشتیبانی آسان از کشیدن دوبعدی را فراهم می‌کند. نمونه (Id95f5، b/214412658) را ببینید

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Modifier.dragAndDrawSource تابع لامبدای onDrawDragShadow را به drawDragDecoration تغییر نام داده است و DragAndDropInfo پارامتر اندازه را به dragDecorationSize تغییر نام داده است. (Id0e30, b/303904810)
  • پارامتر decorationBox در BasicTextField2 به decorator تغییر نام داد. نوع آن نیز به یک رابط سرگرم‌کننده معادل TextFieldDecorator تغییر می‌کند. (I23c1c)

رفع اشکال‌ها

  • اسناد بهبودیافته درباره BasicTextField درخصوص الزامات onValueChange. (I90fc9, b/160257648)

نسخه 1.6.0-alpha07

۴ اکتبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha07 منتشر شد. نسخه 1.6.0-alpha07 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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(). این یک «میانای برنامه‌سازی کاربردی» آزمایشی است و ممکن است تغییر کند یا اصلاح شود. (I9ddb2)
  • ‫Modifier.magnifier() اکنون یک «میانای برنامه‌سازی کاربردی» پایدار است. این شامل حذف MagnifierStyle به نفع پارامترهای به‌خط در خود اصلاح‌گر می‌شود. (I83bec، b/298381260، b/262367109، b/261438887)

تغییرات میانای برنامه‌سازی کاربردی

  • معرفی updateCurrentPage و updateTargetPage در ScrollScope، این‌ها آخرین قطعات لازم برای امکان سفارشی‌سازی پیمایش پویانمایی‌شده در PagerState.scroll هستند. (I9cad5،‏ b/267744105،‏ b/243786897)
  • برداشتن تراکم از SnapFlingBehavior. همه پیاده‌سازی‌های SnapLayoutInfoProvider ازقبل روشی برای دسترسی به تراکم دارند، بنابراین می‌توان محدوده گیرنده را برداشت که منجر به پیاده‌سازی کمتر پیچیده SnapFlingBehavior و SnapLayoutInfoProviders می‌شود. (I153c3)
  • تعداد بیشتری از اصلاح‌کننده‌ها به‌عنوان پایدار علامت‌گذاری شدند. (I56af1،‏ b/298046462)
  • SnapStepSize از SnapLayoutInfoProvider حذف شد. محاسبه باید بااستفاده از اطلاعات «چیدمان» انجام شود و ازطریق رویکرد یا جبران‌های چسباندن ارائه شود. (If320c)

تغییرات رفتار

  • ‫Compose اکنون از مقیاس‌بندی غیرخطی قلم برای خوانایی و دسترس‌پذیری بهتر استفاده می‌کند. وقتی مقیاس قلم در تنظیمات سیستم >‏ ‎٪۱۰۰ باشد، اندازه نوشتار کوچک به‌طور معمول افزایش می‌یابد، اما اندازه نوشتار بزرگ ازقبل فقط کمی افزایش می‌یابد. همچنین، ارتفاع خطوط تعریف‌شده در SP به‌طور خودکار تنظیم می‌شود تا با ارتفاع موردنظر در مقیاس ۱۰۰٪ متناسب بماند. برای اطلاعات بیشتر، روال‌های مطلوب برای مقیاس‌بندی قلم را ببینید. (I11518)

رفع اشکال‌ها

  • استفاده از rememberSaveable را برای نکته‌ابزار بردارید. (Icc131،‏ b/299500338)

نسخه 1.6.0-alpha05

۶ سپتامبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha05 منتشر شد. نسخه 1.6.0-alpha05 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • برای BasicSecureTextField سربار اضافه کنید که مقدار تغییرناپذیر و یک کارگزار برای تغییر آن مقدار را بپذیرد، درست مثل API فعلی BasicTextField. (Ia4882)
  • برای علامت‌گذاری به‌عنوان ترکیب‌شدنی، Modifier.preferKeepClear() را اضافه کنید زیرا ترجیح داده می‌شود در API 33 و بالاتر از پنجره‌های شناور استفاده نشود. (Ib51d5، b/297260115)
  • سرعت‌های پرتاب در عناصر «نما» مانند ScrollView و RecyclerView در ViewConfiguration.ScaledMaximumFlingVelocity محدود شده است. «نوشتن» اکنون حاوی نسخه خودش از maximumFlingVelocity است که اکنون برای Draggable اعمال می‌شود. (Ibf974)
  • ‫Pager منسوخ‌شده و PagerState سربار برداشته شد. (Iea07e)
  • ‫BasicTooltipBox به compose.foundation اضافه شد و PlainTooltipBox و RichTooltipBox به‌روزرسانی شدند تا از TooltipBox با عناصر ترکیب‌پذیر جدید PlainTooltip و RichTooltip استفاده کنند. (I79e1d)

نسخه 1.6.0-alpha04

۲۳ اوت ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha04 منتشر شد. نسخه 1.6.0-alpha04 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • واسط ReusableComposition را برای مدیریت چرخه عمر و استفاده مجدد از زیرترکیب‌ها اضافه کنید. ‫(I812d1،‏ b/252846775)
  • ‫Modifier.focusGroup به میاناهای برنامه‌سازی کاربردی پایدار ارتقا یافته است. (I7ffa3)
  • برای BasicTextField2 سربار اضافه کنید که مقدار تغییرناپذیر و یک کارگزار برای تغییر آن مقدار را بپذیرد، درست مثل API فعلی BasicTextField. (I3f2b8)
  • ‫GridItemSpan::currentLineSpan اکنون یک «میانای برنامه‌سازی کاربردی» پایدار است. (Icc29c)
  • بومی که contentDescription را می‌پذیرد اکنون یک «میانای برنامه‌سازی کاربردی» پایدار است. (Ib3d29)
  • در ScrollState، viewportSize معرفی شد، روشی برای اطلاع از اندازه viewPort عنصری که از ScrollState پس‌از اندازه‌گیری استفاده می‌کند. (I8b85a، b/283102682)
  • مشکلی که باعث می‌شد پیش‌واکشی در «صفحه‌بندی» با عملکرد «نماها» مطابقت نداشته باشد برطرف شد. (I93352، b/289088847)
  • ‫Modifier.consumeWindowInsets(PaddingValues) اکنون پایدار است.
    • میانای برنامه‌سازی کاربردی Deprecated Modifier.consumedWindowInsets اکنون برداشته شده است. درعوض از Modifier.consumeWindowInsets استفاده کنید. (Id72bb)

نسخه 1.6.0-alpha03

۹ اوت ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha03 منتشر شد. نسخه 1.6.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • بار اضافی LazyLayout اضافه شد، لامبدای LazyLayoutItemProvider را می‌پذیرد، نه شیء ساده را مثل قبل. از سربار قبلی منسوخ شده است. (I42a5a)
  • پشتیبانی برای پیکربندی privateImeOptions (Idb772) اضافه شد

رفع اشکال‌ها

  • وقتی readOnly درست باشد، فیلدهای نوشتاری ثابت صفحه‌کلید را نشان می‌دهند و قابل‌ویرایش هستند. همچنین مشکل نمایش داده نشدن صفحه‌کلید هنگام تغییر readOnly از درست به نادرست درحالی‌که تمرکز روی آن است برطرف شد. (I34a19, b/246909589)

نسخه 1.6.0-alpha02

۲۶ ژوئیه ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha02 منتشر شد. نسخه 1.6.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫PagerLayoutInfo با اطلاعات جمع‌آوری‌شده پس‌از گذراندن معیار در Pager معرفی شد. همچنین PageInfo، اطلاعات مربوط به یک «صفحه» اندازه‌گیری‌شده در Pager، معرفی شد. (Iad003، b/283098900)
  • حاشیه‌نویسی‌های اضافی برای مشخص کردن ورودی‌های مجاز برای عناصر ترکیبی (I51109)
  • ‫SemanticsNodeInteraction.requestFocus به‌عنوان روشی راحت‌تر و قابل‌کشف‌تر برای درخواست تمرکز در آزمون‌ها اضافه شد. (Ie8722)
  • میانای برنامه‌سازی کاربردی PlatformTextInput* کاملاً بازطراحی شده است. (I6c93a, b/274661182, b/267235947, b/277380808)
  • ‫SoftwareKeyboardController و LocalSoftwareKeyboardController دیگر آزمایشی نیستند. ‫LocalSoftwareKeyboardController اکنون CompositionLocal مناسبی است. (I4c364)
  • ‫Modifier.transformable اکنون در پارامتر canPan، دلتای چرخش افقی ارائه می‌دهد تا به تعیین جهت چرخش افقی برای مجاز یا غیرمجاز کردن آن کمک کند. (I692aa، b/266829800)
  • اصلاح‌کننده consumeWindowInsets را به‌روز می‌کند تا ابرکلاس AbstractComposeView را گسترش دهد (Iacd74، b/269479941)

نسخه 1.6.0-alpha01

۲۱ ژوئن ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.6.0-alpha01 منتشر شد. نسخه 1.6.0-alpha01 حاوی این تعهدات است.

ویژگی‌های جدید

  • میانای برنامه‌سازی کاربردی AnchoredDraggable جدیدی در Foundation معرفی شد. از آن می‌توان برای ساختن عناصری استفاده کرد که می‌توانند بین حالت‌های مجزا کشیده شوند، مثل برگه‌های پایین‌نمای مشروط. این «میانای برنامه‌سازی کاربردی» جایگزین «میانای برنامه‌سازی کاربردی» Swipeable در Material می‌شود. (I4a2ed)

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی InputConnection#requestCursorUpdates (I0c69b)
  • ‫scrollAnimationSpec معرفی شد تا مشخصات پویانمایی سفارشی مجاز شود. ‫BringIntoViewCalculator به BringIntoViewScroller به‌روز شد. (Idb741)
  • نوع ResourceResolutionException را اضافه کنید تا استثناهای پرتاب‌شده هنگام تلاش برای بار کردن دارایی‌های بیت‌مپ را با شرح مسیر دارایی که بار نشد بپوشاند. (I19f44، b/230166331، b/278424788)
  • کنش‌ها و دارایی‌های معنایی برای پشتیبانی از ترجمه نوشتار اضافه شد. (I4a6bc)
  • ‫BringIntoViewCalculator API معرفی شد که می‌توان از آن برای سفارشی‌سازی نحوه پاسخ‌دهی عناصر، مثل Scrollable، به درخواست‌های bringIntoView استفاده کرد. بار اضافی پیمایش‌پذیر به پذیرش اختیاری نمونه‌ای از BringIntoViewCalculator تغییر کرد. (Iaf5af)

رفع اشکال‌ها

  • بررسی lint اضافه شد تا درصورتی‌که MutableInteractionSource را در ترکیب بدون به‌یاد آوردن آن ایجاد کنید هشدار دهد، مشابه بررسی‌های lint برای ایجاد وضعیت تغییرپذیر / Animatable. (I5daae)
  • پشتیبانی از انتخاب با موشواره اضافه شد. انتخاب براساس لمس براساس کلمه گسترش می‌یابد و براساس نویسه کوچک می‌شود. (Ic0c6c،‏ b/180639271)
  • واسط FocusTargetModifierNode اضافه شد که می‌توان از آن برای ایجاد FocusTarget سفارشی استفاده کرد. (I9790e)

نسخه 1.5

نسخه ۱.۵.۴

۱۸ اکتبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.5.4 منتشر شد. نسخه 1.5.4 شامل این تعهدات است.

نسخه ۱.۵.۳

۴ اکتبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.5.3 منتشر شد. این نسخه هیچ تغییری ندارد.

نسخه 1.5.2

۲۷ سپتامبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.5.2 منتشر شد. نسخه ۱.۵.۲ شامل این تعهدات است.

رفع اشکال‌ها

  • اشکالی در نوشتار که در شرایط خاصی هنگام نامعتبر شدن معناشناسی منجر به ازکارافتادگی می‌شد برطرف شد.

نسخه 1.5.1

۶ سپتامبر ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.5.1 منتشر شد. نسخه 1.5.1 حاوی این تعهدات است.

رفع اشکال‌ها

  • وقتی readOnly درست باشد، فیلدهای نوشتاری ثابت صفحه‌کلید را نشان می‌دهند و قابل‌ویرایش هستند. همچنین مشکل نمایش داده نشدن صفحه‌کلید هنگام تغییر readOnly از درست به نادرست درحالی‌که تمرکز روی آن است برطرف شد. (I34a19, b/246909589)

نسخه ۱.۵.۰

۹ اوت ۲۰۲۳

‫androidx.compose.foundation:foundation-*:1.5.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() تماس به انواع تخصصی مربوطه برای عناصر اولیه دردسترس است. شناسه lint آن AutoboxingStateCreation است. قبلاً، این بازرسی به‌طور پیش‌فرض برای همه پروژه‌ها فعال بود. برای دیدن این هشدار در ویرایشگر Android Studio و بروندادهای lint پروژه، با تعریف کردن warning "AutoboxingStateCreation" در پیکربندی build.gradle یا build.gradle.kts واحد خود، شدت آن را از «اطلاعاتی» به «هشدار» (یا بالاتر) تغییر دهید، همان‌طور که نشان داده شده است (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • برای ارائه ضربان قلب و تعداد قدم‌های روزانه، PlatformDataProvider را پیاده‌سازی کنید. میانای SensorGateway از API عمومی برداشته می‌شود. (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫TextStyle.merge(...) بهینه‌سازی‌شده با فهرست کامل پارامتر اضافه شد. (Iad234، b/246961787)
  • SnapLayoutInfoProvider را معرفی کنید که بتواند با LazyGridState استفاده شود. (I92134،‏ b/269237141،‏ b/260914964)
  • ‫Modifier.animateItemPlacement() آزمایشی برای حوزه عنصر شبکه‌های نامنظم تنبل اضافه شد. می‌توانید آن را روی عناصر اعمال کنید تا به پویانمایی‌های تغییر موقعیت/تغییر ترتیب خودکارسازی دست یابید. (I4b62d، b/257034719)
  • ‫GridCells.FixedSize را به نسخه پایدار ارتقا دهید. FixedSize یک LazyGrid را تعریف می‌کند که در آن هر سلول اندازه دقیق خود را در محور متقاطع می‌گیرد و فضای باقی‌مانده با چیدمان محور متقاطع توزیع می‌شود. (I8542f)
  • محدوده گیرنده PagerScope برای «صفحه‌بندی» و تابع ابزاری برای محاسبه افست صفحه معین معرفی شد. (If2577)
  • هنگام ایجاد رفتار پرتاب سریع، snapPositionalThreshold را معرفی کنید. از این پارامتر برای مشخص کردن آستانه موقعیتی برای چسبیدن کوتاه در «صفحه‌بندی» استفاده کنید. (If8f7f)
  • ‫SnapLayoutInfoProvider.calculateSnappingOffsetBounds با calculateSnappingOffset جایگزین شد. در این روش جدید، ما به‌سادگی افست بعدی را برای چسبیدن درخواست می‌کنیم. محاسبه حدود باید در سطح پیاده‌سازی انجام شود زیرا ممکن است بسته به نحوه نیاز به چسبیدن متفاوت باشد. (I923a4)
  • ‫LazyStaggeredGrid «میانای برنامه‌سازی کاربردی» به نسخه پایدار ارتقا یافته است. (I633a5)
  • pageCount از Horizontal/VerticalPager حذف می‌شود. این باید در زمان ایجاد وضعیت ارائه شود. ‫PagerState و rememberPagerState به‌روزرسانی شدند تا pageCount را بپذیرند. (Ieb52d، b/266965072)
  • pageCount از Horizontal/VerticalPager حذف می‌شود. این باید در زمان ایجاد وضعیت ارائه شود. ‫PagerState و rememberPagerState به‌روزرسانی شدند تا pageCount را بپذیرند. (Ifa3cb، b/266965072)
  • ‫shortSnapVelocityThreshold را در SnapFlingBehavior Pager معرفی کنید. (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 حاوی این تعهدات است.

این نسخه جدید پشته پردازش نوشتار را برای «نوشتن» فعال می‌کند. پشته جدید برای عملکرد بهینه شده است و نباید تغییرات قابل مشاهده‌ای ببینید.

اگر تغییراتی در نوشتار پردازش‌شده مشاهده کردید، می‌توانید با تنظیم NewTextRendering1_5 = false برای تأیید تفاوت عملکرد اشکال‌زدایی کنید. تنظیم این مورد باعث بازآرایی اجباری می‌شود. لطفاً هرگونه تفاوت در رفتار را به‌عنوان اشکال ثبت کنید.

پرچم اشکال‌زدایی قبل‌از انتشار نسخه بتای 1.5 beta01 برداشته خواهد شد.(Iada23، b/246960758)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی از سلول‌های اندازه ثابت در LazyGrid و چیدن آن‌ها با چیدمان محور متقاطع اضافه شد. (I83ed9، b/235121277، b/267942510)
  • پشتیبانی از ردیف‌های با اندازه ثابت در LazyStaggeredGrid و چیدن آن‌ها با چیدمان محور متقاطع اضافه شد. (I7d519)
  • اکنون می‌توان UrlAnnotation در AnnotatedString را ازطریق خدمات دسترس‌پذیری مثل TalkBack باز کرد. (If4d82، b/253292081)
  • کنش معنایی InsertTextAtCursor را برای فیلدهای نوشتاری اضافه کرد. (I11ed5)
  • کنش‌های آزمایشی مربوط به نوشتار (برای نمونه performTextInput) اکنون به‌جای کلیک کردن روی فیلد، مستقیماً بااستفاده از کنش معنایی درخواست تمرکز می‌کنند. (I6ed05)
  • بااستفاده از verticalArrangement در FlowRow و horizontalArrangement در FlowColumn، از چیدمان/فاصله‌گذاری بین محورها پشتیبانی می‌کند. همچنین verticalAlignment و horizontalAlignment سطح بالا را در FlowRow/FlowColumn برمی‌داریم. توسعه‌دهندگان می‌توانند به‌جای آن از 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • متن و BasicText برای استفاده از سیستم تغییردهنده جدید بازسازی شده است. این کار در بسیاری از موارد منجر به بهبود قابل‌توجه عملکرد می‌شود. هیچ تغییری نباید قابل‌مشاهده باشد. (If1d17، b/246961435)
  • کنش معنایی PerformImeAction برای فراخوانی کنش IME در گره‌های ویرایشگر نوشتار اضافه شد. (Ic606f، b/269633506)

رفع اشکال‌ها

  • بخش‌های داخلی Modifier.hoverable به‌روزرسانی شد. اصلاح‌گر hoverable فقط درصورتی در بازرس نشان داده می‌شود که فعال باشد. (I82103)

نسخه ۱.۴

نسخه ۱.۴.۳

۳ مه ۲۰۲۳

‫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 منتشر شدند. نسخه ۱.۴.۲ شامل این تعهدات است.

نسخه ۱.۴.۱

۵ آوریل ۲۰۲۳

‫androidx.compose.foundation:foundation:1.4.1 و androidx.compose.foundation:foundation-layout:1.4.1 منتشر شدند. نسخه 1.4.1 حاوی این تعهدات است.

نسخه ۱.۴.۰

۲۲ مارس ۲۰۲۳

‫androidx.compose.foundation:foundation:1.4.0 و androidx.compose.foundation:foundation-layout:1.4.0 منتشر شدند. نسخه ۱.۴.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۳.۰

  • ادغام سازگاری «اموجی» به Text و TextField، و همچنین «پاراگراف» سطح پایین‌تر اضافه شد. وقتی emojicompat پیکربندی شده باشد، این ویژگی به‌طور پیش‌فرض فعال است.
  • EmojiCompat را می‌توان بااستفاده از PlatformParagraphStyle در «نوشتار» خاصی پیکربندی کرد.
  • پشتیبانی از گستره خط کامل به LazyStaggeredGrid(I28252) اضافه شد
  • درحال افزودن onHover آزمایشی به ClickableText (I6938f)
  • سربارهای آزمایشی جدیدی برای تابع 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «میانای برنامه‌سازی کاربردی» سطح پایین جدید PlatformTextInputAdapter برای ساختن پیاده‌سازی‌های ورودی نوشتار سفارشی که مستقیماً با «میاناهای برنامه‌سازی کاربردی پلاتفرم» ارتباط برقرار می‌کند معرفی شد. (I58df4)
  • پشتیبانی از چیدمان معکوس را به LazyStaggeredGrid اضافه کنید. (I3ef4a)

رفع اشکال‌ها

  • کنش معنایی SetText متعلق به BasicTextField اکنون بااستفاده از همان مسیر کد به‌روزرسانی‌های 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • کاربرگ جدید Modifier.Node.onReset() اضافه شد که به شما امکان می‌دهد برخی‌از وضعیت‌های محلی را بازنشانی کنید تا درصورتی‌که Layout دوباره استفاده شود (برای مثال به‌عنوان یکی از موارد LazyColumn)، به‌درستی از آن استفاده کنید. FocusTargetModifierNode اصلاح شد تا وضعیت کانونی به‌درستی بازنشانی شود. (I65495, b/265201972)
  • پارامتر BlendMode به روش‌های DrawScope.drawText، Paragraph.paint، و MultiParagraph.paint اضافه شد تا از الگوریتم‌های ترکیب مختلف هنگام رسم نوشتار در «بوم نقاشی» پشتیبانی کند. (I57508)
  • میانای برنامه‌سازی کاربردی modifierElementOf() را برداشت. لطفاً به‌جای آن، مستقیماً از ModifierNodeElement گسترش دهید. (Ie6d21)

رفع اشکال‌ها

  • دستگیره‌های تنظیم انتخاب دیگر نمی‌توانند بخشی از نویسه را انتخاب کنند. (Idedd1)
  • رفع خرابی هنگام فشار دادن ctrl+backspace در TextField خالی (I0427f، b/244185537)

نسخه 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 حاوی این تعهدات است.

ویژگی‌های جدید

  • از نسخه ۱.۳، ادغام سازگاری «اموجی» به Text و TextField، و همچنین «پاراگراف» سطح پایین‌تر اضافه شده است. وقتی emojicompat پیکربندی شده باشد، این ویژگی به‌طور پیش‌فرض فعال است.
  • EmojiCompat را می‌توان بااستفاده از PlatformParagraphStyle در «نوشتار» خاصی پیکربندی کرد.

تغییرات میانای برنامه‌سازی کاربردی

  • پیاده‌سازی مشترک میانای برنامه‌سازی کاربردی PinnableContainer که در همه LazyLayouts استفاده می‌شود اضافه شد تا مواردی که از ترکیب خارج می‌شوند اما همچنان باید فعال باشند حفظ شوند. (If45a4)
  • نام PinnableContainer.PinnedHandle.unpin() به release() تغییر کرد (I4667a)

همیاری خارجی

  • ‫mainAxisItemSpacing دارایی به LazyListLayoutInfo،‏ LazyGridLayoutInfo، و LazyStaggeredGridItemInfo (I52fad) اضافه شد

نسخه 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)
  • درحال افزودن onHover آزمایشی به ClickableText (I6938f)
  • سربارهای آزمایشی جدیدی برای تابع runComposeUiTest و تابع‌های create*ComposeRule که پارامترهای CoroutineContext را می‌پذیرند معرفی شد. از زمینه برای ترکیب آزمایشی و هرگونه تماس LaunchedEffect و rememberCoroutineScope() در ترکیب استفاده خواهد شد. (I10614، b/265177763)

تغییرات میانای برنامه‌سازی کاربردی

  • میاناهای برنامه‌سازی کاربردی پیش/پس از OverscrollEffect را در توابع ترکیبی applyToScroll و applyToFling «تزئین‌کننده» ادغام می‌کند. برای نمونه‌هایی از نحوه پیاده‌سازی جلوه پیمایش اضافی با شکل جدید API، نمونه‌های به‌روزشده را در اسناد ببینید. (I8a9c4، b/255554340)
  • نوع/قابلیت تهی بودن توابع درون‌خط/منسوخ-پنهان بیشتر (I24f91)
  • ‫LineBreak و Hyphens API در TextStyle به وضعیت پایدار ارتقا یافتند. (Ic1e1d)

رفع اشکال‌ها

  • مکان‌نما در فیلدهای نوشتاری اکنون حتی وقتی پویانمایی‌ها غیرفعال است همچنان چشمک می‌زند. (I95e70، b/265177763)
  • اکنون Modifier.basicMarquee حتی زمانی که پویانمایی‌ها در تنظیمات سیستم غیرفعال باشند، پویانمایی می‌شود. (I23389، b/262298306، b/265177763)

همیاری خارجی

  • ‫notifyFocusedRect روش در TextInputSession و TextInputService دیگر منسوخ نیستند. (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)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫FocusRequesterModifier به‌نفع FocusRequesterNode منسوخ شده است (I7f4d7، b/247708726، b/255352203، b/253043481، b/247716483، b/254529934، b/251840112، b/251859987، b/257141589)
  • سازنده AndroidFont با 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)
  • TextMotion آزمایشی به TextStyle اضافه شد تا «نوشتار» را به‌عنوان Static(default) یا «پویانمایی‌شده» تعریف کند. اگر «نوشتار» ازطریق پویانمایی قرار است مقیاس‌بندی، ترجمه، یا چرخانده شود، از TextMotion.Animated استفاده کنید. (I24dd7)
  • ‫TextFieldFocusModifier را اضافه کنید تا رفتار پیمایش کانونی برای پلاتفرم Android اصلاح شود (I00303)
  • متغیر مستقل maxSize: IntSize در drawText با size: Size جایگزین شد تا با دیگر توابع DrawScope هم‌خط شود. ‫size به‌طور پیش‌فرض روی Size.Unspecified تنظیم شده است که نباید رفتار پیش‌فرض قبلی را تغییر دهد. (Icd27d)

رفع اشکال‌ها

  • تنظیمات در فیزیک چسبندگی در SnapFlingBehaviour برای احساس طبیعی‌تر.

مشکل شناخته‌شده

  • هنگام به‌روزرسانی از androidx.compose.foundation:1.4.0-alpha03 به androidx.compose.foundation:1.4.0-alpha04، ممکن است با خطای java.lang.NoSuchFieldError مواجه شوید. اینجا جایی است که مشکل در ابتدا گزارش شده است. اصلاحی ارسال شده است و در به‌روزرسانی بعدی «نوشتن» دردسترس قرار خواهد گرفت. به‌عنوان راهکار موقت، کتابخانه‌های 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • در آزمایش‌های رابط کاربری که از قانون «نوشتن» استفاده می‌کنند، ادامه درطول withFrameNanos تماس برگشتی ازسر گرفته نخواهد شد تا زمانی که همه تماس‌های برگشتی چارچوب اجرا شوند. این با رفتار نوشتن در حالت عادی مطابقت دارد. بااین‌حال، آزمایش‌هایی که به رفتار قدیمی متکی هستند ممکن است ناموفق باشند. این تغییر فقط باید بر کدی که مستقیماً withFrameNanos یا withFrameMillis را فرا می‌خواند تأثیر بگذارد و منطقی خارج از برگشتی که به آن توابع ارسال شده است داشته باشد که ممکن است نیاز باشد به داخل برگشتی‌ها منتقل شود. تغییرات آزمایش پویانمایی را در این CL برای نمونه‌ها ببینید.
  • پارامتر اختیاری onPerformTraversals: (Long) -> Unit به سازنده TestMonotonicFrameClock و تابع کارخانه‌ای اضافه شد تا کد پس‌از withFrameNanos برگشت‌پذیرها اما قبل‌از ازسرگیری روتین‌های هم‌زمان تماس‌گیرندگان اجرا شود. (Idb413،‏ b/254115946،‏ b/222093277،‏ b/255802670)
  • معرفی کنش‌های دسترس‌پذیری «صفحه»: PageUp، PageDown، PageLeft، PageRight. توجه داشته باشید که این موارد فقط از API 29 دردسترس هستند. (Ida4ab)
  • ‫HorizontalPager و VerticalPager را معرفی می‌کنیم، روشی برای نمایش عناصر ترکیبی به‌شیوه «صفحه‌بندی». ‫PagerState برای کنترل «پیجرها» و همچنین پُرسمان اطلاعات درباره وضعیت فعلی «پیجر» معرفی شد. ‫PageSize معرفی شد، روشی برای کنترل اندازه صفحه «صفحه‌بندی»، از این روش می‌توان برای ایجاد گردونه‌ای مثل «صفحه‌بندی» استفاده کرد. ‫PagerSnapDistance معرفی شد، روشی برای کنترل نحوه عملکرد چسباندن در رفتار پرتاب Pager. (I01120)
  • در SnapFlingBehavior.performFling، اضافه بار معرفی شد تا به درک محل استقرار پرتاب کمک کند. (I569f6)
  • ‫OverscrollEffect#isEnabled حذف شد. به‌جای اینکه لازم باشد این پرچم را به‌خاطر بسپارید و تنظیم کنید، کافی است در مواردی که نمی‌خواهید پیمایش اضافی نشان داده شود (برای مثال اگر ScrollableState#canScrollForward/backward هر دو مقدار false برمی‌گردانند)، رویدادها را به اثر پیمایش اضافی ارسال نکنید. (I1a4b0،‏ b/255554340،‏ b/255557085)
  • ‫ScrollableState#canScrollForward و ScrollableState#canScrollBackward به پُرسمان اضافه شد تا بررسی شود آیا ScrollableState در هر دو جهت جا برای پیمایش دارد یا نه (آیا در حداقل / حداکثر محدوده خود قرار دارد یا نه). این مقدار به‌طور پیش‌فرض برای سازگاری با نسخه قدیمی با پیاده‌سازی‌های موجود ScrollableState روی درست تنظیم می‌شود. مصرف‌کنندگان می‌توانند از این برای نشان دادن اینکه هنوز جا برای پیمایش وجود دارد استفاده کنند، و همچنین می‌توان از آن برای جلوگیری از ارسال دلتا به ScrollableStates که در جهت معینی جا برای پیمایش ندارند استفاده کرد تا کار غیرضروری کاهش یابد. (Idf1a0،‏ b/255557085)
  • «میانای برنامه کاربردی اصلاح‌کننده» برای پُرسمان کردن اطلاعات پیمایش اجداد اضافه شد. (I2ba9d، b/203141462)
  • در Clickable استفاده می‌شود تا تعاملات فشار دادن به‌درستی به‌تأخیر بیفتد، زمانی که اشاره‌ها می‌توانند به رویدادهای پیمایش تبدیل شوند.
  • ‫Clickables که هنگام استفاده در Scrollable ViewGroup، موج‌ها را به‌درستی به‌تأخیر نمی‌انداخت، رفع شد.
  • «کشویی‌ها» و «کاربرگ‌نگار» به‌روزرسانی شدند تا فشارها را به‌درستی به‌تأخیر بیندازند تا درصورتی‌که اشاره‌ها بتوانند به رویدادهای پیمایش تبدیل شوند.
  • نام‌گذاری snapStepSize را به‌روز کنید تا با روش‌های دیگر در SnapLayoutInfoProvider سازگار باشد. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫awaitFirstDown و waitForUpOrCancellation اکنون PointerEventPass را برای انعطاف‌پذیری بیشتر می‌پذیرند. (I7579a, b/212091796)
  • برگرداندن beyondBoundCount API از Lazy* APIs (I12197)
  • پارامتر معرفی‌شده در «میاناهای برنامه‌سازی کاربردی تنبل» برای ترکیب و قرار دادن عناصر خارج از نمای دید (I69e89،‏ b/172029355)
  • ‫minLines پارامتر به BasicText و BasicTextField اضافه شد. این امکان را می‌دهد که حداقل ارتفاع این عناصر ترکیبی براساس تعداد خطوط تنظیم شود (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • روش جدیدی، awaitEachGesture()، برای آشکارسازهای اشاره اضافه شد. عملکرد آن مشابه forEachGesture() است، اما حلقه مربوط به اشاره‌ها کاملاً در AwaitPointerEventScope عمل می‌کند، بنابراین رویدادها بین تکرارها ازدست نمی‌روند.
  • ‫forEachGesture() به‌نفع awaitEachGesture() منسوخ شده است زیرا اجازه می‌دهد رویدادها بین اشاره‌ها ازدست بروند. (Iffc3f، b/251260206)
  • ‫WindowInsets.imeAnimationSource و WindowInsets.imeAnimationTarget اضافه شد تا پیشرفت پویانمایی تعیین شود و مشخص شود که پس‌از تکمیل پویانمایی، «ویرایشگر روش ورودی» کجا خواهد بود. (I356f1،‏ b/217770337)

نسخه ۱.۳

نسخه ۱.۳.۱

۹ نوامبر ۲۰۲۲

‫androidx.compose.foundation:foundation:1.3.1 و androidx.compose.foundation:foundation-layout:1.3.1 منتشر شدند. نسخه 1.3.1 شامل این تعهدات است.

رفع اشکال‌ها

  • رفع مشکل عملکرد در BeyondBoundsLayout (aosp/2255266)
  • ‫ContentInViewModifier مختصات چیدمان را نمی‌خواند، مگر اینکه پیوست شده باشد (aosp/2241316)

نسخه ۱.۳.۰

‫۲۴ اکتبر ۲۰۲۲

‫androidx.compose.foundation:foundation:1.3.0 و androidx.compose.foundation:foundation-layout:1.3.0 منتشر شدند. نسخه ۱.۳.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۲.۰

  • نسخه‌های آزمایشی LazyVerticalStaggeredGrid و LazyHorizontalStaggeredGrid معرفی شدند.
  • ‫SnapFlingBehavior،‏ rememberSnapFlingBehavior، و دیگر میاناهای برنامه‌سازی کاربردی مربوطه به‌عنوان آزمایشی اضافه شدند.
  • ‫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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • گزینه‌هایی برای سفارشی‌سازی شکستن خط در «نوشتار» اضافه کنید. (I86907)
  • اکنون BringIntoViewResponder می‌تواند درحین پردازش درخواست، جدیدترین حدود آن را دریافت کند. (If86a5، b/241591211)
  • پشتیبانی از فاصله‌های بین موارد را به Staggered Grid آزمایشی (I10b82) اضافه کنید
  • معرفی بالشتک محتوا به Staggered Grid آزمایشی (I342ea)
  • ‫size:IntSize آرگومان با constraints: Constraints در روش TextMeasurer.measure برای پشتیبانی از محدودیت‌های حداقل عرض تغییر کرد. (I37530، b/242707525)
  • ‫Modifier.withConsumedWindowInsets() اضافه شد تا WindowInsets برای استفاده در خارج از windowInsetsPadding مصرف شود.
  • ‫MutableWindowInsets اضافه شد تا امکان تغییر آسان WindowInsets بدون ترکیب مجدد فراهم شود. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نسخه اولیه StaggeredGrid آزمایشی (Ia48be)
  • نام FocusDirection.In و FocusDirection.Out به FocusDirection.Enter و FocusDirection.Exit تغییر کرد (Ia4262، b/183746982)
  • یک سرریز rememberSnapFlingBehavior معرفی شد که روشی سریع برای فعال کردن چسباندن در LazyLists ارائه می‌دهد. (Ifb48a)
  • کارخانه snapFlingBehavior با کلاس SnapFlingBehavior بتنی جایگزین شد. روش‌های SnapLayoutInfoProvider محدودشده به «تراکم» برای آسان‌تر کردن تبدیل‌های Dp<->Px برای کاربران API. (I54a11)
  • ‫LazyLayoutMeasureScope.measure را به‌روز کنید تا فهرست جای‌گذاری‌ها را برگرداند و بر تغییرناپذیری مقدار برگشتی موردنظر تأکید کند. (I48b7c)
  • ‫SnapLayoutInfoProvider معرفی شد که LazyListState را برای ایجاد نمونه‌ای از SnapLayoutInfoProvider می‌گیرد که می‌تواند برای فعال کردن FlingBehavior چسبنده برای LazyLists استفاده شود. (I2dd10)

رفع اشکال‌ها

  • ‫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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫pointerPosition از OverscrollEffect برداشته شد - جلوه‌هایی که به موقعیت اشاره‌گر اهمیت می‌دهند می‌توانند به‌جای آن از Modifier.pointerInput { } در effectModifier برای دریافت موقعیت اشاره‌گر فعلی استفاده کنند. (I9f606، b/241239306)
  • ‫AwaitPointerEventScope#awaitLongPressOrCancellation به‌عنوان واحد سازنده اضافی برای تشخیص ژست پیچیده‌تر نمایان شد (I04374، b/181577176)
  • ‫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 26+) پشتیبانی می‌کند. (I900dd، b/143703328)
  • پشتیبانی از قلم متغیر در DeviceFontFamilyNameFont (Ic1279، b/143703328)
  • گزارمان آزمایشی از PlatformTextStyle و LineHeightStyle برداشته شد. (I64bef)
  • اکنون وقتی OffsetMapping ارائه‌شده توسط VisualTransformation شاخص‌های نامعتبر برمی‌گرداند، فیلدهای نوشتاری استثناهای دقیق‌تری را ایجاد می‌کنند. (Ie73f9، b/229378536)
  • معرفی میاناهای برنامه‌سازی کاربردی آزمایشی برای هم‌رسانی منطق ارائه‌دهنده مورد بین چیدمان‌های تنبل. (Ic891c)
  • ‫ScrollableDefaults.reverseDirection() دیگر آزمایشی نیست. (Iba646)
  • ‫SemanticsModifier.id منسوخ شد و به‌جای آن، شناسه معناشناسی به LayoutInfo.semanticsId منتقل شد. (Iac808، b/203559524)
  • ‫checkScrollableContainerConstraints() دیگر آزمایشی نیست. (I2c290)
  • ‫Modifier.clipScrollableContainer() دیگر آزمایشی نیست. (Ia2b44)
  • ‫TextInputService.show|hideSoftwareKeyboard منسوخ شود. لطفاً در کد برنامه از SoftwareKeyboardController و در کد مدیریت IME از TextInputSession استفاده کنید. (I14e4c، b/183448615)

نسخه 1.3.0-alpha02

۲۷ ژوئیه ۲۰۲۲

‫androidx.compose.foundation:foundation:1.3.0-alpha02 و androidx.compose.foundation:foundation-layout:1.3.0-alpha02 منتشر شدند. نسخه 1.3.0-alpha02 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • در DrawScope، تابع افزونه drawText اضافه شد تا روشی برای رسم نوشتار چندسبکی در عناصر ترکیبی و اصلاح‌کننده‌هایی که روی DrawScope مثل Canvas و drawBehind عمل می‌کنند ارائه دهد. (I16a62، b/190787898)

رفع اشکال‌ها

  • ازاین‌پس وقتی فیلد نوشتاری درحالت تمرکز غیرفعال می‌شود، صفحه‌کلید مجازی پنهان خواهد شد. (I6e3e4، b/237308379)
  • هنگام افزودن InputEventChange رویداد به «ردیاب سرعت»، اکنون به‌جای موقعیت‌ها، تغییرات را درنظر می‌گیریم. این کار تضمین می‌کند که سرعت در همه موارد به‌درستی محاسبه شود، حتی اگر عنصر هدف حرکت کند (Icea9d، b/216582726، b/223440806، b/227709803)
  • وقتی پیمایش‌پذیری فرزند کانونی داشته باشد، اکنون به‌درستی پیمایش می‌کند تا فرزند کانونی را هنگام کاهش اندازه آن در نمای دید نگه دارد، حتی وقتی اندازه پویانمایی می‌شود. (I80867،‏ b/230756508،‏ b/220119990)
  • وقتی انتخاب فعال است، ازکارافتادن در شرایطی که TextField پاک و دوباره پر می‌شود برطرف شد. (I1235b،‏ b/208655565،‏ b/214253689)

نسخه 1.3.0-alpha01

۲۹ ژوئن ۲۰۲۲

‫androidx.compose.foundation:foundation:1.3.0-alpha01 و androidx.compose.foundation:foundation-layout:1.3.0-alpha01 منتشر شدند. نسخه 1.3.0-alpha01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نوع گزارمان UrlAnnotation و روش‌های مرتبط را برای پشتیبانی از پیوند TalkBack در AnnotatedString معرفی کرد. (I1c754،‏ b/231495122)

رفع اشکال‌ها

  • اکنون BasicTextField cursorBrush می‌تواند بدون بازراه‌اندازی زمان‌سنج مکان‌نما پویانمایی شود. (I812e6، b/236383522)

نسخه ۱.۲

نسخه ۱.۲.۱

۱۰ اوت ۲۰۲۲

‫androidx.compose.foundation:foundation:1.2.1 و androidx.compose.foundation:foundation-layout:1.2.1 منتشر شدند. نسخه ۱.۲.۱ حاوی این تعهدات است.

نسخه ۱.۲.۰

۲۷ ژوئیه ۲۰۲۲

‫androidx.compose.foundation:foundation:1.2.0 و androidx.compose.foundation:foundation-layout:1.2.0 منتشر شدند. نسخه ۱.۲.۰ حاوی این تعهدها است.

تغییرات مهم از نسخه ۱.۱.۰

  • ‫LazyVerticalGrid و LazyHorizontalGrid اکنون پایدار هستند.
  • اکنون می‌توانید نوع محتوایی را برای عناصر موجود در فهرست‌ها و شبکه‌های تنبل مشخص کنید. این کار به عناصر اجازه می‌دهد تا از عناصر به‌طور کارآمدتری استفاده مجدد کنند.
  • فهرست‌ها و جدول‌های تنبل اکنون پارامتر userScrollEnabled دارند که امکان غیرفعال کردن پیمایش ازطریق اشاره‌های کاربر را فراهم می‌کند.
  • یک API آزمایشی جدید به‌نام LazyLayout اضافه شد. این API است که ما به‌صورت داخلی برای پشتیبانی از فهرست‌ها و جدول‌های «تنبل» استفاده می‌کنیم.
  • ‫API ‏OverscrollEffect به‌عنوان آزمایشی معرفی شده است. می‌توانید جلوه‌های پیمایش اضافی سفارشی تعریف کنید و همچنین جلوه پلاتفرم استاندارد را به محتویات پیمایش‌پذیر سفارشی اضافه کنید.
  • میاناهای برنامه‌سازی کاربردی قابلیت همکاری پیمایش تودرتو معرفی شده است تا امکان همکاری بین نماها و عوامل پیمایش Compose فراهم شود.
  • پیمایش با موشواره و صفحه لمسی به همه محتویات پیمایش‌پذیر اضافه شده است.

نسخه 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • OverscrollEffect آزمایشی معرفی شده است تا امکان جلوه‌های پیمایش بیش‌ازحد سفارشی را در کنار Modifier.scrollable سربار که آن را می‌پذیرند فراهم کند.
  • ‫LocalOverScrollConfiguration آزمایشی از foundation.gesture به بسته پایه منتقل شده است و به LocalOverscrollConfiguration تغییر نام داده است (If19fb، b/204650733)
  • میاناهای کتابخانه‌های Compose اکنون بااستفاده از روش‌های میانای پیش‌فرض jdk8 ساخته می‌شوند (I5bcf1)
  • یک api آزمایشی checkScrollableContainerConstraints() معرفی کردیم که امکان بررسی عدم وجود محفظه‌های پیمایش تودرتو را فراهم می‌کند. می‌توانید از آن هنگام ایجاد چیدمان‌های تنبل پیمایش‌پذیر خودتان ازطریق LazyLayout استفاده کنید. (Id6fab, b/233352497)
  • ‫LazyVerticalGrid منسوخ‌شده از بسته androidx.compose.foundation.lazy برداشته شد. میانای برنامه‌سازی کاربردی پایدار جدید در 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫IntervalList و MutableIntervalList آزمایشی جدید اضافه شد. این امکان را می‌دهد که برخی‌از فهرست مقادیر را ازطریق چند بازه نشان دهید. این کار زمانی مفید است که بخواهید dsl خودتان را شبیه به dsl استفاده‌شده توسط LazyColumn تعریف کنید، جایی که عناصر فهرست می‌توانند ازطریق چندین فراخوانی item/items تعریف شوند. (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 حاوی این تعهدها است.

ویژگی‌های جدید

  • این اولین نسخه بتای ۱.۲ است!

تغییرات میانای برنامه‌سازی کاربردی

  • ‫BeyondBoundsInterval آزمایشی اضافه شد که می‌تواند توسط پیاده‌سازی‌های سفارشی LazyList هنگام چیدن موارد فراتر از حدود قابل‌مشاهده استفاده شود (Ifabfb، b/184670295)
  • نام LineHeightBehavior به LineHeightStyle تغییر کرد
  • نام LineVerticalAlignment به LineHeightStyle.Alignment تغییر کرد
  • تغییر نام LineHeightTrim به LineHeightStyle.Trim تغییر نام داد
  • مقادیر سازنده پیش‌فرض از LineHeightStyle برداشته شد (I582bf، b/181155707)
  • مقادیر پیش‌فرض برای اعضای اختیاری رابط LazyLayoutItemProvider اضافه شد. (Iba8a0)
  • در api LazyLayoutItemProvider به‌جای کارخانه‌ای که لامبدای ترکیب‌پذیر را براساس شاخص برمی‌گرداند، اکنون تابع ترکیب‌پذیر ساده‌تری به‌نام Item داریم که شاخص را می‌پذیرد. (Id2196)
  • نام LazyLayoutItemsProvider به LazyLayoutItemProvider تغییر کرد (I0638c)
  • نام LazyLayoutItemsProvider.itemsCount به itemCount تغییر کرد (Id409c)
  • «قلم‌مو» به TextStyle و SpanStyle اضافه شد تا روشی برای ترسیم نوشتار با رنگ‌آمیزی تدریجی ارائه شود. (I53869، b/187839528)
  • ‫trimFirstLineTop،‏ trimLastLineBottom مشخصه LineHeightBehavior به یک شمارش تکی تغییر کرد: LineHeightTrim. ‫LineHeightTrim مقادیر ۴ وضعیت تعریف‌شده با دو مقدار بولی دارد: FirstLineTop،‏ LastLineBottom،‏ «هر دو»، و «هیچ‌کدام» (Ifc6a5،‏ b/181155707)
  • LineHeightBehavior به TextStyle اضافه شد و ParagraphStyle. LineHeightBehavior کنترل می‌کند که آیا ارتفاع خط به بالای خط اول و پایین خط آخر اعمال شود یا نه. همچنین تراز خط را در فضای ارائه‌شده توسط TextStyle(lineHeight) تعریف می‌کند.

    برای مثال، می‌توان رفتاری مشابه آنچه CSS ازطریق LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false) تعریف می‌کند به‌دست آورد.

  • ‫trimFirstLineTop، پیکربندی‌های trimLastLineBottom فقط زمانی درست کار می‌کند که includeFontPadding نادرست باشد. (I97332،‏ b/181155707)

  • اصلاح‌کننده آزمایشی imeNestedScroll() اضافه شد تا توسعه‌دهندگان بتوانند «ویرایشگر روش ورودی» را ازطریق پیمایش کنترل کنند. (I60759)

رفع اشکال‌ها

  • پس‌رفتگی‌ای که در آن فیلدهای نوشتاری هنگام برداشته شدن از ترکیب درحالی‌که متمرکز بودند صفحه‌کلید را پنهان نمی‌کردند رفع شد. (I7a410،‏ b/230536793،‏ b/225541817)
  • وقتی ارتفاع محدود است و همه خطوط متن جا نمی‌شود، از نقطه‌چین پشتیبانی کنید (Ie528c، b/168720622)
  • ‫BringIntoViewRequester.bringIntoView اکنون همیشه تا زمانی‌که درخواست تکمیل شود یا با درخواست جدیدتر و غیرهم‌پوشانی‌کننده قطع شود تعلیق خواهد شد. درخواست‌های هم‌پوشانی در صف قرار می‌گیرند. (I43e7f،‏ b/216790855)
  • اکنون فقط درخواست مستطیل بزرگ‌تر برای BringIntoViewRequester.bringIntoView تماس هم‌زمان برای مستطیل‌هایی که کاملاً هم‌پوشانی دارند اجرا خواهد شد. (I34be7، b/216790855، b/184760918)
  • includeFontPadding پیش‌فرض روشن شد. می‌توانید includeFontPadding را بااستفاده از مشخصه TextStyle.platformTextStyle خاموش کنید. در آینده نزدیک رفتار پیش‌فرض را تغییر خواهیم داد، اما تا آن زمان این کار به ما امکان می‌دهد بهبودهای ارتفاع خط (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • هنگام استفاده از FontFamily.SansSerif، همه وزن‌های دردسترس برای قلم‌های سیستم در Android نمایش داده می‌شود. این کار از نام‌های قلم جایگزین مثل sans-serif-medium به‌صورت داخلی در API 21-28 استفاده می‌کند. این تغییر در رفتار است زیرا قبلاً فقط وزن‌های ۴۰۰ و ۷۰۰ در API 21-28 پشتیبانی می‌شد. (I380fe،‏ b/156048036،‏ b/226441992)
  • اکنون «پاراگراف» و «پاراگراف چندگانه» پارامتر «محدودیت‌ها» را می‌پذیرند. درحال‌حاضر، گذراندن Constraints.maxHeight عملیات بدون اثر است اما در آینده امکان انجام برخی‌از محاسبات را فراهم می‌کند، مثلاً حذف براساس ارتفاع. (I6afee, b/168720622)
  • ‫SubcomposeSlotReusePolicy.getSlotsToRetain() اکنون کلاس سفارشی شبیه MutableSet را می‌پذیرد که اجازه نمی‌دهد موارد جدید به آن اضافه شود. (Icd314)
  • مصرف جزئی (پایین یا موقعیت) در PointerInputChange منسوخ شده است. می‌توانید از consume() برای مصرف کامل تغییر استفاده کنید. می‌توانید از isConsumed برای تعیین اینکه آیا شخص دیگری قبلاً تغییر را مصرف کرده است یا نه استفاده کنید.
  • ‫PointerInputChange::copy() اکنون همیشه کپی سطحی می‌سازد. یعنی وقتی یکی از نسخه‌های PointerInputChange مصرف شود، نسخه‌های دیگر هم مصرف خواهد شد. اگر می‌خواهید PointerInputChange بدون محدودیت ایجاد کنید، به‌جای آن از سازنده استفاده کنید. (Ie6be4، b/225669674)
  • ‫API آزمایشی جدید LazyLayout معرفی شده است. این کار به شما امکان می‌دهد مؤلفه‌های خودتان را مثل LazyColumn از LazyVerticalGrid بسازید. توجه داشته باشید که این 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • میانای برنامه‌سازی کاربردی PinnableParent اضافه شد که به فرزندان چیدمان‌های تنبل اجازه می‌دهد از دور ریخته شدن عناصر ترکیبی فعلی جلوگیری کنند (Ibbdd0، b/184670295)
  • ‫LazyListLayoutInfo و LazyGridLayoutInfo اکنون beforeContentPadding و afterContentPadding فیلد دارند (I3b628،‏ b/200920410)
  • ‫KeyboardType.Decimal به‌عنوان جایگزین Keyboard.Number برای گنجاندن جداکننده اعشاری در «ویرایشگر روش ورودی» اضافه شد. (Iec4c8، b/209835363)
  • توصیفگر قلم جدید Font(DeviceFontFamilyName) را اضافه کنید تا قلم‌های نصب‌شده در سیستم را به‌صورت اختیاری درطول زنجیره‌های قلم جایگزین جستجو کنید. (I30468، b/219754572)
  • ‫PointerEventType.Scroll و PointerEvent.scrollDelta اکنون میاناهای برنامه‌سازی کاربردی پایدار هستند (I574c5،‏ b/225669674)
  • پیکربندی سازگاری موقت برای includeFontPadding در TextStyle/ParagraphStyle. includeFontPadding اضافه شد. این پیکربندی را می‌توانید ازطریق TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) تغییر دهید. این گزینه پیکربندی موقتی برای فعال کردن انتقال است و برداشته خواهد شد. (If47be، b/171394808)
  • ‫FontFamily.Resolver برای ادغام تنظیمات دسترس‌پذیری نوشتار پررنگ در کل سیستم (I6c1e7) به‌روزرسانی شد
  • دارایی افزونه consumeWindowInsets در ComposeView به توسعه‌دهندگان امکان می‌دهد مصرف 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫RequestFocus کنش معنایی به درخواست تمرکز روی هدف قابل‌تمرکز اضافه شد. (I17b71)
  • ‫FocusOrder اکنون در FocusProperties ادغام شده است و focusProperties() اکنون همه قابلیت‌های focusOrder() را دارد. ‫FocusOrder و focusOrder() منسوخ شده‌اند. ‫focusOrder() که focusRequester را می‌پذیرد باید با اصلاح‌گر focusRequester() در ترکیب با focusProperties() جایگزین شود. این کار به اصلاح‌کننده‌ها اجازه می‌دهد تا نگرانی‌هایشان را بهتر تفکیک کنند. (I601b7)
  • ‫WindowInsets.asPaddingValues(Density) اضافه شد تا توسعه‌دهندگان بتوانند بدون نیاز به حضور در ترکیب، تبدیل را انجام دهند. (I94c35)
  • تجزیه به‌روزشده داراها برداری برای پشتیبانی از قرینه‌سازی خودکار برای برگرداندن محتوای VectorPainter درصورتی‌که جهت چیدمان کنونی راست‌به‌چپ باشد. (I79cd9, b/185760237)

رفع اشکال‌ها

  • اگر اندازه ناحیه پیمایش تغییر کند و عنصر ترکیبی کانونی قبلاً نمایان بوده باشد، اصلاح‌کننده‌های پیمایش (Modifier.verticalScroll()،‏ Modifier.horizontalScroll()، و Modifier.scrollable()) اکنون پیمایش می‌کنند تا عنصر ترکیبی کانونی نمایان بماند.
  • وقتی TextFields در حالت کانونی قرار می‌گیرند و صفحه‌کلید نشان داده می‌شود، اکنون در داخل پیمایش‌پذیر غیرتنبل و در حالت ورودی نرم 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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)
  • میانای برنامه‌سازی کاربردی LazyVerticalGrid جدیدی برای تعریف اندازه‌های محور متقاطع اضافه شد (I17723)
  • «اصلاح‌گر گروه کانونی» اضافه شد (I64bc0،‏ b/213508274،‏ b/184670295)

رفع اشکال‌ها

  • ‫WindowInsets.toString() اکنون مقادیر صحیح را نشان خواهد داد. (I1585d)

همیاری خارجی

  • برای استفاده از روال‌های مشترک Kotlinx نسخه ۱.۶.۰ به‌روز شد (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • BringIntoViewRespondersدیگر لازم نیست درخواست‌ها را به‌صورت دستی به پاسخ‌دهندگان ولی ارجاع دهند و درعوض باید مستطیلی را که می‌خواهند ولی‌شان به دید بیاورد فوراً برگردانند. (I8e66a)
  • پشتیبانی از بار کردن غیرهم‌زمان قلم در «نوشتار» (I77057، b/214587005)
  • ‫LazyVerticalGrid اکنون از line breaking قبل‌از مواردی که گستره آن‌ها در خط فعلی جا نمی‌شود پشتیبانی می‌کند. (I05c40، b/207462103)
  • نام excludeFromSystemGestures به systemGesturesExclusion تغییر کرد (I19526)
  • ‫LazyVerticalGrid اکنون از reverseLayout پشتیبانی می‌کند. (I6d7d7،‏ b/215572963،‏ b/211753558)
  • روش WindowInsets.only() را اضافه کنید تا به توسعه‌دهندگان اجازه دهید فقط ابعاد WindowInsets را اضافه کنند. (I14c94، b/217768486)
  • ‫ComposableTarget،‏ ComposableTargetMarker، و ComposableOpenTarget اضافه شد که گزارش زمان ترجمه را برای زمانی که یک تابع ترکیب‌پذیر با هدف یک اعمال‌کننده فراخوانده می‌شود که برای استفاده از آن طراحی نشده است امکان‌پذیر می‌کند.

    در بیشتر موارد، حاشیه‌نویسی‌ها را می‌توان از افزایه کامپایلر compose استنباط کرد، بنابراین استفاده مستقیم از این حاشیه‌نویسی‌ها باید نادر باشد . مواردی که نمی‌توانند استنباط شوند شامل ایجاد و استفاده از اعمال‌کننده سفارشی، توابع ترکیبی انتزاعی (مثل روش‌های واسط)، فیلدها یا متغیرهای سراسری که لامبداهای ترکیبی هستند (متغیرهای محلی و پارامترها استنباط می‌شوند)، یا هنگام استفاده از ComposeNode یا توابع ترکیبی مرتبط می‌شود.

    برای اعمال‌کننده‌های سفارشی، توابع ترکیبی که ComposeNode یا ReusableComposeNode را فراخوانی می‌کنند باید حاشیه‌نویسی CompoableTarget را برای تابع و هر نوع پارامتر لامبدای ترکیبی اضافه کنند. بااین‌حال، توصیه می‌شود یک گزارمان ایجاد کنید که با ComposableTargetMarker گزارمان‌گذاری شده باشد و سپس از گزارمان علامت‌گذاری‌شده به‌جای ComposableTarget مستقیماً استفاده شود. یک گزارمان ترکیبی علامت‌گذاری‌شده با ComposableTargetMarker معادل ComposbleTarget با نام کاملاً واجدشرایط کلاس مشخصه به‌عنوان پارامتر اعمال‌کننده است. برای نمونه‌ای از استفاده از ComposableTargetMarker، به anroidx.compose.ui.UiComposable مراجعه کنید. (I38f11)

رفع اشکال‌ها

  • اکنون اجازه داده می‌شود که جابه‌جایی‌های پیمایش منفی به LazyGridState.scrollToItem() و LazyGridState.animateScrollToItem() منتقل شود. (I025c6، b/211753558)
  • پشتیبانی از بار کردن غیرهم‌زمان قلم برای «فیلد نوشتاری». (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫notifyFocusedRect روش در TextInputSession و ‫TextInputService اکنون منسوخ شده‌اند و فراخوانی نخواهند شد. درعوض از BringIntoViewRequester استفاده کنید. (Ia4302، b/192043120، b/216842427، b/178211874)
  • پویانمایی‌ها برای عناصر شبکه‌های تنبل با «اصلاح‌گر.animateItemPlacement()» فعال شدند. (Ib6621، b/211753218)
  • ‫BringIntoViewRequester اکنون درخواست‌ها را به «نمای Android» میزبانی‌شده ارسال می‌کند. (Ia7a51)
  • ‫FontFamilyResolver اکنون ازطریق LocalFontFamilyResolver.current دردسترس است
    • ‫createFontFamilyResolver(context) و createFontFamilyResolver(context, coroutineScope) برای ایجاد حل‌کننده‌های FontFamily جدید خارج از کاربرد Compose اضافه شد.
    • اکنون «پاراگراف» و «چندپاراگراف» FontFamily.Resolver را می‌پذیرند
    • اکنون TextLayoutResult.layoutInput.fontFamilyResolver حاوی حل‌کننده‌ای است که برای این چیدمان استفاده می‌شود، TextLayoutResult.layoutInput.resourceLoader منسوخ شده است زیرا دیگر استفاده نمی‌شود. (Id5a45، b/174162090)
  • ‫AndroidFont، میانای برنامه‌سازی کاربردی سطح پایین جدیدی برای ارائه انواع جدید توصیف‌گرهای منبع قلم در Android اضافه شد. برای مثال، بار کردن قلم‌ها از پشتیبان ویژه برنامه، به‌صورت اختیاری مکان‌یابی قلم‌های ازپیش نصب‌شده در دستگاه، یا بار کردن قلم از منبعی که کارخانه‌های قلم فعلی ارائه نمی‌دهند.
    • میانای برنامه‌سازی کاربردی Font.ResourceLoaded گسترش یافت تا از بارگیری اختیاری و ناهم‌زمان قلم پشتیبانی کند. توصیه نمی‌شود که توسعه‌دهندگان برنامه از این 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)
  • اکنون می‌توانید نوع محتوا را برای عناصر تابع‌های item/items در LazyColumn/LazyRow مشخص کنید - تابع‌های LazyListScope اکنون چنین پارامتری را می‌پذیرند. ارائه چنین اطلاعاتی به منطق استفاده مجدد از ترکیب مورد کمک می‌کند تا کارآمدتر شود و فقط محتوای بین موارد از نوع مشابه را مجدداً استفاده کند. (I26506)
  • سازنده SubcomposeLayoutState که maxSlotsToRetainForReuse را می‌پذیرد اکنون منسوخ شده است. درعوض، سازنده جدیدی وجود دارد که SubcomposeSlotReusePolicy را می‌پذیرد - میانای جدیدی که امکان کنترل دقیق‌تری را بر اینکه کدام جایگاه‌ها باید برای استفاده مجدد در آینده حفظ شوند فراهم می‌کند. (I52c4d)
  • «اصلاح‌گرها» را برای «درون‌برهای پنجره» اضافه می‌کند، هم برای لایه‌گذاری و هم برای اندازه‌گیری. این کار باعث می‌شود برخی‌از محتواها به ناحیه حاشیه‌دار گسترش یابند، و همچنان محتوای اصلی در ناحیه حاشیه‌دار باقی بماند. برای مثال، از windowInsetsPadding می‌توان برای بالشتک‌گذاری ناحیه محتوا استفاده کرد تا از نواحی‌ای که ممکن است به‌طور کامل یا جزئی پوشیده شوند اجتناب شود. (Id0395، b/213942085)

رفع اشکال‌ها

  • اکنون وقتی فیلدهای نوشتاری کانونی می‌شوند و صفحه‌کلید نشان داده می‌شود، در بالای صفحه‌کلید نگه داشته می‌شوند، وقتی حالت ورودی نرم ADJUST_PAN باشد. (I8eaeb، b/190539358، b/192043120)
  • رایانه از ترکیب محلی برای FontFamily.Resolver استفاده می‌کند
    • ‫Desktop 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫NonRestartableComposable به روش‌هایی که سربار هستند از روش‌های موجود بدون منطق پیچیده اضافه شد. این کار بررسی‌های حافظه‌سازی تولیدشده توسط گردآورنده (برابری) را برای همه پارامترهایی که در تابع داخلی فراخوانده‌شده تکرار می‌شوند کاهش می‌دهد. (I90490)
  • ‫excludeFromSystemGesture «اصلاح‌کننده» برای دسترسی آسان به setSystemGestureExclusionRects در Android اضافه شد (I46f07)

رفع اشکال‌ها

  • عملکرد ذره‌بین انتخاب نوشتار بهبود یافته است تا با ذره‌بین پلاتفرم مطابقت داشته باشد. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پارامتر جدید userScrollEnabled به LazyColumn، LazyRow، و LazyVerticalGrid اضافه شد تا به کاربران امکان دهد پیمایش آغازشده توسط کاربر را ازطریق اشاره‌های لمسی یا کنش‌های دسترس‌پذیری به‌طور موقت یا دائمی غیرفعال کنند. پیمایش برنامه‌ریزی‌شده ازطریق روش‌های موجود در وضعیت همچنان مجاز خواهد بود. (I7eae9, b/201150093)
  • ‫onSizeChanged تماس برگشتی به اصلاح‌گر ذره‌بین اضافه کنید. (I6879f)
  • ابزاره ذره‌بین اکنون هنگام کشیدن دسته‌های انتخاب در SelectionContainer نشان داده می‌شود. (I30b38، b/139320979)

رفع اشکال‌ها

  • رفع مشکل پنهان نشدن دستگیره مکان‌نمای TextField هنگام پیمایش خارج از نما. (I14552، b/208883748)

به‌روزرسانی‌های وابستگی

  • اکنون به Kotlin 1.6.10 بستگی دارد.

نسخه ۱.۱

نسخه ۱.۱.۱

۲۳ فوریه ۲۰۲۲

‫androidx.compose.foundation:foundation:1.1.1 و androidx.compose.foundation:foundation-layout:1.1.1 منتشر شدند. نسخه ۱.۱.۱ حاوی این تعهدات است.

رفع اشکال‌ها

  • رفع اشکال NullPointerException در androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059،‏ b/206677462)
  • رفع خرابی ناشی از محتوای بریده‌دان هنگام خواندن از بریده‌دان در Android. (I06020, b/197769306)
  • رفع مشکل راست‌به‌چپ در LazyVerticalGrid (aosp/1931080،‏ b/207510535)

نسخه ۱.۱.۰

۹ فوریه ۲۰۲۲

‫androidx.compose.foundation:foundation:1.1.0 و androidx.compose.foundation:foundation-layout:1.1.0 منتشر شدند. نسخه ۱.۱.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۰.۰

  • پشتیبانی پایدار از جلوه پیمایش اضافی در Android 12
  • بهبودهایی در اندازه هدف لمسی
  • توجه داشته باشید که درخصوص «نوشتن ۱.۰»، عناصر Material فضای چیدمان خود را گسترش خواهند داد تا با دستورالعمل‌های دسترس‌پذیری Material برای اندازه هدف لمسی مطابقت داشته باشند. برای مثال، هدف لمسی «دکمه» به حداقل اندازه ۴۸×۴۸ پیکسل مستقل از تراکم گسترش خواهد یافت، حتی اگر اندازه «دکمه» را کوچک‌تر تنظیم کنید. این کار باعث می‌شود Compose Material با رفتار یکسان «عناصر طراحی سه‌بعدی» هماهنگ شود و درصورت ترکیب کردن «نماها» و Compose، رفتار یکسانی ارائه دهد. این تغییر همچنین تضمین می‌کند که وقتی میانای کاربر خود را بااستفاده از عناصر Compose Material ایجاد می‌کنید، حداقل الزامات دسترسی‌پذیری هدف لمسی برآورده شود.
  • پشتیبانی پایدار برای ریل پیمایش
  • تعدادی از میاناهای برنامه‌سازی کاربردی آزمایشی قبلی را به پایدار ارتقا می‌دهد
  • پشتیبانی از نسخه‌های جدیدتر Kotlin

نسخه 1.1.0-rc03

‫۲۶ ژانویه ۲۰۲۲

‫androidx.compose.foundation:foundation:1.1.0-rc03 و androidx.compose.foundation:foundation-layout:1.1.0-rc03 منتشر شدند. نسخه 1.1.0-rc03 حاوی این تعهدات است.

رفع اشکال‌ها

  • به‌روزرسانی‌شده برای پشتیبانی از Compose Material نسخه 1.1.0-rc03

نسخه 1.1.0-rc01

۱۵ دسامبر ۲۰۲۱

‫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

تغییرات میانای برنامه‌سازی کاربردی

  • پاک‌سازی قابلیت تهی بودن در androidx.core.view(I7078a، b/204917439)
  • میاناهای برنامه‌سازی کاربردی آزمایشی اضافه شده است که امکان مصرف 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی از فاصله‌های افقی به LazyVerticalGrid اضافه شد. (I7e2fa, b/176758183)
  • قابلیت آزمایشی برای پویانمایی موقعیت‌های مورد «فهرست‌های تنبل» اضافه شد. اصلاح‌گر جدیدی به‌نام Modifier.animateItemPlacement() در LazyItemScope دردسترس است. نمونه استفاده:

      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» آزمایشی اضافه شد که به شما امکان می‌دهد درخواستی به والدین ارسال کنید تا آن‌ها پیمایش کنند و محصول را به نمای دید بیاورند (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» آزمایشی اضافه شد که به شما امکان می‌دهد درخواستی به والدین ارسال کنید تا آن‌ها پیمایش کنند و محصول را به نمای دید بیاورند (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • یک سربار بدون فرزند برای «چیدمان» اضافه شد که کارایی را بهبود می‌بخشد (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

رفع اشکال‌ها

  • پشتیبانی از دسترس‌پذیری برای پیمایش‌پذیرها (هم تنبل و هم غیرتنبل) درخصوص پیمایش (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫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)

تغییرات میانای برنامه‌سازی کاربردی

  • جلوه درخشش برای پیمایش اضافه شد. «میانای برنامه‌سازی کاربردی» آزمایشی جدیدی به‌نام OverScrollConfiguration اضافه شده است که امکان پیکربندی جلوه دیداری پیمایش اضافی را فراهم می‌کند. برای خاموش کردن جلوه پیمایش اضافی، مقدار 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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • نسخه‌های DpSize برای Modifier.size و requiredSize اضافه شد (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • روش 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

نسخه ۱.۰.۵

۳ نوامبر ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.5 و androidx.compose.foundation:foundation-layout:1.0.5 منتشر شدند. نسخه ۱.۰.۵ حاوی این تعهدات است.

رفع اشکال‌ها

  • ازکارافتادگی ردیابی نمونه‌های derivedStateOf برطرف شد. (aosp/1792247)

نسخه ۱.۰.۴

‫۱۳ اکتبر ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.4 و androidx.compose.foundation:foundation-layout:1.0.4 منتشر شدند. نسخه 1.0.4 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.31 وابسته باشد

نسخه ۱.۰.۳

۲۹ سپتامبر ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.3 و androidx.compose.foundation:foundation-layout:1.0.3 منتشر شدند. نسخه 1.0.3 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.30 وابسته باشد

نسخه ۱.۰.۲

۱ سپتامبر ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.2 و androidx.compose.foundation:foundation-layout:1.0.2 منتشر شدند. نسخه 1.0.2 حاوی این تعهدات است.

برای پشتیبانی از نسخه 1.0.2 «نوشتن» به‌روز شد. ‫Compose 1.0.2 همچنان با Kotlin 1.5.21 سازگار است.

نسخه ۱.۰.۱

۴ اوت ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.1 و androidx.compose.foundation:foundation-layout:1.0.1 منتشر شدند. نسخه 1.0.1 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.21 وابسته باشد.

نسخه ۱.۰.۰

۲۸ ژوئیه ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.0 و androidx.compose.foundation:foundation-layout:1.0.0 منتشر شدند. نسخه ۱.۰.۰ حاوی این تعهدات است.

ویژگی‌های اصلی نسخه 1.0.0

این اولین نسخه پایدار «نگارش» است. برای جزئیات بیشتر، لطفاً وبلاگ رسمی «نسخه آماده‌سازی» را ببینید!

مشکلات شناخته‌شده

  • اگر از 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)"
    

    برای رفع این مشکل، به‌طور موقت minSdkVersion را در فایل build.gradle به ۲۴ یا بالاتر افزایش دهید. این مشکل در نسخه بعدی 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون «بوم» از پارامتر 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫ManualFrameClock حذف شد. اگر نیاز دارید پویانمایی‌ها را کنترل کنید، به‌جای آن از composeTestRule.mainClock استفاده کنید. (I3c3e8, b/189951065)
  • تغییر enum «نقش» و «حالت منطقه زنده» به کلاس‌های درون‌خطی با سازنده خصوصی (Id1890)
  • ‫KeyboardCapitalization به کلاس درون‌خطی تبدیل می‌شود. (Id5a1c)
  • ‫TextOverflow به کلاس به‌خط تغییر می‌کند. (I433af)

رفع اشکال‌ها

  • اکنون وقتی کلیدهای یکتای عناصر LazyColumn/Row را مشخص می‌کنید، موقعیت پیمایش براساس کلید حفظ می‌شود، یعنی اگر عناصر را قبل‌از عنصر نمایان کنونی اضافه/حذف کنید، عنصر دارای کلید داده‌شده به‌عنوان اولین عنصر نمایان حفظ خواهد شد. (Id263f،‏ b/184257857)
  • ثابت‌های کلیدی درحال‌حاضر @ExperimentalComposeUiApi است. کد مصرف‌کننده می‌تواند ثابت‌های خصوصی را قبل‌از پایدارسازی اعلام کند. (Ia5d48)
  • ‫IdlingStrategy به AndroidComposeTestRule اضافه شد که چارچوب‌های آزمایش می‌توانند از آن برای نصب سازوکار جایگزین برای انتظار یا رسیدن به حالت سکون استفاده کنند. از 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

قوانین نمایه چیست؟

  • قوانین نمایه برای کتابخانه در فایل نوشتاری baseline-prof.txt واقع در src/main یا مسیر معادل آن مشخص شده است. فایل در هر خط یک قانون را مشخص می‌کند، که در این مورد قانون الگویی برای مطابقت با روش‌ها یا کلاس‌ها در کتابخانه است. نحو این قوانین مجموعه‌ای از قالب نمایه‌خوانا برای انسان 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> امضای روش است و شامل نام، انواع پارامتر، و انواع برگشتی روش می‌شود. برای مثال، روش fun isPlaced(): Boolean در LayoutNode امضای 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 حاوی این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • شمارش NestedScrollSource با کلاس به‌خط جایگزین می‌شود. (Ie321b،‏ b/187055290)
  • استفاده‌های شمارشی را به کلاس‌های درون‌خطی تغییر دادیم تا از مشکلات مربوط به دستورات جامع when هنگام اضافه شدن مقادیر شمارشی جدید جلوگیری کنیم. (I2b5eb)
  • برای جلوگیری از نمایش موج درحین پیمایش / کشیدن، زمان وقفه برای ضربه به عناصر کلیک‌کردنی / قابل‌تغییر اضافه می‌کند (Ia2704، b/168524931)
  • خواص معنایی «شرح محتوا» و «نوشتار» دیگر مقادیر واحد نیستند بلکه فهرست هستند. این کار باعث می‌شود آن‌ها به‌جای اینکه به‌هم متصل شوند، به‌هم ادغام شوند. همچنین میاناهای برنامه‌سازی کاربردی آزمایش بهتری برای استفاده از این تغییرات ارائه شده است (Ica6bf، b/184825850)
  • ‫Modifier.focusModifier() منسوخ شده است و با Modifier.focusTarget() (I6c860) جایگزین شده است
  • enum‏ KeyboardType با کلاس درون‌خطی جایگزین شده است. (I73045، b/187055290)
  • ‫FocusState enum با رابط FocusState جایگزین شد (Iccc1a،‏ b/187055290)
  • عدد ثابت ImeAction با کلاس به‌خط جایگزین می‌شود. (I18be5،‏ b/187055290)
  • ‫AnnotatedString.withAnnotation تابع اکنون به‌جای ExperimentalComposeApi،‏ ExperimentalTextApi است. (I0cd0a)
    • سازنده TextUnit با TextUnitType اکنون به‌جای ExperimentalComposeApi،‏ ExperimentalTextApi است.
  • ‫PaddingValues اکنون @Stable است به‌جای @Immutable (I88c50)

رفع اشکال‌ها

  • رفع خرابی‌های ناشی از فشار طولانی روی فضای خالی در نوشتار غیرخالی. (I33ab5،‏ b/187437299)
  • نمایش «نوارابزار» پس‌از «انتخاب همه» (I495d9، b/185919613)
  • رفع مشکل برش خوردن فرزندان محتویات پیمایش‌پذیر در محور متقاطع. اگر LazyRow با عناصر Card داشته باشید، به‌راحتی قابل‌تولید مجدد بود. اکنون سایه برش داده نخواهد شد. (Icb635، b/186318448)
  • مشکلی برطرف شد که در آن، هنگام استفاده از Modifier.combinedClickable، موج‌ها / نشانگرهای دیگر گاهی در کلیک طولانی گیر می‌کردند (I2298c، b/186223077)
  • اکنون detectDragGesures، detectVerticalGestures، و detectHorizontalGestures تغییر موقعیت را به‌طور خودکار مصرف می‌کنند و نیازی به فراخوانی change.consumePositionChange در برگشتی‌های onDrag نیست (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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • منطق پیش‌دریافت عنصر نمایان بعدی برای LazyColumn/Row (I8a4bc، b/184940225) معرفی شده است
  • دستگیره انتخاب کلیپ اضافه شد (Iff80d، b/183408447)

رفع اشکال‌ها

  • ‫LazyColumn/Row اکنون حداکثر ۲ مورد قبلاً نمایان را حتی وقتی که قبلاً پیمایش شده‌اند فعال (دور ریخته نشده) نگه می‌دارد. این کار به عنصر امکان می‌دهد وقتی نیاز به ساختن عنصر جدیدی داریم از ترکیب‌های فرعی فعال دوباره استفاده کند که باعث بهبود عملکرد پیمایش می‌شود. (Ie5555)
  • ‫paintBackground را بردارید. (I38660)
  • «پس‌زمینه انتخاب طراحی» را بااستفاده از DrawScope طراحی کنید. (I73c61, b/186674472)
  • یک رگرسیون beta06 که بر «ردیف/ستون» بااستفاده از چیدمان‌های spacedBy برای چیدن فرزندان وزن‌دار تأثیر می‌گذاشت برطرف شد. (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 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • حل تعارض با اشاره پیمایش (I1145e)
  • میاناهای برنامه‌سازی کاربردی دسترس‌پذیری CollectionInfo و CollectionItemInfo اضافه شد که امکان علامت‌گذاری مجموعه و موارد آن را برای خدمات دسترس‌پذیری فراهم می‌کند (Id54ef،‏ b/180479017)
  • ‫SemanticsActions.ScrollToIndex برای پیمایش فهرست با موارد نمایه‌گذاری‌شده به مورد با نمایه‌ای خاص، و SemanticsProperties.IndexForKey برای دریافت نمایه‌ای از مورد در فهرست با موارد کلیددار اضافه شد. هر دو کنش توسط LazyList پیاده‌سازی می‌شوند.
    • ‫SemanticsNodeInteraction.performScrollToIndex اضافه شد که فهرستی را به نمایه داده‌شده پیمایش می‌کند، و SemanticsNodeInteraction.performScrollToKey که فهرستی را به مورد با کلید داده‌شده پیمایش می‌کند. (I4fe63، b/178483889، b/161584524)
  • ‫AnnotatedString از ذخیره کردن در TextFieldValue.Saver پشتیبانی می‌کند. کارکردهای کمکی addTtsAnnotation و withAnnotation به AnnotatedString.Builder اضافه شد (I8cbdc، b/178446304)
  • مقادیر پارامتر پیش‌فرض 0.dp به PaddingValues(horizontal, vertical) اضافه شد (I05571، b/181336792)

رفع اشکال‌ها

  • فرزندان «ردیف و ستون» با weight(fill = false) دیگر باعث نمی‌شوند که عنصر والد کل فضای محور اصلی دردسترس را پر کند. (Ied94d،‏ b/186012444،‏ b/184355105)

نسخه 1.0.0-beta05

۲۱ آوریل ۲۰۲۱

‫androidx.compose.foundation:foundation:1.0.0-beta05 و androidx.compose.foundation:foundation-layout:1.0.0-beta05 منتشر شدند. نسخه 1.0.0-beta05 حاوی این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون رابط FlingBehavior به‌عنوان ‎ @Stable علامت‌گذاری شده است. همه پیاده‌سازی‌ها باید از قرارداد @Stable پیروی کنند. (I93354، b/184830577)

رفع اشکال‌ها

  • عمل‌های پیمایش‌پذیری ACTION_SCROLL_FORWARD،‏ ACTION_SCROLL_BACKWARD، accessibilityActionScrollLeft،‏ accessibilityActionScrollUp، accessibilityActionScrollRight، و accessibilityActionScrollDown ثابت شد. به‌جای پیمایش تا انتهای پیمایش‌پذیر، اکنون در جهت داده‌شده یک صفحه پیمایش می‌کند. (Ieccb0)
  • فایل‌های AndroidManifest از ui-test-manifest و ui-tooling-data اکنون با 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام hideSoftwareKeyboard و showSoftwareKeyboard در SoftwareKeyboardController را به‌ترتیب به hide() و show() تغییر دهید.
    • ارائه میانای کامل CompositionLocal برای LocalSoftwareKeyboardController، که امکان تنظیم آن را فراهم می‌کند (به‌ویژه در آزمایش‌ها مفید است) (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")
      }
    }
    

    پیش‌از این تغییر، تابع ترکیب‌پذیر ShowCount همیشه رد می‌شد، حتی پس‌از به‌روزرسانی پارامتر count. این دیگر مورد نیست. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫DefaultMonotonicFrameClock منسوخ شده است. فراخوانی withFrameNanos یا Recomposer.runRecomposeAndApplyChanges بدون MonotonicFrameClock اکنون IllegalStateException را ایجاد می‌کند. (I4eb0d)

رفع اشکال‌ها

  • اکنون حتی وقتی سرعت ۰ است FlingBehavior.performFling() فراخوانی می‌شود (I0b6e5، b/181237123)

نسخه 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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • بهینه‌سازی‌های کوچک متعددی به منطق اندازه‌گیری LazyColumn اضافه شد (Ic6889)
  • ترکیب جدید LocalSoftwareKeyboardController محلی API برای جایگزینی رابط قبلی «کنترل‌کننده صفحه‌کلید نرم‌افزاری» در TextField اضافه شد. (I5951e، b/168778053)
  • ترکیب جدید LocalSoftwareKeyboardController محلی API برای جایگزینی رابط قبلی «کنترل‌کننده صفحه‌کلید نرم‌افزاری» در TextField اضافه شد. (I84472، b/168778053)

رفع اشکال‌ها

  • اعمال محدودیت‌ها بر استفاده عمومی از میاناهای برنامه‌سازی کاربردی آزمایشی (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 است.

تغییرات میانای برنامه‌سازی کاربردی

  • onStart برگشت تماس به detectDragGestures (I67269، b/179995594) اضافه شد
  • اصلاح‌کننده‌های اندازه‌گیری براساس ویژگی‌های ذاتی دیگر آزمایشی نیستند. (I15744)
  • ادعاهای dp برداشته شد (I798d2)
  • کاربرگ «کنترل‌کننده صفحه‌کلید نرم‌افزاری» از همه فیلدهای نوشتاری برداشته شد تا به‌زودی با API جدیدی جایگزین شود. (Iae869، b/168778053)
  • نام MeasureBlocks به MeasurePolicy تغییر کرد که به یک رابط کاربری سرگرم‌کننده تبدیل شد. «میاناهای برنامه‌سازی کاربردی چیدمان» به‌روزرسانی / ساده‌سازی شد تا از MeasurePolicy استفاده کند. (Icab48، b/167662468، b/156751158)
  • ‫InteractionState با [Mutable]InteractionSource جایگزین شد
    • واسط‌ها مسئول انتشار / جمع‌آوری رویدادهای «تعامل» هستند.
    • به‌جای انتقال interactionState = remember { InteractionState() } به عناصری مثل Button و Modifier.clickable()، از 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)
  • ‫TextInputSession جدیدی برای جلسه‌های ورودی از عناصر نوشتاری سطح پایین مثل CoreTextField ایجاد شد. (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)

  • اکنون defaultFactory برای compositionLocalOf و staticCompositionLocalOf به‌جای اختیاری الزامی است.

    این تغییر خطای نوع احتمالی را برای انواع غیرقابل‌تهی که کارخانه پیش‌فرضی برای آن‌ها ارائه نشده است برطرف می‌کند. قبلاً این کار برای نوع غیرقابل‌تهی مرجع تهی ارائه می‌کرد.

    برای انواع تهی‌شدنی، { null } را به‌عنوان کارخانه پیش‌فرض ارائه دهید.

    توصیه نمی‌کنیم از متغیرهای محلی با انواع غیرتهی استفاده کنید، مگر اینکه پیش‌فرض معقولی ارائه شود. اگر پیش‌فرض منطقی وجود نداشته باشد، تابع defaultFactory باید استثنا ایجاد کند. بااین‌حال، پرتاب استثنا به این معنی است که مصرف‌کنندگان محلی وابستگی ضمنی به ارائه آن دارند که توسط سیستم نوع اجباری نیست. (Ifbd2a)

  • ‫Indication#createIndication() را به Indication#rememberUpdatedIndication(InteractionState) تغییر می‌دهد و پارامتر InteractionState را از IndicationInstance#drawIndication() برمی‌دارد. ‫IndicationInstance فقط باید مسئول رسم جلوه‌های دیداری باشد و نه راه‌اندازی پویانمایی‌ها / نوشتن وضعیت در پاسخ به تغییرات InteractionState. این پویانمایی‌ها و نوشتن‌های وضعیت باید در rememberUpdatedIndication() انجام شود. پارامتر indication در Modifier.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)

  • نام «ارائه‌دهندگان» به CompositionLocalProvider تغییر کرده است

    • سازنده «ترکیب» دیگر پارامتر کلید را نمی‌پذیرد و منسوخ شده است.
    • ‫currentCompositeKeyHash به‌جای تابع سطح بالای ترکیب‌شدنی به دارایی سطح بالای ترکیب‌شدنی تبدیل شده است.
    • ‫CompositionData و CompositionGroup به فضای نام androidx.compose.runtime.tooling منتقل شده‌اند
    • ‫ComposableLambda به‌جای کلاس عینی به یک رابط تبدیل شده است و دیگر پارامترهای نوع ندارد.
    • ‫ComposableLambdaN به‌جای کلاس عینی به یک میانای تبدیل شده است و دیگر پارامترهای نوع ندارد.
    • تابع snapshotFlow به جای‌نام androidx.compose.runtime منتقل شده است
    • روش ادغام SnapshotMutationPolicy دیگر آزمایشی نیست
    • تابع @TestOnly سطح بالای clearRoots برداشته شده است. دیگر ضروری نیست.
    • توابع keySourceInfoOf و resetSourceInfo برداشته شده‌اند. دیگر ضروری نیستند.
    • ‫Composer.collectKeySourceInformation برداشته شده است. دیگر ضروری نیست.
    • روش‌های isJoinedKey، joinedKeyLeft، و joinedKeyRight برداشته شده‌اند. دیگر ضروری نیستند.
    • میاناهای برنامه‌سازی کاربردی سطح بالای مختلفی به فایل‌های دیگری منتقل و در آن‌ها سازمان‌دهی مجدد شده‌اند. به‌دلیل معناشناسی کلاس فایل Kotlin، این کار سازگاری باینری را ازبین می‌برد اما سازگاری منبع را ازبین نمی‌برد، بنابراین نباید برای اکثر کاربران مشکلی ایجاد کند.
    • (I99b7d، b/177245490)
  • ‫Modifier.scrollable بازطراحی شده است. اکنون به‌جای کلاس ScrollableController از رابط Scrollable استفاده می‌کند (I4f5a5، b/174485541، b/175294473)

  • ‫Modifier.draggable اکنون به‌جای لامبدای ساده، DraggableState را می‌پذیرد. می‌توانید ازطریق rememberDraggableState { delta -> } وضعیت ایجاد کنید تا همان رفتار قبلی را داشته باشید (Ica70f، b/175294473)

  • اصلاح‌کننده‌های requiredWidth(IntrinsicSize) و requiredHeight(IntrinsicSize) برای اندازه‌گیری الزامی به اندازه‌های درونی اضافه شدند. (I0a6b4)

  • ‫emptyContent() منسوخ برداشته شد. درعوض از {} استفاده کنید. (Idb33f، b/179432510)

  • برخی‌از میاناهای برنامه‌سازی کاربردی که قبلاً منسوخ شده بودند حذف شدند (Ice5da، b/178633932)

رفع اشکال‌ها

  • ترکیب جدید LocalSoftwareKeyboardController API محلی اضافه شد تا جایگزین رابط قبلی SoftwareKeyboardController در TextField شود. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Modifier.pointerInput اکنون برای نشان دادن اینکه روتین مشترک تشخیص ورودی اشاره‌گر باید برای وابستگی‌های جدید بازراه‌اندازی شود به کلیدهای یادآوری نیاز دارد. (I849cd)
  • به‌روزرسانی آزمایش: ()hasText هم نوشتار ورودی و هم نوشتار برچسب/راهنمایی/جای‌بان را در فیلد نوشتاری بررسی می‌کند (Iab803)
  • ‫PaddingValues.Absolute اضافه شد و می‌تواند در میاناهای برنامه‌سازی کاربردی که PaddingValues را می‌پذیرند استفاده شود. (Ia5f30)
  • ‫onImeActionPerformed منسوخ شده است. به‌جای آن از KeyboardActions استفاده کنید (If0bbd، b/179071523)
  • برای مطابقت بهتر با قراردادهای نام‌گذاری ImageBitmap و ImageVector، نام ImagePainter به BitmapPainter تغییر کرده است تا با VectorPainter موازی شود. (Iba381, b/174565889)
  • میاناهای برنامه‌سازی کاربردی بهتر برای آزمایش زیررشته با زیررشته به‌عنوان آرگومان (Icbe78)
  • عنصر زمینه روتین همکار InfiniteAnimationPolicy را معرفی کرد که در پویانمایی‌های بی‌نهایت اعمال خواهد شد. به‌طور پیش‌فرض هیچ خط‌مشی‌ای نصب نمی‌شود، به‌جز زمانی که آزمایش‌ها با ComposeTestRule اجرا می‌شوند. (I50ec4, b/151940543)
  • ‫Animatable.snapTo و Animatable.stop اکنون توابع تعلیق هستند (If4288)
  • ‫ComponentActivity.setContent به androidx.activity.compose.setContent در androidx.activity:activity-compose module منتقل شده است. (Icf416)
  • روش‌های ساختارشکنی و copy() از چندین کلاس که به‌ندرت استفاده می‌شدند برداشته شده است. (I26702, b/178659281)
  • پشتیبانی از کلیدهای سفارشی برای LazyColumn/LazyRow اضافه شد. این کار به ما امکان می‌دهد که ترتیب مجدد موارد را هوشمندانه‌تر مدیریت کنیم. بنابراین، وضعیتی که در بلوک‌های remember {} ذخیره کرده‌اید، هنگام تغییر ترتیب عناصر یا برداشتن عنصر از وسط، همراه با عنصر جابه‌جا می‌شود.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • ‫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 تغییر کرد و «میانای برنامه کاربردی» بهبود یافت. (I1f6ff)

  • ‫Modifier.dragGestureFilter منسوخ شده است. درعوض از Modifier.pointerInput { detectDragGestures (...)} استفاده کنید. یا از Modifier.draggable برای کشیدن در یک محور استفاده کنید (I0ba93، b/175294473)

  • نام Ambients تغییر کرد تا با تغییر نام Ambient -> CompositionLocal مطابقت داشته باشد. قبلاً نام «محیط‌ها» AmbientFoo بود، اکنون نام «ترکیب‌های محلی» LocalFoo است. (I2d55d)

  • مورد انتخابی به پایه منتقل شد. (I7892b)

  • همان‌طور که قبلاً state { 0 } قابل ترکیب را برداشتیم و اکنون استفاده از remember { mutableStateOf(0) } را ترویج می‌کنیم، savedInstanceState { 0 } قابل ترکیب را نیز برمی‌داریم. باید از rememberSaveable { mutableStateOf(0) } استفاده کنید و اگر نوع استفاده‌شده در MutableState بتواند در Bundle ذخیره شود، به‌طور خودکار ذخیره و بازیابی خواهد شد. اگر قبلاً شیء ذخیره‌کننده سفارشی را ارسال می‌کردید، اکنون باید از سربار جدید rememberSaveable که پارامتر stateSaver دارد استفاده کنید. استفاده به این شکل خواهد بود: 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 به‌عنوان آزمایشی علامت‌گذاری شده‌اند (Ia53e3، b/178519862)

  • نام rememberSavedInstanceState() به rememberSaveable() تغییر کرده است و به بسته androidx.compose.runtime.saveable منتقل شده است. (I1366e،‏ b/177338004)

  • نام RestorableStateHolder به SaveableStateHolder تغییر کرد و به بسته androidx.compose.runtime.saveable منتقل شد. نام روش داخلی RestorableStateProvider به SaveableStateProvider تغییر کرد. نوع عمومی برداشته شد تا بتوانید «هرچیزی» را به‌عنوان کلید ارسال کنید. شرح آزمایشی دیگر لازم نیست. (I0902e،‏ b/174598702)

  • ‫Saver،‏ listSaver()،‏ mapSaver()،‏ autoSaver از androidx.compose.runtime.savedinstancestate به androidx.compose.runtime.saveable منتقل شد (I77fe6)

  • نام مصنوعه androidx:compose:runtime:runtime-saved-instance-state به androidx:compose:runtime:runtime-saveable تغییر کرد (I6dcac)

  • بسیاری از APIهای منسوخ‌شده قدیمی در بسته ui حذف شده‌اند. (I2f2dc)

  • ساخت‌افزار compose:runtime-dispatch اکنون منسوخ شده است. اکنون می‌توانید MonotonicFrameClock را در compose:runtime و AndroidUiDispatcher را در compose:ui پیدا کنید. ‫(Ib5c36)

  • پارامترهای RounderCornerShape،‏ CutCornerShape، و CornerBasedShape از چپ/راست به شروع/پایان تغییر نام دادند تا از قرینه‌سازی خودکار شکل در جهت راست‌به‌چپ پشتیبانی کنند. ‫AbsoluteRounderCornerShape و AbsoluteCutCornerShape برای مواردی معرفی شدند که آینه‌سازی خودکار مطلوب نیست. (I61040، b/152756983)

  • ‫canDrag از Modifier.scrollable برداشته شده است. (Id66e7, b/175294473)

  • «میانای برنامه‌سازی کاربردی» که افزایه مترجم Compose هدف قرار می‌دهد برای استفاده از یک میانای کاربر به‌جای کلاس عینی بازسازی شده است. این واسط دیگر از پارامتر نوع استفاده نمی‌کند.

    این یک تغییر داخلی است که نباید بر سازگاری کد منبع تأثیر بگذارد، اما یک تغییر باینری است. ‫(I3b922،‏ b/169406779)

  • ‫Modifier.scaleGestureFilter برداشته شده است. درعوض از Modifier.zoomable استفاده کنید. یا از Modifier.pointerInput { detectMultitouchGestures { ... }} (Id5da1،‏ b/175294473) استفاده کنید

  • ‫AnimatedValue/Float اکنون منسوخ شده است. لطفاً به‌جای آن از Animatable استفاده کنید. (I71345، b/177457083)

    • ‫CoreText و CoreTextField از «میانای برنامه‌سازی کاربردی» عمومی برداشته شد
    • بار اضافه منسوخ‌شده SelectionContainer برداشته شد (I99c19)
  • برداشتن توابع پیمایش غیرتعلیقی منسوخ‌شده با ادامه تغییرات نسخه قبلی، توابع پیمایش غیرتعلیقی اکنون به‌طور کامل برداشته شده‌اند. لطفاً به توابع تعلیق با نام‌های یکسان تبدیل کنید. محدوده روتین همکار را می‌توان ازطریق rememberCoroutineScope()‎ دریافت کرد. (I3d39c، b/178169563)

  • ‫androidx.compose.foundation.layout.ConstraintLayout به‌نفع androidx.constraintlayout.compose.ConstraintLayout منسوخ شده است. باید وابستگی به androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 را اضافه کنید. (I87adc)

  • ‫tapGestureFilter،‏ doubleTapGestureFilter،‏ longPressGestureFilter، و pressIndicaitonGestureFilter منسوخ شده‌اند. درعوض از Modifier.clickable یا Modifier.pointerInput با تابع detectTapGestures استفاده کنید. (I6baf9، b/175294473)

  • ‫Recomposer.current() حذف شد. [خلاصه]‫ComposeView اکنون به‌طور پیش‌فرض به Recomposerهای با حوزه پنجره که به‌صورت تنبل ایجاد شده‌اند و توسط ViewTreeLifecycleOwner برای پنجره هدایت می‌شوند تبدیل شده است. وقتی «چرخه حیات» میزبان متوقف می‌شود، بازسازی و تیک‌های پویانمایی مبتنی بر withFrameNanos موقتاً متوقف می‌شود. (I38e11)

  • ‫Recomposer.runningRecomposers اکنون StateFlow سراسری از RecomposerInfo فقط خواندنی برای مشاهده وضعیت ترکیب درحال انجام در فرایند ارائه می‌دهد. این API را به Recomposer.current()‎ که اکنون نامناسب است ترجیح دهید. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • منسوخ کردن scrollBy غیرتعلیقی، برداشتن scrollTo غیرتعلیقی

    اکنون توصیه می‌کنیم از توابع تعلیق برای کنترل پیمایش و انتظار برای اتمام پیمایش استفاده کنید. به‌عنوان بخشی از این انتقال، نسخه‌های غیرتعلیقی این توابع را منسوخ و/یا حذف می‌کنیم. (Ie9ced)

  • منسوخ کردن smoothScrollBy غیرتعلیقی اکنون توصیه می‌کنیم از توابع تعلیقی برای کنترل پیمایش و انتظار برای اتمام پیمایش استفاده کنید. به‌عنوان بخشی از این انتقال، نسخه‌های غیرتعلیقی این توابع را منسوخ می‌کنیم. (I12880)

  • پارامتر شرح محتوا به «تصویر» و «نماد» اضافه شده است. از آن برای ارائه شرح به خدمات دسترس‌پذیری (I2ac4c) استفاده می‌شود

  • ‫BasicTextField پارامتر جدیدی به‌نام «decorationBox» دریافت کرد. این ویژگی امکان می‌دهد تزئیناتی مثل نمادها، جای‌بان، برچسب، و موارد مشابه به فیلد نوشتار اضافه شود و ناحیه هدف ضربه آن افزایش یابد. (I16996)

  • پارامتر canDrag از Modifier.draggable برداشته شده است (Ic4bec، b/175294473)

  • ‫AnimatedFloat.fling که FlingConfig را می‌پذیرد برداشته شده است. لطفاً درعوض از suspend Animatable.animateDecay استفاده کنید. (I4659b،‏ b/177457083)

  • ‫data class از کلاس‌های زیر برداشته شد:

    • محتوای نوشتاری به‌خط
    • LocaleList
    • (I605c7)
  • اکنون می‌توان عناصر کلیک‌کردنی، قابل‌تغییر، و قابل‌انتخاب را خارج‌از ترکیب ایجاد کرد (I0a130، b/172938345، b/175294473)

  • ‫ScrollableColumn/Row منسوخ شده است. وقتی محتوای پیمایش‌پذیر زیادی دارید، استفاده از ScrollableColumn در مقایسه با LazyColumn کارایی کمتری دارد زیرا با LazyColumn می‌توانیم فقط عناصر نمایان را ترکیب/اندازه‌گیری/رسم کنیم. برای جلوگیری از اینکه کاربران از روش‌های ناکارآمد استفاده کنند، تصمیم گرفتیم ScrollableColumn و ScrollableRow را منسوخ کنیم و به‌جای آن استفاده از LazyColumn و LazyRow را ترویج کنیم. کاربران همچنان می‌توانند تصمیم بگیرند که به رفتار تنبل نیاز ندارند و از اصلاح‌کننده‌ها به‌طور مستقیم به این صورت استفاده کنند: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b،‏ b/170468083)

  • روش کارخانه جدید items(count: Int) برای محدوده LazyColumn/LazyRow/LazyVerticalGrid. ‫items(items: List) و itemsIndexed(items: List) اکنون تابع‌های افزونه هستند، بنابراین باید آن‌ها را هنگام استفاده به‌صورت دستی وارد کنید. سربار جدید برای «آرایه‌ها»: items(items: Array) و itemsIndexed(Array) (I803fc،‏ b/175562574)

  • ‫AbsoluteArrangement منسوخ‌شده برداشته شد. (Iffa96, b/177641870)

  • پارامتر propagateMinConstraints به Box اضافه شد تا مشخص شود که آیا محدودیت‌های حداقل ورودی باید به محتوای Box منتقل شوند یا نه. پیش‌فرض «نادرست» است. (I0125b،‏ b/152613457)

رفع اشکال‌ها

  • onCommit،‏ onDispose، و onActive به‌نفع SideEffect و DisposableEffect APIs منسوخ شده‌اند (If760e)
  • ‫WithConstraints به‌عنوان BoxWithConstraints بازطراحی شد و به foundation.layout منتقل شد. ‫(I9420b، b/173387208)
  • تغییرات در توابع کارخانه‌ای برای «قلم/خانواده قلم/طرح حروف»

    • توابع کارخانه‌ای که با حروف بزرگ شروع می‌شوند اضافه شد
    • توابع کارخانه قبلی با حروف کوچک اول منسوخ شد
    • توابع کارخانه‌ای جدید به‌جای زیرکلاس‌ها، 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 را می‌پذیرد. بااین‌حال این تغییر فقط در میانای برنامه‌سازی کاربردی است و ویرایش نوشتار چندسبکی هنوز پیاده‌سازی نشده است.

    • ‫initial از پارامترهای سازنده EditingBuffer برداشته شد. (I326d5)
  • ‫invalidate و compositionReference() اکنون به‌ترتیب به‌نفع currentRecomposeScope و rememberCompositionReference منسوخ شده‌اند. (I583a8)

  • ‫AnnotatedString تغییر کرده است تا از kotlin.CharSequence گسترش یابد. بنابراین 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)
  • کلاس‌های زیر دیگر کلاس داده نیستند:

    • رشته حاشیه‌نویسی‌شده
    • ParagraphStyle
    • SpanStyle
    • سبک نوشتار
    • سیاهی قلم
    • 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 داخلی شدند زیرا در هیچ میانای برنامه‌سازی کاربردی عمومی استفاده نمی‌شوند. (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫ImeOptions و KeyboardOptions دیگر کلاس داده نیستند (I3c898، b/168684531)
  • تغییرات «میانای برنامه‌سازی کاربردی تبدیل دیداری»
    • نام OffsetMap به OffsetMapping تغییر کرد
    • نام OffsetMapping.identityOffsetMap به OffsetMapping.Identity تغییر کرد
    • ‫PasswordTransformation دیگر کلاس داده نیست
    • ‫OffsetMapping به فایل خودش منتقل شد
    • (I0bdf3)
  • تغییرات EditOperations API
    • ‫EditOperation به EditCommand تغییر نام داد
    • پسوند «فرمان» برای پیاده‌سازی‌های عینی EditOperation اضافه شد
    • ‫EditCommand دیگر کلاس داده نیست
    • نام تابع EditOperation.process به applyTo تغییر کرد
    • ‫InputEventListener به InputEventCallback تغییر نام داد
    • (I0a366)
  • «سرعت» اصلاح شد تا دارای اجزای تشکیل‌دهنده و عملیات ریاضی باشد. (Ib0447)
  • نام @ExperimentalTesting به @ExperimentalTestApi تغییر کرد تا با حاشیه‌نویسی‌های مشابه میانای برنامه‌سازی کاربردی آزمایشی سازگار باشد (Ia4502، b/171464963)
  • روش آزمایشی stickyHeader برای LazyColumn/LazyRow اضافه شد (I0a81d)
  • ‫Color.useOrElse() به Color.takeOrElse() تغییر نام داد (Ifdcf5)
  • ‫TestUiDispatcher منسوخ‌شده. به‌جای آن از Dispatchers.Main استفاده کنید (Ic171f، b/175385255)
  • افزودن «تغییر وضعیت» به foundation Strings.kt (I4a5b7،‏ b/172366489)
  • ‫nativeClass به واحد ui منتقل شد و داخلی شد. کاربردهای به‌روزشده nativeClass در پیاده‌سازی‌های equals برای استفاده از 'is MyClass' به‌جای آن. (I4f734)
  • ‫FlowRow و FlowColumn منسوخ شدند. لطفاً به‌جای آن از چیدمان سفارشی استفاده کنید. (I09027)
  • ‫Modifier.focus()‎ و Modifier.focusRequester()‎ منسوخ شده‌اند. درعوض از Modifier.focusModifier()‎ و Modifier.focusReference()‎ استفاده کنید. (I75a48،‏ b/175160751،‏ b/175160532،‏ b/175077829)
  • ‫SelectionRegistrar.notifySelectableChange برای اطلاع‌رسانی به‌روزرسانی‌های «قابل‌انتخاب» به SelectionManager معرفی شد. (I6ff30، b/173215242)
  • ‫fun Dp.isFinite() به val Dp.isFinite (I50e00) تغییر کرد
  • نام Constraints#satisfiedBy به isSatisfiedBy تغییر کرد. (I9cf5c)
  • ‫isSpecified،‏ isUnspecified، و useOrElse برای کلاس‌های سطری با ثابت Unspecified اضافه شد. (I93f7b، b/174310811)

رفع اشکال‌ها

  • میانای برنامه‌سازی کاربردی جدید مبتنی بر روتین همکار Animatable که انحصاری بودن متقابل بین پویانمایی‌هایش را تضمین می‌کند. ‫DecayAnimationSpec جدید برای پشتیبانی از پویانمایی افت چندبعدی (I820f2، b/168014930)
  • پشتیبانی از فیلدهای نوشتاری غیرفعال و فقط‌خواندنی اضافه شد (I35279، b/171040474، b/166478534)
  • ‫animate() اکنون با animateAsState() جایگزین شده است، که به‌جای T،‏ State<T> برمی‌گرداند. این کار عملکرد را بهبود می‌بخشد، زیرا محدوده نامعتبرسازی می‌تواند به جایی که مقدار «وضعیت» خوانده می‌شود محدود شود. (Ib179e)
  • «میانای برنامه‌سازی کاربردی نقش معنایی» را اضافه کنید و «نقش» را به‌عنوان پارامتر به «اصلاح‌کننده معنایی» کلیک‌کردنی، انتخاب‌کردنی، و قابل‌تغییر اضافه کنید. ‫Modifier.progressSemantics تغییر کرد تا «لغزنده» هم بتواند از آن استفاده کند. (I216cd)
  • اکنون می‌توان ازطریق keyEvent.nativeKeyEvent به keyEvent بومی دسترسی داشت (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • افزودن میانای پیمایش‌شدنی

    این کار باعث می‌شود ScrollState و LazyListState به‌عنوان نوعی مشترک درنظر گرفته شوند و امکان پیاده‌سازی پیمایش سفارشی در هر دو نوع فراهم شود.

    این کار همچنین smoothScrollBy را به یک تابع افزونه در Scrollable منتقل می‌کند و از این قابلیت استفاده می‌کند. (I2153b)

  • ‫LazyVerticalGrid اضافه شد. (I17267، b/162213211)

  • ‫LazyColumnFor،‏ LazyRowFor،‏ LazyColumnForIndexed، و LazyRowForIndexed را منسوخ کنید. به‌جای آن از LazyColumn و LazyRow استفاده کنید (I5b48c)

  • برای تعلیق کردن ورودی اشاره‌گر APIs، HandlePointerInputScope به AwaitPointerEventScope و handlePointerInput() به awaitPointerEventScope() تغییر نام داد. (Idf0a1، b/175142755)

  • ‫LazyListState.layoutInfo اضافه شد که فهرست اندازه‌ها و افست‌های عناصر رؤیت‌پذیر فعلی را آشکار می‌کند (If8678، b/170472532)

  • حاشیه‌نویسی ExperimentalPointerInput برداشته شد (Ia7a24)

  • پشتیبانی از InteractionState برای TextFields اضافه شده است. (I61d91)

  • پارامتر reverseLayout را برای LazyColumn/Row اضافه کنید. وقتی true مورد از پایین به بالا ترکیب می‌شود و LazyListState.firstVisibleItemIndex == 0 به این معنی است که اولین مورد در پایین قرار دارد. (I552ae، b/166589935)

  • پارامتر verticalArrangement برای LazyColumn اضافه شد. پارامتر horizontalArrangement برای LazyRow اضافه شد. ترتیب به ما امکان می‌دهد بین عناصر فاصله اضافه کنیم و ترتیب عناصر را زمانی که تعداد کافی از آن‌ها برای پر کردن کل حداقل اندازه نداریم مشخص کنیم. (Icf79a، b/170394300)

  • ‫detectMultitouchGestures اکنون از یک برگشت تماس با پارامترهای ترکیبی مرکز هندسی، حرکت، بزرگ‌نمایی، و چرخش استفاده می‌کند. (Ie6e1c)

  • ‫ContentDrawScope به ui-graphics انتقال یافت تا با DrawScope باشد. (Iee043، b/173832789)

رفع اشکال‌ها

  • ‫Lambdas در اصلاح‌کننده‌های افست اکنون به‌جای Float، مقدار IntOffset برمی‌گرداند. (Ic9ee5،‏ b/174137212،‏ b/174146755)
  • ‫SlotTable،‏ SlotReader، و SlotWriter را از میانای برنامه‌سازی کاربردی عمومی برداشتیم. قبلاً این موارد به‌عنوان InternalComposeAPI علامت‌گذاری می‌شدند. اکنون این موارد داخلی واحد نوشتن هستند.

    ‫CompositionData و CompositionGroup به‌عنوان جایگزینی برای واسط برنامه‌سازی کاربردی ui-tooling اضافه شدند تا از آن‌ها برای استخراج اطلاعات ترکیب استفاده شود. این‌ها عمومی هستند اما برای استفاده خارج از میانای برنامه‌سازی کاربردی ui-tooling درنظر گرفته نشده‌اند زیرا اطلاعات خام را که میانای برنامه‌سازی کاربردی ui-tooling تفسیر می‌کند ارائه می‌دهند (I31a9c)

  • ‫ShaderBrush را بازسازی کرد تا نمونه سایه‌زن را وقتی اطلاعات اندازه محیط طراحی دردسترس است به‌صورت تنبل ایجاد کند. این کار برای تعریف گرادیان‌هایی که در زمان ترکیب، کل محدوده طراحی یک عنصر ترکیب‌پذیر را اشغال می‌کنند مفید است، بدون اینکه نیاز باشد پیاده‌سازی‌های سفارشی DrawModifier را پیاده‌سازی کنید.

    میاناهای برنامه‌سازی کاربردی سازنده تابع گرادیان منسوخ شده‌اند به‌نفع روش‌های کارخانه‌ای در یک شیء «گرادیان». (I511fc, b/173066799)

  • ‫Modifier.focusObserver منسوخ شده است. به‌جای آن از Modifier.onFocusChanged یا Modifier.onFocusEvent استفاده کنید (I30f17، b/168511863، b/168511484)

  • «میانای برنامه‌سازی کاربردی تکمیل خودکار» اکنون میانای برنامه‌سازی کاربردی آزمایشی است و نیاز به موافقت دارد (I0a1ec)

  • افزودن بیانیه‌های ساختارشکنی برای ایجاد نمونه‌های FocusRequester (I35d84، b/174817008)

  • نام accessibilityLabel به contentDescription تغییر کرده است. نام accessibilityValue به stateDescription تغییر کرده است. (I250f2)

  • چند تابع جدید در SelectionRegistrar معرفی شد و همچنین نام onPositionChange به notifyPositionChange تغییر کرد. (Ifbaf7)

  • ‫AndroidOwner داخلی شد (Ibcad0، b/170296980)

  • تابع جدید infiniteRepeatable برای ایجاد InfiniteRepeatableSpec (I668e5)

  • واسط Applier تغییر کرده است تا ساختن درخت‌ها از پایین به بالا به‌جای بالا به پایین ساده‌تر شود.

    نام روش insert() به insertTopDown() تغییر کرده است.

    روش جدیدی به‌نام insertBottomUp() اضافه شد.

    کاربردی‌کننده یا گره‌ها را در درختی که ویرایش می‌کند بااستفاده از insertTopDown() یا insertBottomUp() بسته به اینکه کدام بهتر عمل می‌کند درج می‌کند.

    برخی‌از درخت‌ها، مثل LayoutNode و View، برای ساختن از پایین به بالا بسیار کارآمدتر از ساختن از بالا به پایین هستند. قبل‌از این تغییر، برای پیاده‌سازی از پایین به بالا، پشته‌ای از درج‌ها لازم بود که باید در هر برنامه‌ای که به ساختار از پایین به بالا برای عملکرد نیاز داشت کپی می‌شد. با این تغییر، Applier insertBottomUp() را ملغی می‌کند تا درخت را از پایین به بالا بسازد و insertTopDown() درخت را از بالا به پایین می‌سازد. (Icbdc2)

  • ‫API painterResource اضافه شد تا بار کردن غیرشفاف اشیای «نقاش» از قالب‌های دارایی شطرنجی (مثل PNG) یا VectorDrawables را مدیریت کند. مصرف‌کنندگان دیگر نیازی ندارند نوع دارایی را ازقبل تعیین کنند و می‌توانند این روش را برای دریافت شیء Painter برای استفاده در Image composables یا اصلاح‌کننده‌های painter فراخوانی کنند. (I2c703، b/173818471)

  • تابع کارخانه‌ای buildAnnotatedString را برای ساختن AnnotatedString اضافه کرد. تابع سازنده annotatedString منسوخ‌شده. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پارامتر maxLines از CoreTextField برداشته شد. اگر می‌خواهید ارتفاع فیلد نوشتاری را براساس تعداد خطوط محدود کنید، به‌جای آن از BasicTextField استفاده کنید. (Iec002)
  • روش‌های await*TouchSlop() را تغییر داد تا اشاره‌گر پایین را تشخیص ندهد و نام آن‌ها را به *OrCancellation تغییر داد. همچنین نیاز به پارامتر orientationLock را برطرف کرد. (Ie96e1)
  • بررسی lint برای نام‌گذاری و موقعیت پارامتر لامبدای ترکیب‌شدنی اضافه شد تا با رهنمودهای Compose سازگاری داشته باشد. همچنین برخی‌از APIها را بااستفاده از children به‌عنوان نام لامبدای انتهایی‌شان به content انتقال دادیم، طبق بررسی و راهنمایی lint. (Iec48e)
  • ‫foundation:foundation-text میانای برنامه‌سازی کاربردی به foundation:foundation منتقل شد. ساختار بسته بدون تغییر باقی ماند (Id3eb2)
  • آشکارساز اشاره چندلمسی جدید، شامل یاری‌رسان‌هایی برای تشخیص چرخش، بزرگ‌نمایی، و حرکت افقی. (Ic459d)
  • آشکارساز اشاره کشیدن جدیدی که میانای برنامه کاربردی ورودی اشاره‌گر، ازجمله قفل کردن جهت، را معلق می‌کند. (Icef25)
  • ‫VectorAsset به ImageVector تغییر نام داد ‫VectorAsset به Builder منتقل و تغییر نام داد تا طبق رهنمودهای شورای API، کلاس درونی ImageVector باشد. نام مستعار نوع VectorAssetBuilder به پیوند به ImageVector.Builder برای سازگاری اضافه شد. (Icfdc8)
  • ‫ImageAsset و روش‌های مرتبط را به ImageBitmap تغییر نام داد. (Ia2d99)
  • خصوصیات معناشناسی بنیاد به ui منتقل شد (I6f05c)
  • افزودن میاناهای برنامه‌سازی کاربردی پیمایش مبتنی بر روتین همکار:

    ‫LazyListState.snapToItem و LazyListState.smoothScrollBy و همچنین واسط‌های برنامه‌سازی کاربردی سطح پایین برای کنترل پیمایش را اضافه می‌کند. این «میاناهای برنامه‌سازی کاربردی» یک میانای تعلیق برای کنترل پیمایش ارائه می‌دهند که تا پایان پیمایش منتظر می‌ماند و سپس برمی‌گردد. (Ie5642)

  • پارامتر singeLine به BasicTextField،‏ TextField، و OutlinedTextField اضافه شد. برای تبدیل فیلد نوشتاری به یک خط افقی قابل‌پیمایش، این پارامتر را روی true تنظیم کنید. (I57004،‏ b/168187755)

  • آشکارساز اشاره برای تک‌ضرب، دو تک‌ضرب، فشار طولانی، و نشانگر فشار بااستفاده از ورودی جدید اشاره معلق اضافه شد. چند ابزار کمکی نیز اضافه شده است که نوشتن آشکارسازهای اشاره را برای توسعه‌دهندگان آسان‌تر می‌کند. (I00807)

  • ‫Modifier.focusable در پایه نیاز اضافه شده است. از این برای افزودن رفتار قابل‌تمرکز به یک عنصر، با معناشناسی و دسترس‌پذیری صحیح استفاده کنید. (I41eb9،‏ b/152525426،‏ b/162865824)

  • میاناهای برنامه‌سازی کاربردی منسوخ‌شده قبلی برداشته شده‌اند: Border برداشته شد، به‌جای آن از BorderStroke استفاده کنید. ‫Modifier.drawBorder برداشته شد، درعوض از Modifier.border استفاده کنید. ‫Modifier.gravity برداشته شد، درعوض از Modifier.align استفاده کنید. ‫Stack برداشته شد، به‌جای آن از Box استفاده کنید (I32c2b، b/172470874)

  • نام AbsoluteArrangement به Arrangement.Absolute تغییر کرد. (If26f2)

رفع اشکال‌ها

  • «میاناهای برنامه‌سازی کاربردی DrawModifier» از بسته androidx.compose.ui به بسته androidx.compose.ui.draw منتقل شد. فایل DrawModifierDeprecated.kt را ایجاد کرد تا نام‌های مستعار نوع/روش‌های کمکی را برای کمک به انتقال از APIهای منسوخ‌شده به APIهای فعلی دربر بگیرد. (Id6044،‏ b/173834241)
  • ‫Modifier.drawLayer به Modifier.graphicsLayer تغییر نام داد همچنین کلاس‌های مرتبط طبق بازخورد شورای API به GraphicsLayer به‌روزرسانی شد. (I0bd29, b/173834241)
  • ‫<T> از بیانیه SubcomposeLayout برداشته شد. اکنون می‌توانید بدون مشخص کردن نوع از آن استفاده کنید. (Ib60c8)
  • فیلدهای زمان کار و موقعیت PointerInputData را غیرقابل‌تهی کرد. (Id468a)
  • ‫MaterialTheme اکنون رنگ‌های صحیح را برای دسته‌های انتخاب و پس‌زمینه انتخاب تنظیم می‌کند. برنامه‌های غیر Material می‌توانند به‌صورت دستی از AmbientTextSelectionColors برای سفارشی‌سازی رنگ‌های استفاده‌شده برای انتخاب استفاده کنند. (I1e6f4،‏ b/139320372،‏ b/139320907)
  • پارامتر تراز «چارگوش» به contentAlignment تغییر نام داد. ‫(I2c957)
  • نام اصلاح‌کننده‌های offsetPx به offset تغییر کرد. اکنون به‌جای State، پارامترهای لامبدا می‌گیرند. (Ic3021، b/173594846)
  • ‫WindowManager.isWindowFocused برای بررسی اینکه آیا پنجره میزبان در کانون توجه است یا نه، و WindowFocusObserver که یک پاسخ‌گویی onWindowFocusChanged ارائه می‌دهد اضافه شد. (I53b2a، b/170932874)
  • پارامتر resetInput به TextInputService#onStateUpdated اضافه شد (I3e8f5، b/172239032، b/171860947)
  • به‌روزرسانی میانای برنامه‌سازی کاربردی TextFieldValue
    • ‫TextFieldValue.composition فقط خواندنی شد
    • استثنای برداشته‌شده برای محدوده انتخاب نامعتبر (I4a675،‏ b/172239032)
  • «محیط‌های» منسوخ‌شده‌ای که نام آن‌ها با Ambient به‌عنوان پسوند بود، با دارایی‌های جدیدی که پیشوند آن‌ها «محیط» بود جایگزین شدند و از سایر «محیط‌ها» و دستورالعمل‌های «میانای برنامه‌سازی کاربردی Compose» پیروی کردند. (I33440)
  • بسته‌بندی‌کننده «قلم Android» اضافه شد. می‌توانید Android Typeface را ازطریق تابع typeface یعنی typeface(Typeface.DEFAULT) بار کنید. همچنین نام typefaceFromFontFamily() را به typeface() تغییر داد (I52ab7)
  • بررسی lint اضافه شد تا بررسی کند که کارخانه‌های «اصلاح‌گر» به‌جای اینکه به‌عنوان @Composable علامت‌گذاری شوند، از androidx.compose.ui.composed {} در داخل استفاده می‌کنند. (I3c4bc)
  • بررسی lint اضافه شد تا بررسی کند که توابع کارخانه «اصلاح‌گر» به‌عنوان افزونه‌های «اصلاح‌گر» تعریف شده‌اند تا بتوانند به‌صورت روان به‌هم زنجیر شوند. (I07981)
  • نام آرگومان معنایی 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)
  • نام id به layoutId برای LayoutIdParentData تغییر کرد. نام 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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • مشابه Modifier.fillMaxSize[Width|Height]، اکنون از کسرها در Modifier.fillParentMaxSize[Width|Height] در محدوده LazyColumn/Row پشتیبانی می‌کنیم (I797e2، b/166586426)
  • ‫KeyboardOptions.toImeOptions از API عمومی برداشته شد. (Ic2e45)
  • ‫AmbientTextStyle،‏ ProvideTextStyle، و AmbientContentColor منسوخ شده‌اند. به‌جای آن از نسخه‌های جدید موجود در کتابخانه «ماتریال» استفاده کنید. برای برنامه‌های غیر Material، باید به‌جای آن سیستم طراحی خودتان را ایجاد کنید که دارای زمینه‌های خاصی باشد که بتواند در عناصر خودتان استفاده شود. (I74acc، b/172067770)
  • ‫foundation.Text منسوخ شده است و با material.Text جایگزین شده است. برای میانای برنامه‌سازی کاربردی نوشتاری ساده و بی‌طرف که مقادیر را از زمینه مصرف نمی‌کند، androidx.compose.foundation.BasicText را ببینید. (If64cb)
  • ‫maxLines به TextFields اضافه شد (Ib2a5b)
  • به‌روزرسانی TextFields برای پذیرفتن KeyboardOptions (Ida7f3)
  • ‫KeyboardOptions برای استفاده در TextFields اضافه شد (I9ca32)
  • ‫BasicText را به‌عنوان یک API بدون نظر طراحی برای نوشتار، موازی با BasicTextField، اضافه می‌کند. (I28268)
  • گزارمان ExperimentalLazyDsl برداشته شد. اکنون می‌توان از LazyColumn/LazyRow بدون افزودن ‎ @OptIn استفاده کرد (Idab7a، b/166584730)
  • ‫BaseTextField منسوخ شده است. درعوض از BasicTextField استفاده کنید. (I896eb)
  • ‫BasicTextField به‌عنوان جایگزینی برای CoreTextField و BaseTextField اضافه شده است (Id4cea)
  • برداشتن LazyColumnItems/LazyRowItems منسوخ‌شده (I1d8a8)
  • ترکیب‌های منسوخ‌شده برای تغییر اندازه به اندازه‌های ذاتی برداشته شدند. (I18537، b/171811496)
  • نام relativePaddingFrom به paddingFrom تغییر کرد. اصلاح‌گر paddingFromBaseline برای راحتی در تعیین فاصله‌ها از محدوده‌های چیدمان تا خطوط پایه نوشتار اضافه شده است. ‫(I0440a،‏ b/170633813)
  • پارامتر matchHeightConstraintsFirst به اصلاح‌گر نسبت ابعادی اضافه شده است که می‌تواند برای مشخص کردن اصلاح‌گر برای تغییر اندازه به محدودیت‌های ارتفاع قبل‌از تلاش برای عرض‌های متناظر استفاده شود. (Ie7c43، b/155290593)
  • ‫DpConstraints منسوخ برداشته شد. (I87884،‏ b/171702471)

رفع اشکال‌ها

  • کلاس درون‌خطی ScaleFactor برای نشان دادن عوامل مقیاس برای محورهای افقی و عمودی به‌صورت مستقل از یکدیگر معرفی شد تا از موارد استفاده مقیاس‌بندی غیریکنواخت پشتیبانی کند.
    • روش computeScaleFactor به ContentScale اضافه شد
    • ‫ContentScale.FillBounds اضافه شد تا مقیاس‌بندی غیریکنواخت برای کشیدن مرزهای منبع برای اشغال کامل مقصد انجام شود.
    • روش‌های عامل به محاسبه پارامترهای «عامل مقیاس» با پارامترهای «اندازه» اضافه شد.
    • (Ic96a6, b/172291582)
  • ‫captureToBitmap به captureToImage منتقل شد. (I86385)
  • ‫CoreText را به‌عنوان InternalTextApi @علامت‌گذاری می‌کند. درعوض از BasicText استفاده کنید. (I6aaeb)
  • تغییر نام KeyboardOptions به ImeOptions (I82f36)
  • ‫KeyboardType و ImeAction به KeyboardOptions منتقل شد (I910ce)
  • ‫CoreTextField به‌عنوان ‎ @InternalTextApi علامت‌گذاری شده است. به‌جای آن از BasicTextField استفاده کنید (Ie2469)
  • گزارمان ExperimentalSubcomposeLayoutApi برداشته شد. اکنون می‌توان از SubcomposeLayout بدون افزودن ‎ @OptIn استفاده کرد (I708ad)
  • معرفی واحد ui-test-junit4 (Ib91f8)
  • «میانای برنامه‌سازی کاربردی نماد» به‌روزرسانی شد تا Color.Unspecified را به‌عنوان رنگ‌آمیزی احتمالی بپذیرد که دارایی یا نقاش ارائه‌شده را بدون 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)
  • ‫SelectionContainer بدون پاسخ‌برگ (Ibfadb) اضافه شد
  • «آزمایش‌هایی» برای موقعیت‌های «دستگیره‌های انتخاب» در «ظرف انتخاب» اضافه کنید. (Ie93db)
  • «گزینه ویرایشگر روش ورودی» تصحیح خودکار «صفحه‌کلید» اضافه شد (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫androidx.compose.foundation.Icon به androidx.compose.material.Icon منتقل شده است. اگر نمی‌خواهید از کتابخانه Material استفاده کنید، می‌توانید از عنصر «تصویر» / Modifier.paint()‎ با Painter نیز استفاده کنید. (I9f622)
  • ‫interactionState به Modifier.scrollable،‏ ScrollableColumn، و LazyColumnFor اضافه شد (I81566،‏ b/169509805)
  • ‫alignByBaseline به RowScope اضافه شد و alignWithSiblings به alignBy تغییر نام داد (I06503،‏ b/170628732)
  • ‫Box به تابع درون‌خطی تبدیل شد. (Ibce0c، b/155056091)
  • ‫maxLines به CoreTextField اضافه شد (Ibee58، b/143687793)
  • پیچیدن ملایم به CoreTextField اضافه شد. (I21a4b)

رفع اشکال‌ها

  • ‫VectorPainter را در مقابل rememberVectorPainter منسوخ کنید تا بهتر نشان دهید که API ترکیبی به‌صورت داخلی از «به‌خاطرآوری» برای ماندگار کردن داده‌ها در ترکیب‌ها استفاده می‌کند. (Ifda43)
  • فعال کردن گذارها در ComposeTestRule؛ برداشتن گزینه فعال کردن مکان‌نمای چشمک‌زن از ComposeTestRule. (If0de3)
  • گزینه صفحه‌کلید تک‌خطی به CoreTextField اضافه شد (I72e6d)
  • «میانای برنامه کاربردی شعاع» به CornerRadius تغییر نام داد تا بهتر بیان کند چگونه در سراسر Compose استفاده می‌شود. مستندات به‌روزرسانی شد تا نشان دهد شعاع‌های گوشه منفی به صفر مقید می‌شوند. (I130c7،‏ b/168762961)
  • افزودن قابلیت مشخص کردن اطلاعات بازرس در اصلاح‌گر ترکیبی (Idee08، b/163494569)
  • گزینه «حروف بزرگ صفحه‌کلید» به IME اضافه شد (I8ac38)
  • موقعیت دستگیره راست‌به‌چپ را اصلاح کنید. (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫CoreTextField اکنون از عملکرد مکان‌نما پشتیبانی می‌کند (Id23aa)
  • ‫contentColor() و currentTextStyle() APIs را منسوخ می‌کند و آن‌ها را به‌ترتیب با AmbientContentColor و AmbientTextStyle ambients جایگزین می‌کند. می‌توانید بااستفاده از .current در دارایی محیطی، مانند هر محیط دیگری، به مقدار فعلی دسترسی پیدا کنید. این تغییر برای ایجاد یکپارچگی و جلوگیری از وجود چندین روش برای انجام یک کار انجام شده است. علاوه‌براین، برخی‌از دارایی‌های محیطی را تغییر نام می‌دهد تا هدف آن‌ها را بهتر توصیف کند، به این صورت:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

رفع اشکال‌ها

  • به‌عنوان بخشی از استانداردسازی مقادیر نگهبان برای کلاس‌های درون‌خطی، برای هماهنگی با دیگر کلاس‌های درون‌خطی، نام Color.Unset را به Color.Unspecified تغییر دهید (I97611، b/169797763)
  • کنش‌های دسترس‌پذیری «کپی کردن/جای‌گذاری کردن/برش دادن» اضافه شد (I6db4f)
  • ‫TextOverflow.None معرفی شده است. وقتی سرریز «هیچ» باشد، «نوشتار» دیگر سرریز را مدیریت نمی‌کند و اندازه واقعی‌اش را به «گره چیدمان» گزارش می‌کند. (I175c9، b/158830170)
  • پارامترهای Size.Unspecified به‌روزرسانی شد تا به‌جای Float.POSITIVE_INFINITY به Float.NaN تبدیل شود. پیاده‌سازی‌های «نقاش» به‌روزرسانی شد تا «اندازه.نامشخص» و همچنین «اندازه‌های» غیرمحدود را بررسی کند. (I95a7e)
  • واحد «نوشتن صفحه‌بندی» و یکپارچه‌سازی صفحه‌بندی اضافه شد (Ib85da)
  • ‫LazyListScope را اصلاح کنید تا مقادیر تهی‌پذیر دریافت کند (I1765b)
  • ‫OnPositionedModifier به OnGloballyPositionedModifier تغییر نام داده شد و onPositioned() به onGloballyPositioned() تغییر نام داد. (I587e8، b/169083903)
  • نمونه‌هایی برای LazyColumn/Row (Idc16d) اضافه شد
  • رفع مشکل برای روش‌های items و itemsIndexed برای اجازه دادن به emptyList (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 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام دسته عکس به Box تغییر کرد. ‫foundation.Box که قبلاً وجود داشت به‌نفع Box جدید در compose.foundation.layout منسوخ خواهد شد. عملکرد «چارگوش» جدید این است که وقتی چند فرزند دارد، آن‌ها را روی هم قرار می‌دهد - این عملکرد با «چارگوش» قبلی که عملکردی مشابه «ستون» داشت متفاوت است. (I94893، b/167680279)
  • پارامترهای تزئین جعبه منسوخ شده است. اگر می‌خواهید جعبه‌تان تزئینات/حاشیه داشته باشد، به‌جای آن از «اصلاح‌گرها» استفاده کنید (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)
  • ‫APIs چیدمان سفارشی منسوخ‌شده برداشته شد. (Ic576d، b/168297922، b/168297923)
  • پارامتر unbounded به اصلاح‌کننده‌های wrapContentSize اضافه شد که امکان اندازه‌گیری عنصر چیدمان با محدودیت‌های حداکثر نامحدود را فراهم می‌کند. (I77951، b/158559319)
  • از وارد کردن ایستا محتوای محدوده‌های چیدمان (برای نمونه alignWithSiblings در RowScope) جلوگیری کردیم. درعوض باید از محدوده صریح جایگزین استفاده شود: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be، b/166760797)

رفع اشکال‌ها

  • بسیاری از «میاناهای برنامه‌سازی کاربردی گرافیک» به‌روزرسانی شد
    • میاناهای برنامه‌سازی کاربردی تبدیل چرخش و مقیاس به‌روزرسانی شد تا از یک پارامتر «آفست» برای نشان دادن مختصات محور به‌جای پارامترهای شناور جداگانه برای مختصات x/y در DrawScope و DrawTransform استفاده کند
    • روش‌های Rect.expandToInclude و Rect.join برداشته شد
    • مستندات «شعاع» به‌روز شد تا علاوه‌بر بیضی، بیضی‌شکل را نیز شامل شود
    • اسناد اضافه شد تا نشان دهد سازنده عمومی برای کلاس درون‌خطی «شعاع» نباید مستقیماً فراخوانده شود، بلکه اشیا «شعاع» باید ازطریق سازنده‌های تابع آن‌ها نمونه‌سازی شوند
    • «میاناهای برنامه‌سازی کاربردی RoundRect» برای پُرسمان topRight، bottomRight،‏ bottomCenter، و غیره برداشته شد.
    • ‫Rect.shift منسوخ شده است. به‌جای آن از Rect.translate استفاده کنید
    • ‫RoundRect.grow و Rect.shrink API برداشته شد
    • نام RoundRect.outerRect به Rect.boundingRect تغییر کرد
    • روش‌های RoundRect.middleRect/tallMiddleRect/wideMiddleRect و Rect.isStadium برداشته شد
    • نام RoundRect.longestSide به RoundRect.maxDimension تغییر کرد
    • نام RoundRect.shortestSide به RoundRect.minDimension تغییر کرد
    • ‫RoundRect.center را به‌جای تابع به دارایی تغییر داد
    • سازنده RoundRect به‌روزرسانی شد تا به‌جای پارامترهای جداگانه برای مقادیر شعاع x/y، از خصوصیات «شعاع» استفاده کند
    • «میاناهای برنامه‌سازی کاربردی اندازه» که فرض می‌کرد «مستطیل» با مبدأ در ۰٫۰ است برداشته شد
    • میانای برنامه‌سازی کاربردی مخربی به Radius اضافه شد
    • انتقال توابع افزونه RoundRect مختلف به به‌جای آن، ویژگی‌ها
    • (I8f5c7، b/168762961)
  • بهینه‌سازی‌های عملکرد برای پیمایش LazyColumnFor/LazyRowFor با انجام ندادن ترکیب‌های مجدد غیرضروری درطول هر پیمایش (I64f65، b/168293643، b/167972292، b/165028371)
  • خرابی در LazyColumnFor/LazyRowFor پس‌از پیمایش و سپس تغییر موارد برطرف شد و پیمایش خودکار به بالا هنگام برداشته شدن مورد قبلاً نمایان پیاده‌سازی شد تا دیگر شکاف‌های خالی در انتها نمایش ندهیم (I220ab، b/161480164، b/167855468)
  • دیگر نمی‌توانید محتویات پیمایش‌پذیر را در همان جهت در محتویات پیمایش‌پذیر دیگر مانند ScrollableContainer و LazyColumnFor قرار دهید. هرگز پشتیبانی نمی‌شد و باعث ازکارافتادن پرتاب و همه تنبلی‌های ترکیب کردن عناصر LazyColumnFor می‌شد (I6e101)
  • بسیاری از «میاناهای برنامه‌سازی کاربردی گرافیک» به‌روزرسانی شد
    • ‫DrawScope APIs با روش‌های تبدیل محدوده‌دار به‌روزرسانی شد تا نشان دهد تبدیل فقط در محدوده تماس برگشتی اعمال می‌شود و پس‌از فراخوانی تماس برگشتی برداشته می‌شود
    • مستندات clipPath به‌روزرسانی شد تا به‌جای مستطیل گرد به «مسیر» اشاره کند
    • فاصله ثابت در مستندات برای پارامتر راست در clipPath
    • ‫DrawScope.drawCanvas به drawIntoCanvas تغییر نام داد و پارامتر اندازه برداشته شد
    • پارامترهای dx/dy در روش درج به افقی و عمودی تغییر نام داد
    • سرباری درونی اضافه شد که مقدار درونی یکسانی را برای همه ۴ محدوده ارائه می‌دهد
    • مستندات مربوط به روش درج که نشان می‌داد درج روی هر ۴ طرف اعمال می‌شود برداشته شد
    • سند به‌روزشده برای کلاس Rect
    • نظرات پارامترهای «مستطیل» به‌روز شد تا با سبک kdoc مطابقت داشته باشد
    • ‫Rect.join و Rect.expandToInclude برداشته شد
    • بار اضافه برای Rect.translate(offset) ایجاد شد و Rect.shift منسوخ شد
    • (If086a، b/167737376)
  • ‫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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام InnerPadding به PaddingValues تغییر کرد. (I195f1، b/167389171)
  • کاربردهای گرانش به‌طور پیوسته به تراز یا تراز کردن در میاناهای برنامه‌سازی کاربردی چیدمان تغییر نام داده شد. (I2421a، b/164077038)
  • پارامتر ترازی به «پشته» اضافه شد که امکان تعیین تراز پیش‌فرض برای همه عناصر فرزند «پشته» را فراهم می‌کند. (Ie80ca، b/164085265)

رفع اشکال‌ها

  • ‫DpConstraints و میاناهای برنامه‌سازی کاربردی که از آن استفاده می‌کنند منسوخ شدند. (I90cdb،‏ b/167389835)
  • نام پارامترهای minWidth و maxWidth از widthIn به min و max تغییر کرد. به‌همین ترتیب برای preferredWidthIn،‏ heightIn،‏ preferredHeightIn. (I0e5e1، b/167389544)
  • ‫onNode و دیگر روش‌های سراسری در ComposeTestRule اضافه شد زیرا روش‌های سراسری فعلی منسوخ خواهند شد. (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 هنگام اجرای آزمایش‌هایی که به ManualFrameClock نیاز دارند؛ TestUiDispatcher.Main که دسترسی آسان به توزیع‌کننده اصلی رابط کاربری در آزمایش‌های شما را فراهم می‌کند.

    برای مثال:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (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 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «آرایش spacedBy» برای «ردیف» و «ستون» اضافه شد تا امکان‌پذیر شود فرزندان چیدمان با فاصله ثابت قرار بگیرند. «چیدمان» هم‌راستا نیز اضافه شد تا امکان قرار دادن فرزندان چیدمان در کنار یکدیگر و هم‌راستا در «ردیف/ستون» براساس «هم‌راستایی» فراهم شود. روش‌های قبلی Arrangement.Vertical#arrange و Arrangement.Horizontal#arrange منسوخ شده‌اند و نوشتن «ترتیب‌های» سفارشی در آینده پشتیبانی نخواهد شد. (I6733d،‏ b/161985975)
  • ‫Offset به کلاس به‌خط تبدیل شده است (Iaec70)
  • کاربردهای برگشتی OnFocusChanged را از «فیلد نوشتاری» برداشت. درعوض از Modifier.focusObserver استفاده کنید. (I51089، b/161297615)
  • ‫Modifier.drawBorder نامناسب شده است. درعوض از Modifier.border استفاده کنید. کلاس داده «حاشیه» با BorderStroke جایگزین شده است (I4257d، b/158160576)
  • ‫VerticalScroller و HorizontalScroller برداشته شده‌اند. درعوض از ScrollableColumn/Row استفاده کنید. ‫Modifier.drawBackground برداشته شده است. از «اصلاح‌گر.پس‌زمینه» استفاده کنید (I73b0d، b/163019183)
  • اصلاح‌کننده‌های fillMax* را که به‌عنوان منسوخ علامت‌گذاری شده‌اند از LazyItemScope بردارید زیرا افزودن صحیح چنین اصلاح‌کننده‌هایی را برای مواردی که فرزندان مستقیم LazyColumnFor نیستند دشوارتر می‌کند (Ifa78d)
  • پیاده‌سازی LazyColumn/LazyRow به‌عنوان DSL اضافه شد (I93cc6)
  • «محدودیت‌ها» اکنون یک کلاس درون‌خطی است (I88736)
  • امکان تعیین اندازه چیدمان به کسری از فضای دردسترس بااستفاده از اصلاح‌کننده‌های fillMaxWidth،‏ fillMaxHeight، و fillMaxSize اضافه شد. (I945bb، b/161562591)

رفع اشکال‌ها

  • پارامتر اصلاح‌گری به SelectionContainer اضافه شد (I4aada، b/161487952)
  • ‫mergePolicy لامبدا به SemanticsPropertyKey اضافه شد. از این می‌توان برای تعریف خط‌مشی سفارشی برای معناشناسی ادغام کردن mergeAllDescendants استفاده کرد. خط‌مشی پیش‌فرض این است که اگر مقدار والد ازقبل وجود داشته باشد از آن استفاده شود، درغیراین‌صورت از مقدار فرزند استفاده می‌شود. (Iaf6c4، b/161979921)
  • نام PlacementScope.placeAbsolute() به PlacementScope.place() تغییر کرد و نام PlacementScope.place() قبلی به PlacementScope.placeRelative() تغییر کرد. درنتیجه، روش PlacementScope.place() دیگر به‌طور خودکار موقعیت را در زمینه‌های راست‌به‌چپ قرینه نخواهد کرد. اگر این تغییر مطلوب است، درعوض از PlacementScope.placeRelative() استفاده کنید. (I873ac، b/162916675)
  • عنصر منسوخ‌شده «فیلدتکست پرشده» برداشته شد. لطفاً برای دریافت پیاده‌سازی «طراحی مواد» فیلد نوشتاری «پرشده»، از TextField استفاده کنید. (I5e889)
  • پارامتر backgroundColor به LinearProgressIndicator اضافه شد و بالشتک داخلی از CircularProgressIndicator برداشته شد. ‫ProgressIndicatorConstants.DefaultProgressAnimationSpec جدیدی اضافه شد که می‌تواند به‌عنوان AnimationSpec پیش‌فرض هنگام پویانمایی پیشرفت بین مقادیر استفاده شود (If38b5، b/161809914، b/161804677)
  • ‫state { ... } قابل ترکیب اکنون به‌نفع فراخوانی‌های صریح به remember { mutableStateOf(...) } برای وضوح منسوخ شده است. این کار سطح کلی میانای برنامه‌سازی کاربردی و تعداد مفاهیم مدیریت وضعیت را کاهش می‌دهد و با الگوی by mutableStateOf() برای واگذاری دارایی کلاس مطابقت دارد. (Ia5727)
  • نام RRect به RoundRect تغییر کرد تا بهتر با الگوهای نام‌گذاری Compose مطابقت داشته باشد سازنده‌های تابع مشابهی برای RRect ایجاد شد و سازنده‌های تابع RRect منسوخ شد (I5d325)
  • ‫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 حاوی این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫LazyItemScope برای پارامتر itemContent فهرست‌های Lazy اضافه شد. این تابع اصلاح‌کننده‌هایی را برای پر کردن حداکثر اندازه والد ارائه می‌دهد که مورد استفاده‌ای را که در آن عنصر باید نمای دید را پر کند و اصلاح‌کننده معمولی 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 اضافه شد. ‫LazyRowItems/LazyColumnItems اکنون از عملکرد محتوای پیچیده پشتیبانی می‌کند. (Ib39fc)
  • نام ZoomableState به ZoomableController تغییر کرده است. پشتیبانی از منحنی سفارشی برای smoothScale اضافه شده است. عملکرد enabled و onZoomStarted اضافه شده است (If8b8f)
  • نام Material FilledTextField به TextField تغییر کرد و نام TextField بنیادی به BaseTextField تغییر کرد تا ساده‌ترین API موردنظر به‌راحتی قابل‌کشف و استفاده باشد (Ia6242،‏ b/155482676)
  • ‫AdapterList منسوخ‌شده قبلی برداشته شده است. به‌جای آن از LazyColumnItems استفاده کنید (I12b9b)
  • نام Modifier.drawBackground به Modifier.background تغییر کرده است (I13677)
  • زبان نشانه‌گذاری توسعه‌پذیر قدیمی ConstraintLayout برداشته شد. نام ConstraintSet2 به ConstraintSet تغییر کرد. (If58d1، b/162450908)
  • ‫Modifier.absoluteOffset() و Modifier.absoluteOffsetPx() اضافه شد. برخلاف اصلاح‌کننده‌های جابه‌جایی، اصلاح‌کننده‌های جابه‌جایی مطلق در زمینه راست‌به‌چپ به‌طور خودکار قرینه نمی‌شوند (I3aa21)
  • ‫Row و Column اکنون تابع درون‌خطی هستند و سربار استفاده از آن‌ها را به‌طور قابل‌توجهی کاهش می‌دهند. (I75c10)

رفع اشکال‌ها

  • رفع اشکالات گسترده در Address API (I077bc)
    1. برداشتن میانای OffsetBase استفاده‌نشده
    2. تراز کردن کلاس‌های «آفست» و «آفست داخلی» برای داشتن سطح میانای برنامه‌سازی کاربردی یکپارچه
    3. برای هماهنگی با Offset API،‏ IntOffset.Origin را به IntOffset.Zero تغییر نام دهید
    4. روش nativeCanvas از رابط Canvas منتقل شد تا از مصرف‌کنندگان برای ایجاد نمونه‌های Canvas خودشان پشتیبانی شود
    5. کلاس EmptyCanvas برای بازسازی DrawScope ایجاد شد تا به‌جای lateinit پارامتر غیرتهی باشد و غیرتهی بودن فیلد تضمین شود
    6. نام‌گذاری مجدد ثابت‌های ClipOp به «حروف آغازین کلمات بزرگ»
    7. نام‌گذاری مجدد شمارش‌های FilterQuality به «حروف آغازین کلمات بزرگ»
    8. نام‌گذاری مجدد شمارش‌های StrokeJoin به «حروف آغازین کلمات بزرگ»
    9. نام شمارش‌های PointMode به «حروف آغازین کلمات بزرگ» تغییر کرد
    10. نام‌گذاری شمارشی PaintingStyle به «حروف آغازین کلمات بزرگ» تغییر کرد
    11. نام‌گذاری مجدد شمارشگرهای PathFillType به «حروف آغازین کلمات»
    12. نام‌گذاری مجدد شمارش‌های StrokeCap به «حروف آغازین بزرگ»
    13. پیاده‌سازی DrawCache به‌روزرسانی شد تا دیگر از پارامترهای lateinit استفاده نکند
    14. ‫DrawScope به‌روزرسانی شد تا دیگر از واگذاری تنبل برای پارامترهای داخلی fillPaint و strokePaint استفاده نکند
    15. «تصویر» قابل‌تألیف به‌روزرسانی شد تا از «جعبه» برای سربار کمتر استفاده شود
    16. به‌روزرسانی کلاس «طرح کلی» برای داشتن شرح‌های ‎ @Immutable
    17. ‫PathNode به‌روز شد تا برای هر دستورالعمل مسیر، حاشیه‌نویسی‌های ‎ @Immutable داشته باشد
    18. زیرترکیب برداری به‌روزرسانی شد تا بررسی‌های شرطی اضافی برای برابری برداشته شود زیرا ترکیب ازقبل آن‌ها را مدیریت می‌کند
    19. روش‌های سازنده همراه Rect منسوخ شد و به‌جای آن از سازنده‌های تابع استفاده شد
    20. سازندگان تابع و کلاس‌های «قلم‌مو» با ‫@Immutable و @Stable APIs به‌روزرسانی شدند
    21. به‌روزرسانی عدد ثابت VertexMode به PascalCase
    22. روش selectPaint در DrawScope به‌روزرسانی شد تا پارامترهای ضربه را در نقاشی به‌صورت شرطی بازنویسی کند، اگر تغییر کرده باشند
    23. «اندازه» به‌روزرسانی شد تا میانای برنامه‌سازی کاربردی ساختارشکن اضافه شود، UnspecifiedSize به Unspecified تغییر نام داده شد، و روش‌های استفاده‌نشده برداشته شد
  • ‫MonotonicFrameAnimationClock اضافه شد که به شما امکان می‌دهد از MonotonicFrameClock به‌عنوان AnimationClockObservable استفاده کنید تا شکاف بین ساعت‌های جدید مبتنی بر روال‌های مشترک و میاناهای برنامه‌سازی کاربردی که هنوز از ساعت‌های قدیمی مبتنی بر برگشت تماس استفاده می‌کنند را پر کنید.

    معادل MonotonicFrameClock برای ManualAnimationClock اکنون ManualFrameClock است. (I111c7, b/161247083)

  • ‫SemanticsNodeInteraction.performPartialGesture حذف شد. درعوض از SemanticsNodeInteraction.performGesture استفاده کنید. (Id9b62)

  • نام SemanticsNodeInteraction.getBoundsInRoot() به SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf،‏ b/161336532) تغییر کرد

  • میاناهای برنامه‌سازی کاربردی برای پشتیبانی از راست‌به‌چپ به‌روز شده است. ‫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 حاوی این تعهدات است.

برای استفاده از نسخه 0.1.0-dev15 «نگارش»، باید:

به‌روزرسانی وابستگی‌ها

  • برای استفاده از نسخه 0.1.0-dev15 «نوشتن»، باید وابستگی‌هایتان را مطابق با تکه‌کدهای جدیدی که در بالا در اعلام وابستگی‌ها نشان داده شده است به‌روز کنید.

تغییرات میانای برنامه‌سازی کاربردی

  • مشابه پارامتر جدید در ScrollableColumn/ScrollableRow، اکنون LazyColumnItems/LazyRowItems نیز پارامتر contentPadding دارند که امکان افزودن حاشیه برای محتوا پس‌از برش را فراهم می‌کند، که فقط ازطریق پارامتر اصلاح‌گر امکان‌پذیر نیست. همچنین امکان افزودن فاصله فقط قبل‌از اولین مورد/بعداز آخرین مورد را فراهم می‌کند. (Ibc24e)
  • بازخوان onFocusChange در فیلدهای نوشتاری به onFocusChanged تغییر نام داد (Ida4a1)
  • ‫VerticalScroller و HoriziontalScroller منسوخ شده‌اند. از ScrollableColumn و ScrollableRow برای تجربه داخلی با رفتار و پارامترهای Column/Row، یا Modifier.verticalScroll و Modifier.horizontalScroll در عنصر خودتان استفاده کنید. به‌همین ترتیب، ScrollerPosition به‌نفع ScrollState منسوخ شده است (I400ce، b/157225838، b/149460415، b/154105299)
  • میاناهای برنامه‌سازی کاربردی Modifier.draggable و Modifier.scrollable بازطراحی شدند. ‫DragDirection به‌نفع Orientation برداشته شد. وضعیت موردنیاز برای پیمایش ساده شده است. نام ScrollableState به ScrollableController تغییر کرده است (Iab63c، b/149460415)
  • اکنون دارایی‌های معنایی تک‌مقدار از سبک تماس استفاده می‌کنند. برای مثال، «semantics { hidden = true }» اکنون به‌صورت زیر نوشته می‌شود: semantics { hidden() }. (Ic1afd, b/145951226, b/145955412)
  • اندازه‌های گوشه استفاده‌شده توسط RoundedCornerShape و CutCornerShape اکنون می‌تواند بزرگ‌تر از ۵۰٪ باشد (Id2340، b/160400213)
  • پارامتر پیش‌فرض ContentScale برای عنصر ترکیب‌شدنی Image از Inside به Fit تغییر کرد. این کار به‌منظور مقیاس‌بندی رفتار «نقاش» زیرین انجام شد، اگر اندازه چیدمان بزرگ‌تر از اندازه ذاتی نقاش باشد، درحالی‌که نسبت ابعادی حفظ می‌شود. این رفتار بهتر با انتظارات مطابقت دارد برای ارائه اندازه‌های ثابت به «تصویر» درحالی‌که بر رفتار پیش‌فرض تأثیر نمی‌گذارد اگر فقط از اندازه ذاتی برای محاسبه اندازه عنصر ترکیبی استفاده شود. (I40ae3, b/159838006)
  • از AnimationSpec به‌جای AnimationBuilder در APIهای سطح بالا استفاده کنید تا مفهوم مشخصات پویانمایی ایستا را روشن کنید -با برداشتن الزام لامبدا برای ایجاد AnimationSpecهایی مثل tween و spring،‏ DSL انتقال را بهبود دهید. درعوض، آن‌ها مستقیماً پارامترهای سازنده را می‌گیرند. -بهبود سهولت کلی استفاده از AnimationSpec با باز کردن سازنده‌ها به‌جای تکیه بر سازندگان -تغییر مدت و تأخیر برای KeyFrames و Tween به Int. این کار تبدیل نوع غیرضروری و سربار روش را حذف می‌کند (برای پشتیبانی از هر دو نوع Long و Int). (Ica0b4)
  • قابل‌کلیک برداشته شد. از Modifier.clickable (I84bdf) استفاده کنید
  • ‫LazyRowItems اضافه شد - پیمایش افقی مشابه LazyColumnItems (Ibbcf7)
  • میاناهای برنامه‌سازی کاربردی پویانمایی بدون وضعیت سطح پایین معرفی شد. این میاناهای برنامه‌سازی کاربردی (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، استفاده از کلاس «اندازه» را استاندارد کنید. این کار مزایای کلاس درون‌خطی را برای استفاده از long به‌منظور بسته‌بندی ۲ مقدار شناور برای نشان دادن عرض و ارتفاع نشان‌داده‌شده به‌صورت شناور فراهم می‌کند. (Ic0191)
  • برای ادغام کردن تعداد کلاس‌های استفاده‌شده برای نمایش اطلاعات مکان‌یابی، به‌جای استفاده از PxPosition، از کلاس «آفست» استفاده کنید. این کار مزایای کلاس درون‌خطی را برای استفاده از عدد صحیح طولانی برای بسته‌بندی ۲ مقدار ممیز شناور برای نمایش انحراف‌های x و y که به‌صورت ممیز شناور نمایش داده می‌شوند فراهم می‌کند. (I3ad98)
  • «اصلاح‌گر.بزرگ‌نمایی‌شدنی» برای قابلیت بزرگ‌نمایی با نزدیک کردن انگشتان اضافه شد (Id5d63)
  • عنصر قابل‌تغییر وضعیت منسوخ شده است. به‌جای آن از Modifier.toggleable استفاده کنید (I35220، b/157642842)
  • ‫MutuallyExclusiveSetItem منسوخ شده است. درعوض از Modifier.selectable استفاده کنید. (I02b47, b/157642842)
  • ‫TestTag اکنون منسوخ شده است. درعوض از Modifier.testTag استفاده کنید. (If5110،‏ b/157173105)
  • پارامتر fontWeight را به «نوشتار» اضافه می‌کند، که قبلاً به‌اشتباه اضافه نشده بود (I56937)
  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع ابتدایی برای پارامترهای پیکسل (I19d02)
  • ‫VerticalScroller اکنون «ستون» را به‌صورت آماده ارائه می‌دهد. ‫HorizontalScroller اکنون «ردیف» را به‌صورت آماده ارائه می‌دهد. (Ieca5d، b/157020670)
  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیبی به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع ابتدایی برای پارامترهای پیکسل (Iede0b)
  • ‫Modifier.indication به بسته پایه اضافه شد. از آن برای نمایش فشار/کشیدن/نشانگرهای دیگر در عناصر تعاملی سفارشی‌تان استفاده کنید (I8425f، b/155287131)
  • اکنون VerticalScroller و HorizontalScroller از پیمایش معکوس پشتیبانی می‌کنند و isReversed روی ScrollerPosition تنظیم شده است (I953bd)
  • از افزودن عناصر ترکیبی به چیدمان نوشتاری پشتیبانی می‌کند. (I1373c)
  • پیاده‌سازی‌های CanvasScope ادغام شد بنابراین اکنون فقط DrawScope و ContentDrawScope وجود دارد نام CanvasScope به DrawScope تغییر کرد. ‫DrawScope به‌روزرسانی شد تا واسط Density را پیاده‌سازی کند و LayoutDirection را ارائه دهد زیرکلاس DrawScope در ContentDrawScope حذف شد ‫Painter و PainterModifier به‌روزرسانی شده‌اند تا دیگر خودشان ویژگی RTL را حفظ نکنند زیرا DrawScope این ویژگی را ازقبل بدون ارائه دستی آن ارائه می‌دهد (I1798e)
  • ‫DrawBackground API منسوخ‌شده به‌نفع APIs افزونه drawBackground در «اصلاح‌گر» برداشته شد. پیاده‌سازی‌های رنگ، قلم‌مو، و drawBackground رنگ‌آمیزی بازسازی شد تا مسیرهای کد نیز کاهش یابد و همچنین نیاز به ایجاد «اصلاح‌گر» به‌عنوان بخشی از ترکیب برداشته شود. (I0343a)
  • میاناهای برنامه‌سازی کاربردی سطح بالاتر ترکیب به‌روزرسانی‌شده که «بوم نقاشی» را آشکار می‌کند به‌جای آن «محدوده بوم نقاشی» را آشکار می‌کند. این کار نیاز مصرف‌کنندگان به نگهداری اشیاء Paint خود را برطرف می‌کند. مصرف‌کنندگانی که هنوز به Canvas نیاز دارند می‌توانند از روش افزونه drawCanvas استفاده کنند که برای صدور فرمان‌های طراحی با Canvas زیرین بازخوانی ارائه می‌دهد. (I80afd)
  • ‫HorizontalScroller و VerticalScroller موقعیت پیمایش خود را بااستفاده از وضعیت نمونه ذخیره‌شده بازیابی نمی‌کنند. (Ia0fae، b/155075048)
  • ‫FocusManagerAmbient برداشته شد. برای دریافت تمرکز، از FocusModifier.requestFocus استفاده کنید. (Ic4826)
  • چیدمان جدول به‌طور موقت برداشته شد تا زمانی که آن را با «میانای برنامه‌سازی کاربردی» جدید دوباره دردسترس قرار دهیم. (Id88a7)
  • ‫CanvasScope API ایجاد شد که شیء Canvas را می‌پیچد تا سطح API طراحی بی‌حالت و بیانی را نمایان کند. تبدیل‌ها در محدوده گیرنده خودشان قرار دارند و اطلاعات اندازه نیز به محدوده درج مربوطه محدود می‌شود. برای پیکربندی عملیات طراحی، نیازی نیست که مصرف‌کننده شیء وضعیت Paint خود را حفظ کند.

    ‫CanvasScopeSample اضافه شد و همچنین برنامه نمایشی به‌روزرسانی شد تا شامل نمایش گرافیک بیانی (Ifd86d) شود

  • ‫ColoredRect برداشته شد. به‌جای آن از «چارگوش کاربر» با اصلاح‌گر drawBackground استفاده کنید (I983c7، b/152753731)

  • افزودن سفارشی‌سازی رنگ مکان‌نما به «فیلد نوشتاری» (I6e33f)

  • اکنون بااستفاده از SoftwareKeyboardController که ازطریق بازخوان onTextInputStarted ارائه می‌شود، می‌توان صفحه‌کلید نرم‌افزاری را پنهان/آشکار کرد (I8dc44، b/151860051)

  • ‫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)

  • به‌روزرسانی «فیلد نوشتاری» - در بُعد افقی، همه فضای دردسترس اختصاص‌داده‌شده به آن را اشغال خواهد کرد (Ib08df، b/154638552)

  • ‫InteractionState و Interaction اضافه شد و ساختن عناصری که به تغییرات وضعیت واسط کاربر مثل فشار دادن و کشیدن واکنش نشان می‌دهند آسان‌تر شد (Icfe25، b/152525426)

  • RectangleShape از androidx.ui.foundation.shape.* به androidx.ui.graphics.* منتقل شد (Ia74d5،‏ b/154507984)

  • همه موارد استفاده از «رنگ» تهی‌پذیر در API با غیرتهی‌پذیر جایگزین شد و به‌جای تهی از Color.Unset استفاده شد (Iabaa7)

  • به‌روزرسانی «میانای برنامه‌سازی کاربردی فیلد نوشتاری» - ادغام کردن پاسخ‌برهای onFocus و onBlur در پاسخ‌بر onFocusChange(Boolean) واحد با پارامتر (I66cd3)

  • ‫ScaleFit به ContentScale تغییر نام داد ‫ContentScale از ui-graphics به 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 می‌رسد ‫Inside که با Alignment.Center استفاده می‌شود به همان نتیجه ImageView.ScaleType.CENTER_INSIDE می‌رسد (I45f09، b/152842521)

  • «ارائه رنگ محتوا» را برمی‌دارد، به‌جای آن فقط از «رنگ محیط محتوا» مستقیماً با Providers (Iee942) استفاده کنید

  • پارامتر رنگ را به نوشتار اضافه می‌کند و به این ترتیب، رنگ سبک نوشتار را می‌توان بدون نیاز به ادغام دستی با سبک ارائه‌شده در زمینه لغو کرد. (I41a66)

  • بهبود دادن DrawModifier API:

    • محدوده گیرنده را برای draw() به ContentDrawScope تغییر داد
    • همه پارامترهای draw() برداشته شد
    • ‫DrawScope همان رابط کاربری CanvasScope سابق را دارد
    • ‫ContentDrawScope روش drawContent() دارد (Ibaced، b/152919067)
  • ‫ColoredRect منسوخ شده است. درعوض از Box(Modifier.preferredSize(width, height).drawBackground(color)) استفاده کنید. (I499fa، b/152753731)

  • سیستم زمینه‌سازی شکل براساس مشخصات طراحی Material به‌روزرسانی شده است. اکنون می‌توانید شکل‌های کوچک، متوسط، و بزرگ ارائه دهید تا اکثر عناصر از آن‌ها استفاده کنند (Ifb4d1)

  • جایگزین کردن «اصلاح‌گر به‌علاوه اپراتور» با توابع افزونه کارخانه (I225e4)

  • «کشیدنی» به اصلاح‌گر منتقل شده است (Id9b16، b/151959544)

  • ‫Text از androidx.ui.core به بسته androidx.ui.foundation منتقل شد. (I87ce5)

  • افزودن پارامتر enabled به «چارگوش انتخاب»، «کلید»، و «قابل‌تغییر» (I41c16)

  • «موج» اکنون یک «اصلاح‌گر» است. تا زمانی که «کلیک‌کردنی» تبدیل نشده است، استفاده توصیه‌شده Clickable(onClick = { ... }, modifier = ripple()) است (Ie5200، b/151331852، b/150060763)

  • ‫VectorPainter API اضافه شد تا جایگزین میانای برنامه‌سازی کاربردی زیرترکیب موجود برای گرافیک برداری شود. نتیجه زیرترکیب یک شیء VectorPainter به‌جای DrawModifier است. ترکیب‌های قبلی منسوخ‌شده DrawVector به‌نفع VectorPainter.

    ‫Image(Painter) API به PaintBox(Painter) تغییر نام داد ‫Vector composable ایجاد شد که مانند ‫Image composable عمل می‌کند، با این تفاوت که به‌جای ‫ImageAsset از VectorAsset استفاده می‌کند (I9af9a،‏ b/149030271)

  • «ترکیب‌شدنی تصویر ایجادشده» برای مدیریت اندازه‌بندی/چیدمان علاوه‌بر رسم کردن «دارایی تصویر» معین در صفحه. این عنصر ترکیبی همچنین از رسم هر نمونه دلخواه Painter با رعایت اندازه ذاتی آن و همچنین پشتیبانی از اندازه ثابت یا حداقل اندازه معین (Ibcc8f) پشتیبانی می‌کند

  • اکنون دکمه، FloatingActionButton، و Clickable پارامتر enabled جداگانه‌ای دارند. برخی‌از پارامترهای «دکمه» تغییر نام داده یا ترتیب آن‌ها تغییر کرده است. (I54b5a)

  • نام «تصویر» به «دارایی تصویر» تغییر کرد تا تفاوت بین داده‌های «تصویر» و عنصر ترکیبی «تصویر» که برای شرکت در چیدمان و رسم محتوا استفاده می‌شود بهتر مشخص شود.

    روش افزونه‌ای در android.graphics.Bitmap ایجاد شد، Bitmap.asImageAsset()، تا نمونه‌ای از ImageAsset ایجاد کند که برای ترکیب توسعه برنامه سنتی Android با چارچوب Compose مفید است. (Id5bbd)

  • ترکیب‌کننده DrawImage برداشته شد. از ImagePainter برای کشیدن تصویر در چیدمان موجود، یا از SimpleImage برای معرفی تصویری که فضا می‌گیرد استفاده کنید (I595e1، b/149827027)

  • عنصر پشته از جهت‌گیری راست‌به‌چپ پشتیبانی می‌کند (Ic9e00)

  • ‫Icon،‏ IconButton، و IconToggleButton اضافه شد، AppBarIcon برداشته شد. می‌توانید مستقیماً موارد استفاده موجود از AppBarIcon را با IconButton جایگزین کنید، و اکنون هدف لمسی صحیح را خواهند داشت. برای اطلاعات استفاده، نمونه‌ها را ببینید، و برای «نمادهای Material» ارائه‌شده که می‌توانید مستقیماً با این عناصر استفاده کنید، «نمادها» را ببینید. (I96849)

  • ترکیب‌شونده DrawShape برداشته شد. درعوض از اصلاح‌گر DrawBackground استفاده کنید. (I7ceb2)

  • ‫AdapterList اضافه شد، عنصر فهرست پیمایش‌شدنی که فقط موارد نمایان را می‌سازد و چیدمان می‌کند. مشکلات شناخته‌شده فعلی شامل این است که فقط عمودی است و به‌طور کامل از عهده همه موارد تغییر در فرزندانش برنمی‌آید. (Ib351b)

  • عنصر پیمایش‌شدنی اضافه شده است که امکان ایجاد «پیمایشگرهای»/ «فهرست‌های» سفارشی را فراهم می‌کند (I5fd37)

  • نام پس‌زمینه به DrawBackground تغییر کرد و به‌طور پیش‌فرض به‌خاطر سپرده می‌شود (Ia0bd3)

  • افزودن پارامترهای حاشیه، قاب، شکل، و پس‌زمینه به «چارگوش» (I05027، b/148147281)

  • عنصر «بوم نقاشی» اضافه شد. این عنصر ترکیبی مقداری فضا (ارائه‌شده توسط کاربر) را اشغال می‌کند و به شما امکان می‌دهد بااستفاده از CanvasScope (I0d622) طراحی کنید

  • تغییر نام اصلاح‌گر Border به DrawBorder (I8ffcc)

  • عنصر «جعبه» برای ترکیب چیدمان و عملکرد مشترک طراحی اضافه شد. (I6e2a7)

  • پیمایشگرها اکنون رفتار حرکت پرتاب بومی Android را نشان می‌دهند. (I922af، b/147493715)

  • ‫DrawBorder با «اصلاح‌گر حاشیه» (Id335a) جایگزین شد

  • ‫Modifier.tag به Modifier.layoutId تغییر نام داد تا با Modifier.testTag اشتباه نشود. (I995f0)

  • پارامتر درصد هنگام ایجاد دستورالعمل‌های «طرح‌بندی محدودیت» به «کسر» تغییر نام داده است. (Ida2db)

  • پشتیبانی از حاشیه‌های موانع ConstraintLayout اضافه شد. (I47ffe)

  • پشتیبانی از راست‌به‌چپ در «چیدمان محدود» اصلاح شد. میاناهای برنامه‌سازی کاربردی ناآگاه به راست‌به‌چپ اضافه شد. (I3b1c7)

  • زبان جدیدی برای «طرح محدودیت» اضافه شده است. برای جزئیات بیشتر، لطفاً نمونه‌ها را ببینید. (Icaa9a)

  • گزارمان ‎ @ExperimentalLayout را اضافه کرد. ‫ConstraintLayout،‏ FlowRow، و FlowColumn اکنون با آن برچسب‌گذاری شده‌اند تا نشان دهند که میاناهای برنامه‌سازی کاربردی آن‌ها تغییر خواهد کرد. (I412a8)

  • ‫Modifier.padding(InnerPadding) اضافه شد (I94985،‏ b/157133803)

  • ‫RowAlign و ColumnAlign منسوخ‌شده در «ردیف» و «ستون» برداشته شد. (If60d4، b/155858731)

  • ‫LayoutTag() منسوخ‌شده برداشته شد، لطفاً درعوض از Modifier.tag()‎ استفاده کنید. ‫Modifier.matchParent() منسوخ‌شده برداشته شد، لطفاً درعوض از Modifier.matchParentSize()‎ استفاده کنید. (If8044)

  • اصلاح‌گر چیدمان offsetPx اضافه شد که می‌توان از آن برای تعریف کردن جابه‌جایی‌های (پویا) در پیکسل استفاده کرد. (I5af57)

  • ‫AlignmentLineOffset قابل ترکیب منسوخ شده است، لطفاً درعوض از اصلاح‌گر relativePaddingFrom()‎ استفاده کنید. ترکیب‌کننده CenterAlignmentLine برداشته شد. (I60107)

  • اصلاحگر چیدمان defaultMinSizeConstraints اضافه شد که محدودیت‌های اندازه را فقط زمانی برای چیدمان پیچیده تنظیم می‌کند که محدودیت‌های متناظر ورودی نامشخص باشد (۰ برای محدودیت‌های حداقل و بی‌نهایت برای محدودیت‌های حداکثر). (I311ea، b/150460257)

  • محتوی برداشته شد. به‌جای آن از Box استفاده کنید (Ibbc2b، b/151407926)

  • اصلاح‌گرهای منسوخ‌شده LayoutWidth/Height/Size برداشته شد. (Ib0bc1)

  • مقادیر پارامتر پیش‌فرض برای اصلاح‌گر جابه‌جایی اضافه شد. (I37f06)

  • اصلاح‌گر لایه‌گذاری متقارن اضافه شد. (I39840)

  • اصلاح‌گر منسوخ‌شده «نسبت ابعادی چیدمان» برداشته شد. (I65a74)

  • اصلاح‌کننده‌های منسوخ‌شده LayoutAlign برداشته شد. (I10877)

  • اشکالی در اصلاح‌کننده‌های عرض و ارتفاع برطرف شد که باعث می‌شد چیدمان پیچیده بدون محدودیت‌های محور مخالف اندازه‌گیری شود. ‫(I210b8،‏ b/154797971)

  • پارامترهای verticalGravity و horizontalGravity را به ترتیب به «ردیف» و «ستون» اضافه کرد. (I7dc5a)

  • ‫wrapContentWidth و wrapContentHeight به‌روزرسانی شدند تا به‌جای هر «ترازی»، «تراز» عمودی یا افقی را انتظار داشته باشند. «تعدیل‌کننده جاذبه» به‌روزرسانی شد تا «تراز» عمودی یا افقی را بپذیرد. «ردیف»، «ستون»، و «پشته» به‌روزرسانی شدند تا از «ترازهای» پیوسته سفارشی پشتیبانی کنند. (Ib0728)

  • «تراز» را با مقادیر دلخواه نمونه‌سازی‌پذیر کرد. «ترازهای یک‌بعدی» اضافه شد. (Ia0c05)

  • نام EdgeInsets به InnerPadding تغییر کرد. نام پارامتر innerPadding در «دکمه‌های Material» به paddding تغییر کرد. (I66165)

  • ‫alignToSiblings اکنون به‌جای Placeable، یک Measured را می‌پذیرد. (I5788d)

  • اصلاح‌کننده‌هایی برای اندازه‌گیری به اندازه‌های ذاتی اضافه شد و مؤلفه‌هایی که این هدف را برآورده می‌کردند منسوخ شدند. (I8295d)

  • پشتیبانی از سفارشی‌سازی ابعاد فرزندان ConstraintLayout اضافه شد (Idb1a5)

  • ترکیب‌های Wrap و Center منسوخ‌شده برداشته شد. (I29e23)

  • ‫LayoutModifier2، میانای برنامه‌سازی کاربردی جدیدی برای تعریف اصلاح‌کننده‌های چیدمان، اضافه شد؛ ‫LayoutModifier (If32ac) منسوخ شد

  • اعضای RowScope و ColumnScope اکنون در خارج از Row و Column قابل‌دسترس هستند. (I3a641)

  • «جای‌آگهی» منسوخ شده است. به‌جای آن از Box استفاده کنید. (I675ce،‏ b/151407926)

  • اصلاح‌گر LayoutOffset برای جبران موقعیت چیدمان اضافه شد (I0b8a3)

  • پشتیبانی اولیه از «راست به چپ» در چیدمان Compose (Ia5519)

  • ‫LayoutAlign به‌روزرسانی شد تا دیگر فضای دردسترس را پر نکند (I2b14f)

  • «ترکیب‌پذیر نسبت ابعادی» به‌نفع اصلاح‌گر برداشته شد. حذف ترکیب‌پذیرهای منسوخ FlexColumn،‏ FlexRow، و اصلاح‌گر «فاصله‌گذاری» (Iec8a7)

  • اصلاح‌گر «چیدمان انعطاف‌ناپذیر» را برای «ردیف» و «ستون» (I0d820) برداشت

  • «دستگیره‌های انتخاب کشیدنی» را پیاده‌سازی کنید تا انتخاب «فیلد نوشتاری» را تغییر دهید. (I27032)

  • «فشار طولانی و کشیدن» را برای «انتخاب فیلد نوشتاری» پیاده‌سازی می‌کند. (I17919)

رفع اشکال‌ها

  • ‫FocusModifier به‌نفع Modifier.focus،‏ Modifier.focusRequester،‏ Modifier.focusObserver منسوخ شده است. ‫FocusState و FocusDetailedState به‌نفع FocusState2 منسوخ شده‌اند (I46919، b/160822875، b/160922136)
  • نام runOnIdleCompose به runOnIdle تغییر کرد (I83607)
  • چندین API آزمایشی برای شهودی‌تر شدن تغییر نام دادند. همه میاناهای برنامه‌سازی کاربردی findXYZ به onNodeXYZ تغییر نام داده شدند. نام همه «میاناهای برنامه‌سازی کاربردی doXYZ» به performXYZ تغییر کرد. (I7f164)
  • «اصلاح‌گر.موج» منسوخ‌شده قبلی را برمی‌دارد. اکنون «کلیک‌کردنی» از موج به‌عنوان نشانه پیش‌فرض استفاده می‌کند (اگر در برنامه‌تان MaterialTheme {} تنظیم کرده باشید)، بنابراین در اکثر موارد می‌توانید فقط از «کلیک‌کردنی» استفاده کنید و نشانه موج را به‌صورت رایگان دریافت کنید. اگر نیاز دارید رنگ / اندازه / پارامتر محدودشده را برای موج سفارشی‌سازی کنید، می‌توانید به‌صورت دستی RippleIndication ایجاد کنید و آن را به‌عنوان پارامتر نشانه به عنصر کلیک‌کردنی منتقل کنید. (I663b2, b/155375067)
  • میاناهای برنامه‌سازی کاربردی منسوخ‌شده آزمایش اندازه برداشته شد. (Iba0a0)
  • میانای برنامه‌سازی کاربردی آزمایشی LayoutNode ساخته شد (I4f2e9)
  • نسخه ۱ قفل کردن جهت پیمایش در سراسر «نوشتن» پیاده‌سازی شده است. (I1ce7a، b/150289741)
  • اکنون «بالاپَرها»، «کادرهای گفتگو»، و «منوها» از MaterialTheme زمینه‌ای ارث می‌برند (Ia3665، b/156527485)
  • پارامتر جهت چیدمان از بلوک اندازه‌گیری تابع Layout()‎ برداشته شد. بااین‌حال، جهت چیدمان در داخل بازخوانی ازطریق شیء حوزه اندازه‌گیری (Ic7d9d) دردسترس است
  • ‫AbsoluteArrangement را اضافه کنید - امکان چیدمان فرزندان در «ردیف» را بدون قرینه‌سازی خودکار در راست‌به‌چپ (I3a1df) فراهم می‌کند
  • گزارمان @Untracked منسوخ شده است. جایگزینی با @ComposableContract(tracked=false) (Id211e)
  • قبل‌از این تغییر، افزایه کامپایلر Compose اگر (I5205a، b/158123804) وجود داشت، به‌طور غیرساده‌ای تماس‌های سازنده‌ها را در تابع @Composable رهگیری می‌کرد
  • ‫viewModel() composable را اضافه کنید که امکان ایجاد یا دریافت ViewModel ازقبل ایجادشده را به روشی مشابه با نحوه عملکرد آن در Activity یا Fragment فراهم می‌کند (I5fdd1)
  • کلاس «شعاع» بازسازی شد تا به کلاس درون‌خطی تبدیل شود. روش‌های ایجاد همراه را به‌نفع سازنده تابع با پارامتر پیش‌فرض برداشتیم تا شعاع در امتداد محور y با شعاع پارامتر محور x اجباری مطابقت داشته باشد.

    ‫DrawScope.drawRoundRect به‌روزرسانی شد تا به‌جای ۲ مقدار شناور جداگانه برای شعاع در امتداد محور x و y، یک پارامتر Radius مصرف کند (I46d1b)

  • استفاده از کلاس Px در کلاس‌های مختلف compose به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل جایگزین شد. کلاس Px به‌طور کامل حذف شد (I3ff33)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (I086f4)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (Id3434)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف compose به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (I97a5a)

  • مکان‌نمای «فیلد نوشتاری» پویانمایی چشمک‌زن دارد (Id10a7)

  • اشاره‌های جزئی دیگر نیازی به انتقال GestureToken (Id7ae5) ندارند

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیبی به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع ابتدایی برای پارامترهای پیکسل (I57bff)

  • ‫Modifier.semantics برای اجازه دادن به استفاده از عناصر سطح بالا، از حالت منسوخ خارج شده است. (I4cfdc)

  • نام AnnotatedString.Builder.addAnnotationString را به addStringAnnotation تغییر دهید. (I5059e)

  • ‫Alignment API به‌روزرسانی شد و از تراز مطلق (که در زمینه راست‌به‌چپ به‌طور خودکار قرینه نمی‌شود) پشتیبانی شد (I38cd3)

  • فرزندان «چیدمان» و «تغییردهنده چیدمان» را می‌توان با جهت چیدمان متفاوتی اندازه‌گیری کرد. (Ibd731)

  • پارامتر اختیاری rect اضافی به ImagePainter اضافه کنید تا از رسم زیربخش ImageAsset زیرین پشتیبانی کند (I0ea9e)

  • ازکارافتادگی در AdapterList هنگام برداشتن موارد برطرف شد (Ic64b0، b/153195921)

  • نحوه اندازه‌گیری اولین چیدمانی را که در بلوک activity.setContent { } قرار می‌دهید تغییر دادیم. قبلاً مجبور بود کل صفحه فعالیت را پر کند، اما اکنون طوری رفتار می‌کند که انگار چیدمانتان را درون یک «پشته» قرار داده‌اید: می‌تواند کوچک‌تر از صفحه باشد و در گوشه بالا سمت راست صفحه قرار می‌گیرد. اگر رفتار قدیمی را می‌خواهید، می‌توانید «اصلاح‌گر.پرکردنحداکثراندازه()» را برای چیدمانتان اعمال کنید. (Ie88a7، b/153453714)

  • واحد ui-text-compose به ui-text تغییر نام داد. ui-text اکنون شامل عناصر ترکیب‌پذیر CoreText و CoreTextField است (Ib7d47)

  • نام واحد ui-text به ui-text-core تغییر کرد (I57dec)

  • ترکیب‌پذیرهای ui-framework/CoreText،‏ CoreTextField به ui-text-compose منتقل شد. بهتر است ui-text-compose را در پروژه‌تان بگنجانید. (I32042)

  • ‫runOnIdleCompose و runOnUiThread اکنون کارکردهای سراسری هستند به‌جای روش‌هایی در ComposeTestRule. (Icbe8f)

  • عملگرهای نماینده دارایی [Mutable]State به افزونه‌ها منتقل شدند تا از بهینه‌سازی‌های نماینده دارایی Kotlin 1.4 پشتیبانی کنند. برای ادامه استفاده از by state { ... } یا by mutableStateOf(...)، تماس‌گیرندگان باید وارد کردن‌ها را اضافه کنند. ‫(I5312c)

  • ‫DrawLayerModifier و drawLayer() اکنون به‌طور پیش‌فرض clipToBounds و clipToOutline را روی false تنظیم می‌کنند. (I0eb8b، b/152810850)

  • نام LayoutResult به MeasureResult تغییر کرد. (Id8c68)

  • ترکیب‌بندی Center منسوخ شده است. باید با اصلاح‌گر LayoutSize.Fill + LayoutAlign.Center یا با یکی از تابع‌های ترکیب‌پذیر Box یا Stack با اصلاح‌گرهای مناسب اعمال‌شده جایگزین شود (Idf5e0)

  • نام LayoutFlexible به LayoutWeight تغییر کرد. نام پارامتر «محکم» به «پر کردن» تغییر کرد. (If4738)

  • ‫DrawVector از تابع ترکیب‌پذیر معمولی به تابع بازگرداننده Modifier drawVector() تغییر کرده است که بردار را به‌عنوان پس‌زمینه طرح‌بندی رسم می‌کند. (I7b8e0)

  • جایگزین کردن تابع ترکیب‌شدنی «کلیپ» با اصلاح‌کننده drawClip(). ‏ DrawClipToBounds اصلاح‌کننده مناسبی است که وقتی فقط نیاز دارید با شکل مستطیل به مرزهای لایه کلیپ کنید استفاده می‌شود. (If28eb)

  • تابع ترکیب‌بندی DrawShadow با اصلاح‌کننده drawShadow() جایگزین شد. اکنون سایه‌ها به‌عنوان بخشی از «اصلاح‌کننده لایه» رسم می‌شوند. (I0317a)

  • ‫androidx.compose.ViewComposer به androidx.ui.node.UiComposer منتقل شده است ‫androidx.compose.Emittable برداشته شده است. با ComponentNode اضافی بود. androidx.compose.ViewAdapters برداشته شده است. دیگر مورد استفاده پشتیبانی‌شده‌ای نیست. ‫Compose.composeInto منسوخ شده است. درعوض از setContent یا setViewContent استفاده کنید. ‫Compose.disposeComposition منسوخ شده است. به‌جای آن از روش dispose در Composition برگشتی از setContent استفاده کنید. androidx.compose.Compose.subcomposeInto به androidx.ui.core.subcomposeInto منتقل شده است نام ComponentNode#emitInsertAt به ComponentNode#insertAt تغییر کرده است نام ComponentNode#emitRemoveAt به ComponentNode#removeAt تغییر کرده است نام ComponentNode#emitMode به ComponentNode#move تغییر کرده است (Idef00)

  • ‫Wrap composable منسوخ شده است. می‌توان آن را با اصلاح‌گر LayoutAlign یا با عنصر ترکیبی Stack (Ib237f) جایگزین کرد

  • جهت چیدمان از گره چیدمان والد به فرزندان منتقل می‌شود. اصلاح‌گر جهت چیدمان اضافه شد. ‫(I3d955)

  • ‫Painter.toModifier را به Painter.asModifier تغییر نام دهید زیرا «اصلاح‌گر» جدید ایجادشده به «نقاش» اصلی ارجاع می‌دهد که می‌تواند در چندین نمونه «اصلاح‌گر» هم‌رسانی شود (I7195b)

  • پشتیبانی از جهت راست‌به‌چپ در اصلاح‌گر LayoutPadding (I9e8da)

  • ‫Density و DensityScope در یک میانای واحد ادغام شدند. اکنون به‌جای ambientDensity() می‌توانید از DensityAmbient.current استفاده کنید. به‌جای withDensity(density) فقط with(density) (I11cb1)

  • کلاس ValueHolder برداشته شد. کلاس‌های AnimatedValue و AnimatedFloat را بازسازی کردیم تا فیلد مقدار پویانمایی را انتزاعی کنیم تا زیرکلاس‌ها بتوانند به‌روزرسانی مقدار را مشاهده کنند.

    • کلاس‌های مدل برای AnimatedValue،‏ AnimatedFloat، و غیره اضافه شد.
    • مجموعه جدیدی از APIهای @Composable سبک‌وزن برای پویانمایی بین مقادیر اضافه شد.
    • (I79530)
  • تغییرات ناگهانی در ambients API. برای جزئیات، گزارش و مستندات Ambient<T> را ببینید (I4c7ee، b/143769776)

  • موقعیت‌های خط تراز Int که از Placeable#get(AlignmentLine) برگردانده می‌شوند اکنون غیرتهی هستند. اگر خط تراز موردپُرسمان وجود نداشته باشد، AlignmentLine.Unspecified برگردانده خواهد شد. (I896c5، b/158134875)

  • اشکال ConstraintLayout که باعث ازکارافتادن در بازآرایی‌ها می‌شد برطرف شد. (Ibee5a، b/158164341)

  • «میانای برنامه‌سازی کاربردی» لامبدای انتهایی WithConstraints تغییر کرده است. اکنون به‌جای دو پارامتر، حوزه گیرنده‌ای دارد که علاوه‌بر محدودیت‌ها و layoutDirection، ویژگی‌های minWidth،‏ maxWidth،‏ minHeight، و maxHeight را در Dp ارائه می‌دهد (I91b9a، b/149979702)

  • نام LayoutModifier2 به LayoutModifier تغییر کرد. (Id29f3)

  • توابع اندازه‌گیری ذاتی در Layout و LayoutModifier2 اکنون گیرنده IntrinsicMeasureScope دارند که میانای برنامه‌سازی کاربردی پُرسمان ذاتی را با جهت چیدمان ضمنی منتشرشده ارائه می‌دهد. (Id9945)

  • ‫LayoutDirectionAmbient منسوخ شده است. برای خواندن جهت چیدمانی که توسط منطقه تعریف شده است، از localeLayoutDirection در ConfigurationAmbient (I851b1) استفاده کنید

  • ‫positionInParent و boundsInParent را برای LayoutCoordinates اضافه کرد. (Icacdd، b/152735784)

  • ‫ParentData ترکیبی منسوخ شده است. باید اصلاح‌گری بسازید که رابط ParentDataModifier را پیاده‌سازی کند، یا اگر فقط نیاز دارید فرزندان چیدمان را برچسب‌گذاری کنید تا در بلوک اندازه‌گیری شناسایی شوند، از اصلاح‌گر LayoutTag استفاده کنید. (I51368،‏ b/150953183)

  • ‫OnPositionedModifier و OnChildPositionedModifier را اضافه کنید تا جایگزین توابع ترکیب‌پذیر OnPositioned و OnChildPositioned شود. (I2ec8f)

  • فاصله منفی در LayoutPadding مجاز نیست. برای جبران‌های موقعیت منفی، باید از LayoutOffset استفاده شود. (Ifb5b1)

  • ‫WithConstraints پارامتر LayoutDirection (I6d6f7) را دریافت کرد

  • پرچم ComposeFlags.COMPOSER_PARAM به true به‌روز شد که استراتژی تولید کد را برای افزایه نوشتن تغییر خواهد داد. در سطح بالا، این امر باعث می‌شود توابع @Composable با یک پارامتر مصنوعی اضافی تولید شوند که به تماس‌های @Composable بعدی منتقل می‌شود تا زمان اجرا بتواند اجرا را به‌درستی مدیریت کند. این یک تغییر باینری مهم است، بااین‌حال، باید سازگاری سطح منبع را در تمام استفاده‌های مجاز از compose حفظ کند. (I7971c)

  • ‫LayoutCoordinates تغییر کرد تا providedAlignmentLines به‌جای Map به Set تبدیل شود و LayoutCoordinates عملگر get() را برای بازیابی مقدار پیاده‌سازی کند. این کار باعث می‌شود اصلاح‌گرها بتوانند یک یا چند مقدار مجموعه را بدون ایجاد مجموعه جدید برای هر اصلاح‌گر اصلاح کنند. (I0245a)

  • ‫LayoutCoordinates دیگر ویژگی موقعیت ندارد. وقتی «LayoutModifiers»، چرخش، یا مقیاس‌بندی درنظر گرفته می‌شود، دارایی موقعیت معنایی ندارد. به‌جای آن، توسعه‌دهندگان باید از parentCoordinates و childToLocal() برای محاسبه تبدیل از یک LayoutCoordinate به دیگری استفاده کنند.

    ‫LayoutCoordinates به‌جای PxSize از IntPxSize برای خصوصیت اندازه استفاده می‌کند. چیدمان‌ها از اندازه‌های پیکسل عدد صحیح برای چیدمان‌ها استفاده می‌کنند، بنابراین همه اندازه‌های چیدمان باید از اعداد صحیح استفاده کنند و نه مقادیر ممیز شناور. (I9367b)

  • بهبودهای سطح API «محدودیت‌ها» (I0fd15)

  • ‫TextDirection.Content اضافه شد (I48f36)

  • «منو نوارابزار» را تنظیم کنید تا کپی، برش، و جای‌گذاری به‌درستی نمایش داده شود. (Id3955)

  • «نوارابزار شناور» را برای انتخاب «فیلد نوشتار» اضافه کنید. (Ie8b07)

  • نام TextDirectionAlgorithm به TextDirection تغییر کرد (I75ce8)

  • نام TextDirection به ResolvedTextDirection تغییر کرد (I3ff38)

  • «بازخورد لمسی» را به «انتخاب فیلد نوشتار» اضافه کنید. (I58050)

  • روش‌های «کپی»، «برش»، و «جای‌گذاری» را به «انتخاب فیلد نوشتاری» اضافه کنید. (Idb70b)

  • ‫TestTag و «معناشناسی» حذف شده است. به‌جای آن از 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» استفاده می‌کنید باید androidx.activity.ComponentActivity (یا AppCompatActivity) را گسترش دهد. اکنون setContent در android.app.Activity منسوخ شده است (Idb25a، b/153141084)

  • نام بسته ui-android-text (androidx.text) با androidx.ui.text.platform جایگزین شد تا با خط‌مشی androidx هماهنگ شود. (I42711)