مواد را بنویسید

رابط کاربری Jetpack Compose را با اجزای طراحی مواد آماده برای استفاده بسازید. این نقطه ورود سطح بالاتر Compose است که برای ارائه مؤلفه هایی مطابق با آنچه در www.material.io توضیح داده شده است طراحی شده است.
آخرین به روز رسانی انتشار پایدار کاندید را آزاد کنید نسخه بتا انتشار آلفا
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.material:material:1.7.2"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

کاتلین

dependencies {
    implementation("androidx.compose.material:material: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.material:material-*:1.8.0-alpha02 منتشر شد. نسخه 1.8.0-alpha02 حاوی این تعهدات است.

نسخه 1.8.0-alpha01

4 سپتامبر 2024

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

تغییرات API

  • سازنده NavGraphBuilder.bottomSheet جدید برای ایجاد یک bottomSheet با args ایمن اضافه شد (( I28589 , I777db , b/351858980 ))

نسخه 1.7

نسخه 1.7.2

18 سپتامبر 2024

androidx.compose.material:material-*:1.7.2 منتشر شد. نسخه 1.7.2 شامل این commit ها است.

نسخه 1.7.1

10 سپتامبر 2024

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

نسخه 1.7.0

4 سپتامبر 2024

androidx.compose.material:material-*:1.7.0 منتشر شد. نسخه 1.7.0 شامل این commit ها است.

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

  • اجزای متریال برای استفاده از APIهای ریپل جدید منتقل شده اند و دیگر RippleTheme پرس و جو نمی کنند.
  • مؤلفه‌های موادی که قبلاً یک MutableInteractionSource می‌پذیرفتند و به‌طور پیش‌فرض remember { MutableInteractionSource() } می‌آوردند، اکنون یک MutableInteractionSource ته‌پذیر را می‌پذیرند و به‌جای آن به‌طور پیش‌فرض null می‌شوند. اگر در حال بالا بردن و استفاده از MutableInteractionSource نیستید، باید null را پاس کنید. این به برخی از مؤلفه‌ها اجازه می‌دهد تا تنها در صورت نیاز یک نمونه را ایجاد کنند و عملکرد را بهبود بخشند. همچنین توصیه می شود که تغییرات مشابهی را در اجزای خود ایجاد کنید.
  • BottomDrawer ، ModalBottomSheet ، BackdropScaffold و Bottomsheet استاندارد به API پایدار ارتقا یافته اند.

نسخه 1.7.0-rc01

21 آگوست 2024

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

نسخه 1.7.0-beta07

7 آگوست 2024

androidx.compose.material:material-*:1.7.0-beta07 منتشر شد. نسخه 1.7.0-beta07 حاوی این تعهدات است.

نسخه 1.7.0-beta06

24 جولای 2024

androidx.compose.material:material-*:1.7.0-beta06 منتشر شد. نسخه 1.7.0-beta06 حاوی این تعهدات است.

نسخه 1.7.0-beta05

10 جولای 2024

androidx.compose.material:material-*:1.7.0-beta05 منتشر شد. نسخه 1.7.0-beta05 حاوی این تعهدات است.

نسخه 1.7.0-beta04

26 ژوئن 2024

androidx.compose.material:material-*:1.7.0-beta04 منتشر شد. نسخه 1.7.0-beta04 حاوی این تعهدات است.

نسخه 1.7.0-beta03

12 ژوئن 2024

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

نسخه 1.7.0-beta02

29 مه 2024

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

تغییرات API

  • به‌روزرسانی API برای استایل کردن پیوندها: TextLinkStyles را به TextStyle منتقل کرد و TextDefaults از مواد حذف کرد ( I5477b )

نسخه 1.7.0-beta01

14 مه 2024

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

تغییرات API

  • API را برای دریافت پیوندهایی با موضوع مواد در متن به‌روزرسانی کرد. به طور خاص، روش‌ها را از TextDefaults برای ساخت LinkAnnotations با مضمون حذف کرد و HTML را با پیوندهای مضمون تجزیه کرد. در عوض، یک کلاس TextLinkStyles اضافه کرد که اجازه می دهد تا به پیوندها به عنوان یک پارامتر به Text composable استایل دهید. ( I31b93 )

نسخه 1.7.0-alpha08

1 مه 2024

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

تغییرات API

  • عدم اعمال backgroundColor به TextFieldDecorationBox و OutlinedTextFieldDecorationBox را برطرف کنید. جعبه های دکوراسیون اکنون یک پارامتر shape می پذیرند. ( I371c2 , b/307694651 )
  • RippleConfiguration#isEnabled حذف شده است و LocalRippleConfiguration پوچ شده است. برای غیرفعال کردن ریپل، به جای ارائه یک RippleConfiguration با isEnabled = false ، null به LocalRippleConfiguration ارائه کنید. ( I22725 )
  • پیوندهای متنی علاوه بر یک ظاهر طراحی معمولی، دارای یک گزینه استایل حالت فشرده، شناور و فوکوس هستند. متدهای TextDefaults هر کدام یک آرگومان pressedStyle برای پشتیبانی از آن دارند. ( IC473f , b/139312671 )

رفع اشکال

  • لایه بالای OutlinedTextField برای برچسب اکنون اندازه فونت سیستم را به خود اختصاص می دهد. ( IDc781 )

نسخه 1.7.0-alpha07

17 آوریل 2024

androidx.compose.material:material-*:1.7.0-alpha07 منتشر شد. نسخه 1.7.0-alpha07 حاوی این تعهدات است.

تغییرات API

  • پیوندهای متنی علاوه بر استایل معمولی، گزینه استایل حالت فشرده را نیز دریافت کردند، شناور و فوکوس شدند. ( I5f864 , b/139312671 )
  • یک شی TextDefaults اضافه کرد که حاوی متدهایی برای ساخت LinkAnnotation و تجزیه رشته با برچسب HTML است که MaterialTheme روی پیوندها اعمال می کند. ( I98532 , b/139312671 )

نسخه 1.7.0-alpha06

3 آوریل 2024

androidx.compose.material:material-*:1.7.0-alpha06 منتشر شد. نسخه 1.7.0-alpha06 حاوی این تعهدات است.

اعلامیه

  • androidx.compose.material دیگر نیازی به استفاده از همان نسخه از هر مصنوع این گروه maven ندارد. کاربران می توانند نسخه های کتابخانه های بنیاد Compose ( Ie5fba ) را ترکیب و مطابقت دهند.

تغییرات API

  • پیش‌فرض‌های ModalDrawer و BottomDrawer بیشتری را به شیء DrawerDefaults منتقل کرد. ( Ib5b2e )

نسخه 1.7.0-alpha05

20 مارس 2024

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

تغییرات API

  • پرچم ScaffoldSubcomposeInMeasureFix حذف شده است. ( I67363 )

نسخه 1.7.0-alpha04

6 مارس 2024

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

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

نسخه 1.7.0-alpha03

21 فوریه 2024

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

تغییرات API

  • BottomDrawer از آزمایشی به پایدار ارتقا یافته است. اکنون BottomDrawerState پیشرفت را به عنوان یک تابع نشان می دهد و امکان جستجوی پیشرفت بین اهداف خاص را فراهم می کند. BottomDrawerState اکنون اجازه سفارشی کردن مشخصات انیمیشن را می دهد، و confirmStateChange دیگر یک لامبدای آخر نیست. ( I9c029 , b/261423850 )
  • BackdropScaffold از آزمایشی به پایدار ارتقا یافته است. مشخصات انیمیشن در حال حاضر مطابق با دستورالعمل ها یک مشخصات tween است. پارامتر snackbarHost از BackdropScaffold دیگر آخرین پارامتر برای جلوگیری از اشتباه گرفتن با لامبداهای دنباله دار نیست. BackdropScaffoldState یک API progress(from, to) را برای جستجوی پیشرفت بین لنگرها نشان می دهد. ( I73f48 , b/261423218 )
  • ورق های پایین استاندارد از آزمایشی به پایدار ارتقا یافته اند. سازنده های منسوخ حذف شده اند. مشخصات انیمیشن در حال حاضر مطابق با دستورالعمل ها یک مشخصات بین المللی است. ( I3c1a8 , b/278692145 , b/261409034 )
  • ورق های پایینی مدال از آزمایشی به پایدار ارتقا یافته اند. سازنده های منسوخ حذف شده اند. مشخصات انیمیشن در حال حاضر مطابق با دستورالعمل ها یک مشخصات tween است. ( Ic53f4 , b/278692145 , b/266780235 , b/261409034 )

رفع اشکال

  • مشکلی که در آن BackdropScaffold می‌توانست در سناریوهای خاص در ترکیب با LookaheadScope خراب شود، برطرف شد. ( I51396 )
  • برای بهبود عملکرد، ترکیب فرعی داخل BottomSheetScaffold حذف شد. مشکلی که در آن BottomSheetScaffold در سناریوهای خاص در ترکیب با LookaheadScope از کار می افتاد، برطرف شد. ( I2f90c )
  • ترکیب فرعی در ModalBottomSheetLayout حذف شد و عملکرد را بهبود بخشید. ( I7a025 )

نسخه 1.7.0-alpha02

7 فوریه 2024

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

نسخه 1.7.0-alpha01

24 ژانویه 2024

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

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

  • اجزای متریال برای استفاده از APIهای ریپل جدید منتقل شده اند و دیگر RippleTheme پرس و جو نمی کنند.

تغییرات API

  • rememberRipple و RippleTheme از Material-ripple منسوخ شده‌اند و API‌های Ripple و RippleConfiguration جدید به کتابخانه‌های متریال و سایر سیستم‌های طراحی اضافه شده‌اند.

  • مؤلفه‌های موادی که قبلاً یک MutableInteractionSource می‌پذیرفتند و به‌طور پیش‌فرض { MutableInteractionSource() } را به خاطر می‌آوردند، اکنون یک MutableInteractionSource ته‌پذیر را می‌پذیرند و به‌جای آن به‌طور پیش‌فرض null می‌شوند. اگر در حال بالا بردن و استفاده از MutableInteractionSource نیستید، باید null را پاس کنید. این به برخی از مؤلفه‌ها اجازه می‌دهد تا تنها در صورت نیاز یک نمونه را ایجاد کنند و عملکرد را بهبود بخشند. همچنین توصیه می شود که تغییرات مشابهی را در اجزای خود ایجاد کنید.

نسخه 1.6

نسخه 1.6.8

12 ژوئن 2024

androidx.compose.material:material-*:1.6.8 منتشر شد. نسخه 1.6.8 شامل این commit ها است.

نسخه 1.6.7

1 مه 2024

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

نسخه 1.6.6

17 آوریل 2024

androidx.compose.material:material-*:1.6.6 منتشر شد. از آخرین نسخه تغییری نکرده است.

نسخه 1.6.5

3 آوریل 2024

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

نسخه 1.6.4

20 مارس 2024

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

نسخه 1.6.3

6 مارس 2024

androidx.compose.material:material-*:1.6.3 منتشر شد. نسخه 1.6.3 شامل این commit ها است.

رفع اشکال

  • رگرسیون را در ExposedDropdownMenu رفع کنید تا دوباره قابل فوکوس شود. ( c0e0ed , b/323694447 )

نسخه 1.6.2

21 فوریه 2024

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

نسخه 1.6.1

7 فوریه 2024

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

نسخه 1.6.0

24 ژانویه 2024

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

نسخه 1.6.0-rc01

10 ژانویه 2024

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

نسخه 1.6.0-beta03

13 دسامبر 2023

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

نسخه 1.6.0-beta02

29 نوامبر 2023

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

نسخه 1.6.0-beta01

15 نوامبر 2023

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

نسخه 1.6.0-alpha08

18 اکتبر 2023

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

تغییرات API

  • یک تابع materialIcon به نفع اضافه بار آن که یک پارامتر autoMirror می گیرد، منسوخ کنید. ( Ia338d )

رفع اشکال - افزایش خودکار ارتفاع مورد ناوبری برای محتوای بزرگ. ( 0c4ecc , b/272336962 )

نسخه 1.6.0-alpha07

4 اکتبر 2023

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

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

نسخه 1.6.0-alpha06

20 سپتامبر 2023

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

تغییر رفتار

  • عملکرد مربوط به کشو از BottomSheetScaffold حذف شد. برای دستیابی به عملکرد قبلی، BottomSheetScaffold خود را در یک کشو قابل ترکیب بپیچید. برای مثال به BottomSheetScaffoldWithDrawerSample مراجعه کنید. ( I1dcc8 )

تغییرات API

  • یک پرچم موقت برای کنترل اینکه آیا Scaffold باید فرزندان خود را در حین اندازه گیری یا در حین قرار دادن اندازه گیری کند، معرفی کرد. به طور پیش فرض، این در اندازه گیری اندازه گیری می شود. اگر در رابطه با رفتار جدید با مشکلاتی روبرو هستید، لطفاً مشکلی را ثبت کنید. ( If6e3b )

نسخه 1.6.0-alpha05

6 سپتامبر 2023

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

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

  • هنگامی که در طرح‌بندی‌های راست به چپ ارائه می‌شوند، پشتیبانی از آیکون‌های آینه‌ای خودکار اضافه شد. آیکون‌های موجود در ماژول‌های material-icons-core و material-icons-extended هم‌اکنون مجموعه‌های آیکون اضافی را برای پشتیبانی از آینه‌سازی خودکار در زمانی که نماد اجازه می‌دهد، ارائه می‌کنند. مجموعه‌های جدید با Icons.AutoMirrored.Filled... و غیره پیشوند دارند و نمادهایی را نگه می‌دارند که به صورت خودکار در طرح‌بندی‌های RTL منعکس می‌شوند. برای لیست نمادهایی که می توانند (و باید) به صورت خودکار آینه شوند، به لیست نمادهای مواد مراجعه کنید.

تغییرات API

  • هنگامی که در طرح‌بندی‌های راست به چپ ارائه می‌شوند، پشتیبانی از آیکون‌های آینه‌ای خودکار اضافه شد. آیکون‌های موجود در ماژول‌های material-icons-core و material-icons-extended هم‌اکنون مجموعه‌های آیکون اضافی را برای پشتیبانی از آینه‌سازی خودکار در زمانی که نماد اجازه می‌دهد، ارائه می‌کنند. مجموعه‌های جدید با Icons.AutoMirrored.Filled... و غیره پیشوند دارند و نمادهایی را نگه می‌دارند که به صورت خودکار در طرح‌بندی‌های RTL منعکس می‌شوند. برای لیست نمادهایی که می توانند (و باید) به صورت خودکار آینه شوند، به لیست نمادهای مواد مراجعه کنید. ویژگی‌های نماد قبلاً ارائه‌شده برای آن نمادها اکنون به‌عنوان منسوخ علامت‌گذاری شده‌اند و یک پیشنهاد بلوک جایگزین برای کمک به انتقال ارائه می‌دهند. در صورتی که کنترل خاصی برای بازتاب آیکون ها در RTL ندارید، توصیه می کنیم به مجموعه جدید آیکون ها مهاجرت کنید. برای مثال، Icons.Filled.ArrowBack باید دوباره به Icons.AutoMirrored.Filled.ArrowBack تبدیل شود. ( I4b511 )

نسخه 1.6.0-alpha04

23 آگوست 2023

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

رفع اشکال

  • مشکلی را برطرف کرد که در آن برخی از مؤلفه‌ها با استفاده از Subcomposition (مثلاً BottomSheetScaffold ) در داخل یک داربست در یک LookaheadScope سعی داشتند اندازه خود را خیلی زود بخوانند. ( If2c5d )
  • محاسبه offset DropdownMenu ثابت شد، بنابراین افست های x صرفاً به جهت طرح بندی محلی بستگی دارد، و زمانی که منو نزدیک به پایین صفحه باشد، افست های y دیگر برعکس نمی شوند. ( Iccc74 , b/294103942 )
  • ساختار داخلی BottomSheetScaffold را بهینه کرد و مشکل احتمالی BottomSheetScaffold در داخل LookaheadLayout برطرف کرد. ( Ic0afa )

نسخه 1.6.0-alpha03

9 آگوست 2023

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

تغییرات API

  • اجزای Material2 اکنون یک API جداگانه برای عبور windowInsets برای پشتیبانی از عملکرد لبه به لبه در اندروید دارند. برخلاف مولفه های material3، کامپوننت های material2 به طور پیش فرض از inset ها پشتیبانی نمی کنند و مقدار باید به صورت دستی ارسال شود. برای راهنمایی به نمونه های مربوطه مراجعه کنید. ( I655e8 )

نسخه 1.6.0-alpha02

26 جولای 2023

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

تغییرات API

  • ما وابستگی چگالی را به سطح جزء منتقل می کنیم. این برای مؤلفه‌های زیر اعمال می‌شود: SwipeToDismiss و مؤلفه‌های مبتنی بر برگه. لطفاً از اضافه بار جدید ارائه شده در جایی که چگالی یک پارامتر است استفاده کنید. ( I1846e )
  • حاشیه نویسی های اضافی برای تعیین ورودی های مجاز به composable ها ( I51109 )
  • فایل های API به روز شده برای حاشیه نویسی حذف سازگاری ( I8e87a , b/287516207 )
  • تراز شروع جدید برای FabPosition اضافه شد ( Ib7aea , b/170592777 )
  • TextFieldColorsWithIcons در Material 2 به نفع TextFieldColors منسوخ شده است. هنگام نادیده گرفتن leadingIconColor یا trailingIconColor ، اضافه بار را نیز با interactionSource لغو کنید. ( Id57ed , b/199377790 )

نسخه 1.6.0-alpha01

21 ژوئن 2023

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

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

  • includeFontPadding اکنون به طور پیش فرض در تایپوگرافی Material 2 false است. سبک ارتفاع خط پیش‌فرض نیز به Trim.None و Alignment.Center تغییر یافته است و lineHeight صریح (در sp) به TextStyle Typography اضافه شده است. اگر می‌خواهید این مقادیر را سفارشی کنید، با اسناد API مشورت کنید و برای توضیح عمیق این تغییرات، پست وبلاگ را ببینید. ( Icabc3 , I3f801 , I04c03 )

تغییرات API

  • APIهای Swipeable Material منسوخ شده‌اند. لطفاً به APIهای AnchoredDraggable Foundation مراجعه کنید که برای موارد استفاده ساده و پیچیده بهینه شده اند. ( I732e0 )

رفع اشکال

  • BottomSheetState ، ModalBottomSheetState و BottomDrawerState اکنون یک ویژگی پیشرفت را نشان می دهند که نشان دهنده پیشرفت بین لنگر فعلی (ته نشین شده) و نزدیکترین لنگر در جهت کشیدن انگشت است. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )

نسخه 1.5

نسخه 1.5.4

18 اکتبر 2023

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

نسخه 1.5.3

4 اکتبر 2023

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

نسخه 1.5.2

27 سپتامبر 2023

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

نسخه 1.5.1

6 سپتامبر 2023

androidx.compose.material:material-*:1.5.1 بدون هیچ تغییری منتشر شد. نسخه 1.5.1 حاوی این commit ها است.

نسخه 1.5.0

9 آگوست 2023

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

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

تغییرات API

  • تغییرات در APIهای Swipeable1 در BottomSheetScaffold گنجانده شده است. پارامتر confirmStateChange BottomSheetState به confirmValueChange تغییر نام داده است. progress اکنون به عنوان یک مقدار شناور نمایش داده می شود. animateTo و snapTo داخلی هستند. به جای آن از expand() و collapse() استفاده کنید. direction و overflow حذف شده است. offset با requireOffset() جایگزین شده است. I323b4
  • عملکرد snapTo را در کشو به عنوان API غیر آزمایشی علامت گذاری کنید. ( Ib9c18 , b/261425368 )
  • یک پارامتر رنگ مسیر برای نشانگرهای پیشرفت دایره ای، و یک پارامتر سرپوش برای هر دو شاخص پیشرفت دایره ای و خطی اضافه شده است. ( Ie668c , b/216325962 , b/222964817 )
  • تغییر نام به ModalBottomSheetState ، ModalBottomSheetState.Saver و rememberModalBottomSheetState 's confirmStateChange to confirmValueChange . ( Ib48d1 )
  • Modifier.minimumInteractiveComponentSize اضافه کنید. اگر عنصر کوچکتر باشد، می توان از آن برای رزرو حداقل 48.dp در اندازه برای رفع ابهام از تعاملات لمسی استفاده کرد. ( I33f58 , b/258495559 )
  • تغییرات در APIهای Swipeable در ModalBottomSheetLayout گنجانده شده است. ModalBottomSheetState animateTo دیگر پارامتر animationSpec را نمی گیرد و افست در معرض نمایش اکنون قابل تهی است. برای نیاز به افست requireOffset استفاده کنید. ( Ia2e79 )
  • افزودن حاشیه نویسی @JvmDefaultWithCompatibility ( I8f206 )
  • تغییرات در APIهای Swipeable در ModalDrawer. DrawerState animateTo در ModalDrawer. DrawerState با متدهای باز و بسته جایگزین شده است و افست اکنون باطل است. برای نیاز به افست requireOffset استفاده کنید. ( I3de9e )
  • کشوها و برگه‌ها برای تأخیر صحیح فشارها در صورتی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند، به‌روزرسانی شدند.
  • اضافه شدن پارامتر minLines به متریال و متریال3 Text، TextField و OutlinedTextField که امکان تنظیم حداقل ارتفاع جزء بر حسب تعداد خطوط را فراهم می کند ( I4af1d )

رفع اشکال

  • مشکلی را برطرف می‌کند که در آن pullRefresh سرعت را مصرف نمی‌کرد و باعث نمایش Overscroll می‌شد. همچنین امضای API لامبدا onRelease را در Modifier.pullRefresh تغییر داد تا یک Float برای سرعت مصرف شده برگرداند ( I7db65 , b/266874741 )
  • BottomSheetState ، ModalBottomSheetState و BottomDrawerState اکنون یک ویژگی پیشرفت را نشان می دهند که نشان دهنده پیشرفت بین لنگر فعلی (ته نشین شده) و نزدیکترین لنگر در جهت کشیدن انگشت است. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )
  • عمل رد کردن AlertDialog را برطرف کرد تا زمانی که کنش‌ها روی هم قرار می‌گیرند تا در عرض گفتگو قرار گیرند، در زیر عمل تأیید ظاهر شود. این اصلاح پیاده سازی را با مشخصات طراحی متریال هماهنگ می کند. ( I029de , b/235454277 )
  • وقتی gesturesEnabled روی false تنظیم شود، BottomSheetScaffold دیگر در پیمایش تودرتو شرکت نخواهد کرد. ( I634f3 , b/215403277 )
  • رفع اشکالی که در آن BottomSheetScaffold در صورت ارائه محتوای خالی برای اسلات ها خراب می شد. ( Ib24a5 , b/235588730 )
  • PullRefreshIndicator رهگیری کلیک ها/رویدادهای اشاره گر را رفع می کند. ( 2494256 , b/271777421 )
  • مشکلی که در آن ModalBottomSheetLayout در یک مورد لبه در تغییر جهت از کار می افتاد، برطرف شد. انیمیشن های چیدمان (مانند Modifier.animateContentSize ) در/روی محتوای برگه اکنون به راحتی کار می کنند. ( I2f981 , b/266780234 )

