Compose Foundation
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(برای همه بستههای Compose، اسناد مرجع میانای برنامهسازی کاربردی را ببینید)
| جدیدترین بهروزرسانی | نسخه پایدار | نامزد انتشار | انتشار نسخه بتا | نسخه آلفا |
|---|---|---|---|---|
| ۷ اکتبر ۲۰۲۶ | ۱.۱۲.۱ | - | 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) - اشکالی را در تشخیص عدم فعالیت زمانبندی پیشواکشی چیدمان تنبل برطرف میکند. قبلاً، زمانبند ممکن بود وقتی قاب بهشدت تأخیر داشت، بهاشتباه خود را در حالت آماده بهکار درنظر بگیرد که احتمالاً هنگام پیمایش منجر به لرزش میشد. برای بازگشت به رفتار قدیمی، پرچم
isLazyPrefetchSchedulerIdleTimeFixEnabledcompose را روی 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) - «
SelectionStateAPI جدیدی ایجاد شد تا به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) -
FlexBoxDSL اکنون بهجای داراییها (مثلاً 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 شامل این تعهدات است.
تغییرات میانای برنامهسازی کاربردی
- اشکالی برطرف شد که در آن
targetValueAnchoredDraggableStateدر برخیاز سناریوها با چندین لنگر در یک افست یکسان نادرست بود. وقتی در لنگری که همان انحراف لنگر دیگر را داشت مستقر میشد،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هنگام استفاده درLookaheadScopeI286ad
نسخه 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 شامل این تعهدات است.
رفع اشکالها
- پرچم
isCacheWindowForPagerEnabledغیرفعال شد. (Iffdec، b/458193632)
نسخه 1.10.0-beta02
۵ نوامبر ۲۰۲۵
androidx.compose.foundation:foundation-*:1.10.0-beta02 منتشر شد. نسخه 1.10.0-beta02 شامل این تعهدات است.
نسخه 1.10.0-beta01
۲۲ اکتبر ۲۰۲۵
androidx.compose.foundation:foundation-*:1.10.0-beta01 منتشر شد. نسخه 1.10.0-beta01 شامل این تعهدات است.
تغییرات میانای برنامهسازی کاربردی
- همه میاناهای برنامه کاربردی لمس غیرمستقیم را بهروز میکند تا از نام میاناهای برنامه کاربردی اشارهگر غیرمستقیم برای مطابقت با میاناهای برنامه کاربردی ورودی اشارهگر استفاده کند. (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)
- سند
DraggableAnchorsminPosition/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آشکار شدند تا موارد را در منو زمینهای اضافه و حذف کنند. همچنین میاناهای برنامهسازی کاربردی ابتدایی زیر را عمومی کرد تا بتوان منو زمینهای سفارشی ساخت:TextContextMenuProviderTextContextMenuDataProviderTextContextMenuDataTextContextMenuComponentLocalTextContextMenuDropdownProvider-
LocalTextContextMenuToolbarProvider(I1b7b0)
-
LazyLayoutItemProviderرا پایدار کنید (Icce09، b/261565751) - ویژگیهای انتخاب هوشمند Android معرفی شد که میتوان آنها را ازطریق
ComposeFoundationFlags.isSmartSelectionEnabledفعال/غیرفعال کرد. همچنینcompositionLocalLocalTextClassifierCoroutineContextثابتی را آشکار کرد که میتوان از آن برای مشخص کردن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) - بازنویسی
requestAutofillAPI برای وجود در خارج از مدیر تکمیل خودکار. (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) - پیادهسازی پیشفرض برای
stickyHeaderDSL جدید اضافه شد. (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) -
confirmValueChangeAnchoredDraggableStateمنسوخ شد. بهجای وتو کردن تغییرات حالت، لنگرهای غیرمجاز نباید در مجموعه لنگر فعال باشند و ازOverscrollEffectباید برای نشان دادن دردسترس نبودن کنش درخواستی استفاده شود. (Ia717f) - «مدیر تکمیل خودکار» را به یک میانکار تغییر میدهد. (I84914، b/376080755)
-
OverscrollEffect#withoutDrawingوOverscrollEffect#withoutEventHandlingAPI را اضافه میکند - این APIها نمونه بستهبندیشدهای از جلوه پیمایش بیشازحد ارائهشده ایجاد میکنند که بهترتیب رویدادها را ترسیم / مدیریت نمیکند، که امکان ارائه پیمایش بیشازحد در مؤلفهای جدا از مؤلفهای که رویدادها را ارسال میکند فراهم میکند. برای مثال، غیرفعال کردن رسم پیمایش اضافی در فهرست تنبل، و سپس رسم پیمایش اضافی بهطور جداگانه در بالا / جای دیگر. (Idbb3d، b/266550551، b/204650733، b/255554340، b/229537244) - درحال افزودن پشتیبانی از تکمیل خودکار در نوارابزار نوشتار. (Ie6a4c)
OverscrollConfigurationوLocalOverscrollConfigurationرا منسوخ میکند وrememberPlatformOverscrollFactoryرا برای ایجاد نمونهای از / سفارشیسازی پارامترهای پیادهسازی پیشفرض پیمایش بیشازحد اضافه میکند. برای غیرفعال کردن پیمایش اضافی، بهجایLocalOverscrollConfiguration provides null، ازLocalOverscrollFactory provides nullاستفاده کنید. برای تغییر رنگ درخشش / حاشیه، بهجایLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)، ازLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)استفاده کنید. (Ie71f9، b/255554340، b/234451516)- خصوصیت
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وLocalOverscrollFactoryAPI را اضافه میکند تا پیکربندی پیمایش اضافی در سلسلهمراتب را امکانپذیر کند. مقدار ارائهشده ازطریق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منسوخ شده است. جریمه عملکرد اجتنابناپذیر بالایی دارد و مانع بهینهسازیهای دیگر میشود. درعوض، باید ازIndicationNodeFactoryAPI جدید استفاده کنید.
- «میانای برنامهسازی کاربردی» جدیدی به نام «نشانگر» (
-
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 شامل این تعهدات است.
رفع اشکالها
- توابع مرتبط با ورودی نوشتاری
SemanticsNodeInteractionperformTextReplacement،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) - نام پارامتر
basicMarqueedelayMillisبه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) - مشکلی که در آن
currentValueAnchoredDraggableStateهنگام نزدیک شدن به مرزهای ایالت تغییر میکرد برطرف شد. (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وLocalContextMenuThemeProvidableCompositionLocalمرتبط را اضافه میکند. با ارائه ترکیب محلی، میتوان رنگهای منو زمینهای در فیلدهای نوشتاری و نوشتار قابلانتخاب را تغییر داد. (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) -
targetValueAnchoredDraggableStateدیگر آستانههای موقعیتی را درنظر نمیگیرد. اکنون آستانه ضمنی ۵۰٪ دارد، یعنی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) -
GraphicsLayerAPI جدیدی معرفی کنید تا انعطافپذیری بیشتری در جای آگهی و پرداز کردن نمونههای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) -
currentValueAnchoredDraggableاکنون هنگام عبور از نقطه اتکا بهروزرسانی میشود. از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منسوخ شده است. جریمه عملکرد اجتنابناپذیر بالایی دارد و مانع بهینهسازیهای دیگر میشود. درعوض، باید ازIndicationNodeFactoryAPI جدید استفاده کنید.
رفع اشکالها
- اکنون
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بهdragAndDropTargetModifierاضافه شد تا از جلسه کشیدن و رها کردن پذیرفته شود. این لامبدا درصورت علاقهمند بودن به جلسه کشیدن و رها کردن،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)«میاناهای برنامهسازی کاربردی»
SwipeToRevealMaterial (برای «کارتها» و «تراشهها») اکنون برای ایجاد آن جایگاهها بهجای نمونههای مبتنی بر کلاس داده، به «میانای برنامهسازی کاربردی» مبتنی بر جایگاه (طبق توصیه 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)
-
BringIntoViewCalculatorAPI معرفی شد که میتوان از آن برای سفارشیسازی نحوه پاسخدهی عناصر، مثل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.NodeAPI منتقل شدهاند و سربار ترکیب اولیه را کاهش دادهاند. - بهبود پایداری «پیجرها». بسیاری از اشکالات برطرف شده است.
-
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را درSnapFlingBehaviorPager معرفی کنید. (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وHyphensAPI در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) -
PinnableContainerapi که ازطریق فهرستهای تنبل با محلی ترکیبی منتشر میشود معرفی شد که امکان سنجاق کردن مورد فعلی را فراهم میکند. این یعنی وقتی این مورد از نما پیمایش میشود، از آن صرفنظر نخواهد شد. برای مثال،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) - برگرداندن
beyondBoundCountAPI از 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)
رفع اشکالها
- اکنون
BasicTextFieldcursorBrushمیتواند بدون بازراهاندازی زمانسنج مکاننما پویانمایی شود. (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)
- Desktop
- وقتی فوکوس بین فیلدهای نوشتار تغییر میکند، نوع ورودی صفحهکلید نرم دیگر سوسو نمیزند. (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 حاوی این تعهدات است.
تغییرات میانای برنامهسازی کاربردی
- نشانگرهای تاریخی آزمایشی به PointerEventChange اضافه شد. (Ic1fd8، b/197553056، b/199921305)
رفع اشکالها
- پشتیبانی از دسترسپذیری برای پیمایشپذیرها (هم تنبل و هم غیرتنبل) درخصوص پیمایش (I6cdb0) اصلاح شد
نسخه 1.1.0-alpha04
۱۵ سپتامبر ۲۰۲۱
androidx.compose.foundation:foundation:1.1.0-alpha04 و androidx.compose.foundation:foundation-layout:1.1.0-alpha04 منتشر شدند. نسخه 1.1.0-alpha04 شامل این تعهدات است.
تغییرات میانای برنامهسازی کاربردی
-
performGestureوGestureScopeمنسوخ شدند و باperformTouchInputوTouchInjectionScopeجایگزین شدند. (Ia5f3f، b/190493367) -
touchBoundsInRootبهSemanticsNodeاضافه شد که شامل حداقل اندازه هدف لمسی است تا توسعهدهندگان بتوانند مطمئن شوند که هدفهای لمسی حداقلهای دسترسپذیری را برآورده میکنند. (I2e14b, b/197751214)
رفع اشکالها
- پشتیبانی از پیمایش اضافی کششی به دستگاههای Android 12 اضافه شده است. (Iccf3c، b/171682480)
نسخه 1.1.0-alpha03
۱ سپتامبر ۲۰۲۱
androidx.compose.foundation:foundation:1.1.0-alpha03 و androidx.compose.foundation:foundation-layout:1.1.0-alpha03 منتشر شدند. نسخه 1.1.0-alpha03 حاوی این تعهدات است.
ویژگیهای جدید
- Compose
1.1.0-alpha03بهروزرسانی شد تا به Kotlin1.5.30وابسته باشد. (I74545)
تغییرات میانای برنامهسازی کاربردی
- جلوه درخشش برای پیمایش اضافه شد. «میانای برنامهسازی کاربردی» آزمایشی جدیدی بهنام 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 و AGP7.1برطرف خواهد شد. (b/194289155)
نسخه 1.0.0-rc02
۱۴ ژوئیه ۲۰۲۱
androidx.compose.foundation:foundation:1.0.0-rc02 و androidx.compose.foundation:foundation-layout:1.0.0-rc02 منتشر شدند. نسخه 1.0.0-rc02 حاوی این تعهدها است.
- پردازش حاشیه برای شکلهای عمومی بهروزرسانی شد تا مشکلات مسیرهای تعریفشده با ابعاد ثابت برطرف شود. (aosp/1748871, b/191817116)
نسخه 1.0.0-rc01
۱ ژوئیه ۲۰۲۱
androidx.compose.foundation:foundation:1.0.0-rc01 و androidx.compose.foundation:foundation-layout:1.0.0-rc01 منتشر شدند. نسخه 1.0.0-rc01 حاوی این تعهدات است.
تغییرات میانای برنامهسازی کاربردی
- اکنون «بوم» از پارامتر 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)
-
FocusStateenum با رابط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برداشته شد.
RememberObserveronAbandonedرا اضافه میکند که اگر نمونه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، برای ساختن از پایین به بالا بسیار کارآمدتر از ساختن از بالا به پایین هستند. قبلاز این تغییر، برای پیادهسازی از پایین به بالا، پشتهای از درجها لازم بود که باید در هر برنامهای که به ساختار از پایین به بالا برای عملکرد نیاز داشت کپی میشد. با این تغییر،ApplierinsertBottomUp()را ملغی میکند تا درخت را از پایین به بالا بسازد و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") } }
نسخه 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)
- برداشتن میانای OffsetBase استفادهنشده
- تراز کردن کلاسهای «آفست» و «آفست داخلی» برای داشتن سطح میانای برنامهسازی کاربردی یکپارچه
- برای هماهنگی با Offset API، IntOffset.Origin را به IntOffset.Zero تغییر نام دهید
- روش nativeCanvas از رابط Canvas منتقل شد تا از مصرفکنندگان برای ایجاد نمونههای Canvas خودشان پشتیبانی شود
- کلاس EmptyCanvas برای بازسازی DrawScope ایجاد شد تا بهجای lateinit پارامتر غیرتهی باشد و غیرتهی بودن فیلد تضمین شود
- نامگذاری مجدد ثابتهای ClipOp به «حروف آغازین کلمات بزرگ»
- نامگذاری مجدد شمارشهای FilterQuality به «حروف آغازین کلمات بزرگ»
- نامگذاری مجدد شمارشهای StrokeJoin به «حروف آغازین کلمات بزرگ»
- نام شمارشهای PointMode به «حروف آغازین کلمات بزرگ» تغییر کرد
- نامگذاری شمارشی PaintingStyle به «حروف آغازین کلمات بزرگ» تغییر کرد
- نامگذاری مجدد شمارشگرهای PathFillType به «حروف آغازین کلمات»
- نامگذاری مجدد شمارشهای StrokeCap به «حروف آغازین بزرگ»
- پیادهسازی DrawCache بهروزرسانی شد تا دیگر از پارامترهای lateinit استفاده نکند
- DrawScope بهروزرسانی شد تا دیگر از واگذاری تنبل برای پارامترهای داخلی fillPaint و strokePaint استفاده نکند
- «تصویر» قابلتألیف بهروزرسانی شد تا از «جعبه» برای سربار کمتر استفاده شود
- بهروزرسانی کلاس «طرح کلی» برای داشتن شرحهای @Immutable
- PathNode بهروز شد تا برای هر دستورالعمل مسیر، حاشیهنویسیهای @Immutable داشته باشد
- زیرترکیب برداری بهروزرسانی شد تا بررسیهای شرطی اضافی برای برابری برداشته شود زیرا ترکیب ازقبل آنها را مدیریت میکند
- روشهای سازنده همراه Rect منسوخ شد و بهجای آن از سازندههای تابع استفاده شد
- سازندگان تابع و کلاسهای «قلممو» با @Immutable و @Stable APIs بهروزرسانی شدند
- بهروزرسانی عدد ثابت VertexMode به PascalCase
- روش selectPaint در DrawScope بهروزرسانی شد تا پارامترهای ضربه را در نقاشی بهصورت شرطی بازنویسی کند، اگر تغییر کرده باشند
- «اندازه» بهروزرسانی شد تا میانای برنامهسازی کاربردی ساختارشکن اضافه شود، 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)