نوشتن UI
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
( به اسناد مرجع API برای همه بسته های نوشتن مراجعه کنید )
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
15 ژانویه 2025 | 1.7.6 | - | - | 1.8.0-alpha08 |
ساختار
Compose ترکیبی از 7 شناسه گروه Maven در androidx
است. هر گروه شامل یک زیرمجموعه هدفمند از عملکرد است که هر کدام مجموعه ای از یادداشت های انتشار خود را دارند.
این جدول گروه ها و پیوندهای هر مجموعه از یادداشت های انتشار را توضیح می دهد.
گروه | توضیحات |
---|---|
آهنگسازی.انیمیشن | انیمیشن هایی را در برنامه های Jetpack Compose خود بسازید تا تجربه کاربر را غنی تر کنید. |
compose.compiler | توابع @Composable را تغییر دهید و بهینه سازی ها را با افزونه کامپایلر Kotlin فعال کنید. |
تألیف.بنیاد | برنامه های Jetpack Compose را با بلوک های ساختمانی آماده بنویسید و پایه را گسترش دهید تا قطعات سیستم طراحی خود را بسازید. |
آهنگسازی.مواد | رابط کاربری Jetpack Compose را با اجزای طراحی مواد آماده برای استفاده بسازید. این نقطه ورود سطح بالاتر Compose است که برای ارائه مؤلفه هایی مطابق با آنچه در www.material.io توضیح داده شده است طراحی شده است. |
نوشتن.مواد3 | ایجاد رابط کاربری Jetpack Compose با 3 مؤلفه طراحی متریال، تکامل بعدی طراحی متریال. Material 3 شامل قالبها و اجزای بهروز شده و ویژگیهای شخصیسازی Material You مانند رنگ پویا است و به گونهای طراحی شده است که با سبک بصری جدید Android 12 و رابط کاربری سیستم هماهنگ باشد. |
نوشتن. زمان اجرا | بلوکهای بنیادی مدل برنامهنویسی Compose و مدیریت حالت، و زمان اجرا اصلی برای هدف قرار دادن افزونه Compose Compiler. |
compose.ui | مؤلفههای اساسی نوشتن رابط کاربر برای تعامل با دستگاه، از جمله طرحبندی، طراحی، و ورودی مورد نیاز است. |
اعلام وابستگی ها
برای افزودن وابستگی به Compose، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.compose.ui:ui:1.7.2" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
کاتلین
dependencies { implementation("androidx.compose.ui:ui:1.7.2") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 1.8
نسخه 1.8.0-alpha08
15 ژانویه 2025
androidx.compose.ui:ui-*:1.8.0-alpha08
منتشر شد. نسخه 1.8.0-alpha08 حاوی این commit ها است.
تغییرات API
- تبدیل
AutofillManager
به یک کلاس انتزاعی. ( I0a3b0 ) - چندین مشکل مرتبط با فوکوس، از جمله خرابی زمانی که IME سعی میکند روی
ComposeView
بدون موارد قابل فوکوس تمرکز کند، تغییر فوکوس درAndroidViews
کودک، و درخواست فوکوس خروج ازAndroidView
را برطرف کرد. ( Ia03c3 , b/369256395 , b/378570682 , b/376142752 ) - تغییر
FocusEnterExitScope.cancelFocus()
بهcancelFocusChange()
( I89959 ) - اکنون می توانید انسدادهای Composable را با
RectInfo.calculateOcclusions()
محاسبه کنید. - تابع افزونه در
DelegatableNode
برای ثبت شنونده برای تغییرات طرح کلی اضافه شده است. ( I68b59 )
رفع اشکال
- فعالیتی که در هنگام استفاده از
ComposeContentTestRule.setContent
به عنوان میزبان برای composable مورد آزمایش استفاده میشود، اکنون از موضوعTheme.Material.Light.NoActionBar
استفاده میکند تا از همپوشانیActionBar
با محتوای آزمایشی هنگام هدفگیری SDK 35 جلوگیری شود. برای انصراف از این رفتار ، می توانید وابستگی بهui-test-manifest
را حذف کنید و یک ورودی فعالیت در برنامه آزمایشی خود اضافه کنید AndroidManifest.xml برایComponentActivity
با موضوع دلخواه شما. ( I7ae1b , b/383368165 ) - فونتهای منبع با تنظیمات تنوع یکسان، اکنون از ذخیره بیش از حد که باعث اعمال تنظیمات نادرست تغییرات میشود، جلوگیری میکنند. ( If3dff , b/372044241 )
-
AnnotatedString.fromHtml
اکنون از تگ های<ul>/<li>
پشتیبانی می کند. ( I7c2fe , b/299662276 , b/139326648 )
مشارکت خارجی
- یک رابط Clipboard جدید و یک ترکیب محلی برای آن اضافه شده است. ( I80809 )
نسخه 1.8.0-alpha07
11 دسامبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha07
منتشر شد. نسخه 1.8.0-alpha07 حاوی این commit ها است.
تغییرات API
- مالک از
LayoutNode
برای ابزارها در معرض دید قرار گرفت. ( I26f7f ) - دارای
LocalAutofillHighlightColor
ترکیب محلی استفاده از نوع رنگ. ( I0e05b ) -
UrlAnnotation
منسوخ شده و روشهای آن را بهعنوان آزمایشی علامتگذاری کنید. ( IC0021 )
رفع اشکال
- رفع خرابی
IndexOutOfBoundsException
هنگام استفاده ازLinkAnnotation
درBasicText
یا Text composable ( be7605 , b/374115892 ) - مشکلی که فیلدهای متنی پر شده با شکل سفارشی خط نشانگر را قطع نمیکرد، برطرف شد. ( I4f87f , b/380704151 )
- پس زمینه های از دست رفته را با اسکرین شات های طولانی رفع کنید. ( I4d57a )
- این کتابخانه اکنون از حاشیهنویسیهای پوچ JSpecify استفاده میکند که نوع استفاده هستند. توسعه دهندگان Kotlin باید از آرگومان های کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
( Idfef8 , b/326456246 ) - هنگام اجرا در Android Q+، پشتیبانی از Compose را برای رنگهای گسترده و HDR بهروزرسانی کنید. ( Icd8be , b/379135036 )
- فونتهای منبعی که بارگیری نمیشوند، اکنون بهجای رفتار قبلی که یک استثنا را انجام میدادند، بیصدا به فونت پیشفرض برمیگردند. ( Ib6a49 )
- رفع فوکوس از دست رفته زمانی که
AndroidView
جدا و متصل است. ( I53446 ) -
requestFocus()
از اکشن طرح بندی محدود بپذیرید. ( Ia8461 )
مشارکت خارجی
-
BringIntoViewResponderModifierNode
را به UI اضافه کنید، که راه جدیدی برای پیاده سازی عملکرد Bring Into View و همچنین امکان پیاده سازی در سطح پلت فرم را فراهم می کند. ( Ia6dd8 )
نسخه 1.8.0-alpha06
13 نوامبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha06
منتشر شد. نسخه 1.8.0-alpha06 حاوی این تعهدات است.
تغییرات API
- اصلاح کننده
stylusHoverIcon
را اضافه می کند. ( Iff20a , b/331289114 ) - مدیر تکمیل خودکار را به یک رابط تبدیل می کند. ( I84914 , b/376080755 )
-
requestFocus(FocusDirection)
را بهfocusRequester
وFocusTargetModifierNode
اضافه می کند تا امکان فوکوس با جهت خاصی را فراهم کند. ( I5d9ec , b/245755256 ) -
FocusProperties.enter
وFocusProperties.exit
باonEnter
وonExit
جایگزین شدهاند و به جای پارامترFocusDirection
از محدوده گیرنده استفاده میکنند. ( I6e667 ) - افزودن پشتیبانی تکمیل خودکار در نوار ابزار متن. ( Ie6a4c )
- API به
Modifier.focusRestorer()
تغییر می کند ( I99c03 ):- نام پارامتر به "fallback" تغییر کرد
- پارامتر اکنون یک
FocusRequester
است و نه یک لامبدا - پارامتر اکنون غیر NULL با Default به عنوان مقدار پیش فرض است
- حذف حاشیه نویسی
@Experimental
از رابط مدیر تکمیل خودکار. این ویژگی همچنان WIP را هدف قرار داده است، اما ما نمیخواهیم @Expemiental API ( Id8398 ) را معرفی کنیم. -
LocalHapticFeedback
اکنون زمانی که Vibrator API نشان می دهد که هاپتیک ها پشتیبانی می شوند، یک اجرای پیش فرضHapticFeedback
ارائه می دهد. موارد زیر بهHapticFeedbackType
اضافه شده است -Confirm
,ContextClick
,GestureEnd
,GestureThresholdActivate
,Reject
,SegmentFrequentTick
,SegmentTick
,ToggleOn
,ToggleOff
,VirtualKey
. اجزای Wear Compose با قابلیت کلیک طولانی مانندButton
،IconButton
،TextButton
وCard
اکنون هنگام ارائه یک کنترلر با کلیک طولانی، لمسیLONG_PRESS
را انجام می دهند. ( I5083d ) -
OverscrollConfiguration
وLocalOverscrollConfiguration
را حذف میکند، وrememberPlatformOverscrollFactory
را برای ایجاد نمونهای از / سفارشیسازی پارامترهای اجرای پیشفرض overscroll اضافه میکند. برای غیرفعال کردن overscroll، به جایLocalOverscrollConfiguration provides null
، ازLocalOverscrollFactory provides null
استفاده کنید. برای تغییر رنگ درخشش / padding، به جایLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)
، استفاده ازLocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding)
. ( Ie71f9 , b/255554340 , b/234451516 ) - API آزمایشی
GlobalAssertions
حذف شد. هدف استفاده از آن اجرای بررسی های دسترسی بود، به جای آن بهenableAccessibilityChecks()
برای این منظور مراجعه کنید. ( I59322 )
نسخه 1.8.0-alpha05
30 اکتبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha05
منتشر شد. نسخه 1.8.0-alpha05 حاوی این commit ها است.
ویژگی های جدید
تکمیل خودکار پشت پرچم ویژگی در این نسخه قرار دارد. ما در حال کار بر روی بهبود عملکرد هستیم و به دنبال بازخورد اولیه در مورد APIها هستیم. انتظار میرود APIها بر اساس بازخورد، قبل از پایداری تکامل پیدا کنند.
- برای فعال کردن تکمیل خودکار،
ComposeUiFlags.isSemanticAutofillEnabled
درonCreate
روی true تنظیم کنید و از آخرین Compose Snapshot استفاده کنید. - این نسخه تکمیل خودکار از ذخیره اعتبارنامه ها به صورت دستی، از طریق پیشنهاد رمز عبور قوی و از طریق پیمایش پشتیبانی می کند. همچنین هنگامی که یک فیلد قابل تکمیل خودکار فوکوس دریافت می کند یا هنگامی که تکمیل خودکار از طریق نوار ابزار متن در اجزای متن فعال می شود، از پر کردن پشتیبانی می کند. این مؤلفه برجسته می شود تا نشان دهد که تکمیل خودکار تکمیل شده است.
تغییرات API
- رابط تکمیل خودکار را برای پیروی از ساختار
expect
/actual
تغییر دهید. ( I22dce ) -
CompositionLocal
معرفی کنید که میتواند برای تغییر رنگ پر کردن موفقیتآمیز برجستهسازی خودکار استفاده شود. ( I32092 ) -
Modifier.onRectChanged
API اضافه شد که یک API است که به شما امکان می دهد در موقعیت و اندازه root/window/screen مربوط به یکLayoutNode
مشترک شوید. API بسیاری از موارد استفاده را حل می کند که اصلاح کننده موجودonGloballyPositioned
انجام می دهد، با این حال این کار را با سربار بسیار کمتری انجام می دهد و API با امکاناتی برای بازگرداندن و کاهش پاسخ تماس بر اساس آنچه مورد نیاز است، ارائه می شود. ( Id28c7 , b/372765423 , b/372757007 , b/372994338 ) - مدیر تکمیل خودکار را گسترش میدهد تا APIهای
commit()
وcancel()
را که به کاربران کمک میکنند اعتبارنامههای تازه وارد شده را ذخیره کنند. ( I2da00 ) - رابط
AutofillManager
جدیدی را معرفی می کند که می تواند برای تنظیم دقیق سفر تکمیل خودکار کاربران و یک پرچمisSemanticAutofillEnabled
برای روشن کردن این نسخه جدید تکمیل خودکار استفاده شود. ( I9d484 ) -
Modifier.onRectChanged
API اضافه شد که یک API است که به شما امکان می دهد در موقعیت و اندازه root/window/screen مربوط به یکLayoutNode
مشترک شوید. API بسیاری از موارد استفاده را حل می کند که اصلاح کننده موجودonGloballyPositioned
انجام می دهد، با این حال این کار را با سربار بسیار کمتری انجام می دهد و API با امکاناتی برای بازگرداندن و کاهش پاسخ تماس بر اساس آنچه مورد نیاز است، ارائه می شود. ( I3c8fa ) - ویژگی های معنایی و انواع داده را برای پشتیبانی تکمیل خودکار گسترده اضافه کنید. ( I52c7d )
- همه روشها در سازنده
AnnotatedString
اکنون غیر آزمایشی هستند ( Ia89c8 , b/261561823 )
رفع اشکال
- نماهای تعبیه شده در نوشتن اکنون می توانند رویدادهای چرخشی را در صورت تمرکز دریافت کنند ( I4d53a , b/320510084 )
- رفع مشکلی که در آن انواع منابع مختلف در تغییرات پیکربندی بهروزرسانی نمیشوند ( Ia9b99 ، b/352336694 )
- به مشکلی که مانع از عملکرد صحیح
TextField
هنگام استفاده از صفحهکلید ژاپنی POBox در برخی از دستگاههای قدیمی Sony میشد، پرداخت. ( Ia9b99 , b/373743376 ) - رفع مشکل نمایش دیالوگ ها در پایین صفحه به جای وسط ( Ia2ec , b/373093006 )
- هدفگیری API 35+ دیگر دیالوگها را مجبور نمیکند که
decorFitsSystemWindows
روی نادرست تنظیم کنند. ( Ibc94 , b/364492593 ) - رفع خرابی هنگام جابجایی لایهها بین پنجرهها (مانند گفتگو و محتوای اصلی) ( I675ba , b/330955281 )
نسخه 1.8.0-alpha04
16 اکتبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha04
منتشر شد. نسخه 1.8.0-alpha04 حاوی این تعهدات است.
تغییرات API
-
DelegatableNode#onDensityChange
وDelegatableNode#onLayoutDirectionChange
را اضافه میکند تا امکان بهروزرسانی وضعیت گره در هنگام تغییر را فراهم کند ( I04f3e ، b/340662451 ) -
WindowInfo#containerSize
را برای ارائه اندازه ظرف محتوای پنجره فعلی اضافه می کند. این را می توان با استفاده ازLocalWindowInfo
بازیابی کرد. ( Idc38c , b/369334429 , b/360343819 ) - یک اصلاح برای پیمایشهای تودرتو که در طول پرتاب مداوم از درخت گره حذف میشوند، معرفی کنید. اکنون این گره ها Fling را لغو می کنند و رویداد
onPostFling
را با سرعت باقیمانده به درستی ارسال می کنند. ما همچنین پرچمNewNestedScrollFlingDispatchingEnabled
را برای کنترل رفتار در صورت رگرسیون معرفی می کنیم. پرچم قبل از بتا حذف خواهد شد. ( I05c37 , b/371168883 ) -
PointerInputModifierNode#touchBoundsExpansion
را معرفی کرد که می تواند برای بزرگ کردن مرزهای لمسی یک اصلاح کننده ورودی اشاره گر استفاده شود. ( Iccf02 , b/335339283 ) -
WindowInfo#containerSize
را برای ارائه اندازه ظرف محتوای پنجره فعلی اضافه می کند. این را می توان با استفاده ازLocalWindowInfo
بازیابی کرد. ( I27767 , b/369334429 , b/360343819 ) -
readOnly
ازTextFields
برای پین کردن به نسخه پایه پایدار حذف کنید. ( I3aaba ) -
Paragraph
وParagraphIntrinsics
اکنون لیستی از تمام حاشیه نویسی های اعمال شده رویAnnotatedString
را می گیرد، قبلاً فقط لیستی ازSpanStyles
( I12f80 ) داشت.
رفع اشکال
- نحوه برخورد با پاراگراف ها در
AnnotatedString
به روز شد. قبل از آن فقط می توانستید پاراگراف هایی ایجاد کنید که همپوشانی ندارند. اکنونAnnotatedString
به پاراگرافهای کاملاً همپوشانی اجازه میدهد که با هم ادغام شوند، و پاراگرافهای تو در تو که در این صورت پاراگراف بیرونی بر روی مرزهای پاراگراف داخلی تقسیم میشود و سبک پاراگراف داخلی با سبک پاراگراف بیرونی ادغام میشود ( Ic9554 ) - خرابی در
AnnotatedString
را با یکLinkAnnotation
با طول صفر برطرف کنید. ( 89aac6 )
نسخه 1.8.0-alpha03
2 اکتبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha03
منتشر شد. نسخه 1.8.0-alpha03 حاوی این commit ها است.
تغییرات API
- به روز رسانی نسخه کاتلین به 1.9 ( I1a14c )
- یک نقش معنایی جدید به نام چرخ فلک برای تقلید رفتار لیست در پیجرها برای سرویس های a11y معرفی کرد. ( Id354b , b/354109776 , b/239672673 )
- نام
invisibleToUser()
را بهhideFromAccessibility
تغییر دهید. عملکرد آن ثابت می ماند. برای جزئیات بیشتر به مستندات مراجعه کنید. ( Ib43a3 )
رفع اشکال
- به روز رسانی اسناد برای اصلاح کننده
SensitiveContent
( Ib0442 ) - مشکلی که در آن کلیپهای کلی طرح کلی در ترکیب با سایههای ارتفاعی در برخی از نسخههای اندروید نادیده گرفته میشوند برطرف شد.
- هنگامی که کلیپ های کلی در نسخه های خاص Android مشخص شده بود، مشکلی که در آن کلیپ های خالی اعمال می شدند، برطرف شد.
- هنگامی که IME در نمای خارجی فعال است و از اقدام Next برای وارد کردن فوکوس در
ComposeView
استفاده میشود، استثنا ثابت میشود. رفتارclearFocus()
با رفتار View در API < 28 همسو می شود، جایی کهclearFocus()
می تواند باعث شود نمای پیش فرض فوکوس شود. - مشکلی را که در آن قرار دادن روی گرههای جداشده در
LazyList
با جدا کردن مدیریت ترکیببندیهای فرعی برای پاسهای طرحبندی مختلف اتفاق افتاد، برطرف شد. - مشکل سوسو زدن صفحه کلید نرم افزار هنگام تغییر فوکوس از
TextField
بهEditText
یا هر ویرایشگر مبتنی بر View دیگر برطرف شد. - گره های پیمایش تودرتو پس از جدا شدن، اکنون رویدادهای
onPostFling
را به درستی ارسال می کنند. - بهبود عملکرد عمومی
نسخه 1.8.0-alpha02
18 سپتامبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha02
منتشر شد. نسخه 1.8.0-alpha02 حاوی این تعهدات است.
تغییرات API
-
TextOverflow.StartEllipsis
وTextOverflow.MiddleEllipsis
اکنون در دسترس هستند که امکان قرار دادن بیضی در شروع یا وسط خط متن تک خطی را فراهم می کند. ( I38913 , b/185418980 )
رفع اشکال
- رفع Dalog
dismissOnClickoutside
( 39a3d , b/364508685 ) - سایههای محتوای گفتگو را نبرید ( e8e2f , b/363027803 )
- هنگامی که جستجوی فوکوس بین Compose و View حرکت می کند، رفتار اشتباه را برطرف کنید ( 58377 , b/350534714 )
مشارکت خارجی
- اکنون
Map
AlignmentLines
انواع بتنیVerticalAlignmentLine
یاHorizontalAlignmentLine
را می پذیرد. ( I02912 ) - متداول جدید
ByteArray.decodeToImageBitmap(): ImageBitmap
. ( I83c21 )
نسخه 1.8.0-alpha01
4 سپتامبر 2024
androidx.compose.ui:ui-*:1.8.0-alpha01
منتشر شد. نسخه 1.8.0-alpha01 حاوی این تعهدات است.
نسخه 1.7
نسخه 1.7.6
11 دسامبر 2024
androidx.compose.ui:ui-*:1.7.6
منتشر شد. نسخه 1.7.6 حاوی این commit ها است.
رفع اشکال
- ما قبلاً زمانی که با یک رویداد کلیدی مواجه میشدیم، زمانی که سیستم فوکوس دارای ابطالهای معلق بود، یک خطا ایجاد میکردیم. اکنون به جای آن یک خطا ثبت می کنیم ( I7ea0 , b/346370327 ).
- حاشیه نویسی آزمایشی از
SemanticsPropertyReceiver.invisibleToUser()
حذف شد. این در 1.8 منسوخ خواهد شد تا باSemanticsPropertyReceiver.hideFromAccessibility()
جایگزین شود. ( I448f0 , b/376479686 ) - مشکلی که از عملکرد صحیح
TextField
هنگام استفاده از صفحه کلید ژاپنی POBox در برخی از دستگاه های قدیمی سونی جلوگیری می کرد، برطرف شد. ( I94e0e , b/373743376 ) - مشکل دسترسی که در آن محتوای درونی
BasicText
توسطTalkBack
اعلام نشده بود، برطرف شد. ( I67bcb , b/376479686 )
نسخه 1.7.5
30 اکتبر 2024
androidx.compose.ui:ui-*:1.7.5
منتشر شد. نسخه 1.7.5 حاوی این commit ها است.
رفع اشکال
- مشکلاتی که در آن ارتفاع و برش با خطوط سفارشی به درستی ارائه نمیشد، برطرف شد.
- خرابی متنی را که با یک
LinkAnnotation
با عرض صفر اتفاق میافتد برطرف میکند. ( IC1e2e ) - زمانی که یک دکمه در
Talkback
به عنوان یک متن قابل کلیک ساخته شده است، اعلامیه را برطرف می کند. ( I1f588 )
نسخه 1.7.4
16 اکتبر 2024
androidx.compose.ui:ui-*:1.7.4
منتشر شد. نسخه 1.7.4 حاوی این commit ها است.
نسخه 1.7.3
2 اکتبر 2024
androidx.compose.ui:ui-*:1.7.3
منتشر شد. نسخه 1.7.3 شامل این commit ها است.
رفع اشکال
- مشکلی که در آن مشخص کردن کلیپ طرح کلی منجر به ایجاد یک مرز کلیپ خالی در نسخههای خاص اندروید میشود، برطرف شد.
- هنگامی که IME در نمای خارجی فعال است و از اقدام Next برای وارد کردن فوکوس در
ComposeView
استفاده میشود، استثنا ثابت میشود. رفتارclearFocus()
با رفتار View در API < 28 همسو می شود، جایی کهclearFocus()
می تواند باعث شود نمای پیش فرض فوکوس شود. - مشکلی را که در آن از یک
placeOrder
نادرست برای باطل کردن پیش بینی استفاده شده بود، رفع شد، بنابراین یک مورد لبه ای که در آن قرار دادن پیش بینی نادیده گرفته شده بود، برطرف شد.
نسخه 1.7.2
18 سپتامبر 2024
androidx.compose.ui:ui-*:1.7.2
منتشر شد. نسخه 1.7.2 شامل این commit ها است.
رفع اشکال
- بهبود عملکرد اطلاعات گره دسترسی و رویدادهای معنایی با حذف ردیابی دقیق. ( I89156 , b/362530618 )
-
ComposeView
دیگر زمانی که اندازه اندازه گیری بسیار بزرگ تصویب شود خراب نمی شود ( da5db , b/347036173 ) - مشکل صفحهخوان دسترسپذیری را که در آن اعلانهای
LiveRegion
روی دکمهها ساخته نمیشد، برطرف شد. ( f66fa7 , b/348590026 )
نسخه 1.7.1
10 سپتامبر 2024
- بدون تغییر در مصنوعات اندروید. آرتیفکت های
-desktop
حذف شدند و مصنوعات-jvmStubs
و-linuxx64Stubs
اضافه شدند. هیچ یک از این اهداف قرار نیست مورد استفاده قرار گیرند، آنها مکان هایی هستند که به تلاش های Jetbrains Compose کمک می کنند.
نسخه 1.7.0
4 سپتامبر 2024
androidx.compose.ui:ui-*:1.7.0
منتشر شد.
تغییرات مهم از 1.6.0
تغییرات مهم در نسخه 1.7.0 در این وبلاگ پوشش داده شده است.
نسخه 1.7.0-rc01
21 آگوست 2024
androidx.compose.ui:ui-*:1.7.0-rc01
منتشر شد. نسخه 1.7.0-rc01 حاوی این commit ها است.
تغییرات قابل توجه
- ماژول ui:ui اکنون الزام حداقل نسخه Foundation:Foundation را مجبور می کند که حداقل 1.7.0-rc01 یا جدیدتر باشد. این برای رفع ناسازگاری رفتاری بین رابط کاربری و پایه در رابطه با تغییرات
NestedScrollSource
که در اوایل 1.7.0-alpha01 رخ داده است، اعمال می شود.
نسخه 1.7.0-beta07
7 آگوست 2024
androidx.compose.ui:ui-*:1.7.0-beta07
منتشر شد. نسخه 1.7.0-beta07 حاوی این تعهدات است.
رفع اشکال
- توابع مربوط به ورودی متن
SemanticsNodeInteraction
performTextReplacement
،performTextInput
وperformTextClearance
اکنون هنگام فراخوانی آنها درTextFields
فقط خواندنی، خطاهای ادعایی ایجاد می کند. ( I4ae8f )
نسخه 1.7.0-beta06
24 جولای 2024
androidx.compose.ui:ui-*:1.7.0-beta06
منتشر شد. نسخه 1.7.0-beta06 حاوی این تعهدات است.
نسخه 1.7.0-beta05
10 جولای 2024
androidx.compose.ui:ui-*:1.7.0-beta05
منتشر شد. نسخه 1.7.0-beta05 حاوی این تعهدات است.
رفع اشکال
- رفع اشکالی که در آن تغییر صفحهکلید نرمافزار باعث میشد که
TextField
ورودی از صفحهکلید جدید را تا زمانی که فوکوس از بین نرود و دوباره به دست آید، نپذیرد. - مشکلی که در آن تلاش برای حفظ محتوای لایه باعث ایجاد عوارض جانبی ناخواسته هنگام رندر با محتوای
SurfaceView
میشد، برطرف شد.
نسخه 1.7.0-beta04
26 ژوئن 2024
androidx.compose.ui:ui-*:1.7.0-beta04
منتشر شد. نسخه 1.7.0-beta04 حاوی این تعهدات است.
رفع اشکال
- هنگام اندازهگیری خطوط نوشتاری بسیار بزرگ (مانند 10 هزار کاراکتر) از خرابی جلوگیری کنید ( 8157ab )
- پشتیبانی ارائه نرم افزار برای
GraphicsLayer
API را غیرفعال کنید. ( 35ddd8 ) - رفع خرابی در منطق پایداری لایه. ( 70b13e )
- استفاده مجدد از بهینه سازی اشیاء لایه برگردانده شد، زیرا باعث ایجاد مشکلات رندر می شد. ( 70b13e )
نسخه 1.7.0-beta03
12 ژوئن 2024
androidx.compose.ui:ui-*:1.7.0-beta03
منتشر شد. نسخه 1.7.0-beta03 حاوی این تعهدات است.
نسخه 1.7.0-beta02
29 مه 2024
androidx.compose.ui:ui-*:1.7.0-beta02
منتشر شد. نسخه 1.7.0-beta02 حاوی این تعهدات است.
تغییرات API
- تغییر نام
SemanticsProperties.Editable
بهIsEditable
و تغییرSemanticsPropertyReceiver.editable
به valisEditable
. این ویژگی اکنون یک بولی است و همیشه توسط فیلدهای متنی مشخص می شود. ( I8acd8 ) - تغییر نام پارامتر معیار دسترسی. ( I3d440 )
- API به روز شده برای استایل دادن به پیوندها:
TextLinkStyles
اکنون بخشی از سازندهLinkAnnotation
و روشAnnotatedString.fromHtml
( I90b2b ) است. همچنینTextDefaults
را از مطالب حذف کرد ( I5477b )
رفع اشکال
- تغییر نام
LayoutCoordinates.introducesFrameOfReference
بهLayoutCoordinates.introducesMotionFrameOfReference
برای انعکاس بهتر هدف آن. تغییر نام تابع مرتبط برای محاسبه مختصات بر اساس آن پرچم. ( I3a330 )
نسخه 1.7.0-beta01
14 مه 2024
androidx.compose.ui:ui-*:1.7.0-beta01
منتشر شد. نسخه 1.7.0-beta01 حاوی این تعهدات است.
تغییرات API
- تغییر نام
performCustomAccessibilityActionLabelled
بهperformCustomAccessibilityActionWithLabel
وperformCustomAccessibilityActionWhere
toperformCustomAccessibilityActionWithLabelMatching
. ( I5387f ) -
AnnotatedString.hasEqualsAnnotations
اکنونhasEqualAnnotations
است ( I685c0 ) - API را برای دریافت پیوندهای مضمون مواد در متن به روز کرد. به طور خاص، روشها را از
TextDefaults
برای ساختLinkAnnotations
با مضمون حذف کرد و HTML را با پیوندهای مضمون تجزیه کرد. در عوض، یک کلاسTextLinkStyles
اضافه کرد که اجازه می دهد تا به پیوندها به عنوان یک پارامتر به Text composable استایل دهید. ( I31b93 )
رفع اشکال
- موارد استفاده اضافی را هنگام افزودن پویا اصلاح کننده های ورودی اشاره گر در طول رویدادهای 63e1504 برطرف می کند.
نسخه 1.7.0-alpha08
1 مه 2024
androidx.compose.ui:ui-*:1.7.0-alpha08
منتشر شد. نسخه 1.7.0-alpha08 حاوی این commit ها است.
تغییرات API
- پشتیبانی از پیاده سازی شکل های قابل تغییر را اضافه می کند.
Shape#createOutline
اکنون در داخل لایههای گرافیکی مشاهده میشود، بنابراین خواندن مقادیر حالت در داخل باعث بیاعتباری زمانی میشود که حالت تغییر میکند و امکان ایجاد انیمیشنهای شکل با عملکرد بیشتر را فراهم میکند. ( Id1629 , b/326070216 ) - به
isPositionedByParentWithDirectManipulation
بهintroducesFrameOfReference
تغییر نام داد. توجه داشته باشید که اکنون اثر معکوس دارد، به این معنی که به طور پیشفرض، اکثرLayoutCoordinates
یک چارچوب مرجع معرفی میکنند، و تنها زمانی که تحت دستکاری مستقیم قرار میگیرد، ویژگی نادرست خواهد بود. برای جستوجوی موقعیت فقط با آنهایی که چارچوب مرجع را معرفی میکنند، ازpositionInLocalFrameOfReference(...)
استفاده کنید. یاpositionInLocalLookaheadFrameOfReference
ازLookaheadScope
. ( Ifc5f7 ) - API های
LookaheadScope
پایدار شده اند ( I21507 ) - بر اساس بازخورد شورای API، اقدام lambda را برای
getScrollViewportLength
تغییر دهید. ( IBC74a ) - بهروزرسانی شده
GraphicsLayer
APIهای کلی را برای مصرف پارامترهای float به جای int. مقادیر نگهبانUnsetOffset/UnsetSize IntSize
به نفع ثابت های نامشخص موجود در کلاس های درون خطی Offset و Size مبتنی بر شناور حذف شد ( I2fb03 , b/333863462 ) - هنگام تزریق ورودی ماوس در طول آزمایشها،
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
اکنون یکbutton: MouseButton
تا آنها را به طور جهانی کاربردی تر کند. مقدار پیش فرضMouseButton.Primary
برای همه متدها است. ( I31a23 , b/190493367 , b/261439695 ) - تغییر نام
onClicked
بهonClick
در داخلLinkInteractionListener
. ( Iaa35c ) - تغییر نام
TextInclusionStrategy.isInside
بهisIncluded
. نوع برگشتیParagraph/MultiParagraph#getRangeForRect()
را غیر قابل پوچ کنید. ( I51f26 )
رفع اشکال
- ضبط اسکرین شات طولانی برای محفظه های اسکرول با
reverseScrolling=true
ثابت شد. ( I7c59c )
مشارکت خارجی
- پشتیبانی برای واکشی از قبل موارد در
LazyLists
تو در تو (به عنوان مثالLazyColumn
کهLazyRows
تودرتو را ارائه می دهد) اضافه شده است. انتظار می رود این تغییر افت فریم را در حین پیمایش برای اینLazyLists
کاهش دهد. پیشفرض پیادهسازی، واکشی دو مورد اول تودرتو است، اما این رفتار را میتوان باLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
وLazyListPrefetchStrategy#onNestedPrefetch
جدید کنترل کرد. ( I51952 )
نسخه 1.7.0-alpha07
17 آوریل 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
منتشر شد. نسخه 1.7.0-alpha07 حاوی این تعهدات است.
تغییرات API
-
ClickableText
به عنوان منسوخ علامت گذاری شده است. برای افزودن پیوند به متن، یکAnnotatedString
با یکLinkAnnotation
مربوط به پیوند خود ایجاد کنید و اینAnnotatedString
به Text composable ارسال کنید. ( I34d4b , b/323346994 ) -
ViewConfiguration.HandwritingGestureLineMargin
را برای حرکات دست خط معرفی کنید. پشتیبانی از ژستJoinOrSplit
برایBasicTextField
( Ie6e13 , b/325660505 ) -
FocusProperties.enter
وFocusProperties.exit
دیگر آزمایشی نیستند.FocusDirection.Enter
وFocusDirection.Exit
دیگر آزمایشی نیستند.FocusRequester.Cancel
دیگر آزمایشی نیست ( I461a1 , b/261564106 ) - هنگام جستجو در مختصات Layout، اکنون میتوانید از آرگومان
excludeDirectManipulationOffset
برای حذف افست مجموعهای از Layouts والدین که فرزندان خود را با استفاده ازPlaceable.PlacementScope.withDirectManipulationPlacement
قرار دادهاند، استفاده کنید. به همین ترتیب، Layout که موقعیت فرزندان خود را مرتباً تغییر میدهد، اکنون میتواند آنها را با استفاده ازwithDirectManipulationPlacement
(مانند Scroll که به طور پیشفرض پیادهسازی شده است) قرار دهد. این به انیمیشنهای مبتنی برapproachLayout
کمک میکند تا بصریتر باشند، و اکنون این فرصت را دارند که متمایز کنند چه افستی باید متحرک شود و چه چیزی مستقیماً هنگام تصمیمگیری برای متحرک کردن رویکرد خود اعمال شود. ( I60ec7 ) - پرچم ویژگی برای اسکرین شات های طولانی حذف شده است. ( I28648 , b/329128246 )
-
LazyColumn
اکنون هدرهای چسبنده را به درستی در اسکرین شات های طولانی ارائه می کند. ( I8d239 , b/329296635 ) - منابع
NestedScroll
Drag and Fling باUserInput
وSideEffect
جایگزین می شوند تا با تعریف گسترده این منابع که اکنون شامل انیمیشن ها (Side Effect) و Mouse Wheel and Keyboard (UserInput
) می شوند، سازگار شوند. ( I40579 ) -
ApproachLayoutModifierNode
وModifier.approachLayout
اکنون پایدار هستند، باisMeasurementApproachInProgress()
وisPlacementApproachInProgress()
جدید به ترتیب جایگزینisMeasurementApproachComplete()
قدیمی وisPlacementApproachComplete()
هستند. - اصلاح کننده منسوخ
intermediateLayout
حذف شد. ( I3e91c ) - نام
GraphicsLayer#buildLayer
را تغییر دهید تا ضبط شود تا روشهای start/endRecording APIهای پشتیبانیشده Displaylist مانندRenderNode
و Picture را منعکس کند. -
rememberGraphicsLayer
برای استفاده ازrememberObserver
به روز شد. ( I312c1 , b/288494724 , b/330758155 ) -
UrlAnnotation
منسوخ شده است، به جای آن ازLinkAnnotation.Url
استفاده کنید. اگر از موضوعبندی Material استفاده میکنید، از شیTextDefaults
برای ایجاد حاشیهنویسی با مضمون Material روی آن استفاده کنید ( I8d180 , b/323346545 ) - پیوندهای متنی علاوه بر استایل معمولی، گزینه استایل حالت فشرده را نیز دریافت کردند، شناور و فوکوس شدند ( I5f864 ، b/139312671 )
-
String.parseAsHtml
بهAnnotatedString.Companion.fromHtml
تغییر نام داد. ( I43dcd ) - آرگومان های سبک (
linkStyle
،focusedLinkStyle
،hoveredLinkStyle
) و شنونده تعامل پیوند به روشparseAsHtml
اضافه شده است. هنگامی که رشته برچسبگذاری شده HTML را با تگهای<a>
تجزیه میکند، این روش برای هر تگ یکLinkAnnotation.Url
ایجاد میکند و اشیاء استایل و شنونده تعامل پیوند را به هر حاشیهنویسی ارسال میکند. ( I7c977 ) - اکنون
LinkAnnotation
آرگومان های استایل مبتنی بر حالت وLinkInteractionListener
را می گیرد. برای دریافت هایپرلینک، این حاشیه نویسی را بهAnnotatedString
اضافه کنید. با عبور ازfocusedState
و/یاhoveredState
می توانیدconfiguration
بصری پیوندها را زمانی که فوکوس شده و/یا شناور هستند تعریف کنید. ( I81ce4 , b/139312671 ) -
ImeOptions.hintLocales
دیگر پوچ نیست. اگر میخواهید یک لیست محلی خالی را ارسال کنید، لطفاً ازLocaleList.Empty
استفاده کنید. ( IC5bc4 )
رفع اشکال
- دادههای رویداد ورودی تاریخی بد/فاسد را با مهربانی مدیریت میکند (دادههای آفست بد را نادیده میگیرد).
- هنگامی که یک اصلاحکننده ورودی اشارهگر بهصورت پویا قبل از اصلاحکننده ورودی اشارهگر دیگر در جریان یک جریان رویداد ورودی اشارهگر فعال اضافه میشود، رویدادهای غیرمنتظره اشارهگر را برطرف میکند (به عنوان مثال، بین ورودی شناور و خروجی نشانگر [موس/قلم]).
نسخه 1.7.0-alpha06
3 آوریل 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
منتشر شد. نسخه 1.7.0-alpha06 حاوی این تعهدات است.
ویژگی های جدید
- اضافه شدن متد
parseAsHtml
برای رشته های استایل دار: امکان تبدیل رشته ای که با تگ های HTML مشخص شده است را بهAnnotatedString
می دهد. توجه داشته باشید که همه تگها پشتیبانی نمیشوند، برای مثال شما هنوز نمیتوانید لیستهای گلوله را نمایش دهید. ( I84d3d , I30626 , b/139326648 ) - با استفاده از API رسمی Android (
ScrollCaptureCallback
) از اسکرینشاتهای طولانی در محفظههای پیمایش Compose پشتیبانی آزمایشی اجرا کرد. این ویژگی آزمایشی است و ممکن است در حال حاضر همه موارد را به درستی مدیریت نکند. به همین دلیل در حال حاضر به طور پیش فرض غیرفعال است. برای شرکت کردن، پرچمComposeFeatureFlag_LongScreenshotsEnabled
را روی true تنظیم کنید. ( I2b055 , b/329296471 )
تغییرات API
-
fun ClipEntry.getMetadata()
بهval ClipEntry.clipMetadata
تغییر کرده است. ( I50155 ) - توابع
ClipboardManager.getClipMetadata
وClipboardManager.hasClip
حذف شدند. لطفاً ازclipEntry.getMetadata()
برای خواندن فراداده ورودی کلیپ فعلی استفاده کنید. همچنین نتیجهClipboardManager.getClip
را در صورت تهی بودن یا نبودن آن بررسی کنید تا متوجه شوید که Clipboard یک کلیپ فعلی دارد یا خیر. ( I50498 ) - اکنون می توانید اشیاء
GraphicsLayer
را به توابعplaceable.placeWithLayer()
( I1b22f ) منتقل کنید. -
ClipboardManager.setClip
اکنون null را میپذیرد تا بتواند Clipboard را پاک کند. ( I7d2e9 ) - شناسههای منبع اضافه شده برای کمک به پنهان کردن نماها که به عنوان جزئیات پیادهسازی در ابزار ساخت استفاده میشوند ( I99531 )
- روش تعلیق
GraphicsLayer#toImageBitmap
برای پشتیبانی از رندر کردن محتوای یک بیت مپ درGraphicsLayer
اضافه شد. این یک عملیات رندر سریع سخت افزاری در سطح API 22+ (شامل) است که بیش از 99٪ از همه دستگاه های Android را پشتیبانی می کند. در Android API سطح 21 این به رندر نرم افزار بازمی گردد. ( I9e114 ) - روش کمکی برای تبدیل Android
RectF
بهComposeRect
( I39925 , b/325660505 ) - همه پارامترهای
KeyboardOptions
اکنون به طور پیش فرض دارای یک مقدار نامشخص هستند. روشKeyboardOptions.merge
اضافه شد. -
KeyboardOptions.autoCorrect
را بهautoCorrectEnabled
تغییر نام داد و آن را nullable کرد، جایی که null نشان می دهد هیچ مقداری مشخص نشده است. ( Ia8ba0 , b/295951492 ) - نوع
BasicTextField(state)
وBasicSecureTextField
اکنون به جایKeyboardActions
ازKeyboardActionHandler
برای پردازش اقدامات انجام شده توسط صفحه کلید نرم افزار استفاده می کنند. ( I58dda )
نسخه 1.7.0-alpha05
20 مارس 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
منتشر شد. نسخه 1.7.0-alpha05 حاوی این تعهدات است.
ویژگی های جدید
-
GraphicsLayer
API جدید را برای ثبت دستورات ترسیم در لیست نمایش و همچنین ویژگی های اضافی که بر رندر لیست نمایش تأثیر می گذارد، معرفی کنید. این یک مرز انزوا برای تقسیم یک صحنه پیچیده به قطعات کوچکتر فراهم می کند که می توانند به صورت جداگانه از یکدیگر بدون بازسازی کل صحنه به روز شوند. تبدیل های ایجاد شده بهGraphicsLayer
را می توان بدون ضبط مجدد لیست نمایش انجام داد. برخلافModifier.graphicsLayer
،GraphicsLayer
امکان رندر کردن محتوای Composable را در جای دیگری فراهم میکند و در موارد استفاده متحرک که انتظار میرود محتوا در صحنههای مختلف رندر شود، مفید است.
تغییرات API
-
GraphicsLayer.draw(Canvas)
دیگر یک api عمومی نیست. لطفاً به جای آن از تابع پسوندDrawScope.drawLayer(GraphicsLayer)
برای رسم لایه استفاده کنید. ( I7a7c0 ) -
restrictedConstraints()
به دو متد تقسیم کنید:fitPrioritizingWidth()
وfitPrioritizingHeight()
( I6d7fd ) - مقاله خرد
HardwareCanvas
برای استفاده از Android L ( I1c3b5 , b/288494724 ) معرفی شد - چارچوب Compose را بهروزرسانی کنید تا یک ترکیب
GraphicsContext
محلی را در کنار بهروزرسانی پیادهسازیهای Owner،DelegateableNode
وdrawWithCache
Modifier بهروزرسانی کنید تا دسترسی بهGraphicsContext
برای دسترسی محدودهای که به طور خودکار نمونههایGraphicsLayer
را هنگامی که Modifiers پاره میشوند، پاکسازی کند. ( I64a2f , b/288494724 ) -
InterceptPlatformTextInput
برای کمک به نوشتن تستهای سطح پایین مرتبط با IME و سایر موارد استفاده سطح پایین IME معرفی کرد.PlatformTextInputTestOverride
منسوخ شده است. ( I862ed , b/322680547 ) - تابع پسوند
GraphicsLayer.setOutline(Outline)
اضافه شد. ( IB81f4 ) - سازنده تابع
GraphicsContext
را برای ایجاد کارخانه ای برای ایجاد نمونه هایGraphicsLayer
معرفی کنید ( Ib98d6 , b/288494724 ) -
GraphicsLayer
API را برای ارائه انعطافپذیری تعریفشده توسط توسعهدهنده در گرفتن دستورات ترسیمی که میتوان از آن برای ترسیم در جاهای دیگر استفاده کرد و همچنین جلوههای بصری مختلف را در نتیجه نهایی اعمال کرد، ارائه کرد. ( I80245 , b/288494724 ) -
Paragraph#getRangeForRect
را معرفی کنید که محدوده ای از متن پوشیده شده توسط یک ناحیه مستطیل معین را برمی گرداند. ( Iee516 , b/325660505 ) - لغو آزمایشی
BasicText
با آرگومانonLinkClicked
حذف شد. یک API جایگزین برای پشتیبانی از پیوندها در آینده دنبال خواهد شد. ( I107d5 )
رفع اشکال
- اضافه شده
GraphicsLayer
تعریف انتظار/واقعی API برای پشتیبانی از ضبط و پخش مجدد دستورات ترسیم با ترکیب اختیاری جلوه های بصری و تبدیل. رابطGraphicsContext
را برای داشتن وابستگی های گرافیکی از جمله ایجاد و مدیریت نمونه هایGraphicsLayer
معرفی کنید. ( I4a8d6 , b/288494724 ) - مشکل interop با جستجوی فوکوس 1 بعدی که در آن فوکوس در داخل
ComposeView
که در بین نماهای دیگر تعبیه شده بود گیر می کرد، رفع شد. ( I08fd4 )
مشارکت خارجی
-
LocalLifecycleOwner
از Compose UI بهlifecycle-runtime-compose
منتقل شد تا API های کمکی مبتنی بر Compose آن بتوانند خارج از Compose UI استفاده شوند. با تشکر از جیک وارتون برای مشارکت. ( I6c41b , b/328263448 ) - ویژگیهای شناور بایاس را در همه زیرگروههای تراز مبتنی بر بایاس به طور مداوم در معرض دید قرار دهید. ( I69f0f , b/328088992 )
نسخه 1.7.0-alpha04
6 مارس 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
منتشر شد. نسخه 1.7.0-alpha04 حاوی این تعهدات است.
تغییرات API
- پشتیبانی از ویژگی دستنویس قلم برای BasicTextField2 در دستگاههای بعد از Android U. ( I002e4 )
- در این CL ما اقدام معنایی
GetScrollViewportLength
را اضافه می کنیم تا بتوانیم اطلاعات مربوط به مؤلفه های در حال پیمایش در compose را به سیستم a11y انتقال دهیم. این CL همچنین استفاده از ویژگی مذکور را در فهرستهای قابل پیمایش بنیاد اعمال میکند. ( IC5fa2 ) -
FocusRequester.createRefs
اکنون پایدار است ( I4d92c , b/261436820 ) -
DelegatableNode.requireView()
معرفی کرد تا به گره های اصلاح کننده اجازه دهد تاView
فعلی Android را بدون خواندن یک ترکیب محلی دریافت کنند. ( I40768 ) - API جدید
Path.reverse()
برای معکوس کردن جهت مسیر ( I36348 ) -
hintLocales
بهKeyboardOptions
اضافه کرد تاTextFields
با قابلیت اشاره به IME با زبانهای خاص برای از پیش تعیین کردن یک زبان ترجیحی ارائه کند. - ویژگی
platformLocale
ازLocale
نشان دهید که شی پلتفرم زیرین، به عنوان مثالjava.util.Locale
را برمی گرداند. ( I921c6 )
نسخه 1.7.0-alpha03
21 فوریه 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
منتشر شد. نسخه 1.7.0-alpha03 حاوی این commit ها است.
تغییرات API
- معرفی
ContextualFlowRow
و EnhancedFlowRow
/Column
با MaxLines و Overflow. ما هیجان زده هستیم که پیشرفتهایی را درFlowRow
وFlowColumn
آزمایشی اعلام کنیم که اکنون دارای maxLines و پشتیبانی سرریز است، در کنار اولینContextualFlowRow
وContextualFlowColumn
. این بهروزرسانی برای ارائه اجزای عملکرد بهینه طراحی شده است، جایی کهContextualFlow*
برای تعداد زیادی آیتم با استفاده از پیکربندی کوچکmaxLines
و پویا +N برای دیدن دکمههای بیشتر عالی است، وFlowRow
وFlowColumn
برای تعداد کمی از موارد، کمتر مناسب است. بیش از 100 مورد مهم: برای حفظ رفتار موجود درFlowRow
یاFlowColumn
که در آن همه موارد بدون توجه به اینکه آیا با حداکثر محور متقاطع مطابقت دارند یا نه، تشکیل شدهاندoverflow
در طول مقداردهی اولیه رویFlowRowOverflow.Visible
یاFlowColumnOverflow.Visible
تنظیم کنید.ContextualFlowRowSample
وFlowRowSample
را برای نمونه هایی از این ویژگی های جدید در عمل کاوش کنید. ( Ib9135 , b/293577082 ) - ویژگی معنایی
maxTextLength
را اضافه کنید که باید در فیلدهای متنی تنظیم شود که حداکثر تعداد مجاز کاراکترها را فیلتر می کند. ( I24d9f , b/170648072 ) - پوشش
Modifier.inspectable
منسوخ شده است. این API بیش از حد لازم برای اصلاحکننده شما باطل میشود، بنابراین استفاده از آن در حال حاضر ممنوع است. اگر میخواهند ویژگیهای اصلاحکننده را در معرض ابزار قرار دهند، به توسعهدهندگان توصیه میشود که متدinspectableProperties()
را رویModifierNodeElement
پیادهسازی کنند. ( Ib3236 ) - سازنده جدید برای
PopupProperties
که امکان کنترل کامل بر پرچم هایWindowManager.LayoutParams
را فراهم می کند. ( Ibb33e , b/312485503 ) -
DelegatableNode.requireLayoutCoordinates()
را به عنوان راهی برای دریافتLayoutCoordinates
فعلیModifier.Node
بدون نیاز به نادیده گرفتنonPlaced
و ذخیره مختصات در یک ویژگی معرفی کرد. ( Ia8657 ) -
DelegatableNode.currentLayoutCoordinates
را به عنوان راهی برای بدست آوردنLayoutCoordinates
فعلیModifier.Node
بدون نیاز به نادیده گرفتنonPlaced
و ذخیره مختصات در یک ویژگی معرفی کرد. ( Iaebaa ) -
BasicTextField2
و APIهای مرتبط تحت بستهandroidx.compose.foundation.text2
بهandroidx.compose.foundation.text
منتقل می شوند. ( I9f635 ) - یک
ApproachLayoutModifierNode
API جدید اضافه کرد تا از ایجاد منطق رویکرد سفارشی در یک گره اصلاح کننده صریح پشتیبانی کند. همچنین یک API آزمایشیDeferredTargetAnimation
برای انیمیشنهایی که هدف آنها در ابتدا ناشناخته است اضافه شده است. ( I60745 ) - API های
Path
جدید برای پرس و جو جهت یک مسیر و استخراج خطوط از یکPath
. ( I63d04 ) -
PathHitTest
وPath.contains(Offset)
اضافه شد تا بررسی شود آیا یکPath
دارای نقطه خاصی است یا خیر. ( I3b218 ) -
TextLayoutResult
اکنون متدgetLineBaseline(lineIndex)
را نشان می دهد. این اجازه می دهد تا علاوه بر خصوصیات راحتی موجودfirstBaseline
وlastBaseline
، پایه خط دلخواه متن را بخوانید. ( ide4e8 ، b/237428541 ) - روش اضافه شده برای مقایسه تنها حاشیه نویسی دو
AnnotatedStrings
. ( i32659 )
رفع اشکال
- یک مسئله سازگاری به عقب با
SemanticsPropertyReceiver.performImeAction
وSemanticsActions.PerformImeAction
. ( id0528 ، b/322269946 )
نسخه 1.7.0-alpha02
7 فوریه 2024
androidx.compose.ui:ui-*:1.7.0-alpha02
منتشر شده است. نسخه 1.7.0-alpha02 حاوی این commit ها است.
تغییرات API
- رفع یک مسئله سازگاری باینری با
SemanticsPropertyReceiver.performImeAction
. ( i65865 ، b/322269946 ) - سازنده
PopupProperties
که یک پارامترusePlatformDefaultWidth
را می گیرد ، دیگر آزمایشی نیست. ( i8f8d2 ) - اضافه بار اضافه شده از
ComposeTestRule.waitUntil
که توضیحات رشته ای از شرط را در نظر می گیرد تا در پیام زمان بندی گنجانده شود. ( i9413e ) - معناشناسی جدید API
unset()
برای حذف خصوصیات معنایی که در همان زنجیره اصلاح کننده اضافه می شوند.isOpaque
Properties جدید معناشناسی. ( i8c583 ، b/317966058 ، b/246056649 ) - حذف
originalEventPosition
از روش کپی در API عمومیPointerInputChange
. ( i7bead )
رفع اشکال
- رفع اشکال A11y که اجازه می دهد در هنگام انتخاب ، غیر radiobuttons قابل کلیک باشد. ( i2181c )
-
VelocityTracker
اکنون به طور پیش فرض برای اضافه کردن امتیازات ، رفع می کند. در صورت بروز هرگونه مشکل ، می توان با تنظیمVelocityTrackerAddPointsFix
به FALSE خاموش شد. ( IB3877 ، b/269487059 ) - ناسازگاری باینری به عقب در
TextStyle
وParagraphStyle
. ( i179f0 ، b/320819734 )
مشارکت خارجی
- یک سازنده
DialogProperties
جدید را بدون پارامترهای خاص پلتفرم اضافه کرد. ( i45829 ) - یک سازنده جدید
PopupProperties
بدون پارامترهای خاص پلتفرم اضافه شده است. ( i9a038 )
نسخه 1.7.0-alpha01
24 ژانویه 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
منتشر شده است. نسخه 1.7.0-alpha01 حاوی این commit ها است.
تغییرات API
-
ClipboardManager
گسترش یافته با اضافه کردنClipEntry
وClipMetadata
برای پشتیبانی از محتوای دلخواه مانند تصاویر. -
DeviceConfigurationOverride
API را بهui-test
اضافه می کند تا اجازه می دهد تا به صورت محلی بر رفتار محتوا تحت آزمایش ، مانند مشخص کردن اندازه ، محلی ، جهت چیدمان ، مقیاس فونت یا موضوع مشخص شود.
نسخه 1.6
نسخه 1.6.8
12 ژوئن 2024
androidx.compose.ui:ui-*:1.6.8
منتشر شده است. نسخه 1.6.8 شامل این commit ها است.
رفع اشکال
- ناسازگاری ثابت در مقیاس قلم هنگامی که مقیاس قلم کمتر از پایین ترین جدول تعریف شده است. در این حالت ، ما اکنون بین مقیاس خطی 1X و کمترین جدول تعریف شده درون یابی می کنیم ، به طوری که با افزایش مقیاس ، اندازه قلم از نظر یکنواخت افزایش می یابد. ( ICBAE3 )
نسخه 1.6.7
1 مه 2024
androidx.compose.ui:ui-*:1.6.7
منتشر شده است. نسخه 1.6.7 حاوی این commit ها است.
نسخه 1.6.6
17 آوریل 2024
androidx.compose.ui:ui-*:1.6.6
منتشر شده است. نسخه 1.6.6 شامل این تعهدات است.
رفع اشکال
- تصادف نادر
BasicTextField
برطرف می کند.
نسخه 1.6.5
3 آوریل 2024
androidx.compose.ui:ui-*:1.6.5
منتشر می شود. نسخه 1.6.5 حاوی این commit ها است.
نسخه 1.6.4
20 مارس 2024
androidx.compose.ui:ui-*:1.6.4
منتشر شده است. نسخه 1.6.4 حاوی این commit ها است.
نسخه 1.6.3
6 مارس 2024
androidx.compose.ui:ui-*:1.6.3
منتشر شده است. نسخه 1.6.3 شامل این commit ها است.
نسخه 1.6.2
21 فوریه 2024
androidx.compose.ui:ui-*:1.6.2
منتشر می شود. نسخه 1.6.2 حاوی این commit ها است.
نسخه 1.6.1
7 فوریه 2024 androidx.compose.ui:ui-*:1.6.1
منتشر شده است. نسخه 1.6.1 حاوی این commit ها است.
رفع اشکال
- یک مسئله سازگاری به عقب با
SemanticsPropertyReceiver.performImeAction
وSemanticsActions.PerformImeAction
. ( IE0BB2 ، B/322269946 ) - اکنون وقتی اندازه گیری یک اندازه غیر طبیعی بزرگ است ، خطایی در حالی که اندازه گیری می شود ، خطایی را به وجود می آورد. این نوع خطا به طور معمول هنگامی اتفاق می افتد که اندازه گیری از حداکثر محدودیت ها به طور مستقیم و بدون بررسی
Constraints.Infinity
استفاده می کند. این بررسی به توسعه دهندگان کمک می کند تا در مورد طرح بندی با اندازه اشتباه به جای چیدمان حاوی آن ، مشکل پیدا کنند. ( i339a9 )
نسخه 1.6.0
24 ژانویه 2024
androidx.compose.ui:ui-*:1.6.0
منتشر شده است. نسخه 1.6.0 حاوی این commit ها است.
نسخه 1.6.0-rc01
10 ژانویه 2024
androidx.compose.ui:ui-*:1.6.0-rc01
منتشر شده است. نسخه 1.6.0-rc01 حاوی این commit ها است.
رفع اشکال
- اجرای گرافیک بردار بهینه شده برای بهبود عملکرد با به حداقل رساندن بازپرداختهای اضافی.
نسخه 1.6.0-beta03
13 دسامبر 2023
androidx.compose.ui:ui-*:1.6.0-beta03
منتشر شده است. نسخه 1.6.0-beta03 حاوی این تعهدات است.
ویژگی های جدید
- اکنون ممکن است بدون جدا شدن گره ، یک
LayoutCoordinates
را جدا کند. در برابر آن در بازرس طرح بندی ( IF693 ) محافظت کنید
رفع اشکال
-
PlatformImeOptions
اکنون به جای رابط یک کلاس بتونی است. ( IF40A4 ) - اصلاحات در پایین دست اضافی ناشی از
LocalSoftwareKeyboardController
وLocalTextInputService
در هر بار که یک ریشه بازخوانی می شود ، مقادیر جدیدی ارائه می شود. ( I42190 ، B/310510985 )
نسخه 1.6.0-beta02
29 نوامبر 2023
androidx.compose.ui:ui-*:1.6.0-beta02
منتشر شده است. نسخه 1.6.0-beta02 حاوی این تعهدات است.
نسخه 1.6.0-beta01
15 نوامبر 2023
androidx.compose.ui:ui-*:1.6.0-beta01
منتشر شده است. نسخه 1.6.0-beta01 حاوی این تعهدات است.
تغییرات API
- اصلاح کننده
DragAndDropTarget
اکنون به صراحت درDragAndDropTarget
دریافت کننده می گیرد و یک لامبدا برای انتخاب جلسه کشیدن و رها کردن دارد. اکنون دو عملکرد کارخانه برای یکDragAndDropModifierNode
وجود دارد. یکی برای دریافت نقل و انتقالات و دیگری برای انتقال داده ها ( I69481 ) - به روز شده
maximumFlingVelocity
به عنوان float ارائه می شود. مستندات به روز شده برای واضح تر در مورد وحدتmaximumFlingVelocity
. ( i8adc7 ) -
onDragAndDropStart
در کارخانهDragAndDropModifierNode
بهacceptDragAndDropTransfer
تغییر نام داده است.acceptsDragAndDropTransfer
به اصلاح کنندهdragAndDropTarget
اضافه شده است تا از جلسه کشیدن و رها بپذیرید. این لامبدا در صورت علاقه به جلسه کشیدن و رها کردن ، یکDragAndDropTarget
مناسب را برمی گرداند. سایر لامبدها برای پردازش رویدادهای کشیدن با این امر جایگزین شده اند. یک عملکرد کارخانهDragAndDropTarget
برای دریافت از جلسات درگ و رها ( IEBF3A ) اضافه شده است DragAndDropInfo
حذف شده به عنوان یک نوعDragAndDropModifierNode.drag
اکنون پارامترهایی را برایtransferData
، اندازه دکوراسیون و دکوراسیون کشیدنDrawScope
lambda می گیردDragAndDropTarget
به جای اینکه یک روش انتزاعی واحد باشد ، روش هایی برای وقایع خاص کشیدن و رها کردن داردonDragAndDropEvent
در عملکرد کارخانه برای یکDragAndDropModifierNode
بهonDragAndDropStart
تغییر نام داده شده است تا ارتباط بهتری داشته باشد کهDragAndDropTarget
ارائه شده فقط برای یک جلسه درگ و رها کردن معتبر استDragAndDropEventType
حذف شده است ( i645b1 )تغییر نام به
PlatformTextInputModifierNode.runTextInputSession
بهestablishTextInputSession
. ( I03CD0 )نام های API گره قابل عبور را بهبود می بخشد تا آنها را قابل درک تر کند. ( IA4474 )
OriginalText
بر اساسTextSubstitution
جایگزین کنید. ( Ifa5a8 )تغییر نام به
PlatformTextInputModifierNode.textInputSession
بهrunTextInputSession
. ( IE9C6B )فرزندان
SubcomposeLayout
(و چیدمان هایی مانندLazyColumn
بر اساس آن) که برای استفاده مجدد در آینده حفظ می شوند ، غیرفعال تلقی می شوند. API تست جدیدassertIsDeactivated()
برای آزمایش چنین گره هایی معرفی شد. بقیه API های آزمایش به طور پیش فرض گره های غیرفعال را فیلتر می کنند. ( i2ef84 ، b/187188981 )حذف
FocusDirection.In
وFocusDirection.Out
استفاده ازFocusDirection.Enter
وFocusDirection.Exit
در عوض ( I2F660 )API های
SwipeToReveal
MATERIAL (برای کارت و تراشه) اکنون به جای نمونه های مبتنی بر کلاس داده ، به یک API مبتنی بر شکاف (همانطور که توسط آهنگسازی توصیه می شود) تکیه می کنند تا آن شکاف ها را ایجاد کنند. این یک تغییر شکستن است ، لطفاً برای نمونه هایی از نحوه استفاده از API جدید ، نسخه ی نمایشی و نمونه را ببینید. ( IA8943 )سازنده
FontStyle(int)
مستهلک می شود ، به جای آن ازFontStyle.Normal
یاFontStyle.Italic
استفاده کنید. ( i66610 )تغییر نام رابط
FontScalable
بهFontScaling
( IE804A )
رفع اشکال
- در صورت تمرکز هیچ ویرایشگر متن
SoftwareKeyboardController.show()
دیگر صفحه کلید نرم افزار را نشان نمی دهد. ( i2165a ، b/301477279 ) - رویدادهای کلید سخت افزاری برای کلیدهایی که در همان نمای آهنگسازی یک رویداد پایین دریافت نکرده اند ، اکنون نادیده گرفته می شود. ( IB37B4 ، b/305518328 )
- پشتیبانی رندر را برای شیب جارو در
ArcLine
اضافه کنید. ( i4d5bb ) - اجرای Equals و HashCode برای
PageSize.Fixed
. ( IE3EDE ، B/300134276 ) - مسئله سازگاری باینری را با تغییر پنجره ( IEE695 ) رفع کنید
- لایه هسته اصلی را برای تراشه/دکمه Material3 حذف کنید زیرا میکروب مارک ها عملکرد بهتری را بدون آن نشان می دهند. ( i55555 )
-
TestDispatcher
S به عنوانeffectContext
برای تهیه تست ها برای ایجاد ساعتهای تست و فریم استفاده می شود. ( IA7178 )
نسخه 1.6.0-alpha08
18 اکتبر 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
منتشر شده است. نسخه 1.6.0-alpha08 حاوی این commit ها است.
تغییرات API
-
Modifier.dragAndDrawSource
دارایonDrawDragShadow
Lambda بهdrawDragDecoration
تغییر نام داده است وDragAndDropInfo
دارای پارامتر اندازه است که بهdragDecorationSize
تغییر نام داده است. ( ID0E30 ، B/303904810 ) -
SemanticsNodeInteraction.isDisplayed()
وSemanticsNodeInteraction.isNotDisplayed()
را معرفی کنید تا بررسی کنید که آیا یک گره همسان قابل مشاهده است یا نه بدون اینکه در مورد آن نیز ادعا کنید. ( I2C196 ، B/302100809 ) - یک مقدار
Unspecified
ویژه برای زمینه هایTextAlign
،TextDirection
،Hyphens
وLineBreak
ازParagraphTextStyle
برای جایگزینیnull
معرفی کرد. از آنجا که این کلاس ها کلاس های درون خطی هستند ، با جایگزینی قابل قبول با نامشخص ، از بوکس نوع بدوی خودداری می کنیم. سازندگان ، گیرنده ها و سایر روش ها درTextStyle
و سبک پاراگراف به روز شدند تا پارامترهای ذکر شده را به عنوان انواع غیر تهی بپذیرند. ( i4197e ، b/299490814 ) - اضافه بار
GoogleFont
برای خواندنGoogleFont
از XML اضافه کنید. ( if8f59 ) - ساخته شده
LoremIpsum
PreviewParameterProvider
یک کلاس باز. ( i41bf5 ، b/266918816 ، b/300116360 )
رفع اشکال
-
FontFamilyResolver
اکنون ازDispatchers.Main
برای Coroutines Management Cache استفاده می کند. ( IE8DD9 ) -
AndroidViewBinding
اکنون همزمان همزمان با استفاده از یک قطعه قطعه قطعه قطعه قطعه قطعه قطعه قطعهFragment
FragmentContainerView
در طرح شما به عنوان بخشی ازonRelease
خود با استفاده ازcommitNow
(به جایcommit
که قبلاً استفاده می کرد) را حذف می کند ، بنابراین مشکلات را با روش ویرایش زنده با جایگزینی ترکیب بر روی تغییرات برطرف می کند. ( i58fbf )
نسخه 1.6.0-alpha07
4 اکتبر 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
منتشر شده است. نسخه 1.6.0-alpha07 حاوی این commit ها است.
تغییرات API
- معرفی شده
PlatformTextInputMethodTestOverride
برای نوشتن تست برای ویرایشگرهای متن سفارشی. ( id159b ) - اصلاح کننده
dragAndDropSource
را برای شروع جلسات درگ و رها کردن و اصلاح کنندهdragAndDropTarget
برای دریافت از جلسات کشیدن و رها می افزاید. ( IB7828 ، B/286038936 ) -
ColorList
و مجموعه هایColorSet
اضافه شده که از تخصیص خودداری می کنند. ( i744bd ) - اضافه شده برای غیرفعال کردن مقیاس قلم غیر خطی ، پرچم موقت را اضافه
DisableNonLinearFontScalingInCompose
. در صورت نیاز به تمیز کردن آنها ، در تست های خودDisableNonLinearFontScalingInCompose = true
در تست های خود تنظیم کنید. این پرچم در آهنگسازی 1.6.0-beta01 حذف می شود. ( IC9486 )
رفع اشکال
- تجزیه و تحلیل بردار XML بهینه سازی شده. ( IBB015 )
نسخه 1.6.0-alpha06
20 سپتامبر 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
منتشر شده است. نسخه 1.6.0-alpha06 حاوی این commit ها است.
تغییرات API
- بهینه سازی های اضافی برای نمادهای مواد. ( i3e08d )
- برای یافتن گره های مشابه ، توانایی عبور از درخت اصلاح کننده بالا/پایین را اضافه می کند. ( i2d234 )
- اضافه کردن
onRestoreFailed()
پاسخ به اصلاح کنندهfocusRestorer()
( IE1D43 ) - حاشیه نویسی Androidx را به API های مختلف گرافیکی اضافه کرد تا
ColorInt
،FloatRange
،IntRange
،Size
و موارد دیگر را مشخص کند. ( id65c8 ، b/290950582 ) - اضافه کردن
showSystemUi=true
toPreviewScreenSizes
تعریف ( IB61D3 )
تغییرات رفتار
- در حال حاضر آهنگسازی از مقیاس گذاری قلم غیر خطی برای خوانایی بهتر و دسترسی استفاده می کند. هنگامی که مقیاس قلم> 100 ٪ در تنظیمات سیستم ، متن کوچک به طور عادی اندازه افزایش می یابد ، اما متن در حال حاضر بزرگ فقط کمی افزایش می یابد. همچنین ، ارتفاع خط تعریف شده در SP به طور خودکار تنظیم می شود تا متناسب با ارتفاع در مقیاس 100 ٪ در نظر گرفته شود. برای اطلاعات بیشتر به بهترین روشهای مقیاس فونت مراجعه کنید. ( I11518 )
نسخه 1.6.0-alpha05
6 سپتامبر 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
منتشر شده است. نسخه 1.6.0-alpha05 حاوی این commit ها است.
تغییرات API
- ضبط محتوا را در
AndroidComposeViewAccessibilityDelegateCompat
فعال کنید. ( IB2969 ) - سرعت های چرخشی در نمای مشاهده مانند
ScrollView
وRecyclerView
درViewConfiguration.ScaledMaximumFlingVelocity
قرار دارند. ScaledMaximumflingVelocity. اکنون آهنگسازی حاوی نسخه خاص خود ازmaximumFlingVelocity
است که اکنون در موردDraggable
صدق می کند. ( IBF974 ) - داربست اولیه را برای پشتیبانی از API های کشویی و رها کردن سکو اضافه می کند. ( if84ce )
-
deviceId
بهRotaryScrollEvent
( IBA3BF ) اضافه کنید - دستگاه های به روز شده
ui-tooling
API برای شامل دستگاه های جدیدتر ( IB25B4 )
نسخه 1.6.0-alpha04
23 آگوست 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
منتشر شده است. نسخه 1.6.0-alpha04 حاوی این commit ها است.
تغییرات API
- روشی را برای غیرفعال کردن
ReusableComposition
، حذف مشاهدات اما نگه داشتن گره ها اضافه کرد. ترکیب غیرفعال شده را می توان دوباره با فراخوانیsetContent
فعال کرد. ( IB7F31 ) - برای مدیریت چرخه عمر و استفاده مجدد از زیرمجموعه ها ، رابط
ReusableComposition
اضافه کنید. ( i812d1 ، b/252846775 ) -
Modifier.focusGroup
به API های پایدار ارتقا یافته است. ( i7ffa3 ) - حاشیه نویسی Androidx را به API های مختلف گرافیکی اضافه کرد تا
ColorInt
،FloatRange
،IntRange
،Size
و موارد دیگر را مشخص کند. ( I70487 ، B/290950582 ) - API
ColorFilter
به روز شده برای داشتن انواع زیر کلاس بتونی برای بهبود قابل بازرسی پارامترها. ( i5fe29 ) - معرفی کتابخانه-پیش نمایش سایش برای لیست دستگاه های سایش معتبر که می توانند برای پیش نمایش های UI استفاده شوند ( IB036E )
- رابط
FontScalable
را برای رسیدگی به قسمت مقیاس بندی قلم رابط چگالی ایجاد کرد. ( i2cf3f )
نسخه 1.6.0-alpha03
9 آگوست 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
منتشر شده است. نسخه 1.6.0-alpha03 حاوی این commit ها است.
تغییرات API
- نوع جدید انتقال Enter/Exit که محتوای آن را بر اساس اندازه کانتینر انیمیشن در طول انیمیشن Enter & Exit مقیاس می دهد. سرگرمی و رابط کاربری Compose Compose
LookaheadScope
اکنون پایدار هستند. ( IFB2CE ) - پشتیبانی اضافه شده برای پیکربندی
privateImeOptions
( IDB772 )
رفع اشکال
-
PopupPositionProvider.calculatePosition
اکنون هنگام تغییر حالت در محاسبه ، موقعیت پنجره را به طور خودکار به روز می کند. ( i676a1 ، b/292257547 ) - فیلدهای متنی ثابت که صفحه کلید را نشان می دهد و در صورت صحت
readOnly
قابل ویرایش است. همچنین صفحه کلید را نشان نمی دهد که هنگام تغییرreadOnly
از True به False تغییر می کند. ( i34a19 ، b/246909589 ) - استفاده گسترده از ادعاهای جهانی در آزمایش UI. ( i1f90d )
نسخه 1.6.0-alpha02
26 جولای 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
منتشر شده است. نسخه 1.6.0-alpha02 حاوی این commit ها است.
تغییرات API
- یک رابط یاب سرویس را اضافه کرد که می تواند توسط مجریان ترکیب اجرا شود که امکان اجرای ترکیب را فراهم می کند که نمایندگان به جستجوی خدمات نماینده دیگر به ترکیب اصلی مراجعه می کنند. این نباید به صورت مستقیم نامیده شود و برای ایجاد ایجاد API های آزمایشی در زمان اجرا که می توان از نسخه های پیچیده آهنگساز مانند ماژول UI یافت می شود ، استفاده می شود. ( I296B9 )
- کاملاً طراحی مجدد
PlatformTextInput*
API. ( i6c93a ، b/274661182 ، b/267235947 ، b/277380808 ) -
SoftwareKeyboardController
وLocalSoftwareKeyboardController
دیگر آزمایشی نیستند.LocalSoftwareKeyboardController
هم اکنون یکCompositionLocal
مناسب است. ( i4c364 ) -
LookaheadLayout
وLookaheadLayoutScope
برای چند نسخه کاهش یافته و اکنون حذف شده اند. API های جایگزینLookaheadScope
هستند که می توانند با هر طرح کار کنند. ( i12ac3 ) - اضافه شده
SemanticsNodeInteraction.requestFocus
به عنوان روشی راحت تر و قابل کشف برای درخواست تمرکز در تست ها. ( IE8722 ) - API های تجربی را برای ثبت ادعاهای جهانی ، برای استفاده از طریق چارچوب های آزمایش در آینده اضافه کنید. ( I12D77 )
رفع اشکال
- اولین دعوت نامه
update
AndroidView
در حال حاضر به جای اینکه در هنگام استفاده از ترکیبAndroidView
، به جای آن اجرا شود ، تا زمان وصل شدن نمای ، به تعویق می افتد. این اشکال را برطرف می کند که اگر حالت خوانده شده بلافاصله با یک اثر تغییر یابد ، پاسخ بهupdate
به روزرسانی شود. ( IE9438 ، B/291094055 )
نسخه 1.6.0-alpha01
21 ژوئن 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
منتشر شده است. نسخه 1.6.0-alpha01 حاوی این commit ها است.
ویژگی های جدید
- پشتیبانی از نگاه در
LazyList
. این اجازه می دهد تاLazyList
در گذرگاه نگاه کند تا هر انیمیشن (به عنوان مثال انیمیشن قرار دادن آیتم ،AnimatedVisibility
و غیره) را دور بزند و اندازه و موقعیت ظاهری را برای همه کودکان محاسبه کند. پس از گذر از Lookahead ، فرزندانLazyList
می توانند به طور مستقل از واقعیت تحریک شوند ، همانطور که در گذرگاه Lookahead مشاهده می شود.
تغییر رفتار: شامل fontpadding اکنون به طور پیش فرض در آهنگسازی نادرست است
includeFontPadding
اکنون به طور پیش فرض ( 21d806 ) در آهنگسازی نادرست است.
includeFontPadding
یک ویژگی میراث است که کنترل می کند که آیا در بالای خط اول و آخرین خط متن ، برای قرار دادن هر گونه شخصیت هایی که ممکن است در بالا یا زیر خطوط متن گسترش یابد ، شامل بالشتک اضافی در بالای خط اول و آخرین خط متن است.
به روزرسانی این نسخه آهنگسازی چگونه با حذف بالشتک اضافی در بالای خط اول و آخرین خط هر متنی که نمایش داده می شود ، نحوه ارائه همه متون در UI شما را تغییر می دهد.
بسته به نیازهای UI و معیارهای قلم مورد استفاده شما ، تغییرات باید حداقل باشد. با این حال ممکن است با مسدود کننده هایی مانند: - تست های تصویر شکسته. در صورت لزوم UI را برطرف کنید و تصاویر طلایی را بازسازی کنید. - متن کمی نادرست است. در صورت لزوم ، هرگونه بالشتک منفی سفارشی را حذف کرده یا در صورت لزوم بالشتک اضافه کنید.
شما می توانید با استفاده از PlatformTextStyle
برای هر متن ، includeFontPadding
شوید:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
می توانید با includeFontPadding
سبک های مواد خود ، برای همه متون خود برای همه متون خود انتخاب کنید. توجه داشته باشید که نام پارامترها بین M2 و M3 متفاوت خواهد بود.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
می توانید اطلاعات بیشتری در مورد includeFontPadding
در مستندات توسعه دهنده و این پست وبلاگ پیدا کنید.
اگر مشکلات/اشکالات مرتبط با این تغییر را تجربه کرده اید ، با استفاده از ردیاب شماره یک اشکال را ثبت کنید.
تغییرات API
- پشتیبانی
InputConnection#requestCursorUpdates
( i0c69b ) - اضافه شده
FocusRequester.saveFocusedChild
وFocusRequester.restoreFocusedChild
( IC557E ، B/272302679 ، B/275157318 ) - نوع
ResourceResolutionException
را به بسته بندی پرتاب های پرتاب شده هنگام تلاش برای بارگیری دارایی های bitmap با توضیحی از مسیر دارایی که بارگیری نشده است ، اضافه کنید. ( i19f44 ، b/230166331 ، b/278424788 ) - قابلیت دسترسی بهینه برای تخصیص عملکرد و حافظه. ( iede48 )
- ویژگی ها و اقدامات معنایی اضافه شده برای پشتیبانی از ترجمه متن. ( i4a6bc )
- ملک جدید در
IntrinsincMeasureScope
و پیاده سازی های آن (به عنوان مثالMeasureScope
) برای نشان دادن اینکه آیا اندازه گیری فعلی گذرگاه یک گذرگاه است یا خیر. ( i7a812 ) - API
DrawScope
به روز شده برای معرفی امکان بازگرداندن رندر در یک بوم متفاوت با چگالی جایگزین/طرح بندی و اندازه و اندازه. - به روز شده
DrawContext
برای پشتیبانی از پیکربندی چگالی و جهت چیدمان و همچنین تنظیم بوم. ( IE1F9B ، B/225408150 ) -
Paragraph#fillBoundingBoxes
برای محاسبه جعبه های محدود کننده شخصیت. ( if30ee ) - مجموعه ای از
MultiPreviews
مشترک اضافه شده است ( IA5A27 )
رفع اشکال
- رابط
FocusTargetModifierNode
اضافه شده است که می تواند برای ایجاد یکFocusTarget
سفارشی استفاده شود. ( i9790e ) - پارامترهای
fallback*
در سازندهTextMeasurer
بهdefault*
تغییر نام داد. ( i940a5 ) - تغییر نام توسط
SemanticsPropertyReceiver.performImeAction
بهonImeAction
وSemanticsActions.PerformImeAction
بهOnImeAction
. ( i8e841 ) - چرخ را برای تمایز یک پیمایش ماوس از کشیدن در پیمایش تو در تو (به طور خاص ، در
NestedScrollConnection
) اضافه می کند. ( IE57E4 ) -
asComposePaint
API را برای جایگزینیtoComposePaint
اضافه کرد زیرا شیء برگشتیandroid.graphics.Paint
اصلی را می پیچد ( I22B4C ) -
SemanticsProperties.imeAction
SemanticsActions.performImeAction
دهید. ( i4a587 ) - پشتیبانی اضافه شده برای انتخاب توسط ماوس. انتخاب مبتنی بر لمس با کلمه گسترش می یابد و با شخصیت کوچک می شود. ( IC0C6C ، B/180639271 )
- روشهای
Paragraph
که قبلاً برای پرتابAssertionError
برای خارج از مرزها استفاده می کردند ، اکنونMultiParagraph
راIllegalArgumentException
می کنند. ( i549d3 ، b/243338896 )
نسخه 1.5
نسخه 1.5.4
18 اکتبر 2023
androidx.compose.ui:ui-*:1.5.4
منتشر می شود. نسخه 1.5.4 حاوی این commit ها است.
نسخه 1.5.3
4 اکتبر 2023
androidx.compose.ui:ui-*:1.5.3
منتشر می شود. نسخه 1.5.3 شامل این تعهدات است.
رفع اشکال
- ( b/301209788 )
TextField
گاهی اوقات هنگام تمرکز و ورود به ورودی کره ای ، دستورات قبلی را نادرست اعمال می کند و منجر به شخصیت های از دست رفته می شود.
نسخه 1.5.2
27 سپتامبر 2023
androidx.compose.ui:ui-*:1.5.2
منتشر می شود. نسخه 1.5.2 حاوی این commit ها است.
رفع اشکال
- در هنگام دسترسی به API دسترسی به API از موضوع پس زمینه ، راه حل اضافه شده برای تصادفات اضافه شده است.
- گره های غیرقابل دسترسی را به درخت معناشناسی اضافه کنید.
نسخه 1.5.1
6 سپتامبر 2023
androidx.compose.ui:ui-*:1.5.1
منتشر شده است. نسخه 1.5.1 حاوی این commit ها است.
رفع اشکال
- فیلدهای متنی ثابت که صفحه کلید را نشان می دهد و در صورت صحت
readOnly
قابل ویرایش است. همچنین صفحه کلید را نشان نمی دهد که هنگام تغییرreadOnly
از True به False تغییر می کند. ( i34a19 ، b/246909589 )
نسخه 1.5.0
9 آگوست 2023
androidx.compose.ui:ui-*:1.5.0
منتشر می شود. نسخه 1.5.0 حاوی این commit ها است.
نسخه 1.5.0-rc01
26 جولای 2023
androidx.compose.ui:ui-*:1.5.0-rc01
منتشر شده است. نسخه 1.5.0-rc01 حاوی این commit ها است.
رفع اشکال
- تصادف ثابت هنگامی که
SubcomposeLayout
در داخلmovableContentOf()
استفاده می شود.
نسخه 1.5.0-beta03
28 ژوئن 2023
androidx.compose.ui:ui-*:1.5.0-beta03
منتشر می شود. نسخه 1.5.0-beta03 حاوی این تعهدات است.
رفع اشکال
- رابط FocustargetModifierNode اضافه شده است که می تواند برای ایجاد یک Focustarget سفارشی استفاده شود. ( IFB1D6 )
- مسئله ای را با گفتگوی و برنامه های پاپ آپ برطرف کرد که می تواند باعث شود پنجره کودک همانطور که انتظار می رود در هنگام
usePlatformDefaultWidth=true
، تغییر اندازه دهد. ( i112ee )
نسخه 1.5.0-beta02
7 ژوئن 2023
androidx.compose.ui:ui-*:1.5.0-beta02
منتشر می شود. نسخه 1.5.0-beta02 حاوی این تعهدات است.
تغییرات API
-
asComposePaint
API اضافه شده برای فعال کردن مصرف یکandroid.graphics.Paint
به عنوان مثال در آهنگسازی استفاده می شود
رفع اشکال
-
asComposePaint
API را برای جایگزینیtoComposePaint
اضافه کرد زیرا شیء برگشتیandroid.graphics.Paint
اصلی را می پیچد ( I22B4C )
نسخه 1.5.0-beta01
24 مه 2023
androidx.compose.ui:ui-*:1.5.0-beta01
منتشر شده است. نسخه 1.5.0-beta01 حاوی این تعهدات است.
تغییرات API
- تخصیص های حذف شده در بازپرداخت ، انیمیشن های رنگی و
AndroidComposeView
( IB2BFA ) - Helper Fun
CacheDrawModifierNode()
را اضافه می کند تا به هیئت اجازه دهد ( ICF8F9 ) - معرفی خاصیت
isLookingAhead
، در دسترس ازMeasureScope
، برای مشاهده نتایج نگاه و تأثیرگذاری در صورت دلخواه. ( IBF4C3 ) -
traversalIndex
، ویژگی های جدید معناشناسی ، شناوری که برای مرتب کردن گره ها درTalkBack
Traversal استفاده می شود (مقادیر پایین قبل از آن آمده است). ( i9a81b ، b/186443263 ) - تغییر نام ویژگی Semantics
isContainer
بهisTraversalGroup
( I121f6 ) -
ColorProducer
اکنون به جایproduce
یکoperator fun invoke
دارد ( i4a9a2 ) - API تبدیل
Path
را برای اعمال ترجمه/مقیاس/چرخش به اشیاء مسیر اضافه کنید. ( I23434 ، b/233772232 ) - روش
ColorProducer
راproduce
می کند. ( i78bde ) - تغییر نام
toFrameworkColorSpace
بهtoAndroidColorSpace
( i4f547 ) - تغییر نام
ColorLambda
بهColorProducer
. ( i73b1a ) - API ها را برای تبدیل بین Android و آهنگسازی انواع ColorSpace معرفی کنید. ( IE7DB4 ، B/279979665 )
- یک پارامتر رنگ را به
BasicText
اضافه کرد تا امکان متحرک سازی کارآمد یا تنظیم رنگ متن را فراهم کند. ( Iffd88 , b/246961787 ) - تغییر نام
TextRange.constrain
بهTextRange.coerceIn
. ( i31be2 ) - اضافه شده بهینه شده
TextStyle.merge(...)
با لیست کامل پارامتر. ( IAD234 ، b/246961787 ) - بسیاری از API های متنی را تثبیت کرد که شامل
Brush
،DrawStyle
،TextMotion
،DrawScope.drawText
،Paragraph.paint(Brush)
،MultiParagraph.paint(Brush)
است. ( i2f740 ، b/261581564 ، b/261581931 ، b/261561245 ) -
PlatformTextStyle.includeFontPadding
نامشخص است. هدف اصلی ما حذف این زمینه بود ، اما بازخورد نشان می دهد که توسعه دهندگان به این گزینه پیکربندی نیاز دارند. بنابراین از بین بردن استهلاک از میدان ( I98E96 ، B/277703184 ) - روش عمومی
TextRange.constrain
اضافه شده است. ( i97912 ) -
UrlAnnotation
s درAnnotatedString
S اکنون می تواند از طریق خدمات دسترسی مانندTalkBack
باز شود. ( IF4D82 ، B/253292081 ) - اقدامات معنایی
InsertTextAtCursor
برای زمینه های متنی اضافه شده است. ( i11ed5 ) - سازنده
LineHeightStyle.Alignment(topRatio)
به API پایدار ارتقا می یابد. ( i79c32 ، b/261565383 ) -
TextMeasurer
و API های مرتبط دیگر آزمایشی نیستند. ( i74647 ، b/261581753 ) - برای استناد به عمل IME در گره های ویرایشگر متن ، عملکرد معناشناسی
PerformImeAction
اضافه کرد. ( IC606F ، B/269633506 ) - API های
PlatformTextInput
دیگر برای Android آزمایش نمی شوند. ( i668eb ) - نام پارامتر ارزش برای
Enum.valueOf
تغییر یافته ( IA9B89 ) - استثنائات بیشتر از Enum Valueof ( i818fe )
- API جدید
PlatformTextInputAdapter
جدید را برای ساختن پیاده سازی های ورودی متن سفارشی که مستقیماً با API های پلتفرم صحبت می کنند ، معرفی کرد. ( I58DF4 ) - پارامتر
BlendMode
اضافه شده بهDrawScope.drawText
،Paragraph.paint
وMultiParagraph.paint
برای پشتیبانی از الگوریتم های مختلف ترکیبی هنگام ترسیم متن روی بوم. ( i57508 ) - تغییر نام
Font.MaximumAsyncTimeout
بهFont.MaximumAsyncTimeoutMillis
. فقط تغییر نام ( I07AF5 ) - مقادیر DPI به روز شده از دستگاههای مرجع
@Preview
( ID6151 ، B/254528382 ) -
brush
، پارامترهایalpha
را بهBasicText
اضافه کنید تا امکان انیمیشن یا تنظیم برس متنی فراهم شود. - تعریف انواع لامبدا بدون جعبه برای شناور ، دو برابر ، طولانی ، int ، کوتاه در: UI: UI-UNIT ( I6F18D ، B/246961787 )
رفع اشکال
- تخصیص چندگانه در ردیابی سرعت نشانگر ( I26BAE )
- کاهش تخصیص در طرح و مدیریت ورودی اشاره گر ( I5333A )
- بهینه سازی استفاده از حافظه وکتور و ارائه فریم های اول ( I2F3C6 )
- تخصیص را هنگام ترسیم خط و نقاط با بوم حذف کرد ( I9F535 )
- برای
AndroidFont.fontVariationSettings
( i7d9e2 ) اسناد را اضافه کنید
مشارکت خارجی
- عملکرد بهبود یافته و کاهش تخصیص در API های بردار ( I906CB )
نسخه 1.5.0-alpha04
10 مه 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
منتشر شده است. نسخه 1.5.0-alpha04 حاوی این commit ها است.
ویژگی های جدید
- اصلاحات
Modifier.Node
به پیشرفت های نمایندگی افزودنی برای تفویض به سایر مواردModifier.Node
DelegatingNode
شده است. این کار را می توان با API هایdelegate
وundelegate
انجام داد. قبل از این تغییر ، هر API از گره نمایندگی نیاز به صریح به گره تفویض شده دارد. پس از این تغییر ، رابط های گره به طور ضمنی به آنها واگذار می شوند ، مگر اینکهDelegatingNode
صریح صریح آنها را بر آنها قرار دهد. ( 67352BC )
تغییرات API
- معرفی
NestedScrollModifierNode
، یکNestedScroll Modifier.Node
تو در تو در تو در تو در تو در تو در تو در تو در تو در تو در تو است. ( i69513 ) - پارامترهای
onReset
وonRelease
را به ترکیبAndroidViewBinding
اضافه کرده و ازAndroidView
Composetable و پشتیبانی مجدد برای استفاده مجدد باViewBinding
آینه می کند. ( i00b1e ، b/276802519 ) - به روز شده API برای پشتیبانی از عملیات Rewind برای پشتیبانی از USECASES از دستکاری مکرر مسیر با استفاده مجدد سریعتر. ( i7b797 )
- اضافه شده بهینه شده
TextStyle.merge(...)
با لیست کامل پارامتر. ( IAD234 ، b/246961787 ) - بسیاری از API های متنی را تثبیت کرد که شامل
Brush
،DrawStyle
،TextMotion
،DrawScope.drawText
،Paragraph.paint(Brush)
،MultiParagraph.paint(Brush)
است. ( i2f740 ، b/261581564 ، b/261581931 ، b/261561245 ) -
PlatformTextStyle.includeFontPadding
نامشخص است. هدف اصلی ما حذف این زمینه بود ، اما بازخورد نشان می دهد که توسعه دهندگان به این گزینه پیکربندی نیاز دارند. بنابراین از بین بردن استهلاک از میدان ( I98E96 ، B/277703184 )
رفع اشکال
- رگرسیون ثابت که در آن صفحه کلید برای زمینه های متن در گفتگوی های داخل گفتگوی ایجاد نشده توسط ترکیب
Dialog
نشان داده نشده است. ( i82551 ، b/262140644 )
نسخه 1.5.0-alpha03
19 آوریل 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
منتشر شده است. نسخه 1.5.0-alpha03 حاوی این commit ها است.
ویژگی های جدید
- رفتار پیش فرض جدید برای
SubcomposeLayout
درLookaheadScope
:SubcomposeLayouts
که دارای شکاف های مشروط نیستند (به عنوان مثالTabRow
،Scaffold
،BoxWithConstraints
و غیره) اکنون با انیمیشن های Lookahead کار می کنند.
تغییرات API
-
intermediateMeasurePolicy
جدید پیش فرض که از خط مشی استفاده می کند از Lookahead Pass استفاده می کند ، زیرگروه هایSubcomposeLayout
بدون اسلات های مشروط مانندScaffold
،TabRow
وBoxWithConstraints
اجازه می دهد تا به طور پیش فرض با Lookahead کار کنند. ( id84c8 ) - recomposer ایجاد شده برای یک پنجره Android اکنون فقط هنگام دریافت یک اطلاع رسانی
ON_STOP
، به جای همه ترکیبات ، تماس هایی باwithFrameNanos
را مسدود می کند. این بدان معناست که ویندوزهای مرتبط با فعالیت های متوقف شده همچنان به تغییر داده ها ادامه می دهند اما انیمیشن ها یا هر تماس گیرنده دیگری ازwithFrameNanos
مسدود می شود. ( id9e7f ، b/240975572 ) -
motionEventSpy
به ثبات تغییر می دهد. ( IC5EC4 ، B/261560988 ) - روش عمومی
TextRange.constrain
اضافه شده است. ( i97912 ) -
PlatformTextStyle.includeFontPadding
دیگر برای ترغیب توسعه دهندگان به استفاده از این API سازگاری برای تعویض و تنظیمات آزمایشincludeFontPadding
false ، دیگر کاهش نمی یابد. ( i98e96 ، b/277703184 )
نسخه 1.5.0-alpha02
5 آوریل 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
منتشر شده است. نسخه 1.5.0-alpha02 حاوی این commit ها است.
تغییرات API
- API جدید
SubcomposeLayout
که یک سیاست اندازه گیری میانی اضافی را برای رسیدگی به منطق اندازه گیری/چیدمان در طول انیمیشن های مبتنی بر نگاه انجام می دهد. ( I017D3 ) - Pointerinput اکنون تنبل است و از اصلاح کننده استفاده می کند. برای عملکرد بهتر ( در مورد تغییر رفتار جزئی بخوانید ). ( 15dab9 )
- API های آزمایشی را با وقایع کلیدی به ثبات تغییر می دهد. ( i9c7d8 ، b/261566839 ، b/261567368 )
- API های تجربی را به پایدار در
PointerInputChange
تغییر می دهد. ( i1b543 ، b/261560988 ، b/261565762 ، b/261565749 ) - راهی برای فوری یک
SuspendingPointerInputModifierNode
برای اجرایModifier.Node
پیچیده تر اضافه می کند. ( IC4933 ) -
UrlAnnotation
s درAnnotatedString
S اکنون می تواند از طریق خدمات دسترسی مانندTalkBack
باز شود. ( IF4D82 ، B/253292081 ) - قبل از ارسال به صفحه کلید نرم ، یک API را برای رهگیری کلیدهای سخت افزاری اضافه کرد ( I4F4C6 ، B/186800395 )
- اقدامات معنایی
InsertTextAtCursor
برای زمینه های متنی اضافه شده است. ( i11ed5 ) - اقدامات تست مربوط به متن (به عنوان مثال
performTextInput
) اکنون به جای کلیک بر روی قسمت ، مستقیماً با استفاده از اقدامات معناشناسی ، به طور مستقیم با استفاده از اقدامات معنایی درخواست می کنند. ( i6ed05 )
رفع اشکال
- اقدامات تست متن اکنون به زمینه های متن نیاز دارد. ( IAB328 )
نسخه 1.5.0-alpha01
22 مارس 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
منتشر شده است. نسخه 1.5.0-alpha01 حاوی این commit ها است.
تغییرات API
- modifier.intermediateLayout اکنون نیازی به یک ظاهر صریح ندارد. بلوک اندازه گیری در IntermediateLayout دارای IntermediatemeAsureScope به عنوان گیرنده است که Coroutinescope مناسب ، LookaheadScope و اندازه گیری را فراهم می کند. ( IBE2E5 )
- Lookaheadlayout با LookeAheadScope جایگزین شده است ، که دیگر یک طرح نیست. این اجازه می دهد تا محتوای CHID در یک LookaheadScope به طور مستقیم توسط اندازه گیری والدین کنترل شود. ( ibe2e5 )
- اضافه کردن
Modifier.Node#coroutineScope
برای اجازه دادن به اصلاح کننده. nodes برای راه اندازی Coroutines. ( i76ef9 ) - اجازه دهید اصلاح کننده. nodes با اجرای رابط ترکیب composionLocalConsumerModifierNode ، ترکیبات را بخوانید. ( IB44DF )
- انتشار کلاس deprecated به دارایی. ( i882d1 )
نسخه 1.4
نسخه 1.4.3
3 مه 2023
androidx.compose.ui:ui-*:1.4.3
منتشر شده است. نسخه 1.4.3 حاوی این commit ها است.
رفع اشکال
- مسئله ای را برطرف کرد که در آن ممکن است
AndroidView
در هنگام استفاده از اصلاح کننده های خاص به درستی بیان نشود. ( i4dc77 ، b/274797771 ) - رفع اشکال در جستجوی فوکوس 2D که منوهای
DropDown
تحت تأثیر قرار داده است ( B/276811828 ) - رفع یک اشکال در ویژگی های Enter/Exit Focus Custom Focus که فقط در اولین بار که Lambda فراخوانی می شود ، بلوک Enter/Exit را اجرا می کرد ( B/277234245 )
- رگرسیون را در سیستم تمرکز برطرف کرد که باعث تصادف در هنگام خواندن
focusProperties
شد. ( b/271324781 ، b/274897776 )
نسخه 1.4.2
19 آوریل 2023
androidx.compose.ui:ui-*:1.4.2
منتشر می شود. نسخه 1.4.2 حاوی این commit ها است.
رفع اشکال
- مسئله ای را برطرف کرد که
AndroidView
از اصلاح کننده های خود به درستی استفاده نکند ، به طور بالقوه منجر به رفتار و تصادفات غیر منتظره می شود. ( ib67ee ، b/275919849 ) - رگرسیون ثابت که در آن صفحه کلید برای زمینه های متنی در گفتگوی های داخل
Dialog
ایجاد نشده است ( I82551 ، B/262140644 )
نسخه 1.4.1
5 آوریل 2023
androidx.compose.ui:ui-*:1.4.1
منتشر شده است. نسخه 1.4.1 حاوی این commit ها است.
رفع اشکال
- مسئله ای را برطرف می کند که
ParentDataModifier
درAndroidView
تأثیر نمی گذارد ( B/274797771 )
نسخه 1.4.0
22 مارس 2023
androidx.compose.ui:ui-*:1.4.0
منتشر شده است. نسخه 1.4.0 حاوی این commit ها است.
تغییرات مهم از 1.3.0
- یک API جدید
PinnableContainer
اضافه شده است که اجازه می دهد تا موارد لیست تنبل پین شود ، به طوری که در هنگام پیمایش از مرزها دفع نمی شوند. به عنوان مثال ،Modifier.focusable()
از این مکانیسم برای پین کردن مورد متمرکز در حال حاضر استفاده می کند. ( IB8881 ، B/259274257 ، B/195049010 ) - سیستم فوکوس با استفاده از API های جدید
Modifier.Node
آزمایشی بازنویسی می شود. ( i7f4d7 ، b/247708726 ، b/255352203 ، b /253043481 ، b/247716483 ، b/254529934 ، b/251840112 ، b/251859987 ، b/25714141589 ) - در ویژگی معنایی
IsContainer
در Surfaces اضافه شده است. این ویژگی در تغییر بعدی استفاده خواهد شد که ترتیب پیمایش را بر اساس معنای معنایی عناصری مانند سطوح تعیین می کند. ( I63379 ) -
DropdownList
New Accessibility را اضافه کرد. این می تواند برای تکرار رفتارTalkBack
هنگام تمرکزandroid.widget.Spinner
استفاده شود. ( i177e5 ، b/236159001 ) - اکنون می توانید از
PlatformTextStyle(emojiSupportMatch)
استفاده کنید تا پردازش پشتیبانی ایموجی را به صورت اختیاری غیرفعال کنید. ( IA7100 ، b/139326806 ) - تست های UI Android Compose UI اکنون هنگام اجرای فریم ها برای رسیدن به بیکار (به عنوان مثال از طریق
waitForIdle
) ، برای هر فریم پاس های چیدمان را برای هر فریم اجرا می کنند. این ممکن است بر تست هایی که بر فریم های انفرادی انیمیشن های طرح بندی ادعا می کنند ، تأثیر بگذارد. ( i8ea08 ، b/222093277 ) -
TextMotion
Experimental toTextStyle
را برای تعریف متن یاStatic(default)
یا انیمیشن اضافه کرد. اگر متن از طریق انیمیشن مقیاس ، ترجمه یا چرخانده می شود ، ازTextMotion.Animated
استفاده کنید. ( I24DD7 )
نسخه 1.4.0-rc01
8 مارس 2023
androidx.compose.ui:ui-*:1.4.0-rc01
منتشر شده است. نسخه 1.4.0-rc01 حاوی این commit ها است.
تغییرات API
- اضافه بار تابع
AndroidView
را اضافه کرد ، که پارامترonReset
را می پذیرد. این اجازه می دهد تا هنگام استفاده از گره آنها در ترکیب ، از موارد استفاده مجدد استفاده شود و به روش سازگار مورد استفاده مجدد قرار گیرد. این امر به ویژه برایLazyRows
وLazyColumns
از دیدگاه ها مفید است. ( i3f10d ، b/230099236 ) - API جدید
PlatformTextInputAdapter
جدید را برای ساختن پیاده سازی های ورودی متن سفارشی که مستقیماً با API های پلتفرم صحبت می کنند ، معرفی کرد. ( I58DF4 )
رفع اشکال
- اقدامات معنایی
SetText
BasicTextField
اکنون بافر متن را با استفاده از همان مسیر کد به روزرسانی های IME و توابع آزمایش (به عنوان مثالperformTextReplacement
) به روز می کند. - توابع تست متن
performTextClearance
،performTextReplacement
وperformTextSelection
اکنون ازSemanticsActions
استفاده می کنند. ( I0807D ، B/269633168 ، B/269624358 )
نسخه 1.4.0-beta02
22 فوریه 2023
androidx.compose.ui:ui-*:1.4.0-beta02
منتشر می شود. نسخه 1.4.0-beta02 حاوی این تعهدات است.
تغییرات API
-
modifierElementOf()
API را حذف کرد. لطفاً به جای آن مستقیماً ازModifierNodeElement
گسترش دهید. ( i2256b ) - پاسخ به تماس اصلاح کننده جدید
Modifier.Node.onReset()
به شما امکان می دهد برخی از حالت های محلی را مجدداً تنظیم کنید تا در صورت استفاده مجدد ازLayout
پرونده را به درستی کنترل کنید (به عنوان مثال به عنوان یک مورد ازLazyColumn
).FocusTargetModifierNode
ثابت برای تنظیم مجدد حالت متمرکز. ( i65495 ، b/265201972 ) - پارامتر
BlendMode
اضافه شده بهDrawScope.drawText
،Paragraph.paint
وMultiParagraph.paint
برای پشتیبانی از الگوریتم های مختلف ترکیبی هنگام ترسیم متن روی بوم. ( i57508 )
رفع اشکال
- Accessibility focus order algorithm improved, for example top/bottom bars are more often read first/last respectively ( 74e9c5 )
نسخه 1.4.0-beta01
8 فوریه 2023
androidx.compose.ui:ui-*:1.4.0-beta01
is released. نسخه 1.4.0-beta01 حاوی این تعهدات است.
تغییرات API
-
PinnableContainer.PinnedHandle.unpin()
was renamed torelease()
( I4667a ) - Added
waitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
andwaitUntilDoesNotExist
as experimental API toComposeTestRule
, extending thewaitUntil
API to accept any matcher and any count of nodes. SeeComposeTestRule
for further documentation. ( Ifa1b9 , b/226934294 ) - Rename
Font.MaximumAsyncTimeout
toFont.MaximumAsyncTimeoutMillis
. ( I07af5 ) - Removed
GoogleFont.Provider.AllFontsListUri
and linked to it in ktdoc instead. ( I16f29 )
رفع اشکال
- Add docs for
AndroidFont.fontVariationSettings
( I7d9e2 )
نسخه 1.4.0-alpha05
25 ژانویه 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
is released. نسخه 1.4.0-alpha05 حاوی این commit ها است.
تغییرات API
- Introduced new experimental overloads for the
runComposeUiTest
function andcreate*ComposeRule
functions that acceptCoroutineContext
parameters. The context will be used for the test composition and anyLaunchedEffect
andrememberCoroutineScope()
calls in the composition. ( I10614 , b/265177763 ) - Add a new API to track 1 dimensional velocity ( If5a82 )
-
FocusRequester
is now marked as@Stable
. ( I580ee ) - Remove an experimental annotation from the
DialogProperties
constructor that takes ausePlatformDefaultWidth
parameter. ( Ic4048 ) - Added function to calculation position and tangent at a distance on a path - with
PathMeasure.getPosition()
andPathMeasure.getTangent()
( I3b47c ) - Removed accidentally exposed public setter on
PlatformParagraphStyle
. ( I07f47 ) - More type/nullability of inline/deprecated-hidden functions ( I24f91 )
- Add
AnnotatedString.hasStringAnnotations
to query for annotations with zero-allocations. ( I94dfe , b/246960758 ) - Added a new overload for
TextMeasurer.measure
function which takes in aString
as text. ( I47b2d , b/242705342 ) -
LineBreak
andHyphens
APIs in TextStyle are graduated to stable. ( Ic1e1d )
مشارکت خارجی
-
notifyFocusedRect
methods inTextInputSession
andTextInputService
are not deprecated again. ( I23a04 , b/262648050 )
نسخه 1.4.0-alpha04
11 ژانویه 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
is released. نسخه 1.4.0-alpha04 حاوی این commit ها است.
ویژگی های جدید
- Added a new
PinnableContainer
API that allows lazy list items to be pinned, so that they are not disposed when they are scrolled out of bounds. For example,Modifier.focusable()
uses this mechanism to pin the currently focused item. ( Ib8881 , b/259274257 , b/195049010 ) - The focus system is rewritten using the new experimental
Modifier.Node
APIs. ( I7f4d7 , b/247708726 , b/255352203 , b/253043481 , b/247716483 , b/254529934 , b/251840112 , b/251859987 , b/257141589 ) - در ویژگی معنایی
IsContainer
در Surfaces اضافه شده است. این ویژگی در تغییر بعدی استفاده خواهد شد که ترتیب پیمایش را بر اساس معنای معنایی عناصری مانند سطوح تعیین می کند. ( I63379 ) - Added new accessibility role
DropdownList
. This can be used to replicateTalkBack's
behavior when focusingandroid.widget.Spinner
. ( I177e5 , b/236159001 ) - You can now use
PlatformTextStyle(emojiSupportMatch)
to optionally disable emoji support processing for a single Paragraph. ( Ia7100 , b/139326806 ) - Android Compose UI tests will now run layout passes for each frame when executing frames to get to idle (eg via
waitForIdle
). This may affect tests that assert on individual frames of layout animations. ( I8ea08 , b/222093277 ) - Added experimental
TextMotion
toTextStyle
to define Text either to beStatic(default)
or Animated. UseTextMotion.Animated
if Text is going to be scaled, translated, or rotated via animation. ( I24dd7 )
تغییرات API
- Replaced
maxSize: IntSize
argument indrawText
withsize: Size
to be inline with otherDrawScope
functions.size
is set toSize.Unspecified
by default which should not change the previous default behavior. ( Icd27d ) - Removed deprecated experimental font constructor. ( I8a724 , b/261435386 )
- The ui tooling data class
Group
now has a field,isInline
, that indicates if the group is for a call to an inline composable function. IfisInline
istrue
then the call is to an inline composable function. However, the value might be false for calls to inline composable functions that are from modules that are compiled with a version of the compose compiler plugin that doesn't generate the inline function information. ( Idb846 ) - Graduated a number of previously experimental APIs to stable
- Rotary Scroll Event API is now stable ( I42ad3 , b/261561229 )
-
FontVariation
API is now stable ( I8779f , b/241016309 ) - All
Font()
constructors are now stable API ( I5948b , b/261435386 ) -
DeviceFontFamilyName
is now stable ( I8b640 , b/261435386 ) -
AndroidFont
constructor withvariationSettings
is now a stable API, and can be used to create new types of font descriptors. ( I5adcc , b/261565807 ) -
createFontFamilyResolver
API is now stable. This can be used to catch uncaught exceptions during async font loading. ( Ibb481 , b/261435386 ) -
Font.loadingStrategy
API is now stable. ( I5937c , b/261435386 ) -
GoogleFont
API is now stable. ( Ic90b0 , b/261435386 ) -
TextUnit(float, TextUnitType)
is now stable API. ( I90c84 , b/261561612 ) -
pluralStringResource
is now stable API. ( I09849 , b/261439703 )
نسخه 1.4.0-alpha03
7 دسامبر 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
is released. نسخه 1.4.0-alpha03 حاوی این commit ها است.
تغییرات API
- Removing
ExperimentalComposeUiApi
fromPointerIcon
( I23af8 ) - Introduce Page accessibility actions:
PageUp
,PageDown
,PageLeft
,PageRight
. Note that these are only available from API 29. ( Ida4ab ) - Updated
rememberNestedScrollConnection
parameter view from root view to host view. ( Ia5200 ) - یک Modifier API برای جستجوی اطلاعات اسکرول اجداد اضافه شده است. ( I2ba9d , b/203141462 )
- در
Clickable
برای به تأخیر انداختن صحیح تعاملات مطبوعاتی استفاده میشود، زمانی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند. - هنگامی که در داخل یک
Scrollable ViewGroup
استفاده می شود،Clickables
ثابت شد که امواج را به درستی به تاخیر نمی اندازند. - کشوها و برگهها برای تأخیر صحیح فشارها در صورتی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند، بهروزرسانی شدند.
- Renamed
CompositingStrategy.Always
toOffscreen
to indicate that thegraphicsLayer
will always be rendered into an intermediate buffer ( I47dc1 ) - Layout overload with multiple content slots is now stable ( I10566 , b/248294649 )
- Added experimental new APIs
PerfettoTrace.record {}
andPerfettoTraceRule
to capture Perfetto traces (also known as System Traces) as part of a test, to inspect test behavior and performance. ( I3ba16 ) - In UI tests using a Compose rule, continuations resumed during
withFrameNanos
callbacks will not be dispatched until after all frame callbacks have finished running. This matches the behavior of compose when running normally. However, tests that rely on the old behavior may fail. This should only affect code that callswithFrameNanos
orwithFrameMillis
directly, and has logic outside of callback passed to those functions that may need to be moved inside the callbacks. See the animation test changes in this CL for examples. - Added optional
onPerformTraversals: (Long) -> Unit
parameter toTestMonotonicFrameClock
constructor and factory function to run code afterwithFrameNanos
callbacks but before resuming callers' coroutines. ( Idb413 , b/254115946 , b/222093277 , b/255802670 ) - Added EmojiCompat to Compose ( Ibf6f9 , b/139326806 )
- Added new wallpaper parameter to
@Preview
for dynamic colour support ( I9f512 )
رفع اشکال
- Snapshot apply notifications are now sent after the
Recomposer
finishes applying changes. ( Iad6c0 , b/222093277 ) - Introduced changes in
captureToImage
to allow for capturing multi window screenshots. This is useful for screenshot tests that use compose PopUps. ( I169c5 )
به روز رسانی های وابستگی
- Compose UI و Compose Material اکنون به Lifecycle 2.5.1 بستگی دارد. ( I05ab0 , b/258038814 )
نسخه 1.4.0-alpha02
9 نوامبر 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
is released. نسخه 1.4.0-alpha02 حاوی این commit ها است.
تغییرات API
- Updated
GraphicsLayerScope
to expose the current size of thegraphicsLayer
. This is useful for computinggraphicsLayer
transformations as a function of the Composable size. ( If8c43 , b/181387080 ) - Introduced
CompositingStrategy
to determine when to leverage an offscreen compositing layer for rendering ofgraphicsLayer
content. Auto maintains the default behavior which internally leverages a layer if alpha is applied or aRenderEffect/Overscroll
. Always will always introduce an offscreen buffer whereModulateAlpha
will avoid leveraging an offscreen buffer and instead will modulate each of the recorded drawing instructions within thegraphicsLayer
.ModulateAlpha
usage will still leverage an offscreen buffer forRenderEffect/Overscroll
usages ( I25e82 , b/256382834 ) -
invalidateSubtree()
was added toModifier.Node
to allow invalidating entire hierarchies for layout and drawing. ( I4bd90 ) - Promote
rememberNestedScrollInteropConnection
to stable. Introduced the ability to pass a root view torememberNestedScrollInteropConnection
. This can help the custom view better react to scrolling constraints, specially in non-standard views (egModalBottomSheetDialog
). ( I9e107 ) - Added
ObserverNode
interface that can be used byModifier.Node
implementations that need to be notified when a value that they had previously read has changed ( I5728b , b/247716483 ) - Added a new constructor to
Paint
that accepts a nativeandroid.graphics.Paint
. Also added an extension functiontoComposePaint()
that converts an existing native Paint object to Compose Paint. ( Ica91b ) - Add new
FontFamily.Resolver.resolveAsTypeface
for use on Android. ( I8950b ) - Add
ToolingState
to allow tooling to change internal states of Composable ( Ie6614 ) - Refactor tooling to have better support for new added animations ( I8677b )
- اضافه شدن پارامتر
minLines
به متریال و متریال3 Text،TextField
وOutlinedTextField
که امکان تنظیم حداقل ارتفاع جزء بر حسب تعداد خطوط را فراهم می کند ( I4af1d )
نسخه 1.4.0-alpha01
24 اکتبر 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
is released. نسخه 1.4.0-alpha01 حاوی این commit ها است.
تغییرات API
- یک روش جدید،
awaitEachGesture()
برای آشکارسازهای اشاره اضافه شد. شبیه بهforEachGesture()
عمل میکند، اما حلقه روی ژستها کاملاً درAwaitPointerEventScope
عمل میکند تا رویدادها بین تکرارها از بین نرود. -
forEachGesture()
به نفعawaitEachGesture()
منسوخ شده است زیرا اجازه می دهد رویدادها بین حرکات از بین بروند. ( Iffc3f , b/251260206 ) - Deprecating recycling of acccessibility objects in androidx. We've found performance changes to be negligible in even the oldest supported versions. ( I0a961 )
- Added
DrawStyle
as an Experimental attribute toTextStyle
andSpanStyle
to enable drawing outlined text. ( If24b8 , b/155421273 ) -
AnnotatedString.Builder
now implementskotlin.text.Appendable
. ( I1a061 , b/231030444 ) -
AnnotatedString.Builder
now has anappend(AnnotatedString, start: Int, end: Int)
method to append a substring of anAnnotatedString
and the intersecting styles. - Added
DrawStyle
parameter toParagraph
andMultiParagraph
paint functions that enables drawing outlined text. ( Ic8102 , b/155421273 )
مشارکت خارجی
- Thanks for
vighnesh
for adding TV Devices to Previews ( Ie15cd )
نسخه 1.3
نسخه 1.3.3
11 ژانویه 2023
androidx.compose.ui:ui-*:1.3.3
is released. Version 1.3.3 contains these commits.
رفع اشکال
- Fix for a crash sometimes happening on Android 9 when Activity is saving the state of the Compose View. ( I0b755 , b/260322832 )
Version 1.3.2
7 دسامبر 2022
androidx.compose.ui:ui-*:1.3.2
is released. Version 1.3.2 contains these commits.
رفع اشکال
- Updated to use Profobuf 3.21.8, which avoids a security alert in
protobuf-javalite:3.19.4
(CVE-2022-3171) ( b/255545055 )
نسخه 1.3.1
9 نوامبر 2022
androidx.compose.ui:ui-*:1.3.1
is released. نسخه 1.3.1 حاوی این commit ها است.
نسخه 1.3.0
24 اکتبر 2022
androidx.compose.ui:ui-*:1.3.0
is released. نسخه 1.3.0 حاوی این commit ها است.
تغییرات مهم از 1.2.0
- New experimental API suite
LookaheadLayout
(enabling previously impossible animation behaviors) - New experimental API suite
Modifier.Node
(higher-performance alternative toModifier.composed
) - Improved window insets support.
- Focus support for D-Pads and hardware keyboard in LazyLists.
- Maximum supported elevation in dialogs and popups has been reduced to 8dp (behavior breaking change for some customized design systems – rationale in beta01 release notes )
- Many minor, nonbreaking API improvements
- Many bugfixes and performance improvements
نسخه 1.3.0-rc01
5 اکتبر 2022
androidx.compose.ui:ui-*:1.3.0-rc01
is released. نسخه 1.3.0-rc01 حاوی این commit ها است.
تغییرات API
- Added new experimental API Hyphens to support automatic hyphenation in Text ( Iaa869 )
رفع اشکال
-
DeviceFontFamilyName
fonts will not configurewght
andital
variation settings by default, instead using platform setting for loadedTypeface
. ( Ia7a6d , b/246989332 ) - Fixed
LazyColumn
memory leak -onModifierLocalsUpdated
was not being called with the default value when modifiers were reused ( b/230168389 )
نسخه 1.3.0-beta03
21 سپتامبر 2022
androidx.compose.ui:ui-*:1.3.0-beta03
is released. نسخه 1.3.0-beta03 حاوی این تعهدات است.
تغییرات API
- Add options to customize line breaking in Text. ( I86907 )
- Changed
size:IntSize
argument withconstraints: Constraints
inTextMeasurer.measure
method to support minimum width constraints. ( I37530 , b/242707525 )
رفع اشکال
- AndroidX Activity's
BackHandler
API now works within aDialog
composable. ( I35342 )
نسخه 1.3.0-beta02
7 سپتامبر 2022
androidx.compose.ui:ui-*:1.3.0-beta02
is released. نسخه 1.3.0-beta02 حاوی این تعهدات است.
تغییرات API
- Added an experimental overload for Layout which accepts a list of multiple composable content lambdas, which allows to threat measurables put into different content lambdas differently ( Ic1b4e )
Changes to experimental Focus APIs:
-
FocusDirection.In
andFocusDirection.Out
are deprecated and replaced byFocusDirection.Enter
andFocusDirection.Exit
. ( Ia4262 , b/183746982 ) - Added two new focus properties enter and exit to specify a custom behavior for
FocusManager.moveFocus(Enter)
andFocusManager.moveFocus(Exit)
. ( I5f3f9 , b/183746982 ) - You can now use
FocusRequester.Cancel
to cancel a focus move.FocusRequester.Cancel
can be used in any of the following focus properties: up, down, left, right, next, previous, start, end, enter and exit. ( Ib300f )
نسخه 1.3.0-beta01
24 آگوست 2022
androidx.compose.ui:ui-*:1.3.0-beta01
is released. نسخه 1.3.0-beta01 حاوی این تعهدات است.
Modifier Node Refactor
The layer which handles Modifier/Modifier.Element
instances and coordinates their behavior on LayoutNodes
has been majorly refactored. As it stands this was a refactor which did not affect the public API of any of the many modifiers in Compose, and can be viewed as an implementation-only change. Despite that, this is an important change for various reasons. ( Ie4313 )
تغییر خلاصه
The added experimental Modifier.Node
APIs provide an abstraction that allows for state to be maintained on an instance that will be retained with the lifecycle of the layout node, and will be allocated per-layout-node and per-usage of the corresponding Modifier.Element
that produced it.
Broadly speaking, this abstraction provides an alternative mechanism to produce stateful modifiers without relying on the mechanics of the Modifier.composed
API.
ریسک
This change is strictly binary compatible with prior releases, and is intended to be backwards compatible in terms of observable behavior as much as practical and reasonable. That said, there are few subsystems of compose this refactor did not touch, and it is likely that behavior has changed in ways that were not covered by our tests and have not yet been found and fixed .
Please upgrade to this release with caution. If you believe this has broken something for you, please let us know.
APIهای آزمایشی
Various experimental APIs have been added, all relating to the new concept of a "Modifier Node". Modifier.Node's are created as a result of
-
fun modifierElementOf(…): Modifier
-
abstract class ModifierNodeElement
-
abstract class Modifier.Node
-
abstract class DelegatingNode
-
interface LayoutModifierNode
-
interface DrawModifierNode
-
interface SemanticsNode
-
interface PointerInputNode
-
interface ModifierLocalNode
-
interface ParentDataModifierNode
-
interface LayoutAwareModifierNode
-
interface GlobalPositionAwareModifierNode
-
interface IntermediateLayoutModifierNode
تغییر رفتار شکسته
حداکثر ارتفاع پشتیبانی شده در گفتگوها و پنجره های بازشو به 8dp کاهش یافته است.
حداکثر ارتفاع پشتیبانی شده برای مکالمه ها و پنجره های بازشو Compose از 30dp به 8dp کاهش یافته است. این تغییر بر دیالوگها و پنجرههای بازشو سفارشی متریال و رابط کاربری تأثیر میگذارد. این تغییر برای کاهش اشکال دسترسپذیری در نسخههای Android زیر S و برای اطمینان از اینکه سرویسهای دسترسپذیری در آن پنجرهها قادر به تعامل با محتوای داخل گفتگو یا پنجره بازشو هستند، ایجاد شده است.
تنها در صورتی تحت تأثیر این تغییر قرار می گیرید که در حال ایجاد یک گفتگوی سفارشی یا اجرای پنجره بازشو با ارتفاع تنظیم شده روی سطوح بالاتر از 8dp باشید. ارتفاع دیالوگ یا پنجره بازشو را پایین بیاورید. اگر میخواهید از این رفتار جدید انصراف دهید، کادر گفتگو یا پنجره بازشوی خود را با مجموعه ارتفاع مورد نظر جدا کنید. این توصیه نمیشود، زیرا دسترسیپذیری ممکن است تأثیر منفی بگذارد و این بر عهده توسعهدهنده است که مطمئن شود قسمت پایینی گفتگو یا پنجره بازشو قابل تعامل و خواندن توسط سرویسهای دسترسپذیری است.
تغییرات API
- Fixed an issue where
painterResource
wouldn't update on configuration changes ( I58e73 , b/228862715 ) -
rememberTextMeasurer
no longer takesFontFamily.Resolver
,Density
, orLayoutDirection
parameters. Please use theTextMeasurer
constructor to provide custom values for these parameters. ( Ia1da3 ) - Added
DialogProperties.decorFitsSystemWindows
property to allow Dialogs to supportWindowInsets
. ( I57742 , b/229378542 ) - Moved font constructors back to original kotlin file to retain binary compatibility. No change from last stable release. ( Ieb2f3 )
- Removed unnecessary operator from several equals definitions - this has no effect. ( I6c309 )
-
FontVariation.Setting
is a sealed interface, to allow future clamping APIs. ( I11021 , b/143703328 ) - Add
CompositionGroup.findParameters
toSlotTree.kt
. This allows tools to retrieve parameters for aCompositionGroup
without having to parse the entire slot table. ( I124fe )
نسخه 1.3.0-alpha03
10 آگوست 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
is released. نسخه 1.3.0-alpha03 حاوی این commit ها است.
تغییرات API
-
LayoutCoordinates.findRootCoordinates()
is now public ( I7fa37 , b/204723384 ) - Added experimental API to get the
LayoutCoordinates
in thePlacementScope
. This lets developers know where the current layout is to place children relative to its position. ( I5482b , b/238632578 ) - Added
LayoutCoordinates.transformFrom
to get the Matrix transformation from oneLayoutCoordinates
to another. ( Ic5ab1 , b/238632578 ) - Deprecated
SemanticsModifier.id
and moved the semantics id toLayoutInfo.semanticsId
instead. ( Iac808 , b/203559524 ) - Resource Fonts now support setting font variation settings (API 26+). ( I900dd , b/143703328 )
- Variable font support in
DeviceFontFamilyNameFont
( Ic1279 , b/143703328 ) - Font constructors now accept a list of
FontVariation.Setting
for configuring variable fonts on O+ devices. ( I11a9d , b/143703328 ) - Add
FontVariation
API for defining and using variable fonts. ( I3c40c , b/143703328 ) -
LineHeightStyle.Alignment
constructor is now public (experimental) ( I4bbbe , b/235876330 ) - Paragraph is now expect|actual and defined for Android and Desktop. ( Id387e , b/239962983 )
- Interface Paragraph is now sealed interface Paragarph. There is no use case for subclassing paragraph, and we recommend reaching out if this change impacts you. ( If5247 , b/239962983 )
- Removed experimental annotation from
PlatformTextStyle
andLineHeightStyle
. ( I64bef ) - Deprecate
TextInputService.show|hideSoftwareKeyboard
. Please useSoftwareKeyboardController
instead in app code andTextInputSession
in IME-management code. ( I14e4c , b/183448615 ) - Add new API for existing animation types ( I26179 )
رفع اشکال
- Added
@RequiresPermission
to APIs that require granting thePOST_NOTIFICATIONS
permission on SDK 33 and above. ( Ie542e , b/238790278 )
نسخه 1.3.0-alpha02
27 جولای 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
is released. نسخه 1.3.0-alpha02 حاوی این commit ها است.
تغییرات API
- Added a new property
PointerInputChange#pressure
to retrieve the pressure. ( I45a5e , b/205164819 ) - Added
rememberTextMeasurer
to easily create and rememberTextMeasurer
instances in composition. ( I8d66e ) -
Rect
,RoundRect
, andMutableRect
now support the Kotlinin
syntax for calling thecontains
function. ( Ie42b0 , b/238642990 ) - Remove unnecessary functions from
KeyInjectionScope
, as they can be easily implemented with simpler parts of the API. The functions that have been removed includepressKeys
,keysDown
andkeysUp
. ( I81d77 ) - Refactored constant and parameter names in
KeyInjectionScope
to include the suffix 'Millis' where the units of said constants and parameters are milliseconds. ( Iabef5 ) - Added
toStringForLog()
method toEditCommand
to help troubleshoot text editing issues. ( I53354 , b/228862731 ) - Added
drawText
extension function onDrawScope
to provide a way to draw multi-styled text on composables and modifiers that operate on aDrawScope
likeCanvas
anddrawBehind
. ( I16a62 , b/190787898 ) - Introduce a new experimental API called
TextMeasurer
that enables arbitrary text layout computation that creates identical results toBasicText
, independent from Compose runtime. ( I17101 ) - Add
mapTree
toSlotTree.kt
. This allows tools to inspect theSlotTree
without making an in memory copy first like asTree does. For the Layout Inspector this gives a performance improvement of about a factor 10. ( I5e113 ) - Changed Compose Preview to be stored in binary output files, in order to allow developers to write and reuse
MultiPreview
annotations from libraries. ( I85699 , b/233511976 )
رفع اشکال
- When adding
InputEventChange
events toVelocity
Tracker we will consider now deltas instead of positions, this will guarantee the velocity is correctly calculated for all cases even if the target element moves ( Icea9d , b/216582726 , b/223440806 , b/227709803 ) - Fix NPE caused by
AnnotatedString.toUpperCase
when annotations are present. ( I0aca2 , b/210899140 )
نسخه 1.3.0-alpha01
29 ژوئن 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
is released. نسخه 1.3.0-alpha01 حاوی این commit ها است.
تغییرات API
- New
LookaheadLayout
that supports a lookahead pass before the actual measure/layout. This allows a pre-calculation of the layout when it changes, while permitting the post-lookahead measure/layout to use the pre-calculated size/position to animate the size and positions towards the target.SubcomposeLayouts
are not yet supported, but will be in an upcoming release. ( I477f5 ) - Add optional alpha parameter to Brush flavor of
TextStyle
andSpanStyle
to modify opacity of the wholeText
. ( Ic2fac , b/234117635 ) - Introduced the
UrlAnnotation
annotation type and associated methods to supportTalkBack
link support inAnnotatedString
s. ( I1c754 , b/231495122 ) - Moving utility functionality to runtime ( I4f729 )
رفع اشکال
-
TextLayoutResult.getLineForOffset
does not throw. ( Idc5d6 , b/235876324 )
مشارکت خارجی
- Added a new API
WindowInfo.keyboardModifiers
to observe its state within composable functions or via snapshotFlow ( Icdb8a )
نسخه 1.2
نسخه 1.2.1
10 آگوست 2022
androidx.compose.ui:ui-*:1.2.1
is released. نسخه 1.2.1 حاوی این commit ها است.
رفع اشکال
- Fixed nullpointer in the inspector ( b/237987764 )
- Fixed class cast exception during remember in the inspector ( b/235526153 )
نسخه 1.2.0
27 جولای 2022
androidx.compose.ui:ui-*:1.2.0
is released. نسخه 1.2.0 حاوی این commit ها است.
تغییرات مهم از 1.1.0
Improvements in focus traversal:
- Focus-driven-scrolling of Lazy lists now works, using the new
BeyondBoundsLayout
core API - New behavior customization APIs in
FocusOrder
andFocusProperties
- Improved behavior with physical keyboard or TV remote
- Focus-driven-scrolling of Lazy lists now works, using the new
New APIs for:
- Window insets
- Core primitives for gesture-driven, infinite and layout animations
-
GraphicsLayer
capabilities, includingRenderEffect
Many bugfixes and performance improvements
نسخه 1.2.0-rc03
29 ژوئن 2022
androidx.compose.ui:ui-*:1.2.0-rc03
is released. نسخه 1.2.0-rc03 حاوی این commit ها است.
- از 1.2.0-rc02 تغییری ایجاد نشده است.
نسخه 1.2.0-rc02
22 ژوئن 2022
androidx.compose.ui:ui-*:1.2.0-rc02
is released. نسخه 1.2.0-rc02 حاوی این commit ها است.
نسخه 1.2.0-rc01
15 ژوئن 2022
androidx.compose.ui:ui-*:1.2.0-rc01
is released. نسخه 1.2.0-rc01 حاوی این commit ها است.
تغییرات API
- رابطها در کتابخانههای کامپوزی اکنون با استفاده از روشهای رابط پیشفرض jdk8 ساخته میشوند ( I5bcf1 )
- Added higher-order functions to
KeyInjectionScope
for injecting key presses while other keys are held down or toggled on. These functions includewithKeysDown
,withKeysToggled
etc. Also added properties for checking if a particular meta key is down, for example,isCtrlDown
to check if either control key is depressed. Refer toKeyInjectionScope
for documentation on each function. ( I9f6cd , b/229831515 ) - An experimental
OverscrollEffect
has been introduced to allow for custom overscroll effects, alongside theModifier.scrollable
overloads that accept it. - Experimental
LocalOverScrollConfiguration
has been moved fromfoundation.gesture
to foundation package and renamed toLocalOverscrollConfiguration
( If19fb , b/204650733 ) - Rename
runComposeUiTestWithoutActivity {}
torunEmptyComposeUiTest {}
, which aligns it withcreateEmptyComposeRule()
( I6fed7 )
نسخه 1.2.0-beta03
1 ژوئن 2022
androidx.compose.ui:ui-*:1.2.0-beta03
is released. نسخه 1.2.0-beta03 حاوی این تعهدات است.
تغییرات API
- Added
pressKeyTimes
as well asisCapsLockOn
and friends toKeyInjectionScope
. Additionally, the API now supports mouse and keyboard combined injection patterns such as clicking a mouse button with a meta key held down. ( I4c8da , b/229831515 ) - Added experimental support for injecting key events. Use
performKeyInput
to send key events, or send them through thekey
property ofMultiModalInjectionScope
during a multi modal input gesture withperformMultiModalInput
. SeeKeyInjectionScope
for documentation of the API. ( Ic5000 , b/229831515 ) - Add new
GoogleFont.Provider.AllFontsListUri
for retrieving the canonical internet source of Google Fonts supported by Android. - Improve error messages rethrown when GoogleFonts fail to load in compose. ( I0416c )
رفع اشکال
- When adding
InputEventChange
events to Velocity Tracker we will consider now deltas instead of positions, this will guarantee the velocity is correctly calculated for all cases even if the target element moves ( I51ec3 , b/216582726 , b/223440806 , b/227709803 ) - The
Show Layout Bounds
setting will now be applied for composables immediately after toggling it from the quick settings tile, without having to leave and re-enter the activity. ( I843d5 , b/225937688 ) - Accessibility string lookup does not trigger font loading. Previously, it would attempt to load fonts for
StyleSpans
, which lead to crashes ifFontFamily.Resolver
had been overwritten. ( I4609d ) - Pressing the forward delete key when the cursor is at the end of a text field will no longer crash.
-
DeleteSurroundingTextCommand
andDeleteSurroundingTextInCodePointsCommand
now require their constructor arguments to be non-negative. ( Ica8e6 , b/199919707 )
نسخه 1.2.0-beta02
18 مه 2022
androidx.compose.ui:ui-*:1.2.0-beta02
is released. نسخه 1.2.0-beta02 حاوی این تعهدات است.
تغییرات API
- Reusing functionality in other preview types ( I19f39 )
رفع اشکال
-
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
has been renamed toDisposeOnDetachedFromWindowOrReleasedFromPool
to better reflect that when disposals do occur, rather than simply when they do not occur. ( If15ca )
نسخه 1.2.0-beta01
11 مه 2022
androidx.compose.ui:ui-*:1.2.0-beta01
is released. نسخه 1.2.0-beta01 حاوی این تعهدات است.
ویژگی های جدید
- این اولین نسخه بتا 1.2 است!
تغییرات API
- Added experimental
BeyondBoundsInterval
that can be used by custom implementations ofLazyList
when they layout items beyond visible bounds ( Ifabfb , b/184670295 ) - Keyed versions of
Modifier.composed
are now stable API ( Ie65e4 , b/229988420 ) - Simplified the
rememberNestedScrollConnection
API to use composition locals to acquire the current view information ( I67ca7 ) - The
@ComposableTarget
annotation and annotations marked by@ComposableTargetMarker
can now be used at the file scope using the@file
prefix. Using a target annotation at the file scope will cause the compiler to assume all composable functions in the file are intended to be target the associated applier. For example, using@file:UiComposable
declares that all@Composable
functions target the Compose UI applier. A function that needs to target another applier must explicitly supply the target marker annotation for the desired applier. ( I40804 ) Introduced new experimental, platform independent, test API: an
interface ComposeUiTest
and afun runComposeUiTest(block: ComposeUiTest.() -> Unit)
, that can be used to run Compose Ui tests without the need for aTestRule
. To run a test without aComposeTestRule
, pass the test as a lambda torunComposeUiTest
, and use the methods and members in the receiver scopeComposeUiTest
, which are the same ones as inComposeContentTestRule
.The Android specific
interface AndroidComposeUiTest
andfun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
are added to provide access to the underlying Activity, similar toAndroidComposeTestRule
. For even more control, you can instantiate aclass AndroidComposeUiTestEnvironment
yourself.The Desktop implementation is the
class DesktopComposeUiTest
, but no Desktop specific run functions are offered at the moment.Migrating a test from a
ComposeTestRule
toComposeUiTest
can be done like this (Android example). از:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
به:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
For now,
ComposeContentTestRule
andComposeTestRule
don't extend fromComposeUiTest
, which means extension functions onComposeUiTest
can't be called yet on theTestRule
interface. WhenComposeUiTest
graduates to stable API,ComposeContentTestRule
andComposeTestRule
will be changed to extend fromComposeUiTest
. ( Ib4e90 )LineHeightBehavior
is renamed asLineHeightStyle
LineVerticalAlignment
is renamed asLineHeightStyle.Alignment
Renames
LineHeightTrim
is renamed asLineHeightStyle.Trim
Default constructor values from
LineHeightStyle
is removed ( I582bf , b/181155707 )Added
Brush
toTextStyle
andSpanStyle
to provide a way to draw text with gradient coloring. ( I53869 , b/187839528 )trimFirstLineTop
,trimLastLineBottom
attributes ofLineHeightBehavior
changed into a single enum:LineHeightTrim
.LineHeightTrim
have values of 4 states defined by two booleans:FirstLineTop
,LastLineBottom
, Both and None ( Ifc6a5 , b/181155707 )Added
LineHeightBehavior
to theTextStyle
andParagraphStyle
.LineHeightBehavior
controls whether line height is applied to the top of the first line and to the bottom of the last line. It also defines the alignment of line in the space provided byTextStyle(lineHeight)
.For example it is possible to get a behavior similar to what CSS defines via
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
.trimFirstLineTop
,trimLastLineBottom
configurations works correctly only whenincludeFontPadding
is false. ( I97332 , b/181155707 )PlatformParagraphStyle.lerp
andPlatformSpanStyle.lerp
functions are changed to be top level functions ( I9a268 )
رفع اشکال
-
PointerInputChange::copy
documentation now correctly states that it is a shallow copy. ( I182f5 ) - Support ellipsis when height is limited and doesn't fit all text lines ( Ie528c , b/168720622 )
- Turned on default
includeFontPadding
. It is possible to turn off theincludeFontPadding
usingTextStyle.platformTextStyle
attribute. In the near future we will change the default behavior however until that time this allows us to better integrate line height improvements (aosp/2058653) and solveTextField
clipping issues. ( I01423 , b/171394808 )
مشارکت خارجی
-
MouseInjectionScope.scroll(delta = someDelta)
is now inverted on Android if we scroll vertically (if someDelta is positive, it will scroll downward) ( Ifb697 , b/224992993 )
نسخه 1.2.0-alpha08
20 آوریل 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
is released. نسخه 1.2.0-alpha08 حاوی این commit ها است.
تغییرات API
- The
pluralStringResource
functions were marked as experimental in order to allow evolution to support better internationalization in the future. ( If24e4 ) - Paragraph and MultiParagraph are now accepting Constraints parameter. Passing
Constraints.maxHeight
is a no-op at the moment but will allow to do some calculation in the future, like ellipsizing based on the height. ( I6afee , b/168720622 ) -
SubcomposeSlotReusePolicy.getSlotsToRetain()
now accepts a custom MutableSet-like class which doesn't allow adding new items in it. ( Icd314 ) - PointerIcon is now a
@Stable
interface ( I9dafe ) - مصرف جزئی (موقعیت پایین یا پایین) در
PointerInputChange
منسوخ شده است. می توانید ازconsume()
برای مصرف کامل تغییر استفاده کنید. می توانید ازisConsumed
برای تعیین اینکه آیا شخص دیگری قبلاً تغییر را مصرف کرده است یا خیر استفاده کنید. -
PointerInputChange::copy()
اکنون همیشه یک کپی کم عمق ایجاد می کند. این بدان معنی است که کپی هایPointerInputChange
پس از مصرف یکی از کپی ها مصرف می شود. اگر می خواهید یکPointerInputChange
بدون محدودیت ایجاد کنید، به جای آن از سازنده استفاده کنید. ( Ie6be4 , b/225669674 ) - Enable Nested Scroll interop between Compose and View in the direction Compose > View. This means that a compose parent will be able to receive nested scroll deltas from a nested scroll view. ( If7949 , b/174348612 )
- New
SemanticsProperty testTagsAsResourceId
, which can be used to make Compose conform with UIAutomator tests designed for the View system. ( I39c20 ) - Display all available weights for systems fonts on Android when using
FontFamily.SansSerif
. This will use fallback font names like sans-serif-medium internally on API 21-28. This is a behavior change as previously only weights 400 and 700 were supported on API 21-28. ( I380fe , b/156048036 , b/226441992 ) - Paragraph and Multiparagraph instructors reordered positional arguments to before optional arguments. ( Idafaa )
-
AndroidFont
now takes typefaceLoader as a constructor parameter. ( I2c971 )
نسخه 1.2.0-alpha07
6 آوریل 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
is released. نسخه 1.2.0-alpha07 حاوی این commit ها است.
تغییرات API
- New function
Snapshot.withoutReadObservation { ... }
was added. It allows users to run the passed lambda without subscribing to the changes of the state values read during this block. You could find it useful in use cases when you want to benefit from the snapshot based thread safe write/reads, but want to be able to read the value without causing unnecessary recomposition or remeasure. ( I9f365 , b/214054486 ) - The
consumeWindowInsets
extension property ofComposeView
allows developers to disable consumption of AndroidWindowInsets
. This allows separateComposeViews
in the hierarchy to each applyWindowInsets
without interfering with each other. ( I0ef08 , b/220943142 ) - Added
KeyboardType.Decimal
as an alternative toKeyboard.Number
for specifically including decimal separator in IME. ( Iec4c8 , b/209835363 ) -
PointerEventType.Scroll
andPointerEvent.scrollDelta
are stable APIs now ( I574c5 , b/225669674 ) - Enable Nested Scroll interop between View and Compose for cooperating View classes. This means compose is now able to dispatch scroll deltas to a (cooperating) View parent. ( I5d1ac , b/174348612 )
- Updated
FontFamily.Resolver
to integrate System-wide bold text accessibility setting ( I6c1e7 ) -
Font(AssetManager, String, ...)
is deprecated, replaced withFont(String, AssetManager, ...)
. This is an experimental API. ( I1c7a4 ) - Add new font descriptor
Font(DeviceFontFamilyName)
to optionally lookup system-installed fonts during font fallback chains. ( I30468 , b/219754572 ) - Added temporary compatibility configuration for
includeFontPadding
in TextStyle/ParagraphStyle.includeFontPadding
can be changed viaTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
. This is a temporary configuration option to enable migration and will be removed. ( If47be , b/171394808 ) - Add
GoogleFont.Provider.isAvailableOnDevice
extension for debugging help. ( I64e31 ) - Add
GoogleFont.Provider
constructor for use with@ArrayRes
( Ic5ee1 , b/225984280 ) -
Compose GoogleFont
is now calledFont(GoogleFont)
, API remains stable otherwise. ( I125f2 )
رفع اشکال
- Added lint check to material/Scaffold to ensure that the inner padding is being used ( Ifb111 )
نسخه 1.2.0-alpha06
23 مارس 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
is released. نسخه 1.2.0-alpha06 حاوی این commit ها است.
تغییرات API
- Added
RequestFocus
semantics action to request focus on the focusable target. ( I17b71 ) - Updated parsing of vector drawables to support auto mirroring to flip the content of a
VectorPainter
if the current layout direction is RTL. ( I79cd9 , b/185760237 ) Updated shadow/ambient colors to be trailing parameters of
Modifier.graphicsLayer
for API compatibility ( I3f864 , b/160665122 )Added default implementations to shadow/ambient color on
GraphicsLayerScope
to ensure non-breaking API changesAdded event time to RSB events ( Ief8ae )
FocusOrder
has now been merged intoFocusProperties
andfocusProperties()
now has all the capabilities offocusOrder()
.FocusOrder
andfocusOrder()
have been deprecated.focusOrder()
that accepts afocusRequester
should be replaced with afocusRequester()
modifier in combination withfocusProperties()
. This allows the modifiers to have a stronger separation of concerns. ( I601b7 )Upgrading both
RecyclerView
andCompose
will now result in much better scrolling performance for RecyclerViews with Compose views as children.Add
ViewCompositionStrategy.Default
as a means of retrieving the built-in default strategyAdd
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, which is the new default strategy and properly handles pooling containers such as RecyclerView. ( If7282 )Added support for annotating annotations classes with @Preview as a first step for adding the Multipreview feature. Such annotations could be used to annotate Composable methods or other annotation classes, which could then be considered as indirectly annotated with the given @Preview. ( I12eff )
Reference devices added to the Devices list for @Preview ( I071c9 )
رفع اشکال
- Updated Vector graphics APIs to use the proper composable annotation @VectorComposable instead of @UiComposable ( I942bc )
- Remove crossinline from
AnnotatedString.Builder.withStyle
( If84d5 )
مشارکت خارجی
- compose-ui: Add
ambientShadowColor
andspotShadowColor
properties toGraphicsLayerScope
( I1ba1a , b/160665122 ) - Plural resources are now supported via the
pluralStringResource
functions. ( Ib2f23 , b/191375123 )
نسخه 1.2.0-alpha05
9 مارس 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
is released. نسخه 1.2.0-alpha05 حاوی این commit ها است.
تغییرات API
-
TextToolbar
now takes lambda arguments instead ofActionCallback
. ( Ib2eb9 , b/197950089 ) - Updated nullability in core and appcompat to match Tiramisu DP2 ( I0cbb7 )
- Measured interface now exposes parentData property ( I3313f )
-
Modifier.onPlaced
and theOnPlacedModifier
interface are now stable. ( Ib5482 ) - هورا! Compose animation now supports 'Animator duration scale' setting from Developer Options. ( I5a4fc , b/161675988 )
- Added a
BeyondBoundsLayout
modifier local ( If8b51 , b/184670295 ) - متن: includeFontPadding اکنون به طور پیش فرض خاموش است. مشکلات برش در نتیجه
includeFontPadding=false
رسیدگی می شود و هیچ برشی نباید برای اسکریپت های بلند رخ دهد. ( I31c84 , b/171394808 )
رفع اشکال
-
ComposeContentTestRule.setContent
will now throw anIllegalStateException
if you try to set content when there already is content. ( I888a5 , b/199631334 ) - رفع خرابی ناشی از محتوای کلیپ بورد هنگام خواندن از کلیپ بورد در Android. ( I06020 , b/197769306 )
- Improve RSB scrolling samples. ( I6a596 )
مشارکت خارجی
- Updated to use Kotlinx coroutines 1.6.0 ( I3366d )
نسخه 1.2.0-alpha04
23 فوریه 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
is released. نسخه 1.2.0-alpha04 حاوی این commit ها است.
تغییرات API
ComposableTarget
،ComposableTargetMarker
وComposableOpenTarget
اضافه شده است که به شما امکان می دهد گزارش زمان کامپایل را از زمانی که یک تابع قابل ترکیب هدف قرار دادن اپلیکیشنی نامیده می شود که برای استفاده از آن طراحی نشده است، گزارش دهد.در بیشتر موارد، یادداشتها را میتوان توسط افزونه کامپایلر نوشتن استنباط کرد، بنابراین استفاده مستقیم از این حاشیهنویسی نادر است. مواردی که نمی توان استنباط کرد عبارتند از ایجاد و استفاده از یک اپلیکیشن سفارشی، توابع ترکیبی انتزاعی (مانند روش های رابط)، فیلدها یا متغیرهای سراسری که لامبداهای قابل ترکیب هستند (متغیرها و پارامترهای محلی استنباط می شوند)، یا هنگام استفاده از
ComposeNode
یا توابع قابل ترکیب مرتبط. .For custom appliers the composable functions that calls
ComposeNode
orReusableComposeNode
need to add aComposableTarget
annotation for the function and any composable lambda parameter types. با این حال، توصیه می شود حاشیه نویسی ایجاد کنید که باComposableTargetMarker
حاشیه نویسی شود و سپس به جایComposableTarget
مستقیماً از حاشیه نویسی علامت گذاری شده استفاده شود. یک حاشیه نویسی قابل ترکیب که باComposableTargetMarker
مشخص شده است معادلComposbleTarget
با نام کاملاً واجد شرایط کلاس ویژگی به عنوان پارامتر اعمال کننده است. برای مثالی از استفاده ازComposableTargetMarker
بهanroidx.compose.ui.UiComposable
مراجعه کنید. ( I38f11 )Font(resId, ...)
now takes loadingStrategy on stable API. ( Ief3d2 )FontLoadingStrategy
is now stable API. ( I1ee35 , b/174162090 )Support async font loading in Text ( I77057 , b/214587005 )
Add bridge API for converting custom
Font.ResourceLoader
intoFontFamily.Resolver
. ( Ia0060 )
رفع اشکال
- Provided
FontFamily.Resolver
are passed to subcompositions such as Popup. - Provided
Font.ResourceLoader
are passed to subcompositions such as Popup. ( I48fa5 )
نسخه 1.2.0-alpha03
9 فوریه 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
is released. نسخه 1.2.0-alpha03 حاوی این commit ها است.
تغییرات API
-
notifyFocusedRect
methods inTextInputSession
andTextInputService
are now deprecated and won't be called. UseBringIntoViewRequester
instead. ( Ia4302 , b/192043120 , b/216842427 , b/178211874 ) - Introduced
destroyDisplayListData
method onRenderNode
stub class ( I1e659 , b/216660268 ) - Added a new api which allows to premeasure children of
SubcomposeLayout
you precomposed. ( I857ea ) Added
movableContentOf
which converts a composable lambda into a lambda that moves it state, and corresponding nodes, to any new location it is called. When the previous call leaves the composition the state is temporarily preserved and if a new call to the lambda enters the composition then the state, and associated nodes, are moved to the location of the new call. If no new call is added the state is removed permanently and remember observers are notified.If a
movableContentOf
lambda is called multiple times in the same composition, new state and nodes are created for each call and, as calls leave the composition and new calls enter, the state is moved from the first leaving calls to the entering calls in the order they are called. All state not claimed by new calls is removed permanently. ( Ib4850 )FontFamilyResolver
is now available viaLocalFontFamilyResolver.current
Added
createFontFamilyResolver(context)
andcreateFontFamilyResolver(context, coroutineScope)
to create new FontFamily resolvers outside of compose usage.Paragraph and MultiParagraph now take
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
now contains the resolver used for this layout, deprecatedTextLayoutResult.layoutInput.resourceLoader
as it is no longer used. ( Id5a45 , b/174162090 )Support for async and optional font loading, with fallback behavior. This path is used by Text and TextField, and exposed through FontFamilyResolver
Support for preloading fonts via
FontFamilyResolver.preload
FontFamilyResolver.setAsyncLoadContext
allows setting the global coroutine context used for loading async fonts. ( I87fe8 , b/174162090 )Added
AndroidFont
, a new low-level API for providing new types of font resource descriptors on Android. For example, loading fonts from an app-specific backend, optionally locating pre-installed fonts on-device, or loading a font from a resource not provided by the current Font factories.Expanded
Font.ResourceLoaded
API to support optional and async font loading. It is not recommended that application developers use this API directly. To add new types of fonts seeAndroidFont
.Font.AndroidResourceLoader
extension function allows construction of aFont.ResourceLoader
when outside of composition.Added
loadingStrategy
parameter to resource-based fonts, to allow async loading when resource font references downloadable fonts XML. ( Ie5aea , b/174162090 )Typeface(FontFamily)
constructor is deprecated. This was previously used to preload fonts, which may take up to 10 seconds for downloadable fonts. With downloadable fonts, this call may block for 10 seconds. Instead useFontFamilyResolver.preload
.fontResource(FontFamily): Typeface
is deprecated. This was previously used to preload fonts, which may take up to 10 seconds for downloadable fonts. Instead useFontFamilyResolver.preload
( If8e7c , b/174162090 )SubcomposeLayoutState
constructor acceptingmaxSlotsToRetainForReuse
is now deprecated. Instead there is a new constructor acceptingSubcomposeSlotReusePolicy
- a new interface allowing more granular control on what slots should be retained for the future reuse. ( I52c4d )Exposes HSV and HSL function in
Color
as non-experimental API. The Oklab color space is now public API. ( I08fb6 , b/180731008 )Deprecated
AndroidComposeTestRule.AndroidComposeStatement
, which was not meant to be in public API and didn't do anything for you anyway. ( Ibc46b )Internal generated kt class rename ( Ia0b9e , b/174162090 )
Removed
FontLoadingStrategy.values
( I42a9d , b/174162090 )Global font loader is now called
FontFamilyResolver
. ( I4f773 , b/174162090 )Use new font loading system for desktop. ( I9ce5c , b/174162090 )
FontFamily.Resolver.resolve
returnsState<Any>
( I4406c , b/174162090 )
رفع اشکال
- TextFields will now be kept above the keyboard when they are focused and the keyboard is shown, when the soft input mode is
ADJUST_PAN
. ( I8eaeb , b/190539358 , b/192043120 ) - Desktop uses composition local for
FontFamily.Resolver
- Desktop
FontLoader
is deprecated - New
createFontFamilyResolver
factory on Desktop ( I6bbbb , b/174162090 ) - The soft keyboard input type no longer flickers when changing focus between text fields. ( I1bf50 , b/187746439 )
نسخه 1.2.0-alpha02
26 ژانویه 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
is released. نسخه 1.2.0-alpha02 حاوی این commit ها است.
تغییرات API
- Added
Modifier.onRotaryScrollEvent()
andModifier.onPreRotaryScrollEvent()
for wear devices with a rotating side button ( I18bf5 , b/210748686 ) - Add experimental
View.createLifecycleAwareRecomposer
extension ( I0cde6 )
مشارکت خارجی
-
PointerEvent.scrollDelta.y
is now inverted on Android (now it returns 1 instead of -1 if we tilt mouse wheel to the right) ( Ia9811 )
نسخه 1.2.0-alpha01
12 ژانویه 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
is released. نسخه 1.2.0-alpha01 حاوی این commit ها است.
تغییرات API
- Deprecated
FontFamily.canLoadSynchronously
. This property has no semantic meaning. ( Ica5ef ) - Added identity field to
CompositionData
for generating invariant ids in the Layout Inspector. ( Ic116e ) - Added Wear OS device ids to Preview devices list ( I93232 )
به روز رسانی های وابستگی
- اکنون به Kotlin
1.6.10
بستگی دارد.
نسخه 1.1
نسخه 1.1.1
23 فوریه 2022
androidx.compose.ui:ui-*:1.1.1
is released. نسخه 1.1.1 حاوی این commit ها است.
رفع اشکال
- رفع
NullPointerException
درandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
( aosp/1947059 ، b/206677462 ) - رفع خرابی ناشی از محتوای کلیپ بورد هنگام خواندن از کلیپ بورد در Android. ( I06020 , b/197769306 )
- RTL ثابت در
LazyVerticalGrid
( aosp/1931080 , b/207510535 )
نسخه 1.1.0
9 فوریه 2022
androidx.compose.ui:ui-*:1.1.0
is released. نسخه 1.1.0 حاوی این commit ها است.
تغییرات مهم از 1.0.0
- پشتیبانی پایدار از افکت Overscroll Android 12
- بهبود در اندازه هدف لمسی
- توجه داشته باشید که با توجه به Compose 1.0، مؤلفههای Material فضای طرحبندی خود را گسترش میدهند تا دستورالعملهای دسترسی به مواد برای اندازه هدف لمسی را رعایت کنند. به عنوان مثال، هدف لمس دکمه به حداقل اندازه 48x48dp گسترش می یابد، حتی اگر اندازه دکمه را کوچکتر تنظیم کنید. این Compose Material را با همان رفتار Material Design Components تراز میکند و اگر Views و Compose را با هم ترکیب کنید، رفتار ثابتی را ارائه میدهد. این تغییر همچنین تضمین میکند که وقتی رابط کاربری خود را با استفاده از اجزای Compose Material ایجاد میکنید، حداقل الزامات برای دسترسی به هدف لمسی برآورده میشود.
- پشتیبانی پایدار برای راه آهن ناوبری
- تعدادی از APIهای آزمایشی قبلی را به ثبات رسانده است
- پشتیبانی از نسخه های جدیدتر Kotlin
نسخه 1.1.0-rc03
26 ژانویه 2022
androidx.compose.ui:ui-*:1.1.0-rc03
is released. نسخه 1.1.0-rc03 حاوی این commit ها است.
رفع اشکال
- Updated to support Compose Material 1.1.0-rc03
نسخه 1.1.0-rc01
15 دسامبر 2021
androidx.compose.ui:ui-*:1.1.0-rc01
is released. نسخه 1.1.0-rc01 حاوی این commit ها است.
رفع اشکال
- Fixed a bug that caused missing accessibility scroll actions ( I7cbfb )
-
SemanticsNodeInteraction.captureToImage()
will now also work ifHardwareRenderer.isDrawingEnabled()
isfalse
, by enabling it for the duration of the call ( Idf3d0 )
نسخه 1.1.0-beta04
1 دسامبر 2021
androidx.compose.ui:ui-*:1.1.0-beta04
is released. نسخه 1.1.0-beta04 حاوی این تعهدات است.
ویژگی های جدید
- به روز شده تا با Kotlin
1.6.0
سازگار باشد
تغییرات API
- Cleaned up nullability in
androidx.core.view
( I7078a , b/204917439 ) - Experimental APIs were added that allow users to consume PointerInputchange as a whole or check whether it was consumed or not. ( I2e59d )
- Adds support for mouse scroll wheel events in the UI layer. ( Ia14eb , b/198214718 )
- Add experimental
Modifier.composed
overloads that accept keys to compare for equality and qualify for skipping optimizations. ( Ice799 , b/205851704 ) -
ComposeNotIdleException
now extends fromException
instead of directly fromThrowable
. Note that this means that catch clauses that were catchingException
might now catchComposeNotIdleException
s, where they wouldn't do that previously. ( I9c217 )
رفع اشکال
- Fix text handles not moving when IME visibility changes. ( I25f2e )
نسخه 1.1.0-beta03
17 نوامبر 2021
androidx.compose.ui:ui-*:1.1.0-beta03
is released. نسخه 1.1.0-beta03 حاوی این تعهدات است.
تغییرات API
- Added new modifier Modifier.onPlaced to allow placement change to be observed. Additional changes to child modifier's offset can therefore be made based on the observed placement change. ( I558fd )
- Removed
InjectionScope.flush()
andInjectionScope.dispose()
. Flushing of all events and disposing of the scope now happens at the end of the called perform*Input() method like before. ( I2bed8 ) - Removed
MultiModalInjectionScope.Touch
andMultiModalInjectionScope.Mouse
. In order to inject touch and mouse events for multi-modal gestures, you can now useMultiModalInjectionScope.touch()
andMultiModalInjectionScope.mouse()
, both of which accept a lambda that has the receiver scope of that modality. ( Idde18 )
رفع اشکال
- The default value for
durationMillis
inTouchInjectionScope.swipeWithVelocity
is now calculated such that the swipe is feasible. ( I19deb )
نسخه 1.1.0-beta02
3 نوامبر 2021
androidx.compose.ui:ui-*:1.1.0-beta02
is released. نسخه 1.1.0-beta02 حاوی این تعهدات است.
تغییرات API
- Added experimental BringIntoView API that lets you send a request to parents so that they scroll to bring an item into view ( Ib918d , b/195353459 )
- New animation APIs for supporting tooling. Specifically, they allow tooling to inspect the animations & their configurations in a Transitions. ( I4116e )
مشارکت خارجی
- Added Modifier.pointerHoverIcon ( I95f01 )
نسخه 1.1.0-beta01
27 اکتبر 2021
androidx.compose.ui:ui-*:1.1.0-beta01
is released. نسخه 1.1.0-beta01 حاوی این تعهدات است.
تغییرات API
- Added experimental
BringIntoView
API that lets you send a request to parents so that they scroll to bring an item into view ( Ib918d , b/195353459 ) - New animation APIs for supporting tooling. Specifically, they allow tooling to inspect the animations & their configurations in a Transitions. ( I4116e )
نسخه 1.1.0-alpha06
13 اکتبر 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
is released. نسخه 1.1.0-alpha06 حاوی این commit ها است.
تغییرات API
- Remove
ExperimentalComposeUiApi
fromViewRootForInspector
andLayoutInfo.ownerViewId
( I5c2e3 ) - اضافه بار بدون فرزند برای Layout اضافه شد، با کارایی بهبود یافته ( Ib0d9a )
- Removed
InternalCompilerApi
from Composer methods that are required to be called cross-module ( I1aa0b ) -
SemanticsNodeInteraction.performSemanticsAction
now returns theSemanticsNodeInteraction
on which the function was called. ( I9e5db ) - Added LocalInputModeManager CompositionLocal to detect TouchMode/NonTouchMode. ( I6a83c , b/175899786 )
- Added
viewConfiguration: ViewConfiguration
toLayoutInfo
to allow consumers get the correct value for things like long press timeout. ( I76ca6 )- Added
viewConfiguration: ViewConfiguration
toInjectionScope
to allow tests to adjust input injection based on things like long press timeout or touch slop. - Changed default duration of long press and double tap for both touch and mouse input to be based on the values in
InjectionScope.viewConfiguration
.
- Added
- پیاده سازی ExposurDropdownMenu بر اساس ExposurDropdownMenuBox با TextField و DropdownMenu در داخل ( If60b2 )
- dismissOnOutsideClick was added to PopupProperties, replacing dismissOnClickOutside which was deprecated. ویژگی جدید موقعیت کلیک و محدودیتهای لنگر را دریافت میکند و کنترل دقیقتری بر روی اینکه آیا onDismissRequest باید فراخوانی شود یا خیر، فراهم میکند. به عنوان مثال، این می تواند برای جلوگیری از حذف لنگر برای لمس لنگر مفید باشد.
- updateAndroidWindowManagerFlags was added to PopupProperties, offering low-level control over the flags passed by the popup to the Android WindowManager. پارامتر lambda پرچمهایی است که از مقادیر PopupProperties محاسبه میشوند که منجر به پرچمهای WindowManager میشود: به عنوان مثال قابل فوکوسپذیر. نتیجه لامبدا پرچمهای نهایی خواهد بود که به WindowManager اندروید منتقل میشود. بهطور پیشفرض، updateAndroidWindowManagerFlags پرچمهای محاسبهشده از روی پارامترها را بدون تغییر میگذارد. این API باید با احتیاط استفاده شود، فقط در مواردی که پنجره بازشو الزامات رفتاری بسیار خاصی دارد. ( I6e9f9 )
-
Recomposer.state
has been deprecated and replaced byRecomposer.currentState
to change its type to a StateFlow ( Ic2ab3 , b/197773820 ) - Added
flush()
anddispose()
toInjectionScope
. Use them when you want to flush all queued up events immediately and when you want to dispose of the scope, respectively. ( Ifb73a ) - Added
performScrollToNode(matcher: SemanticsMatcher)
that scrolls a scrollable container to the content that is matched by the given matcher. ( Ic1cb8 ) -
InjectionScope
now implementsDensity
, allowing you to easily convert between px and dp inperformTouchInput
and friends. ( I8fe1f )
رفع اشکال
- AndroidView now propagates LocalLifecycleOwner and LocalSavedStateRegistryOwner to its view via ViewTreeLifecycleOwner and ViewTreeSavedStateRegistryOwner. ( I38f96 , b/179708470 )
- Fix WearOS SwipeToDismissBox sometimes not handling swipes. ( I9387e )
- The default time between injected input events has been changed from 10ms to 16ms. This potentially changes the outcome of tests that perform input gestures, like a specific swipe. ( I829fd )
نسخه 1.1.0-alpha05
29 سپتامبر 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
is released. نسخه 1.1.0-alpha05 حاوی این commit ها است.
تغییرات API
- Added support for inter-modifier communication ( Id5467 , b/198826874 )
- Added experimental historical pointers to PointerEventChange. ( Ic1fd8 , b/197553056 , b/199921305 )
- Added
density: Density
andlayoutDirection: LayoutDirection
toLayoutInfo
. This allows consumers ofLayoutInfo
to interpret the dimensions and position exposed inLayoutInfo
properly. ( I002f1 ) - Added experimental support for injecting mouse events. Use
performMouseInput
to start sending mouse events, or send mouse events through theMouse
property ofMultiModalInjectionScope
during a multi modal input gesture withperformMultiModalInput
. SeeMouseInjectionScope
for documentation of the available API. ( Iaa4a8 , b/190493367 )
رفع اشکال
- Fixed accessibility support for scrollables (both lazy and non-lazy) with respect to scrolling ( I6cdb0 )
- Improved
TouchInjectionScope.swipeWithVelocity
. It now accepts a wider range of input variables and will suggest changes to the input if a swipe can't be created ( I40fbe , b/182477143 )
نسخه 1.1.0-alpha04
15 سپتامبر 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
is released. نسخه 1.1.0-alpha04 حاوی این commit ها است.
تغییرات API
-
PointerEvent
now has aPointerEventType
to support hover events. ( I091fa ) - Allow children to accept pointer input outside of parent's pointer input bounds. Parents may intercept those calls with a property PointerInputScope.alwaysInterceptChildEvents ( I9eae3 , b/192479655 )
-
performGesture
وGestureScope
منسوخ شده است که باperformTouchInput
وTouchInjectionScope
جایگزین شده اند. ( Ia5f3f , b/190493367 ) -
touchBoundsInRoot
بهSemanticsNode
اضافه شد که شامل حداقل اندازه هدف لمسی است تا توسعه دهندگان بتوانند اطمینان حاصل کنند که اهداف لمسی حداقل های دسترسی را برآورده می کنند. ( I2e14b , b/197751214 ) - Redo implementation of inspectable ( I927bc , b/191017532 )
- Changed parameter name of inspectable to match composed ( I3a482 , b/191017532 )
Introduced
performTouchInput
andTouchInjectionScope
as a replacement forperformTouchInput
andTouchInjectionScope
, paving the way for other modalities (like mouse).TouchInjectionScope
has the same methods asGestureScope
, with the exception ofmovePointerTo
andmovePointerBy
, which have been renamed toupdatePointerTo
andupdatePointerBy
. All other methods are the same.The behavior of
TouchInjectionScope
is almost identical toGestureScope
, with two small details:- When sending a down event while pointers had been moved without sending a move event (in other words,
updatePointerTo()
has been used, but notmove()
, and thendown()
is called), the previous implementation would advance the event time and send a move event before sending the down event. The new implementation still sends the move event, but doesn't advance the event time in this specific scenario. - When sending an up event while pointers had been moved without sending a move event (similar as above), the previous implementation would advance the event time and send a move event before sending the up event. The new implementation does neither: the new positions of the pointers will only be reflected through the up event.
Finally,
TouchInjectionScope
introduces a new methodcurrentPosition(pointerId: Int)
to get the current position of the given pointer. ( If1191 , b/190493367 )- When sending a down event while pointers had been moved without sending a move event (in other words,
رفع اشکال
- به کلیپ اجازه دهید تا مرزهای هدف لمسی را فراتر از منطقه کلیپ گسترش دهد تا حداقل اهداف هدف لمسی انجام شود. ( I43e10 , b/171509422 )
- Support for stretch overscroll has been added on Android 12 devices. ( Iccf3c , b/171682480 )
نسخه 1.1.0-alpha03
1 سپتامبر 2021
androidx.compose.ui:ui-*:1.1.0-alpha03
is released. نسخه 1.1.0-alpha03 حاوی این commit ها است.
ویژگی های جدید
- Compose
1.1.0-alpha03
را به روز کرد تا به Kotlin1.5.30
وابسته باشد. ( I74545 )
تغییرات API
- Added
Modifier.inspectable
for wrapping other modifiers. ( I1909b , b/191017532 ) - Added
BlurredEdgeTreatment
API to simplify blur use cases into more commonly used combinations of clip flags and TileModes. Most use cases involve either letting blurred content render outside the original content bounds and blurring regions outside these bounds with transparent black, or clipping content to content bounds sampling the closest edge for blur kernels that extend beyond content bounds. ( I6b4b7 , b/166927547 ) - Added support for RenderEffect in compose desktop. Introduced OffsetEffect as well as the blur modifier as a simple way to introduce blur visual effects to a portion of the composition hierarchy. ( I0f6aa , b/166927547 )
- Introduced RenderEffect API that can be optionally configured on a
Modifier.graphicsLayer
to alter the contents of the layer itself. This can be used to blur contents of a composable and child composables within a composition hierarchy. ( I47c4d , b/166927547 ) - AwaitPointerEventScope now has withTimeout() and withTimeoutOrNull() ( I507f0 , b/179239764 , b/182397793 )
- حداقل اندازه هدف لمسی به ViewConfiguration برای استفاده در معناشناسی و ورودی اشاره گر برای اطمینان از دسترسی اضافه شده است. ( Ie861c )
- Add TileMode.Decal support which is useful in defining edge behavior for blur based RenderEffects. ( I7e8ed , b/166927547 )
-
performScrollToIndex
,performScrollToKey
,hasScrollToIndexAction
andhasScrollToKeyAction
are now stable API ( I142ae , b/178483889 ) - روش تست اضافه شده برای به دست آوردن مرزهای بریده شده. ( I6b28e )
رفع اشکال
- Removed isBounded method from BlurredEdgeTreatment in favor of explicitly checking if the shape parameter is null. ( I85d68 )
نسخه 1.1.0-alpha02
18 آگوست 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
is released. نسخه 1.1.0-alpha02 حاوی این commit ها است.
تغییرات API
- PointerEvent now has support for reading mouse button state and keyboard modifier state. ( I6310c , b/180075467 )
- Injected gestures now use the MainTestClock's time as the source of truth for time. The current time for injected events in
performGesture
will be initialized to the current time of the MainTestClock. ( Ifb364 , b/192064452 ) - Added
DpRect(DpOffset, DpSize)
constructor ( I2cf16 , b/194219828 ) - Added DpSize class ( I7abb1 , b/194219828 )
رفع اشکال
- Updated Vector graphics xml parsing to support ColorStateLists as root color tint properties on VectorDrawables. ( I86915 , b/195668138 )
نسخه 1.1.0-alpha01
4 آگوست 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
is released. نسخه 1.1.0-alpha01 حاوی این commit ها است.
تغییرات API
-
RelocationRequester.bringIntoView
now accepts a rectangle as a parameter which enables us to bring a part of a composable into view ( Ice2c5 , b/194330245 ) -
AnimatedImageVector
and the related APIs are now in the newandroidx.compose.animation:animation-graphics
module. ( I60873 ) - Added experimental modifier to handle relocation requests. ( I65a97 , b/178211874 )
Introduced BrushPainter API to support drawing of an arbitrary Brush within a Painter, similar to ColorPainter
Updated Brush API to have an intrinsic size parameter that is queried within BrushPainter ( Ia2752 , b/189466433 )
متد DrawScope#drawImage بهروزرسانی شده که منبع و مقصد را مصرف میکند تا پارامتر FilterQuality اختیاری را مصرف کند. این برای هنر پیکسلی مفید است که در نظر گرفته شده است که برای هنر مبتنی بر پیکسل بزرگتر شود. BitmapPainter + Image به روز شده قابل ساخت برای مصرف پارامتر اختیاری FilterQuality ( Ie4fb0 , b/180311607 )
Added
GestureScope.advanceEventTime
method to give more control over the timing of events in a gesture ( Ibf3e2 )
رفع اشکال
- In order to better support chaining of draw modifiers, make sure the Modifier.paint implementation calls drawsContent. Previously Modifier.paint was expected to a leaf node in the chain of Modifiers, however, by doing so it prevents it from being configured on a composable container (ex. box) or adding additional decorations on top such as
Modifier.paint().border()
. By having Modifier.paint call drawContent after drawing the contents of the given painter, we have better behavior consistency in behavior with the modifier pattern. ( Ibb2a7 , b/178201337 , b/186213275 ) - اکنون دیالوگ ها از رفتار اندازه پلت فرم پیروی می کنند. برای لغو این رفتار،
usePlatformDefaultWidth
را روی false تنظیم کنید. ( ایفاد ب/192682388 ) - Moved
InfiniteAnimationPolicy
to :compose:ui ( I5eb09 , b/160602714 ) - Scrolling via semantics actions for lazy lists and regular scrolling components is now animated ( Id9066 , b/190742024 )
نسخه 1.0
نسخه 1.0.5
3 نوامبر 2021
androidx.compose.ui:ui-*:1.0.5
is released. نسخه 1.0.5 حاوی این commit ها است.
رفع اشکال
- رفع ردیابی خرابی نمونههای مشتق شده ازStateOf. ( aosp/1792247 )
نسخه 1.0.4
13 اکتبر 2021
androidx.compose.ui:ui-*:1.0.4
is released. نسخه 1.0.4 حاوی این commit ها است.
به روز رسانی های وابستگی
- به روز شد تا به Kotlin
1.5.31
وابسته باشد
نسخه 1.0.3
29 سپتامبر 2021
androidx.compose.ui:ui-*:1.0.3
is released. نسخه 1.0.3 حاوی این commit ها است.
به روز رسانی های وابستگی
- به روز شد تا به Kotlin
1.5.30
وابسته باشد
نسخه 1.0.2
1 سپتامبر 2021
androidx.compose.ui:ui-*:1.0.2
is released. نسخه 1.0.2 حاوی این commit ها است.
برای پشتیبانی از نسخه Compose 1.0.2
به روز شد. Compose 1.0.2
همچنان با Kotlin 1.5.21
سازگار است.
نسخه 1.0.1
4 آگوست 2021
androidx.compose.ui:ui-*:1.0.1
is released. نسخه 1.0.1 حاوی این commit ها است.
به روز رسانی های وابستگی
- به روز شد تا به Kotlin
1.5.21
وابسته باشد.
نسخه 1.0.0
28 ژوئیه 2021
androidx.compose.ui:ui-*:1.0.0
is released. نسخه 1.0.0 حاوی این commit ها است.
ویژگی های اصلی 1.0.0
این اولین نسخه پایدار Compose است. لطفاً برای جزئیات بیشتر به وبلاگ رسمی Compose Release مراجعه کنید!
مسائل شناخته شده
اگر از 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
خود به 24+ افزایش دهید. این مشکل در نسخه بعدی Android Studio Bumblebee و AGP7.1
برطرف خواهد شد. ( b/194289155 )
نسخه 1.0.0-rc02
14 جولای 2021
androidx.compose.ui:ui-*:1.0.0-rc02
is released. نسخه 1.0.0-rc02 حاوی این commit ها است.
رفع اشکال
- اکنون دیالوگ ها از رفتار اندازه پلت فرم پیروی می کنند. برای لغو این رفتار،
usePlatformDefaultWidth
را روی false تنظیم کنید. ( ایفاد ب/192682388 )
نسخه 1.0.0-rc01
1 ژوئیه 2021
androidx.compose.ui:ui-*:1.0.0-rc01
is released. نسخه 1.0.0-rc01 حاوی این commit ها است.
ویژگی های جدید
- Split ui-tooling module into
ui-tooling
andui-tooling-preview
( Iefa28 , b/190649014 )
تغییرات API
- Removed deprecated experimental
FocusManager#moveFocusIn
andFocusManager#moveFocusOut
( I227d7 , b/170154986 , b/186567354 , b/168510304 ) - Canvas now supports a contentDescription parameter for accessibility. ( Ib547c )
-
useDefaultMaxWidth
درPopupProperties
بهusePlatformDefaultWidth
تغییر نام داد. ( I05710 ) - اکنون دیالوگ ها می توانند از کل عرض صفحه استفاده کنند. ( I83929 , b/190810877 )
- Added experimental support for HSV and HSL color representations. ( Id7cf8 , b/180731008 )
تغییرات رفتار
- Compose
@Preview
now provides aLocalActivityResultRegistryOwner
that allows you to preview Composables that use APIs likerememberLauncherForActivityResult()
that depend on that owner existing. ( Ib13d1 , b/185693006 ) - Compose
@Preview
now provides aLocalOnBackPressedDispatcherOwner
that allows you to preview Composables that use APIs likeBackHandler
that depend on that owner existing. ( Ia1c05 , b/185693006 )
رفع اشکال
- Moved
InfiniteAnimationPolicy
toandroidx.compose.ui:ui
( I5eb09 , b/160602714 ) - AnimatedImageVector was temporarily removed in order to change the module structure. ( I41906 , b/160602714 )
نسخه 1.0.0-beta09
16 ژوئن 2021
androidx.compose.ui:ui-*:1.0.0-beta09
is released. نسخه 1.0.0-beta09 حاوی این تعهدات است.
تغییرات API
- Change enum Role and LiveRegionMode into inline classes with private constructor ( Id1890 )
- KeyboardCapitalization is converted into an inline class. ( Id5a1c )
- Change HapticFeedbackType to inline class. ( I255ec )
- Modifier.pointerInteropFilter is @ExperimentalComposeUiApi. ( Iede6c )
- TextAlign, FontSynthesis and TextDirection are now inline classes. ( I212fe )
- TextOverflow به یک کلاس درون خطی تغییر می کند. ( I433af )
- FontStyle is now an inline class. ( I9e48b )
رفع اشکال
- Key constants are @ExperimentalComposeUiApi for now. Consuming code can declare private constants prior to stabilization. ( Ia5d48 )
- Compose tests can now be run on Robolectric. The following limitations have so far been identified:
- There is no native bitmap, so
ImageBitmap()
leads to a NullPointerException. - There is no drawing, so
captureToImage()
will indefinitely await the next draw pass (ie it deadlocks). - There is no font loaded, so any text will be measured incorrectly. All characters have a fixed height of around 20px and width of 1px.
-
ComposeTestRule.waitUntil {}
does not run the main thread while it's waiting, making it effectively the same asComposeTestRule.mainClock.advanceTimeUntil {}
More limitations are expected to be identified in the future. ( I284fa )
- There is no native bitmap, so
قوانین پروفایل اضافه شد
این نسخه قوانین نمایه را به ماژول های نوشتن زیر اضافه می کند ( 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
است تا نشان دهد که آیا این روش باید به عنوان "Hot"، "Startup" یا "Post Startup" پرچم گذاری شود یا خیر.<CLASS_DESCRIPTOR>
توصیفگر کلاسی است که متد هدفمند به آن تعلق دارد. به عنوان مثال، کلاسandroidx.compose.runtime.SlotTable
یک توصیف کننده ازLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
امضای متد است و شامل نام، انواع پارامتر و انواع برگشتی متد است. به عنوان مثال، متدfun isPlaced(): Boolean
درLayoutNode
دارای امضایisPlaced()Z
است.این الگوها می توانند دارای حروف عام (
**
,*
و?
) باشند تا یک قانون واحد شامل چندین روش یا کلاس باشد.
قوانین چه کار می کنند؟
متدی که دارای پرچم
H
است نشان میدهد که این روش یک روش داغ است و باید زودتر از موعد کامپایل شود.روشی که دارای پرچم
S
است نشان می دهد که روشی است که در هنگام راه اندازی فراخوانی می شود و باید زودتر از موعد کامپایل شود تا از هزینه کامپایل و تفسیر روش در زمان راه اندازی جلوگیری شود.متدی که دارای پرچم
P
است نشان می دهد که متدی است که پس از راه اندازی فراخوانی می شود.کلاسی که در این فایل وجود دارد نشان میدهد که در هنگام راهاندازی استفاده میشود و باید از قبل در پشته تخصیص داده شود تا از هزینه بارگذاری کلاس جلوگیری شود.
این چگونه کار می کند؟
- کتابخانه ها می توانند این قوانین را که در مصنوعات AAR بسته بندی می شوند، تعریف کنند. When an app is then built which includes these artifacts, these rules are merged together and the merged rules are used to build a compact binary ART profile that is specific to the app. ART can then leverage this profile when the app is installed on devices in order to ahead-of-time compile a specific subset of the application to improve the performance of the application, especially the first run. توجه داشته باشید که این هیچ تاثیری بر برنامه های قابل اشکال زدایی نخواهد داشت.
نسخه 1.0.0-beta08
2 ژوئن 2021
androidx.compose.ui:ui-*:1.0.0-beta08
is released. نسخه 1.0.0-beta08 حاوی این تعهدات است.
تغییرات API
-
NestedScrollSource
enum is replaced by an inline class. ( Ie321b , b/187055290 ) -
FocusManager.clearFocus(forcedClear = true)
is renamed toFocusManager.clearFocus(force = true)
( Ia0c41 ) - استفاده مجدد از enum در کلاس های درون خطی برای جلوگیری از مشکلات مربوط به عبارات جامع هنگام اضافه شدن مقادیر enum جدید. ( I2b5eb )
- Remove
@ExperimentalComposeUiApi
fromPopupProperties
. ( I01fa6 ) -
PointerType
was changed from an enum to an inline class ( If5058 ) - ویژگی های ContentDescription و Text semantics دیگر مقادیر منفرد نیستند، بلکه فهرست هستند. این امکان ادغام آنها را همانطور که هستند به جای الحاق می دهد. همچنین APIهای تست بهتری برای استفاده از این تغییرات ارائه شده است ( Ica6bf , b/184825850 )
-
Modifier.focusModifier()
منسوخ شده و باModifier.focusTarget()
جایگزین شده است ( I6c860 ) -
Modifier.onSizeChanged()
andModifier.onGloballyPositioned()
are not inlined functions anymore ( I727f6 , b/186109675 ) -
KeyboardType
enum is replaced by an inline class. ( I73045 , b/187055290 ) - Enum
FocusState
با رابطFocusState
جایگزین شد ( Iccc1a , b/187055290 ) - ImeAction enum is replaced by an inline class. ( I18be5 , b/187055290 )
-
PlaceholderVerticalAlign
is converted into an inline class. ( If6290 ) - TextUnitType is an inline class now. ( I4cba9 )
-
AnnotatedString.withAnnotation
functions are now ExperimentalTextApi instead of ExperimentalComposeApi. ( I0cd0a )- TextUnit constructor with TextUnitType is now ExperimentalTextApi instead of ExperimentalComposeApi.
رفع اشکال
- Fixed the bug introduced in beta07 where LazyColumn/Row items were displayed partially after the scroll ( I8c9ac , b/188566058 )
- Now
detectDragGesures
,detectVerticalGestures
, anddetectHorizontalGestures
will consume the position change automatically, no need to call change.consumePositionChange in the onDrag callbacks ( I42fc4 , b/185096350 , b/187320697 ) - LayoutModifiers providing alignment lines was fixed. A bug causing the parent not being remeasured when the alignment lines of the children were changing was fixed. ( I4401f , b/174315652 )
-
Modifier.onGloballyPositioned()
تغییر کرد تا مختصات این اصلاح کننده را در زنجیره اصلاح کننده گزارش کند، نه مختصات طرح بندی را پس از اعمال همه اصلاح کننده ها. این بدان معنی است که اکنون ترتیب اصلاح کننده ها بر مختصاتی که گزارش می شود تأثیر می گذارد. ( Ieb67d , b/177926591 )
نسخه 1.0.0-beta07
18 مه 2021
androidx.compose.ui:ui-*:1.0.0-beta07
is released. نسخه 1.0.0-beta07 حاوی این تعهدات است.
تغییرات API
- Added
ViewRootForInspector
interface for use in inspector ( Ib70df ) -
SubcomposeLayoutState
now supports setting count of reusable slots. The layout will keep up to this count slots active instead of disposing them in order to reuse the slot next time we need a new one ( Ieb981 ) - KeyEventType enum is replaced by an inline class. ( Id670a , b/187055290 )
-
FocusDirection
enum is replaced by an inline class. ( Ib6d03 , b/187055290 , b/184086802 ) - Introduces ability to hoist the SubcomposeLayout state which allows you to precompose the content into a requires slotId which would make the next measure pass faster as once we try to subcompose with the given slotId next time there will be no composition needed. ( I42580 , b/184940225 )
- Added Clip Selection Handle ( Iff80d , b/183408447 )
- Removed unused APIs related to LayoutInspector support. ( I2ac78 )
رفع اشکال
- LazyColumn/Row will now keep up to 2 previously visible items active (not disposed) even when they are scrolled out already. This allows the component to reuse the active subcompositions when we will need to compose a new item which improves the scrolling performance. ( Ie5555 )
-
TextGeomerticTransform
andTextDecoration
onAnnotatedString
will be applied as given. ( I61900 , b/184760917 )
نسخه 1.0.0-beta06
5 مه 2021
androidx.compose.ui:ui-*:1.0.0-beta06
is released. نسخه 1.0.0-beta06 حاوی این تعهدات است.
تغییرات API
- Solve Conflict with Navigation Gesture ( I1145e )
-
@ComposeCompilerApi
no longer@RequiresOptIn
( Iab690 ) - APIهای دسترسی CollectionInfo و CollectionItemInfo اضافه شد که اجازه میدهد مجموعه و موارد آن را برای خدمات دسترسپذیری علامتگذاری کنید ( Id54ef , b/180479017 )
- Added
SemanticsActions.ScrollToIndex
to scroll a list with indexed items to the item with a certain index, andSemanticsProperties.IndexForKey
to get the index of an item in a list with keyed items. Both actions are implemented by LazyList.- Added
SemanticsNodeInteraction.performScrollToIndex
that scrolls a list to the given index, andSemanticsNodeInteraction.performScrollToKey
that scrolls a list to the item with the given key. ( I4fe63 , b/178483889 , b/161584524 )
- Added
- Added ownerViewId to GraphicLayerInfo ( I19f62 )
- Added Font() overloads to load fonts from assets, File and FileDescriptor ( I5d382 )
-
error
دسترسی به API اضافه شد که اجازه میدهد گرهای را که دارای ورودی نامعتبر است علامتگذاری کنید ( I12997 , b/180584804 , b/182142737 ) - Added
Font()
overloads to load fonts from assets, File and FileDescriptor ( I43007 ) - AnnotatedString save support to
TextFieldValue.Saver
. AddedaddTtsAnnotation
and withAnnotation utility functions toAnnotatedString.Builder
( I8cbdc , b/178446304 ) - Added TextUnit constructor function
TextUnit(value: Float, type: TextUnitType)
( I7ecce , b/178446304 )
نسخه 1.0.0-beta05
21 آوریل 2021
androidx.compose.ui:ui-*:1.0.0-beta05
is released. نسخه 1.0.0-beta05 حاوی این تعهدات است.
تغییرات API
- Added experimental
FocusManager.moveFocus(In)
andFocusManager.moveFocus(Out)
( Ic5534 , b/183746743 ) - Added experimental
performTextInputSelection
API ( I2dcbb , b/178510628 ) -
InputEventCallback
interface is deprecated. It was not possible to use the interface in any public API; and there was no usage of it in the code. ( I34a02 , b/184003208 ) - Deprecated
TextLayoutResult/createTextLayoutResult
function. It is an unused public function which was added for testing. The function does not do anything usable for Compose text APIs. The function is now deprecated and will be removed later. ( I80413 )
رفع اشکال
- Fixed
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
,accessibilityActionScrollUp
,accessibilityActionScrollRight
andaccessibilityActionScrollDown
accessibility scroll actions. Instead of scrolling to the end of the scrollable, it will now scroll by one screen in the given direction. ( Ieccb0 ) - The AndroidManifest files from ui-test-manifest and ui-tooling-data are now compatible with Android 12 ( I6f9de , b/184718994 )
نسخه 1.0.0-beta04
7 آوریل 2021
androidx.compose.ui:ui-*:1.0.0-beta04
is released. نسخه 1.0.0-beta04 شامل این تعهدات است.
تغییرات API
- برای
hide()
وshow()
به ترتیبSoftwareKeyboardController
showSoftwareKeyboard
hideSoftwareKeyboard
کنید.- رابط کاربری کامل ComposionLocal را برای localsoftwarekeyboardcontroller فراهم کنید ، اجازه می دهد تا تنظیم شود (مخصوصاً در تست ها مفید است) ( i579a6 )
- API دسترسی به Liveregion اضافه شده است. اگر گره به عنوان یک منطقه زنده مشخص شود ، سرویس های دسترسی به طور خودکار در مورد تغییرات خود به کاربر اطلاع می دهند ( IDCF6F ، B/172590946 )
- TextOverflow.Visible is introduced. ( Ic8f89 )
رفع اشکال
- Fixed the issue when items of
LazyColumn
/LazyRow
located on the edges were incorrectly positioned after fast fling ( Ie4d13 , b/183877420 ) -
AndroidViewBinding
now properly removes fragments inflated viaFragmentContainerView
when theAndroidViewBinding
is removed from the compose hierarchy. ( Ib0248 , b/179915946 ) -
AndroidViewBinding
now correctly nests fragments inflated viaFragmentContainerView
when yourComposeView
is within aFragment
, fixing issues with saving and restoring the state of those fragments. ( I70eb0 , b/179915946 ) - Compose ViewBinding now depends on Fragment
1.3.2
and now consistently shows fragments inflated viaFragmentContainerView
after configuration changes. ( I0743d , b/179915946 )
نسخه 1.0.0-beta03
24 مارس 2021
androidx.compose.ui:ui-*:1.0.0-beta03
is released. نسخه 1.0.0-beta03 حاوی این تعهدات است.
تغییرات API
- Deferred check for ViewTree dependencies of ComposeView ( I8dbbf , b/182466548 )
- Added optional
startX
/endX
andstartY
/endY
parameters toswipeUp
/swipeDown
/swipeLeft
/swipeRight
functions inGestureScope
. ( I49e2d , b/182063305 )
نسخه 1.0.0-beta02
10 مارس 2021
androidx.compose.ui:ui-*:1.0.0-beta02
is released. نسخه 1.0.0-beta02 شامل این تعهدات است.
تغییرات API
- اضافه شده
LocalSoftwareKeyboardController
ترکیب محلی API برای جایگزینی رابط قبلی SoftwardkeyboardController در TextField. ( i5951e ، b/168778053 ) - اضافه شده
LocalSoftwareKeyboardController
ترکیب محلی API برای جایگزینی رابط قبلی SoftwardkeyboardController در TextField. ( I84472 , b/168778053 ) - Removed the following
SemanticsMatcher
s:-
hasWidth(width, tolerance)
-
hasHeight(height, tolerance)
-
hasLeftPosition(left, tolerance)
-
hasTopPosition(top, tolerance)
-
hasRightPosition(right, tolerance)
-
hasBottomPosition(bottom, tolerance)
( If16bd )
-
- Marked the following
SemanticsMatchers
as @ExperimentalTestApi:-
hasWidth(width, tolerance)
-
hasHeight(height, tolerance)
-
hasLeftPosition(left, tolerance)
-
hasTopPosition(top, tolerance)
-
hasRightPosition(right, tolerance)
-
hasBottomPosition(bottom, tolerance)
( Ia600c )
-
- Added the following
SemanticsMatcher
s:-
hasWidth(width, tolerance)
-
hasHeight(height, tolerance)
-
hasLeftPosition(left, tolerance)
-
hasTopPosition(top, tolerance)
-
hasRightPosition(right, tolerance)
-
hasBottomPosition(bottom, tolerance)
( I2f502 )
-
رفع اشکال
- اجرای محدودیت در استفاده عمومی از API های آزمایشی ( I6AA29 ، B/174531520 )
-
androidx.compose.ui:ui
دیگر به AppCompat یا قطعه بستگی ندارد. اگر در برنامه خود از ComposeView استفاده می کنید ، و از قطعه و / یا APPCOMPAT استفاده می کنید ، اطمینان حاصل کنید که از AppCompat 1.3+ / قطعه 1.3+ استفاده می کنید - این نسخه ها برای تنظیم صحیح چرخه حیات و صاحبان حالت ذخیره شده مورد نیاز برای ComposeView مورد نیاز هستند. ( i1d6fa ، b/161814404 ) - Fix for broken
rememberSaveable { mutableStateOf(0) }
when used inside a destination of navigation-compose. ( I1312b , b/180042685 , b/180701630 ) - اضافه شده
LocalSoftwareKeyboardController
ترکیب محلی API برای جایگزینی رابط قبلی SoftwardkeyboardController در TextField. ( i658b6 ، b/168778053 ) - Fixed rare NoSuchElementException in
ComposeRootRegistry
'stearDownRegistry()
( Iddce1 )
نسخه 1.0.0-beta01
24 فوریه 2021
androidx.compose.ui:ui-*:1.0.0-beta01
is released. نسخه 1.0.0-beta01 حاوی این تعهدات است.
این اولین نسخه از آهنگسازی 1.0.0 بتا است.
تغییرات API
- onStart callback has been added to
detectDragGestures
( I67269 , b/179995594 ) - اصلاح کننده برای اندازه به ذاتی دیگر تجربی نیست. ( I15744 )
- MeasureBlocks was renamed to MeasurePolicy which became a fun interface. Layout APIs were updated / simplified to use MeasurePolicy. ( Icab48 , b/167662468 , b/156751158 )
-
InteractionState
با[Mutable]InteractionSource
جایگزین شده است- رابط ها وظیفه انتشار / جمع آوری رویدادهای تعامل را بر عهده دارند.
- به جای عبور
interactionState = remember { InteractionState() }
به مؤلفه هایی مانندButton
وModifier.clickable()
، ازinteractionSource = remember { MutableInteractionSource() }
. - به جای:
Interaction.Pressed in interactionState
شما باید در عوض از توابع پسوند در تعامل استفاده کنید ، مانند interactionSource.CollectIspressedAsState (). - برای موارد استفاده پیچیده می توانید از تعامل استفاده کنید. برای مشاهده جریان تعامل. برای اطلاعات بیشتر به اسناد و نمونه های تعامل و نمونه ها مراجعه کنید.
- ( i85965 ، b/152525426 ، b/171913923 ، b/171710801 ، b/174852378 )
- اضافه کردن رابط Mananger Mananger و LocalAccessibilityMananger در ترکیبات ( I53520 )
- روشهای حذف شده چیدمان کمپانی حذف شده ، از عملکرد به جای خاصیت برای موقعیت یابی و مرز استفاده کنید ( i580ed ، b/169874631 ، b/175142755 )
- Typealiases replaced by underlying types:
-
ColorStop
is nowPair<Float, Color>
-
SpanStyleRange
is now `AnnotatedString.Range -
ParagraphStyleRange
is nowAnnotatedString.Range<ParagraphStyle>
-
StringAnnotation
is nowAnnotatedString.Range<String>
- ( I8dd1a )
-
- TextInputSession جدید برای جلسات ورودی از اجزای متن سطح پایین مانند CoreTextField ایجاد شده است. ( i8817f ، b/177662148 )
- Placeable now exposes measuredSize, representing the size which the child layout actually measured to. This size might not respect the measurement constraints. ( Ib2729 , b/172560206 , b/172338608 )
- اضافه کردن اصلاح کننده گروه انتخابی که به شما امکان می دهد مجموعه ای از زبانه ها یا Radiobuttons را برای اهداف قابل دسترسی علامت گذاری کنید ( IE5C29 )
The
defaultFactory
forcompositionLocalOf
andstaticCompositionLocalOf
is now required instead of optional.This changes removes a potential type error for non-nullable types where no default factory was provided. Previously this would provide a null reference for a non-nullable type.
For nullable types consider supplying
{ null }
as the default factory.We do not recommend using locals with non-nullable types unless a sensible default can be provided. If no sensible default exists, the
defaultFactory
lambda should throw an exception. However throwing an exception means that consumers of the local will have an implicit dependency on it being provided that is not enforced by the type system. ( Ifbd2a )Deprecated methods from ui modules were removed ( I646f6 )
اصلاح کننده های اندازه تغییر نام دادند. اصلاح کننده. عرض/ارتفاع/اندازه به عرض مورد نیاز/مورد نیاز/مورد نیاز تغییر نام داده شد. اصلاح کننده. preferredwidth/preferredheight/preferredsize به عرض/ارتفاع/اندازه تغییر نام داده شد. ( i5b414 )
Modifier.tapGestureFilter
has been removed. UseModifier.pointerInput { detectTapGestures(...) }
instead. ( I266ed , b/175294473 )partial consumption was removed from pointer input system. The recommended way of coordinating partial consumtion is Modifier.nestedScroll. ( Ie9c9b )
جهت گیری به بسته بنیاد منتقل شده است. VelocirtTracker از ui.gesture به ui.input.pointer منتقل شد. ( IFF4A8 ، B/175294473 )
ImagerEsource و VectorResource اکنون به ترتیب توابع برنامه ریزی در ImageBitmap و همراهان ImageVector هستند.
load{Image,Vector,Font}Resource
حذف شده است. ( i89130 )AnimationClockObservable and subclasses have been removed. AnimatedFloat has been removed. ( Icde52 , b/177457083 )
ارائه دهندگان به ComposionLocalProvider تغییر نام داده اند
- سازنده ترکیب دیگر یک پارامتر کلیدی را نمی پذیرد و از بین رفته است.
- CurrentCompositeKeyHash به جای یک عملکرد سطح بالایی ، به یک ویژگی سطح بالایی تبدیل شده است.
- ComposionData و ComposionGroup به Androidx.compose.runtime.tooling namespace منتقل شده اند
- ComposableLambda به جای کلاس بتونی یک رابط ساخته شده است و دیگر پارامترهای نوع ندارد.
- ComposableLambdan به جای کلاس بتونی یک رابط کاربری ساخته شده است و دیگر پارامترهای نوع ندارد.
- عملکرد SnapshotFlow به Androidx.compose.runtime namespace منتقل شده است
- روش ادغام SnapshotmittionPolicy دیگر آزمایشی نیست
- عملکرد ClearRoots سطح بالا Testonly حذف شده است. دیگر لازم نیست.
- توابع keysourceinfoof و resetsourceinfo برداشته شده است. آنها دیگر لازم نیستند.
- Composer.CollectKeySourceInformation حذف شده است. دیگر لازم نیست.
- isjoinedkey ، پیوستن به KeyLeft ، و به روش های پیوستن به روش های پیوسته برداشته شده است. آنها دیگر لازم نیستند.
- API های مختلف سطح بالا منتقل شده و به پرونده های مختلف سازماندهی شده اند. با توجه به معناشناسی کلاس پرونده Kotlin ، این باعث می شود سازگاری باینری اما سازگاری با منبع باشد ، بنابراین نباید برای اکثر کاربران مسئله ای باشد.
- ( i99b7d ، b/177245490 )
ComponentActivity.setContent()
was removed from compose:ui. Use the one fromandroidx.activity:activity-compose:1.3.0-alpha01
.viewModel()
andLocalViewModelStoreOwner
were removed from compose:ui. Use the ones fromandroidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
( I6f36b )modifier.scrollable دوباره کار شده است. اکنون از رابط قابل پیمایش به جای کلاس ScrolleController استفاده می کند ( I4F5A5 ، B/174485541 ، B/175294473 )
CustomEvens support from PointerInputModifier has been removed ( I02707 , b/175294473 )
SnapshotStateObserver is not Experimental anymore ( Id2e6a )
برخی از API های قبلاً مستهلک را حذف کردند ( ICE5DA ، B/178633932 )
longPressGestureFilter and doubleClickGestureFilter have been removed. use Modifier.pointerInput with helper functions eg detectTapGestures ( I2fedf , b/175294473 )
Removed String.format API refactored usages in various toString methods to not leverage String.format internally. ( Id1290 )
ادعاهای DP حذف شده ( I798D2 )
Removed androidx.compose.runtime:runtime-dispatch ( I55feb )
Text actions now check focus automatically ( I13777 , b/179648629 )
Removed
runBlockingWithManualClock
( I15cdc , b/179664814 )موقعیت پیمایش در اصلاح کننده. verticalscroll ()/HorizontalScroll () با INTS Now ( I81298 ) نشان داده شده است
FlingConfig به Flingbehavior تغییر نام داده است و اکنون امکان سفارشی سازی انیمیشن تعلیق را به جای پوسیدگی های از پیش تعریف شده فراهم می کند. ( I02B86 ، B/175294473 )
Added a helper function that is helpful to set the same action for all ImeAction callbacks ( I63447 , b/179226323 )
پاسخ به تماس با کلید SoftwareKeyboardController از تمام زمینه های متن که به زودی توسط یک API جدید جایگزین می شود. ( IAE869 ، b/168778053 )
FontSpan and FontWeigthStyleSpan are no longer used and removed. ( Ie5b56 , b/177423444 )
تغییرات API مواد زیر را ایجاد کرد:
- پارامتر ContentPadding را به بالا/bottomAppbar اضافه کرد تا امکان سفارشی کردن بالشتک پیش فرض فراهم شود.
- پارامترهای مرتب شده در پس زمینه برای پیروی از دستورالعمل های API برای پارامترهای مورد نیاز قبل از پارامترهای اختیاری.
- پارامتر
icon
در BottomNavigationItem جابجا شده است تا بعد ازselected
وonClick
باشد. - تغییر نام پارامتر
alwaysShowLabels
در bottomNavigationItem بهalwaysShowLabel
. - پارامترهای
bodyContent
در چند مؤلفه بهcontent
تغییر نام داد. - پارامترهای مرتب شده در
ButtonDefaults.buttonColors()
. لطفاً توجه داشته باشید که از آنجا که نوع پارامترها تغییر نکرده است ، این خطایی در کد شما ایجاد نمی کند - لطفاً اطمینان حاصل کنید که از پارامترهای نامگذاری شده استفاده می کنید یا سفارش را به صورت دستی به روز می کنید ، در غیر این صورت کد شما مانند گذشته کار نمی کند. - پارامتر
secondaryVariant
بهdarkColors()
اضافه شد. این رنگ به طور معمول همانندsecondary
در موضوع تاریک است ، اما برای قوام و سفارشی سازی بیشتر اضافه می شود. - ElevationDefaults و AnimateElevation () از سطح API عمومی حذف شده است زیرا معمولاً مورد استفاده قرار نمی گرفتند / مفید.
- با نام
onValueChangeEnd
درSlider
بهonValueChangeFinished
تغییر نام داد و آن را باطل کرد. - تغییر نام پارامتر
text
درSnackbar
بهcontent
برای قوام. - پارامتر
contentPadding
بهDropdownMenuItem
اضافه شده است تا امکان سفارشی کردن بالشتک پیش فرض و ساخته شدهcontent
را درRowScope
فراهم کند. - با نام
ModalDrawerLayout
بهModalDrawer
تغییر نام داد. - تغییر نام داد به
BottomDrawerLayout
بهBottomDrawer
. - ( i1cc66 )
رفع اشکال
- Added API to use AnimatedVectorDrawable resources in Compose. Use animatedVectorResource to load an
<animated-vector>
XML as an AnimatedImageVector and animate it with painterFor ( I8ea91 ) - اضافه شده NewlocalSoftwareKeyboardController ترکیب محلی API برای جایگزینی رابط قبلی SoftwardkeyboardController در TextField. ( i658b6 ، b/168778053 )
نسخه 1.0.0-alpha12
10 فوریه 2021
androidx.compose.ui:ui-*:1.0.0-alpha12
is released. نسخه 1.0.0-alpha12 شامل این تعهدات است.
تغییرات API
- Support for ViewGroups was removed from UiApplier. The Deprecated emitView composables were removed. ( Ifb214 )
- modifier.pointerinput اکنون به کلیدهای یادآوری نیاز دارد تا نشان دهد چه زمانی Coroutine تشخیص ورودی نشانگر باید برای وابستگی های جدید مجدداً راه اندازی شود. ( i849cd )
- CompositionReference renamed to CompositionContext ( I53fcb )
- Bounds has been renamed to DpRect ( I4b32a )
- Testing update: hasText() will check for both input and label/hint/placeholder texts in the text field ( Iab803 )
- viewModel() composable and LocalViewModelStoreOwner were moved to androidx.lifecycle.viewmodel.compose. You will now need to add a separate dependency androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 in order to use it. ( I7a374 )
- Allow nullable action in AccessibilityAction, change action label in AccessibilityAction and CustomAccessibilityAction from CharSequence to String ( I0dc82 )
- به منظور مطابقت بهتر کنوانسیون های نامگذاری با ImageBitmap و ImageVector ، ImagePainter به Bitmappainter به VectorPainter موازی تغییر نام داده است. ( IBA381 ، B/174565889 )
- Better substring test APIs with substring now as an argument ( Icbe78 )
- Added an
Modifier.focusOrder()
that accepts a FocusRequester without specifying a custom focus order a lambda. This is useful when we only need to specify a reference but not a custom focus order for a composable ( I4f52a , b/179180978 ) - ComponentActivity.SetContent به Androidx.activity.compose.setContent در Androidx.Activity: ماژول فعالیت-ترکیب منتقل شده است. ( ICF416 )
- روشهای تخریب و کپی () از چندین کلاس که به ندرت مورد استفاده قرار می گرفت ، حذف شده است. ( I26702 ، b/178659281 )
- Moved Popup to be platform specific. AndroidPopupProperties has been renamed to PopupProperties, and
isFocusable
has been moved to afocusable
parameter inPopupProperties
( Ieeea5 ) - Moved Dialog to be platform specific. Renamed AndroidDialogProperties to DialogProperties. ( I4ef69 , b/179138130 )
- Made LayoutNode internal ( I8a7b1 , b/175103944 )
- Constraints.enforce was replaced with Constraints.constrain. ( I8b8ea )
- LoadFontResource مستهلک می شود. به جای آن از fontresource استفاده کنید. ImagerEsource ، LoadImagerEsource ، Vectorresource و LoadVectorResource مستهلک می شوند. به جای آن از PainterResource استفاده کنید. ( i6b809 )
- For performance reasons, ScrollAxisRange semantics now takes lambdas returning Floats instead of direct Float values. ( If4a35 , b/178657186 )
- Added EditableText semantics to mark editable input text of the text field for accessibility and corresponding test methods to check the semantics ( I8e07a )
- Made OwnerLayer/OwnerScope/OwnerSnapshotObserver internal ( I4ffaf , b/175103944 )
- tointpx () به Roundtopx () تغییر نام داد. ( i9b7e4 ، b/173502290 )
- Intbounds به Intrect تغییر نام داد و API بهبود یافت. ( i1f6ff )
- Snapshot API was updated to be more consistent with API guideline as well as hiding internal implementation classes from the public API. ( Id9e32 )
- اقدامات معنادار گسترش و فروپاشی اضافه شده است. Expand و Halfexpand در Modalbottomsheetstate ( IB5064 ) اضافه شده است
- اصلاح کننده. draggesturefilter کاهش یافته است. به جای آن از
Modifier.pointerInput { detectDragGestures (...)}
استفاده کنید. از طرف دیگر ، از اصلاح کننده استفاده کنید. draggable برای یک محور کشیدن ( I0BA93 ، B/175294473 ) - برای تغییر نام Ambient -> ComposionLocal تغییر نام داد. محیط هایی که قبلاً به نام Ambientfoo نامگذاری شده بودند ، اکنون ترکیبات Composions نامیده می شوند. ( i2d55d )
- The deprecated BaseTextField is now removed. Use BasicTextField instead. ( I71368 )
- انتخاب به بنیاد منتقل شد. ( i7892b )
- به طور مشابه با نحوه حذف
state { 0 }
composite و اکنون استفاده از آن را مانندremember { mutableStateOf(0) }
ما قصد داریمsavedInstanceState { 0 }
حذف کنیم. در عوض باید ازrememberSaveable { mutableStateOf(0) }
استفاده کنید و در صورتی که نوع استفاده شده در داخل mutablestate در بسته نرم افزاری ذخیره می شود ، به طور خودکار ذخیره و بازیابی می شود. اگر قبلاً در حال عبور از یک شیء خرج سفارشی بودید ، اکنون باید از اضافه بار جدیدی از RembersAvelable استفاده کنید که دارای پارامترstateSaver
است. استفاده به این شکل خواهد بود:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
( IB4C26 ، b/177338004 ) - Added password semantics for accessibility ( I231ce )
- ProgressBarrangeInfo.Indeterminate برای علامت گذاری نامشخص میله های پیشرفت برای دسترسی ( I6FE05 )
-
emptyContent()
و(@Composable () -> Unit).orEmpty()
برنامه های کاربردی کاهش یافته است زیرا آنها دیگر تأثیر عملکرد مثبت یا ارزش ندارند ( I0484D ) -
snapshotFlow
andwithMutableSnapshot
are no longer experimental ( I6a45f ) - Recomposers can now be closed. Closed recomposers will continue recomposition until composition child coroutines complete. Recomposer.shutDown renamed to cancel to contrast with close. ( Ib6d76 )
- UiSavedStateRegistry was renamed to SaveableStateRegistry, AmbientUiSavedStateRegistry was renamed to AmbientSaveableStateRegistry and both moved to androidx.compose.runtime.saveable package. ( I30224 )
- Artefact androidx:compose:runtime:runtime-saved-instance-state was renamed to androidx:compose:runtime:runtime-saveable ( I6dcac )
- Many longstanding deprecated APIs in the ui package are deleted. ( I2f2dc )
- The compose:runtime-dispatch artifact is now deprecated. MonotonicFrameClock can now be found in compose:runtime and AndroidUiDispatcher can be found in compose:ui. ( Ib5c36 )
- Outline.* classes are not data classes anymore ( I4879e , b/178001427 )
- Removed
view.captureToImage()
without any replacement. ( I7fcd2 ) - API Colormatrix معرفی شده برای اصلاح مقادیر RGB از محتوای منبع منبع اصلاح شده Colorfilter API به عنوان یک رابط و مطابقت با اجرای Patheffect استفاده می شود. ( ICA1E8 )
- Param LayoutDirection را به خط ایجاد شکل اضافه کنید. این اجازه می دهد تا شکل های آگاهانه جهت طرح را ایجاد کنید. ( i57c20 ، b/152756983 )
- OnimeActionPerformed مستهلک می شود. به جای آن از صفحه کلید استفاده کنید ( IF0BBD ، B/179071523 )
- Introduced an
InfiniteAnimationPolicy
coroutine context element that will be applied in infinite animations. By default no policy is installed, except when running tests withComposeTestRule
. ( I50ec4 , b/151940543 ) - canDrag has been removed from the Modifier.scrollable. ( Id66e7 , b/175294473 )
- Renamed LayoutCoordinates.parentCoordinates to LayoutCoordinates.parentLayoutCoordinates to allow for a new parentCoordinates property. The parentCoordinates property now offers the parent modifier's LayoutCoordintes. This will make for more complete use cases for onSizeChanged() and onGloballyPositioned() ( Idfbfd , b/177926591 )
- TAPGESSTUREFILTER ، DOUBLETAPEGREGHTUREFILTER ، LONGPRESSEGENTUREFILTER و PRESSINDICAITONGESTUREFILTER کاهش یافته است. به جای آن از modifier.clickable یا modifier.pointerinput با عملکرد DetectTapgreggestures استفاده کنید. ( i6baf9 ، b/175294473 )
- SaveableStateRegistry's unregisterProvider was removed. Instead registerProvider() now returns SaveableStateRegistry.Entry object which you can use to unregister ( Ic4274 , b/178583739 )
- به یاد داشته باشید که به یاد داشته باشید. ( i1366e ، b/177338004 )
- Removed CoreText and CoreTextField from public API
- Removed deprecated SelectionContainer overload
- ( I99c19 )
- Tests in which Compose is used in hierarchies that are added/removed directly to the WindowManager are now more stable. ( Ie81ed , b/175765614 )
- Removed Recomposer.current(). [چکیده] ComposeView اکنون به طور پیش فرض به recomposer های پر از پنجره که توسط ViewTreeLifecycleLowner برای پنجره هدایت می شود ، ساخته شده است. در حالی که چرخه عمر میزبان متوقف می شود ، کنه های انیمیشن مبتنی بر Framenanos متوقف می شوند. ( i38e11 )
- Recomposer.runningRecomposers now offers a global StateFlow of read-only RecomposerInfo for observing ongoing composition state in the process. Prefer this API to Recomposer.current(), which is now deprecated. ( If8ebe )
- Saver ، Listsaver () ، Mapsaver () ، AutoSaver از Androidx.compose.runtime.savedinstancestate به androidx.compose.runtime.saveable ( i77fe6 ) منتقل شد
- EditCommands accept AnnotatedString. However this is an API only change and multi-style text editing is not implemented yet. ( I4c3ea )
- Uptime and Duration have been removed. ( Ib9bf4 , b/177420019 )
- CompositionData.asTree() and related APIs moved to separate ui-tooling-data module and marked as experimental ( Ic95b8 )
- پارامترهای مربوط به RounderCornershape ، cutcornershape و Cornerbasedshape از سمت چپ/راست به شروع/پایان تغییر نام داده شد تا از آینه کاری خودکار شکل در جهت RTL پشتیبانی کند. AbsoluteRounderCornershape و Absolutioncornershape برای مواردی معرفی شدند که آینه کاری خودکار مورد نظر نیست. ( i61040 ، b/152756983 )
The API the Compose compiler plugin targets has been refactored to use an interface instead of a concrete class. The interface also no longer uses a type parameter.
This is an internal change that should not effect source code compatibility but is a binary breaking change. ( I3b922 , b/169406779 )
Remove unintentionally public StringBuilder.deleteAt function ( Id6ed9 )
رفع اشکال
- ComposeViews placed in view hierarchies that are children of another composition now host child compositions of their ancestors ( I92883 )
- Updated compose's imageFromResource API to reuse the resource drawable cache when loading ImageBitmap objects. ( If3627 , b/178751994 )
نسخه 1.0.0-alpha11
28 ژانویه 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
is released. نسخه 1.0.0-alpha11 شامل این تعهدات است.
تغییرات API
- WithConstraints به عنوان BoxwithConstraints دوباره کار کرد و به Foundation.Layout منتقل شد. ( i9420b ، b/173387208 )
- Key.DPadUp is deprecated. Use Key.DirectionUp instead. ( Iab335 , b/177954892 )
- Owner interface from now on internal. ( If8e35 )
- Added FocusManager.moveFocus() API to move focus programmatically. ( I045cb , b/177681839 )
- برای استفاده از مختصات مربوط به پنجره ، نه مختصات جهانی ، PopuppositionProvider را تغییر می دهد. تغییر نام های ParentLobalBounds به لنگرگاه ها ، و WindowglobalBounds را به عنوان Windowsize تغییر می دهد: IntSize ( I2994a )
- مدت زمان و به روز با میلی ثانیه طولانی جایگزین خواهد شد و این مرحله وابستگی ورودی اشاره گر به آن کلاس ها را از بین می برد. ( ia33b2 ، b/175142755 ، b/177420019 )
- AmbientSavedStateRegistryOwner was added similarly to already existing AmbientLifecycleOwner and AmbientViewModelStoreOwner ( I9a3e8 , b/176756365 )
- Updated vector graphics API to support parsing of tinting applied to the root of vector graphics. ( id9d53 ، b/177210509 )
- Added toolType to PointerInputChange to differentiate devices ( Iac787 , b/175142755 )
- AmbientWindowManager is renamed to AmbientWindowInfo ( I2686a , b/177084714 , b/177084983 )
- روشهای مختصات جهانی مستهلک شده و روشهای مختصات مبتنی بر پنجره جدید ساخته شده است. ( IEE284 )
- اصلاح کننده اضافه شده است. ( i315df )
- FocusRequester.CreaterEfs اکنون به عنوان آزمایشی مشخص شده است که ممکن است تغییر کند. ( i2d898 ، b/177000821 )
- semanticspropertyreceiver.hidden به invisibletouser تغییر نام داد و experimentalComposeUIAPI را علامت گذاری کرد. AccessibilityRangeInfo به ProgressBarrangeInfo تغییر نام داد. بیانیه نسخه به ProgressBarrangeInfo تغییر نام داد. AccessIbilityScrollState به ScrollaxisRange تغییر نام داد. AccessibilityScrollState به HorizontalScrollaxisRange تغییر نام داده شد. عمودی AccessibilityScrollState به VerticalscrollaxisRange تغییر نام داده شد. ( id3148 )
- Removed PointerInputData and modified PointerInputChange to give it all of PointerInputData's fields. Made PointerInputEvent and PointerInputEventData internal because they aren't used in any public API. ( Ifff97 , b/175142755 )
- Updated GraphicsLayerScope implement density to support conversions of dp into raw pixels. ( Ied528 , b/176819695 )
- Updated matrix API to follow row major ordering and provide index constants to assist with conversions between different matrix representations to match framework conversion logic between SkMatrix and Matrix4 internally. ( I432e6 )
- روشهای تجربی monotonicframeanimationclockof ( IB753F ، B/170708374 )
- Move String.fintPrecedingBreak and String.fingFollowingBreak to InternalTextApi. ( I657c4 )
- androidx.compose.ui.util.isSurrogatePair has been removed from public API. ( Ia9494 )
- Renamed TransformedText.transformedText to TransformedText.text
- TransformedText is no longer a data class ( Ie672a )
- Removed
data class
from the following classes:- InlineTextContent
- LocaleList ( I605c7 )
- The following classes are not data classes anymore:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- فونت وزن
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput ( Iaff99 )
- Changed VisualTransformation to be a functional interface ( I3bba4 )
- Added a function reference parameter type ( I5e1bd )
- Add transformed bounds to InspectorNode ( Ice42f )
رفع اشکال
- OnCommit ، Ondispose و Onactive به نفع API های جانبی و یکبار مصرف ( IF760E ) کاهش یافته است
Changes to factory functions for Font/FontFamily/Typeface
- Added factory functions that start with capital letter
- Deprecated previous factory functions with lowercase first letters
- New factory functions return the FontFamily instead of subclasses
- Hid constructors of the subclasses, so that they can only be constructed via factory functions.
- Renamed Font.asFontFamily to Font.toFontFamily ( I42aa7 )
ComposeContentTestRule
معرفی شده ، کهComposeTestRule
گسترش می دهد وsetContent
را تعریف می کند ، که ازComposeTestRule
حذف شده است. یک روش کارخانه اضافه شده است کهcreateEmptyComposeRule()
ComposeTestRule
برمی گرداند و فعالیتی را برای شما راه اندازی نمی کند. وقتی می خواهید فعالیت خود را در طول آزمایش خود راه اندازی کنید ، به عنوان مثال با استفاده ازActivityScenario.launch
( I9D782 ، B/174472899 ) از این استفاده کنید.Animateasstate اکنون AnimateFoosstate است ، جایی که Foo نوع متغیر متحرک است. به عنوان مثال شناور ، DP ، افست و غیره ( IE7E25 )
پارامتر توضیحات محتوا به تصویر و نماد اضافه شده است. برای ارائه توضیحات به خدمات دسترسی ( I2AC4C ) استفاده می شود
نمایش را حذف کنید زیرا باید از آن جلوگیری شود. به طور معمول بهتر است حداقل از اندازه onRoot () یا اندازه پنجره استفاده کنید. ( i62db4 )
OnSizeChanged was reporting the size of the layout's contents. It now reports the size at its position within the modifier chain. ( I36b78 , b/177562900 )
The emit() API and all overloads have been deprecated and renamed to ComposeNode. The APIs are identical, just a different name in order to follow the naming conventions of Compose ( I4137b )
TextFieldValue accepts AnnotatedString. However this is an API only change and multi-style text editing is not implemented yet.
- Removed
initial
from EditingBuffer constructor parameters. ( I326d5 )
- Removed
بی اعتبار و ترکیب () اکنون به ترتیب به نفع جریان فعلی و به یاد داشته باشید که به یاد داشته باشید. ( i583a8 )
AnnotatedString is changed to extend from kotlin.CharSequence. Therefore length and subSequence are now instance functions, and extension functions are removed. ( Iaf429 )
RememberObserver replaces CompositionLifecycleObserver and CompositionLifecycleObserver is now deprecated.
RememberObserver
is a replacement forCompositionLifecycleObserver
with modified semantics and renamed methods. Changing to the new API can be done mechanically for objects that are only remembered once which is, and continues to be, the recommended practice. However, if a reference was remembered more than once in a compositiononRemembered
is called for each reference whereonEnter
is only called once.onEnter
was called multiple time if the object was used in subcompositions, such asWithConstraints
andScaffold
making the singleonEnter
call guarantee unreliable and it was removed forRememberObserver
.RememberObserver
addsonAbandoned
which is called if theRememberObserver
instance is returned from the callback passed toremember
but was not remembered in the composition state and, therefore, will never haveonRemembered
called. This can occur if an exception terminates composition before completing or the composition is discarded because the state is was producing a composition for is no longer current or otherwise is no longer needed. If the instance ofRememberObserver
following the single reference recommendation above is tracking an external resource bothonForgotten
andonAbandoned
each indicate that the resource is no longer needed. If the object is tracking work started or resources allocated inonRemembered
,onAbandoned
can be ignored as it will not be called ifonRemembered
is called. ( I02c36 )Deprecated arithmetic operations between 2 or more TextUnits. Deprecated TextUnit.Sp and TextUnit.Em functions in preference to the extension functions such as Int.sp and Int.em. ( I48369 )
Resources in libraries with no explicitly declared public resources (ex. via public.xml) are now private by default. ( Ia1dcc , b/170882230 )
ScrollableColumn/Row مستهلک شد. Using ScrollableColumn is less efficient compared to LazyColumn when you have a large scrolling content because with LazyColumn we can only compose/measure/draw visible elements. To prevent users from going the inefficient way we decided to deprecate ScrollableColumn and ScrollableRow and promote usages of LazyColumn and LazyRow instead. کاربران هنوز هم می توانند تصمیم بگیرند که آنها به رفتار تنبل احتیاج ندارند و از اصلاح کننده ها مستقیماً مانند این استفاده نمی کنند: ستون (اصلاح کننده. verticalscroll (به یادگار crollstate ())) ( IB976B ، b/170468083 )
items(count: Int)
روش کارخانه برای دامنه LazyColumn/Lazyrow/LazyverticalGrid.items(items: List)
وitemsIndexed(items: List)
اکنون توابع پسوند هستند ، بنابراین شما باید هنگام استفاده به صورت دستی آنها را وارد کنید. اضافه بار پسوند جدید برای آرایه ها:items(items: Array)
وitemsIndexed(Array)
( I803FC ، B/175562574 )Please use ImeAction.None instead of ImeAction.NoAction
- Please use ImeAction.Default instead of ImeAction.Unspecified ( Ie1bcc )
اهرم تست coroutinedispatcher در آزمایش ( i532b6 )
Renamed TextInputService.onStateUpdated as updateState ( Id4853 )
انتقال مبتنی بر TransitionDefinition کاهش یافته است ( I0AC57 )
TextUnitType.Inherit is removed. Please use TextUnitType.Unspecified instead. ( I9ff64 )
نسخه 1.0.0-alpha10
13 ژانویه 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
is released. نسخه 1.0.0-alpha10 شامل این تعهدات است.
Breaking Change
Restructuring of the internal compiler API allows batching changes to the nodes generated as a result of composition into the "apply changes" phase of composition, after all
@Composable
functions have completed.This is a behavioral breaking change that might affect application code as nodes are no longer available from internal and experimental APIs until after changes have been applied. This can usually be worked around by surrounding code with such dependencies in a
SideEffect
composable to defer execution of the code until after the nodes have been created and initialized. ( I018da )
تغییرات API
- Added Modifier.focusOrder() that can be used to specify a custom focus traversal order ( I90cf5 , b/175899543 , b/170155556 , b/170155429 )
- Removed deprecated focusObserver use onFocusChanged or onFocusEvent instead ( I3ecb9 , b/175156387 )
- EditOperations API Changes
- Renamed EditOperation as EditCommand
- Added Command suffix for EditOperation concrete implementations
- EditCommand's are no longer data classes
- Renamed EditOperation.process function to applyTo
- Renamed InputEventListener to InputEventCallback
- ( I0a366 )
- Removed unused PxSquared, PxCubed, PxInverse. Changed Size.center() to be a property. ( I973f7 )
- ui-test module will now be able to configure the creation of Recomposers for UIs under test ( Ibebd8 )
- سرعت اصلاح شده برای داشتن قطعات مؤلفه و عملیات ریاضی. ( IB0447 )
- تغییر نام توسط
@ExperimentalTesting
به@ExperimentalTestApi
با حاشیه نویسی API آزمایشی مشابه ( IA4502 ، B/171464963 ) - Renamed Color.useOrElse() to Color.takeOrElse() ( Ifdcf5 )
- Removed unused DpInverse, DpSquared, and DpCubed classes. ( I4d62b )
- Constraints#satisfiedBy was renamed to isSatisfiedBy. ( I9cf5c )
- Add a callback to notify Owner when layoutnode bounds change. ( I72fd1 )
- Added isSpecified, isUnspecified, and useOrElse for inline classes with an Unspecified constant. ( I93f7b , b/174310811 )
Expand [Abstract]ComposeView APIs to allow recycling Compose-based views, disposing their composition to recreate again later. Add APIs for installing and discovering window-scoped Recomposers and CompositionReferences for creating child compositions.
Add ViewCompositionStrategy for configuring the composition disposal strategy of [Abstract]ComposeViews; default behavior is dispose on window detach. ( I860ab )
Removed Any.identityHashCode() public api ( I025d7 )
Removed toStringAsFixed API in favor of using String.format instead directly. ( Iaba6b )
ضامن را به رشته های بنیاد اضافه کنید. kt ( i4a5b7 ، b/172366489 )
NativeClass را به ماژول UI منتقل کرد و آن را داخلی کرد. کاربردهای به روز شده NativeClass در اجرای برابر برای استفاده از "MyClass" به جای آن است. ( i4f734 )
اصلاح کننده .focus () و اصلاح کننده .FocusRequester () کاهش می یابد. به جای آن از modifier.focusmodifier () و modifer.focusreference () استفاده کنید. ( i75a48 ، b/175160751 ، b/175160532 ، b/175077829 )
Introduced SelectionRegistrar.notifySelectableChange to notify Selectable updates to SelectionManager. ( I6ff30 , b/173215242 )
Introduced Outline.bounds property to obtain the bounding rect for various outline implementations. ( I16e74 , b/175093504 )
Deprecated TestUiDispatcher. Use Dispatchers.Main instead ( Ic171f , b/175385255 )
ImeOptions and KeyboardOptions are no more a data class ( I3c898 , b/168684531 )
VisualTransformation API Changes
- Renamed OffsetMap to OffsetMapping
- Renamed OffsetMapping.identityOffsetMap to OffsetMapping.Identity
- PasswordTransformation is no longer data-class
- Moved OffsetMapping to its own file
- ( I0bdf3 )
موقعیت به DPOFFSET تغییر نام داد و GetDistance () ( IB2DFD ) را حذف کرد
Changed fun Dp.isFinite() to a val Dp.isFinite ( I50e00 )
رفع اشکال
- Recomposer now exposes a Flow of its current state, allowing monitoring its activity and the activity of associated effects. ( Ifb2b9 )
- The native keyEvent can now be accessed through keyEvent.nativeKeyEvent ( I87c57 , b/173086397 )
-
animate()
اکنون باanimateAsState()
جایگزین شده است ، که به جایT
یکState<T>
برمی گرداند. این امر عملکرد بهتری را فراهم می کند ، زیرا دامنه بی اعتبار کردن می تواند به جایی که مقدار حالت خوانده می شود کاهش یابد. ( IB179E ) - API نقش معنایی را اضافه کنید و نقش را به عنوان یک پارامتر به کلیک ، قابل انتخاب و قابل جابجایی معناداری اضافه کنید. اصلاح کننده تغییر یافته. progressSemantics به طوری که کشویی نیز بتواند از آن استفاده کند. ( i216cd )
- New coroutine-based API
Animatable
that ensures mutual exclusiveness among its animations.- New DecayAnimationSpec to support multi-dimensional decay animation
- ( I820f2 , b/168014930 )
نسخه 1.0.0-alpha09
16 دسامبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
is released. نسخه 1.0.0-alpha09 شامل این تعهدات است.
تغییرات API
- Deprecated KeyEvent.Alt is now removed. Use KeyEvent.isAltPressed instead. ( Idd695 )
- Modifier.keyInputFilter and Modifier.previewKeyInputFilter are deprecated use Modifier.onKeyEvent and Modifier.onPreviewKeyEvent instead ( Idbf1b , b/175156384 )
- اصلاح کننده. FocusObserver مستهلک می شود. به جای آن از modifer.onfocuschanged یا modifer.onfocusevent استفاده کنید ( i30f17 ، b/168511863 ، b/168511484 )
- For suspending pointer input APIs, renamed HandlePointerInputScope to AwaitPointerEventScope and handlePointerInput() to awaitPointerEventScope(). ( Idf0a1 , b/175142755 )
- Autofill API اکنون API تجربی است و به Opt-In ( I0A1EC ) نیاز دارد
- Adding destructuring declarations to create FocuSRequester instances ( I35d84 , b/174817008 )
- AccessibilityLabel به ContentDescription تغییر نام داده است. AccessibilityValue به نسخه بیان شده تغییر نام داده است. ( i250f2 )
- Custom events were removed from suspending pointer input API ( Ia54d5 , b/175142755 )
- Introduced several new functions in SelectionRegistrar and also renamed onPositionChange to notifyPositionChange. ( Ifbaf7 )
- More members of LayoutNode we marked as internal ( I443c6 )
- LayoutInfo was introduced to be used by tooling and testing ( I9b190 )
- AndroidOwner made internal ( Ibcad0 , b/170296980 )
- Removed ExperimentalPointerInput annotation ( Ia7a24 )
- Nested scroll system added. Refer to Modifier.nestedScroll for more details ( I36e15 , b/162408885 )
- subcomposeInto(LayoutNode) was made internal ( Id724a )
The
Applier
interface has changed to simplify building trees bottom-up instead of top-down.The
insert()
method has been renamed toinsertTopDown()
.A new method,
insertBottomUp()
, was added.An applier either inserts nodes into the tree it is editing using
insertTopDown()
orinsertBottomUp()
depending on which performs better.Some trees, such as
LayoutNode
andView
, are much more efficient to build bottom-up than top-down. Prior to this change, a stack of inserts was required to implement bottom-up which needed to be copied to every applier which needed bottom-up construction for performance. With this change anApplier
overridesinsertBottomUp()
to build a tree bottom-up andinsertTopDown()
to build the tree top-down. ( Icbdc2 )Added dismissOnBackPress and dismissOnClickOutside properties to AndroidDialogProperties. These allow configuring when the dialog's onDismissRequest lambda will be invoked. ( If5e17 )
Added painterResource API to handle opaquely loading Painter objects from either rasterized asset formats (like PNGs) or VectorDrawables. Consumers no longer have to determine the type of asset in advance and can call this method to get a Painter object to use in Image composables or painter modifiers. ( I2c703 , b/173818471 )
اضافه شده اصلاح کننده. clearandsetsemantics برای پاک کردن معانی فرزندان و تنظیم موارد جدید. ( i277ca )
ContentDrawScope را به ماژول UI-Graphics منتقل کرد تا با DrawScope باشد. ( IEE043 ، B/173832789 )
Introduced PathEffect graphics API to provide different patterns to stroked shapes. Deprecated usage of NativePathEffect in favor of expect/actual implementation of PathEffect. ( I5e976 , b/171072166 )
Added IdlingResource interfaces to Compose, as a Compose supported variant of Espresso's idling resources. They can be registered and unregistered through the ComposeTestRule ( I433f3 )
Removed global (un)registration of ComposeIdlingResource and global (un)registration of clocks into ComposeIdlingResource ( I32660 )
رفع اشکال
- Lambdas در اصلاح کننده های افست اکنون به جای شناور ، بازگردانده می شوند. ( IC9EE5 ، B/174137212 ، B/174146755 )
Removed SlotTable, SlotReader and SlotWriter from the public API. These were marked as InternalComposeAPI previously. Now they are internal to the compose module.
CompositionData and CompositionGroup were added as a replacement for the ui-tooling API to use to extract composition information. These are public but are not intended for use outside the ui-tooling API as they provide the raw information the ui-tooling API interprets ( I31a9c )
Shaderbrush refactored برای تنبلی ایجاد یک نمونه سایه دار در هنگام اندازه گیری اطلاعات مربوط به محیط نقاشی. این برای تعریف شیب هایی که محدوده ترسیم کامل یک ترکیب در زمان ترکیب را اشغال می کنند ، بدون نیاز به پیاده سازی پیاده سازی های سفارشی DrawModifer مفید است.
API های سازنده عملکرد شیب دار به نفع روش های کارخانه بر روی یک شیء شیب. ( i511fc ، b/173066799 )
LazyColumnfor ، Lazyrowfor ، LazyColumnforeDexed و LazyrowforeDexed را کاهش دهید. به جای آن از LazyColumn و Lazyrow استفاده کنید ( i5b48c )
Deprecated BuildCompat.isAtLeastR ( Idb37e )
Added buildAnnotatedString factory function in order to build an AnnotatedString. Deprecated annotatedString builder function. ( Idfe0b )
Removed extension methods on Float and Double to convert values to radians. Moved to be a private function within the implementation PathParser which was the only place where it was used ( I25f52 )
نسخه 1.0.0-alpha08
2 دسامبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
is released. نسخه 1.0.0-alpha08 شامل این تعهدات است.
تغییرات API
- اضافه کردن اقدام معنایی را برکنار کنید ( I2B706 )
- API های DrawModifier را از بسته androidx.compose.ui به بسته androidx.compose.ui.draw منتقل کنید. پرونده drawmodifierdeprecated.kt ایجاد شده است تا شامل روشهای تایپی و یاور برای کمک به مهاجرت از مستهلک به API های فعلی باشد. ( id6044 ، b/173834241 )
- تغییر نام نام توسط modifer.drawlayer به اصلاح کننده. graphicslayer همچنین کلاس های مرتبط را به روزرسانی در هر بازخورد API به GraphicsLayer به روز کرد. ( i0bd29 ، b/173834241 )
- New methods placeable.placeWithLayer() and placeable.placeRelativeWithLayer() were added which allows custom layouts and layout modifiers to place a child with introducing a graphics layer for their drawing. Having that we can first optimize redrawings, so when we need to move a child we don't have to redraw its content, second we can apply draw transformations for a child ( Ibd8f6 , b/170296989 , b/171493718 , b/173030831 )
-
<T>
از اعلامیه SubComposeLayout حذف شد. اکنون می توانید از آن استفاده کنید بدون اینکه یک نوع را مشخص کنید. ( IB60C8 ) - اصلاح کننده اضافه شده است.
- تغییر نام به
Modifier.drawOpacity
بهModifier.alpha
-
Modifier.drawShadow
بهModifier.shadow
( I264CA ، b/173208140 )
- تغییر نام به
- Made PointerInputData's uptime and position fields non-nullable. ( Id468a )
- MaterialTheMe اکنون رنگهای صحیح را برای دستگیره های انتخاب و پس زمینه انتخاب تنظیم می کند. برنامه های غیر مادی می توانند به صورت دستی از AmbientTextSelectionColors برای سفارشی کردن رنگ های مورد استفاده برای انتخاب استفاده کنند. ( i1e6f4 ، b/139320372 ، b/139320907 )
- Added WindowManager.isWindowFocused to check if the host window is in focus, and a WindowFocusObserver that provides an onWindowFocusChanged callback. ( I53b2a , b/170932874 )
- Updated TransformOrigin API to have destructuring syntax to return
pivotFractionX
andpivotFractionY
ascomponent1
andcomponent2
( If43c4 , b/173586560 ) - اضافه شده برای نامگذاری و موقعیت پارامتر Lambda ، برای بررسی سازگاری با دستورالعمل های آهنگسازی ، بررسی اضافه شده است. با توجه به بررسی و راهنمایی ، برخی از API ها را با استفاده از
children
به عنوان نام لامبدا دنباله دار خود بهcontent
مهاجرت کردند. ( IEC48E ) - Added API to check if Alt, Ctrl, Meta or Shift modifier keys were pressed when a keyevent was dispatched. ( I50ed9 )
- Added a new
Modifier.drawLayer()
overload. It takes a lambda block on a new GraphicsLayerScope where you define the layer parameters in a way which allows to skip recomposition and relayout when the state change happens. DrawLayerModifier is now internal in preparation to migrating its logic into placeable.placeWithLayer() method of LayoutModifier ( I15e9f , b/173030831 ) - Deprecated Ambients named with
Ambient
as their suffix, and replaced them with new properties prefixed with Ambient, following other Ambients and Compose API guidelines. ( I33440 ) - Moved
androidx.compose.ui.text.Typeface
toandroidx.compose.ui.text.font.Typeface
( Ic2b81 ) - Semantics argument mergeAllDescendants was renamed to mergeDescendants. ( Ib6250 )
- New drag gesture detector suspending pointer input API, including orientation locking. ( Icef25 )
- Renamed VectorAsset to ImageVector Moved and renamed VectorAsset to Builder to be an inner class of ImageVector as per API guidelines. اضافه شده typealias از VectorAssetBuilder به پیوند به ImageVector.Builder برای سازگاری. ( ICFDC8 )
- تغییر نام به ImageAsset و روش های مرتبط به ImageBitmap. ( IA2D99 )
- Add zIndex param for the PlacementScope's place() so Modifier.zIndex() now works as a LayoutModifier and any custom layout can set zIndexes for their children right in the placement block ( I711f7 , b/171493718 )
- ویژگی های معنایی بنیاد به UI ( I6F05C ) منتقل شده است
- Deprecate place(Offset) and placeRelative(Offset). Use overloads with int offsets instead ( I4c5e7 )
- Previously Deprecated APIs were removed: Modifier.onPositioned was removed, use Modifier.onGloballyPositioned. Modifier.onDraw was removed, use Modifier.onDrawBehind. Modifier.plus was removed, use Modifier.then. Color.Unset was removed, use Color.Unspecified. PxBounds class was removed, use Rect instead. ( Ie9d02 , b/172562222 )
- The Alignment interface was updated and made functional. ( I46a07 , b/172311734 )
- Gesture detector for tap, double-tap, long press, and press indication were added using the new suspending pointer input. A few utilities were added as well, making it easier for developers to write their own gesture detectors. ( I00807 )
-
id
was renamed tolayoutId
forLayoutIdParentData
.Measurable.id
was renamed toMeasurable.layoutId
. ( Iadbcb , b/172449643 ) - New multitouch gesture detector, including helpers for detecting rotation, zoom, and panning. ( Ic459d )
- API های SweepgradientShader و SweepgradientBrush را معرفی کرد. ( IA22C1 )
- Time control in tests (TestAnimationClock and its usages) is now experimental ( I6ef86 , b/171378521 )
Add coroutine-based scrolling APIs:
Adds LazyListState.snapToItem and LazyListState.smoothScrollBy, as well as lower-level APIs for scroll control. These APIs provide a suspend interface to control scrolling that waits until the scroll is finished before returning. ( Ie5642 )
Modifier.focusable has need added in foundation. Use this to add focusable behavior to a component, with correct semantics and accessibility. ( I41eb9 , b/152525426 , b/162865824 )
Provide default implementations of methods and properties in AnimationClockTestRule that can be delegated to its
clock
( I7ea3d , b/173399709 )AndroidComposeTestRule can now accept custom activity launchers ( Ib8288 , b/153623653 , b/154135019 )
TextLayoutResult.getLineVisibleEnd is deprecated. As a replacement TextLayoutResult.getLineEnd now has a new parameter visibleEnd. ( I73282 )
Updated TextFieldValue API
- made TextFieldValue.composition readonly
- removed exception thrown for invalid selection range ( I4a675 , b/172239032 )
Support TtsAnnotation for text to speech engine. ( I54cc6 )
New APIs for running animations in coroutines ( Ied662 )
رفع اشکال
- پارامتر تراز جعبه به Contentalignment تغییر نام داد. ( I2C957 )
- اصلاح کننده های OffsetPx به جبران تغییر نام دادند. آنها اکنون به جای دولت پارامترهای لامبدا را می گیرند. ( IC3021 ، B/173594846 )
- Added resetInput parameter to TextInputService#onStateUpdated ( I3e8f5 , b/172239032 , b/171860947 )
- اضافه کردن لینت برای پارامترهای اصلاح کننده در توابع سازنده. This lint check checks the naming, return type, default value, and order of the parameter for consistency with Compose guidelines. ( If493b )
- Temporarily added option to let the TestAnimationClock be driven by the MonotonicFrameClock ( I1403b , b/173402197 )
- Added Android Typeface wrapper. You can load an Android Typeface via
typeface
function ietypeface(Typeface.DEFAULT)
. Also renamedtypefaceFromFontFamily()
totypeface()
( I52ab7 ) - Added lint check to check that Modifier factory functions are defined as extensions on Modifier, so they can be fluently chained together. ( I07981 )
- Remove old ui-test module and its stubs ( I3a7cb )
- Recomposer no longer accepts an EmbeddingContext; required scheduling dependencies are obtained from the effectCoroutineContext. FrameManager is deprecated; platform integrations should initialize their own global snapshot handling. ( I02369 )
- Pass style information to accessibility node. ( If5e8d )
- TextUnit.Inherit is renamed to TextUnit.Unspecified for consistency with other units. ( Ifce19 )
Compose UI Version 1.0.0-alpha07
11 نوامبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
is released. Version 1.0.0-alpha07 contains these commits.
تغییرات API
- Introduced ScaleFactor inline class to represent scale factors for the horizontal and vertical axes independent of one another in order to support non-uniform scaling use cases.
- Added computeScaleFactor method to ContentScale
- Added ContentScale.FillBounds to perform non-uniform scaling to stretch the src bounds to fully occupy the destination.
- Added operator methods to compute ScaleFactor parameters with Size parameters.
- ( Ic96a6 , b/172291582 )
- The BiasAlignment and BiasAbsoluteAlignment factories for creating Alignments were added. ( Iac836 , b/169406772 )
- Allow a developer to forcefully clear focus. ( I90372 )
- A bug causing elevation not being drawn for Views inside Compose was fixed. ( If7782 )
- Created onDrawBehind API within ContentDrawScope to match naming convention with Modifier.drawBehind. ( I4fc3a , b/171955269 )
- Add support for camera distance to complement 3d transformations rotationX/rotationY on layer APIs. ( I40213 , b/171492100 )
- Added SelectionContainer without the callback ( Ibfadb )
- ExperimentalSubcomposeLayoutApi annotation was removed. SubcomposeLayout can now be used without adding @OptIn ( I708ad )
- FirstBaseline and LastBaseline were moved to androidx.compose.ui.layout package ( Ied2e7 )
- Removed opacity from drawShadow() modifier as it was confusing. ( I82c62 , b/171624638 )
- MeasureResult was moved out of MeasureScope. ( Ibf96d , b/171184002 )
- Several layout related symbols were moved from androidx.compose.ui to androidx.compose.layout.ui. ( I0fa98 , b/170475424 )
- Removed Deprecated FocusState2 ( I686cb , b/168686446 )
- ZIndexModifier is now internal ( I1808b , b/171493718 )
- Updated return type of lerp method on Size parameters to return a non-null Size to avoid unnecessary boxing. ( Ib0044 )
- Added TestMonotonicFrameClock for testing code that relies on Compose's MonotonicFrameClock for awaiting composition frame events using kotlinx-coroutines-test's runBlockingTest ( I4402f )
- Removed GestureScope.localToGlobal ( I15299 , b/171462785 )
- Added
onAllNodesWithSubstring
finder ( I81dd7 , b/171462889 ) - androidx.ui.test module deprecated. Please migrate to androidx.compose.ui.test and androidx.compose.ui.test.junit4 ( I452e8 )
رفع اشکال
- captureToBitmap moved to captureToImage. ( I86385 )
- foundation.Text has been deprecated and replaced with material.Text. For a basic, unopinionated text API that does not consume values from a theme, see androidx.compose.foundation.BasicText. ( If64cb )
- Update TextFields to accept KeyboardOptions ( Ida7f3 )
- Rename KeyboardOptions as ImeOptions ( I82f36 )
- Moved KeyboardType and ImeAction into KeyboardOptions ( I910ce )
- provideDefault was added as an alternative for providing ambients, and it can be used to specify ambient values that will only be set when there is no ambient value already provided. ( Id6635 , b/171024925 )
- BaseTextField has been deprecated. Use BasicTextField instead. ( I896eb )
- Introduce ui-test-junit4 module ( Ib91f8 )
-
relativePaddingFrom
was renamed topaddingFrom
. ThepaddingFromBaseline
modifier was added, as convenience for specifying distances from layout bounds to text baselines. ( I0440a , b/170633813 ) - LaunchedTask was renamed to LaunchedEffect for consistency with the SideEffect and DisposableEffect APIs. LaunchedEffect with no subject params is not permitted in order to encourage best practices. ( Ifd3d4 )
- Introduced resources composable that recomposes when the configuration updates. ( I6387c , b/167352819 )
- Recomposer now requires a CoroutineContext at construction ( Ic4610 )
- Sum
zIndex
values when multipleModifier.zIndex()
applied. Previously the first one was winning. ( Ic514c , b/170623936 ) - Changes to the internal SlotTable implementation which should not affect the public API. ( If9828 )
- Added Keyboard auto correct IME Option ( I57b8d )
- androidx.ui.test moved to androidx.compose.ui.test ( I9ffdb )
- Removed KeyboardOptions.toImeOptions from public API. ( Ic2e45 )
مشارکت خارجی
- Disabled publication of internal artifact androidx.compose.ui:ui-text-android ( Ib93fa )
Version 1.0.0-alpha06
28 اکتبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
is released. Version 1.0.0-alpha06 contains these commits.
تغییرات API
- Recomposer is now a CompositionReference and a valid composition parent. Explicit Recomposer is now required in fewer places. ( I4036f )
- Deprecate VectorPainter in favor of rememberVectorPainter to better indicate that the composable API internally leverages 'remember' to persist data across compositions. ( Ifda43 )
- Updated Modifier.drawWithCache API to expose ContentDrawScope as a receiver scope instead of DrawScope in order to provide implementations the ability to re-order drawing commands. This is useful for blending/ tinting use cases in which content pixels must be rendered first in order for the corresponding blend mode algorithm to be applied properly. ( Ie7ec8 )
- Move SimpleContainer into PopupTestUtils.kt ( I78c57 )
- ConsumedData is no longer a data class. See https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 for details ( I1737f )
- Fix Rtl Handle Position. ( I6e1e0 )
- Refactored DrawScope and ContentDrawScope to be interfaces instead of abstract classes
- Created CanvasDrawScope implementation of DrawScope
- Refactored implementations of DrawScope to use CanvasScope instead
- Created DrawContext to wrap dependencies for DrawScope
- Removed deprecated methods on DrawScope ( I56f5e )
- Breaking change: removed the return value from
PointerInputFilter.onPointerEvent(...)
given that the only value that should be able to be changed in pointer events is consumption data. Instead of returning data fromPointerInputFilter.onPointerEvent(...)
, now you can just mutate the consumption data of the PointerEvents passed in. ( I6acd0 ) - MeasureScope and IntrinsicMeasureScope were made interfaces. ( I1a087 , b/170461665 )
- The merge function for AlignmentLine was hidden. ( I9da1a , b/170612900 , b/170611568 )
- Add ability to specify inspector info in composed modifier ( Idee08 , b/163494569 )
- Added SelectAll option into selection menu ( Ief02b )
- Updated DrawTransform.rotate to take a default pivot parameter of center to match the documentation.
- Updated DrawScope.rotateRad to consume an Offset for the pivot point to match other transformation methods.
- Deprecated DrawScope.rotateRad overload that consumed floats for the x and y coordinate of the pivot.
- ( Iffcbb , b/170434992 )
رفع اشکال
- API lint check for MissingGetterMatchingBuilder is enabled for androidx ( I4bbea , b/138602561 )
- Add test. ( I6b8ae )
- Enable transitions in ComposeTestRule; remove option to enable the blinking cursor from ComposeTestRule. ( If0de3 )
- Added KeyboardCapitalization IME Option ( I8ac38 )
- Added single line keyboard option to CoreTextField ( I72e6d )
- Move SimpleContainer into PopupTestUtils.kt ( I65c3e )
- Renamed Radius API to CornerRadius to better express how it is used throughout Compose. Updated documentation to indicate that negative corner radii are clamped to zero. ( I130c7 , b/168762961 )
- Improved Android interop by continuing to send MotionEvents to child Android Views that return false for onTouchEvent for all actions except
ACTION_DOWN
( I94c5a , b/170320973 ) - Box was made an inline function. ( Ibce0c , b/155056091 )
مشارکت خارجی
- Support different locales for
AnnotatedString.capitalize
andAnnotatedString.decapitalize
( I4aa7f )
Version 1.0.0-alpha05
14 اکتبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha05
is released. Version 1.0.0-alpha05 contains these commits.
تغییرات API
- Add a DSL for specifying inspector information ( Ic9a22 )
- Move LongPress into Text. ( Iff2bc )
- Experimental Modifier.pointerInput suspending input modifier ( Ia77d2 )
- Added Copy/Paste/Cut accessibility actions ( I6db4f )
- Public constructor for AndroidOwner was removed ( Iacaef )
- Popups and dialogs now inherit FLAG_SECURE from parent Window. Also added option to configure this explicitly ( I64966 , b/143778148 , b/143778149 )
Consumption data is now mutable. Also calls to extension functions that do consumption now no longer return a new PointerInputChange, but instead mutate the provided PointerInputChange.
This is the first step in a 2 step process to make PointerEvent data mutable such that other pointer data cannot be edited by user code. The second step will be to remove the
List<PointerInputChange>
return type fromPointerInputFilter.onPointerEvent(...)
. ( Id067e )Disable Selection in Text, and a Demo. ( Ie7e97 )
Made onGloballyPositioned an inline function ( I15830 )
OnPositionedModifier is renamed to OnGloballyPositionedModifier and onPositioned() is renamed to onGloballyPositioned(). ( I587e8 , b/169083903 )
The hasPendingMeasureOrLayout property was added to Owner, telling whether the Owner has any pending layout work. ( I3d9f8 , b/169038599 )
Added API to programmatically clear focus ( Ie1dc2 , b/161487952 )
Removed
PointerInputFilter.onPointerInput(...)
.PointerInputFilter.onPointerEvent(...)
should be used in its place. ( I6f04a )Changes to Size
- Removed Size.getFlipped
- Removed Size.rem
- Removed Size.truncDiv ( Ief44d , b/169790720 )
As part of the standardization of sentinel values for inline classes, rename Color.Unset to Color.Unspecified for consistency with other inline classes ( I97611 , b/169797763 )
TextOverflow.None is introduced. When overflow is None, Text won't handle overflow anymore, and it will report its actual size to LayoutNode. ( I175c9 , b/158830170 )
The scope parameter within AnnotatedString.Builder.addStringAnnotation is renamed to tag for API consistency. ( I7c8cb )
رفع اشکال
- The scrolling performance of LazyColumn/Row is improved by doing less work in subcomposition on every scroll. The new hasInvalidations() method was added for Composition class. hasPendingChanges() method from Recomposer was renamed to hasInvalidations() ( Ib2f32 , b/168293643 , b/167972292 , b/165028371 )
- Updated Size.Unspecified parameters to be Float.NaN instead of Float.POSITIVE_INFINITY. Updated Painter implementations to check against Size.Unspecified as well as non-finite Sizes. ( I95a7e )
- The order of place() calls in custom Layouts now defines the drawing order for the children ( Ibc9f6 )
- Support AnnotatedString to SpannableString conversion for accessibility. ( Ief907 )
- Added stubs for android classes that are on older platforms to avoid use of reflection when possible. ( Ia1790 )
- Fixed bug: If the software keyboard showing caused the app to translate, pointer input coordinates would become incorrect. ( Ic4cec , b/163077821 )
Version 1.0.0-alpha04
1 اکتبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
is released. Version 1.0.0-alpha04 contains these commits.
تغییرات API
- Added OwnerScope to allow collection of layout and drawing observation scopes once they are no longer valid. ( Ic4cf8 )
- Added OnRemeasuredModifier and onSizeChanged() to receive a callback when content layout has been remeasured and the size has changed, respectively. ( I657cf , b/154108792 )
- Add long click semantics action ( I6281b , b/156468846 )
- Made FocusManager private. ( I7872f )
Updated implementation to create a dedicated DrawCacheModifier implementation instead of adding optional properties on DrawModifier.
Updated documentation for various methods ( Ibd166 )
Make TextRange inline to avoid object creation. ( Id034b )
PlacementScope#parentWidth and PlacementScope#parentLayoutDirection can no longer be read from the placement block of a custom layout. ( Icc1ae , b/168295623 )
add AccessibilityScrollState to semantics properties. ( Ifeda9 )
Introduced Modifier.drawWithCache to support creating a drawing object that conditionally recreates dependencies that depend on size/state information ( I376dc )
ParagraphConstraints is removed. Width is directly passed to Paragraph now. ( Ica712 )
رفع اشکال
- Updated many Graphics APIs
- Updated scale and rotation transformation APIs to consume a single Offset parameter to represent the pivot coordinate instead of separate float parameters for the x/y coordinates in DrawScope and DrawTransform
- Removed Rect.expandToInclude and Rect.join methods
- Updated Radius documentation to say oval in addition to elliptical
- Added documentation to indicate the public constructor for the inline Radius class is not to be called directly but instead Radius objects should be instantiated through their function constructors
- Removed RoundRect APIs to query topRight, bottomRight, bottomCenter, etc.
- Deprecated Rect.shift in favor of Rect.translate
- Removed RoundRect.grow and Rect.shrink APIs
- Renamed RoundRect.outerRect to Rect.boundingRect
- Removed RoundRect.middleRect/tallMiddleRect/wideMiddleRect and Rect.isStadium methods
- Renamed RoundRect.longestSide to RoundRect.maxDimension
- Renamed RoundRect.shortestSide to RoundRect.minDimension
- Changed RoundRect.center to be a property instead of a function
- Updated RoundRect constructor to consume Radius properties instead of individual parameters for x/y radius values
- Removed Size APIs that assumed it was a Rectangle with origin at 0,0
- Added a destructing API to Radius
- Migrated various RoundRect extension functions to be properties instead
- ( I8f5c7 , b/168762961 )
- foundation.Box was deprecated. Please use foundation.layout.Box instead. ( Ie5950 , b/167680279 )
- Stack was renamed to Box. The previously existing Box will be deprecated in favor of the new Box in compose.foundation.layout. The behavior of the new Box is to stack children one on top of another when it has multiple children - this is different from the previous Box, which was behaving similar to a Column. ( I94893 , b/167680279 )
- Box decoration parameters have been deprecated. If you want to have decorations/padding on your box, use Modifiers instead (Modifier.background, Modifier.border, Modifier.padding) ( Ibae92 , b/167680279 )
- Updated many Graphics APIs
- Updated DrawScope APIs with scoped transformation methods to indicate that the transformation is only applied within the callback and removed after the callback is invoked
- Updated clipPath documentation to refer to Path instead of rounded rectangle
- Fixed spacing in documentation for right parameter in clipPath
- Renamed DrawScope.drawCanvas to drawIntoCanvas and removed size parameter
- Renamed dx/dy parameters in inset method to horizontal and vertical
- Added inset overload that provides the same inset value to all 4 bounds
- Removed documentation on inset method indicating that inset would be applied to all 4 sides
- Updated documentation for Rect class
- Updated comments on Rect parameters to match kdoc style
- Removed Rect.join and Rect.expandToInclude
- Created overload for Rect.translate(offset) and deprecated Rect.shift
- ( If086a , b/167737376 )
- Annotated rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled and textInputServiceFactory with @VisibleForTesting, make them internal API and hide their kdoc ( I554eb , b/168308412 )
- Remove SelectionContainer from the Top to disable default selection and avoid unexpected behavior. One can specifically use a SelectionContainer to wrap the content that needs to be selectable instead. ( I8dfe0 , b/158459594 )
Version 1.0.0-alpha03
16 سپتامبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha03
is released. Version 1.0.0-alpha03 contains these commits.
تغییرات API
- Remove scroll forward/backward semantics actions. Added steps in AccessibilityRangeInfo. ( Ia47b0 )
- Removed
onInvalidate()
fromOwner
--OwnedLayer
handles invalidation. ( Ica72b , b/162061312 ) Removed operator methods on Size API that consume Offset parameters. The result of these operations is unclear and the type of result is unexpected for these. مثال should size - offset return an offset or a size result with the difference?
Also removed deprecated methods on Size class. ( Iec902 , b/166514214 )
رفع اشکال
- Fix for items of LazyColumn being incorrectly drawn sometimes, this was also causing crashes in some conditions. ( Ibcf17 , b/163066980 , b/165921895 )
- DpConstraints and APIs using it were deprecated. ( I90cdb , b/167389835 )
- Moved
createAndroidComposeRule
andAndroidInputDispatcher
fromandroidx.ui.test.android
toandroidx.ui.test
( Idef08 , b/164060572 ) - Usages of gravity were consistently renamed to align or alignment in layout APIs. ( I2421a , b/164077038 )
- Added onNode and other global methods on ComposeTestRule as the current global ones are going to be deprecated. ( Ieae36 )
نسخه 1.0.0-alpha02
2 سپتامبر 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
is released. Version 1.0.0-alpha02 contains these commits.
تغییرات API
- remove callback to notify Owner when layoutnode bounds change. ( If654e , b/166106882 )
- Added support for filltype parameters on vector graphics paths to support cutouts of shapes according to evenOdd or NonZero path fill rules. ( I43dd2 )
- Uptime and Velocity are now inline classes ( I48f4a )
- Duration is now an inline class ( I565eb )
- Add a callback to notify Owner when layoutnode bounds change. ( Ic40b3 )
Fixed issue where Rect function constructor with Offset and radius would create the Rect in the order of left, right, top, bottom instead of left, top, right, bottom.
Removed deprecated companion methods on Rect in favor of function constructors.
Added tests to verify methods in Rect.kt ( I08460 , b/165822356 )
رفع اشکال
- Added MutableRect, a rectangle that can be modified. ( I71bd2 , b/160140398 )
- Matrix4 was replaced with Matrix. All other parts of vectormath package have been removed. ( Ibd665 , b/160140398 )
The calling convention for composable functions has changed. This is a binary breaking change. All libraries must be recompiled to work with this version of the compose compiler plugin.
This change does not create a source level breaking change as the only APIs that have changed are compiler APIs that have an explicit opt in. ( I7afd2 , b/158123185 )
Fixed crash that could occur when dispatch to a PointerInputFilter could cause the PointerInputFilter to be synchronously removed. ( I58f25 )
نسخه 1.0.0-alpha01
26 آگوست 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
is released. نسخه 1.0.0-alpha01 حاوی این commit ها است.
Version 0.1.0-dev
Version 0.1.0-dev17
19 آگوست 2020
androidx.compose.ui:ui-*:0.1.0-dev17
is released. Version 0.1.0-dev17 contains these commits.
تغییرات API
-
emitView
was deprecated. UseAndroidView
instead if possible for emitting Views inside Compose. Note that composing Views and ViewGroups directly will not be supported in the future unless these are leaves in the composition tree, case when this can be achieved using AndroidView. ( I29b1e , b/163871221 ) -
FocusState2
is deprecated and replaced byFocusState
( Ia8b79 , b/160822876 , b/160923332 ) - The deprecated AndroidView overloads were removed. ( I946b9 , b/163802393 )
- Custom emits can now declare that one or more of its setters can be skipped and recomposed independently of the emit. ( Ibbd13 )
Changed Vector classes to no longer be data classes as the same object instance is used for composition.
Added mutableStateOf flag for VectorPainter to conditionally re-draw if contents of the vector change.
Refactored VectorComponent instance to be part of VectorPainter as it is re-used across compositions.
Updated GroupComponent and PathComponent to have their name fields be mutable ( Ieae45 , b/151378808 )
Removed
onChildPositioned
andOnChildPositionedModifier
. Developers should useonPositioned
andOnPositionedModifier
on the child layout instead. ( I4522e , b/162109766 )Offset has become an inline class ( Iaec70 )
Added a modifier param to SelectionContainer ( I4aada , b/161487952 )
Removed deprecated FocusModifier ( I0b4ba , b/160922116 , b/160821157 , b/162441435 , b/160822875 , b/160921940 )
Added
mergePolicy
lambda toSemanticsPropertyKey
. This can be used to define a custom policy for mergeAllDescendants semantics merging. The default policy is to use the parent value if already present, otherwise the child value. ( Iaf6c4 , b/161979921 )Constraints is now an inline class ( I88736 )
Added FocusManager that moves common focus logic out of AndroidComposeView ( I528ef , b/161487952 , b/162206799 )
Updated PointerEventPass names for Alpha release. ( Ifda6f )
IntOffset is now an inline class ( Iac0bf )
IntSize is now an inline class ( I2bf42 )
PlacementScope.placeAbsolute()
was renamed toPlacementScope.place()
, and the previousPlacementScope.place()
was renamed toPlacementScope.placeRelative()
. As a result, thePlacementScope.place()
method will not automatically mirror the position in right-to-left contexts anymore. If this is desired, usePlacementScope.placeRelative()
instead. ( I873ac , b/162916675 )AlertDialog now uses FlowRow for buttons ( I00ec1 , b/161809319 , b/143682374 )
Made some test utilities non public because they are not where they belong. Will be made public in the future. ( I32ab1 )
Refactored organization of pointer input code. ( Ie3f45 )
Deprecated PxBounds in favor of Rect. Updated all usages of PxBounds with rect and added proper deprecate/replace with annotations to assist with the migration. ( I37038 , b/162627058 )
Removed Deprecated KeyEvent2. Use KeyEvent instead. ( Ied2d0 , b/162097587 )
KeyEvent has a unicode property that can be used to get the unicode character generated by the specified key and meta key state combination ( If3afc )
Made the DelayUp custom event and related classes an opt in API as it is very likely going to be changed. ( I56d6f )
Removed 2 PointerEventPasses that are no longer needed. ( I3dd9d )
Add parameter color, shadow and TextDecoration to Paragraph.paint This function is useful to avoid unnecessary Paragraph recreation. ( I81689 )
رفع اشکال
- Removed onFocusChanged callbacks from TextField. Use Modifier.focusObserver instead. ( I51089 , b/161297615 )
- Modifier.drawBorder has been deprecated. Use Modifier.border instead. Border data class has been replaced by BorderStroke ( I4257d , b/158160576 )
Removed deprecated FrameManager calls.
Internal compose APIs have been changed to reduce the amount of overhead to track state objects such as
mutableStateof()
( I80ba6 )VerticalScroller and HorizontalScroller have been removed. Use ScrollableColumn/Row instead. Modifier.drawBackground has been removed. Use Modifier.background ( I73b0d , b/163019183 )
Crash when something which saves the state was used inside the for loop is fixed. Now having the same key in savedInstanceState() is allowed, api of UiSavedStateRegistry is now adjusted to this new requirement ( I4ab76 , b/160042650 , b/156853976 , b/159026663 , b/154920561 )
The
state { ... }
composable is now deprecated in favor of explicit calls toremember { mutableStateOf(...) }
for clarity. This reduces the overall API surface and number of concepts for state management, and matches theby mutableStateOf()
pattern for class property delegation. ( Ia5727 )Renamed RRect to RoundRect to better fit compose naming patterns Created similar function constructors to RRect and deprecated RRect function constructors ( I5d325 )
Version 0.1.0-dev16
5 آگوست 2020
androidx.compose.ui:ui-*:0.1.0-dev16
is released. Version 0.1.0-dev16 contains these commits.
تغییرات API
- OnChildPositioned has been deprecated. Use OnPositioned on the child instead. ( I87f95 , b/162109766 )
- setViewContent was deprecated. setContent should be used instead. ( I7e497 , b/160335130 )
- Added the AndroidViewBinding API for inflating and composing layout resources, based on ViewBinding. ( I081c6 )
- KeyEvent2 is replaced by KeyEvent ( I2d770 , b/162097585 )
- Added support for Alt hardware key ( I9036b )
- FocusManager is Deprecated. Use Modifier.focus(), Modifier.focusObserver() and Modifier.focusRequester() instead. ( I74ae4 , b/162211322 )
- loadVectorResource supports trimPath attributes ( I808fe )
- Move dialog to ui ( I47fa6 )
- Removed 2 PointerEventPasses that are no longer needed. ( I33ca7 )
- Implemented PointerInteropModifier which provides the ability to receive MotionEvents and interact with Compose as if you are an implementation of an Android View. ( Ieb08c )
- Removed the deprecated tag modifier. Please use layoutId instead. ( Idaa05 , b/162023919 )
- The APIs for right-to-left support has been updated. LayoutDirectionAmbient has been added, which can be used to read and change the layout direction. Modifier.rtl and Modifier.ltr have been removed. ( I080b3 )
- Support path trimming in vector graphics ( Ie16c9 , b/158188351 )
- Added Modifier.layout() that allows to create a custom layout modifier conveniently ( I73b69 , b/161355194 )
- Added a new AndroidView API and deprecated the existing ones. ( I5bcfd )
- Modifier.plus has been deprecated, use Modifier.then instead. 'Then' has a stronger signal of ordering, while also prohibits to type
Modifier.padding().background() + anotherModifier
, which breaks the chain and harder to read ( Iedd58 , b/161529964 ) - Add [Abstract]ComposeView View subclasses for hosting Compose content in a View hierarchy. ( I46357 )
-
Row
andColumn
are now inline function significantly reducing the overhead of using them. ( I75c10 ) - SubcomposeLayout is added. It is a low level primitive which allows to compose the children during the measuring if we want to use some values available only later during the measure for the subtree composition. For example WithConstraints is not implemented using SubcomposeLayout. ( I25cc8 )
- Added
SemanticsNode.positionInRoot
to get the position of a SemanticsNode relative to the root of the Compose hierarchy ( Icdf26 , b/161336532 ) - MotionEvents passed all the way through from Android, into Compose, and back into Android. ( I14be8 , b/158034713 )
- Removed dropdownPopup. ( I00430 )
- Fixed popup position on cut-out displays. ( Idd7dd )
- Add accessibility action to get TextLayoutResult ( I9d6e6 )
- RemeasurementModifier added. it allows to synchronously remeasure the layout. In general you never need it as remeasure/relayout is happening automatically, but we use it inside LazyColumnItems during the scroll. ( I5f331 , b/160791058 )
- Remove getLineEllipsisOffset/getLineEllipsisCount. Use getLineVisibleEnd/getLineEnd/isLineEllipsized instead. ( I85aa2 )
- Add some Marks/Annotations for best practice reason. ( I66b20 )
- expose more line APIs in TextLayoutResult. ( I79bd2 )
- Built-in vector converters to convert built-in units are now accessible via Foo.VectorConverter. eg Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter, etc ( I3e273 )
رفع اشکال
- Address broad API fixes ( I077bc )
- Remove unused OffsetBase interface
- Align Offset and IntOffset classes to have a consistent API surface
- Rename IntOffset.Origin to IntOffset.Zero to be consistent with Offset API
- Moved nativeCanvas method off of Canvas interface to support consumers to create their own Canvas instances
- Created stub EmptyCanvas class to refactor DrawScope to be a non-null parameter instead of lateinit and ensure non-nullability of the field
- Renamed ClipOp enums to be Pascal Case
- Renamed FilterQuality enums to be Pascal Case
- Renamed StrokeJoin enums to be Pascal Case
- Renamed PointMode enums to be Pascal Case
- Renamed PaintingStyle enums to be Pascal Case
- Renamed PathFillType enums to be Pascal Case
- Renamed StrokeCap enums to be Pascal Case
- Updated DrawCache implementation to no longer use lateinit params
- Updated DrawScope to no longer use lazy delegation for fillPaint and strokePaint internal parameters
- Updated Image composable to avoid Box usage for less overhead
- Updated Outline class to have @Immutable annotations
- Updated PathNode to have @Immutable annotations for each path instruction
- Updated Vector subcomposition to remove redundant conditional checks for equality as compose already handles them
- Deprecated Rect companion constructor methods in favor of function constructors
- Updated Brush classes and function constructors with @Immutable and @Stable APIs
- Updated VertexMode enum to be PascalCase
- Updated DrawScope selectPaint method to conditionally overwrite stroke parameters on the paint if they have changed
- Updated Size to add destructuring API, rename UnspecifiedSize to Unspecified and removed unused methods
- Updated compose BlendMode API consumption to properly map between Android framework BlendModes and PorterDuff modes depending on API level. Introduced BlendMode#isSupported API to act as a capability query to determine if the BlendMode is supported on the device before it is used. ( I0ef42 )
- LazyItemScope was added for itemContent param of Lazy lists. It provides modifiers to fill the parent max size which solves the use case when the item should fill the viewport and the regular Modifier.fillMaxSize() doesn't work as the item is measured with infinity constraints. ( Ibd3b2 , b/162248854 )
- Removed
SemanticsNodeInteraction.performPartialGesture
. UseSemanticsNodeInteraction.performGesture
instead. ( Id9b62 ) -
LazyColumnItems
was renamed toLazyColumnFor
.LazyRowItems
was renamed toLazyRowFor
( I84f84 ) -
foundation.shape.corner
package was flattened tofoundation.share
( I46491 , b/161887429 ) - Renamed
AndroidComposeTestRule
tocreateAndroidComposeRule
. ( I70aaf ) - Added more APIs to
TextLayoutResult
. ( Id7e04 ) - Material
FilledTextField
was renamed toTextField
and foundationalTextField
was renamed toBaseTextField
to make simplest desired API easy to discover and use ( Ia6242 , b/155482676 ) - Modifier.drawBackground has been renamed to Modifier.background ( I13677 )
Version 0.1.0-dev15
22 جولای 2020
androidx.compose.ui:ui-*:0.1.0-dev15
is released. Version 0.1.0-dev15 contains these commits.
Dependencies Update
- To use the
0.1.0-dev15
version of Compose, you will need to update your dependencies according to the new code snippets shown above in Declaring dependencies .
تغییرات API
- FocusModifier is deprecated in favor of Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. FocusState and FocusDetailedState are deprecated in favor of FocusState2 ( I46919 , b/160822875 , b/160922136 )
- Added a modifier to observe focus state change. ( I05866 , b/160924455 , b/160923326 )
- Added a modifier to request focus changes ( I8dd73 , b/161182057 , b/160924778 )
- Ajdust the Toolbar Menu to show copy, cut, paste properly. ( Id3955 )
- Single-value semantics properties now use a calling style. For example, 'semantics { hidden = true }' is now written as:
semantics { hidden() }
. ( Ic1afd , b/145951226 , b/145955412 ) - Added Modifier.focus which replaces FocusModifier. ( Ib852a , b/160924778 )
- Add FloatingToolbar for TextField Selection. ( Ie8b07 )
- Added an experimental api annotation for key input related API ( I53c0a )
- Added an experimental api annotation for all Focus-related API ( I53b24 , b/160903352 )
- Added FocusState2 which will replace FocusDetailedState ( I0a3ba , b/160822595 )
- Added ExperimentalFocus which is an @OptIn annotation for Focus API. ( I1544b , b/160820961 )
- An IntBounds unit class has been added, representing integer pixel bounds from layout. The API of PopupPositionProvider has been updated to use it. ( I0d8d0 , b/159596546 )
- Applier now requires a clear() method for disposing compositions ( Ibe697 )
- KeyEvent is deprecated and replaced by KeyEvent2 ( I68730 )
- A new optional flag useUnmergedTree was added to test finders. ( I2ce48 )
- Made LayoutNode experimental API ( I4f2e9 )
Added copy methods to various inline class types including:
- افست
- اندازه
- شعاع
- حرکت
TransformOrigin
Deprecated Size.copy companion object method favor of instance copy method ( Ife290 , b/159905651 )
Popups, Dialogs and Menus are now inheriting the contextual MaterialTheme ( Ia3665 , b/156527485 )
TextDirection is renamed as ResolvedTextDirection ( I3ff38 )
Removed layout direction parameter from the measure block of the Layout() function. Layout direction is however available inside the callback through the measure scope object ( Ic7d9d )
Refactor SelectionHandles for reusing. ( I420e0 )
Clickable was removed. Use Modifier.clickable ( I84bdf )
TestTag and Semantics have been deleted. Use Modifier.testTag and Modifier.semantics instead ( I15ff0 , b/158841414 )
Prior to this change, the compose compiler plugin would non-trivially intercept calls to constructors inside of a @Composable function if there was an ( I5205a , b/158123804 )
Modifier.tag was renamed to Modifier.layoutId, to avoid confusion with Modifier.testTag. ( I995f0 )
Alignment line Int positions returned from Placeable#get(AlignmentLine) are now non-null. If the queried alignment line is missing, AlignmentLine.Unspecified will be returned. ( I896c5 , b/158134875 )
The AndroidView composable was added a modifier parameter. ( I48a88 , b/158746303 )
Semantics() is deprecated. Use Modifier.semantics() instead. ( I72407 , b/158841414 )
Add viewModel() composable which allows to create or get already created ViewModel similarly to how it works in Activity or Fragment ( I5fdd1 )
Replaced usage of IntPx with Int. Replaced IntPxPosition with IntOffset. Replaced IntPxSize with IntSize. ( Ib7b44 )
In order to consolidate the number of classes used to represent sizing information, standardize on usage of the Size class instead of PxSize. This provides the benefits of an inline class to leverage a long to pack 2 float values to represent width and height represented as floats. ( Ic0191 )
In order to consolidate the number of classes used to represent positioning information, standardize on usage of the Offset class instead of PxPosition. This provides the benefits of an inline class to leverage a long to pack 2 float values to represent x and y offsets represented as floats. ( I3ad98 )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters. Deleted Px class in its entirety ( I3ff33 )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( I086f4 )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( Id3434 )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( I97a5a )
TestTag is now deprecated. Use Modifier.testTag instead. ( If5110 , b/157173105 )
The default, no-op, implementation of ParentDataModifier#modifyParentData has been removed - it was equivalent to not implementing the interface in the first place. ( I0deaa )
Previously deprecated ScaleFit as removed. Use ContentScale instead. ( Ifbc5b )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( I19d02 )
Added the DropdownMenu component in ui-material, a Material Design menu implementation. ( I9bb3d )
Removed deprecated LayoutTag(), please use Modifier.tag() instead. Removed deprecated Modifier.matchParent(), please use Modifier.matchParentSize() instead. ( If8044 )
Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( I57bff )
Modifier.semantics has been undeprecated to allow usages for high level components. ( I4cfdc )
Consolidated CanvasScope implementations so there is now just DrawScope and ContentDrawScope Renamed CanvasScope to DrawScope. Updated DrawScope to implement Density interface and provide LayoutDirection Deleted DrawScope subclass in ContentDrawScope Painter and PainterModifier have been updated to no longer maintain an RTL property themselves as DrawScope provides this already without manually providing it ( I1798e )
DoubleTapGestureFilter now disambiguates SingleTapGestureFilter across the tree. ( If92b1 )
Updated Alignment API and added support for absolute alignment (which does not auto-mirror in Rtl context) ( I38cd3 )
DrawLayer modifiers api has been changed: outlineShape renamed to shape and has the RectangleShape default value and now non-nullable; clipToOutline renamed to clip; clipToBounds removed as it is the same as clip == true with RectangleShape ( I7ef11 , b/155075735 )
Updated higher level compose APIs that expose a Canvas to expose CanvasScope instead. This removes the need for consumers to maintain their own Paint objects. For consumers that still require access to a Canvas they can use the drawCanvas extension method which provides a callback to issue drawing commands with the underlying Canvas. ( I80afd )
WithConstraints trailing lambda API has been changed. Now instead of two params it has a receiver scope which in addition to constraints and layoutDirection provides minWidth, maxWidth, minHeight and maxHeight properties in Dp ( I91b9a , b/149979702 )
Renamed LayoutModifier2 to LayoutModifier. ( Id29f3 )
Removed deprecated LayoutModifier interface. ( I2a9d6 )
Intrinsic measurements functions in Layout and LayoutModifier2 have an IntrinsicMeasureScope receiver now which provides intrinsics query API with implicitly propagated layout direction. ( Id9945 )
Layout and LayoutModifier children can be measured with a different layout direction. ( Ibd731 )
New Modifier.zIndex() is added to control the drawing order of the children within the same parent layout. elevation property on DrawLayerModifier is renamed to shadowElevation and doesn't control the drawing order anymore. The params order fo DrawShadow is changed: elevation is now the first one and the shape is the second one with a RectangleShape default. ( I20150 , b/152417501 )
Removed onSizeChange and onPositionChange in Owner. ( I5c718 )
Added Constraints2, a copy of Constraints that does only supports Int connstraints values rather than IntPx. IntPx will be removed and all integer constraints will be assumed to be pixels like Android.
- Added IntSize as well, which will eventually replace IntPxSize. ( I4b43a )
Made Alignment instantiable with arbitrary values. Added 1D Alignments. ( Ia0c05 )
alignToSiblings now accepts a Measured instead of Placeable. ( I5788d )
( I45f09 , b/152842521 )
- Renamed ScaleFit to ContentScale
- Moved ContentScale from ui-graphics to ui-core module to live in the same module as the Alignment API.
- Renamed FillMaxDimension to Crop
- Renamed FillMinDimension to Fit
- Renamed Fit to Inside to better match
- ImageView.ScaleType equivalents
- Added documentation indicating that the combination of Crop and Alignment.Center achieves the same result as ImageView.ScaleType.CENTER_CROP and Fit used with Alignment.Center achieves the same result as ImageView.ScaleType.FIT_CENTER Inside used with Alignment.Center achieves the same result as ImageView.ScaleType.CENTER_INSIDE
Rtl support for draw modifiers. ( I0aaf9 )
Released API for inflating Android Views from XML. See ViewInCompose demo for more details. ( I42916 )
Improve DrawModifier API:
- Made the receiver scope for draw() ContentDrawScope
- Removed all parameters on draw()
- DrawScope has same interface as former CanvasScope
- ContentDrawScope has drawContent() method ( Ibaced , b/152919067 )
Added positionInParent and boundsInParent for LayoutCoordinates. ( Icacdd , b/152735784 )
DrawLayerModifier and drawLayer() now default clipToBounds and clipToOutline to false. ( I0eb8b , b/152810850 )
Renamed LayoutResult to MeasureResult. ( Id8c68 )
Added LayoutModifier2, a new API for defining layout modifiers; deprecated LayoutModifier ( If32ac )
Replaced Modifier plus operator with factory extension functions ( I225e4 )
Added translationX/Y properties to support offseting the display list of drawing commands for a given Layer. This is useful to move content in response to animations or touch events. ( I8641c )
Added pivotX, pivotY parameters to Layer APIs to support rotation and scaling around a particular point on a layer ( Icf7c3 )
Add OnPositionedModifier and OnChildPositionedModifier to replace OnPositioned and OnChildPositioned composable functions. ( I2ec8f )
Added LayerModifier, a modifier that allows adding a RenderNode for a Layout. It allows setting clipping, opacity, rotation, scaling, and shadows. This will replace RepaintBoundary. ( I7100d , b/150774014 )
Made the layout direction be propagated from parent layout node to children. Added layout direction modifier. ( I3d955 )
Stack component supports right-to-left directionality ( Ic9e00 )
Initial support for Rtl in Compose layout ( Ia5519 )
Density and DensityScope were merged into one interface. Instead of ambientDensity() you can now use DensityAmbient.current. Instead of withDensity(density) just with(density) ( I11cb1 )
Changed LayoutCoordinates to make providedAlignmentLines a Set instead of a Map and have LayoutCoordinates implement the get() operator instead for retrieving a value. This makes it easier for modifiers to modify one or more value of the set without creating a new collection for each modifier. ( I0245a )
LayoutCoordinates no longer has a position property. The position property does not make sense when considering LayoutModifiers, rotation, or scaling. Instead, developers should use parentCoordinates and childToLocal() to calculate the transform from one LayoutCoordinate to another.
LayoutCoordinates uses IntPxSize for the size property instead of PxSize. Layouts use integer pixel sizes for layouts, so all layout sizes should use integers and not floating point values. ( I9367b )
Improvements to the API surface of Constraints ( I0fd15 )
Created CanvasScope API that wraps a Canvas object to expose a stateless, declarative drawing API surface. Transformations are contained within their own receiver scope and sizing information is also scoped to corresponding inset bounds. It does not require a consumer to maintain its own Paint state object for configuring drawing operations.
- Added CanvasScopeSample as well as updated the demo app to include a declarative graphics demo ( Ifd86d )
Removed unused MaskFilter API as it has limited usage and is not optimized for hardware acceleration in most use cases ( I54f76 )
RectangleShape moved from androidx.ui.foundation.shape.* to androidx.ui.graphics.* ( Ia74d5 , b/154507984 )
Replaced all nullable Color uses in API with non-nullable and use Color.Unset instead of null ( Iabaa7 )
Introduce additional optional rect parameter to ImagePainter to support drawing a subsection of underlying ImageAsset ( I0ea9e )
Added Unset Color to represent an unset value without boxing Colors. ( If901a )
Added Canvas.rotate and Canvas.scale extension methods to consume optional pivot coordinates for transformations. These default to the top left corner of the current canvas translation.
Also moved Canvas.rotateRad to be an extension method for consistency ( Ibaca6 )
Created PixelMap API to support querying pixel information from an ImageAsset. ( I69ad6 )
Renamed toFrameworkRect/toFrameworkRectF to toAndroidRect/toAndroidRectF to match naming convention for object conversions between compose and the Android framework APIs they are built on top of. Also updated docs on these APIs ( I86337 )
Added VectorPainter API to replace existing subcomposition API for vector graphics. Result of subcomposition is a VectorPainter object instead of a DrawModifier. Deprecated previous DrawVector composables in favor of VectorPainter.
Renamed Image(Painter) API to PaintBox(Painter) Created Vector composable that behaves like the Image composable except with a VectorAsset instead of an ImageAsset ( I9af9a , b/149030271 )
Renamed Image to ImageAsset to better differentiate the difference between the Image data and the upcoming Image composable used to participate in layout and draw content. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework ( Id5bbd )
Added TextDirection.Content ( I48f36 )
Added TextDecoration.plus operator ( I0ad1a )
Force
is removed from TextDirectionAlgorithm enum values ( Icc944 )TextDirectionAlgorithm is renamed as TextDirection ( I75ce8 )
Implements LongPressAndDrag for TextField Selection. ( I17919 )
Added AnnotatedString.getStringAnnotations that returns all annotations within the range. ( I1fa00 )
Changed the package name for Locale and LocaleList from androidx.ui.text to androidx.ui.intl ( I8132c )
TextField's cursor has a blinking animation ( Id10a7 )
API change: AnnotatedString(builder: Builder) is renamed to annotatedString(builder: Builder). ( Ia6377 )
API change: AnnotatedString.Item is renamed to AnnotatedString.Range. ( I2d44d )
Rename AnnotatedString.Builder.addAnnotationString to addStringAnnotation. ( I5059e )
Now it is possible to hide/show software keyboard by using SoftwareKeyboardController which is delivered by onTextInputStarted callback ( I8dc44 , b/151860051 )
Added plus operator for (Text/Paragraph/Span)Style which delegates to merge() function. ( Ia1add )
FontWeight.lerp does not snap anymore. It is still a data class. ( I521c2 )
FontWeight constructor is now public, it is not data class anymore. ( Id6b1f )
Add getLineStart, getLineEnd, getEllipsisOffset and getEllipsisCount to TextLayoutResult ( Ibc801 )
ui-text module is renamed as ui-text-core ( I57dec )
Removed unused Size class as there is a duplicate Size class in the ui-geometry module that is being consumed. ( I1b602 )
Added AdapterList, a scrolling list component that only composes and lays out the visible items. Currently known issues include that it is vertical-only and does not fully handle all cases of changes to its children. ( Ib351b )
Add paddings, border, shape and background param to Box ( I05027 , b/148147281 )
رفع اشکال
- onFocusChange callback in text fields renamed to onFocusChanged ( Ida4a1 )
- VerticalScroller and HoriziontalScroller have been deprecated. Use ScrollableColumn and ScrollableRow for build-in experience with Column/Row behaviour and parameters, or Modifier.verticalScroll and Modifier.horizontalScroll on your own element. Similarly, ScrollerPosition has been deprecated in favor of ScrollState' ( I400ce , b/157225838 , b/149460415 , b/154105299 )
-
runOnIdleCompose
renamed torunOnIdle
( I83607 ) - Several testing APIs were renamed to be more intuitive. All findXYZ APIs were renamed to onNodeXYZ. All doXYZ APIs were renamed to performXYZ. ( I7f164 )
- Compose UI can now be composed inside ViewGroups without requiring a new composition. See ViewInteropDemo for an example. ( I9ab0b , b/160455080 )
- Added sortWith and removeRange to MutableVector ( Icccf7 )
- Implement Drag Selection Handles to change selection for TextField. ( I27032 )
- Removed Shader inline class that wrapped the NativeShader expect class Renamed NativeShader to Shader. The wrapped Shader inline class did not add anything valuable to the API surface and was an inline class, so use the NativeShader class directly. ( I25e4d )
Refactored PainterModifier to no longer provide scaling based on the given constraints and ContentScale parameter. Implementations of Painter are to scale their drawing content themselves based on the given size of the DrawScope they are drawing into.
Fixed issue where VectorPainter's cache bitmap was sized to its default size instead of the given size to draw into.
Updated ImagePainter to scale its content instead of relying on PainterModifier to do so on its behalf. ( I6ba90 )
add top-level withFrameNanos function for animation timing ( Ie34c5 )
@Untracked annotation has been deprecated. Replace with @ComposableContract(tracked=false) ( Id211e )
androidx.ui.foundation.TextFieldValue and androidx.ui.input.EditorValue is deprecated. TextField, FilledTextField and CoreTextField composables that uses that type is also deprecated. Please use androidx.ui.input.TextFieldValue instead ( I4066d , b/155211005 )
Fixed issue where pointer input dispatch would cause a crash if PointerInputFilters were removed via subcomposition during disptach. این در حال حاضر ثابت شده است. ( I1f48b , b/157998762 )
Fixed issue where pointer input dispatch would cause a crash if PointerInputFilters were removed via subcomposition during disptach. این در حال حاضر ثابت شده است. ( Iab398 , b/157998762 )
Refactored Radius class to be an inline class. Removed companion creation methods in favor of function constructor with default parameter to have the radius along the y-axis match that of the mandatory x-axis radius parameter.
Updated DrawScope.drawRoundRect to consume a single Radius parameter instead of 2 separate float values for the radius along the x and y axis ( I46d1b )
The Recompose composable is no longer a useful abstraction. Most recomposition should happen as a result of MutableState assignments. For anything beyond that, it is recommended that you use the
invalidate
function to trigger a recomposition of the current scope. ( Ifc992 )Replaced usage of Px class in various compose classes as part of the large refactoring effort to only rely on Dp and primitive types for pixel parameters ( Iede0b )
Changes the code generation strategy of Compose's compiler. Prior to the change, the compose compiler would transform calls to composable functions. With this change, we now transform the body of a composable function and leave the callsite unaltered (mostly).
This means that most of the logic communicating with the compose runtime happens at the start of the function body, instead of at the callsite.
This should be a source-compatible change for all usage of compose. Most users of compose should not have to update any code as a result of this change.
In order to support this work, the JVM signature of all composable functions has changed. A Composable function accepting a single parameter is transformed into a function accepting 3 parameters, the additional parameters are the Composer, a 'key' integer. a bitmask integer used to propagate metadata through calls.
Compose now also transforms default arguments to a composable function. It does this without introducing an additional synthetic default overload of the function itself, so this change will result in fewer functions being defined.
Known intentional behavioral changes resulting from this:
- Some calls will skip where they wouldn't have previously
- Composable expressions in default argument expressions are now correctly subscribed to and handled
This work included some optimizations: 1. The result of comparisons of parameters are propagated through the call graph to other composable functions. This will result in fewer comparisons at runtime, reduces the slot table size, as well as more skipping of composable functions that were previously not skipped 2. Paremeters which are determined to be “static” at compile time are no longer compared or stored in the زمان اجرا This reduces the number of comparisons and reduces slot table size. 3. Control flow structure of the body of functions is used to minimize the number of groups that are generated. This reduces slot table size and results in less work for the runtime 4. Unused dispatch and receiver parameters to functions are not included in determining skippability of the function if they are not used inside of the body of the function.
Most breaking changes were for APIs that the compiler targets directly, and typical use of compose will not be affected: 1. Composer::startExpr was removed 2. Composer::endExpr was removed 3. Composer::call was deprecated 4. The non-varargs overloads of
key
have been removed. Use thevararg
version going forward. 5. The Pivotal annotation was deprecated. Usekey
as a replacement. 6. ScopeUpdateScope::updateScope was changed to expect a Function3 instead of Function1 7. restartableFunction and restartableFunctionN were updated to include additional compile time parameters ( I60756 , b/143464846 )Removed deprecated LayoutAlign modifiers. ( I10877 )
Removed RepaintBoundary in favor of DrawLayerModifier ( I00aa4 )
Button, FloatingActionButton and Clickable now have a separate
enabled
param. Some of the params on Button were renamed or reordered. ( I54b5a )Replaced ButtonStyle with distinct functions and removed text (string) overload. See updated samples for usage information. ( If63ab , b/146478620 , b/146482131 )
Breaking changes to the ambients API. See log and
Ambient<T>
documentation for details ( I4c7ee , b/143769776 )Changed the behavior of default TextDirection to be determined by LayoutDirection. ie If LayoutDirection is RTL, default TextDirection will be RTL. Previously it was TextDirection.ContentOrLtr/Rtl ( I4e803 )
Bug fix: When font weight and font style are nested on an AnnotatedString, text is not rendered correctly. ( I77a9d )
Adds commonly used parameters to Text(). If you are currently creating a local text style to pass a small number of these parameters, such as Text(style = TextStyle(textAlign = TextAlign.Center)), you can now just provide the parameters directly: Text(textAlign = TextAlign.Center) ( I82768 )
ui-android-text module is renamed as ui-text-android ( I68cbe )