نسخه 1.5.0-rc01

26 جولای 2023

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

نسخه 1.5.0-beta03

28 ژوئن 2023

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

رفع اشکال

  • BottomSheetState ، ModalBottomSheetState و BottomDrawerState اکنون یک ویژگی پیشرفت را نشان می دهند که نشان دهنده پیشرفت بین لنگر فعلی (ته نشین شده) و نزدیکترین لنگر در جهت کشیدن انگشت است. ( I1b317 , b/271169225 , b/276375124 , b/276776071 , b/270066861 )

نسخه 1.5.0-beta02

7 ژوئن 2023

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

نسخه 1.5.0-beta01

24 مه 2023

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

تغییرات API

  • افست های DrawerState و BottomDrawerState دیگر باطل نمی شوند. آنها در عوض Float.NaN را برای نشان دادن عدم وجود افست برمی گردانند. ( Ie9855 )
  • برای کنترل وضعیت اسکرول عمودی آیتم های منوی نمایش داده شده، گزینه ای برای عبور در یک ScrollState هنگام ساخت یک DropdownMenu یا یک ExposedDropdownMenu اضافه شده است. ( Idb009 , b/185304441 )
  • پشتیبانی برای فعال/غیرفعال کردن ژست ModalBottomSheetLayout اضافه کنید تا کاربر بتواند این را برای صفحه پایینی برجسته تر پیکربندی کند ( I40af0 )
  • یک پارامتر رنگ را به BasicText اضافه کرد تا امکان متحرک سازی کارآمد یا تنظیم رنگ متن را فراهم کند. ( Iffd88 , b/246961787 )
  • تغییر نام ویژگی Semantics isContainer به isTraversalGroup ( I121f6 )

رفع اشکال

  • عمل رد کردن AlertDialog را برطرف کرد تا زمانی که کنش‌ها روی هم قرار می‌گیرند تا در عرض گفتگو قرار گیرند، در زیر عمل تأیید ظاهر شود. این اصلاح پیاده سازی را با مشخصات طراحی متریال هماهنگ می کند. ( I029de , b/235454277 )

نسخه 1.5.0-alpha04

10 مه 2023

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

تغییرات API

  • ما وابستگی چگالی را به سطح جزء منتقل می کنیم. این برای اجزای زیر اعمال می‌شود: BottomDrawer ، ModalBottomSheetLayout ، BottomSheetScaffold ، Switch ، ModalDrawer . لطفاً از اضافه بار جدید ارائه شده در جایی که چگالی یک پارامتر است استفاده کنید. ( I8fbd8 )

نسخه 1.5.0-alpha03

19 آوریل 2023

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

تغییرات API

  • برای استفاده از SwipeableV2 APIهای داخلی BottomDrawer به روز کنید. به دلیل این که BottomDrawerState اکنون فقط دارای APIS تعریف شده در سطح کلاس خواهد بود، روش ها/ویژگی ها را از SwipeableState به ارث نمی برد. ما از ترکیب با SwipeableV2State داخلی استفاده می کنیم. Offset اکنون یک ویژگی ممیز شناور قابل تهی است، مقدار فعلی و مقدار هدف Swipe هنوز هم از طریق ویژگی های currentValue و targetValue قابل دسترسی هستند. روش‌های سطح کلاس قبلی مانند open/expand/close و ویژگی‌هایی مانند isOpen/isClosed همچنان پشتیبانی می‌شوند. ( Iad40c , b/178529942 , b/220676296 )

رفع اشکال

  • داخلی های مؤلفه سوئیچ به روز شده است. سوئیچ اکنون نزدیکترین (وضعیت هدف) را هنگام کشیدن پیش نمایش می کند. ( ID90d4 )
  • محتوای صفحه متحرک (به عنوان مثال Modifier.animateContentSize در محتوای برگه) در BottomSheetScaffold بهینه شده است و اکنون به راحتی کار می کند. ( Ia913c , b/270518202 , b/254446195 )
  • وقتی gesturesEnabled روی false تنظیم شود، BottomSheetScaffold دیگر در پیمایش تودرتو شرکت نخواهد کرد. ( I634f3 , b/215403277 )

نسخه 1.5.0-alpha02

5 آوریل 2023

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

رفع اشکال

  • رفع اشکالی که در آن BottomSheetScaffold در صورت ارائه محتوای خالی برای اسلات ها خراب می شد. ( Ib24a5 , b/235588730 )
  • PullRefreshIndicator رهگیری کلیک ها/رویدادهای اشاره گر را رفع می کند ( 2494256 , b/271777421 )

نسخه 1.5.0-alpha01

22 مارس 2023

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

رفع اشکال

  • یک نمونه جریان مجدد گروه تراشه اضافه کنید. بالشتک افقی بین تراشه های فرزند را در نمونه گروه تراشه تک خطی به روز کنید تا با مشخصات مطابقت داشته باشد. ( I3b155 )
  • مشکلی که در آن ModalBottomSheetLayout در یک مورد لبه در تغییر جهت از کار می افتاد، برطرف شد. انیمیشن های چیدمان (مانند Modifier.animateContentSize ) در/روی محتوای برگه اکنون به راحتی کار می کنند. ( I2f981 , b/266780234 )

نسخه 1.4

نسخه 1.4.3

3 مه 2023

androidx.compose.material:material-*:1.4.3 بدون هیچ تغییری منتشر شد (فقط یک نسخه برآمده).

نسخه 1.4.2

19 آوریل 2023

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

نسخه 1.4.1

5 آوریل 2023

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

نسخه 1.4.0

22 مارس 2023

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

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

تغییرات API

  • Modifier.minimumInteractiveComponentSize اضافه کنید. اگر عنصر کوچکتر باشد، می توان از آن برای رزرو حداقل 48.dp در اندازه برای رفع ابهام از تعاملات لمسی استفاده کرد. ( I33f58 , b/258495559 )
  • تغییرات در APIهای Swipeable در ModalDrawer گنجانده شده است. animateTo در DrawerState با متدهای باز و بسته جایگزین شده است و افست اکنون باطل است. برای نیاز به افست requireOffset استفاده کنید. ( I3de9e )
  • اضافه شدن پارامتر minLines به متریال و متریال3 Text، TextField و OutlinedTextField که امکان تنظیم حداقل ارتفاع جزء بر حسب تعداد خطوط را فراهم می کند ( I4af1d )
  • پارامتر minLines به BasicText و BasicTextField اضافه شد. این اجازه می دهد تا حداقل ارتفاع این ترکیبات را از نظر تعداد خطوط تنظیم کنید ( I24294 , b/122476634 )

نسخه 1.4.0-rc01

8 مارس 2023

androidx.compose.material:material-*:1.4.0-rc01 بدون هیچ تغییری منتشر شد. نسخه 1.4.0-rc01 حاوی این commit ها است.

نسخه 1.4.0-beta02

22 فوریه 2023

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

تغییرات API

  • تغییرات در APIهای Swipeable در BottomSheetScaffold گنجانده شده است. پارامتر confirmStateChange BottomSheetState به confirmValueChange تغییر نام داده است. progress اکنون به عنوان یک مقدار شناور نمایش داده می شود. animateTo و snapTo داخلی هستند. به جای آن از expand() و collapse() استفاده کنید. direction و overflow حذف شده است. offset با requireOffset() جایگزین شده است. ( I323b4 )

رفع اشکال

  • نقش‌های معنایی را از سطوح قابل کلیک و انتخاب حذف کرد، مؤلفه‌های به‌روزرسانی شد که از آنها برای تنظیم نقش‌ها با استفاده از modifier.semantics استفاده می‌کردند ( Ibb4ba )
  • به‌روزرسانی جزئی برای نمادهای متریال توسعه‌یافته که آیکون‌های desktop_mac پر شده، directions و kitchen را تغییر می‌دهد. ( I65f5e )

نسخه 1.4.0-beta01

8 فوریه 2023

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

تغییرات API

  • مشکلی را برطرف می‌کند که در آن pullRefresh سرعت را مصرف نمی‌کرد و باعث نمایش Overscroll می‌شد. همچنین امضای API لامبدا onRelease را در Modifier.pullRefresh تغییر داد تا یک Float برای سرعت مصرف شده برگرداند ( I7db65 , b/266874741 )
  • گیرنده ویژگی بازیابی LocalMinimuTouchTargetEnforcement و علامت گذاری آن به عنوان منسوخ شده و هدایت به LocalMinimumInteractiveComponentEnforcement . ( I60dd5 )

نسخه 1.4.0-alpha05

25 ژانویه 2023

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

رفع اشکال

  • مشکلی که در آن حالت ModalBottomSheetLayout's HalfExpanded اشتباه محاسبه شده بود و به نظر می‌رسید که برگه شناور است، برطرف شد. ( I8c615 , b/265610459 )
  • یک اشکال در ModalBottomSheetLayout که در آن ورق هنگام رفتن از حالت پنهان به حالت قابل مشاهده در برخی شرایط خراب می شد، رفع شد. ( Ia9265 , b/265444789 )

نسخه 1.4.0-alpha04

11 ژانویه 2023

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

تغییرات API

  • در ویژگی معنایی IsContainer در Surfaces اضافه شده است. این ویژگی در تغییر بعدی استفاده خواهد شد که ترتیب پیمایش را بر اساس معنای معنایی عناصری مانند سطوح تعیین می کند. ( I63379 )
  • عملکرد snapTo را در کشو به عنوان API غیر آزمایشی علامت گذاری کنید. ( Ib9c18 , b/261425368 )
  • یک پارامتر رنگ مسیر برای نشانگرهای پیشرفت دایره ای، و یک پارامتر سرپوش برای هر دو شاخص پیشرفت دایره ای و خطی اضافه شده است. ( Ie668c , b/216325962 , b/222964817 )
  • تغییر نام به ModalBottomSheetState ، ModalBottomSheetState.Saver و rememberModalBottomSheetState 's confirmStateChange to confirmValueChange . ( Ib48d1 )
  • تهی پذیری بیشتر نوع بازگشت توابع منسوخ-مخفی ( Ibf7b0 )
  • Modifier.minimumInteractiveComponentSize اضافه کنید. اگر عنصر کوچکتر باشد، می توان از آن برای رزرو حداقل 48.dp در اندازه برای رفع ابهام از تعاملات لمسی استفاده کرد. ( I33f58 , b/258495559 )
  • تغییرات در APIهای Swipeable در ModalBottomSheetLayout گنجانده شده است. ModalBottomSheetState animateTo دیگر پارامتر animationSpec را نمی گیرد و offset در معرض نمایش اکنون قابل تهی است. برای نیاز به offset requireOffset استفاده کنید. ( Ia2e79 )

رفع اشکال

  • ورق ModalBottomSheetLayout اکنون حداکثر عرض 640 dp دارد. ( I71a4f , b/234927577 )
  • مشکلی را برطرف می کند که در آن rememberPullRefreshState در طول زمان refreshThreshold و refreshingOffset به روز نمی کرد. ( Ifed10 , b/263159832 )
  • پیشرفت برای شاخص های پیشرفت اکنون به درستی به محدوده مورد انتظار آن محدود شده است. ( I8a7eb , b/262262727 )
  • هنگامی که ModalBottomSheetState هنوز هیچ لنگری دریافت نکرده است، هنگامی که snapTo یا animateTo فراخوانی می شود به جای ایجاد استثنا، currentValue بدون انیمیشن به روز می کند. ( I2c91b )
  • وضعیت فعال در اجرای Material 2 FilterChip رفع شد. ( ID326a , b/261329817 )
  • رفع اشکالی که در آن ModalBottomSheetLayout در صورتی که HalfExpanded بود هنگام چرخش از حالت عمودی به افقی خراب می شد. لطفاً مطمئن شوید که initialValue صحیح را ارسال می کنید، برای مثال با بررسی پیکربندی. ( Ie8df7 , b/182882364 )
  • مشکلی را که در آن در صورت خالی بودن ModalBottomSheetLayout برگه خراب می شد، برطرف شد. ModalBottomSheetLayout اکنون به محتوای برگه خالی اجازه می دهد. اگر محتوای برگه خالی باشد، فقط حالت Hidden خواهد داشت. ( Ic2288 , b/200980998 , b/216693030 )

موضوع شناخته شده

  • هنگام به‌روزرسانی از androidx.compose.foundation:1.4.0-alpha03 به androidx.compose.foundation:1.4.0-alpha04 ، ممکن است با خطای java.lang.NoSuchFieldError مواجه شوید. اینجا جایی است که موضوع در ابتدا گزارش شده است. اصلاحی ارسال شده است و در به‌روزرسانی بعدی Compose در دسترس خواهد بود. به عنوان یک کار، کتابخانه های androidx.compose.material و androidx.compose.material3 خود را به آخرین نسخه (1.1.0-alpha04) به روز کنید یا androidx.compose.foundation خود را به 1.4.0-alpha03 تنزل دهید.

نسخه 1.4.0-alpha03

7 دسامبر 2022

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

تغییرات API

  • افزودن حاشیه نویسی @JvmDefaultWithCompatibility ( I8f206 )
  • تغییرات در APIهای Swipeable در ModalDrawer گنجانده شده است. animateTo در DrawerState با متدهای open و close جایگزین شده است و افست اکنون باطل است. برای نیاز به افست requireOffset استفاده کنید. ( I3de9e )
  • یک Modifier API برای جستجوی اطلاعات اسکرول اجداد اضافه شده است. ( I2ba9d , b/203141462 )
  • در Clickable برای به تأخیر انداختن صحیح تعاملات مطبوعاتی استفاده می‌شود، زمانی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند.
  • هنگامی که در داخل یک Scrollable ViewGroup استفاده می شود، Clickables ثابت شد که امواج را به درستی به تاخیر نمی اندازند.
  • کشوها و برگه‌ها برای تأخیر صحیح فشارها در صورتی که حرکات ممکن است به رویدادهای پیمایش تبدیل شوند، به‌روزرسانی شدند.

رفع اشکال

  • مشکلی که در آن PullRefreshIndicator می‌توانست پس از فراخوانی onRefresh گیر کند، اگر وضعیت تازه‌سازی به درست تغییر نمی‌کرد، برطرف شد. ( Ie2416 , b/248274004 )

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

  • Compose UI و Compose Material اکنون به Lifecycle 2.5.1 بستگی دارد. ( I05ab0 , b/258038814 )

نسخه 1.4.0-alpha02

9 نوامبر 2022

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

تغییرات API

  • awaitFirstDown و waitForUpOrCancellation اکنون PointerEventPass برای انعطاف پذیری بیشتر می پذیرند. ( I7579a , b/212091796 )
  • اضافه شدن پارامتر minLines به متریال و متریال3 Text، TextField و OutlinedTextField که امکان تنظیم حداقل ارتفاع جزء بر حسب تعداد خطوط را فراهم می کند ( I4af1d )
  • پارامتر minLines به BasicTex t و BasicTextField اضافه شد. این اجازه می دهد تا حداقل ارتفاع این ترکیبات را از نظر تعداد خطوط تنظیم کنید ( I24294 , b/122476634 )

نسخه 1.4.0-alpha01

24 اکتبر 2022

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

تغییرات API

  • یک روش جدید، awaitEachGesture() برای آشکارسازهای اشاره اضافه شد. شبیه به forEachGesture() عمل می‌کند، اما حلقه روی ژست‌ها کاملاً در AwaitPointerEventScope عمل می‌کند تا رویدادها بین تکرارها از بین نرود.
  • forEachGesture() به نفع awaitEachGesture() منسوخ شده است زیرا اجازه می دهد رویدادها بین حرکات از بین بروند. ( Iffc3f , b/251260206 )

نسخه 1.3

نسخه 1.3.1

9 نوامبر 2022

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

نسخه 1.3.0

24 اکتبر 2022

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

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

تغییر رفتار شکسته

  • حداکثر ارتفاع پشتیبانی شده در گفتگوها و پنجره های بازشو به 8dp کاهش یافته است.

تغییرات API

  • یک مؤلفه Pull-To-Refresh به Compose اضافه کنید ( I29168 ).
  • نام پارامتر را از مقادیر به مقدار در RangeSlider تغییر دهید ( I3b79a ).

نسخه 1.3.0-rc01

5 اکتبر 2022

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

نسخه 1.3.0-beta03

21 سپتامبر 2022

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

تغییرات API

  • یک مؤلفه Pull-To-Refresh به Compose اضافه کنید ( I29168 )

