نوشتن رابط کاربری

مؤلفه‌های اساسی نوشتن رابط کاربر برای تعامل با دستگاه، از جمله طرح‌بندی، طراحی، و ورودی مورد نیاز است.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
18 سپتامبر 2024 1.7.2 - - 1.8.0-alpha02

ساختار

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

مشارکت خارجی

  • Modifier.dragAndDropSource برای چند پلتفرم پذیرفته شد - تشخیص شروع توسط خود Compose انجام می شود (یا در مورد وب یا iOS به سیستم واگذار می شود)، بنابراین تماس برگشتی فقط برای به دست آوردن داده های انتقال استفاده می شود.
  • DragAndDropModifierNode به نفع DragAndDropSourceModifierNode و DragAndDropTargetModifierNode منسوخ شده است ( I0389d , b/326945380 )
  • اکنون 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.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 به val isEditable . این ویژگی اکنون یک بولی است و همیشه توسط فیلدهای متنی مشخص می شود. ( 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 to performCustomAccessibilityActionWithLabelMatching . ( 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 و Enhanced FlowRow / 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 )
  • unset() API معنایی جدید برای حذف ویژگی‌های معنایی که در زنجیره اصلاح‌کننده یکسان اضافه شده‌اند. ویژگی جدید معنایی isOpaque . ( I8c583 , b/317966058 , b/246056649 )
  • originalEventPosition از روش کپی در API عمومی PointerInputChange حذف شد. ( I7bead )

رفع اشکال

  • رفع یک اشکال a11y که به دکمه‌های غیر تب‌ها و غیررادیویی اجازه می‌دهد در صورت انتخاب قابل کلیک باشند. ( 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

  • با افزودن ClipEntry و ClipMetadata برای پشتیبانی از محتوای دلخواه مانند تصاویر ClipboardManager گسترش داد.
  • 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 حاوی این commit ها است.

رفع اشکال

  • یک خرابی نادر 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 بدون جدا شدن گره جدا شود. از آن در نگارش Layout Inspector محافظت کنید ( 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 های Material SwipeToReveal (برای کارت ها و تراشه ها) اکنون به جای نمونه های مبتنی بر کلاس داده برای ایجاد آن اسلات ها، به یک API مبتنی بر شکاف (همانطور که توسط Compose توصیه می شود) متکی هستند. این یک تغییر اساسی است، لطفاً برای نمونه هایی در مورد نحوه استفاده از API جدید، نسخه آزمایشی و کد نمونه را ببینید. ( Ia8943 )

  • سازنده FontStyle(int) منسوخ شده است، به جای آن از FontStyle.Normal یا FontStyle.Italic استفاده کنید. ( I66610 )

  • تغییر نام رابط FontScalable به FontScaling ( Ie804a )

رفع اشکال

  • SoftwareKeyboardController.show() دیگر صفحه کلید نرم افزار را نشان نمی دهد اگر ویرایشگر متنی متمرکز نباشد. ( I2165a , b/301477279 )
  • رویدادهای کلید سخت افزاری برای کلیدهایی که رویداد Down در همان نمای نوشتن دریافت نکرده اند اکنون نادیده گرفته می شوند. ( Ib37b4 , b/305518328 )
  • پشتیبانی رندر را برای Sweep Gradient در ArcLine اضافه کنید. ( I4d5bb )
  • برای PageSize.Fixed برابر و هش کد را پیاده سازی کنید. ( Ie3ede , b/300134276 )
  • رفع مشکل سازگاری باینری با تغییر Window Inset ( Iee695 )
  • لایه هسته مواد را برای تراشه/دکمه Material3 بردارید زیرا میکروبنچمارک ها بدون آن عملکرد بهتری را نشان می دهند. ( I55555 )
  • TestDispatcher به عنوان تست های effectContext to Compose اکنون برای ایجاد ساعت های تست و فریم استفاده می شود. ( Ia7178 )

نسخه 1.6.0-alpha08

18 اکتبر 2023

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

تغییرات API

  • Modifier.dragAndDrawSource نام لامبدا onDrawDragShadow را به drawDragDecoration تغییر داده است و DragAndDropInfo پارامتر اندازه را به dragDecorationSize تغییر نام داده است. ( ID0e30 , b/303904810 )
  • SemanticsNodeInteraction.isDisplayed() و SemanticsNodeInteraction.isNotDisplayed() را معرفی کنید تا بررسی کنید که آیا یک گره منطبق قابل مشاهده است یا نه بدون اینکه روی آن تاکید شود. ( I2c196 , b/302100809 )
  • یک مقدار Unspecified خاص برای فیلدهای TextAlign ، TextDirection ، Hyphens و LineBreak در ParagraphTextStyle برای جایگزینی null معرفی کرد. از آنجایی که این کلاس ها کلاس های درون خطی هستند، با جایگزین کردن nullable با Unspecified، از boxing نوع اولیه اجتناب می کنیم. سازنده ها، دریافت کننده ها و سایر روش ها در سبک TextStyle و Paragraph به روز شدند تا پارامترهای ذکر شده را به عنوان انواع غیر تهی بپذیرند. ( I4197e , b/299490814 )
  • اضافه بار GoogleFont برای خواندن GoogleFont از XML اضافه کنید. ( If8f59 )
  • LoremIpsum PreviewParameterProvider به یک کلاس باز تبدیل کرد. ( I41bf5 , b/266918816 , b/300116360 )

رفع اشکال

  • FontFamilyResolver اکنون از Dispatchers.Main برای برنامه های مدیریت کش استفاده می کند. ( Ie8dd9 )
  • AndroidViewBinding اکنون با استفاده از commitNow (به‌جای commit که قبلاً استفاده می‌کرد) نمونه‌های Fragment را که با قرار دادن FragmentContainerView در طرح‌بندی شما به عنوان بخشی از onRelease در طرح‌بندی خود اضافه شده‌اند، حذف می‌کند، بنابراین مشکلات روش Live Edit را با جایگزینی ترکیب پس از تغییرات برطرف می‌کند. ( 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 Modifier را برای دریافت از جلسات کشیدن و رها کردن اضافه می کند. ( Ib7828 , b/286038936 )
  • مجموعه های ColorList و ColorSet اضافه شدند که از تخصیص اجتناب می کنند. ( I744bd )
  • اضافه شده DisableNonLinearFontScalingInCompose پرچم موقت برای غیرفعال کردن مقیاس غیر خطی فونت. اگر برای پاک کردن آنها به زمان نیاز دارید، DisableNonLinearFontScalingInCompose = true در آزمایش‌های خود تنظیم کنید. این پرچم در Compose 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

  • بهینه سازی های اضافی برای آیکون های Material. ( I3e08d )
  • قابلیت عبور از درخت اصلاح کننده بالا/پایین را برای یافتن گره های مشابه اضافه می کند. ( I2d234 )
  • پاسخ تماس onRestoreFailed() به اصلاح کننده focusRestorer() اضافه شد ( Ie1d43 )
  • حاشیه نویسی androidx را به API های گرافیکی مختلف اضافه کرد تا ColorInt ، FloatRange ، IntRange ، Size و موارد دیگر را مشخص کند. ( Id65c8 , b/290950582 )
  • اضافه کردن showSystemUi=true به تعریف PreviewScreenSizes ( 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 )
  • سرعت چرخش در اجزای View مانند ScrollView و RecyclerView در ViewConfiguration.ScaledMaximumFlingVelocity محدود شده است. Compose اکنون حاوی نسخه خودش از maximumFlingVelocity است که اکنون برای Draggable اعمال می شود. ( IBF974 )
  • داربست اولیه را برای پشتیبانی از کشیدن و رها کردن APIهای پلت فرم اضافه می کند. ( If84ce )
  • افزودن deviceId به RotaryScrollEvent ( Iba3bf )
  • ui-tooling Devices 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 )
  • ColorFilter API به‌روزرسانی شد تا دارای انواع زیر کلاس بتن برای بهبود قابلیت بازرسی پارامترها باشد. ( I5fe29 )
  • کتابخانه wear-tooling-preview را برای فهرست کردن دستگاه‌های پوشیدنی معتبری که می‌توانند برای پیش‌نمایش رابط کاربری استفاده شوند، معرفی کنید ( Ib036e )
  • رابط FontScalable را برای مدیریت بخش مقیاس بندی فونت در رابط تراکم ایجاد کرد. ( I2cf3f )

نسخه 1.6.0-alpha03

9 آگوست 2023

androidx.compose.ui:ui-*:1.6.0-alpha03 منتشر شد. نسخه 1.6.0-alpha03 حاوی این commit ها است.

تغییرات API

  • نوع جدیدی از انتقال ورود/خروج که محتوا را بر اساس اندازه محفظه متحرک در طول انیمیشن ورود و خروج مقیاس می‌دهد. سرگرمی و رابط کاربری LookaheadScope Composable اکنون پایدار هستند. ( Ifb2ce )
  • پشتیبانی اضافه شده برای پیکربندی privateImeOptions ( Idb772 )

رفع اشکال

  • PopupPositionProvider.calculatePosition اکنون به طور خودکار موقعیت پنجره را با تغییر حالت خوانده شده در محاسبه به روز می کند. ( I676a1 , b/292257547 )
  • فیلدهای نوشتاری ثابت که صفحه‌کلید را نشان می‌دهند و زمانی که readOnly درست است قابل ویرایش هستند. همچنین ثابت شد که صفحه‌کلید در هنگام فوکوس کردن readOnly از درست به نادرست نشان داده نمی‌شود. ( 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

  • یک رابط یاب سرویس اضافه شده است که می‌تواند توسط پیاده‌کننده‌های Composition پیاده‌سازی شود که به اجرای Composition اجازه می‌دهد که به یک ترکیب دیگر سرویس نمایندگی را به Composition اصلی جستجو کند. این نباید به صورت مستقیم نامیده شود و برای ایجاد ایجاد 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 حاوی این commit ها است.

رفع اشکال

  • ( 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 to TextStyle را برای تعریف متن یا 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 )

رفع اشکال

  • الگوریتم سفارش تمرکز دسترسی بهبود یافته ، به عنوان مثال میله های بالا/پایین به ترتیب به ترتیب اول/آخرین خوانده می شوند ( 74E9C5 )

نسخه 1.4.0-beta01

8 فوریه 2023

androidx.compose.ui:ui-*:1.4.0-beta01 منتشر شده است. نسخه 1.4.0-beta01 حاوی این تعهدات است.

تغییرات API

  • PinnableContainer.PinnedHandle.unpin() به release() ( i4667a ) تغییر نام داد
  • waitUntilNodeCount ، waitUntilAtLeastOneExists ، waitUntilExactlyOneExists و waitUntilDoesNotExist به عنوان API تجربی به ComposeTestRule اضافه شده و API waitUntil را برای پذیرش هر تطبیق و هر تعداد گره گسترش می دهد. برای مستندات بیشتر به ComposeTestRule مراجعه کنید. ( IFA1B9 ، B/226934294 )
  • تغییر نام Font.MaximumAsyncTimeout به Font.MaximumAsyncTimeoutMillis . ( I07AF5 )
  • GoogleFont.Provider.AllFontsListUri حذف کرده و به جای آن در KTDOC به آن پیوند داده شده است. ( i16f29 )

رفع اشکال

  • برای AndroidFont.fontVariationSettings ( i7d9e2 ) اسناد را اضافه کنید

نسخه 1.4.0-alpha05

25 ژانویه 2023

androidx.compose.ui:ui-*:1.4.0-alpha05 منتشر شده است. نسخه 1.4.0-alpha05 حاوی این commit ها است.

تغییرات API

  • اضافه بار تجربی جدید برای عملکرد runComposeUiTest معرفی شده و توابع create*ComposeRule که پارامترهای CoroutineContext را می پذیرند. زمینه برای ترکیب آزمون و هرگونه تماس LaunchedEffect و rememberCoroutineScope() در ترکیب استفاده خواهد شد. ( i10614 ، b/265177763 )
  • یک API جدید را برای ردیابی سرعت 1 بعدی اضافه کنید ( IF5A82 )
  • FocusRequester اکنون به عنوان @Stable مشخص شده است. ( i580ee )
  • یک حاشیه نویسی تجربی را از سازنده DialogProperties که یک پارامتر usePlatformDefaultWidth را می گیرد ، حذف کنید. ( IC4048 )
  • تابع اضافه شده به موقعیت محاسبه و مماس در فاصله در یک مسیر - با PathMeasure.getPosition() و PathMeasure.getTangent() ( i3b47c )
  • حذف شده به طور تصادفی در معرض دید عمومی در PlatformParagraphStyle . ( I07F47 )
  • نوع بیشتر/تهی بیشتر توابع مخفی درون خطی/مستهلک ( I24F91 )
  • برای پرس و جو برای حاشیه نویسی با اختصاص صفر ، AnnotatedString.hasStringAnnotations اضافه کنید. ( i94dfe ، b/246960758 )
  • اضافه بار جدید برای عملکرد TextMeasurer.measure که در یک String به عنوان متن قرار دارد. ( i47b2d ، b/242705342 )
  • API های LineBreak و Hyphens در TextStyle فارغ التحصیل می شوند. ( IC1E1D )

مشارکت خارجی

  • روشهای notifyFocusedRect در TextInputSession و TextInputService دوباره مستهلک نمی شوند. ( I23A04 ، B/262648050 )

نسخه 1.4.0-alpha04

11 ژانویه 2023

androidx.compose.ui:ui-*:1.4.0-alpha04 منتشر شده است. نسخه 1.4.0-alpha04 حاوی این commit ها است.

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

  • یک 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's هنگام تمرکز android.widget.Spinner استفاده شود. ( i177e5 ، b/236159001 )
  • اکنون می توانید از PlatformTextStyle(emojiSupportMatch) استفاده کنید تا پردازش پشتیبانی ایموجی را به صورت اختیاری غیرفعال کنید. ( IA7100 ، b/139326806 )
  • تست های UI Android Compose UI اکنون هنگام اجرای فریم ها برای رسیدن به بیکار (به عنوان مثال از طریق waitForIdle ) ، برای هر فریم پاس های چیدمان را برای هر فریم اجرا می کنند. این ممکن است بر تست هایی که بر فریم های انفرادی انیمیشن های طرح بندی ادعا می کنند ، تأثیر بگذارد. ( i8ea08 ، b/222093277 )
  • TextMotion Experimental to TextStyle را برای تعریف متن یا Static(default) یا انیمیشن اضافه کرد. اگر متن از طریق انیمیشن مقیاس ، ترجمه یا چرخانده می شود ، از TextMotion.Animated استفاده کنید. ( I24DD7 )

تغییرات API

  • maxSize: IntSize آرگومان در drawText با size: Size با سایر توابع DrawScope درون خطی است. size به Size.Unspecified پیش فرض تنظیم شده است که نباید رفتار پیش فرض قبلی را تغییر دهد. ( ICD27D )
  • سازنده قلم تجربی مستهلک شده حذف شده است. ( i8a724 ، b/261435386 )
  • Group داده ابزار ابزار رابط کاربر اکنون یک فیلد به isInline دارد که نشان می دهد آیا گروه برای فراخوانی یک تابع قابل ترکیب درون خطی است یا خیر. اگر isInline true باشد، فراخوانی به یک تابع قابل ترکیب درون خطی است. با این حال، مقدار ممکن است برای فراخوانی‌های توابع ترکیب‌پذیر درون خطی که از ماژول‌هایی هستند که با نسخه‌ای از افزونه کامپایلر نوشتن که اطلاعات تابع درون خطی را تولید نمی‌کند کامپایل شده‌اند، نادرست باشد. ( IDB846 )
  • تعدادی از API های آزمایشی قبلاً را به ثبات فارغ التحصیل شدند
  • Rotary Scroll Event API اکنون پایدار است ( I42AD3 ، B/261561229 )
  • API FontVariation اکنون پایدار است ( i8779f ، b/241016309 )
  • همه سازندگان Font() اکنون API پایدار هستند ( I5948B ، B/261435386 )
  • DeviceFontFamilyName اکنون پایدار است ( I8B640 ، B/261435386 )
  • سازنده AndroidFont با variationSettings در حال حاضر یک API پایدار است و می تواند برای ایجاد انواع جدیدی از توصیف کننده های قلم مورد استفاده قرار گیرد. ( i5adcc ، b/261565807 )
  • API createFontFamilyResolver اکنون پایدار است. این می تواند برای گرفتن استثنائات غیرقانونی در هنگام بارگیری قلم Async استفاده شود. ( IBB481 ، b/261435386 )
  • Font.loadingStrategy API اکنون پایدار است. ( i5937c ، b/261435386 )
  • GoogleFont API اکنون پایدار است. ( IC90B0 ، B/261435386 )
  • TextUnit(float, TextUnitType) اکنون API پایدار است. ( i90c84 ، b/261561612 )
  • pluralStringResource اکنون API پایدار است. ( I09849 ، b/261439703 )

نسخه 1.4.0-alpha03

7 دسامبر 2022

androidx.compose.ui:ui-*:1.4.0-alpha03 منتشر شده است. نسخه 1.4.0-alpha03 حاوی این commit ها است.

تغییرات API

  • از بین بردن ExperimentalComposeUiApi از PointerIcon ( I23AF8 )
  • معرفی اقدامات دسترسی به صفحه: PageUp ، PageDown ، PageLeft ، PageRight . توجه داشته باشید که اینها فقط از API 29 در دسترس هستند. ( IDA4AB )
  • به روز شده rememberNestedScrollConnection مشاهده پارامتر پارامتر از نمای ریشه به نمای میزبان. ( IA5200 )
  • یک Modifier API برای جستجوی اطلاعات اسکرول اجداد اضافه شده است. ( I2ba9d , b/203141462 )
  • در Clickable برای به تأخیر انداختن صحیح تعاملات مطبوعاتی استفاده می‌شود، زمانی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند.
  • هنگامی که در داخل یک Scrollable ViewGroup استفاده می شود، Clickables ثابت شد که امواج را به درستی به تاخیر نمی اندازند.
  • کشوها و برگه‌ها برای تأخیر صحیح فشارها در صورتی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند، به‌روزرسانی شدند.
  • با نام CompositingStrategy.Always to Offscreen تغییر نام داد تا نشان دهد که graphicsLayer همیشه به یک بافر میانی منتقل می شود ( I47DC1 )
  • اضافه بار چیدمان با شکافهای محتوای متعدد اکنون پایدار است ( I10566 ، B/248294649 )
  • اضافه شده APIS جدید PerfettoTrace.record {} و PerfettoTraceRule برای ضبط آثار perfetto (که به عنوان آثار سیستم نیز شناخته می شود) به عنوان بخشی از یک آزمایش ، برای بازرسی از رفتار و عملکرد آزمون. ( i3ba16 )
  • در تست های UI با استفاده از یک قانون آهنگسازی ، ادامه هایی که در طی تماس های برگشتی withFrameNanos از سر گرفته می شود ، تا زمانی که تمام تماس های فریم به پایان رسید ، ارسال نمی شود. این با رفتار آهنگسازی در هنگام اجرای عادی مطابقت دارد. با این حال ، آزمایشاتی که به رفتار قدیمی متکی هستند ممکن است شکست بخورد. این فقط باید بر کدهایی که تماس withFrameNanos یا withFrameMillis را مستقیماً تحت تأثیر قرار می دهد ، تأثیر بگذارد و منطقی در خارج از پاسخ به آن کارکردهایی منتقل شود که ممکن است نیاز به انتقال در داخل تماسهای تماس بگیرد. برای مثال تغییرات تست انیمیشن را در این CL مشاهده کنید.
  • اضافه شده onPerformTraversals: (Long) -> Unit به سازنده و عملکرد کارخانه TestMonotonicFrameClock برای اجرای کد پس از تماس های برگشتی withFrameNanos اما قبل از از سرگیری Coroutines Callers. ( IDB413 ، B/254115946 ، B/222093277 ، B/255802670 )
  • Emojicompat اضافه شده برای آهنگسازی ( IBF6F9 ، B/139326806 )
  • پارامتر جدید کاغذ دیواری اضافه شده به @Preview برای پشتیبانی از رنگ پویا ( I9F512 )

رفع اشکال

  • Snapshot Applice Applifications اکنون پس از اتمام Recomposer با استفاده از تغییرات ارسال می شود. ( IAD6C0 ، B/222093277 )
  • تغییراتی در captureToImage معرفی شده است تا بتوانید تصاویر چند پنجره را ضبط کنید. این برای تست های تصویر که از پنجره های آهنگسازی استفاده می کنند مفید است. ( 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 منتشر شده است. نسخه 1.4.0-alpha02 حاوی این commit ها است.

تغییرات API

  • به روز شده GraphicsLayerScope برای افشای اندازه فعلی graphicsLayer . این برای محاسبه تحولات graphicsLayer به عنوان تابعی از اندازه ترکیب مفید است. ( IF8C43 ، b/181387080 )
  • CompositingStrategy معرفی کرد تا مشخص کند چه موقع می توان از یک لایه ترکیبی خارج از صفحه برای ارائه محتوای graphicsLayer استفاده کرد. AUTO رفتار پیش فرض را حفظ می کند که در صورت استفاده از آلفا یا یک RenderEffect/Overscroll یک لایه را به صورت داخلی اعمال می کند. همیشه همیشه یک بافر Offscreen را معرفی می کنید که در آن ModulateAlpha از اعمال بافر خارج از صفحه جلوگیری می کند و در عوض هر یک از دستورالعمل های نقاشی ضبط شده را در graphicsLayer تعدیل می کند. استفاده از ModulateAlpha هنوز هم یک بافر خارج از صفحه را برای استفاده از RenderEffect/Overscroll استفاده می کند ( I25E82 ، B/256382834 )
  • invalidateSubtree() به Modifier.Node اضافه شد. ( i4bd90 )
  • به یاد داشته باشید rememberNestedScrollInteropConnection به پایدار. توانایی عبور از یک نمای ریشه را برای rememberNestedScrollInteropConnection معرفی کرد. این می تواند به دیدگاه سفارشی کمک کند تا بهتر در برابر محدودیت های پیمایش ، به ویژه در نماهای غیر استاندارد (به عنوان مثال ModalBottomSheetDialog ) واکنش نشان دهد. ( i9e107 )
  • رابط ObserverNode اضافه شده است که می تواند توسط Modifier.Node استفاده شود. اجرای کد که باید در هنگام مقداری که قبلاً خوانده بودند ، به آنها اطلاع داده شود ( i5728b ، b/247716483 )
  • یک سازنده جدید برای Paint اضافه کرد که یک android.graphics.Paint بومی را می پذیرد. همچنین یک عملکرد پسوند toComposePaint() اضافه کرد که یک شیء رنگ بومی موجود را برای تهیه رنگ تبدیل می کند. ( ICA91B )
  • برای استفاده در Android ، FontFamily.Resolver.resolveAsTypeface جدید را اضافه کنید. ( i8950b )
  • اضافه کردن ToolingState برای اجازه دادن به ابزار برای تغییر حالت های داخلی ترکیبات ( IE6614 )
  • ابزار refactor برای داشتن پشتیبانی بهتر از انیمیشن های جدید اضافه شده ( I8677B )
  • اضافه شدن پارامتر minLines به متریال و متریال3 Text، TextField و OutlinedTextField که امکان تنظیم حداقل ارتفاع جزء بر حسب تعداد خطوط را فراهم می کند ( I4af1d )

نسخه 1.4.0-alpha01

24 اکتبر 2022

androidx.compose.ui:ui-*:1.4.0-alpha01 منتشر شده است. نسخه 1.4.0-alpha01 حاوی این commit ها است.

تغییرات API

  • یک روش جدید، awaitEachGesture() برای آشکارسازهای اشاره اضافه شد. شبیه به forEachGesture() عمل می‌کند، اما حلقه روی ژست‌ها کاملاً در AwaitPointerEventScope عمل می‌کند تا رویدادها بین تکرارها از بین نرود.
  • forEachGesture() به نفع awaitEachGesture() منسوخ شده است زیرا اجازه می دهد رویدادها بین حرکات از بین بروند. ( Iffc3f , b/251260206 )
  • کاهش بازیافت اشیاء accecessibility در Androidx. ما پیدا کرده ایم که تغییرات عملکرد حتی در قدیمی ترین نسخه های پشتیبانی شده ناچیز است. ( i0a961 )
  • DrawStyle به عنوان یک ویژگی آزمایشی به TextStyle و SpanStyle اضافه کرد تا متن ترسیم شده را فعال کنید. ( IF24B8 ، b/155421273 )
  • AnnotatedString.Builder اکنون kotlin.text.Appendable پیاده سازی می کند. ( i1a061 ، b/231030444 )
  • AnnotatedString.Builder اکنون یک روش append(AnnotatedString, start: Int, end: Int) دارد که یک زیر لایه ای از یک AnnotatedString و سبک های تقاطع را اضافه می کند.
  • پارامتر DrawStyle به Paragraph و توابع رنگ MultiParagraph اضافه شده است که می تواند متن ترسیم شده را طراحی کند. ( IC8102 ، b/155421273 )

مشارکت خارجی

  • با تشکر از vighnesh برای اضافه کردن دستگاه های تلویزیونی به پیش نمایش ها ( IE15CD )

نسخه 1.3

نسخه 1.3.3

11 ژانویه 2023

androidx.compose.ui:ui-*:1.3.3 منتشر شده است. نسخه 1.3.3 شامل این تعهدات است.

رفع اشکال

  • هنگامی که فعالیت در حال صرفه جویی در وضعیت نمای آهنگسازی است ، یک تصادف را در Android 9 اتفاق می افتد. ( I0B755 ، B/260322832 )

نسخه 1.3.2

7 دسامبر 2022

androidx.compose.ui:ui-*:1.3.2 منتشر می شود. نسخه 1.3.2 حاوی این commit ها است.

رفع اشکال

  • به روز شده برای استفاده از ProfoBUF 3.21.8 ، که از هشدار امنیتی در protobuf-javalite:3.19.4 (CVE-2022-3171) ( B/255545055 )

نسخه 1.3.1

9 نوامبر 2022

androidx.compose.ui:ui-*:1.3.1 منتشر شده است. نسخه 1.3.1 حاوی این commit ها است.

نسخه 1.3.0

24 اکتبر 2022

androidx.compose.ui:ui-*:1.3.0 منتشر شده است. نسخه 1.3.0 حاوی این commit ها است.

تغییرات مهم از 1.2.0

  • مجموعه جدید API Suite LookaheadLayout (امکان رفتارهای انیمیشن قبلاً غیرممکن را فراهم می کند)
  • اصلاح کننده جدید API Suite Modifier.Node (جایگزین با عملکرد بالاتر برای Modifier.composed )
  • پشتیبانی از پنجره های پنجره بهبود یافته.
  • پشتیبانی از D-Pads و صفحه کلید سخت افزار در لازیلیست ها.
  • حداکثر ارتفاع پشتیبانی شده در گفتگوها و پنجره ها به 8DP کاهش یافته است (تغییر رفتار برای برخی از سیستم های طراحی سفارشی - منطقی در یادداشت های انتشار Beta01 )
  • بسیاری از پیشرفت های جزئی و غیرقانونی API
  • بسیاری از اشکالات و بهبود عملکرد

نسخه 1.3.0-rc01

5 اکتبر 2022

androidx.compose.ui:ui-*:1.3.0-rc01 منتشر شده است. نسخه 1.3.0-rc01 حاوی این commit ها است.

تغییرات API

  • اضافه شده API Hyphens جدید برای پشتیبانی از هیفن سازی خودکار در متن ( IAA869 )

رفع اشکال

  • فونت های DeviceFontFamilyName تنظیمات تغییرات wght و ital را به طور پیش فرض پیکربندی نمی کنند ، در عوض با استفاده از تنظیم پلت فرم برای Typeface بارگذاری شده. ( ia7a6d ، b/246989332 )
  • ثابت نشت حافظه LazyColumn - onModifierLocalsUpdated هنگام استفاده مجدد از اصلاح کننده ها با مقدار پیش فرض فراخوانی نمی شود ( B/230168389 )

نسخه 1.3.0-beta03

21 سپتامبر 2022

androidx.compose.ui:ui-*:1.3.0-beta03 منتشر می شود. نسخه 1.3.0-beta03 حاوی این تعهدات است.

تغییرات API

  • گزینه هایی را برای سفارشی کردن خط در متن اضافه کنید. ( i86907 )
  • size:IntSize استدلال با constraints: Constraints در TextMeasurer.measure برای پشتیبانی از حداقل محدودیت های عرض. ( i37530 ، b/242707525 )

رفع اشکال

  • API BackHandler Androidx فعالیت اکنون در یک Dialog قابل گفتگو کار می کند. ( i35342 )

نسخه 1.3.0-beta02

7 سپتامبر 2022

androidx.compose.ui:ui-*:1.3.0-beta02 منتشر می شود. نسخه 1.3.0-beta02 حاوی این تعهدات است.

تغییرات API

  • اضافه بار آزمایشی برای چیدمان اضافه شده است که لیستی از چندین لامباد محتوای سازنده را می پذیرد ، که به شما امکان می دهد تا اندازه گیری های اندازه گیری شده را به صورت متفاوت در لامبدهای محتوای مختلف تهدید کنید ( IC1B4E )

تغییر در API های تمرکز تجربی:

  • FocusDirection.In و FocusDirection.Out با FocusDirection.Enter و FocusDirection.Exit مستهلک می شوند و جایگزین می شوند. ( IA4262 ، B/183746982 )
  • دو ویژگی تمرکز جدید اضافه شده و برای مشخص کردن یک رفتار سفارشی برای FocusManager.moveFocus(Enter) و FocusManager.moveFocus(Exit) وارد و خروج می شوند. ( i5f3f9 ، b/183746982 )
  • اکنون می توانید از FocusRequester.Cancel برای لغو حرکت تمرکز استفاده کنید. FocusRequester.Cancel می تواند در هر یک از خصوصیات تمرکز زیر مورد استفاده قرار گیرد: بالا ، پایین ، چپ ، راست ، بعدی ، قبلی ، شروع ، پایان ، ورود و خروج. ( IB300f )

نسخه 1.3.0-beta01

24 آگوست 2022

androidx.compose.ui:ui-*:1.3.0-beta01 منتشر شده است. نسخه 1.3.0-beta01 حاوی این تعهدات است.

اصلاح کننده گره اصلاح کننده

لایه ای که Modifier/Modifier.Element کنترل می کند. نمونه های المان و هماهنگی رفتار آنها در LayoutNodes عمدتاً اصلاح شده است. به نظر می رسد این یک بازپرداخت کننده بود که بر API عمومی هیچ یک از بسیاری از اصلاح کننده ها در آهنگسازی تأثیر نمی گذارد و می تواند به عنوان یک تغییر فقط در اجرای آن تلقی شود. با وجود این ، این به دلایل مختلف یک تغییر مهم است. ( IE4313 )

خلاصه

API های Modifier.Node تجربی اضافه شده. Node یک انتزاع را فراهم می کند که امکان حفظ حالت را بر روی نمونه ای که با چرخه عمر گره طرح حفظ می شود ، حفظ می شود و در هر گره در هر لایه و هر استفاده از Modifier.Element که آن را تولید کرد.

به طور گسترده ، این انتزاع یک مکانیسم جایگزین برای تولید اصلاح کننده های حالت بدون تکیه بر مکانیک Modifier.composed API فراهم می کند.

ریسک

این تغییر کاملاً باینری با نسخه های قبلی سازگار است و در نظر گرفته شده است که از نظر رفتار قابل مشاهده به اندازه عملی و معقول سازگار باشد. گفته می شود ، تعداد کمی زیر سیستم های آهنگسازی وجود دارد که این اصلاح کننده لمس نمی کند ، و به احتمال زیاد رفتار به روشهایی تغییر کرده است که تحت پوشش تست های ما قرار نگرفته است و هنوز پیدا نشده و ثابت نشده است .

لطفاً با احتیاط به این نسخه ارتقا دهید. اگر فکر می کنید این چیزی برای شما شکسته است ، لطفاً به ما اطلاع دهید.

API های تجربی

API های مختلف آزمایشی اضافه شده است ، همه مربوط به مفهوم جدید "گره اصلاح کننده" است. modifer.Node در نتیجه ایجاد می شود

  • 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 takes FontFamily.Resolver , Density , or LayoutDirection parameters. Please use the TextMeasurer constructor to provide custom values for these parameters. ( Ia1da3 )
  • Added DialogProperties.decorFitsSystemWindows property to allow Dialogs to support WindowInsets . ( 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 to SlotTree.kt . This allows tools to retrieve parameters for a CompositionGroup 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 the PlacementScope . 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 one LayoutCoordinates to another. ( Ic5ab1 , b/238632578 )
  • Deprecated SemanticsModifier.id and moved the semantics id to LayoutInfo.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 and LineHeightStyle . ( I64bef )
  • Deprecate TextInputService.show|hideSoftwareKeyboard . Please use SoftwareKeyboardController instead in app code and TextInputSession in IME-management code. ( I14e4c , b/183448615 )
  • Add new API for existing animation types ( I26179 )

رفع اشکال

  • @RequiresPermission به APIهایی که نیاز به اعطای مجوز POST_NOTIFICATIONS در SDK 33 و بالاتر دارند اضافه شد. ( 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 remember TextMeasurer instances in composition. ( I8d66e )
  • Rect , RoundRect , and MutableRect now support the Kotlin in syntax for calling the contains 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 include pressKeys , keysDown and keysUp . ( 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 to EditCommand to help troubleshoot text editing issues. ( I53354 , b/228862731 )
  • Added drawText extension function on DrawScope to provide a way to draw multi-styled text on composables and modifiers that operate on a DrawScope like Canvas and drawBehind . ( I16a62 , b/190787898 )
  • Introduce a new experimental API called TextMeasurer that enables arbitrary text layout computation that creates identical results to BasicText , independent from Compose runtime. ( I17101 )
  • Add mapTree to SlotTree.kt . This allows tools to inspect the SlotTree 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 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 ( 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 and SpanStyle to modify opacity of the whole Text . ( Ic2fac , b/234117635 )
  • Introduced the UrlAnnotation annotation type and associated methods to support TalkBack link support in AnnotatedString s. ( I1c754 , b/231495122 )
  • Moving utility functionality to runtime ( I4f729 )

رفع اشکال

مشارکت خارجی

  • 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 and FocusProperties
    • Improved behavior with physical keyboard or TV remote
  • New APIs for:

    • Window insets
    • Core primitives for gesture-driven, infinite and layout animations
    • GraphicsLayer capabilities, including RenderEffect
  • 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 include withKeysDown , 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 to KeyInjectionScope for documentation on each function. ( I9f6cd , b/229831515 )
  • An experimental OverscrollEffect has been introduced to allow for custom overscroll effects, alongside the Modifier.scrollable overloads that accept it.
  • Experimental LocalOverScrollConfiguration has been moved from foundation.gesture to foundation package and renamed to LocalOverscrollConfiguration ( If19fb , b/204650733 )
  • Rename runComposeUiTestWithoutActivity {} to runEmptyComposeUiTest {} , which aligns it with createEmptyComposeRule() ( 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 as isCapsLockOn and friends to KeyInjectionScope . 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 the key property of MultiModalInjectionScope during a multi modal input gesture with performMultiModalInput . See KeyInjectionScope 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 if FontFamily.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 and DeleteSurroundingTextInCodePointsCommand 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 to DisposeOnDetachedFromWindowOrReleasedFromPool 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 of LazyList 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 a fun runComposeUiTest(block: ComposeUiTest.() -> Unit) , that can be used to run Compose Ui tests without the need for a TestRule . To run a test without a ComposeTestRule , pass the test as a lambda to runComposeUiTest , and use the methods and members in the receiver scope ComposeUiTest , which are the same ones as in ComposeContentTestRule .

    The Android specific interface AndroidComposeUiTest and fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit) are added to provide access to the underlying Activity, similar to AndroidComposeTestRule . For even more control, you can instantiate a class 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 to ComposeUiTest 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 and ComposeTestRule don't extend from ComposeUiTest , which means extension functions on ComposeUiTest can't be called yet on the TestRule interface. When ComposeUiTest graduates to stable API, ComposeContentTestRule and ComposeTestRule will be changed to extend from ComposeUiTest . ( Ib4e90 )

  • LineHeightBehavior is renamed as LineHeightStyle

  • LineVerticalAlignment is renamed as LineHeightStyle.Alignment

  • Renames LineHeightTrim is renamed as LineHeightStyle.Trim

  • Default constructor values from LineHeightStyle is removed ( I582bf , b/181155707 )

  • Added Brush to TextStyle and SpanStyle to provide a way to draw text with gradient coloring. ( I53869 , b/187839528 )

  • trimFirstLineTop , trimLastLineBottom attributes of LineHeightBehavior 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 the TextStyle and ParagraphStyle . 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 by TextStyle(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 when includeFontPadding is false. ( I97332 , b/181155707 )

  • PlatformParagraphStyle.lerp and PlatformSpanStyle.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 the includeFontPadding using TextStyle.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 solve TextField 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 of ComposeView allows developers to disable consumption of Android WindowInsets . This allows separate ComposeViews in the hierarchy to each apply WindowInsets without interfering with each other. ( I0ef08 , b/220943142 )
  • Added KeyboardType.Decimal as an alternative to Keyboard.Number for specifically including decimal separator in IME. ( Iec4c8 , b/209835363 )
  • PointerEventType.Scroll and PointerEvent.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 with Font(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 via TextStyle(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 called Font(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 changes

  • Added event time to RSB events ( Ief8ae )

  • FocusOrder has now been merged into FocusProperties and focusProperties() now has all the capabilities of focusOrder() . FocusOrder and focusOrder() have been deprecated. focusOrder() that accepts a focusRequester should be replaced with a focusRequester() modifier in combination with focusProperties() . This allows the modifiers to have a stronger separation of concerns. ( I601b7 )

  • Upgrading both RecyclerView and Compose 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 strategy

  • Add 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 and spotShadowColor properties to GraphicsLayerScope ( 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 of ActionCallback . ( Ib2eb9 , b/197950089 )
  • Updated nullability in core and appcompat to match Tiramisu DP2 ( I0cbb7 )
  • Measured interface now exposes parentData property ( I3313f )
  • Modifier.onPlaced and the OnPlacedModifier 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 an IllegalStateException 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 or ReusableComposeNode need to add a ComposableTarget 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 into FontFamily.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 in TextInputSession and TextInputService are now deprecated and won't be called. Use BringIntoViewRequester instead. ( Ia4302 , b/192043120 , b/216842427 , b/178211874 )
  • Introduced destroyDisplayListData method on RenderNode 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 via LocalFontFamilyResolver.current

  • Added createFontFamilyResolver(context) and createFontFamilyResolver(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, deprecated TextLayoutResult.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 see AndroidFont .

  • Font.AndroidResourceLoader extension function allows construction of a Font.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 use FontFamilyResolver.preload .

  • fontResource(FontFamily): Typeface is deprecated. This was previously used to preload fonts, which may take up to 10 seconds for downloadable fonts. Instead use FontFamilyResolver.preload ( If8e7c , b/174162090 )

  • SubcomposeLayoutState constructor accepting maxSlotsToRetainForReuse is now deprecated. Instead there is a new constructor accepting SubcomposeSlotReusePolicy - 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 returns State<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() and Modifier.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 ها است.

رفع اشکال

  • برای پشتیبانی از 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 if HardwareRenderer.isDrawingEnabled() is false , 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 from Exception instead of directly from Throwable . Note that this means that catch clauses that were catching Exception might now catch ComposeNotIdleException s, where they wouldn't do that previously. ( I9c217 )

رفع اشکال

  • Fix text handles not moving when IME visibility changes. ( I25f2e )

Version 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() and InjectionScope.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 and MultiModalInjectionScope.Mouse . In order to inject touch and mouse events for multi-modal gestures, you can now use MultiModalInjectionScope.touch() and MultiModalInjectionScope.mouse() , both of which accept a lambda that has the receiver scope of that modality. ( Idde18 )

رفع اشکال

  • The default value for durationMillis in TouchInjectionScope.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 from ViewRootForInspector and LayoutInfo.ownerViewId ( I5c2e3 )
  • اضافه بار بدون فرزند برای Layout اضافه شد، با کارایی بهبود یافته ( Ib0d9a )
  • Removed InternalCompilerApi from Composer methods that are required to be called cross-module ( I1aa0b )
  • SemanticsNodeInteraction.performSemanticsAction now returns the SemanticsNodeInteraction on which the function was called. ( I9e5db )
  • Added LocalInputModeManager CompositionLocal to detect TouchMode/NonTouchMode. ( I6a83c , b/175899786 )
  • Added viewConfiguration: ViewConfiguration to LayoutInfo to allow consumers get the correct value for things like long press timeout. ( I76ca6 )
    • Added viewConfiguration: ViewConfiguration to InjectionScope 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 .
  • پیاده سازی 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 by Recomposer.currentState to change its type to a StateFlow ( Ic2ab3 , b/197773820 )
  • Added flush() and dispose() to InjectionScope . 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 implements Density , allowing you to easily convert between px and dp in performTouchInput 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 and layoutDirection: LayoutDirection to LayoutInfo . This allows consumers of LayoutInfo to interpret the dimensions and position exposed in LayoutInfo properly. ( I002f1 )
  • Added experimental support for injecting mouse events. Use performMouseInput to start sending mouse events, or send mouse events through the Mouse property of MultiModalInjectionScope during a multi modal input gesture with performMultiModalInput . See MouseInjectionScope 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 a PointerEventType 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 and TouchInjectionScope as a replacement for performTouchInput and TouchInjectionScope , paving the way for other modalities (like mouse).

    TouchInjectionScope has the same methods as GestureScope , with the exception of movePointerTo and movePointerBy , which have been renamed to updatePointerTo and updatePointerBy . All other methods are the same.

    The behavior of TouchInjectionScope is almost identical to GestureScope , with two small details:

    1. When sending a down event while pointers had been moved without sending a move event (in other words, updatePointerTo() has been used, but not move() , and then down() 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.
    2. 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 method currentPosition(pointerId: Int) to get the current position of the given pointer. ( If1191 , b/190493367 )

رفع اشکال

  • به کلیپ اجازه دهید تا مرزهای هدف لمسی را فراتر از منطقه کلیپ گسترش دهد تا حداقل اهداف هدف لمسی انجام شود. ( 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 را به روز کرد تا به Kotlin 1.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 and hasScrollToKeyAction 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 new androidx.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 و AGP 7.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 and ui-tooling-preview ( Iefa28 , b/190649014 )

تغییرات API

  • Removed deprecated experimental FocusManager#moveFocusIn and FocusManager#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 a LocalActivityResultRegistryOwner that allows you to preview Composables that use APIs like rememberLauncherForActivityResult() that depend on that owner existing. ( Ib13d1 , b/185693006 )
  • Compose @Preview now provides a LocalOnBackPressedDispatcherOwner that allows you to preview Composables that use APIs like BackHandler that depend on that owner existing. ( Ia1c05 , b/185693006 )

رفع اشکال

  • Moved InfiniteAnimationPolicy to androidx.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 as ComposeTestRule.mainClock.advanceTimeUntil {} More limitations are expected to be identified in the future. ( I284fa )

قوانین پروفایل اضافه شد

این نسخه قوانین نمایه را به ماژول های نوشتن زیر اضافه می کند ( 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 to FocusManager.clearFocus(force = true) ( Ia0c41 )
  • استفاده مجدد از enum در کلاس های درون خطی برای جلوگیری از مشکلات مربوط به عبارات جامع هنگام اضافه شدن مقادیر enum جدید. ( I2b5eb )
  • Remove @ExperimentalComposeUiApi from PopupProperties . ( 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() and Modifier.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 , and detectHorizontalGestures 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 and TextDecoration on AnnotatedString 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, and SemanticsProperties.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, and SemanticsNodeInteraction.performScrollToKey that scrolls a list to the item with the given key. ( I4fe63 , b/178483889 , b/161584524 )
  • 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 . Added addTtsAnnotation and withAnnotation utility functions to AnnotatedString.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) and FocusManager.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 and accessibilityActionScrollDown accessibility scroll actions. Instead of scrolling to the end of the scrollable, it will now scroll by one screen in the given direction. ( Ieccb0 )
  • فایل‌های AndroidManifest از ui-test-manifest و ui-tooling-data اکنون با 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

  • نام hideSoftwareKeyboard و showSoftwareKeyboard را در SoftwareKeyboardController به ترتیب برای hide() و show() تغییر دهید.
    • رابط کامل CompositionLocal را برای LocalSoftwareKeyboardController ارائه دهید، که به آن اجازه می دهد تنظیم شود (به ویژه در آزمایش ها مفید است) ( I579a6 )
  • LiveRegion Accessibility API اضافه شده است. اگر گره به‌عنوان یک منطقه زنده علامت‌گذاری شود، سرویس‌های دسترسی به‌طور خودکار تغییرات آن را به کاربر اطلاع می‌دهند ( 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 via FragmentContainerView when the AndroidViewBinding is removed from the compose hierarchy. ( Ib0248 , b/179915946 )
  • AndroidViewBinding now correctly nests fragments inflated via FragmentContainerView when your ComposeView is within a Fragment , 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 via FragmentContainerView 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 and startY / endY parameters to swipeUp / swipeDown / swipeLeft / swipeRight functions in GestureScope . ( I49e2d , b/182063305 )

نسخه 1.0.0-beta02

10 مارس 2021

androidx.compose.ui:ui-*:1.0.0-beta02 is released. نسخه 1.0.0-beta02 حاوی این تعهدات است.

تغییرات API

  • API محلی ترکیب LocalSoftwareKeyboardController جدید برای جایگزینی رابط کاربری SoftwareKeyboardController قبلی در TextField اضافه شد. ( I5951e , b/168778053 )
  • API محلی ترکیب LocalSoftwareKeyboardController جدید برای جایگزینی رابط کاربری SoftwareKeyboardController قبلی در 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 یا Fragment وابسته نیست. اگر از ComposeView در برنامه‌تان استفاده می‌کنید، و از Fragment و/یا AppCompat استفاده می‌کنید، مطمئن شوید که از AppCompat 1.3+ / Fragment 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 )
  • API محلی ترکیب LocalSoftwareKeyboardController جدید برای جایگزینی رابط کاربری SoftwareKeyboardController قبلی در TextField اضافه شد. ( I658b6 , b/168778053 )
  • Fixed rare NoSuchElementException in ComposeRootRegistry 's tearDownRegistry() ( Iddce1 )

نسخه 1.0.0-beta01

24 فوریه 2021

androidx.compose.ui:ui-*:1.0.0-beta01 is released. نسخه 1.0.0-beta01 حاوی این تعهدات است.

این اولین نسخه از Compose 1.0.0 Beta است.

تغییرات 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 مانند InteractionSource.collectIsPressedAsState استفاده کنید.
    • برای موارد استفاده پیچیده می‌توانید از InteractionSource.interactions برای مشاهده جریان Interactions استفاده کنید. برای اطلاعات بیشتر به اسناد و نمونه های InteractionSource مراجعه کنید.
    • ( I85965 , b/152525426 , b/171913923 , b/171710801 , b/174852378 )
  • افزودن رابط AccessibilityManger و LocalAccessibilityManger در CompositionLocals ( I53520 )
  • روش‌های LayoutCoordinates منسوخ حذف شدند، به جای ویژگی positionInParent و boundsInParent از تابع استفاده کنید ( I580ed , b/169874631 , b/175142755 )
  • Typealiases replaced by underlying types:
    • ColorStop is now Pair<Float, Color>
    • SpanStyleRange is now `AnnotatedString.Range
    • ParagraphStyleRange is now AnnotatedString.Range<ParagraphStyle>
    • StringAnnotation is now AnnotatedString.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 )
  • اصلاحگر selectionGroup را اضافه کنید که اجازه می دهد مجموعه ای از Tabs یا RadioButtons را برای اهداف دسترسی علامت گذاری کنید ( Ie5c29 )
  • The defaultFactory for compositionLocalOf and staticCompositionLocalOf 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 )

  • اصلاح کننده های اندازه تغییر نام دادند. Modifier.width/height/size به requireWidth/requiredHeight/requiredSize تغییر نام داد. Modifier.preferredWidth/preferredHeight/preferredSize به width/height/size تغییر نام دادند. ( I5b414 )

  • Modifier.tapGestureFilter has been removed. Use Modifier.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 )

  • نام ارائه دهندگان به CompositionLocalProvider تغییر یافته است

    • سازنده Composition دیگر یک پارامتر کلیدی را نمی پذیرد و منسوخ شده است.
    • CurrentCompositeKeyHash به جای یک تابع سطح بالا قابل ترکیب به یک ویژگی سطح بالای قابل ترکیب تبدیل شده است.
    • CompositionData و CompositionGroup به فضای نام androidx.compose.runtime.tooling منتقل شده اند.
    • ComposableLambda به جای کلاس بتن، یک رابط ساخته شده است و دیگر پارامترهای نوع ندارد.
    • ComposableLambdaN به جای یک کلاس بتن، یک رابط ساخته شده است و دیگر پارامترهای نوع ندارد.
    • تابع snapshotFlow به فضای نام androidx.compose.runtime منتقل شده است.
    • روش ادغام SnapshotMutationPolicy دیگر آزمایشی نیست
    • تابع clearRoots سطح بالای @TestOnly حذف شده است. دیگر لازم نیست.
    • توابع keySourceInfoOf و resetSourceInfo حذف شده اند. دیگر ضروری نیستند.
    • Composer.collectKeySourceInformation حذف شده است. دیگر لازم نیست.
    • متدهای isJoinedKey، joinedKeyLeft و joinedKeyRight حذف شده اند. دیگر ضروری نیستند.
    • API های مختلف سطح بالا منتقل شده و در فایل های مختلف سازماندهی مجدد شده اند. به دلیل معناشناسی کلاس فایل کاتلین، این امر سازگاری باینری را از بین می برد، اما سازگاری منبع را از بین می برد، بنابراین برای اکثر کاربران نباید مشکلی ایجاد شود.
    • ( I99b7d , b/177245490 )
  • ComponentActivity.setContent() was removed from compose:ui. Use the one from androidx.activity:activity-compose:1.3.0-alpha01 . viewModel() and LocalViewModelStoreOwner were removed from compose:ui. Use the ones from androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 ( I6f36b )

  • Modifier.scrollable دوباره کار شده است. اکنون از رابط Scrollable به جای کلاس ScrollableController استفاده می کند ( 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 )

  • موقعیت اسکرول در Modifier.verticalScroll()/horizontalScroll() با Ints نمایش داده می شود ( I81298 )

  • FlingConfig به FlingBehavior تغییر نام داده است و اکنون امکان سفارشی سازی انیمیشن های تعلیق را به جای Decays از پیش تعریف شده فراهم می کند. ( 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 )

  • تغییرات Material API زیر را انجام داد:

    • پارامتر contentPadding را به Top/BottomAppBar اضافه کرد تا امکان سفارشی کردن padding پیش فرض را فراهم کند.
    • ترتیب پارامترها را در BackdropScaffold تغییر داد تا از دستورالعمل‌های 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 اضافه کرد تا امکان سفارشی‌سازی padding پیش‌فرض و 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 )
  • API محلی ترکیب LocalSoftwareKeyboardController جدید برای جایگزینی رابط کاربری SoftwareKeyboardController قبلی در TextField اضافه شد. ( I658b6 , b/168778053 )

نسخه 1.0.0-alpha12

10 فوریه 2021

androidx.compose.ui:ui-*:1.0.0-alpha12 is released. نسخه 1.0.0-alpha12 حاوی این commit ها است.

تغییرات API

  • Support for ViewGroups was removed from UiApplier. The Deprecated emitView composables were removed. ( Ifb214 )
  • Modifier.pointerInput اکنون به کلیدهای به خاطر سپردن نیاز دارد تا نشان دهد که چه زمانی باید برای وابستگی‌های جدید، برنامه تشخیص ورودی اشاره‌گر دوباره راه‌اندازی شود. ( 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:activity-compose منتقل شده است. ( ICF416 )
  • متدهای Destructuring و copy() از چندین کلاس که به ندرت استفاده می‌شدند حذف شده‌اند. ( I26702 , b/178659281 )
  • Moved Popup to be platform specific. AndroidPopupProperties has been renamed to PopupProperties, and isFocusable has been moved to a focusable parameter in PopupProperties ( 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 )
  • اقدامات معنایی بسط و فروپاشی اضافه شد. افزودن گسترش و halfExpand در ModalBottomSheetState ( Ib5064 )
  • Modifier.dragGestureFilter منسوخ شده است. به جای آن از Modifier.pointerInput { detectDragGestures (...)} استفاده کنید. از طرف دیگر، از Modifier.draggable برای کشیدن یک محور استفاده کنید ( I0ba93 , b/175294473 )
  • Ambients برای مطابقت با Ambient -> CompositionLocal تغییر نام داد. Ambient ها قبلا AmbientFoo نام داشتند، اکنون CompositionLocals LocalFoo نامیده می شوند. ( I2d55d )
  • The deprecated BaseTextField is now removed. به جای آن از BasicTextField استفاده کنید. ( I71368 )
  • انتخاب به بنیاد منتقل شد. ( I7892b )
  • مشابه روشی که قبلاً state { 0 } composable را حذف کرده بودیم و اکنون استفاده ای مانند remember { mutableStateOf(0) } را ترویج می کنیم، می خواهیم savedInstanceState { 0 } composable را حذف کنیم. به جای آن باید از rememberSaveable { mutableStateOf(0) } استفاده کنید و اگر نوع مورد استفاده در MutableState را بتوان در Bundle ذخیره کرد، به طور خودکار ذخیره و بازیابی می شود. اگر قبلاً یک شی محافظ سفارشی ارسال می کردید، اکنون باید از اضافه بار جدیدی از memorySaveable استفاده کنید که دارای پارامتر 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 and withMutableSnapshot 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 )
  • ColorMatrix API را معرفی کرد که برای تغییر مقادیر rgb محتوای منبع استفاده می‌شود. ( Ica1e8 )
  • پارامتر layoutDirection را به createOutline Shape اضافه کنید. این امکان ایجاد اشکال آگاه از جهت چیدمان را فراهم می کند. ( I57c20 , b/152756983 )
  • onImeActionPerformed منسوخ شده است. به جای آن از KeyboardActions استفاده کنید ( 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 with ComposeTestRule . ( 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 )
  • tapGestureFilter، doubleTapGestureFilter، longPressGestureFilter و pressIndicaitonGestureFilter منسوخ شده اند. به جای آن از Modifier.clickable یا Modifier.pointerInput با تابع detectTapGestures استفاده کنید. ( I6baf9 , b/175294473 )
  • SaveableStateRegistry's unregisterProvider was removed. Instead registerProvider() now returns SaveableStateRegistry.Entry object which you can use to unregister ( Ic4274 , b/178583739 )
  • () memorySavedInstanceState به memorySaveable() تغییر نام داد و به بسته androidx.compose.runtime.saveable منتقل شد. ( 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‌هایی با محدوده پنجره‌ای ایجاد شده با تنبلی که توسط ViewTreeLifecycleOwner برای پنجره هدایت می‌شود، است. ترکیب مجدد و تیک‌های انیمیشن مبتنی بر 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 و AbsoluteCutCornerShape برای مواردی که آینه کاری خودکار مورد نظر نیست، معرفی شدند. ( 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 حاوی این commit ها است.

تغییرات 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 را برای استفاده از مختصات مربوط به پنجره، نه مختصات جهانی، تغییر می دهد. نام parentGlobalBounds را به anchorBounds تغییر می‌دهد و windowGlobalBounds را به windowSize تغییر می‌دهد: IntSize ( I2994a )
  • Duration و Uptime با Long میلی ثانیه جایگزین می شوند و این مرحله وابستگی ورودی اشاره گر به آن کلاس ها را حذف می کند. ( 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 )
  • Modifier.toolingGraphicsLayer اضافه شد که وقتی بازرسی روشن است، یک اصلاح کننده لایه گرافیکی اضافه می کند. ( I315df )
  • FocusRequester.createRefs اکنون به عنوان آزمایشی علامت گذاری شده است زیرا ممکن است تغییر کند. ( I2d898 , b/177000821 )
  • SemanticsPropertyReceiver.hidden به invisibleToUser تغییر نام داد و @ExperimentalComposeUiApi علامت گذاری شد. AccessibilityRangeInfo به ProgressBarRangeInfo تغییر نام داد. stateDescriptionRange به progressBarRangeInfo تغییر نام داد. AccessibilityScrollState به ScrollAxisRange تغییر نام داد. horizontalAccessibilityScrollState به horizontalScrollAxisRange تغییر نام داد. verticalAccessibilityScrollState به 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
    • FontWeight
    • 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 به نفع SideEffect و DisposableEffect 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 را برمی گرداند و یک Activity برای شما راه اندازی نمی کند. هنگامی که می‌خواهید در طول آزمایش Activity خود را راه‌اندازی کنید، از این استفاده کنید، به عنوان مثال با استفاده از ActivityScenario.launch ( I9d782 ، b/174472899 )

  • animateAsState اکنون animateFooAsState است، که در آن Foo نوع متغیر متحرک است. به عنوان مثال Float، Dp، Offset، و غیره ( Ie7e25 )

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

  • حذف displaySize همانطور که باید اجتناب شود. معمولاً بهتر است از اندازه 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 )
  • invalidate و ()compositionReference اکنون به ترتیب به نفع currentRecomposeScope و memoryCompositionReference منسوخ شده اند. ( 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 for CompositionLifecycleObserver 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 composition onRemembered is called for each reference where onEnter is only called once. onEnter was called multiple time if the object was used in subcompositions, such as WithConstraints and Scaffold making the single onEnter call guarantee unreliable and it was removed for RememberObserver .

    RememberObserver adds onAbandoned which is called if the RememberObserver instance is returned from the callback passed to remember but was not remembered in the composition state and, therefore, will never have onRemembered 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 of RememberObserver following the single reference recommendation above is tracking an external resource both onForgotten and onAbandoned each indicate that the resource is no longer needed. If the object is tracking work started or resources allocated in onRemembered , onAbandoned can be ignored as it will not be called if onRemembered 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 )

  • منابع موجود در كتابخانه ها كه منابع عمومی صریحاً اعلام نشده (به عنوان مثال از طریق Public.xml) به طور پیش فرض خصوصی هستند. ( 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. کاربران همچنان می‌توانند تصمیم بگیرند که به رفتار تنبلی نیاز ندارند و مستقیماً از اصلاح‌کننده‌ها مانند این استفاده کنند: Column(Modifier.verticalScroll(rememberScrollState())) ( Ib976b ، b/170468083 )

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

  • Please use ImeAction.None instead of ImeAction.NoAction

    • Please use ImeAction.Default instead of ImeAction.Unspecified ( Ie1bcc )
  • استفاده از TestCoroutineDispatcher در آزمایش ( I532b6 )

  • Renamed TextInputService.onStateUpdated as updateState ( Id4853 )

  • Transition-Definition-based Transition منسوخ شده است ( 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 حاوی این commit ها است.

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 )

  • افزودن Toggle به foundation Strings.kt ( I4a5b7 , b/172366489 )

  • NativeClass را به ماژول رابط کاربری منتقل کرد و آن را داخلی کرد. استفاده‌های به‌روزرسانی‌شده از nativeClass در پیاده‌سازی‌ها برابر است تا از «is MyClass» استفاده شود. ( I4f734 )

  • Modifier.focus() و Modifier.focusRequester() منسوخ شده اند. به جای آن از Modifier.focusModifier() و Modifier.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 )
  • Position به 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> برمی گرداند. این اجازه می دهد تا عملکرد بهتری داشته باشد، زیرا دامنه ابطال را می توان به جایی که مقدار State خوانده می شود محدود کرد. ( Ib179e )
  • Semantics role API را اضافه کنید و Role را به‌عنوان پارامتر به SemanticsModifier قابل کلیک، انتخابی و قابل تغییر اضافه کنید. Modifier.progressSemantics را تغییر داد تا Slider نیز بتواند از آن استفاده کند. ( 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 حاوی این commit ها است.

تغییرات 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 )
  • Modifier.focusObserver منسوخ شده است. به جای آن از Modifier.onFocusChanged یا Modifier.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 آزمایشی است و نیاز به انتخاب ( I0a1ec ) دارد
  • Adding destructuring declarations to create FocuSRequester instances ( I35d84 , b/174817008 )
  • accessibilityLabel به contentDescription تغییر نام داده است. accessibilityValue به StateDescription تغییر نام داده است. ( 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 to insertTopDown() .

    A new method, insertBottomUp() , was added.

    An applier either inserts nodes into the tree it is editing using insertTopDown() or insertBottomUp() depending on which performs better.

    Some trees, such as LayoutNode and View , 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 an Applier overrides insertBottomUp() to build a tree bottom-up and insertTopDown() 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 )

  • Modifier.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 در اصلاح کننده های افست اکنون IntOffset را به جای Float برمی گرداند. ( 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 برای ایجاد تنبلی یک نمونه سایه زن زمانی که اطلاعات اندازه محیط طراحی در دسترس است. این برای تعریف گرادیان‌هایی مفید است که در زمان ترکیب‌بندی، مرزهای ترسیم کامل یک کامپوزیشن را اشغال می‌کنند، بدون نیاز به پیاده‌سازی‌های سفارشی DrawModifier.

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

  • LazyColumnFor، LazyRowFor، LazyColumnForIndexed و LazyRowForIndexed را منسوخ کنید. به جای آن از 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 حاوی این commit ها است.

تغییرات API

  • افزودن کنش معنایی رد کردن ( I2b706 )
  • APIهای DrawModifier را از بسته androidx.compose.ui به بسته androidx.compose.ui.draw منتقل کرد. فایل DrawModifierDeprecated.kt را ایجاد کرد تا شامل متدهای typealiases/helper برای کمک به انتقال از APIهای منسوخ شده به APIهای فعلی باشد. ( ID6044 , b/173834241 )
  • تغییر نام Modifier.drawLayer به Modifier.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 )
  • API های Modifier.scale/rotate به عنوان سهولت برای drawLayer اضافه شد.
    • تغییر نام 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 and pivotFractionY as component1 and component2 ( If43c4 , b/173586560 )
  • بررسی پرز برای نام‌گذاری و موقعیت پارامتر لامبدا قابل ترکیب، برای بررسی سازگاری با دستورالعمل‌های Compose اضافه شد. همچنین برخی از APIها را با استفاده از children به عنوان نام لامبدای دنباله‌دار خود به content ، بر اساس بررسی و راهنمایی‌های لینت منتقل کرد. ( Iec48e )
  • Added API to check if Alt, Ctrl, Meta or Shift modifier keys were pressed when a keyevent was dispatched. ( I50ed9 )
  • اضافه بار جدید Modifier.drawLayer() اضافه شد. این یک بلوک لامبدا در GraphicsLayerScope جدید می گیرد که در آن پارامترهای لایه را به گونه ای تعریف می کنید که اجازه می دهد از ترکیب مجدد و تغییر حالت در هنگام تغییر حالت صرفنظر کنید. DrawLayerModifier اکنون برای انتقال منطق خود به متد ()placeable.placeWithLayer () LayoutModifier داخلی است ( I15e9f , b/173030831 )
  • محیط‌های منسوخ شده با پسوند Ambient نام‌گذاری شده‌اند، و با پیروی از سایر دستورالعمل‌های Ambients و Compose API با ویژگی‌های جدید با پیشوند Ambient جایگزین می‌شوند. ( I33440 )
  • Moved androidx.compose.ui.text.Typeface to androidx.compose.ui.text.font.Typeface ( Ic2b81 )
  • آرگومان معنایی mergeAllDescendants به 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. نامهای VectorAssetBuilder برای پیوند به ImageVector.Builder برای compat اضافه شد. ( 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 )
  • ویژگی های معنایی پایه به رابط کاربری منتقل شد ( 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 )
  • رابط Alignment به روز شد و کاربردی شد. ( 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 to layoutId for LayoutIdParentData . Measurable.id was renamed to Measurable.layoutId . ( Iadbcb , b/172449643 )
  • New multitouch gesture detector, including helpers for detecting rotation, zoom, and panning. ( Ic459d )
  • API های SweepGradientShader و SweepGradientBrush را معرفی کرد. ( Ia22c1 )
  • کنترل زمان در تست ها (TestAnimationClock و کاربردهای آن) اکنون آزمایشی است ( 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 )

  • API TextFieldValue به روز شد

    • TextFieldValue.composition فقط خواندنی است
    • استثنا حذف شده برای محدوده انتخاب نامعتبر پرتاب شده است ( I4a675 , b/172239032 )
  • Support TtsAnnotation for text to speech engine. ( I54cc6 )

  • New APIs for running animations in coroutines ( Ied662 )

رفع اشکال

  • پارامتر alignment Box به contentAlignment تغییر نام داد. ( I2c957 )
  • اصلاح کننده های offsetPx به offset تغییر نام دادند. آنها اکنون به جای State از پارامترهای لامبدا استفاده می کنند. ( IC3021 , b/173594846 )
  • Added resetInput parameter to TextInputService#onStateUpdated ( I3e8f5 , b/172239032 , b/171860947 )
  • بررسی پرز برای پارامترهای Modifier در توابع Composable اضافه شد. این بررسی لینت، نام‌گذاری، نوع بازگشتی، مقدار پیش‌فرض و ترتیب پارامتر را برای سازگاری با دستورالعمل‌های Compose بررسی می‌کند. ( 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 ie typeface(Typeface.DEFAULT) . Also renamed typefaceFromFontFamily() to typeface() ( I52ab7 )
  • Added lint check to check that Modifier factory functions are defined as extensions on Modifier, so they can be fluently chained together. ( I07981 )
  • ماژول تست رابط کاربری قدیمی و قطعات خرد آن را حذف کنید ( 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 برای سازگاری با واحدهای دیگر به TextUnit.Unspecified تغییر نام داده است. ( Ifce19 )

Compose UI Version 1.0.0-alpha07

11 نوامبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha07 is released. نسخه 1.0.0-alpha07 حاوی این commit ها است.

تغییرات 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 حذف شد. اکنون می توان SubcomposeLayout را بدون افزودن @OptIn ( I708ad ) استفاده کرد
  • FirstBaseline و LastBaseline به بسته androidx.compose.ui.layout منتقل شدند ( Ied2e7 )
  • Removed opacity from drawShadow() modifier as it was confusing. ( I82c62 , b/171624638 )
  • MeasureResult از MeasureScope خارج شد. ( IBf96d , b/171184002 )
  • چندین نماد مرتبط با طرح‌بندی از androidx.compose.ui به 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 منسوخ شده و با material.Text جایگزین شده است. برای یک API متنی ساده و بدون نظر که مقادیر یک طرح زمینه را مصرف نمی‌کند، به androidx.compose.foundation.BasicText مراجعه کنید. ( If64cb )
  • به روز رسانی TextFields برای پذیرش گزینه های صفحه کلید ( Ida7f3 )
  • تغییر نام KeyboardOptions به ImeOptions ( I82f36 )
  • KeyboardType و ImeAction را به 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 منسوخ شده است. به جای آن از BasicTextField استفاده کنید. ( I896eb )
  • Introduce ui-test-junit4 module ( Ib91f8 )
  • relativePaddingFrom was renamed to paddingFrom . اصلاح کننده paddingFromBaseline اضافه شد، به عنوان راحتی برای تعیین فاصله از کران طرح تا خطوط پایه متن. ( I0440a , b/170633813 )
  • LaunchedTask برای سازگاری با SideEffect و DisposableEffect API به LaunchedEffect تغییر نام داد. LaunchedEffect بدون پارامترهای موضوعی به منظور تشویق بهترین شیوه ها مجاز نیست. ( 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 multiple Modifier.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 )

نسخه 1.0.0-alpha06

28 اکتبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha06 is released. نسخه 1.0.0-alpha06 حاوی این commit ها است.

تغییرات API

  • Recomposer is now a CompositionReference and a valid composition parent. Explicit Recomposer is now required in fewer places. ( I4036f )
  • VectorPainter را به نفع memoryVectorPainter منسوخ کنید تا بهتر نشان دهید که API قابل ترکیب به صورت داخلی از "به خاطر بسپار" برای ماندگاری داده ها در ترکیبات استفاده می کند. ( ایفدا43 )
  • 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 )
  • DrawScope و ContentDrawScope Refactored به جای کلاس های انتزاعی رابط باشند
    • اجرای CanvasDrawScope DrawScope را ایجاد کرد
    • اجرای مجدد DrawScope برای استفاده از CanvasScope به جای آن
    • برای بسته بندی وابستگی برای drawscope ایجاد شده است
    • روشهای مستهلک شده در 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 from PointerInputFilter.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 )
  • فعال کردن انتقال در ComposeTestRule. حذف گزینه برای فعال کردن مکان نما چشمک زن از ComposeTestRule. ( If0de3 )
  • Added KeyboardCapitalization IME Option ( I8ac38 )
  • گزینه صفحه کلید تک خط اضافه شده به CoreTextfield ( I72E6D )
  • Move SimpleContainer into PopupTestUtils.kt ( I65c3e )
  • Radius API را به CornerRadius تغییر نام داد تا نحوه استفاده از آن را در Compose بهتر بیان کند. اسناد به روز شده برای نشان دادن اینکه شعاع گوشه های منفی به صفر بسته شده است. ( 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 )
  • جعبه یک عملکرد درون خطی ساخته شد. ( IBCE0C ، B/155056091 )

مشارکت خارجی

  • Support different locales for AnnotatedString.capitalize and AnnotatedString.decapitalize ( I4aa7f )

نسخه 1.0.0-alpha05

14 اکتبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha05 is released. نسخه 1.0.0-alpha05 حاوی این commit ها است.

تغییرات 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 )
  • پنجره ها و گفتگوها اکنون Flag_Secure را از پنجره والدین به ارث می برند. همچنین گزینه ای برای پیکربندی این صریح اضافه شده است ( 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 from PointerInputFilter.onPointerEvent(...) . ( Id067e )

  • Disable Selection in Text, and a Demo. ( Ie7e97 )

  • Made onGloballyPositioned an inline function ( I15830 )

  • onpositionedModifier به ongloballyposionedmodifer تغییر نام داده می شود و onpositioned () به ongloballyposposed () تغییر نام می یابد. ( 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 )
  • به عنوان بخشی از استاندارد سازی مقادیر Sentinel برای کلاس های درون خطی ، تغییر نام Color.unset to Color.unsiped برای سازگاری با سایر کلاس های درون خطی ( I97611 ، B/169797763 )

  • textoverflow.none معرفی شده است. هنگامی که سرریز هیچ کدام نیست ، متن دیگر سرریز را کنترل نمی کند و اندازه واقعی آن را به 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 )

نسخه 1.0.0-alpha04

1 اکتبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha04 is released. نسخه 1.0.0-alpha04 حاوی این commit ها است.

تغییرات 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 )

رفع اشکال

  • بسیاری از API های گرافیکی
    • مقیاس به روز شده و API های تبدیل چرخش برای مصرف یک پارامتر افست واحد برای نشان دادن مختصات محوری به جای پارامترهای شناور جداگانه برای مختصات X/Y در DrawScope و DrawTransform
    • روشهای حذف شده rect.expandtoinclude و rect.join
    • مستندات شعاع به روز شده برای گفتن بیضی علاوه بر بیضوی
    • مستندات اضافه شده برای نشان دادن سازنده عمومی برای کلاس شعاع درون خطی نباید مستقیماً خوانده شود بلکه در عوض اشیاء شعاع باید از طریق سازندگان عملکرد آنها فوری شوند
    • API های دورگرد را برای پرس و جو Topright ، Bottomright ، BottomCenter و غیره حذف کنید.
    • retrecated rect.shift به نفع rect.translate
    • API های RoundRect.Grow و Rect.Shrink حذف شده
    • Renamed RoundRect.outerRect to Rect.boundingRect
    • RoundRect.Middlerect/Tallmiddlerect/widemiddlerect و rect.isstadium حذف شد
    • RoundRect.LongestSide به RoundRect.MaxDimension تغییر نام داد
    • RoundRect.Shortestside به RoundRect.mindimension تغییر نام داد
    • RoundRect.Center را تغییر داد تا به جای یک عملکرد یک خاصیت باشد
    • سازنده دورگرد به روز شده برای مصرف خصوصیات شعاع به جای پارامترهای جداگانه برای مقادیر شعاع x/y
    • API های اندازه برداشته شده که فرض می کردند مستطیل با مبدأ 0،0 است
    • یک API تخریب کننده به شعاع اضافه کرد
    • توابع مختلف پسوند دورگرد مهاجرت کرد تا به جای آن خاصیت باشد
    • ( i8f5c7 ، b/168762961 )
  • Foundation.box مستهلک شد. لطفاً به جای آن از Foundation.Layout.box استفاده کنید. ( IE5950 ، b/167680279 )
  • پشته به جعبه تغییر نام داد. جعبه قبلاً موجود به نفع جعبه جدید در compose.foundation.layout مستهلک می شود. رفتار جعبه جدید این است که کودکان را در بالای یک کودک در بالای دیگری قرار دهید - این متفاوت از جعبه قبلی است که رفتار مشابهی با یک ستون داشت. ( i94893 ، b/167680279 )
  • پارامترهای دکوراسیون جعبه کاهش یافته است. اگر می خواهید دکوراسیون/بالشتک روی جعبه خود داشته باشید ، به جای آن از اصلاح کننده ها استفاده کنید (Modifier.Background ، Modifier.Border ، Modifier.Padding) ( IBAE92 ، B/167680279 )
  • بسیاری از API های گرافیکی
    • API های DrawScope به روز شده با روش های تحول Scoped برای نشان دادن اینکه تحول فقط در پاسخ به تماس اعمال می شود و پس از فراخوانی تماس تلفنی حذف می شود
    • مستندات کلیپات به روز شده برای مراجعه به مسیر به جای مستطیل گرد
    • فاصله ثابت در مستندات برای پارامتر راست در کلیپات
    • تغییر نام توسط drawscope.drawcanvas به drawintocanvas و پارامتر اندازه حذف شده
    • تغییر نام پارامترهای DX/DY در روش inset به افقی و عمودی
    • اضافه بار اضافه اضافه شده که همان مقدار inset را در هر 4 مرز فراهم می کند
    • مستندات حذف شده در روش inset نشان می دهد که inset برای هر 4 طرف اعمال می شود
    • مستندات به روز شده برای کلاس راست
    • نظرات به روز شده در مورد پارامترهای Rect برای مطابقت با سبک KDOC
    • rect.join و rect.expandtoinclude
    • اضافه بار برای رکت
    • ( 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 )

نسخه 1.0.0-alpha03

16 سپتامبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha03 is released. نسخه 1.0.0-alpha03 حاوی این commit ها است.

تغییرات API

  • اقدامات معنایی به جلو/عقب را حذف کنید. مراحل اضافه شده در دسترس بودن rangeinfo. ( IA47B0 )
  • Removed onInvalidate() from Owner -- 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 و API با استفاده از آن کاهش یافته است. ( i90cdb ، b/167389835 )
  • createAndroidComposeRule و AndroidInputDispatcher از androidx.ui.test.android به androidx.ui.test منتقل کرد ( IDEF08 ، B/164060572 )
  • استفاده از گرانش به طور مداوم به تراز یا تراز در API های چیدمان تغییر نام داده شد. ( i2421a ، b/164077038 )
  • اضافه شده Onnode و سایر روش های جهانی در Composetestule به عنوان روشهای جهانی فعلی کاهش می یابد. ( IEAE36 )

نسخه 1.0.0-alpha02

2 سپتامبر 2020

androidx.compose.ui:ui-*:1.0.0-alpha02 is released. نسخه 1.0.0-alpha02 حاوی این commit ها است.

تغییرات 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 )
  • ماتریس 4 با ماتریس جایگزین شد. تمام قسمت های دیگر بسته Vectormath برداشته شده است. ( 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 ها است.

نسخه 0.1.0-dev

نسخه 0.1.0-dev17

19 آگوست 2020

androidx.compose.ui:ui-*:0.1.0-dev17 is released. نسخه 0.1.0-dev17 شامل این تعهدات است.

تغییرات API

  • emitView was deprecated. Use AndroidView 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 by FocusState ( 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 )

  • از بین onChildPositioned و OnChildPositionedModifier خارج شد. به جای آن OnPositionedModifier توسعه دهندگان باید به onPositioned آن از طرح کودک استفاده کنند. ( 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 to SemanticsPropertyKey . این می تواند برای تعریف یک خط مشی سفارشی برای ادغام معناشناسی Mergealldescendants استفاده شود. خط مشی پیش فرض استفاده از ارزش والدین در صورت وجود است ، در غیر این صورت ارزش کودک است. ( 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 اکنون یک کلاس درون خطی است ( I2BF42 )

  • PlacementScope.placeAbsolute() به PlacementScope.place() تغییر نام داده شد ، و مکان های قبلی PlacementScope.place() به PlacementScope.placeRelative() تغییر نام داده شد. در نتیجه ، روش PlacementScope.place() به طور خودکار موقعیت را در زمینه های راست به چپ آینه نمی کند. در صورت تمایل ، به جای آن از PlacementScope.placeRelative() استفاده کنید. ( i873ac ، b/162916675 )

  • Alertdialog اکنون از Flowrow برای دکمه ها استفاده می کند ( 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 )

  • pxBounds به نفع رکت. تمام کاربردهای PXBounds را با رکت به روز کرده و برای کمک به مهاجرت ، حاشیه نویسی/جایگزین با حاشیه نویسی اضافه کرده است. ( 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 )

رفع اشکال

  • تماسهای برگشتی onFocusChanged را از TextField حذف کرد. به جای آن از modifier.focusobserver استفاده کنید. ( i51089 ، b/161297615 )
  • اصلاح کننده. drawborder مستهلک شده است. به جای آن از اصلاح کننده استفاده کنید. کلاس داده مرزی با مرزها جایگزین شده است ( 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 )

  • state { ... } Composable اکنون به نفع تماس های صریح برای remember { mutableStateOf(...) } برای وضوح کاهش می یابد. این امر سطح API کلی و تعداد مفاهیم را برای مدیریت دولت کاهش می دهد و by mutableStateOf() برای نمایندگی املاک کلاس مطابقت دارد. ( IA5727 )

  • تغییر نام RRECT به RoundRect برای متناسب سازی بهتر الگوهای نامگذاری ، سازه های عملکرد مشابهی را برای ساختار عملکرد RRECT RRECT ایجاد کرده و مستهلک می کند ( I5D325 )

نسخه 0.1.0-dev16

5 آگوست 2020

androidx.compose.ui:ui-*:0.1.0-dev16 is released. نسخه 0.1.0-dev16 شامل این تعهدات است.

تغییرات API

  • onchildposposioned کاهش یافته است. به جای آن از کودک استفاده کنید. ( 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 )
  • گفتگو به 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 )
  • API برای پشتیبانی راست به چپ به روز شده است. LayoutDirectionAmbient اضافه شده است که می تواند برای خواندن و تغییر جهت طرح استفاده شود. modifier.rtl و modifer.ltr حذف شده اند. ( 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 کاهش یافته است ، در عوض از اصلاح کننده استفاده کنید. "سپس" سیگنال قوی تری برای سفارش دارد ، در حالی که تایپ Modifier.padding().background() + anotherModifier ، که زنجیره ای را می شکند و خواندن آن سخت تر است ( IEDD58 ، B/161529964 )
  • Add [Abstract]ComposeView View subclasses for hosting Compose content in a View hierarchy. ( I46357 )
  • Row and Column 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 )
  • موقعیت پنجره ثابت در نمایشگرهای برش. ( 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 )

رفع اشکال

  • خطای API گسترده آدرس ( I077BC )
    1. رابط OffsetBase استفاده نشده را حذف کنید
    2. کلاس های افست و intoffset را برای داشتن یک سطح API سازگار تراز کنید
    3. تغییر نام intoffset.origin به intoffset.zero برای سازگاری با API Offset
    4. برای پشتیبانی از مصرف کنندگان برای ایجاد نمونه های بوم خود ، روش NativeCanvas از رابط بوم جابجا شده است
    5. کلاس خالی Croits Class برای Refactor drawscope ایجاد شده به یک پارامتر غیر تهی به جای لاتینیت و اطمینان از عدم تهی در این زمینه
    6. تغییر نام به Clipop Enums به عنوان Pascal Case
    7. تغییر نام نامگذاری FilterQuality به عنوان Pascal Case
    8. تغییر نام به enums strokejoin به عنوان مورد pascal
    9. تغییر نام به enums pointmode به عنوان pascal
    10. تغییر نام به Enums PaintingStyle به عنوان Pascal Case
    11. تغییر نام به enums pathfilltype به عنوان pascal
    12. تغییر نام به enums strokecap به عنوان مورد pascal
    13. اجرای DrawCache به روز شده تا دیگر از پارامترهای لاتینیت استفاده نکنید
    14. DrawScope به روز شده تا دیگر از هیئت تنبل برای پارامترهای داخلی Fillpaint و StrokePaint استفاده نکنید
    15. تصویر به روز شده برای اجتناب از استفاده از جعبه برای سربار کمتر
    16. کلاس رئوس مطالب به روز شده برای داشتن حاشیه نویسی های immable
    17. Pathnode به روز شده برای داشتن حاشیه نویسی های Immable برای هر دستورالعمل مسیر
    18. زیرمجموعه بردار به روز شده برای حذف چک های مشروط اضافی برای برابری به عنوان آهنگسازی که قبلاً آنها را کنترل می کند
    19. روشهای سازنده همراه با رکورد به نفع سازندگان عملکرد
    20. کلاس های برس به روز شده و سازندگان عملکرد با API های inmable و stable
    21. enum vertexmode به روز شده برای pascalcase
    22. روش انتخاب شده DrawScope به روز شده برای بازنویسی پارامترهای سکته مغزی بر روی رنگ در صورت تغییر
    23. اندازه به روز شده برای افزودن API تخریب ، تغییر نام نامشخص به روشهای نامشخص و حذف شده
  • 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 )
  • حذف SemanticsNodeInteraction.performPartialGesture . به جای آن از SemanticsNodeInteraction.performGesture استفاده کنید. ( id9b62 )
  • LazyColumnItems was renamed to LazyColumnFor . LazyRowItems was renamed to LazyRowFor ( I84f84 )
  • foundation.shape.corner package was flattened to foundation.share ( I46491 , b/161887429 )
  • Renamed AndroidComposeTestRule to createAndroidComposeRule . ( I70AAF )
  • Added more APIs to TextLayoutResult . ( Id7e04 )
  • مواد FilledTextField به TextField تغییر نام داده شد و TextField بنیادی به BaseTextField تغییر نام داد تا ساده ترین API مورد نظر برای کشف و استفاده آسان شود ( IA6242 ، B/155482676 )
  • Modifier.Drabbackground به اصلاح کننده تغییر نام داده است. Background ( I13677 )

نسخه 0.1.0-dev15

22 جولای 2020

androidx.compose.ui:ui-*:0.1.0-dev15 is released. نسخه 0.1.0-dev15 شامل این تعهدات است.

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

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

تغییرات 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 )

  • استفاده از INTPX را با int جایگزین کرد. intpxposition را با intoffset جایگزین کرد. intpxsize را با intsize جایگزین کرد. ( IB7B44 )

  • به منظور ادغام تعداد کلاسهای مورد استفاده برای نشان دادن اطلاعات اندازه ، استاندارد سازی در استفاده از کلاس اندازه به جای pxsize. این مزایای یک کلاس درون خطی را برای استفاده از مقادیر شناور طولانی برای بسته بندی 2 به منظور نشان دادن عرض و ارتفاع نشان داده شده به عنوان شناور فراهم می کند. ( 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 )

  • مؤلفه DropdownMenu را در UI-Material ، اجرای منوی طراحی مواد اضافه کرد. ( 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 )

  • پیاده سازی های Convasscope تلفیقی ، بنابراین اکنون فقط DrawScope و ContentDrawScope با نام Canvasscope به Drawscope تغییر نام داده شده است. DrawScope به روز شده برای پیاده سازی رابط چگالی و ارائه زیر کلاس DrawScope Drawscope Drawingdirection در Painter و Paintermodifier به روز شده است تا دیگر یک ویژگی RTL خود را حفظ نکنند ، زیرا DrawScope این کار را بدون ارائه دستی ارائه می دهد ( 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 )

  • جایگزین همه رنگهای قابل تهی در API با غیر قابل تهی و از رنگ استفاده می شود. به جای تهی ( 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 )

  • برای تمایز بهتر تفاوت بین داده های تصویر و تصویر آینده قابل استفاده برای شرکت در چیدمان و ترسیم محتوا ، به تصویر تغییر نام داد. _body: روش توسعه در Android.graphics.bitmap ، bitmap.asimageasset () ایجاد شده است ، تا نمونه ای از ImageAsset را برای ترکیب توسعه برنامه های سنتی اندرویدی با چارچوب آهنگسازی مفید ایجاد کند ( 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 در زمینه های متن به 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 to runOnIdle ( 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 و Androidx.ui.input.EditorValue مستهلک می شوند. TextField ، FilledTextfield و CoreTextfield Composables که از آن نوع استفاده می کند نیز کاهش می یابد. لطفاً به جای آن از Androidx.ui.input.TextFieldValue استفاده کنید ( 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:

    1. Some calls will skip where they wouldn't have previously
    2. 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 the vararg version going forward. 5. The Pivotal annotation was deprecated. Use key 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 )

  • دکمه ، FloatingActionButton و Clickable اکنون دارای یک پارامتر enabled جداگانه هستند. برخی از پارامترها روی دکمه تغییر نام یا مرتب سازی شدند. ( i54b5a )

  • Replaced ButtonStyle with distinct functions and removed text (string) overload. برای اطلاعات استفاده به نمونه های به روز شده مراجعه کنید. ( 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 )