نسخه 1.3.0-beta02

7 سپتامبر 2022

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

هیچ تغییری از نسخه 1.3.0-beta01 وجود ندارد

نسخه 1.3.0-beta01

24 آگوست 2022

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

تغییر رفتار شکسته

حداکثر ارتفاع پشتیبانی شده در گفتگوها و پنجره های بازشو به 8dp کاهش یافته است.

حداکثر ارتفاع پشتیبانی شده برای مکالمه ها و پنجره های بازشو Compose از 30dp به 8dp کاهش یافته است. این تغییر بر دیالوگ‌ها و پنجره‌های بازشو سفارشی متریال و رابط کاربری تأثیر می‌گذارد. این تغییر برای کاهش اشکال دسترس‌پذیری در نسخه‌های Android زیر S و برای اطمینان از اینکه سرویس‌های دسترس‌پذیری در آن پنجره‌ها قادر به تعامل با محتوای داخل گفتگو یا پنجره بازشو هستند، ایجاد شده است.

تنها در صورتی تحت تأثیر این تغییر قرار می گیرید که در حال ایجاد یک گفتگوی سفارشی یا اجرای پنجره بازشو با ارتفاع تنظیم شده روی سطوح بالاتر از 8dp باشید. ارتفاع دیالوگ یا پنجره بازشو را پایین بیاورید. اگر می‌خواهید از این رفتار جدید انصراف دهید، کادر گفتگو یا پنجره بازشوی خود را با مجموعه ارتفاع مورد نظر جدا کنید. این توصیه نمی‌شود، زیرا دسترسی‌پذیری ممکن است تأثیر منفی بگذارد و این بر عهده توسعه‌دهنده است که مطمئن شود قسمت پایینی گفتگو یا پنجره بازشو قابل تعامل و خواندن توسط سرویس‌های دسترس‌پذیری است.

نسخه 1.3.0-alpha03

10 آگوست 2022

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

نسخه 1.3.0-alpha02

27 جولای 2022

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

مشارکت خارجی

  • رفع مشکل AnimatedVisibility با FloatingActionButton در Scaffold ( I3a0ae , b/224005027 )

نسخه 1.3.0-alpha01

29 ژوئن 2022

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

تغییرات API

  • تغییر نام پارامتر از مقادیر به مقدار در RangeSlider ( I3b79a )

رفع اشکال

  • نمونه نشان را به‌روزرسانی کنید تا توضیحات محتوای معنادارتری ارائه کنید. ( I10b9d )

نسخه 1.2

نسخه 1.2.1

10 آگوست 2022

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

نسخه 1.2.0

27 جولای 2022

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

نسخه 1.2.0-rc03

29 ژوئن 2022

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

  • از 1.2.0-rc02 تغییری ایجاد نشده است.

نسخه 1.2.0-rc02

22 ژوئن 2022

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

نسخه 1.2.0-rc01

15 ژوئن 2022

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

تغییرات API

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

رفع اشکال

  • نشان را با تب نماد اصلی به‌روزرسانی می‌کند تا به جای نماد، نشان را روی برچسب بچسباند. ( I90993 )

نسخه 1.2.0-beta03

1 ژوئن 2022

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

رفع اشکال

  • رفع اشکالی که در آن BottomSheetScaffold روی سایه نوار بالای برنامه طراحی می‌کرد. اکنون BottomSheetScaffold حالت ورق را هنگام قرار دادن Snackbar ها نیز در نظر می گیرد: در حالت جمع شده، Snackbar ها بالای صفحه و FAB قرار می گیرند. در حالت گسترش یافته، نوارهای اسنک به پایین ورق متصل می شوند. ( Ia80b5 , b/187771422 )

نسخه 1.2.0-beta02

18 مه 2022

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

نسخه 1.2.0-beta01

11 مه 2022

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

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

  • این اولین نسخه بتا 1.2 است!

تغییرات API

  • تغییر نام TextFieldDefaults.BorderStroke که یک خط مرزی را در OutlinedTextField به TextFieldDefaults.BorderBox می کشد. ( I5f295 )

نسخه 1.2.0-alpha08

20 آوریل 2022

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

تغییرات API

  • مصرف جزئی (موقعیت پایین یا پایین) در PointerInputChange منسوخ شده است. می توانید از consume() برای مصرف کامل تغییر استفاده کنید. می توانید از isConsumed برای تعیین اینکه آیا شخص دیگری قبلاً تغییر را مصرف کرده است یا خیر استفاده کنید.
  • PointerInputChange::copy() اکنون همیشه یک کپی کم عمق ایجاد می کند. این بدان معنی است که کپی های PointerInputChange پس از مصرف یکی از کپی ها مصرف می شود. اگر می خواهید یک PointerInputChange بدون محدودیت ایجاد کنید، به جای آن از سازنده استفاده کنید. ( Ie6be4 , b/225669674 )

نسخه 1.2.0-alpha07

6 آوریل 2022

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

نسخه 1.2.0-alpha06

23 مارس 2022

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

تغییرات API

  • به‌روزرسانی‌های کارت API قابل کلیک برای دنبال کردن تغییرات در Surface API ( I56bcb )
  • به‌روزرسانی‌هایی برای Material 2 Surface API که عملکردهای اضافه بار اضافی را برای سطوح قابل انتخاب و تعویض اضافه می‌کند. ( Ifcca5 )

نسخه 1.2.0-alpha05

9 مارس 2022

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

تغییرات API

  • LazyVerticalGrid و LazyHorizontalGrid اکنون پایدار هستند. ( I307c0 )
  • LazyVerticalGrid/LazyHorizontalGrid و تمام apiهای مرتبط به زیر بسته .grid منتقل شدند. لطفا واردات خود را از androidx.compose.foundation.lazy به androidx.compose.foundation.lazy.grid به روز کنید. ( I2d446 , b/219942574 )
  • تغییر قبلی مربوط به تکیه صرفاً به View برای WindowInsetsControllerCompat برگردانده شد و دوباره به یک پنجره نیاز داشت که برای مدیریت برخی از پرچم‌های پنجره لازم است. ViewCompat.getWindowInsetsController به نفع WindowCompat.getInsetsController منسوخ کرد تا اطمینان حاصل شود که از پنجره صحیح استفاده می شود (مثلاً اگر View در یک گفتگو باشد). ( I660ae , b/219572936 )
  • متن: includeFontPadding اکنون به طور پیش فرض خاموش است. مشکلات برش در نتیجه includeFontPadding=false رسیدگی می شود و هیچ برشی نباید برای اسکریپت های بلند رخ دهد. ( I31c84 , b/171394808 )
  • یک LazyVerticalGrid API جدید برای تعریف اندازه‌های محوری اضافه کرد ( I17723 )

نسخه 1.2.0-alpha04

23 فوریه 2022

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

تغییرات API

  • Add support for filter chips ( I39a6e , b/192585545 )
  • TextFieldDecorationBox و OutlinedTextFieldDecorationBox اضافه شد. استفاده از آنها همراه با BasicTextField به شما کمک می کند تا فیلد متنی سفارشی را بر اساس فیلدهای متنی Material Design بسازید اما گزینه های بیشتری برای سفارشی سازی داشته باشید.
  • راهی برای تنظیم بالشتک های افقی و عمودی در فیلدهای متنی ارائه شده است. ( I8c9f1 , b/203764564 , b/191543915 , b/189971673 , b/183136600 , b/179882597 , b/168003617 )
  • ComposableTarget ، ComposableTargetMarker و ComposableOpenTarget اضافه شده است که به شما امکان می دهد گزارش زمان کامپایل را از زمانی که یک تابع قابل ترکیب هدف قرار دادن اپلیکیشنی نامیده می شود که برای استفاده از آن طراحی نشده است، گزارش دهد.

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

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

نسخه 1.2.0-alpha03

9 فوریه 2022

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

رفع اشکال

نسخه 1.2.0-alpha02

26 ژانویه 2022

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

تغییرات API

  • NonRestartableComposable به متدهایی اضافه شد که بیش از حد متدهای موجود بدون منطق پیچیده هستند. این بررسی‌های حافظه‌سازی تولید شده توسط کامپایلر را کاهش می‌دهد (برابر) برای همه پارامترهایی که در تابع داخلی که فراخوانی می‌شود تکرار می‌شوند. ( I90490 )
  • اضافه کردن پشتیبانی از تراشه اکشن ( I07100 , b/192585545 )

نسخه 1.2.0-alpha01

12 ژانویه 2022

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

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

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

مشارکت خارجی

  • ModalBottomSheetState اکنون یک پرچم isSkipHalfExpanded دارد. می توان آن را از طریق سازنده تنظیم کرد یا بعداً با تنظیم ویژگی isSkipHalfExpanded ModalBottomSheetState روی true به روز کرد. به روز رسانی مقدار isSkipHalfExpanded باعث ترکیب مجدد صفحه می شود. ( I18b86 , b/186669820 )

نسخه 1.1

نسخه 1.1.1

23 فوریه 2022

androidx.compose.material:material-*:1.1.1 منتشر شد. نسخه 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.material:material-*:1.1.0 منتشر شد. نسخه 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.material:material-*:1.1.0-rc03 منتشر شد. نسخه 1.1.0-rc03 حاوی این commit ها است.

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

توجه داشته باشید که با توجه به Compose 1.0، مؤلفه‌های Material فضای طرح‌بندی خود را گسترش می‌دهند تا دستورالعمل‌های دسترس‌پذیری مواد را با اندازه هدف لمس کنند . به عنوان مثال، هدف لمس دکمه به حداقل اندازه 48x48dp گسترش می یابد، حتی اگر اندازه دکمه را کوچکتر تنظیم کنید. این Compose Material را با همان رفتار Material Design Components تراز می‌کند و اگر Views و Compose را با هم ترکیب کنید، رفتار ثابتی را ارائه می‌دهد. این تغییر همچنین تضمین می‌کند که وقتی رابط کاربری خود را با استفاده از اجزای Compose Material ایجاد می‌کنید، حداقل الزامات برای دسترسی به هدف لمسی برآورده می‌شود.

رفع اشکال

  • هنگام بازرسی حداقل اصلاح کننده های هدف لمسی، اطلاعات اشکال زدایی بهتری برای بازرس طرح اضافه شد. ( aosp/1955036 )

نسخه 1.1.0-rc01

15 دسامبر 2021

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

رفع اشکال

  • شعاع گوشه‌ای را که برای Checkbox es اعمال می‌شود اصلاح کنید ( I38b03 , b/175198975 , b/202309440 )

نسخه 1.1.0-beta04

1 دسامبر 2021

androidx.compose.material:material-*:1.1.0-beta04 منتشر شد. نسخه 1.1.0-beta04 حاوی این تعهدات است.

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

  • به روز شده تا با Kotlin 1.6.0 سازگار باشد

نسخه 1.1.0-beta03

17 نوامبر 2021

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

نسخه 1.1.0-beta02

3 نوامبر 2021

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

رفع اشکال

  • موج‌ها و سایر نشانه‌ها اکنون فقط در صورتی به تأخیر می‌افتند که در داخل یک ظرف ()Modifier.scrollable باشند، به‌جای اینکه همیشه برای یک رویداد پایین به تأخیر بیفتند. ( Ibefe0 , b/203141462 )

نسخه 1.1.0-beta01

27 اکتبر 2021

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

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

  • موج‌ها اکنون از حالت‌های شناور و فوکوس پشتیبانی می‌کنند، بنابراین با شناور کردن / فوکوس کردن مؤلفه‌ای مانند Button اکنون همپوشانی وضعیت صحیح نشان داده می‌شود.

نسخه 1.1.0-alpha06

13 اکتبر 2021

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

تغییرات API

  • اضافه بار بدون فرزند برای Layout اضافه شد، با کارایی بهبود یافته ( Ib0d9a )
  • پیاده سازی ExposedDropdownMenu بر اساس ExposedDropdownMenuBox با TextField و DropdownMenu در داخل ( If60b2 )
  • dismissOnOutsideClick به PopupProperties اضافه شد و جایگزین dismissOnClickOutside شد که منسوخ شده بود. ویژگی جدید موقعیت کلیک و محدودیت‌های لنگر را دریافت می‌کند و کنترل دقیق‌تری بر روی اینکه آیا onDismissRequest باید فراخوانی شود یا خیر، فراهم می‌کند. به عنوان مثال، این می تواند برای جلوگیری از حذف لنگر برای لمس لنگر مفید باشد.
    • updateAndroidWindowManagerFlags به PopupProperties اضافه شد که کنترل سطح پایینی را بر پرچم‌هایی که از پنجره بازشو به WindowManager Android ارسال می‌شود، ارائه می‌دهد. پارامتر lambda پرچم‌هایی است که از مقادیر PopupProperties محاسبه می‌شوند که منجر به پرچم‌های WindowManager می‌شود: به عنوان مثال قابل فوکوس‌پذیر. نتیجه لامبدا پرچم‌های نهایی خواهد بود که به WindowManager اندروید منتقل می‌شود. به‌طور پیش‌فرض، updateAndroidWindowManagerFlags پرچم‌های محاسبه‌شده از روی پارامترها را بدون تغییر می‌گذارد. این API باید با احتیاط استفاده شود، فقط در مواردی که پنجره بازشو الزامات رفتاری بسیار خاصی دارد. ( I6e9f9 )

نسخه 1.1.0-alpha05

29 سپتامبر 2021

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

تغییرات API

  • حداقل اندازه هدف لمسی را برای اجزای Material که هدف لمسی قابل دسترسی ندارند اضافه می کند. از آنجایی که این کار باعث ایجاد فاصله اضافی در اطراف اجزا برای اطمینان از داشتن یک هدف لمسی به اندازه کافی بزرگ می شود، ممکن است رابط کاربری موجود را تغییر دهد که اندازه این اجزا را اندازه بصری آنها فرض می کنند و اندازه هدف لمسی را در نظر نمی گیرند. می توانید از ترکیب آزمایشی LocalMinimumTouchTargetEnforcement محلی برای غیرفعال کردن این رفتار در یک سلسله مراتب استفاده کنید، اما این فقط به عنوان یک دریچه فرار موقت در حین به روز رسانی رابط های کاربری موجود برای محاسبه حداقل اندازه جدید در نظر گرفته شده است. ( I9b966 , b/149691127 , b/171509422 )
  • رابط آزمایشی TextFieldColorsWithIcons اضافه شد، و TextFieldColors را برای ارائه InteractionSource به رنگ‌های اصلی و رنگ‌های انتهایی گسترش داد. این امکان تغییر ظاهر TextField را با توجه به وضعیت فوکوس فراهم می کند. ( I66923 , b/198402662 )

نسخه 1.1.0-alpha04

15 سپتامبر 2021

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

تغییرات API

  • performGesture و GestureScope منسوخ شده است که با performTouchInput و TouchInjectionScope جایگزین شده اند. ( Ia5f3f , b/190493367 )
  • touchBoundsInRoot به SemanticsNode اضافه شد که شامل حداقل اندازه هدف لمسی است تا توسعه دهندگان بتوانند اطمینان حاصل کنند که اهداف لمسی حداقل های دسترسی را برآورده می کنند. ( I2e14b , b/197751214 )

رفع اشکال

  • به کلیپ اجازه دهید تا مرزهای هدف لمسی را فراتر از منطقه کلیپ گسترش دهد تا حداقل اهداف هدف لمسی انجام شود. ( I43e10 , b/171509422 )
  • Divider به‌روزرسانی شده قابل ساخت برای رعایت پارامتر ضخامت Dp.Hairline برای پشتیبانی از ترسیم تقسیم‌کننده‌های تک پیکسلی بدون توجه به تراکم نمایشگر. ( I16ffb , b/196840810 )

نسخه 1.1.0-alpha03

1 سپتامبر 2021

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

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

  • Compose 1.1.0-alpha03 را به روز کرد تا به Kotlin 1.5.30 وابسته باشد. ( I74545 )

تغییرات API

  • روش تست اضافه شده برای به دست آوردن مرزهای بریده شده. ( I6b28e )
  • حداقل اندازه هدف لمسی به ViewConfiguration برای استفاده در معناشناسی و ورودی اشاره گر برای اطمینان از دسترسی اضافه شده است. ( Ie861c )

نسخه 1.1.0-alpha02

18 آگوست 2021

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

مشارکت خارجی

  • رفتار SwipeableState را در مواردی که سوایپ آفست در یک خطای گرد کردن یک لنگر قرار دارد، اصلاح کنید. ( I03d39 , b/191993377 )

نسخه 1.1.0-alpha01

4 آگوست 2021

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

تغییرات API

  • متد DrawScope#drawImage به‌روزرسانی شده که منبع و مقصد را مصرف می‌کند تا پارامتر FilterQuality اختیاری را مصرف کند. این برای هنر پیکسلی مفید است که در نظر گرفته شده است که برای هنر مبتنی بر پیکسل بزرگ‌تر شود. BitmapPainter + Image به روز شده قابل ساخت برای مصرف پارامتر اختیاری FilterQuality ( Ie4fb0 , b/180311607 )
  • BadgeBox به BadgedBox تغییر نام داد، پارامترها را برای پذیرش Badge composable تغییر داد. جزء نشان اضافه شد که محتوای نشان معمولی برای BadgedBox است. ( I639c6 )
  • جزء NavigationRail اضافه شد، برای اطلاعات استفاده به اسناد و نمونه ها مراجعه کنید ( I8de77 )

رفع اشکال

  • یک نمونه نمایشی برنامه NavigationRail و کاتالوگ با تراز پایین اضافه شد. ( I3cffc )
  • اکنون دیالوگ ها از رفتار اندازه پلت فرم پیروی می کنند. برای لغو این رفتار، usePlatformDefaultWidth را روی false تنظیم کنید. ( ایفاد ب/192682388 )
  • نسخه ی نمایشی راه آهن ناوبری به برنامه کاتالوگ اضافه شد. ( I04960 )
  • نسخه ی نمایشی نشان به برنامه کاتالوگ اضافه شد. ( If285d )

نسخه 1.0

نسخه 1.0.5

3 نوامبر 2021

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

رفع اشکال

  • رفع ردیابی خرابی نمونه‌های مشتق شده ازStateOf. ( aosp/1792247 )

نسخه 1.0.4

13 اکتبر 2021

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

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

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

نسخه 1.0.3

29 سپتامبر 2021

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

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

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

نسخه 1.0.2

1 سپتامبر 2021

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

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

نسخه 1.0.1

4 آگوست 2021

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

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

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

نسخه 1.0.0

28 ژوئیه 2021

androidx.compose.material:material-*:1.0.0 منتشر شد. نسخه 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.material:material-*:1.0.0-rc02 منتشر شد. نسخه 1.0.0-rc02 حاوی این commit ها است.

رفع اشکال

  • اکنون دیالوگ ها از رفتار اندازه پلت فرم پیروی می کنند. برای لغو این رفتار، usePlatformDefaultWidth را روی false تنظیم کنید. ( ایفاد ب/192682388 )

نسخه 1.0.0-rc01

1 ژوئیه 2021

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

تغییرات API

  • جزء BadgeBox اضافه شد، برای اطلاعات استفاده به اسناد و نمونه ها مراجعه کنید ( I5e284 )
  • useDefaultMaxWidth در PopupProperties به usePlatformDefaultWidth تغییر نام داد. ( I05710 )
  • اکنون دیالوگ ها می توانند از کل عرض صفحه استفاده کنند. ( I83929 , b/190810877 )
  • اضافه شدن اجرای اسلایدر محدوده آزمایشی ( I2f4b3 )

رفع اشکال

  • برای تراز کردن با مشخصات طراحی مواد OutlinedTextField با ورودی نامعتبر، استفاده از رنگ خطا برای برچسب زمانی که از برچسب به‌عنوان مکان‌نما استفاده می‌شود، متوقف شد. مورد دوم زمانی درست است که متن ورودی در قسمت متن وجود نداشته باشد و قسمت متن در فوکوس نباشد. با این تغییر، معنی پارامتر error:Boolean در TextFieldColors.labelColor() نیز تغییر کرد: اکنون اگر از برچسب به عنوان یک مکان نگهدار استفاده شود، مقدار false برمی‌گردد حتی زمانی که ورودی نامعتبر باشد. ( I45f78 )

نسخه 1.0.0-beta09

16 ژوئن 2021

androidx.compose.material:material-*:1.0.0-beta09 منتشر شد. نسخه 1.0.0-beta09 حاوی این تعهدات است.

تغییرات API

  • پارامتر Shape به OutlinedTextField اضافه شد تا بتوانید شکل حاشیه را سفارشی کنید ( I8f39e , b/181322957 )
  • TextOverflow به یک کلاس درون خطی تغییر می کند. ( I433af )

رفع اشکال

  • Scrim در BottomDrawer، BackdropScaffold و ModalBottomSheetLayout ناپدید می شود سپس Color.Unspecified ارسال می شود ( I2d899 , b/182063309 )

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

این نسخه قوانین نمایه را به ماژول های نوشتن زیر اضافه می کند ( 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 بسته بندی می شوند، تعریف کنند. هنگامی که یک APK ساخته می شود که شامل این مصنوعات است، این قوانین با هم ادغام می شوند و قوانین ادغام شده برای ساختن یک نمایه ART باینری فشرده که مخصوص APK است استفاده می شود. سپس ART می‌تواند از این نمایه زمانی که APK بر روی دستگاه‌ها نصب می‌شود به منظور کامپایل کردن زیرمجموعه خاصی از برنامه برای بهبود عملکرد برنامه، به‌ویژه اولین اجرا، استفاده کند. توجه داشته باشید که این هیچ تاثیری بر برنامه های قابل اشکال زدایی نخواهد داشت.

نسخه 1.0.0-beta08

2 ژوئن 2021

androidx.compose.material:material-*:1.0.0-beta08 منتشر شد. نسخه 1.0.0-beta08 حاوی این تعهدات است.

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

تغییر API شکستن رفتار

  • رفتار شکسته: کارت اکنون کلیک‌ها را مصرف می‌کند و باعث می‌شود کلیک‌هایی که از طریق Card(Modifier.clickable) اضافه می‌شوند، غیرفعال شوند. لطفاً از اضافه بار آزمایشی جدید کارتی استفاده کنید که onClick را می پذیرد. ( Ia8744 , b/183775620 )
    • اضافه بار کارت جدید اضافه شده است که با کلیک ها و همچنین سایر عملکردهای قابل کلیک کنترل می کند: نشانگر، منبع تعامل، فعال/غیرفعال. امکان استفاده از یک کارت معمولی غیرقابل کلیک با Modifier.clickable وجود نداشت زیرا کارت در آن موارد نشانه موج دار شدن را قطع نمی کند.
  • رفتار شکسته: Surface اکنون کلیک‌ها را مصرف می‌کند و باعث می‌شود کلیک‌هایی که از طریق Surface(Modifier.clickable) اضافه می‌شوند، بدون عملیات باشند. لطفاً از اضافه بار آزمایشی جدید Surface استفاده کنید که onClick را می پذیرد. ( I73e6c , b/183775620 )
    • اضافه‌بار سطحی جدیدی اضافه شد که با کلیک‌ها و همچنین سایر عملکردهای قابل کلیک کنترل می‌کند: نشانه، منبع تعامل، فعال/غیرفعال. امکان استفاده از یک Surface معمولی غیرقابل کلیک با Modifier.clickable وجود نداشت زیرا Surface در آن موارد نشانگر ریپل را قطع نمی کند.

تغییرات API

  • FabPosition از enum به کلاس inline تبدیل شد تا از گسترش احتمالی در آینده پشتیبانی کند ( I030fb )
  • استفاده مجدد از enum در کلاس های درون خطی برای جلوگیری از مشکلات مربوط به عبارات جامع هنگام اضافه شدن مقادیر enum جدید. ( I2b5eb )
  • برای جلوگیری از نشان دادن موج در حین پیمایش / کشیدن، یک زمان ضربه را به قابل کلیک/تغییر اضافه می کند ( Ia2704 , b/168524931 )
  • ویژگی های ContentDescription و Text semantics دیگر مقادیر منفرد نیستند، بلکه فهرست هستند. این امکان ادغام آنها را همانطور که هستند به جای الحاق می دهد. همچنین APIهای تست بهتری برای استفاده از این تغییرات ارائه شده است ( Ica6bf , b/184825850 )
  • Modifier.focusModifier() منسوخ شده و با Modifier.focusTarget() جایگزین شده است ( I6c860 )
  • Enum FocusState با رابط FocusState جایگزین شد ( Iccc1a , b/187055290 )
  • اکنون که اجرای ریپل با پشتوانه View پایدار است، LocalRippleNativeRendering حذف شد ( I7fab3 , b/188569367 )

رفع اشکال

  • Modifier.onGloballyPositioned() تغییر کرد تا مختصات این اصلاح کننده را در زنجیره اصلاح کننده گزارش کند، نه مختصات طرح بندی را پس از اعمال همه اصلاح کننده ها. این بدان معنی است که اکنون ترتیب اصلاح کننده ها بر مختصاتی که گزارش می شود تأثیر می گذارد. ( Ieb67d , b/177926591 )
  • یک README برای کاتالوگ Compose Material موجود اضافه شد. ( If9191 )

نسخه 1.0.0-beta07

18 مه 2021

androidx.compose.material:material-*:1.0.0-beta07 منتشر شد. نسخه 1.0.0-beta07 حاوی این تعهدات است.

تغییرات API

  • دیگر نیازی به استفاده از روش های توسعه برای پشتیبانی مسیر در Navigation Compose ندارید. ( I22beb , b/172823546 )

نسخه 1.0.0-beta06

5 مه 2021

androidx.compose.material:material-*:1.0.0-beta06 منتشر شد. نسخه 1.0.0-beta06 حاوی این تعهدات است.

تغییرات API

  • Ripple برای استفاده داخلی RippleDrawable در دستگاه‌های Android منتقل شده است. این به این معنی است که انیمیشن‌های ریپل در RenderThread اتفاق می‌افتند و بنابراین حتی زمانی که رشته رابط کاربری تحت بار است، مانند هنگام حرکت بین صفحه‌ها، صاف خواهند بود. این سطح API ریپل را تغییر نمی دهد، اما ممکن است تغییرات رفتاری در نتیجه این تغییر ایجاد شود. برای کمک به انتقال، LocalRippleNativeRendering اضافه شده است - یک مقدار false به این CompositionLocal ارائه کنید تا به اجرای ریپل قبلی در CompositionLocalProvider برگردید. این API موقت است و در آینده حذف خواهد شد، بنابراین اگر با مشکلاتی مواجه شدید که باعث می‌شود از این API استفاده کنید، لطفاً یک اشکال را ثبت کنید . ( I902f8 , b/168777351 , b/183019123 )
  • APIهای دسترسی CollectionInfo و CollectionItemInfo اضافه شد که اجازه می‌دهد مجموعه و موارد آن را برای خدمات دسترس‌پذیری علامت‌گذاری کنید ( Id54ef , b/180479017 )
  • error دسترسی به API اضافه شد که اجازه می‌دهد گره‌ای را که دارای ورودی نامعتبر است علامت‌گذاری کنید ( I12997 , b/180584804 , b/182142737 )

رفع اشکال

  • به روز رسانی Compose Material کاتالوگ اجرا از: https://github.com/google/accompanist/pull/365. ( I25dc3 )
  • کودکان ردیف و ستون با وزن (پر = نادرست) دیگر باعث نمی شوند والدین کل فضای محور اصلی موجود را پر کنند. ( Ied94d , b/186012444 , b/184355105 )

نسخه 1.0.0-beta05

21 آوریل 2021

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

رفع اشکال

  • تصاویر کاشی مؤلفه، انتخابگر تم، و نشانی‌های وب منوی خاص‌تر به کاتالوگ Compose Material موجود اضافه شد. ( I9b58e )

نسخه 1.0.0-beta04

7 آوریل 2021

androidx.compose.material:material-*:1.0.0-beta04 منتشر شد. نسخه 1.0.0-beta04 حاوی این تعهدات است.

تغییرات API

  • تغییر API: وضعیت DrawerState دیگر SwipeableState آزمایشی را گسترش نمی‌دهد.
    • تغییر API: BottomDrawerState اکنون به‌عنوان آزمایشی علامت‌گذاری شده است، تا مطابق با مؤلفه قبلی آزمایشی BottomDrawer ( I81114 ، b/181656094 )
  • نام hideSoftwareKeyboard و showSoftwareKeyboard را در SoftwareKeyboardController به ترتیب برای hide() و show() تغییر دهید.
    • رابط کامل CompositionLocal را برای LocalSoftwareKeyboardController ارائه دهید، که به آن اجازه می دهد تنظیم شود (به ویژه در آزمایش ها مفید است) ( I579a6 )
  • LiveRegion Accessibility API اضافه شده است. اگر گره به‌عنوان یک منطقه زنده علامت‌گذاری شود، سرویس‌های دسترسی به‌طور خودکار تغییرات آن را به کاربر اطلاع می‌دهند ( Idcf6f ، b/172590946 )

رفع اشکال

  • اضافه شدن اجرای کاتالوگ Compose Material به ماژول موجود. در حال حاضر گم شده است: تصاویر کاشی جزء، انتخابگر طرح زمینه (در تغییرات بعدی اضافه می شود). ( Ie7a94 )

نسخه 1.0.0-beta03

24 مارس 2021

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

تغییرات API

  • DefaultMonotonicFrameClock منسوخ شده است. تماس withFrameNanos یا Recomposer.runRecomposeAndApplyChanges بدون MonotonicFrameClock اکنون باعث ایجاد IllegalStateException می شود. ( I4eb0d )
  • یک API LeadingIconTab جدید برای پشتیبانی از نمایش نماد و متن درون خطی در یک برگه اضافه کرد. ( I23267 )

مشارکت خارجی

  • [توسط Jossi Wolf] BottomDrawer اکنون محتوای شکاف کشو را می‌پیچد. BottomDrawer یک IllegalStateException را زمانی که والد قد نامحدودی دارد پرتاب نمی کند. اگر کشوی پایینی کوچکتر از 50 درصد اصلی خود باشد، اکنون به حالت باز می شود. اسناد اطراف BottomDrawerState و ModalBottomSheetLayoutState به روز شده اند. BottomDrawerState#isOpen اگر در حالت باز یا باز شده باشد اکنون true را برمی گرداند. ( I87241 )

نسخه 1.0.0-beta02

10 مارس 2021

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

تغییرات API

  • API محلی ترکیب LocalSoftwareKeyboardController جدید برای جایگزینی رابط کاربری SoftwareKeyboardController قبلی در TextField اضافه شد. ( I5951e , b/168778053 )

رفع اشکال

  • اعمال محدودیت در استفاده عمومی از APIهای آزمایشی ( I6aa29 , b/174531520 )
  • تراز افقی پیش‌فرض TopAppBar و BottomAppBar را به Start تغییر داد، مطابق با Row ( Ib2dc7 )
  • یک ماژول جدید و رابط کاربری مکان‌نما برای کاتالوگ Compose Material اضافه شد که در حال حاضر در نسخه‌های نمایشی آزمایشی یکپارچه‌سازی موجود تودرتو شده است. ( Idfcb3 )
  • androidx.compose.ui:ui دیگر به AppCompat یا Fragment وابسته نیست. اگر از ComposeView در برنامه‌تان استفاده می‌کنید، و از Fragment و/یا AppCompat استفاده می‌کنید، مطمئن شوید که از AppCompat 1.3+ / Fragment 1.3+ استفاده می‌کنید - این نسخه‌ها برای تنظیم صحیح چرخه حیات و صاحبان حالت ذخیره‌شده مورد نیاز برای ComposeView مورد نیاز هستند. ( I1d6fa , b/161814404 )

نسخه 1.0.0-beta01

24 فوریه 2021

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

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

تغییرات API

  • اصلاح کننده های اندازه تغییر نام دادند. Modifier.width/height/size به requireWidth/requiredHeight/requiredSize تغییر نام داد. Modifier.preferredWidth/preferredHeight/preferredSize به width/height/size تغییر نام دادند. ( I5b414 )
  • imageResource و vectorResource اکنون به ترتیب توابع پسوندی در ImageBitmap و ImageVector هستند. load{Image,Vector,Font}عملکردهای منبع حذف شده است. ( I89130 )
  • اصلاح‌کننده‌های اندازه‌گیری به درونی‌ها دیگر تجربی نیستند. ( I15744 )
  • ادعاهای dp حذف شده ( I798d2 )
  • پاسخ تماس SoftwareKeyboardController را از تمام فیلدهای متنی حذف کرد تا به زودی با یک API جدید جایگزین شود. ( Iae869 , b/168778053 )
  • لامبداهای اکشن Switch، Checkbox و RadioButton اکنون باطل هستند. نمونه‌های ردیف قابل کلیک باکس انتخاب برای استفاده از این ویژگی به‌روزرسانی شدند. ( If601b , b/171819073 )
  • 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 )
  • اسلایدر اکنون از حالت فعال/غیرفعال پشتیبانی می‌کند ( I6d56b ، b/179793072 )
  • TextInputSession جدید برای جلسات ورودی از اجزای متنی سطح پایین مانند CoreTextField ایجاد کرد. ( I8817f , b/177662148 )
  • AnimationEndReason.Interrupted حذف شد. CancellationException در صورت قطع شدن انیمیشن پرتاب می شود. ( I2cbbc , b/179695417 )
  • @ExperimentalRippleApi را حذف کرد و RippleAlpha به یک کلاس با خصوصیات به جای رابط تغییر داد. ( I6df7c )
  • اضافه شده رابط TextFieldColors برای نشان دادن رنگ های مختلف مورد استفاده در TextField و OutlinedTextField در حالت های مختلف. برای اجرای پیش‌فرض به TextFieldDefaults.textFieldColors و TextFieldDefaults.outlinedTextFieldColors مراجعه کنید.
    • پارامتر isErrorValue داخل TextField و OutlinedTextField به isError تغییر نام داد. ( I831f9 , b/171305338 , b/168004067 )
  • اصلاحگر selectionGroup را اضافه کنید که اجازه می دهد مجموعه ای از Tabs یا RadioButtons را برای اهداف دسترسی علامت گذاری کنید ( Ie5c29 )
  • LazyListState.animateScrollToItem را اضافه کنید

    این روش به یک مورد خاص در لیست پیمایش می کند. ( I4bfd7 )

  • ScrollableState.smoothScrollBy() به animateScrollBy() تغییر نام داد LazyListState.snapToItemIndex() به scrollToItem() تغییر نام داد ScrollState.smoothScrollTo() به animateScrollTo() ( I3 )

  • همه مواردی که با @ReadOnlyComposable علامت‌گذاری شده‌اند اکنون در زمان کامپایل اعتبارسنجی می‌شوند تا اطمینان حاصل شود که فقط با سایر @ReadOnlyComposables تماس می‌گیرند ( I58961 )

  • TargetAnimation API حذف شده است. ( If47d1 , b/177457083 )

  • موقعیت پیمایش در اصلاح کننده. verticalscroll ()/HorizontalScroll () با INTS Now ( I81298 ) نشان داده شده است

  • بسته های روشهای SmoothsCrollby و Scrollby به androidx.compose.foundation.gestures.* ( I3F7C1 ، B/175294473 )

  • FlingConfig به Flingbehavior تغییر نام داده است و اکنون امکان سفارشی سازی انیمیشن تعلیق را به جای پوسیدگی های از پیش تعریف شده فراهم می کند. ( I02B86 ، B/175294473 )

  • اصلاح کننده های اندازه تغییر نام دادند. اصلاح کننده. عرض/ارتفاع/اندازه به عرض مورد نیاز/مورد نیاز/مورد نیاز تغییر نام داده شد. اصلاح کننده. preferredwidth/preferredheight/preferredsize به عرض/ارتفاع/اندازه تغییر نام داده شد. ( i5b414 )

  • DefaultMinsizeConstraints به DefaultMinsize تغییر نام داد. ( i4eaae )

  • جهت گیری به بسته بنیاد منتقل شده است. VelocirtTracker از ui.gesture به ui.input.pointer منتقل شد. ( IFF4A8 ، B/175294473 )

  • drawerstate.open () و drawerstate.close () اکنون توابع را به حالت تعلیق در می آورند. برای به دست آوردن دامنه ترکیب برای تماس با آنها ، از یادآوری coroutinescope () استفاده کنید ( i16f60 ، b/175294473 )

  • ارائه دهندگان به ComposionLocalProvider تغییر نام داده اند

    • سازنده ترکیب دیگر یک پارامتر کلیدی را نمی پذیرد و از بین رفته است.
    • CurrentCompositeKeyHash به جای یک عملکرد سطح بالایی ، به یک ویژگی سطح بالایی تبدیل شده است.
    • ComposionData و ComposionGroup به Androidx.compose.runtime.tooling namespace منتقل شده اند
    • ComposableLambda به جای کلاس بتونی یک رابط ساخته شده است و دیگر پارامترهای نوع ندارد.
    • ComposableLambdan به جای کلاس بتونی یک رابط کاربری ساخته شده است و دیگر پارامترهای نوع ندارد.
    • عملکرد SnapshotFlow به Androidx.compose.runtime namespace منتقل شده است
    • روش ادغام SnapshotmittionPolicy دیگر آزمایشی نیست
    • عملکرد ClearRoots سطح بالا @TestOnly حذف شده است. دیگر لازم نیست.
    • توابع keysourceinfoof و resetsourceinfo برداشته شده است. آنها دیگر لازم نیستند.
    • Composer.CollectKeySourceInformation حذف شده است. دیگر لازم نیست.
    • isjoinedkey ، پیوستن به KeyLeft ، و به روش های پیوستن به روش های پیوسته برداشته شده است. آنها دیگر لازم نیستند.
    • API های مختلف سطح بالا منتقل شده و به پرونده های مختلف سازماندهی شده اند. با توجه به معناشناسی کلاس پرونده Kotlin ، این باعث می شود سازگاری باینری اما سازگاری با منبع باشد ، بنابراین نباید برای اکثر کاربران مسئله ای باشد.
    • ( i99b7d ، b/177245490 )
  • modifier.scrollable دوباره کار شده است. اکنون از رابط قابل پیمایش به جای کلاس ScrolleController استفاده می کند ( I4F5A5 ، B/174485541 ، B/175294473 )

  • modifier.draggable اکنون به جای یک لامبدا ساده ، draggablestate را می پذیرد. برای به دست آوردن همان رفتار مانند گذشته می توانید حالت را از طریق rememberDraggableState { delta -> } ایجاد کنید ( ICA70F ، b/175294473 )

  • ZoomableController.SmoothScaleby و ZoomableController.Stopanimation اکنون توابع تعلیق هستند. ( I7F970 ، B/177457083 )

  • برخی از API های قبلاً مستهلک را حذف کردند ( ICE5DA ، B/178633932 )

  • تغییرات API مواد زیر را ایجاد کرد:

    • پارامتر ContentPadding را به بالا/bottomAppbar اضافه کرد تا امکان سفارشی کردن بالشتک پیش فرض فراهم شود.
    • پارامترهای مرتب شده در پس زمینه برای پیروی از دستورالعمل های API برای پارامترهای مورد نیاز قبل از پارامترهای اختیاری.
    • پارامتر icon در BottomNavigationItem جابجا شده است تا بعد از selected و onClick باشد.
    • تغییر نام پارامتر alwaysShowLabels در bottomNavigationItem به alwaysShowLabel .
    • پارامترهای bodyContent در چند مؤلفه به content تغییر نام داد.
    • پارامترهای مرتب شده در ButtonDefaults.buttonColors() . لطفاً توجه داشته باشید که از آنجا که نوع پارامترها تغییر نکرده است ، این خطایی در کد شما ایجاد نمی کند - لطفاً اطمینان حاصل کنید که از پارامترهای نامگذاری شده استفاده می کنید یا سفارش را به صورت دستی به روز می کنید ، در غیر این صورت کد شما مانند گذشته کار نمی کند.
    • پارامتر secondaryVariant به darkColors() اضافه شد. این رنگ به طور معمول همانند secondary در موضوع تاریک است ، اما برای قوام و سفارشی سازی بیشتر اضافه می شود.
    • ElevationDefaults و AnimateElevation () از سطح API عمومی حذف شده است زیرا معمولاً مورد استفاده قرار نمی گرفتند / مفید.
    • با نام onValueChangeEnd در Slider به onValueChangeFinished تغییر نام داد و آن را باطل کرد.
    • تغییر نام پارامتر text در Snackbar به content برای قوام.
    • پارامتر contentPadding به DropdownMenuItem اضافه شده است تا امکان سفارشی کردن بالشتک پیش فرض و ساخته شده content را در RowScope فراهم کند.
    • با نام ModalDrawerLayout به ModalDrawer تغییر نام داد.
    • تغییر نام داد به BottomDrawerLayout به BottomDrawer .
    • ( i1cc66 )
  • BasicTextfield اکنون برای سفارشی سازی بهتر ، برس را به جای رنگ می پذیرد ( I83A36 )

  • ImagerEsource و VectorResource اکنون به ترتیب توابع برنامه ریزی در ImageBitmap و همراهان ImageVector هستند. بار {تصویر ، بردار ، فونت} توابع منبع حذف شده است. ( i89130 )

  • نشانه تغییر یافته#ایجاد () به نشانه#به یاد داشته باشید که به یادگار مانده (تعامل ایستگاه) و پارامتر تعامل ایستگاه را از نشانه#ترسیم () حذف می کند. نشانه گذاری فقط باید مسئول ترسیم جلوه های بصری باشد ، و عدم راه اندازی انیمیشن ها / وضعیت نوشتن در پاسخ به تغییرات تعامل. این انیمیشن ها و می نویسند که باید در عوض در rememberUpdatedIndication() اتفاق بیفتد. پارامتر indication در Modifier.indication نیز تغییر یافت تا یک پارامتر مورد نیاز باشد. ( IC1764 ، b/152525426 )

رفع اشکال

  • اضافه شده NewlocalSoftwareKeyboardController ترکیب محلی API برای جایگزینی رابط قبلی SoftwardkeyboardController در TextField. ( i658b6 ، b/168778053 )

نسخه 1.0.0-alpha12

10 فوریه 2021

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

تغییرات API

  • modifier.pointerinput اکنون به کلیدهای یادآوری نیاز دارد تا نشان دهد چه زمانی Coroutine تشخیص ورودی نشانگر باید برای وابستگی های جدید مجدداً راه اندازی شود. ( i849cd )
  • BottomDrawerLayout و ListItem به عنوان experimentalmaterialapi ( id766e ) مشخص شده است
  • paddingValues.Absolute اضافه شد و می توان در API های پذیرش PaddingValues ​​استفاده کرد. ( IA5F30 )
  • OnimeActionPerformed مستهلک می شود. به جای آن از صفحه کلید استفاده کنید ( IF0BBD ، B/179071523 )
  • به منظور مطابقت بهتر کنوانسیون های نامگذاری با ImageBitmap و ImageVector ، ImagePainter به Bitmappainter به VectorPainter موازی تغییر نام داده است. ( IBA381 ، B/174565889 )
  • animatable.snapto و animatable.stop اکنون توابع تعلیق هستند ( IF4288 )
  • ComponentActivity.SetContent به Androidx.activity.compose.setContent در Androidx.Activity: ماژول فعالیت-ترکیب منتقل شده است. ( ICF416 )
  • روشهای تخریب و کپی () از چندین کلاس که به ندرت مورد استفاده قرار می گرفت ، حذف شده است. ( I26702 ، b/178659281 )
  • Halfexpand () و گسترش () را در modalbottomsheetstate داخلی ( IC914E ) ایجاد کنید
  • نشانه تغییر یافته#CreateInstance به عنوان compable ، و تغییر مکان محلی برای حاوی یک نشانه ، نه () ->. ( i5eeea ، b/157150564 )
  • Alertdialog و DropdownMenu را به عنوان اندروید در حال حاضر منتقل کرد. پارامتر PopupProperties اضافه شده به DropdownMenu برای پیکربندی بیشتر پنجره های زیرین. ( i9c443 )
  • LoadFontResource مستهلک می شود. به جای آن از fontresource استفاده کنید. ImagerEsource ، LoadImagerEsource ، Vectorresource و LoadVectorResource مستهلک می شوند. به جای آن از PainterResource استفاده کنید. ( i6b809 )
  • پارامتر toggle و toggleModifier از DropdownMenu حذف کرده و به ترتیب به dropdownModifier ، dropdownOffset و dropdownContent به modifier ، offset و content تغییر نام داد. DropdownMenu اکنون به طور مداوم با Popup ، جایی که از طرح والدین برای موقعیت منو استفاده می شود ، رفتار می کند. در بیشتر موارد ، شما می توانید toggle به عنوان خواهر و برادر DropdownMenu حرکت دهید و هر دو را در یک Box ببندید. برای اطلاعات بیشتر در مورد استفاده از این API ، نمونه به روز شده را در مستندات مشاهده کنید. ( i884fb )
  • tointpx () به Roundtopx () تغییر نام داد. ( i9b7e4 ، b/173502290 )
  • Intbounds به Intrect تغییر نام داد و API بهبود یافت. ( i1f6ff )
  • اقدامات معنادار گسترش و فروپاشی اضافه شده است. Expand و Halfexpand در Modalbottomsheetstate ( IB5064 ) اضافه شده است
  • اصلاح کننده. draggesturefilter کاهش یافته است. به جای آن از Modifier.pointerInput { detectDragGestures (...)} استفاده کنید. از طرف دیگر ، از اصلاح کننده استفاده کنید. draggable برای یک محور کشیدن ( I0BA93 ، B/175294473 )
  • برای تغییر نام Ambient -> ComposionLocal تغییر نام داد. محیط هایی که قبلاً به نام Ambientfoo نامگذاری شده بودند ، اکنون ترکیبات Composions نامیده می شوند. ( i2d55d )
  • انتخاب به بنیاد منتقل شد. ( i7892b )
  • به طور مشابه با نحوه حذف state { 0 } composite و اکنون استفاده از آن را مانند remember { mutableStateOf(0) } ما قصد داریم savedInstanceState { 0 } حذف کنیم. در عوض باید از rememberSaveable { mutableStateOf(0) } استفاده کنید و در صورتی که نوع استفاده شده در داخل mutablestate در بسته نرم افزاری ذخیره می شود ، به طور خودکار ذخیره و بازیابی می شود. اگر قبلاً در حال عبور از یک شیء خرج سفارشی بودید ، اکنون باید از اضافه بار جدیدی از RembersAvelable استفاده کنید که دارای پارامتر stateSaver است. استفاده به این شکل خواهد بود: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } ( IB4C26 ، b/177338004 )
  • ProgressBarrangeInfo.Indeterminate برای علامت گذاری نامشخص میله های پیشرفت برای دسترسی ( I6FE05 )
  • ComposableContract به نفع سه حاشیه نویسی خاص دیگر کاهش یافته است.

    • @ComposableContract(restartable = false) تبدیل شده است @NonRestartableComposable
    • @ComposableContract(readonly = true) @ReadOnlyComposable تبدیل شده است
    • @ComposableContract(preventCapture = true) تبدیل شده است @DisallowComposableCalls
    • @ComposableContract(tracked = true) حذف شده است.
    • ( i60a9d )
  • emptyContent() و (@Composable () -> Unit).orEmpty() برنامه های کاربردی کاهش یافته است زیرا آنها دیگر تأثیر عملکرد مثبت یا ارزش ندارند ( I0484D )

  • به یاد داشته باشید که به یاد داشته باشید. ( i1366e ، b/177338004 )

  • Saver ، Listsaver () ، Mapsaver () ، AutoSaver از Androidx.compose.runtime.savedinstancestate به androidx.compose.runtime.saveable ( i77fe6 ) منتقل شد

  • پارامترهای مربوط به RounderCornershape ، cutcornershape و Cornerbasedshape از سمت چپ/راست به شروع/پایان تغییر نام داده شد تا از آینه کاری خودکار شکل در جهت RTL پشتیبانی کند. AbsoluteRounderCornershape و Absolutioncornershape برای مواردی معرفی شدند که آینه کاری خودکار مورد نظر نیست. ( i61040 ، b/152756983 )

  • متن تغییر یافته text و پارامترهای icon ، و پارامتر label BottomNavigationItem برای انتقال مجدد ، برای انتقال بهتر رفتار مؤلفه در صورت ارائه این پارامترها / ارائه نمی شود ، زیرا این امر بر اندازه و چیدمان مؤلفه تأثیر می گذارد. اگر در حال حاضر در حال عبور emptyContent() برای نشان دادن متن / نماد / برچسب هستید ، به جای آن باید از null استفاده کنید. ( i57ed4 )

  • تغییر نام ContentColorfor Parameter به BackgroundColor ( I5BB67 )

  • TabDefaults مستهلک شده و آن را با Tabrowdefaults جایگزین کرد. ( I0F189 )

  • API Colormatrix معرفی شده برای اصلاح مقادیر RGB از محتوای منبع منبع اصلاح شده Colorfilter API به عنوان یک رابط و مطابقت با اجرای Patheffect استفاده می شود. ( ICA1E8 )

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

  • اضافه کردن API SENANTICSPROPERTIES.PANETITLE. ( i20D5a )

  • پارامترهای فعال شده به Tab و BottomNavigationItem اضافه شده ، برای جلوگیری از کلیک آنها. تغییر BottomNavigationItem به Rowscope.BottomNavigationItem برای بیان بهتر الزامات طرح خود در API خود. ( id683d )

  • TAPGESSTUREFILTER ، DOUBLETAPEGREGHTUREFILTER ، LONGPRESSEGENTUREFILTER و PRESSINDICAITONGESTUREFILTER کاهش یافته است. به جای آن از modifier.clickable یا modifier.pointerinput با عملکرد DetectTapgreggestures استفاده کنید. ( i6baf9 ، b/175294473 )

  • Param LayoutDirection را به خط ایجاد شکل اضافه کنید. این اجازه می دهد تا شکل های آگاهانه جهت طرح را ایجاد کنید. ( i57c20 ، b/152756983 )

  • Recomposer.current() حذف شده است. [چکیده] ComposeView اکنون به طور پیش فرض به recomposer های پر از پنجره که توسط ViewTreeLifecycleLowner برای پنجره هدایت می شود ، ساخته شده است. در حالی که چرخه عمر میزبان متوقف می شود ، کنه های انیمیشن مبتنی بر Framenanos متوقف می شوند. ( i38e11 )

رفع اشکال

  • ایکون اکنون با توجه به اصلاح کننده های اندازه که روی آن اعمال می شود ، متناسب با اندازه خود قرار می گیرد. به عنوان مثال Icon(.., modifier = Modifier.size(50.dp) اکنون در یک فضای 50x50dp قرار می گیرد. ( IB2BA9 ، B/178796190 )

نسخه 1.0.0-alpha11

28 ژانویه 2021

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

تغییرات API

  • برخی از API های مواد را به عنوان @Experimental ( i5d20E ) ترویج می کند.
  • پارامتر توضیحات محتوا به تصویر و نماد اضافه شده است. برای ارائه توضیحات به خدمات دسترسی ( I2AC4C ) استفاده می شود
  • واسطهای پارامتر حالت را تغییر می دهد تا عملکردهای کامپوزیتی داشته باشد که State<T> باز می گرداند. Animatable.asState() را اضافه می کند تا بتواند یک Animatable به یک حالت را آسان تر کند. همچنین AnimateElevation را به عنوان یک پسوند تعلیق در Animatable تغییر می دهد. ( if613c )
  • Snackbar ، Snackbarhost ، Snackbarhoststate دیگر @ExperimentalMaterialAPI نیستند ( id1fb5 )
  • تغییر تایپوگرافی ، شکل ها و زبانه ها به کلاس داده دیگر نیست. عملکرد کپی را برای تایپوگرافی و اشکال اضافه می کند تا گزینه های تولید شده را جایگزین کند. ( I40037 )
  • برخی از API های مواد قبلاً کاهش یافته را حذف کردند ( IFAA25 )

رفع اشکال

  • OnCommit ، Ondispose و Onactive به نفع API های جانبی و یکبار مصرف ( IF760E ) کاهش یافته است
  • انتقال مبتنی بر TransitionDefinition کاهش یافته است ( I0AC57 )
  • حالت اولیه در updateterantion اکنون پشتیبانی می شود ( IFD51D )
  • WithConstraints به عنوان BoxwithConstraints دوباره کار کرد و به Foundation.Layout منتقل شد. ( i9420b ، b/173387208 )
  • Scrollby غیر تعلیق را کاهش دهید ، پیمایشو غیر تعلیق را حذف کنید

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

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

  • ComposeContentTestRule معرفی شده ، که ComposeTestRule گسترش می دهد و setContent را تعریف می کند ، که از ComposeTestRule حذف شده است. یک روش کارخانه اضافه شده است که createEmptyComposeRule() ComposeTestRule برمی گرداند و فعالیتی را برای شما راه اندازی نمی کند. وقتی می خواهید فعالیت خود را در طول آزمایش خود راه اندازی کنید ، به عنوان مثال با استفاده از ActivityScenario.launch ( I9D782 ، B/174472899 ) از این استفاده کنید.

  • موج دار مورد استفاده در دکمه و FloationActionButton دیگر نمی تواند با ارائه یک نشانه جدید از طریق محیط زیست سفارشی شود - این هرگز در نظر گرفته نشده بود که راهی برای سفارشی کردن این مؤلفه ها باشد و این اکنون باعث می شود این مؤلفه ها با سایر اجزای مواد سازگار باشند. برای سفارشی کردن موج ها در یک برنامه ، به Rippleme مراجعه کنید. ( i546c5 )

  • Animateasstate اکنون AnimateFoosstate است ، جایی که Foo نوع متغیر متحرک است. به عنوان مثال شناور ، DP ، افست و غیره ( IE7E25 )

  • BasicTextfield یک پارامتر جدید به نام decorationBox دریافت کرد. این امکان را برای اضافه کردن تزئینات مانند نمادها ، مکان نگهدارنده ، برچسب و مشابه زمینه متن فراهم می کند و منطقه هدف ضربه آن را افزایش می دهد. ( I16996 )

  • رفع اشکالی که باعث نمی شود عرض قسمت متن مواد کمتر از 280.dp باشد ( I78373 )

  • پارامتر Candrag از اصلاح کننده حذف شده است .

  • نمایش را حذف کنید زیرا باید از آن جلوگیری شود. به طور معمول بهتر است حداقل از اندازه onRoot () یا اندازه پنجره استفاده کنید. ( i62db4 )

  • اکنون سطح می تواند چند کودک طرح داشته باشد. ( i66a92 ، b/144488459 )

  • بی اعتبار و ترکیب () اکنون به ترتیب به نفع جریان فعلی و به یاد داشته باشید که به یاد داشته باشید. ( i583a8 )

  • برای استفاده از مختصات مربوط به پنجره ، نه مختصات جهانی ، PopuppositionProvider را تغییر می دهد. تغییر نام های ParentLobalBounds به لنگرگاه ها ، و WindowglobalBounds را به عنوان windowSize: IntSize ( I2994a )

  • مدت زمان و به روز با میلی ثانیه طولانی جایگزین خواهد شد و این مرحله وابستگی ورودی اشاره گر به آن کلاس ها را از بین می برد. ( ia33b2 ، b/175142755 ، b/177420019 )

  • AnimatedFloat.fling که می پذیرد FlingConfig حذف شده است. لطفاً به جای آن از Animatable.animatedEcay استفاده کنید. ( i4659b ، b/177457083 )

  • قابل کلیک ، toggleable و قابل انتخاب می تواند در خارج از ترکیب ایجاد شود ( I0A130 ، B/172938345 ، B/175294473 )

  • تسکین به یک رابط کاربری ( IB14E5 ) تغییر یافته است

  • ScrollableColumn/Row مستهلک شد. استفاده از ScrollableColumn در مقایسه با LazyColumn در هنگام داشتن یک محتوای پیمایش بزرگ ، کم کارآمدتر است زیرا با LazyColumn فقط می توانیم عناصر قابل مشاهده را آهنگسازی/اندازه گیری/ترسیم کنیم. برای جلوگیری از کار ناکارآمد کاربران ، تصمیم گرفتیم که ScrolleClecolumn و ScrollAblerow را کاهش دهیم و به جای آن استفاده از LazyColumn و Lazyrow را ترویج کنیم. کاربران هنوز هم می توانند تصمیم بگیرند که آنها به رفتار تنبل احتیاج ندارند و از اصلاح کننده ها مستقیماً مانند این استفاده نمی کنند: ستون (اصلاح کننده. verticalscroll (به یادگار crollstate ())) ( IB976B ، b/170468083 )

  • items(count: Int) روش کارخانه برای دامنه LazyColumn/Lazyrow/LazyverticalGrid. items(items: List) و itemsIndexed(items: List) اکنون توابع پسوند هستند ، بنابراین شما باید هنگام استفاده به صورت دستی آنها را وارد کنید. اضافه بار پسوند جدید برای آرایه ها: items(items: Array) و itemsIndexed(Array) ( I803FC ، B/175562574 )

  • روشهای تجربی monotonicframeanimationclockof ( IB753F ، B/170708374 )

  • روشهای مختصات جهانی مستهلک شده و روشهای مختصات مبتنی بر پنجره جدید ساخته شده است. ( IEE284 )

  • اصلاح کننده اضافه شده است. ( i315df )

  • FocusRequester.CreaterEfs اکنون به عنوان آزمایشی مشخص شده است که ممکن است تغییر کند. ( i2d898 ، b/177000821 )

  • semanticspropertyreceiver.hidden به invisibletouser تغییر نام داد و experimentalComposeUIAPI را علامت گذاری کرد. AccessibilityRangeInfo به ProgressBarrangeInfo تغییر نام داد. بیانیه نسخه به ProgressBarrangeInfo تغییر نام داد. AccessIbilityScrollState به ScrollaxisRange تغییر نام داد. AccessibilityScrollState به HorizontalScrollaxisRange تغییر نام داده شد. عمودی AccessibilityScrollState به VerticalscrollaxisRange تغییر نام داده شد. ( id3148 )

  • اهرم تست coroutinedispatcher در آزمایش ( i532b6 )

  • API گرافیک بردار به روز شده برای پشتیبانی از تجزیه رنگ آمیزی شده برای ریشه گرافیک بردار. ( id9d53 ، b/177210509 )

نسخه 1.0.0-alpha10

13 ژانویه 2021

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

تغییرات API

  • سرعت اصلاح شده برای داشتن قطعات مؤلفه و عملیات ریاضی. ( IB0447 )
  • تغییر نام توسط @ExperimentalTesting به @ExperimentalTestApi با حاشیه نویسی API آزمایشی مشابه ( IA4502 ، B/171464963 )
  • موقعیت به DPOFFSET تغییر نام داد و GetDistance () ( IB2DFD ) را حذف کرد
  • ranamed color.useorelse () to color.takeorelse () ( IFDCF5 )
  • ضامن را به رشته های بنیاد اضافه کنید. kt ( i4a5b7 ، b/172366489 )
  • جریان جریان و جریان جریان کاهش یافت. لطفاً به جای آن از یک طرح سفارشی استفاده کنید. ( I09027 )
  • اصلاح کننده .focus () و اصلاح کننده .FocusRequester () کاهش می یابد. به جای آن از modifier.focusmodifier () و modifer.focusreference () استفاده کنید. ( i75a48 ، b/175160751 ، b/175160532 ، b/175077829 )
  • NativeClass را به ماژول UI منتقل کرد و آن را داخلی کرد. کاربردهای به روز شده NativeClass در اجرای برابر برای استفاده از "MyClass" به جای آن است. ( i4f734 )

رفع اشکال

  • پشتیبانی اضافه شده برای زمینه های متن غیرفعال و فقط خواندنی ( I35279 ، B/171040474 ، B/166478534 )
  • animate() اکنون با animateAsState() جایگزین شده است ، که به جای T یک State<T> برمی گرداند. این امر عملکرد بهتری را فراهم می کند ، زیرا دامنه بی اعتبار کردن می تواند به جایی که مقدار حالت خوانده می شود کاهش یابد. ( IB179E )
  • API نقش معنایی را اضافه کنید و نقش را به عنوان یک پارامتر به کلیک ، قابل انتخاب و قابل جابجایی معناداری اضافه کنید. اصلاح کننده تغییر یافته. progressSemantics به طوری که کشویی نیز بتواند از آن استفاده کند. ( i216cd )

نسخه 1.0.0-alpha09

16 دسامبر 2020

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

تغییرات API

  • API اضافه شده برای تحریک دستی انیمیشن و کشیدن در اصلاح کننده .
  • تغییر نام داده شده *اجزای ثابت مانند ButtonConstants برای پایان دادن به پیش فرض ، مانند Buttondefaults. همچنین پیشوندهای default غیر ضروری را از خصوصیات موجود در این اشیاء جدید حذف می کند. ( IBB915 ، B/159982740 )
  • آهنگسازی از گیرنده های دارایی پشتیبانی می کند که می تواند دعوت های کامپوزیت را ایجاد کند. پشتیبانی از این امر از بین نمی رود ، اما نحو برای اعلام یک دریافت کننده ملک به عنوان Compable در حال تغییر است.

    نحو اکنون محروم برای انجام این کار با حاشیه نویسی از خود این ملک بود:

        @Composable val someProperty: Int get() = ...
    

    نحو اکنون درست برای انجام این کار با حاشیه نویسی از دریافت کننده املاک است:

       val someProperty: Int @Composable get() = ...
    

    هر دو نحو برای مدتی کار خواهند کرد ، اما نحو مستهلک شده سابق در نهایت به یک خطای کامپایل تبدیل می شود. ( id9197 )

  • اضافه شده androidx.compose.material:material-ripple حاوی API های موج دار برای اجازه دادن به قطعات تعاملی بدون نیاز به بقیه کتابخانه مواد. به یاد داشته باشید RepippleIndication مستهلک شده و با یادآوری جایگزین شده است. ( IBDF11 )

رفع اشکال

  • Lambdas در اصلاح کننده های افست اکنون به جای شناور ، بازگردانده می شوند. ( IC9EE5 ، B/174137212 ، B/174146755 )
  • Shaderbrush refactored برای تنبلی ایجاد یک نمونه سایه دار در هنگام اندازه گیری اطلاعات مربوط به محیط نقاشی. این برای تعریف شیب هایی که محدوده ترسیم کامل یک ترکیب در زمان ترکیب را اشغال می کنند ، بدون نیاز به پیاده سازی پیاده سازی های سفارشی DrawModifer مفید است.

    API های سازنده عملکرد شیب دار به نفع روش های کارخانه بر روی یک شیء شیب. ( i511fc ، b/173066799 )

  • اصلاح کننده. FocusObserver مستهلک می شود. به جای آن از modifer.onfocuschanged یا modifer.onfocusevent استفاده کنید ( i30f17 ، b/168511863 ، b/168511484 )

  • LazyColumnfor ، Lazyrowfor ، LazyColumnforeDexed و LazyrowforeDexed را کاهش دهید. به جای آن از LazyColumn و Lazyrow استفاده کنید ( i5b48c )

  • جابجا شده dp.vectorconverter ، position.vectorconverter و غیره به انیمیشن-هسته ، و وکتور های قدیمی ( IF0C4B ) را کاهش داد

  • Autofill API اکنون API تجربی است و به Opt-In ( I0A1EC ) نیاز دارد

  • افزودن اعلامیه های تخریب برای ایجاد نمونه های Focusrequester ( I35D84 ، B/174817008 )

  • AccessibilityLabel به ContentDescription تغییر نام داده است. AccessibilityValue به نسخه بیان شده تغییر نام داده است. ( i250f2 )

  • عملکرد جدید infiniterepeatable برای ایجاد یک infiniterepeatablespec ( i668e5 )

  • رفتار موقعیت یابی DropdownMenus با توجه به مشخصات مواد کمی تغییر یافت. ( i34c72 ، b/168594123 )

  • پشتیبانی تعامل برای زمینه های متنی اضافه شده است. ( i61d91 )

  • اضافه شده اصلاح کننده. clearandsetsemantics برای پاک کردن معانی فرزندان و تنظیم موارد جدید. ( i277ca )

  • ContentDrawScope را به ماژول UI-Graphics منتقل کرد تا با DrawScope باشد. ( IEE043 ، B/173832789 )

نسخه 1.0.0-alpha08

2 دسامبر 2020

androidx.compose.material:material:1.0.0-alpha08 ، androidx.compose.material:material-icons-core:1.0.0-alpha08 ، و androidx.compose.material:material-icons-extended:1.0.0-alpha08 آزاد می شوند. نسخه 1.0.0-alpha08 حاوی این commit ها است.

تغییرات API

  • MaterialTheMe اکنون رنگهای صحیح را برای دستگیره های انتخاب و پس زمینه انتخاب تنظیم می کند. برنامه های غیر مادی می توانند به صورت دستی از AmbientTextSelectionColors برای سفارشی کردن رنگ های مورد استفاده برای انتخاب استفاده کنند. ( i1e6f4 ، b/139320372 ، b/139320907 )
  • اضافه شده برای نامگذاری و موقعیت پارامتر Lambda ، برای بررسی سازگاری با دستورالعمل های آهنگسازی ، بررسی اضافه شده است. با توجه به بررسی و راهنمایی ، برخی از API ها را با استفاده از children به عنوان نام لامبدا دنباله دار خود به content مهاجرت کردند. ( IEC48E )
  • تغییر نام وکتوریت به ImageVector منتقل و VectorAsset را به سازنده تغییر نام داد تا طبق دستورالعمل های شورای API یک کلاس داخلی از ImageVector باشد. اضافه شده typealias از VectorAssetBuilder به پیوند به ImageVector.Builder برای سازگاری. ( ICFDC8 )
  • تغییر نام به ImageAsset و روش های مرتبط به ImageBitmap. ( IA2D99 )
  • ویژگی های معنایی بنیاد به UI ( I6F05C ) منتقل شده است
  • fun RippleIndication() () برای سازگاری با سایر API ها ، با rememberRippleIndication() به یادگار مانده و جایگزین شده است. ( id8e2c )
  • یک پارامتر Singeline را به BasicTextField ، TextField و OutlinedTextField اضافه کرد. این پارامتر را روی True تنظیم کنید تا قسمت متن یک خط به صورت افقی قابل پیمایش باشد. ( i57004 ، b/168187755 )

رفع اشکال

  • اضافه کردن اقدام معنایی را برکنار کنید ( I2B706 )
  • API های DrawModifier را از بسته androidx.compose.ui به بسته androidx.compose.ui.draw منتقل کنید. پرونده drawmodifierdeprecated.kt ایجاد شده است تا شامل روشهای تایپی و یاور برای کمک به مهاجرت از مستهلک به API های فعلی باشد. ( id6044 ، b/173834241 )
  • تغییر نام نام توسط modifer.drawlayer به اصلاح کننده. graphicslayer همچنین کلاس های مرتبط را به روزرسانی در هر بازخورد API به GraphicsLayer به روز کرد. ( i0bd29 ، b/173834241 )
  • <T> از اعلامیه SubComposeLayout حذف شد. اکنون می توانید از آن استفاده کنید بدون اینکه یک نوع را مشخص کنید. ( IB60C8 )
  • اصلاح کننده اضافه شده است.
    • تغییر نام به Modifier.drawOpacity به Modifier.alpha
    • Modifier.drawShadow به Modifier.shadow ( I264CA ، b/173208140 )
  • پارامتر تراز جعبه به Contentalignment تغییر نام داد. ( I2C957 )
  • اصلاح کننده های OffsetPx به جبران تغییر نام دادند. آنها اکنون به جای دولت پارامترهای لامبدا را می گیرند. ( IC3021 ، B/173594846 )
  • API های SweepgradientShader و SweepgradientBrush را معرفی کرد. ( IA22C1 )
  • اضافه کردن لینت برای پارامترهای اصلاح کننده در توابع سازنده. این چک LINT نامگذاری ، نوع بازگشت ، مقدار پیش فرض و ترتیب پارامتر را برای سازگاری با دستورالعمل های آهنگسازی بررسی می کند. ( IF493B )
  • API TextFieldValue به روز شده
    • ساخته شده textfieldvalue.composition readonly
    • استثناء حذف شده برای محدوده انتخاب نامعتبر ( I4A675 ، B/172239032 )
  • اضافه بار Modifier.drawLayer() بار. این یک بلوک Lambda در یک GraphicsLayerScope جدید طول می کشد که در آن شما پارامترهای لایه را به روشی تعریف می کنید که در صورت تغییر حالت ، اجازه می دهد تا از بازپرداخت و رله استفاده کنید. DrawlayerModifier اکنون در آماده سازی برای انتقال منطق خود به placeable.placeWithLayer() روش LayoutModifier ( I15E9F ، B/173030831 )
  • محیط های مستهلک شده با Ambient به عنوان پسوند آنها ، و آنها را با خواص جدید پیشوند با محیط ، پیروی از سایر محیط ها و دستورالعمل های API جایگزین کردند. ( i33440 )
  • اضافه شده برای بررسی این که کارخانه های اصلاح کننده از androidx.compose.ui.composed {} داخلی استفاده می کنند ، به جای اینکه به عنوان @Composable علامت گذاری شوند. ( i3c4bc )
  • استدلال معناشناسی ، mergealldescendants به MergedEscendants تغییر نام داد. ( IB6250 )
  • کنترل زمان در تست ها (TestAnimationClock و کاربردهای آن) اکنون آزمایشی است ( I6EF86 ، B/171378521 )
  • ماژول قدیمی UI و خردهای آن را حذف کنید ( i3a7cb )
  • TextUnit.Inherit برای سازگاری با واحدهای دیگر به TextUnit.unspecified تغییر نام داده می شود. ( IFCE19 )
  • رابط تراز به روز شد و کاربردی شد. ( i46a07 ، b/172311734 )
  • شناسه برای LayoutIdparentData به LayoutId تغییر نام داد. قابل اندازه گیری. id به اندازه گیری قابل اندازه گیری شد. layoutid. ( IADBCB ، B/172449643 )

نسخه 1.0.0-alpha07

11 نوامبر 2020

androidx.compose.material:material:1.0.0-alpha07 ، androidx.compose.material:material-icons-core:1.0.0-alpha07 ، و androidx.compose.material:material-icons-extended:1.0.0-alpha07 آزاد می شوند. نسخه 1.0.0-alpha07 حاوی این commit ها است.

تغییرات API

  • تأکید کاهش یافته و با AmbientContentalpha جایگزین شده است. AmbientContentalpha یک انتزاع ساده تر است که نشان دهنده آلفا محتوای ارجح برای بخشی از سلسله مراتب است ، شبیه به نحوه AmbientContentColor نشان دهنده رنگ محتوای ترجیحی است. متن و نماد اکنون به طور پیش فرض مقدار فعلی را از AmbientContentalpha مصرف می کنند ، و می توانید به صورت دستی انجام دهید: color.copy(alpha = AmbientContentAlpha.current) تا در مؤلفه های خود تأثیر یکسانی داشته باشید. به جای استفاده از ارائه خدمات ، فقط می توانید به طور مستقیم از طریق AmbientContentalpha مقداری ارائه دهید و از سطح پیش فرض جدید در ContentAlpha برای جایگزینی سطح تأکید قدیمی استفاده کنید. ( IDF03E ، B/159017896 )
  • Androidx.compose.material.ambientContentColor را برای جایگزینی Androidx.compose.foundation.ambientContentColor اضافه می کند ( I84F7B ، B/172067770 )
  • Androidx.compose.material.text را برای جایگزینی androidx.compose.foundation.text به عنوان یک مؤلفه متن با سطح بالا اضافه می کند. برای یک مؤلفه اصلی متن که از موضوع رنگ / متن استفاده نمی کند ، از basictext استفاده کنید. ( IE6AE0 )
  • MaxLines به TextFields اضافه شده است ( IB2A5B )
  • زمینه های متن را برای پذیرش صفحه کلید به روز کنید ( IDA7F3 )
  • اکنون سطح از ارتفاع مطلق (کل) هنگام محاسبه روکش های ارتفاع استفاده می کند ، بنابراین سطحی که در سطح دیگری قرار دارد از ارتفاع ترکیبی برای ترسیم پوشش استفاده می کند. ( i7bd2b ، b/171031040 )

رفع اشکال

  • captureToBitmap به captureToImage نقل مکان کرد. ( i86385 )
  • بنیاد AmbientTextStyle ، ProvideTextStyle و AmbientContentColor کاهش یافته است. در عوض از نسخه های جدید موجود در کتابخانه مواد استفاده کنید. برای برنامه های غیر مادی ، در عوض باید سیستم طراحی خاص خود را ایجاد کنید تا محیط های خاص مضامین خود را ایجاد کنید که می توانند در اجزای خود مصرف شوند. ( I74ACC ، B/172067770 )
  • Foundation.Text مستهلک شده و با Material.Text جایگزین شده است. برای یک API متن اساسی و غیرقابل توصیف که مقادیر یک موضوع را مصرف نمی کند ، به Androidx.compose.foundation.basictext مراجعه کنید. ( if64cb )
  • تغییر نام صفحه کلید به عنوان imeoptions ( I82F36 )
  • صفحه کلید جابجا شده و ImeAction به صفحه کلید ( I910CE )
  • Basetextfield مستهلک شده است. به جای آن از BasicTextField استفاده کنید. ( i896eb )
  • حاشیه نویسی ExperimentalSubcomposeLayoutapi برداشته شد. اکنون می توان بدون اضافه کردن OPTIN ( I708AD ) استفاده کرد
  • FirstBaseline و Lastbaseline به Androidx.compose.ui.layout ( IED2E7 ) منتقل شدند
  • Icon API به روز شده برای گرفتن Color.unspecified به عنوان یک رنگ رنگی احتمالی که دارایی یا نقاش ارائه شده را بدون رنگ آمیزی ترسیم می کند. پیش از این تلاش برای نادیده گرفتن رنگ آمیزی با رنگ. نامشخص می شود با رنگ شفاف که به هیچ وجه به هیچ وجه ارائه نمی شود. ( i049e2 ، b/171624632 )
  • NeatalPaddingFrom به PaddingFrom تغییر نام داد. اصلاح کننده PaddingFrombaseline به عنوان راحتی برای مشخص کردن مسافت از مرزهای طرح تا خطوط متن اضافه شد. ( i0440a ، b/170633813 )
  • LaunchedTask به دلیل سازگاری با API های SideEffect و یکبار مصرف به راه اندازی مجدد تغییر نام داد. به منظور تشویق بهترین شیوه ها ، راه اندازی با پارامتر موضوع مجاز نیست. ( IFD3D4 )
  • اندازه گیری از اندازه گیری خارج شد. ( IBF96D ، B/171184002 )
  • چندین نماد مرتبط با طرح از Androidx.compose.ui به Androidx.compose.layout.ui منتقل شد. ( I0FA98 ، B/170475424 )

نسخه 1.0.0-alpha06

28 اکتبر 2020

androidx.compose.material:material:1.0.0-alpha06 ، androidx.compose.material:material-icons-core:1.0.0-alpha06 ، و androidx.compose.material:material-icons-extended:1.0.0-alpha06 آزاد می شوند. نسخه 1.0.0-alpha06 حاوی این commit ها است.

تغییرات API

  • androidx.compose.foundation.icon به androidx.compose.material.icon منتقل شده است. اگر نمی خواهید از کتابخانه مواد استفاده کنید ، می توانید از Component / Modifier.Paint () با یک نقاش نیز استفاده کنید. ( i9f622 )
  • برای نشان دادن ارتفاع مورد استفاده FABS در ایالات مختلف ، FloationActionButtonLevation را اضافه می کند. برای اجرای پیش فرض ( I2D4F5 ) به FloationActionButtonConstants.DefaultElevation () مراجعه کنید
  • رابط سوئیچ Colors را اضافه می کند تا رنگ های مورد استفاده توسط سوئیچ در حالت های مختلف را نشان دهد. برای سفارشی کردن این رنگ ها به SwitchConstants.DefaultColors مراجعه کنید. ( I93805 )
  • برای نشان دادن ارتفاع و رنگهای مورد استفاده در دکمه های موجود در حالت های مختلف ، رابط های دکمه و دکمه های دکمه ای را اضافه می کند. برای سفارشی کردن این پارامترها ، توابع پیش فرض را در ButtonConstants مشاهده کنید. ( IC5B7B )
  • رابط RadiObuttonColors را اضافه می کند تا رنگهای مورد استفاده توسط یک رادیوبوتون را در ایالات مختلف نشان دهد. برای سفارشی کردن رنگهای مورد استفاده در ایالات مختلف ، به RadioButtonConstants.DefaultColors () مراجعه کنید. ( i74130 )
  • رابط CheckboxColors را اضافه می کند تا رنگ های مورد استفاده توسط یک کادر در حالت های مختلف را نشان دهد. برای سفارشی کردن رنگ های مورد استفاده در حالت های مختلف ، به checkcoxconstants.defaultcolors () مراجعه کنید. ( i7dbdb )

رفع اشکال

  • اجزای مواد دیگر ارتفاع را به عنوان Zindex تعیین نمی کنند. این بدان معنی است که در همان والدین کودک با اندازه سایه بزرگتر در بالای کودک با یک فرد کوچکتر به طور خودکار کشیده نمی شود. اگر هنوز به چنین رفتاری احتیاج دارید ، لطفاً در صورت لزوم به صورت دستی تنظیم کنید .
  • Vectorpainter Deprecate به نفع به یاد داشته باشید VectorPainter برای بهتر نشان دادن اینکه API سازنده در داخل به یاد می آورد "به یاد داشته باشید" برای ادامه داده ها در سراسر ترکیبات. ( IFDA43 )
  • فعال کردن انتقال در ComposeTestrule ؛ گزینه را حذف کنید تا مکان نما چشمک زن را از ComposetEsterule فعال کنید. ( if0de3 )
  • گزینه صفحه کلید تک خط اضافه شده به CoreTextfield ( I72E6D )
  • برای بیان بهتر نحوه استفاده از آن در سراسر آهنگسازی ، API را به Cornerradius تغییر نام داد. مستندات به روز شده برای نشان دادن اینکه شعاع گوشه منفی به صفر می رسد. ( I130C7 ، b/168762961 )
  • refactored drawscope و ContentDrawScope به جای کلاسهای انتزاعی رابط می شوند
    • ایجاد CanvasDrawScope DrawScope ایجاد شده است
    • پیاده سازی های اصلاح شده از DrawScope برای استفاده به جای آن از Canvasscope
    • Created DrawContext to wrap dependencies for DrawScope
    • Removed deprecated methods on DrawScope ( I56f5e )
  • Box was made an inline function. ( Ibce0c , b/155056091 )

نسخه 1.0.0-alpha05

14 اکتبر 2020

androidx.compose.material:material:1.0.0-alpha05 , androidx.compose.material:material-icons-core:1.0.0-alpha05 , and androidx.compose.material:material-icons-extended:1.0.0-alpha05 آزاد می شوند. نسخه 1.0.0-alpha05 حاوی این commit ها است.

تغییرات API

  • Popups and dialogs now inherit FLAG_SECURE from parent Window. Also added option to configure this explicitly ( I64966 , b/143778148 , b/143778149 )
  • Modifier.swipeable has 56.dp thresholds for states by default now ( Iab825 , b/168610267 )
  • all scaffold states marked as @Stable. drawerGesturesEnabled in ScaffoldState moved to Scaffold itself. ( I36645 , b/168297016 )
  • Removes nullable type from Scaffold lambda parameters, you can use emptyContent() to represent no content for a given parameter. ( I2b318 , b/157633857 , b/158551084 )
  • Deprecates contentColor() and currentTextStyle() APIs, and replaces them with AmbientContentColor and AmbientTextStyle ambients respectively. You can access the current value by using .current on the ambient property, as with any other ambient. This was change was made for consistency and to avoid having multiple ways to accomplish the same thing. Additionally renames some ambient properties to better describe their purpose as follows:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme ( I37b6d )
  • Adds AmbientElevationOverlay, allowing customizing / disabling the default elevation overlay applied to Surfaces in dark theme. ( I5b74d )

رفع اشکال

  • As part of the standardization of sentinel values for inline classes, rename Color.Unset to Color.Unspecified for consistency with other inline classes ( I97611 , b/169797763 )
  • TextOverflow.None is introduced. When overflow is None, Text won't handle overflow anymore, and it will report its actual size to LayoutNode. ( I175c9 , b/158830170 )
  • launchInComposition renamed to LaunchedTask to match Compose API guidelines ( I99a8e )
  • OnPositionedModifier is renamed to OnGloballyPositionedModifier and onPositioned() is renamed to onGloballyPositioned(). ( I587e8 , b/169083903 )

نسخه 1.0.0-alpha04

1 اکتبر 2020

androidx.compose.material:material:1.0.0-alpha04 , androidx.compose.material:material-icons-core:1.0.0-alpha04 , and androidx.compose.material:material-icons-extended:1.0.0-alpha04 آزاد می شوند. نسخه 1.0.0-alpha04 حاوی این commit ها است.

تغییرات API

  • Exposes InteractionState parameters in stateful Material components, to allow hoisting the state and reading / controlling the state. ( Iaca5f , b/168025711 , b/167164434 )
  • Changes the *color parameters on RadioButton and TriStateCheckbox to allow fully customizing the colors used in each state, as well as changing how the colors animate between states if desired. See the new animateDefault* color functions in CheckboxConstants and RadioButtonConstants for more information. ( I1c532 )
  • Renamed rememberBackdropState to rememberBackdropScaffoldState and added an additional param for the animation clock. Renamed the param backdropScaffoldState of BackdropScaffold to just scaffoldState. Renamed BackdropConstants to BackdropScaffoldConstants. ( Ib644d )
  • Added experimental BottomSheetScaffold component. ( Ie02f0 , b/148996320 )
  • Added experimental ModalBottomSheetLayout component. ( Ic209e , b/148996320 )
  • Renames ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation to defaultElevation, and now returns a Dp value instead of an AnimatedValue. ( I5f3ed )

رفع اشکال

  • Updated many Graphics APIs
    • Updated scale and rotation transformation APIs to consume a single Offset parameter to represent the pivot coordinate instead of separate float parameters for the x/y coordinates in DrawScope and DrawTransform
    • Removed Rect.expandToInclude and Rect.join methods
    • Updated Radius documentation to say oval in addition to elliptical
    • Added documentation to indicate the public constructor for the inline Radius class is not to be called directly but instead Radius objects should be instantiated through their function constructors
    • Removed RoundRect APIs to query topRight, bottomRight, bottomCenter, etc.
    • Deprecated Rect.shift in favor of Rect.translate
    • Removed RoundRect.grow and Rect.shrink APIs
    • Renamed RoundRect.outerRect to Rect.boundingRect
    • Removed RoundRect.middleRect/tallMiddleRect/wideMiddleRect and Rect.isStadium methods
    • Renamed RoundRect.longestSide to RoundRect.maxDimension
    • Renamed RoundRect.shortestSide to RoundRect.minDimension
    • Changed RoundRect.center to be a property instead of a function
    • Updated RoundRect constructor to consume Radius properties instead of individual parameters for x/y radius values
    • Removed Size APIs that assumed it was a Rectangle with origin at 0,0
    • Added a destructing API to Radius
    • Migrated various RoundRect extension functions to be properties instead
    • ( I8f5c7 , b/168762961 )
  • foundation.Box was deprecated. Please use foundation.layout.Box instead. ( Ie5950 , b/167680279 )
  • Stack was renamed to Box. The previously existing Box will be deprecated in favor of the new Box in compose.foundation.layout. The behavior of the new Box is to stack children one on top of another when it has multiple children - this is different from the previous Box, which was behaving similar to a Column. ( I94893 , b/167680279 )
  • Box decoration parameters have been deprecated. If you want to have decorations/padding on your box, use Modifiers instead (Modifier.background, Modifier.border, Modifier.padding) ( Ibae92 , b/167680279 )
  • Updated many Graphics APIs
    • Updated DrawScope APIs with scoped transformation methods to indicate that the transformation is only applied within the callback and removed after the callback is invoked
    • Updated clipPath documentation to refer to Path instead of rounded rectangle
    • Fixed spacing in documentation for right parameter in clipPath
    • Renamed DrawScope.drawCanvas to drawIntoCanvas and removed size parameter
    • Renamed dx/dy parameters in inset method to horizontal and vertical
    • Added inset overload that provides the same inset value to all 4 bounds
    • Removed documentation on inset method indicating that inset would be applied to all 4 sides
    • Updated documentation for Rect class
    • Updated comments on Rect parameters to match kdoc style
    • Removed Rect.join and Rect.expandToInclude
    • Created overload for Rect.translate(offset) and deprecated Rect.shift
    • ( If086a , b/167737376 )
  • We prevented static imports of contents of layout scopes (eg alignWithSiblings in RowScope). The explicit scope alternative should be used instead: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } . ( I216be , b/166760797 )

نسخه 1.0.0-alpha03

16 سپتامبر 2020

androidx.compose.material:material:1.0.0-alpha03 , androidx.compose.material:material-icons-core:1.0.0-alpha03 , and androidx.compose.material:material-icons-extended:1.0.0-alpha03 آزاد می شوند. نسخه 1.0.0-alpha03 حاوی این commit ها است.

تغییرات API

  • Renames BottomNavigationItem 's onSelect parameter to onClick ( I91925 , b/161809324 )
  • Adds InteractionState parameter to BottomNavigationItem and Tab, allowing hoisting this state and adjusting how the component appears in different states. ( Ia3e9e , b/168025711 )
  • Removes disabledBackgroundColor and disabledContentColor parameters from buttons. You should instead use the new default color functions inside ButtonConstants. If you are already setting contentColor / backgroundColor explicitly, you should instead use these default functions and customize some / all of the parameters to avoid overwriting the color for both enabled / disabled states. ( If9b52 )
  • Textfield's background color does not implicitly apply transparency alpha anymore. Instead, any color provided through the backgroundColor parameter will be applied directly. ( Iecee9 , b/167951441 )
  • InnerPadding was renamed to PaddingValues. ( I195f1 , b/167389171 )
  • The params resistanceFactorAtMin and resistanceFactorAtMax in Modifier.swipeable were replaced with a single resistance param. A new defaultResistanceConfig method was added in SwipeableConstants . ( I54238 )
  • Adds animated stateful elevation support for Button and FloatingActionButton. The elevation now animates between default and pressed states. To customize the elevation between states, please use ButtonConstants.defaultAnimatedElevation() and FloatingActionButtonConstants.defaultAnimatedElevation() instead of setting a flat Dp value in all cases. ( I37925 )
  • Label became an optional parameter inside TextField and OutlinedTextField ( I267f6 , b/162234081 )

رفع اشکال

  • Global testing functions such as onNode or waitForIdle are now deprecated, please migrate to their new counterparts that are defined on ComposeTestRule ( I7f45a )
  • DpConstraints and APIs using it were deprecated. ( I90cdb , b/167389835 )
  • The parameters minWidth and maxWidth of widthIn were renamed to min and max. Similarly for preferredWidthIn, heightIn, preferredHeightIn. ( I0e5e1 , b/167389544 )
  • Remove scroll forward/backward semantics actions. Added steps in AccessibilityRangeInfo. ( Ia47b0 )
  • Usages of gravity were consistently renamed to align or alignment in layout APIs. ( I2421a , b/164077038 )
  • Added onNode and other global methods on ComposeTestRule as the current global ones are going to be deprecated. ( Ieae36 )
  • Moved createAndroidComposeRule and AndroidInputDispatcher from androidx.ui.test.android to androidx.ui.test ( Idef08 , b/164060572 )

نسخه 1.0.0-alpha02

2 سپتامبر 2020

androidx.compose.material:material:1.0.0-alpha02 , androidx.compose.material:material-icons-core:1.0.0-alpha02 , and androidx.compose.material:material-icons-extended:1.0.0-alpha02 آزاد می شوند. نسخه 1.0.0-alpha02 حاوی این commit ها است.

تغییرات API

  • Added an experimental BackdropScaffold component. ( Iad908 )

رفع اشکال

  • Matrix4 was replaced with Matrix. All other parts of vectormath package have been removed. ( Ibd665 , b/160140398 )

نسخه 1.0.0-alpha01

26 آگوست 2020

androidx.compose.material:material:1.0.0-alpha01 , androidx.compose.material:material-icons-core:1.0.0-alpha01 , and androidx.compose.material:material-icons-extended:1.0.0-alpha01 آزاد می شوند. نسخه 1.0.0-alpha01 حاوی این commit ها است.

موضوع شناخته شده

= The first character in a material TextField cannot be removed using a backspace ( b/165956313 )

Version 0.1.0-dev

Version 0.1.0-dev17

19 آگوست 2020

androidx.compose.material:material:0.1.0-dev17 , androidx.compose.material:material-icons-core:0.1.0-dev17 , and androidx.compose.material:material-icons-extended:0.1.0-dev17 آزاد می شوند. Version 0.1.0-dev17 contains these commits.

تغییرات API

  • Previously deprecated RadioGroup and RadioGroupItems have been removed. Use Row and RadioBotton instead ( I381b7 , b/163806637 )
  • Removed onFocusChanged callbacks from TextField. Use Modifier.focusObserver instead. ( I51089 , b/161297615 )
  • Modifier.drawBorder has been deprecated. Use Modifier.border instead. Border data class has been replaced by BorderStroke ( I4257d , b/158160576 )
  • Renamed some properties in SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. Added a rememberSwipeableState function for creating SwipeableStates. ( I2fc9c , b/163129614 , b/163132293 )
  • Snackbar support with positioning and proper queueing has been added. Access it via SnackbarHostState.showSnackbar suspend function. علاوه بر این:
    • SnackbarHost components has been added. It hosts Snackbars based on the state and is responsible for transition between snackbars.
    • SnackbarHostState has been added to allow for control over snackbars, snackbars hosts and to decouple it from the ScaffoldState. you can access this state via scaffoldState.snackbarHostState as well.
    • Snackbar overload has been added to support common interface between snackbarHostState and snackbars itself. ( I79aaa )
  • Adds enabled parameter to IconButton, and reorders parameters in IconToggleButton ( I0a941 , b/161809385 , b/161807956 )
  • ListItem version with String-based API has been removed. Use slot version instead. ( Ib8f57 , b/161804681 )
  • Removed deprecated FilledTextField component. Please use TextField instead to get the Material Design implementation of the Filled text field. ( I5e889 )
  • AlertDialog now uses FlowRow for buttons ( I00ec1 , b/161809319 , b/143682374 )
  • Added params in Modifier.swipeable for changing the amount of resistance when swiping past the bounds. Removed [min/max]Value params. ( I93d98 )
  • Added backgroundColor parameter to LinearProgressIndicator and removed internal padding from CircularProgressIndicator. Added new ProgressIndicatorConstants.DefaultProgressAnimationSpec which can be used as the default AnimationSpec when animating progress between values ( If38b5 , b/161809914 , b/161804677 )
  • Optional param velocityThreshold added to Modifier.swipeable. ( I698ba )
  • bottomBarSize, fabSize and others and not available anymore in ScaffoldState. Use Modifier.onPosition instead on the component you'd like to know the size of. contentColor and Modifier pamateres have been added to Scaffold ( Ic6f7b , b/161811485 , b/157174382 )
  • Renames and reorders some parameters in Tab for consistency with other APIs ( Ia2d12 , b/161807532 )
  • Splits TabRow into TabRow and ScrollableTabRow, removing isScrollable from TabRow. Also exposes edgePadding in ScrollableTabRow, which allows controlling the free space before / after the tabs. ( I583e8 , b/161809544 )
  • The TabRow object has been removed, replacing it with TabConstants. TabRow.TabPosition has moved to be top level (TabPosition), and indicatorContainer has been renamed to indicator . See the samples and documentation for detailed information on how to use the updated API, and defaults. ( I54d45 , b/161809544 )
  • The thresholds param in Modifier.swipeable was tweaked; it now takes a pair of states (of type T) and returns the threshold between them in the form of a ThresholdConfig. A param dismissThresholds was added to SwipeToDismiss, which is a lambda (DismissDirection) -> ThresholdConfig. ( Ie1080 )
  • Slider has more colors for granular customization ( I73e64 , b/161810475 )
  • Card's color param was renamed to backgroundColor ( I01fc1 , b/161809546 )
  • Snackbar has customizable background and content colors now ( I238f2 , b/161804381 )
  • modifier, backgroundColor, contentColor and scrimColor customization params has been added to Drawers ( I23655 , b/161804378 )
  • The state { ... } composable is now deprecated in favor of explicit calls to remember { mutableStateOf(...) } for clarity. This reduces the overall API surface and number of concepts for state management, and matches the by mutableStateOf() pattern for class property delegation. ( Ia5727 )
  • Button's padding param was renamed to contentPadding ( Id252e , b/161809394 )
  • Add an experimental material component SwipeToDismiss. ( I129e5 )

رفع اشکال

  • Removed onChildPositioned and OnChildPositionedModifier . Developers should use onPositioned and OnPositionedModifier on the child layout instead. ( I4522e , b/162109766 )
  • Added mergePolicy lambda to SemanticsPropertyKey. This can be used to define a custom policy for mergeAllDescendants semantics merging. The default policy is to use the parent value if already present, otherwise the child value. ( Iaf6c4 , b/161979921 )
  • IntSize is now an inline class ( I2bf42 )
  • PlacementScope.placeAbsolute() was renamed to PlacementScope.place() , and the previous PlacementScope.place() was renamed to PlacementScope.placeRelative() . As a result, the PlacementScope.place() method will not automatically mirror the position in right-to-left contexts anymore. If this is desired, use PlacementScope.placeRelative() instead. ( I873ac , b/162916675 )
  • Deprecated PxBounds in favor of Rect. Updated all usages of PxBounds with rect and added proper deprecate/replace with annotations to assist with the migration. ( I37038 , b/162627058 )
  • Renamed RRect to RoundRect to better fit compose naming patterns Created similar function constructors to RRect and deprecated RRect function constructors ( I5d325 )

Version 0.1.0-dev16

5 آگوست 2020

androidx.compose.material:material:0.1.0-dev16 , androidx.compose.material:material-icons-core:0.1.0-dev16 , and androidx.compose.material:material-icons-extended:0.1.0-dev16 آزاد می شوند. Version 0.1.0-dev16 contains these commits.

تغییرات API

  • Colors is now a final class instead of an interface. Instead of extending and providing a custom implementation, you should create a new ambient for your custom theme object, and access the theme object through the new ambient in your components, similar to how MaterialTheme works internally. ( Ibae84 )
  • Renamed ColorPalette to Colors, to better map to the Material color system and remove confusion over ColorPalette being a 'generic' theming object, as opposed to being a specific implementation of the Material color system. Additionally renames lightColorPalette and darkColorPalette to lightColors and darkColors respectively. ( I9e976 , b/161812111 )
  • Renames BottomNavigationItem's text parameter to label , onSelected to onSelect , activeColor to selectedContentColor , inactiveColor to unselectedContentColor and updates parameter ordering to match guidelines. ( Icb605 , b/161809324 )
  • Modifier.stateDraggable was completely reworked and renamed to Modifier.swipeable. A new SwipeableState class was introduced, and DrawerState and BottomDrawerState were refactored to inherit from it. [Modal/Bottom]DrawerLayout no longer takes an onStateChange parameter. ( I72332 , b/148023068 )
  • foundation.shape.corner package were flatten to foundation.share ( I46491 , b/161887429 )
  • Added ExperimentalMaterialApi annotation. RippleTheme marked as Experimental ( Ic5fa0 , b/161784800 )
  • Material FilledTextField was renamed to TextField and foundational TextField was renamed to BaseTextField to make simplest desired API easy to discover and use ( Ia6242 , b/155482676 )

رفع اشکال

  • OnChildPositioned has been deprecated. Use OnPositioned on the child instead. ( I87f95 , b/162109766 )
  • Address broad API fixes ( I077bc )
    1. Remove unused OffsetBase interface
    2. Align Offset and IntOffset classes to have a consistent API surface
    3. Rename IntOffset.Origin to IntOffset.Zero to be consistent with Offset API
    4. Moved nativeCanvas method off of Canvas interface to support consumers to create their own Canvas instances
    5. Created stub EmptyCanvas class to refactor DrawScope to be a non-null parameter instead of lateinit and ensure non-nullability of the field
    6. Renamed ClipOp enums to be Pascal Case
    7. Renamed FilterQuality enums to be Pascal Case
    8. Renamed StrokeJoin enums to be Pascal Case
    9. Renamed PointMode enums to be Pascal Case
    10. Renamed PaintingStyle enums to be Pascal Case
    11. Renamed PathFillType enums to be Pascal Case
    12. Renamed StrokeCap enums to be Pascal Case
    13. Updated DrawCache implementation to no longer use lateinit params
    14. Updated DrawScope to no longer use lazy delegation for fillPaint and strokePaint internal parameters
    15. Updated Image composable to avoid Box usage for less overhead
    16. Updated Outline class to have @Immutable annotations
    17. Updated PathNode to have @Immutable annotations for each path instruction
    18. Updated Vector subcomposition to remove redundant conditional checks for equality as compose already handles them
    19. Deprecated Rect companion constructor methods in favor of function constructors
    20. Updated Brush classes and function constructors with @Immutable and @Stable APIs
    21. Updated VertexMode enum to be PascalCase
    22. Updated DrawScope selectPaint method to conditionally overwrite stroke parameters on the paint if they have changed
    23. Updated Size to add destructuring API, rename UnspecifiedSize to Unspecified and removed unused methods
  • Move dialog to ui ( I47fa6 )
  • Removed SemanticsNodeInteraction.performPartialGesture . Use SemanticsNodeInteraction.performGesture instead. ( Id9b62 )
  • Renamed SemanticsNodeInteraction.getBoundsInRoot() to SemanticsNodeInteraction.getUnclippedBoundsInRoot() ( Icafdf , b/161336532 )
  • The APIs for right-to-left support has been updated. LayoutDirectionAmbient has been added, which can be used to read and change the layout direction. Modifier.rtl and Modifier.ltr have been removed. ( I080b3 )
  • Modifier.deternimateProgress has been renamed to Modifier.progressSemantics ( I9c0b4 )
  • Updates material-icons-extended with the latest icons added to Material.io/icons ( I4b1d3 )
  • Require type T to be explicitly specified for transitionDefinition. ( I1aded )
  • Modifier.plus has been deprecated, use Modifier.then instead. 'Then' has a stronger signal of ordering, while also prohibits to type Modifier.padding().background() + anotherModifier , which breaks the chain and harder to read ( Iedd58 , b/161529964 )
  • Renamed AndroidComposeTestRule to createAndroidComposeRule. ( I70aaf )
  • Add isFocused() and isNotFocused() SemanticsMatcher. ( I0b760 )
  • Removed BaseGestureScope.globalBounds , which shouldn't be used from tests. Use coordinates local to the node with which you're interacting instead. ( Ie9b08 )
  • Fixed popup position on cut-out displays. ( Idd7dd )
  • Modifier.drawBackground has been renamed to Modifier.background ( I13677 )

Version 0.1.0-dev15

22 جولای 2020

androidx.compose.material:material:0.1.0-dev15 , androidx.compose.material:material-icons-core:0.1.0-dev15 , and androidx.compose.material:material-icons-extended:0.1.0-dev15 آزاد می شوند. Version 0.1.0-dev15 contains these commits.

Dependencies Update

  • To use the 0.1.0-dev15 version of Compose, you will need to update your dependencies according to the new code snippets shown above in Declaring dependencies .

تغییرات API

  • @Model annotation is now deprecated. Use state and mutableStateOf as alternatives. This deprecation decision was reached after much careful discussion.

    توجیه

    Rationale includes but is not limited to:

    • Reduces API surface area and concepts we need to teach
    • More closely aligns with other comparable toolkits (Swift UI, React, Flutter)
    • Reversible decision. We can always bring @Model back later.
    • Removes corner-case usage and difficult to answer questions about configuring @Model as things we need to handle
    • @Model data classes, equals, hashcode, etc.
    • How do I have some properties “observed” and others not?
    • How do I specify structural vs. referential equality to be used in observation?
    • Reduces “magic” in the system. Would reduce the likelihood of someone assuming system was smarter than it is (ie, it knowing how to diff a list)
    • Makes the granularity of observation more intuitive.
    • Improves refactorability from variable -> property on class
    • Potentially opens up possibilities to do hand-crafted State-specific optimizations
    • More closely aligns with the rest of the ecosystem and reduces ambiguity towards immutable or us “embracing mutable state”

    Migration Notes

    Almost all existing usages of @Model are fairly trivially transformed in one of two ways. The example below has a @Model class with two properties just for the sake of example, and has it being used in a composable.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternative 1: Use State<OriginalClass> and create copies.

    This approach is made easier with Kotlin's data classes. Essentially, make all previously var properties into val properties of a data class, and then use state instead of remember , and assign the state value to cloned copies of the original using the data class copy(...) convenience method.

    It's important to note that this approach only works when the only mutations to that class were done in the same scope that the State instance is created. If the class is internally mutating itself outside of the scope of usage, and you are relying on the observation of that, then the next approach is the one you will want to use.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    Alternative 2: Use mutableStateOf and property delegates

    This approach is made easier with Kotlin's property delegates and the mutableStateOf API which allows you to create MutableState instances outside of composition. Essentially, replace all var properties of the original class with var properties with mutableStateOf as their property delegate. This has the advantage that the usage of the class will not change at all, only the internal implementation of it. The behavior is not completely identical to the original example though, as each property is now observed/subscribed to individually, so the recompositions you see after this refactor could be more narrow (a good thing).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    ( I409e8 , b/152050010 , b/146362815 , b/146342522 , b/143413369 , b/135715219 , b/143263925 , b/139653744 )

  • onFocusChange callback in text fields renamed to onFocusChanged ( Ida4a1 )

  • Added thresholds param in stateDraggable to specify thresholds between anchors. This was used to set a 56dp threshold in bottom drawer. Also BottomDrawerLayout now uses a separate BottomDrawerState enum. ( I533fa )

  • Removes previously deprecated Modifier.ripple. Clickable now uses ripple as the default indication (if you have a MaterialTheme {} set in your application) so in most cases you can just use clickable and get ripple indication for free. If you need to customize the color / size / bounded parameter for the ripple, you can manually create a RippleIndication and pass it to clickable as the indication parameter. ( I663b2 , b/155375067 )

  • Removed deprecated override of FilledTextField composable ( I7f8f8 )

  • Rename Button object (containing the defaults used by Button function) to ButtonConstants ( I7c5f7 , b/159687878 )

  • Button's content slot now behaves as Row (useful when you need to have an icon with a text, see samples on Button how to write it) ( I0ff10 , b/158677863 )

  • RadioGroup and RadioGroupItem have been deprecated. Use Box with Modifier.selectable, Row and Column to make proper set of radioButton choices by your design ( I7f5cf , b/149528535 )

  • Added Material Outlined Textfield ( I1a518 )

  • androidx.ui.foundation.TextFieldValue and androidx.ui.input.EditorValue is deprecated. TextField, FilledTextField and CoreTextField composables that uses that type is also deprecated. Please use androidx.ui.input.TextFieldValue instead ( I4066d , b/155211005 )

  • TabRow.TabPosition not contains position in Dp, not in IntPx ( I34a07 , b/158577776 )

  • Replaced usage of IntPx with Int. Replaced IntPxPosition with IntOffset. Replaced IntPxSize with IntSize. ( Ib7b44 )

  • In order to consolidate the number of classes used to represent sizing information, standardize on usage of the Size class instead of PxSize. This provides the benefits of an inline class to leverage a long to pack 2 float values to represent width and height represented as floats. ( Ic0191 )

  • Deprecates Modifier.ripple. Clickable now uses ripple as the default indication (if you have a MaterialTheme {} set in your application) so in most cases you can just use clickable and get ripple indication for free. If you need to customize the color / size / bounded parameter for the ripple, you can manually create a RippleIndication and pass it to clickable as the indication parameter. ( I101cd , b/155375067 )

  • Scaffold API has been reworked: few parameters changed their name, added new parameters for better customization. Added getter to query sizes of Fab, TopBar and BottomBar ( I0e7ce )

  • Added the DropdownMenu component in ui-material, a Material Design menu implementation. ( I9bb3d )

  • Allow to show/hide software keyboard manually using SoftwareKeyboardController ( Ifb9d6 , b/155427736 )

  • Modifier.indication has been added to foundation package. Use it to show press/drag/other indication on your custom interactable elements ( I8425f , b/155287131 )

  • Consolidated CanvasScope implementations so there is now just DrawScope and ContentDrawScope Renamed CanvasScope to DrawScope. Updated DrawScope to implement Density interface and provide LayoutDirection Deleted DrawScope subclass in ContentDrawScope Painter and PainterModifier have been updated to no longer maintain an RTL property themselves as DrawScope provides this already without manually providing it ( I1798e )

  • Renames Emphasis.emphasize() to Emphasis.applyEmphasis() ( Iceebe )

  • Disabled buttons now visually follows the Material Design specification ( I47dcb , b/155076924 )

  • FilledTextField gets ime action, visual transformation and keyboard type support ( I1f9cf , b/155075201 )

  • Adds strokeWidth parameter to CircularProgressIndicator to customize the stroke size. To change the stroke size (height) of a LinearProgressIndicator, you can use Modifier.preferredHeight() or another size modifier. ( Icea16 , b/154919081 )

  • Adds strokeWidth parameter to CircularProgressIndicator to customize the stroke size. To change the stroke size (height) of a LinearProgressIndicator, you can use Modifier.preferredHeight() or another size modifier. ( Icea16 , b/154919081 )

  • Added slot API for trailing and leading icons in the FilledTextField and handling of the error state ( Ic12e0 )

  • FAB's and Extended FAB's default color has been changed to MaterialTheme.colors.secondary. ( I3b9b9 , b/154118816 )

  • Replaced all nullable Color uses in API with non-nullable and use Color.Unset instead of null ( Iabaa7 )

  • Renamed EdgeInsets to InnerPadding. Renamed innerPadding parameter of Material Buttons to paddding. ( I66165 )

  • Slider is now stateless. Users will need to pass and update state by themselves, just like in any other control. ( Ia00aa )

  • StaticDrawer was removed. If you need it, use Box with material-spec'ed width instead ( I244a7 )

  • Added Material Design implementation of Filled Text Field ( Ic75cd )

  • Added modifier param to ListItem and reordered params to promote trailing lambda body ( I66e21 )

  • Adds defaultFontFamily constructor parameter to Typography, allowing specifying the default font family that will be used for any provided TextStyles that do not have a family set. ( I89d07 )

  • Temporarily removed Material Data Tables from the API surface. ( Iaea61 )

  • Renamed paramaters in Divider composable ( Ic4373 )

  • children ( Ia6d19 )

  • Removes MaterialTheme.emphasisLevels, instead use EmphasisAmbient.current to retrieve the emphasis levels ( Ib5e40 )

  • Shape theming system is updated according to the Material design specification. Now you can provide small, medium and large shapes to be used by most of the components ( Ifb4d1 )

  • Changed MaterialTheme APIs such as MaterialTheme.colors(), MaterialTheme.typography() to be properties instead of functions. Remove parentheses from existing calls, no behavioral change is expected. ( I3565a )

  • Refactored FloatingActionButton APIs to accept composable lambdas instead of primitives. See updated samples for usage information. ( I00622 )

  • add enabled param to Checkbox, Switch and Toggleable ( I41c16 )

  • Ripple is now a Modifier. While Clickable is not yet converted the recommended usage is Clickable(onClick = { ... }, modifier = ripple()) ( Ie5200 , b/151331852 , b/150060763 )

  • Surface and Card were moved from androidx.ui.material.surface to androidx.ui.material ( I88a6d , b/150863888 )

  • Button, FloatingActionButton and Clickable now have a separate enabled param. Some of the params on Button were renamed or reordered. ( I54b5a )

  • Renamed Image to ImageAsset to better differentiate the difference between the Image data and the upcoming Image composable used to participate in layout and draw content. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework ( Id5bbd )

  • Removed Snackbar API with String parameters in favour of using the overload that accepts composable lambdas. See updated samples for usage information ( I55f80 )

  • Refactored Tab APIs to accept text and icon lambdas, ( Ia057e )

  • Added BottomNavigation component, see the docs and samples for usage information ( I731a0 )

  • Added Icon, IconButton and IconToggleButton, removing AppBarIcon. You can directly replace existing usages of AppBarIcon with IconButton, and they will now have the correct touch target. See the samples for usage information, and see Icons for the provided Material Icons you can use directly with these components. ( I96849 )

  • Replaced ButtonStyle with distinct functions and removed text (string) overload. See updated samples for usage information. ( If63ab , b/146478620 , b/146482131 )

  • rename Border modifier to DrawBorder ( I8ffcc )

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

  • Breaking changes to the ambients API. See log and Ambient<T> documentation for details ( I4c7ee , b/143769776 )

  • Scaffold material component has been added. Scaffold implements ( I7731b )

  • Replaced DrawBorder in favor of Border Modifier ( Id335a )

رفع اشکال

  • 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 )
  • 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 )
  • Modifier.draggable and Modifier.scrollable APIs were reworked. DragDirection was removed in favor of Orientation. State required for scrollable has beed simplified. ScrollableState has been renamed to ScrollableController ( Iab63c , b/149460415 )
  • runOnIdleCompose renamed to runOnIdle ( I83607 )
  • 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 )
  • Several testing APIs were renamed to be more intuitive. All findXYZ APIs were renamed to onNodeXYZ. All doXYZ APIs were renamed to performXYZ. ( I7f164 )
  • Transition API has been changed to return a TransitionState instead of passing the TransitionState to children. This makes the API more consistent with animate() APIs. ( I24e38 )
  • 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 )
  • A new optional flag useUnmergedTree was added to test finders. ( I2ce48 )
  • Removed obsolete size testing APIs. ( Iba0a0 )
  • 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 )
  • Popups, Dialogs and Menus are now inheriting the contextual MaterialTheme ( Ia3665 , b/156527485 )
  • Material DropdownMenu are now scrollable. ( Ide699 )
  • 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 )
  • Use AnimationSpec instead of AnimationBuilder in the top level APIs to clarify the concept of static animation specification -Improve the transition DSL by removing the lambda requirement for creating AnimationSpecs such as tween, spring. They instead take constructor params directly. -Improve the overall ease of use of AnimationSpec opening up constructors instead of relying on builders -Change the duration and delay for KeyFrames and Tween to Int. This eliminates unnecessary type casts and method overloading (for supporting both Long and Int). ( Ica0b4 )
  • Switch now appears in a disabled state when enabled is set to false ( If4624 , b/155941869 , b/159331694 )
  • 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 )
  • 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 )

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

  • Toggleable component has been deprecated. Use Modifier.toggleable instead ( I35220 , b/157642842 )

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

  • Fixed onClick not being invoked for DropdonMenuItems. ( I3998b , b/157673259 )

  • MutuallyExclusiveSetItem has been deprecated. Use Modifier.selectable instead. ( I02b47 , b/157642842 )

  • TestTag is now deprecated. Use Modifier.testTag instead. ( If5110 , b/157173105 )

  • TextField's cursor has a blinking animation ( Id10a7 )

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

  • VerticalScroller now provides Column out of the box. HorizontalScroller now provides Row out of the box. ( Ieca5d , b/157020670 )

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

  • Modifier.semantics has been undeprecated to allow usages for high level components. ( I4cfdc )

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

  • AlignmentLineOffset composable is deprecated, please use relativePaddingFrom() modifier instead. CenterAlignmentLine composable is removed. ( I60107 )

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

  • Added defaultMinSizeConstraints layout modifier, which sets size constraints to the wrapped layout only when the incoming corresponding constraints are unspecified (0 for min constraints and infinity for max constraints). ( I311ea , b/150460257 )

  • FocusManagerAmbient is removed. Use FocusModifier.requestFocus to obtain focus. ( Ic4826 )

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

  • Add cursor color customisation to the TextField ( I6e33f )

  • TextFieldValue used with TextField can now be survive activity recreation when used like this: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } ( I5c3ce , b/155075724 )

  • Renamed LayoutModifier2 to LayoutModifier. ( Id29f3 )

  • Removed deprecated LayoutModifier interface. ( I2a9d6 )

  • Replaced CoreTextField/TextField focusIdentifier parameter with FocusNode in order to integrate with focus subsystem. ( I7ea48 )

  • Intrinsic measurements functions in Layout and LayoutModifier2 have an IntrinsicMeasureScope receiver now which provides intrinsics query API with implicitly propagated layout direction. ( Id9945 )

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

  • RectangleShape moved from androidx.ui.foundation.shape.* to androidx.ui.graphics.* ( Ia74d5 , b/154507984 )

  • TextField API update - merged onFocus and onBlur callbacks into a single onFocusChange(Boolean) callback with parameter ( I66cd3 )

  • Added verticalGravity and horizontalGravity parameters to Row and Column, respectively. ( I7dc5a )

  • Updated wrapContentWidth and wrapContentHeight to expect vertical or horizontal Alignment rather than any Alignment. The gravity modifier was updated to accept vertical or horizontal Alignment. Row, Column and Stack were updated to support custom continuous Alignments. ( Ib0728 )

  • Created PixelMap API to support querying pixel information from an ImageAsset. ( I69ad6 )

  • Removes ProvideContentColor, instead just use ContentColorAmbient directly with Providers ( Iee942 )

  • ui-text-compose module is renamed as ui-text. ui-text now contains CoreText and CoreTextField composables ( Ib7d47 )

  • ui-text module is renamed as ui-text-core ( I57dec )

  • Moved ui-framework/CoreText, CoreTextField composables under ui-text-compose. You might want to include ui-text-compose in your project. ( I32042 )

  • 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 )
  • runOnIdleCompose and runOnUiThread are now global functions instead of methods on ComposeTestRule. ( Icbe8f )

  • [Mutable]State property delegate operators moved to extensions to support Kotlin 1.4 property delegate optimizations. Callers must add imports to continue using by state { ... } or by mutableStateOf(...) . ( I5312c )

  • Added positionInParent and boundsInParent for LayoutCoordinates. ( Icacdd , b/152735784 )

  • ColoredRect has been deprecated. Use Box(Modifier.preferredSize(width, height).drawBackground(color)) instead. ( I499fa , b/152753731 )

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

  • Draggable has been moved to modifier ( Id9b16 , b/151959544 )

  • ParentData composable is deprecated. You should either create a modifier which implements ParentDataModifier interface, or use LayoutTag modifier if you simply need to tag layout children to recognize them inside the measure block. ( I51368 , b/150953183 )

  • Deprecated Center composable. It should be replaced either with the LayoutSize.Fill + LayoutAlign.Center modifier, or with one of the Box or Stack composables with suitable modifiers applied ( Idf5e0 )

  • Added VectorPainter API to replace existing subcomposition API for vector graphics. Result of subcomposition is a VectorPainter object instead of a DrawModifier. Deprecated previous DrawVector composables in favor of VectorPainter.

    Renamed Image(Painter) API to PaintBox(Painter) Created Vector composable that behaves like the Image composable except with a VectorAsset instead of an ImageAsset ( I9af9a , b/149030271 )

  • Renamed LayoutFlexible to LayoutWeight. Renamed tight parameter to fill. ( If4738 )

  • Removed RepaintBoundary in favor of DrawLayerModifier ( I00aa4 )

  • DrawVector has been changed from a regular composable function to returning a Modifier drawVector() that will draw the vector as a background to a layout. ( I7b8e0 )

  • The Opacity composable function has been replaced with the drawOpacity modifier. ( I5fb62 )

  • Replace composable function Clip with modifier drawClip(). DrawClipToBounds is a convenient modifier to use when you only need to clip to the layer bounds with a rectangle shape. ( If28eb )

  • Replaced DrawShadow composable function with drawShadow() modifier. Shadows are now drawn as part of LayerModifier. ( I0317a )

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

  • androidx.compose.ViewComposer has been moved to androidx.ui.node.UiComposer androidx.compose.Emittable has been removed. It was redundant with ComponentNode. androidx.compose.ViewAdapters has been removed. They are no longer a supported use case. Compose.composeInto has been deprecated. Use setContent or setViewContent instead. Compose.disposeComposition has been deprecated. Use the dispose method on the Composition returned by setContent instead. androidx.compose.Compose.subcomposeInto has moved to androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt has been renamed to ComponentNode#insertAt ComponentNode#emitRemoveAt has been renamed to ComponentNode#removeAt ComponentNode#emitMode has been renamed to ComponentNode#move ( Idef00 )

  • Created Image composable to handle sizing/layout in addition to drawing a given ImageAsset to the screen. This composable also supports drawing any arbitrary Painter instance respecting its intrinsic size as well as supporting a given fixed size or minimum size ( Ibcc8f )

  • Deprecated Wrap composable. It can be replaced either with the LayoutAlign modifier or with the Stack composable ( Ib237f )

  • WithConstraints got LayoutDirection parameter ( I6d6f7 )

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

  • DrawShape composable was removed. Use DrawBackground modifier instead. ( I7ceb2 )

  • Support right-to-left direction in LayoutPadding modifier ( I9e8da )

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

  • Updated the ComposeFlags.COMPOSER_PARAM flag to be true , which will change the code generation strategy for the compose plugin. At a high level, this causes @Composable functions to be generated with an additional synthetic parameter, which is passed through to subsequent @Composable calls in order for the runtime to properly manage execution. This is a significant binary breaking change, however, should preserve source-level compatibility in all sanctioned usage of compose. ( I7971c )

  • Added Canvas component. This composable takes up some size (provided by user) and allows you to draw using CanvasScope ( I0d622 )

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

  • Scrollers now exhibit native Android fling motion behavior. ( I922af , b/147493715 )

  • Improvements to the API surface of Constraints ( I0fd15 )