Compose Foundation
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(לעיון במסמכי ההפניה של ה-API לכל חבילות ה-Compose)
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 25 בפברואר 2026 | 1.10.4 | - | - | 1.11.0-alpha06 |
מבנה
Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, ולכל אחת מהן יש קבוצה משלה של הערות לגבי הגרסה.
בטבלה הזו מוסברות הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.
| קבוצה | תיאור |
|---|---|
| compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
| compose.compiler | שינוי פונקציות עם הערה @Composable והפעלת אופטימיזציות באמצעות פלאגין של Kotlin Compiler. |
| compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
| compose.material | אפשר לבנות ממשקי משתמש של Jetpack פיתוח נייטיב עם רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
| compose.material3 | אפשר ליצור ממשקי משתמש של Jetpack פיתוח נייטיב באמצעות רכיבי Material Design 3, הדור הבא של Material Design. Material 3 כולל רכיבים וערכות נושא מעודכנים ותכונות התאמה אישית של Material You, כמו צבעים דינמיים. הוא מתוכנן להיות תואם לסגנון החזותי החדש של Android 12 ולממשק המשתמש של המערכת. |
| compose.runtime | אבני בניין בסיסיות של מודל התכנות וניהול המצב של Compose, וזמן ריצה מרכזי לטירגוט של פלאגין מהדר Compose. |
| compose.ui | רכיבים בסיסיים בממשק המשתמש של Compose שנדרשים כדי ליצור אינטראקציה עם המכשיר, כולל פריסה, ציור וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.10.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.10.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.11
גרסה 1.11.0-alpha06
25 בפברואר 2026
androidx.compose.foundation:foundation-*:1.11.0-alpha06 מופץ. גרסה 1.11.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו API ניסיוני של סגנונות שמאפשר להתאים אישית פונקציות הניתנות להגדרה בצורה עקבית. ה-API הזה נמצא בפיתוח פעיל, ויכול להיות שיעבור שינויים משמעותיים לפני שיהפוך ליציב. פרטים על השימוש ב-API הזה מופיעים במסמכי העזרה שכלולים. (I7fed2, b/455788242)
תיקוני באגים
- הקוד של
Modifier.combinedClickableנכתב מחדש כדי לא להשתמש ב-suspend pointer input כאופטימיזציה. התכונה הזו מופעלת באמצעות הדגל שאפשר להשבית אם נתקלים בבאג בהטמעה החדשה –ComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled.(Iea684)
בעיות מוכרות
Modifier.combinedClickableהשכתוב גורם לרגרסיה בהתנהגות של לחיצה ארוכה, שיכולה לגרום ללחיצות עמוקות להפעיל לחיצות ארוכות חוזרות במכשירים מסוימים. נפתור את הבעיה הזו במהדורה הבאה. עד אז, אפשר להגדיר אתComposeFoundationFlags.isNonSuspendingPointerInputInCombinedClickableEnabled=falseכדי למנוע את הבעיה.
גרסה 1.11.0-alpha05
11 בפברואר 2026
androidx.compose.foundation:foundation-*:1.11.0-alpha05 מופץ. גרסה 1.11.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
isNestedDraggablesTouchConflictFixEnabledכדי לפתור בעיות שנוצרות בגלל רכיבים שניתנים לגרירה בתוך רכיבים אחרים. נבחר יותר בגרירה אנכית מאשר בגרירה אופקית, כי מבחינת חוויית המשתמש, יש יותר חופש ואי ודאות כשמשתמש מבצע תנועה אנכית לעומת תנועה אופקית. (I273c7, b/252334353, b/269627294, b/363198504, b/442390269, b/419580124) - הוספנו תמיכה במחוות במשטח המגע ובהמרה מאירועי קלט במשטח המגע לעכבר. בעקבות השינוי הזה, אירועי מצביע בלוח מגע ששולטים בסמן כמו בטאבלטים או במחשבים ניידים, ידווחו בדרך כלל כמצביעי עכבר. גם תנועות של הזזה ושינוי גודל ידווחו עם מידע נוסף שזמין בשינויים של אירועי המצביע, עם הערכים החדשים
PointerEventType.Panו-PointerEventType.Scaleשמציינים שהערכים האלה יוגדרו (Id071a, b/315527861, b/459831570) - תציג את
isDelayPressesUsingGestureConsumptionEnabled. כשהדגל הזה מופעל, קונטיינרים עם תנועת גרירה יפעילו השהיה לפני הלחיצה. השינוי הזה כולל שינוי בהתנהגות של מאגרי תגים שמבוססים עלModifier.draggable, שלא הייתה בהם השהיה של לחיצה בעבר. (I53f24, b/203141462) - הוסר הדגל
isDetectTapGesturesImmediateCoroutineDispatchEnabledוהוצא משימוש הדגלDetectTapGesturesEnableNewDispatchingBehavior(I9bba3)
תיקוני באגים
- תוקנה בעיה ב-
IndexOutOfBoundsExceptionב-BasicTextFieldכשמשתמשים ב-``OutputTransformation ומחקים טקסט. (I20ee1) - התנהגות
GridTrackSize.Autoהשתנתה. עכשיו אפשר להגדיר את הגודל של הרצועות מ-min-contentעדmax-content. (Ifa22e, b/477748472)
External Contribution
- הוספת תמיכה במקשי תנועה (I1ff12)
NumPad
גרסה 1.11.0-alpha04
28 בינואר 2026
androidx.compose.foundation:foundation-*:1.11.0-alpha04 מופץ. גרסה 1.11.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- תוקן באג שבו הערך של
AnchoredDraggableState[targetValue] היה שגוי בתרחישים מסוימים עם כמה עוגנים באותו היסט. כשמגיעים לעוגן עם אותו היסט כמו של עוגן אחר, הפונקציהtargetValueמחזירה באופן שגוי את העוגן האחרון עם ההיסט הזה. הפונקציה מחזירה עכשיו אתcurrentValueכשהיא מוגדרת להיסט שלcurrentValue. (I66a7a, b/476365336) - השקנו את
FlexBox, מערכת פריסה שניתנת להגדרה והיא קבוצת-על שלRow,Column,FlowRowו-FlowColumn. הוא תומך בתכונות כמו flex-grow, flex-shrink, custom wrapping, direction change ובאמצעי בקרה מפורטים של יישור באמצעותFlexBoxConfigו-Modifier.flex. (I44780) - השקנו את
Grid, פריסת דו-ממד חדשה שניתנת להרכבה ולא מתבצעת בה טעינה עצלה, בהשראת CSS Grid. הגרסה הראשונית הזו מאפשרת להגדיר מבני רשת מפורשים עם גדלים שונים של רצועות, כוללFixed,Percentage,Flexואפשרויות מבוססות-תוכן באמצעות הבלוקconfig. הלוגיקה הבסיסית של הפריסה תומכת במיקום פריטים מפורש בתוך הרשת באמצעותModifier.gridItem(). כל ממשקי ה-API שקשורים ל-Grid הם ניסיוניים בשלב הזה, וצריך להביע הסכמה לשימוש בהם באמצעות@OptIn(ExperimentalGridApi::class). נשמח לקבל מכם משוב על הפריסה החדשה הזו. (I04907, b/462550392)
גרסה 1.11.0-alpha03
14 בינואר 2026
androidx.compose.foundation:foundation-*:1.11.0-alpha03 מופץ. גרסה 1.11.0-alpha03 מכילה את השמירות האלה.
תיקוני באגים
- תיקון של דליפת זיכרון ב-
LazyStaggeredGridכשמשתמשים בו בתוךLookaheadScopeI286ad
גרסה 1.11.0-alpha02
17 בדצמבר 2025
androidx.compose.foundation:foundation-*:1.11.0-alpha02 מופץ. גרסה 1.11.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- ממשקי ה-API של
MultiModalInjectionScopeיציבים עכשיו. הם כוללים אתperformKeyInputואתperformRotaryScrollInput, ואת ממשקי ה-API הבסיסיים שלהם למפתחות ולסיבוב מפתחות. ההערה של הניסוי הוסרה. (Ie8bbc, b/261561237) - הוסר הסימון
isNonSuspendingPointerInputInClickableEnabled. (I6a168, b/455591971)
גרסה 1.11.0-alpha01
3 בדצמבר 2025
androidx.compose.foundation:foundation-*:1.11.0-alpha01 מופץ. גרסה 1.11.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
Modifier.scrollIndicatorכדי לאפשר הוספה של אינדיקטורים מותאמים אישית לגלילה בקונטיינרים שאפשר לגלול בהם. ממשקScrollIndicatorFactoryמאפשר ליצור אינדיקטורים של גלילה על ידי הגדרת המראה וההתנהגות שלהם. (I89322) - בוצעה הסרה של
ComposeFoundationFlags.isTextFieldDpadNavigationEnabled. ההתנהגות החדשה מופעלת עכשיו בכל הזמנים. (I3f034) - השקנו את
isCacheWindowRefillFixEnabledכדי לשלוט בהשקה של התיקון למילוי מחדש של חלון המטמון. (I4e52b, b/454439658) - בוצעה הסרה של
ComposeFoundationFlags.isKeepInViewFocusObservationChangeEnabled. ההתנהגות החדשה מופעלת עכשיו בכל הזמנים. (I7cbd4) -
Modifier.onFirstVisible()הוצא משימוש כי ההתנהגות שלו מטעה והוא לא תמיד פועל בהתאם לחוזה שמוצהר בשם. לדוגמה, אם מוסיפים אותה לפריט שלLazyColumn, המערכת תקרא לקריאה החוזרת הזו בכל פעם שהפריט הזה יהפוך לגלוי אחרי גלילה. זה לא מה שמשתמשים במאפיין הזה עם השם הזה ציפו לקבל. מומלץ להשתמש ב-Modifier.onVisibilityChanged()במקום זאת ולעקוב באופן ידני אחרי הנראות של הפריסה, בהתאם לדרישות של תרחיש השימוש הספציפי. (Ia7095, b/447601783) - הוספנו את
MeasuredSizeAwareModifierNode, שנדרש כשצריך קריאה חוזרת (callback) שלonRemeasured(). במקום להשתמש ב-LayoutAwareModifierNodeכללי יותר כשלא צריך קריאות חוזרות אחרות, צריך להשתמש בממשק הזה ישירות. (If6fb0) - הוספנו את
visibleModifier שאפשר להשתמש בו כדי לדלג על ציור התוכן של Composable בלי להשפיע על המקום שהוא תופס. (Ia6871, b/158837937)
גרסה 1.10
גרסה 1.10.4
25 בפברואר 2026
androidx.compose.foundation:foundation-*:1.10.4 מופץ. גרסה 1.10.4 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה באג רגרסיה שבו שימוש במגדיר יישור מהיקף שונה (למשל,
ColumnScope.alignבתוךRow) גרם למיקום שגוי. (6888f2b, b/477639546)
גרסה 1.10.3
11 בפברואר 2026
androidx.compose.foundation:foundation-*:1.10.3 מופץ. גרסה 1.10.3 מכילה את השמירות האלה.
גרסה 1.10.2
28 בינואר 2026
androidx.compose.foundation:foundation-*:1.10.2 מופץ. גרסה 1.10.2 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה שהתרחשה כשניווטו חזרה ממסך עם בחירת טקסט פעילה. (I9f540, b/444482508)
גרסה 1.10.1
14 בינואר 2026
androidx.compose.foundation:foundation-*:1.10.1 מופץ. גרסה 1.10.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון קריסה כשבחירת הטקסט מתרחבת ממופע Text אחד למופע אחר שמיושר אופקית. I351311, b/439758956
גרסה 1.10.0
3 בדצמבר 2025
androidx.compose.foundation:foundation-*:1.10.0 מופץ. גרסה 1.10.0 מכילה את השמירות האלה.
גרסה 1.10.0-rc01
19 בנובמבר 2025
androidx.compose.foundation:foundation-*:1.10.0-rc01 מופץ. גרסה 1.10.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- הסימון
isCacheWindowForPagerEnabledמושבת. (Iffdec, b/458193632)
גרסה 1.10.0-beta02
5 בנובמבר 2025
androidx.compose.foundation:foundation-*:1.10.0-beta02 מופץ. גרסה 1.10.0-beta02 מכילה את השמירות האלה.
גרסה 1.10.0-beta01
22 באוקטובר 2025
androidx.compose.foundation:foundation-*:1.10.0-beta01 מופץ. גרסה 1.10.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- כל ממשקי ה-API של מגע עקיף עודכנו כך שישתמשו בשם indirect pointer APIs כדי להתאים לממשקי ה-API של קלט מצביע. (I238ce, b/451607214)
- הערה לגבי
PagerState.currentPageOffsetFractionעם@FrequentlyChangingValue. (Idfaab)
תיקוני באגים
- תוקן באג שקשור להתנהגות של marquee בכיווני פריסה מימין לשמאל. (Ib8be3)
גרסה 1.10.0-alpha05
8 באוקטובר 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha05 מופץ. גרסה 1.10.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
PaddingValuesתומכות עכשיו בפעולות חיבור וחיסור כדי לפשט חישובים נפוצים של ריווח פנימי. (I327e1, b/244468479)
תיקוני באגים
- ההגדרה
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledמופעלת כברירת מחדל. זהו אופטימיזציה של הביצועים, שמאפשרת לנו לחלק את העבודה שאנחנו צריכים לעשות במהלך האחזור המקדים בצורה טובה יותר. לדוגמה, אנחנו יכולים לבצע את ההרכבה רק לחלקים של הפריט הבא שלLazyColumnבמהלך פריים אחד של ממשק המשתמש, ואז להמשיך להרכיב את שאר הפריט בפריים הבא. (I4c7fe)
גרסה 1.10.0-alpha04
24 בספטמבר 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha04 מופץ. גרסה 1.10.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הטמעה של
ScrollIndicatorStateנוספה ל-PagerState. (I113b7) - הטמעה של
ScrollIndicatorStateנוספה ל-LazyStaggeredGridState. (I1028e) - הטמעה של
ScrollIndicatorStateנוספה ל-LazyGridState. (I9e50c) - הטמעה של
ScrollIndicatorStateנוספה ל-LazyListState. (I5ee29) - הטמעה של
ScrollIndicatorStateנוספה ל-ScrollState. (I27f66) - הוספת הנכס
scrollIndicatorStateלממשקScrollableState(Idca93) - הדגל
isWindowInsetsModifierLocalNodeImplementationEnabledהוסר (I15e8f, b/440964232) - הוספת משנה
scrollableArea()שאפשר להשתמש בו כדי להגדיר את הרכיב כרכיב שאפשר לגלול בו, עם התנהגויות של חיתוך התוכן לגבולות שלו וטיפול אוטומטי בכיוון הגלילה של התוכן על סמך Orientation, RTL והדגלreverseScrolling. (I9471b, b/316559454)
גרסה 1.10.0-alpha03
10 בספטמבר 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha03 מופץ. גרסה 1.10.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הסרה של
ComposeFoundationFlags.isNonComposedClickableEnabled(I0dfc0, b/406228525) - העברת פונקציות ליצירת מופעים של
FillableDataלאובייקט נלווה. במקום להתקשר אלFillableData(value), אפשר להשתמש בשיטות החדשות של הגדרות היצרן:FillableData.createFrom(value). (I2e200, b/441719650) - הוספנו
BeyondBoundsLayoutModifierNodeצומת חדש של Modifier כדי לבצע פריסה מעבר לגבולות לחיפוש מיקוד. (I39be1, b/416133658) - הנכס
ScrollState.valueסומן כנכס@FrequentlyChangingValue. (I4723d) - הוספנו את
LazyLayoutKeyIndexMapופקטורי (factory) להטמעה של ברירת מחדל. (I4fd0c, b/415038029)
תיקוני באגים
- הפונקציות Column ו-Row מעבירות עכשיו בצורה נכונה את המידה בפועל של הפריט אל
Modifier.align, וכך נפתרה בעיה שבה הטמעה מותאמת אישית שלModifier.alignקיבלה ערך שגוי של 0. (I8194f, b/439716351)
גרסה 1.10.0-alpha02
27 באוגוסט 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha02 מופץ. גרסה 1.10.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוסר סימון בדגל
isFlingContinuationAtBoundsEnabled. (I6b84f) - הוסר סימון בדגל
isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled. (I62380) - הוסר סימון בדגל
isOnScrollChangedCallbackEnabled. (I667dc) - הוסר סימון בדגל
isAutomaticNestedPrefetchEnabled. (I4f416) - הוסר סימון בדגל
DragGesturePickUpEnabled. (Ib8500) - הוספת
ScrollIndicatorStateAPI לייצוג מצב סרגל הגלילה (I5e229)
תיקוני באגים
- תוקן באג שגרם לכך שהשימוש ב-
Modifier.anchoredDraggableלא הפעיל אתconfirmValueChange. (Iff7cc)
גרסה 1.10.0-alpha01
13 באוגוסט 2025
androidx.compose.foundation:foundation-*:1.10.0-alpha01 מופץ. גרסה 1.10.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- מעדכנים את אסטרטגיית האחזור מראש של Pager כך שתשתמש ב-Cache Window במקום בפריט ברירת המחדל 1 בכיוון הגלילה. עכשיו, אחזור מראש ראשוני מופעל כברירת מחדל ב-Pager, והאחזור מראש יתבסס על גודל החלון ששווה לאזור תצוגה אחד. כלומר, ננסה למלא אזור תצוגה שלם בפריטים שאוחזרו מראש. גם משך הזמן שבו הפריטים יישמרו יהיה ארוך יותר. (I4d45e, b/292136289)
- הוספנו את הדגל
ComposeFoundationLayoutFlags.isWindowInsetsOptimizationEnabledכדי לאפשר השבתה של אופטימיזציה של הביצועים שלWindowInsetsאם ההטמעה החדשה גורמת לשינוי בהתנהגות. (I8e912) -
SnapFlingBehaviorמאפשר עכשיו למפרטי אנימציה של הצמדה לחרוג מהגבולות במהלך ההצמדה. ההגדרה הזו מאפשרת למשל להשתמש במפרט של קפיץ קופצני בתורsnapAnimationSpecכדי ליצור אנימציה קופצנית של הצמדה. המערכת ממשיכה להתעלם מערכים שחורגים מהמותר כשמבצעים גישה באמצעות מפרט ההצמדה. (I373c2) - אם תלחצו על העכבר או על לוח המגע ב-
ComposeView, המיקוד יוסר אוטומטית אם הלחיצה לא תתרחש בגבולות הצומת שבמיקוד. התוצאה היא חוויית משתמש של 'הקשה לביטול המיקוד', שהיא צפויה יותר מההתנהגות הנוכחית כשמשתמשים במכשירים עם קלט מצביע. אפשר לבטל את ההסכמה להתנהגות הזו באמצעות API חדש שלAbstractComposeView.isClearFocusOnPointerDownEnabled. (I6322b, b/282963174) - עכשיו, הרכיב Scrollable תומך טוב יותר באירועי גלילה דו-ממדיים של גלגל העכבר. השקנו API חדש לבדיקות שיעזור לכם לבדוק תרחישי שימוש ב-
MouseInjectionScope. הוספנו גם עומס יתר חדש לשיטות גלילה ב-MouseInjectionScopeודגל לשליטה בהתנהגות החדשה שנקראisMouseWheel1DAxisLockingEnabled(I136df) - בוצע עדכון של
DragGestureNodeכדי להשתמש בקלט של מצביע גולמי במקום בהשהיה של קלט המצביע לצורך אופטימיזציה. השינויים נוספים מאחורי הדגלisNonSuspendingPointerInputInDraggableEnabled(I0fa4b) - הוספנו הערות לכמה ממשקי API של
AnchoredDraggableעם@FrequentlyChangingValue. הערכיםoffset,requireOffsetו-progressמשתנים לעיתים קרובות, ולכן לא מומלץ לקרוא אותם בהרכב. במקום זאת, אפשר לגשת לערכים האלה בשלבי הפריסה והציור, באפקטים או מחוץ לקומפוזיציה. (I05539) - הוסרו הדגלים
isOnScrollChangedCallbackEnabled, isAdjustPointerInputChangeOffsetForVelocityTrackerEnabled, isFlingContinuationAtBoundsEnabled, isAutomaticNestedPrefetchEnabled, DragGesturePickUpEnabled, isPointerInteropFilterDispatchingFixEnabled, isNestedScrollInteropPostFlingFixEnabled, isNestedScrollDispatcherNodeFixEnabled(I36c18) - הוספנו את
CompositionLocalשאפשר להשתמש בו כדי לשנות את המברשת של ההדגשה של מילוי מוצלח ב'מילוי אוטומטי'. (I52329) - נוסף מלבן מיקוד שניתן להתאמה אישית ל-
FocusProperties. עכשיו אפשר להגדיר אזור מיקוד מותאם אישית במקום להשתמש בתיבת התוחמת של הרכיב שאפשר להתמקד בו כברירת מחדל. המערכת משתמשת במידע הזה כדי להעביר את המיקוד בין רכיבים וכדי להפעיל את הלוגיקה של שמירה בתצוגה של מאגרי תוכן שאפשר לגלול בהם. (Id6555, b/368378073) - נוסף
LineHeightStyle.Modeחדש בשםTight. המצב הזה עוזר לאכוף גובה שורה קטן יותר, גם אם יכול להיות שהוא יחתוך גליפים גבוהים יותר. (Id3849) - הוספנו ממשק חדש שניתן לאינטרפולציה, שמאפשר אינטרפולציה אוטומטית בין סוגים שונים, בהנחה שסוג אחד יודע איך להמיר מסוג אחר. הממשק הזה משמש בכמה סוגי קומפוזיציות, כמו Brush (מברשת) ו-Shape (צורה), אבל אפשר להשתמש בו גם באופן חיצוני. (I58eab)
- הוספה של אירועי קלט עקיפים ודרך לציין את ציר הקואורדינטות שמשמש לגלילה. (I58e7c)
- נוסף
WindowInsets.cutoutPathAPI חדש כדי לקבל את הנתיב של החיתוך בתצוגה (Ib90b1, b/279636456) - הדגל
isWindowInsetsDefaultPassThroughEnabledהוסר, וברירת המחדל של WindowInsets היא לא לצריכה, כדי שרכיבי Child Views יוכלו לקבלWindowInsetsכברירת מחדל. (I888e0, b/412469666)
תיקוני באגים
- צריך להשבית את
isNonSuspendingPointerInputInDraggableEnabledבאופן זמני. (Ia41c4) - העברת ברירת המחדל של minSdk מ-API 21 ל-API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
- עדכנו את מאמרי העזרה של
DraggableAnchors'minPosition/maxPositionכדי לציין שממשקי ה-API האלה צריכים להחזיר Float.NaN בהתאם לממשקי API אחרים שלDraggableAnchors. (I0460a) - תוקן באג שגרם לקריסה של
DraggableAnchors#closestAnchorאם העוגנים היו ריקים (I4e646) - שיפורים בביצועים של
DraggableAnchors(If4065, I0460a) TextFieldState.edit { }כבר לא מנקה את היסטוריית הביטול. במקום זאת, נוצרת רשומת ביטול פעולה עצמאית. אם רוצים שההתנהגות הרצויה תהיה ניקוי של מחסנית הביטול אחרי קריאה ל-edit, צריך להשתמש ב-TextFieldState.undoState.clearHistory(). (I12c14)- הוספנו תמיכה בלחיצה כפולה לבחירת מילה בעומס יתר של
SelectionContainerו-BasicTextField(value, onValueChange). (Ibb06a) - תיקון באג קל כדי להפוך את
AutoboxingStateValuePropertyDetectorלתואם ל-K1 ול-K2 (Ie81c1) requestRectangleOnScreenבקשות שנוצרות על ידי AndroidViews מועברות עכשיו בצורה תקינה אל Compose. ההגדרה הזו עוזרת לתצוגות כמוEditTextלהישאר על המסך כשמבצעים איתן אינטראקציה. (Ibbf4c)- הפונקציות Column ו-Row מעבירות עכשיו בצורה נכונה את הגודל בפועל של הפריט אל
Alignment.Vertical.alignו-Alignment.Horizontal.align, וכך נפתרה בעיה שבה הטמעות של יישור מותאם אישית קיבלו ערך שגוי של 0. (I3e460, b/349722072)
גרסה 1.9
גרסה 1.9.5
19 בנובמבר 2025
androidx.compose.foundation:foundation-*:1.9.5 מופץ. גרסה 1.9.5 מכילה את השמירות האלה.
גרסה 1.9.4
22 באוקטובר 2025
androidx.compose.foundation:foundation-*:1.9.4 מופץ. גרסה 1.9.4 מכילה את השמירות האלה.
גרסה 1.9.3
8 באוקטובר 2025
androidx.compose.foundation:foundation-*:1.9.3 מופץ. גרסה 1.9.3 מכילה את השמירות האלה.
גרסה 1.9.2
24 בספטמבר 2025
androidx.compose.foundation:foundation-*:1.9.2 מופץ. גרסה 1.9.2 מכילה את השמירות האלה.
גרסה 1.9.1
10 בספטמבר 2025
androidx.compose.foundation:foundation-*:1.9.1 מופץ. גרסה 1.9.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה שמתרחשת כשמשתמשים ב-
LazyLayoutCacheWindowב-LazyLists(c39f5f3)
גרסה 1.9.0
13 באוגוסט 2025
androidx.compose.foundation:foundation-*:1.9.0 מופץ. גרסה 1.9.0 מכילה את השמירות האלה
שינויים חשובים מאז גרסה 1.8.0
- בדיקות ה-Lint שמגיעות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אין לכם אפשרות לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות
android.experimental.lint.version=8.8.2(או גרסה חדשה יותר) בקובץgradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), נדרשת גרסה Android Studio Ladybug או גרסה חדשה יותר. - שינוי שעלול לגרום לכשלים: עומסי יתר של
clickable,combinedClickable,selectable,toggleableו-triStateToggleableללא פרמטר של אינדיקציה תומכים עכשיו רק במופעים שלIndicationNodeFactoryשסופקו באמצעותLocalIndication. השינוי הזה יחול כשקומפילציה מחדש של השימושים במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על תלות בינארית או על תלות מעבר. אם אתם מספקים ל-LocalIndicationהטמעה של Indication שהוצאה משימוש, ואתם משתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים, וכדי לאפשר לפונקציות קומפוזביליות שמשתמשות במאפיינים האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=falseכדי לבטל את השינוי הזה באופן זמני, וכך לאפשר שדרוג של Compose בלי שההעברה הזו תחסום אתכם. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שיצאו משימוש לשימוש ב-IndicationNodeFactoryבמקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר של ציון מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים שאינםIndicationNodeFactoryשל ציון, למרות שלא מומלץ לעשות זאת מסיבות שקשורות לביצועים. (I6bcdc, b/316914333) - הוספנו את
isFlingCancellationWithNestedScrollFixEnabledכדי לפתור בעיה בהפצה של תנועת הדיפדוף בגלילה מקוננת. ב-CL הזה אנחנו משחזרים את התנהגות ההמשכיות של ההעברה שהוסרה ב-I9326a. עדיין נבטל את אנימציית ההטלה אם הילד יוסר מהקומפוזיציה. (I467f4, b/405910180, b/419049142, b/416784125) - להוסיף מחדש את השימוש ב-
scrollAnimationSpecב-ContentInViewNode. ההתנהגות הזו הוסרה במהלך הוצאתscrollAnimationSpecמשימוש, מה שגרם לשיבוש בתרחישי שימוש. (I1436a, b/403301605) - מיוצב
LazyLayout. (If5db4),LazyLayoutPrefetchStateand it's scheduling methodschedulePrecompositionandschedulePrecompositionAndPremeasure. (I4362f, b/252853717) ו-LazyLayoutItemProvider(Icce09,b/261565751) - מתן הרשאה לכתיבה להפעיל את
ViewTreeObserver.OnScrollChanged. ההתנהגות הזו מוצגת באמצעות הדגלisOnScrollChangedCallbackEnabled. הוספנו גם פונקציית הרחבה שלDelegatableNode dispatchOnScrollChanged. (I34b9d, b/238109286) - הצגת
Modifier.scrollable2D, Scrollable2DStateוממשקי API נלווים ליצירת מצב. הוספנו גם פונקציות נפוצות של תוסף גלילה. (Ic61c8, b/214410040) PrefetchSchedulerוההתאמה האישית הוצאו משימוש לטובת הטמעה פנימית שמבצעת את כל הפעולות באופן אוטומטי. (I3a9a6, b/420551535)TextFieldState.edit { }כבר לא מנקה את היסטוריית הביטול. במקום זאת, נוצרת רשומת ביטול פעולה עצמאית. אם רוצים שההתנהגות הרצויה תהיה ניקוי של מחסנית הביטול אחרי קריאה לעריכה, צריך להשתמש ב-TextFieldState.undoState.clearHistory(). (I12c14)- תפריט ההקשר וסרגל הכלים לבחירה תומכים עכשיו בפריטים חכמים (בחירה חכמה)
- נוסף טקסט עם עיצוב
OutputTransformationכדי לאפשר עיצוב של הפלט שלTextFieldבאמצעות העמסת היתרstate. -
TextField: תפריט הקשר של התמיכה (תפריט לחיצה ימנית). - אם מעתיקים טקסט מכמה רכיבי Text שניתנים להרכבה ב-
SelectionContainer, עכשיו יתווסף מפריד שורות \n בין הטקסטים שמגיעים מרכיבי Text שונים שניתנים להרכבה. (I25332, b/285036739) - השקת API ליצירת רשימות תבליטים בהתאמה אישית דרך
AnnotatedString(I1d066, b/383269496, b/139326648) - העומס העודף
stateשלBasicTextFieldיגרום לכך שהסמן יישאר בתצוגה כשגודלו ישתנה. (I0eb41, b/406187741) - שינוי שעלול לשבור תאימות: הצמתים של משני
backgroundו-borderמיישמים עכשיו אתSemanticsModifierNode. הדבר עלול לגרום להוספה שלSemanticsNodesחדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild, ב-onParent, ב-onSiblingובשיטות דומות אחרות כדי ליצור הצהרות יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיףtestTagישירות לצומת היעד. גישה אחרת היא להשתמש בכלי התאמה פחות מחמיר, כמוonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")). (I638b5)
גרסה 1.9.0-rc01
30 ביולי 2025
androidx.compose.foundation:foundation-*:1.9.0-rc01 מופץ. גרסה 1.9.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
TextFieldState.edit { }כבר לא מנקה את היסטוריית הביטול. במקום זאת, נוצרת רשומת ביטול פעולה עצמאית. אם רוצים שההתנהגות הרצויה תהיה ניקוי של מחסנית הביטול אחרי קריאה ל-edit, צריך להשתמש ב-TextFieldState.undoState.clearHistory(). (I12c14)
גרסה 1.9.0-beta03
16 ביולי 2025
androidx.compose.foundation:foundation-*:1.9.0-beta03 מופץ. גרסה 1.9.0-beta03 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג רגרסיה שגרם לשיבוש בהתנהגות של כותרות קבועות ברשתות עצלות כשמספקים תוכן כותרת ריק. (e3e3400)
גרסה 1.9.0-beta02
2 ביולי 2025
androidx.compose.foundation:foundation-*:1.9.0-beta02 מופץ. גרסה 1.9.0-beta02 מכילה את השמירות האלה.
תכונות חדשות
- תמיכה בפריטים חכמים בתפריט ההקשר ובסרגל הכלים לבחירה.
שינויים ב-API
- תוקן באג שבו מקלדות חומרה מסוימות או שלטים של טלוויזיות לא מצליחים להזיז את הסמן ב-
TextFieldsהחדש באמצעות מקשי החיצים, ובמקום זאת מעבירים את המיקוד לרכיב אחר. הוספנו אתComposeFoundationFlag.isTextFieldDpadNavigationFixEnabledכדי שנוכל להשבית את התיקון הזה באופן זמני אם הוא גורם להתנהגות לא רצויה באופן בלתי הפיך. (Ie1922)
תיקוני באגים
- תוקנה בעיה שבה כותרות קבועות לא נשארו קבועות אם היה פריט מוצמד. (I9198d, b/385006133)
-
TextObfuscationMode.RevealLastTypedעכשיו פועל לפי הגדרת המערכת TEXT_SHOW_PASSWORD. (I41c0c) - תוקן באג שגרם לכך ש
BasicTextFieldהציג בטעות את האזהרה 'הדבקה מלוח העריכה' כשסרגל הכלים של הטקסט נפתח בפעם הראשונה. (I5fda2)
גרסה 1.9.0-beta01
18 ביוני 2025
androidx.compose.foundation:foundation-*:1.9.0-beta01 מופץ. גרסה 1.9.0-beta01 מכילה את השמירות האלה.
שינויי תוכנה שעלולים לגרום לכשלים
- צמתי הצירוף
backgroundו-borderמיישמים עכשיו אתSemanticsModifierNode. הדבר עלול לגרום להוספה שלSemanticsNodesחדשים לעץ הסמנטי, ולכן להוביל לכשלים בבדיקות שמניחות הנחות לגבי המבנה של עץ הסמנטי. לדוגמה, בדיקות שמשתמשות ב-onChild, ב-onParent, ב-onSiblingובשיטות דומות אחרות כדי ליצור הצהרות יכולות להיכשל אם מתווסף צומת חדש בין הצומת הנוכחי לצומת היעד. הדרך המומלצת לפתור את הכשלים האלה היא להוסיףtestTagישירות לצומת היעד. גישה אחרת היא להשתמש בכלי התאמה פחות מחמיר, כמוonNode(hasAnyAncestor(hasText("ancestor")) and hasText("target")). (I638b5)
שינויים ב-API
- שינוי השם של
Modifier.addTextContextMenuComponentsלappendTextContextMenuComponents. (I4c43f) - הוסרו הפונקציות
AnnotatedOutputTransformationוהועברו הפונקציותaddStyleאלTextFieldBuffer. עדיין אפשר להתקשר אלaddStyleרק מ-OutputTransformation. (I9930a, b/417991824) - הקומפוננטה Clickable נכתבת מחדש כדי לא להשתמש ב-suspend pointer input כאופטימיזציה. התכונה הזו מופעלת באמצעות flag – אפשר להשבית אותה אם נתקלים בבאג בהטמעה החדשה –
ComposeFoundationFlags.isNonSuspendingPointerInputInClickableEnabled. (I85b65) - הוספנו את
isFlingCancellationWithNestedScrollFixEnabledכדי לפתור בעיה בהפצה של תנועת הדיפדוף בגלילה מקוננת. ב-CL הזה אנחנו משחזרים את התנהגות ההמשכיות של ההעברה שהוסרה ב-aosp/3260391. עדיין נבטל את אנימציית ההטלה אם הילד יוסר מהקומפוזיציה. (I467f4, b/405910180, b/419049142, b/416784125) WindowInsetsRulers: שינה אתrulersIgnoringVisibilityלמקסימום. הפונקציהgetDisplayCutoutBounds()שונתה והפכה לפונקציית הרחבה שלPlacementScope. הערך שלWindowInsetsAnimationPropertiesהשתנה ל-WindowInsetsAnimationוהערך שלgetAnimationProperties()השתנה ל-getAnimation(). (I3816f)- הקוד
InsetsRulersהועבר לקוד משותף עם השםWindowInsetsRulers. פישטנו את ה-API כך שכל התמונות הממוזערות הןWindowInsetsRulers. מאפייני אנימציה שלא קשורים לסרגלים חולצו למחלקהAnimationProperties. אפשר להשתמש ב-WindowInsetsRulers.innermostOf()כדי למזג כמהWindowInsetsRulers. (I2f0c6, b/415012444)
תיקוני באגים
- להוסיף מחדש את השימוש ב-
scrollAnimationSpecב-ContentInViewNode. ההתנהגות הזו הוסרה במהלך הוצאתscrollAnimationSpecמשימוש, מה שגרם לשיבוש בתרחישי שימוש. (I1436a, b/403301605)
גרסה 1.9.0-alpha04
4 ביוני 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha04 מופץ. גרסה 1.9.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
PrefetchSchedulerוההתאמה האישית הוצאו משימוש לטובת הטמעה פנימית שמבצעת את כל הפעולות באופן אוטומטי. (I3a9a6, b/420551535)- הפונקציה
Scrollable2DStateעודכנה כך שתשתמש בהיסט בשיטהcanScrollבמקום בזווית. (I28694, b/417268474) - הטקסט
addAnnotationב-AnnotatedOutputTransformationהוחלף בטקסטaddStyle. (I91c6f, b/417991824) - מיוצב
LazyLayout. (If5db4) - בוצע ייצוב של בנאי ריק עבור
LazyLayoutPrefetchStateושיטת התזמון שלוschedulePrecompositionו-schedulePrecompositionAndPremeasure. (I4362f, b/252853717) - נוסף
ProcessTextKeyב-Android שמשמש לפריטים בתפריט ההקשר שנוספו לפעולות של כוונתPROCESS_TEXT. (If0ac4) - הפיכת ממשקי API של תפריט הקשר לציבוריים. הוספנו את
Modifier.addTextContextMenuComponentsו-Modifier.filterTextContextMenuComponentsכדי להוסיף ולהסיר פריטים בתפריט ההקשר. בנוסף, הפכנו את ממשקי ה-API הבסיסיים הבאים לציבוריים, כדי שיהיה אפשר ליצור תפריט הקשר בהתאמה אישית:TextContextMenuProviderTextContextMenuDataProviderTextContextMenuDataTextContextMenuComponentLocalTextContextMenuDropdownProviderLocalTextContextMenuToolbarProvider(I1b7b0)
- הפיכת
LazyLayoutItemProviderליציב (Icce09, b/261565751) - הוספנו תכונות חכמות לבחירה ב-Android שאפשר להפעיל או להשבית דרך
ComposeFoundationFlags.isSmartSelectionEnabled. הוא גם חשף אתcompositionLocalLocalTextClassifierCoroutineContextהסטטי שאפשר להשתמש בו כדי לציין אתCoroutineContextשבו מופעלת משימתTextClassification. (I1dbaa, b/139321320)
גרסה 1.9.0-alpha03
20 במאי 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha03 מופץ. גרסה 1.9.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- נוספה
AnnotatedOutputTransformationשמאפשרת להוסיף הערות ל-TextFieldלפני העיבוד. (Ibc6f0, b/389978748) - מציגים את
LazyLayoutMeasurePolicyודואגים ש-LazyLayoutMeasureScopeיהיה יציב. (I8c5df, b/252853717) -
BasicSecureTextFieldמעבירה עכשיו את ScrollState שלBasicTextFieldהפנימי שלה. (I6e576) - הוספנו את המגבילים
Modifier.onFirstVisibleו-Modifier.onVisibilityChanged, שהם מגבילים ברמה גבוהה שמבוססים עלModifier.onLayoutRectChanged. המשנים האלה נוצרו במיוחד כדי לטפל בהרבה דרישות נפוצות של אפליקציות, כמו רישום חשיפות, הפעלה אוטומטית של סרטונים וכו'. הם נוצרו תוך התחשבות בביצועים, כך שאפשר להשתמש בהם בתרחישים קריטיים שמבוססים על רשימות בלי לסכן את ביצועי הגלילה. בנוסף לממשקי ה-API האלה של שינוי, נוספו ממשקי API נוספים ל-RelativeLayoutBoundsכדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8) - הוספנו עומס יתר של
detectDragGesturesעם שליטה בהטיה של המגע ובנעילת הכיוון. (Iadb0d) - הצגת
Modifier.scrollable2D, Scrollable2DStateוממשקי API נלווים ליצירת מצב. הוספנו גם פונקציות נפוצות של תוסף גלילה. (Ic61c8, b/214410040) - אי אפשר להשוות ישירות בין ערכי צבע של 64 ביט ב-Compose לבין ערכי צבע של
ColorLongsב-Android, כי מזהי מרחבי הצבעים לא מסודרים בחלק ממרחבי הצבעים. כדי להמיר בין מרחבי צבעים של Android, נוספו שני ממשקי API חדשים:toColorLong()ו-fromColorLong(). (I36899)
תיקוני באגים
- אם מעתיקים טקסט מכמה רכיבי Text composable ב-
SelectionContainer, עכשיו יתווסף מפריד שורות\nבין הטקסטים שמגיעים מרכיבי Text composable הנפרדים. (I25332, b/285036739)
גרסה 1.9.0-alpha02
7 במאי 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha02 מופץ. גרסה 1.9.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- תוקן האופן שבו שינויים בקלט של מצביע נוספים ל-
VelocityTrackerב-DragGestureNode. אפשר לשלוט בזה באמצעות הדגל החדשisOffsetPositionBeforeAddingToVelocityTrackerEnabled. (Ic7992, b/292556787, b/236451818) - הפיכת
await[Vertical/Horizontal]PointerSlopOrCancellationלציבורי (I6968b, b/298903681) - ברירת המחדל של
AbstractComposeView.consumeWindowInsetsהיא עכשיו false. אם המדיניות מוגדרת כ-False, המיקום והגודל של חלוןWindowInsetsישתנו אוטומטית בהתאם לגודל המסך, ולכן אין יותר צורך להגדיר את המדיניות כ-True כברירת מחדל. העדכון הזה פותר את הבעיה שבה תצוגות צאצא לא קיבלו עדכונים שלWindowInsetsכברירת מחדל. מפתחים יכולים לבטל את ההסכמה לעדכון על ידי שינוי הערך שלComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabledל-true, או עדיף, על ידי הגדרת הערך שלAbstractComposeView.consumeWindowInsetsל-true בכל המקרים של תצוגת הכתיבה. (I6fa0a, b/411868840)
External Contribution
- תוקן קריסת רכיב ה-Pager עם ערכים גדולים במיוחד של beyondViewportPageCount (Idb2db)
גרסה 1.9.0-alpha01
23 באפריל 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha01 מופץ. גרסה 1.9.0-alpha01 מכילה את השמירות האלה.
שינויים בהתנהגות
בדיקות ה-Lint שמגיעות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אין לכם אפשרות לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות
android.experimental.lint.version=8.8.2(או גרסה חדשה יותר) בקובץgradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), נדרשת גרסה Android Studio Ladybug או גרסה חדשה יותר.שינוי שעלול לגרום לכשלים: עומסי יתר של
clickable,combinedClickable,selectable,toggleableו-triStateToggleableללא פרמטר Indication תומכים עכשיו רק במופעים שלIndicationNodeFactoryשסופקו באמצעותLocalIndication. השינוי הזה יחול כשקומפילציה מחדש של השימושים במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על תלות בינארית או על תלות מעבר. אם אתם מספקים ל-LocalIndicationהטמעה של Indication שהוצאה משימוש, ואתם משתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים, וכדי לאפשר לפונקציות קומפוזביליות שמשתמשות במאפיינים האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=falseכדי לבטל את השינוי הזה באופן זמני, וכך לאפשר שדרוג של Compose בלי שההעברה הזו תחסום אתכם. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שיצאו משימוש לשימוש ב-IndicationNodeFactoryבמקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר של ציון מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים שאינםIndicationNodeFactoryשל ציון, למרות שלא מומלץ לעשות זאת מסיבות שקשורות לביצועים. (I6bcdc, b/316914333)
שינויים ב-API
- השקת API ליצירת רשימות תבליטים בהתאמה אישית דרך
AnnotatedString(I1d066, b/383269496, b/139326648) - מתן הרשאה לכתיבה להפעיל את
ViewTreeObserver.OnScrollChanged. ההתנהגות הזו מוצגת באמצעות הדגלisOnScrollChangedCallbackEnabled. הוספנו גם פונקציית הרחבה שלDelegatableNode dispatchOnScrollChanged. (I34b9d, b/238109286) - כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP 2.0.0 או גרסה חדשה יותר (Idb6b5)
- נוספה תמיכה בבדיקת lint עבור
TextFieldStateכדי לוודא שהוא נשמר בתוך ההודעה. במקומה, אפשר להשתמש ב-rememberTextFieldState. (I53d74) - הוספנו תמיכה בבדיקת lint עבור
FocusRequesterכדי לוודא שהוא נשמר בתוך הקומפוזיציה (I6bf91) - נוספה תמיכה בבדיקת lint עבור
BringIntoViewRequesterכדי לוודא שהוא נשמר בתוך ההודעה. (Ibfba6) - הוספנו היקפי קריאה ל-
schedulePrefetchבשיטות של רשתות ורשימות כדי להתאים ליכולות שלLazyListPrefetchStateלספק מידע על גודל ואינדקס. (Iad80c) - שינוי שעלול לגרום לכשלים: עומסי יתר של
clickable,combinedClickable,selectable,toggleableו-triStateToggleableללא פרמטר Indication תומכים עכשיו רק במופעים שלIndicationNodeFactoryשסופקו באמצעותLocalIndication. השינוי הזה יחול כשקומפילציה מחדש של השימושים במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על תלות בינארית או על תלות מעבר. אם אתם מספקים ל-LocalIndicationהטמעה של Indication שהוצאה משימוש, ואתם משתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים, וכדי לאפשר לפונקציות קומפוזביליות שמשתמשות במאפיינים האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=falseכדי לבטל את השינוי הזה באופן זמני, וכך לאפשר שדרוג של Compose בלי שההעברה הזו תחסום אתכם. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שיצאו משימוש לשימוש ב-IndicationNodeFactoryבמקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר של ציון מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים שאינםIndicationNodeFactoryשל ציון, למרות שלא מומלץ לעשות זאת מסיבות שקשורות לביצועים. (I6bcdc, b/316914333) - הוספנו דגל לשליטה בהתנהגות האוטומטית של שליפה מראש (prefetch) מקוננת:
isAutomaticNestedPrefetchEnabled(I8d448) - הוספת עומס יתר ל-
LazyGridStateול-rememberLazyGridStateשמשתמש ב-LazyLayoutCacheWindow. (I51151) - הוספת סרגלים לשינוי גודל החלון. הפונקציה מוסיפה את
DerivedRulerכדי לאפשר חישוב של Ruler מ-Ruler אחר. משנה אתPlacmentScopeכדי להטמיע את הצפיפות. (I658bc, b/359260964) - נוספה פונקציית יצירה
WindowInsets()עם אפס ארגומנטים כדי ליצור בקלותWindowInsetsריק. (I65f62, b/395311689) - נוסף
PaddingValues.ZeroלPaddingValuesריק. (If193e, b/386255688)
תיקוני באגים
- העומס העודף
stateשלBasicTextFieldיגרום לכך שהסמן יישאר בתצוגה כשגודלו ישתנה. (I0eb41, b/406187741) - ממשקי ה-API של
onVisibleItemsUpdatedב-LazyListPrefetchStrategyוב-LazyGridPrefetchStrategyעודכנו כדי לספק מידע על המצב הראשוני. (If2cfa)
גרסה 1.8
גרסה 1.8.3
18 ביוני 2025
androidx.compose.foundation:foundation-*:1.8.3 מופץ. גרסה 1.8.3 מכילה את השמירות האלה.
גרסה 1.8.2
20 במאי 2025
androidx.compose.foundation:foundation-*:1.8.2 מופץ. גרסה 1.8.2 מכילה את השמירות האלה.
תיקוני באגים
- הוספנו תיקון שמונע חלוקה באפס בחישוב מספר הפריטים לטעינה בחיפוש הממוקד. הפעלנו את הבדיקה על כל הפריסות שמשתמשות ב-
LazyLayoutBeyondBoundsState. (8e6dc8)
גרסה 1.8.1
7 במאי 2025
androidx.compose.foundation:foundation-*:1.8.1 מופץ. גרסה 1.8.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג ב-
BasicTextוב-TextAutoSizeשבו שימוש ב-TextOverflow.Ellipsizeהניב טקסט קטן יותר מהאופטימלי. (I1e1d8, b/396582066) - תוקן באג ב-
BasicTextFieldשגרם לקריסות שונות כש-TextFieldDecoratorדילג על קריאה ל-innerTextField. (I2638c), b/308398612 - תוקן באג ב-
TextFieldשגרם לסרגל הכלים של הטקסט ולנקודות האחיזה של הבחירה להיעלם לחלוטין כשמופעTextFieldStateהשתנה. (I8068a), b/390477786 - תוקן באג ב-
BasicTextשבו שינוי של אילוץ הרוחב המינימלי לא עדכן את מיקום הטקסט כש-textAlignהוגדר לערך שאינו ברירת המחדל. (I77a96), b/406305552
גרסה 1.8.0
23 באפריל 2025
androidx.compose.foundation:foundation-*:1.8.0 מופץ. גרסה 1.8.0 מכילה את השמירות האלה.
גרסה 1.8.0-rc03
9 באפריל 2025
androidx.compose.foundation:foundation-*:1.8.0-rc03 מופץ. גרסה 1.8.0-rc03 מכילה את השמירות האלה.
גרסה 1.8.0-rc02
26 במרץ 2025
androidx.compose.foundation:foundation-*:1.8.0-rc02 מופץ. גרסה 1.8.0-rc02 מכילה את השמירות האלה.
גרסה 1.8.0-rc01
12 במרץ 2025
androidx.compose.foundation:foundation-*:1.8.0-rc01 מופץ. גרסה 1.8.0-rc01 מכילה את השמירות האלה.
גרסה 1.8.0-beta03
26 בפברואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta03 מופץ. גרסה 1.8.0-beta03 מכילה את השמירות האלה.
תיקוני באגים
- נוסף מאפיין סמנטי חדש,
InputText, שמתעד את הערך של שדה טקסט לפני החלת טרנספורמציה של הפלט. (Iae46a, b/395911609, b/176949051) - הוסרו עומסי יתר (overloads) שהוצאו משימוש של
AutoSize. אפשר להשתמש בממשקי ה-API שלTextAutoSizeשמבצעים את אותה פעולה. (I2c90f) - תוקנה בעיה במטמון ב-
TextAutoSize, שבה מעבר שני לפריסה עם אותם אילוצים יכול היה לגרום לשימוש בגודל הגופן השני הכי גדול במקום בגודל הגופן הכי גדול. (Id367f)
גרסה 1.8.0-beta02
12 בפברואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta02 מופץ. גרסה 1.8.0-beta02 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה הבעיה שבה הטמעות של גלילה מעבר לקצה באמצעות
LayoutModifierNodeלא פעלו בצורה תקינה בתוך מאגרי תגים של גלילה.
גרסה 1.8.0-beta01
29 בינואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta01 מופץ. גרסה 1.8.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
SemanticsNodeInteraction.semanticsId()הוסר. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.fetchSemanticsNode().id. (Ie397a)- לשכתב את
requestAutofillAPI כך שיהיה מחוץ למנהל המילוי האוטומטי. (Id1929) - התכונות
ContextualFlowRowוContextualFlowColumnסומנו כהוצאה משימוש. הרכיב הניסיוני הזה הוצג בגרסה 1.7, והוא עדיין לא עבר ייצוב. ההטמעה שלו נחשבת ללא רצויה. בעתיד, יכול להיות שנספק רכיב שיפתור את תרחישי השימוש שהרכיב הזה נועד לפתור.- ל-
FlowRowול-FlowColumnיש עומסי יתר ניסיוניים שהוצגו בגרסה 1.7 וכוללים פרמטרoverflow. השימוש בפרמטר הזה הוצא משימוש, ואפשר להשתמש במקומו בעומסים העודפים בלי הפרמטר הזה. התנהגות ברירת המחדל של העומסים העודפים האלה היא Clip, כמו שהייתה מאז ההשקה שלהם. - אפשר להשתמש ב-
FlowRowכדי לבצע הרבה מהמשימות שאפשר לבצע באמצעותContextualFlowRow, אבל אנחנו מודעים לכך שלא תמיד זה נכון. אפשר להטמיע אתContextualFlowRowבאופן מלא במרחב המשתמש, ואפשר לנסות להעתיק את ההטמעה שלו ולהתאים אותה לפי הצורך. בעתיד, ננסה לפתור את תרחישי השימוש האלה בדרך אחרת. (Ibafec)
- ל-
תיקוני באגים
- תיקון פריסת טקסט עם שלוש נקודות, שלפעמים מתורגמת בצורה שגויה במהלך אנימציות. מידע נוסף זמין בכתובת b/389707025 (Ie55b1, b/389707025)
- תוקן באג ב-
BasicTextשבו הערכים שלTextAutoSizeו-maxLinesהוגדרו כ-1. (Ic0450, b/376834366) - הגובה המינימלי של הטקסט מביא עכשיו בחשבון את הפרמטר
minLines. המשמעות היא שהגובה המינימלי של המודעות המובנות שדווח לא יהיה קטן מהגובה הנדרש כדי לעמוד בדרישות הפרמטרminLines(I225f9, b/388299762)
גרסה 1.8.0-alpha08
15 בינואר 2025
androidx.compose.foundation:foundation-*:1.8.0-alpha08 מופץ. גרסה 1.8.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- AutoSize: שונה השם מ-
AutoSizeל-TextAutoSizeופורסמו ממשקי API שמאפשרים ליצור הטמעות מותאמות אישית שלTextAutoSize.TextAutoSizeSampleכאן אפשר לראות דוגמה להטמעה של גודל טקסט מותאם אישית. (I85756) - העברנו את דגל התכונה
DetectTapGesturesEnableNewDispatchingBehaviorאלComposeFoundationFlagsושינינו את השם שלו ל-isDetectTapGesturesImmediateCoroutineDispatchEnabled. הדגל הישן הוצא משימוש ועכשיו הוא יוקצה ל-ComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabledבמקום זאת. (I62932)
תיקוני באגים
- מופעלת
DetectTapGesturesEnableNewDispatchingBehaviorכברירת מחדל. ממשקי ה-API שלTapGestureDetectorמשתמשים עכשיו בהתנהגות החדשה של שליחת אירועים (שליחה מיידית) כברירת מחדל. (I9f2bc, b/369648479) - תוקנו משני המאפיינים
requiredWidth/Height/Sizeכדי לטפל בגדלים פנימיים בצורה נכונה. (Ie3d7d, b/368113212)
External Contribution
- התבנית
BasicTooltipנפוצה ב-Foundation וBasicTooltip/Tooltipב-Material3. (Ifc2e6) - נוסף ממשק חדש ללוח ההעתקה וקומפוזיציה מקומית בשבילו. (I80809)
גרסה 1.8.0-alpha07
11 בדצמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha07 מופץ. גרסה 1.8.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- הוסר הדגל
ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledשעזר לבטל את ההסרה שלgraphicsLayerפנימי מ-BasicText. אם השתמשתם בדגל הזה, אתם מוזמנים לשלוח לנו באג ולציין את הסיבות לכך. בנוסף, אפשר פשוט להעביר אתModifier.graphicsLayer()לשיחותBasicTextכדי לקבל את אותה התנהגות כמו קודם. (Id9f90) - הוספנו הטמעה של ברירת מחדל ל-
stickyHeaderDSL חדש. (I68986) - המאפיין
LocalAutofillHighlightColorcomposition local הוא מסוג Color. (I0e05b) - השם של
OverscrollEffect#withoutDrawingשונה ל-OverscrollEffect#withoutVisualEffect. (I1a154)
תיקוני באגים
- תיקון נוסף לבעיה בחישוב היעד של
AnchoredDraggable, שבה יכול להיות שההתמקדות תהיה במיקום הלא נכון בהחלקה ספציפית. (I23b87, b/367660226)
External Contribution
- הוספת
BringIntoViewResponderModifierNodeלממשק המשתמש, שמספק דרך חדשה להטמיע את הפונקציונליות של Bring Into View, וגם מאפשר הטמעה ברמת הפלטפורמה (Ia6dd8) - אנחנו משנים מעט את האופן שבו הסמן מצויר. אפשר להשתמש ב-
LocalCursorBlinkEnabledכדי להשבית את ציור הסמן בבדיקות. (I4c697)
גרסה 1.8.0-alpha06
13 בנובמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha06 מופץ. גרסה 1.8.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- הוספת ערך מקדם
stylusHoverIcon. (Iff20a, b/331289114) - הוצאה משימוש של
AnchoredDraggableStateב-confirmValueChange. במקום להטיל וטו על שינויים במצב, עוגנים אסורים לא צריכים להיות בקבוצת העוגנים הפעילים, וצריך להשתמש ב-OverscrollEffectכדי לציין שהפעולה המבוקשת לא זמינה. (Ia717f) - שינוי של מנהל המילוי האוטומטי לממשק. (I84914, b/376080755)
- נוספו ממשקי API
OverscrollEffect#withoutDrawingו-OverscrollEffect#withoutEventHandling– ממשקי ה-API האלה יוצרים מופע עטוף של אפקט הגלילה העודפת שסופק, שלא מצייר אירועים או מטפל בהם בהתאמה. כך אפשר לעבד גלילה עודפת ברכיב נפרד מהרכיב ששולח אירועים. לדוגמה, השבתה של ציור הגלילה העודפת בתוך רשימה שנטענת בהדרגה, ואז ציור הגלילה העודפת בנפרד בחלק העליון או במקום אחר. (Idbb3d, b/266550551, b/204650733, b/255554340, b/229537244) - הוספנו תמיכה בהשלמה אוטומטית בסרגל הכלים של הטקסט. (Ie6a4c)
- הפונקציות
OverscrollConfigurationו-LocalOverscrollConfigurationהוצאו משימוש, והפונקציהrememberPlatformOverscrollFactoryנוספה כדי ליצור מופע של הטמעה של גלילה מעבר לקצה או להתאים אישית פרמטרים של הטמעה כזו. כדי להשבית את הגלילה העודפת, במקוםLocalOverscrollConfiguration provides null, משתמשים ב-LocalOverscrollFactory provides null. כדי לשנות את צבע הזוהר או את הריווח הפנימי, במקוםLocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding)משתמשים ב-LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding). (Ie71f9, b/255554340, b/234451516) - המאפיין
effectModifierב-OverscrollEffectשונה ל-node: DelegatableNode, בהתאם לממשקי API אחרים. (Ic0b46, b/255554340) - הסרנו את ה-API הניסיוני
GlobalAssertions. השימוש המיועד שלו היה הפעלת בדיקות נגישות. במקום זאת, אפשר לעיין בenableAccessibilityChecks(). (I59322)
גרסה 1.8.0-alpha05
30 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha05 מופץ. גרסה 1.8.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
- תמיכה בשינוי גודל הטקסט באופן אוטומטי. מעבירים מופע
AutoSize(לדוגמה,AutoSize.StepBased) לרכיב הטקסט המועדף (כמוBasicText) ורואים את גודל הטקסט משתנה בהתאם למקום הפנוי. (Ice7e0, b/139320827) - מוסיף את ממשקי ה-API
OverscrollFactoryו-LocalOverscrollFactoryכדי לאפשר הגדרת גלילה מעבר לקצה בתוך היררכיה. כברירת מחדל, המערכת משתמשת בערך שצוין באמצעותLocalOverscrollFactoryכדי ליצורOverscrollEffect. כדי ליצור אפקט מהמפעל הנוכחי ולשמור אותו, משתמשים בפונקציהrememberOverscrollEffect(). (I51ca4, b/255554340)
שינויים ב-API
- הוספנו את
CompositionLocalשאפשר להשתמש בו כדי לשנות את הגוון של ההדגשה במילוי האוטומטי. (I32092) - הוסר
ScrollableDefaults.overscrollEffect– במקומו צריך להשתמש ב-rememberOverscrollEffect. הפעולה הזו תיצור מופע של ההטמעה הנוכחית של גלילה מעבר לקצה, שסופקה עםLocalOverscrollFactory. (I1651a, b/255554340),(b/234451516) - הגרסה הזו כוללת ממשק חדש
AutofillManagerשאפשר להשתמש בו כדי לשפר את חוויית המשתמש של המילוי האוטומטי, וגם דגלisSemanticAutofillEnabledלהפעלה של הגרסה החדשה של המילוי האוטומטי. (I9d484) - הסרה של
CombinedClickableNode. ממשק ה-API הניסיוני הזה נחשף באופן זמני כדי לאפשר עבודה על ביצועים, אבל הוא כבר לא נחוץ. במקום זאת, צריך להשתמש ישירות ב-Modifier.combinedClickableכמו בממשקי API אחרים של שינוי. (I4b658) - מוסיף עומסים יתרים ל-
horizontalScroll,verticalScroll,LazyColumn,LazyRow,LazyHorizontalGrid,LazyVerticalGrid,LazyHorizontalStaggeredGrid,LazyVerticalStaggeredGrid,HorizontalPagerו-VerticalPagerעם תמיכה בציוןOverscrollEffectמותאם אישית. הערךOverscrollEffectשצוין יקבל אירועים ויוצג בגבולות של הרכיבים האלה. שימו לב: אי אפשר לצייר את אותוOverscrollEffectפעמיים – לכן אי אפשר לצייר את אותוOverscrollEffectשסופק לאחד מהרכיבים האלה בנפרד באמצעותModifier.overscroll. בעתיד נסביר בנפרד על תרחיש השימוש של ציור הגלילה העודפת מחוץ לגבולות של הרכיבים האלה. (I2dc42, b/266550551, b/234274772, b/224572538, b/353805117)
גרסה 1.8.0-alpha04
16 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha04 מופץ. גרסה 1.8.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- נוספו קריאות חוזרות (callback) של
DelegatableNode#onDensityChangeו-DelegatableNode#onLayoutDirectionChangeכדי לאפשר עדכון של מצב הצומת כשהוא משתנה. (I04f3e, b/340662451) - הפונקציה Paragraph ו-
ParagraphIntrinsicsמקבלת עכשיו רשימה של כל ההערות שחלות עלAnnotatedString. בעבר היא קיבלה רק רשימה שלSpanStyles. (I12f80) - הוספנו את
PointerInputModifierNode#touchBoundsExpansion, שאפשר להשתמש בו כדי להגדיל את גבולות המגע של משנה קלט של מצביע יחיד. (Iccf02, b/335339283)
תיקוני באגים
- תוקן באג שגרם לכך שערכי הסף של המיקום שהועברו אל
AnchoredDraggableDefaults.flingBehaviorלא נלקחו בחשבון בצורה נכונה בתרחישים מסוימים. (Ifdf0d, b/367660226) - הוספנו תיקון לבעיה שבה אזורים עם אפשרות גלילה שמוסרים מעץ הצמתים במהלך גלילה מהירה. עכשיו הצמתים האלה יבטלו את ההטלה וישלחו בצורה תקינה את אירוע
onPostFlingעם המהירות שנותרה. אנחנו משיקים גם את האפשרותNewNestedScrollFlingDispatchingEnabledלשליטה בהתנהגות במקרה של רגרסיות. הדגל יוסר לפני השקת הבטא. (I05c37, b/371168883) - תוקן באג שגרם לכך ש-
OverscrollEffectsשהועבר אלModifier.anchoredDraggableקיבל דלתאות דו-ממדיות במקום דלתאות חד-ממדיות. (Ie52c0)
גרסה 1.8.0-alpha03
2 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha03 מופץ. גרסה 1.8.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- עדכון גרסת Kotlin ל-1.9 (I1a14c)
- הוספנו את האפשרות
DraggableAddDownEventFixEnabled(I848d5) - הוספנו תפקיד סמנטי חדש בשם Carousel (קרוסלה) כדי לחקות את התנהגות הרשימה ברכיבי Pager בשירותי נגישות. (Id354b, b/354109776, b/239672673)
- הוסר משנה ה-modifier המרומז
graphicsLayerמהפונקציהBasicTextcomposable. נוסף הדגל הניסיוניComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabledכדי לאפשר חזרה להתנהגות הקודמת. (Ie478d) - נוספה האפשרות
Modifier.recalculateWindowInsets()כדי לאפשר לילדים בהיררכיה להשתמש ב-insetsPaddingגם כשההורים מיישרים אותם בליconsumeWindowInsets(). (I7f9e4)
תיקוני באגים
- הטמעה של תנועת הרמה ב-
detectDragGestures, ברכיבים שניתן לגרור וברכיבים שניתן לגלול. עכשיו, אם רכיב צאצא שניתן לגרירה מפסיק את המחווה, לרכיב ההורה יש הזדמנות להרים אותו. כך אפשר לטפל במחוות בצורה רציפה ומשולבת יותר. (Ic88fe) - עדכון אופן הפעולה של ביטול גלילה מהירה ברכיבים שאפשר לגלול בהם. עכשיו, אם רכיב שאפשר לגלול בו מגיע לקצה הגבול, הוא יעביר את מהירות הגלילה לרכיב הבא בשרשרת במקום להמשיך את הגלילה. (I9326a)
גרסה 1.8.0-alpha02
18 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha02 מופץ. גרסה 1.8.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
-
TextOverflow.StartEllipsisו-TextOverflow.MiddleEllipsisזמינים עכשיו, ואפשר להשתמש בהם כדי להוסיף שלוש נקודות בתחילת השורה או באמצע השורה של הטקסט בשורה אחת (I38913, b/185418980)
גרסה 1.8.0-alpha01
4 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha01 מופץ. גרסה 1.8.0-alpha01 מכילה את השמירות האלה.
גרסה 1.7
גרסה 1.7.8
12 בפברואר 2025
androidx.compose.foundation:foundation-*:1.7.8 מופץ. גרסה 1.7.8 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה ב-
BasicTextFieldעם טרנספורמציה של קלט בהחלפת חלק מהטקסט שהודבק. (I73702)
גרסה 1.7.7
29 בינואר 2025
androidx.compose.foundation:foundation-*:1.7.7 מופץ. גרסה 1.7.7 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה (
IndexOutOfBound) עם הערת קישור. (Ic96d2) - תוקנה בעיה של קומפוזיציה אינסופית במקרים מסוימים עם קישורים. (I04a03)
באגים מוכרים
- זוהה באג שעלול לגרום לטקסט לעבור לשורה חדשה באופן לא צפוי בתרחישים נדירים ב-Android API ברמה 35. אי אפשר לפתור את הבעיה בגרסה 1.7, לכן היא תיפתר בגרסה 1.8. (b/391378120)
גרסה 1.7.6
11 בדצמבר 2024
androidx.compose.foundation:foundation-*:1.7.6 מופץ. גרסה 1.7.6 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה תוכן מוטבע של טקסט קבוע לא היה גלוי לשירותי הנגישות.
- תוקנה בעיה שבה
AndroidEmbeddedExternalSurfaceלא התאפס כראוי ונשאר תקוע כשנעשה בו שימוש חוזר ברשימה עצלה.
גרסה 1.7.5
30 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.7.5 מופץ. גרסה 1.7.5 מכילה את השמירות האלה.
תיקוני באגים
- מוודאים שפריטים מוצמדים לא מורכבים פעמיים באזור הריפוד של התוכן. (Ic6224)
גרסה 1.7.4
16 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.7.4 מופץ. גרסה 1.7.4 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שגרם לקריסה נדירה בשדות טקסט. (I475c6, b/313010266)
- הוסר
ReusableContentHostבבסיס של פריטים בפריסה של Lazy. זו הייתה סיבה אפשרית לקריסות מסוג 'הפעלת מדידה בצומת מושבת'. (Id6e60)
גרסה 1.7.3
2 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.7.3 מופץ. גרסה 1.7.3 מכילה את השמירות האלה.
תיקוני באגים
- תוקן דליפת זיכרון ב-
BasicTextכש-minLines מוגדר לערך שאינו ברירת המחדל.
גרסה 1.7.2
18 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.7.2 מופץ. גרסה 1.7.2 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שקשורה לרכיב שאפשר לגרור, שחסרו בו אירועים של לחיצה ממושכת, ולכן נראה שההטלה איטית מהרגיל.
גרסה 1.7.1
10 בספטמבר 2024
- לא בוצעו שינויים בפריטי מידע של Android.
-desktopארטיפקטים הוסרו ו-jvmStubsו-linuxx64Stubsארטיפקטים נוספו. אף אחד מהיעדים האלה לא מיועד לשימוש, הם משמשים כ-placeholder כדי לעזור למאמצי Jetbrains Compose.
גרסה 1.7.0
4 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.7.0 מופץ. גרסה 1.7.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.6.0
- הביצועים של
Modifier.clickable, Modifier.focusable, Modifier.indication, Modifier.scrollableו-Modifier.draggableהשתפרו באופן משמעותי. במסגרת המאמץ הזה, בוצעו שינויים פנימיים וגם שינויים ב-API הבאים:- הוספנו API חדש של אינדיקציות,
IndicationNodeFactory. כך אפשר להטמיע אינדיקציות עם ביצועים טובים יותר בהשוואה ל-API הקודם (שכבר הוצא משימוש) rememberUpdatedInstance. מידע על העברה זמין בכתובת developer.android.com. - הפונקציות
clickable/combinedClickable/selectable/toggleableמקבלות עכשיו פרמטרMutableInteractionSourceשאפשר להגדיר לו ערך null. אם הערך הוא null, והאינדיקציה שסופקה היאIndicationNodeFactory, אפשר ליצור את האינדיקציה רק כשצריך, מה שמשפר את הביצועים. אם אתם לא משתמשים ב-MutableInteractionSource, מומלץ להעביר null במקום להעבירremember { MutableInteractionSource() }. - המאפיין
Indication#rememberUpdatedInstanceהוצא משימוש. הוא גורם לירידה משמעותית בביצועים שאי אפשר להימנע ממנה, ומונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactoryAPI החדש.
- הוספנו API חדש של אינדיקציות,
BasicTextFieldהשימוש ב-TextFieldStateיציב עכשיו, ואנחנו ממליצים לכל האתרים שמתקשרים עם Google Ads להתחיל להעביר את הקוד מ-BasicTextField(value, onValueChange)ל-BasicTextField(TextFieldState).- המאפיין
ClickableTextהוצא משימוש. כדי להוסיף לטקסט קישורים שאפשר ללחוץ עליהם, משתמשים ב-BasicTextעם ההערה החדשהLinkAnnotationב-AnnotatedString. LinkAnnotationמאפשרת עיצוב בהתאמה אישית על סמך מצב הקישור (למשל, מודגש, בהשהיה). - חדש:
ContextualFlowRowו-Enhanced FlowRow/ColumnעםMaxLinesו-Overflow. אנחנו שמחים להודיע על שיפורים בתכונות הניסיוניותFlowRowו-FlowColumn, שכוללות עכשיו אתmaxLinesותמיכה בהצגת תוכן שגולש מעבר לגבולות, לצד השקת התכונותContextualFlowRowו-ContextualFlowColumn. המטרה של העדכון הזה היא לספק רכיבים עם ביצועים אופטימליים. הרכיבContextualFlow*מתאים למספר גדול של פריטים שמשתמשים בהגדרה קטנה של maxLines ובלחצנים דינמיים של 'עוד' (+N). הרכיביםFlowRowו-FlowColumnמתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRowאו ב-FlowColumn, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם למקסימום של הציר הניצב, צריך להגדיר את הגלישה ל-FlowRowOverflow.Visibleאו ל-FlowColumnOverflow.Visibleבמהלך האתחול. כדאי לעיין בContextualFlowRowSampleובFlowRowSampleכדי לראות דוגמאות לשימוש בתכונות החדשות האלה. (Ib9135, b/293577082) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyColumnוב-LazyRow. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי התצוגה הזה והשקנו שינוי תצוגה חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I2d7f7, b/150812265) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות Android API רשמי (
ScrollCaptureCallback). - מקורות
NestedScrollDrag and Fling מוחלפים במקורותUserInputו-SideEffectכדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגל עכבר ומקלדת (UserInput). LazyLayoutעכשיו אפשר לסמן בקשות לאחזור מראש כדחופות, כלומר אנחנו מצפים שהפריט הזה יידרש בפריים הבא ורוצים להתעלם מהתקציב של הפריים כדי לוודא שנעשה יותר עבודה מראש (Id513f)- תמיכה בתכונת הכתיבה הידנית בסטיילוס במכשירים עם Android U ואילך. (I002e4)
- ממשקי API שונים עברו לסטטוס יציב
- החלפת חלונות, הצמדה, שוליים פנימיים של חלונות
גרסה 1.7.0-rc01
21 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01 מופץ. גרסה 1.7.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה רגרסיה שגרמה לקריסה כשפריט כלשהו נמצא במיקוד בתוך רכיב אב שאפשר להעביר אליו את המיקוד (או ללחוץ עליו) והוא מושבת. (b/317561689)
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07 מופץ. גרסה 1.7.0-beta07 מכילה את השמירות האלה.
תיקוני באגים
- הפונקציות
SemanticsNodeInteraction,performTextReplacement,performTextInputו-performTextClearanceשקשורות לקלט טקסט יחזירו עכשיו שגיאות של טענות (assertion) כשהן יופעלו עלTextFieldsלקריאה בלבד. (I4ae8f) - תוקנה בעיה ויזואלית בהיפר-קישורים. (I23311)
- תוקן באג שבו מקש הצירוף
contentReceiverלא פועל עם חלק משיטות הקלט. - יצירת מהירות: מניעת הפצה של ערכי NaN בממשק המשתמש של Compose וב-Foundation.
גרסה 1.7.0-beta06
24 ביולי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06 מופץ. גרסה 1.7.0-beta06 מכילה את השמירות האלה.
גרסה 1.7.0-beta05
10 ביולי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05 מופץ. גרסה 1.7.0-beta05 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שקשורה לטיפול בערכי Nan ב-
SnapFlingBehaviorוב-Pager.
גרסה 1.7.0-beta04
26 ביוני 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04 מופץ. גרסה 1.7.0-beta04 מכילה את השמירות האלה.
תיקוני באגים
- תיקון באג שגורם לקריסה כשמודדים שורות טקסט גדולות מאוד (למשל, 10,000 תווים) (8157ab)
- תוקנה בעיה במדידה של טקסט גדול מאוד שגרמה לקריסה בגרסה החדשה של
BasicTextField(6b7575) - החזרת שינוי בהתנהגות במדידת שורות ועמודות שגורם לשיבוש בשימוש בטקסט בתרחישים מסוימים (69e8ba)
גרסה 1.7.0-beta03
12 ביוני 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03 מופץ. גרסה 1.7.0-beta03 מכילה את השמירות האלה.
גרסה 1.7.0-beta02
29 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02 מופץ. גרסה 1.7.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף API ניסיוני להגדרת התנהגות של אחזור מראש של
LazyGridsבדומה ל-API הניסיוני הקיים שלLazyLists. זה כולל תמיכה באחזור מראש של פריטים ב-LazyGridsמוטמע. בדומה ל-LazyListPrefetchStrategy, הגדרת ברירת המחדל של ההטמעה היא אחזור מראש של 2 הפריטים הראשונים שמוטמעים בכל רשת, אבל אפשר להגדיר את זה באמצעות ממשקי ה-API החדשיםLazyGridPrefetchStrategy(nestedPrefetchItemCount)ו-LazyListPrefetchStrategy#onNestedPrefetch. (I591c4) - השם של
SemanticsProperties.Editableהשתנה ל-IsEditableוהערך שלSemanticsPropertyReceiver.editableהשתנה ל-isEditable. המאפיין הוא עכשיו בוליאני ותמיד מצוין על ידי שדות טקסט. (I8acd8) - הועברו
basicMarqueeערכי ברירת מחדל לאובייקטMarqueeDefaults. (I12ff6) - השם של הפרמטר
basicMarqueedelayMillisהשתנה ל-repeatDelayMillis. (I12ff6) - עדכון API לעיצוב הקישורים: הועבר
TextLinkStylesאלTextStyleוהוסרTextDefaultsמ-material (I5477b)
תיקוני באגים
- שם השדה
LayoutCoordinates.introducesFrameOfReferenceשונה ל-LayoutCoordinates.introducesMotionFrameOfReferenceכדי לשקף טוב יותר את המטרה שלו. שם הפונקציה שקשורה לחישוב הקואורדינטות שונה בהתאם לדגל הזה. (I3a330) - הוסר הערך 'ברירת מחדל' מהמאפיינים של
MarqueeDefaults. (I1d8a0) - הוסר הנכס 'מודעות מרקי' מ
MarqueeDefaults. (Iad4f4) - הוסר מהכיתה
TextStyle:TextLinkStyles. במקום זאת,TextLinkStylesהוא חלק מהבונהLinkAnntationומהשיטהAnnotatedString.fromHtml(I90b2b) - תוקן באג שגרם לכך שרכיב ה-Pager נתקע כשמבצעים תנועת החלקה לכיוון גבול, כשהוא כבר נמצא בגבול. (I9f373, b/339171222)
- ב-BTF2 יש עכשיו תנועות נכונות של העכבר לבחירה. (Ibe8c6)
External Contribution
- שליחה מחדש של 'Make compose/measure time calculation content-type based in prefetch to improve accuracy' (Iea622)
- שיפור הדיוק על ידי חישוב זמן הכתיבה/המדידה על סמך סוג התוכן בטעינה מראש (Ibccb1)
- הגדרת מגבילים של
WindowInsetsPaddingכזמינים מתוך קבוצת מקורות משותפת (I070b2)
גרסה 1.7.0-beta01
14 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01 מופץ. גרסה 1.7.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- המאפיין
KeyboardOptions.shouldShowKeyboardOnFocusנוסף מחדש כמאפיין מוסתר שיצא משימוש, לצורך תאימות בינארית. (I15cfe) -
Modifier.anchoredDraggableעכשיו מתבצעת היפוך של דלתאות הגרירה כברירת מחדל לרכיבים עם כיוון אופקי כשמשתמשים בהם בפריסה מימין לשמאל. (I3c6d9) - השם של
AnnotatedString.hasEqualsAnnotationsהוא עכשיוhasEqualAnnotations. (I685c0) - ה-API לעדכון קישורים עם עיצוב Material בטקסט עודכן. הסרנו את השיטות מה-
TextDefaultsליצירתLinkAnnotationsעם נושאים ולניתוח HTML עם קישורים שמותאמים לנושאים. במקום זאת, הוספנו מחלקהTextLinkStylesשמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93) - הוחלפו
onDragStartedו-onDragStoppedבקריאות חוזרות שלא גורמות להשהיה. (I59de8)
תיקוני באגים
- תוקן באג שגרם לקריסה של Pager כשהערך של
contentPaddingהיה גדול מהמגבלות הנכנסות. הערכים השליליים שמוחזרים מהפונקציהPageSizeמאולצים עכשיו להיות 0. (Iba5d8, b/314008560)
גרסה 1.7.0-alpha08
1 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08 מופץ. גרסה 1.7.0-alpha08 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו תפריט הקשר של לחיצה ימנית ל-
BasicTextFieldול-SelectionContainerעם פריטים לפעולות גזירה, העתקה, הדבקה ובחירת הכול. (If8c93, Ia2b49, I6f268)
שינויים ב-API
LazyLayoutעכשיו אפשר לסמן בקשות לאחזור מראש כדחופות, כלומר אנחנו מצפים שהפריט הזה יידרש בפריים הבא ורוצים להתעלם מהתקציב של הפריים כדי לוודא שנעשה יותר עבודה מראש (Id513f)- השם של
isPositionedByParentWithDirectManipulationשונה ל-introducesFrameOfReference. שימו לב שההשפעה שלה הפוכה עכשיו, כלומר, כברירת מחדל, רובLayoutCoordinatesמציגים מסגרת הפניה, ורק כשממקמים אותם תחת מניפולציה ישירה, המאפיין יהיה false. כדי לשלוח שאילתה לגבי מיקום רק עם אלה שמציגים מסגרת התייחסות, משתמשים ב-positionInLocalFrameOfReference(...). אוpositionInLocalLookaheadFrameOfReferenceמ-LookaheadScope. (Ifc5f7) - השם של
onClickedשונה ל-onClickבתוךLinkInteractionListener(Iaa35c) - שינוי של lambda של פעולה עבור
getScrollViewportLengthבהתאם למשוב של מועצת ה-API. (Ibc74a) - שונה השם של ממשקי ה-API להענקת גישה לכתיבה ידנית בסטיילוס. (Ica45f, b/327271923)
- שינוי השם של
TextInclusionStrategy.isInsideלisIncluded. הגדרת סוג ההחזרה שלParagraph/MultiParagraph#getRangeForRect()כלא ניתן לאיפוס. (I51f26)
תיקוני באגים
- הוספנו את האפשרות 'בחירת הכול' לכל התפריטים ההקשריים של הטקסט ב-
SelectionContainer. (Ib750e, b/240143283) - תוקנה בעיה בצילום מסך ארוך של מאגרי תגים נגללים עם
reverseScrolling=true. (I7c59c) - תוקנה בעיה שבה הערך של
AnchoredDraggableState[currentValue] השתנה כשמתקרבים לגבולות של המצב. (Iea30b, b/333846848)
External Contribution
- שם התכונה
PrefetchExecutor->PrefetchSchedulerשונה כדי לשקף טוב יותר את האחריות שלה. (Ib9154) - הוספנו תמיכה באחזור מראש של פריטים ב-
LazyListsמקוננים (למשלLazyColumnשמציגLazyRowsמקונן). השינוי הזה צפוי להפחית את מספר הפריימים שנושרים במהלך גלילה ב-LazyListsהאלה. ההטמעה מתבצעת כברירת מחדל על ידי אחזור מראש של 2 הפריטים הראשונים ברמה השנייה, אבל אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשיםLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)ו-LazyListPrefetchStrategy#onNestedPrefetch. (I51952)
גרסה 1.7.0-alpha07
17 באפריל 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07 מופץ. גרסה 1.7.0-alpha07 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו אובייקט
TextDefaultsשמכיל שיטות ליצירתLinkAnnotationולניתוח מחרוזת עם תגי HTML שמחיליםMaterialThemeעל הקישורים. (I98532, b/139312671) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyVerticalGridוב-LazyHorizontalGrid. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי התצוגה הזה והשקנו שינוי תצוגה חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (Ib7d12, b/330510929) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyVerticalStaggeredGridוב-LazyHorizontalStaggeredGrid. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי התצוגה הזה והשקנו שינוי תצוגה חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I69bc9, b/330511290)
שינויים ב-API
- כולל את
ContextMenuColorsואתLocalContextMenuThemeProvidableCompositionLocalשמשויך אליו. אפשר לשנות את הצבעים של תפריט ההקשר בתיבות טקסט ובטקסט שאפשר לבחור בו על ידי ציון המיקום של הקומפוזיציה. (Ifa154) - נוספה אפשרות לעיצוב מצב לחיצה לקישורי טקסט, בנוסף לעיצוב רגיל, לעיצוב במצב ריחוף ולעיצוב במצב מיקוד. (I5f864, b/139312671)
- הוספנו את
ViewConfiguration.HandwritingGestureLineMarginלתנועות של כתב יד. תמיכה בתנועת כתב יד עבורBasicTextField. (Ie6e13, b/325660505) - הסרנו את
DelegatableNode.scrollIntoViewבגרסה 1.7 כי לא היה לנו זמן לסיים את הייצוב של שאר משטח ה-API שקשור אליו. הפונקציה הזו תתווסף מחדש בגרסה 1.8 (I6cf61, b/333421581, b/332900232) - כשמבצעים שאילתה לגבי קואורדינטות של פריסה, אפשר להשתמש עכשיו בארגומנט
excludeDirectManipulationOffsetכדי להחריג את ההיסט שמוגדר על ידי פריסות אב שמיקמו את רכיבי הצאצא שלהן באמצעותPlaceable.PlacementScope.withDirectManipulationPlacement. באופן דומה, רכיב Layout שמשנה את המיקום של רכיבי הצאצא שלו לעיתים קרובות עשוי למקם אותם עכשיו באמצעותwithDirectManipulationPlacement(כמו Scroll, שמוטמע כברירת מחדל). השינוי הזה עוזר ליצור אנימציות אינטואיטיביות יותר ב-approachLayout, כי עכשיו אפשר להבחין בין האנימציה של ההזזה לבין האנימציה של הגישה. (I60ec7) - הצגת
requestScrollToItemעבורLazyStaggeredGrid. לכל מעבר מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח על ידי קריאה ל-requestScrollToItem. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה אלrequestScrollToItem. (I63983) - הצגת
requestScrollToPageבתצוגת הדפים. לכל מעבר מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח על ידי קריאה ל-requestScrollToPage. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה אלrequestScrollToPage. (Ic4213) - השקנו את
requestScrollToItemל-LazyGrids. לכל מעבר מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח על ידי קריאה ל-requestScrollToItem. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה אלrequestScrollToItem. (I0a7a0) - האפשרות
ClickableTextהוצאה משימוש. כדי להוסיף קישורים לטקסט, יוצריםAnnotatedStringעםLinkAnnotationשמתאים לקישור ומעבירים אתAnnotatedStringהזה ל-Textcomposable (I34d4b, b/323346994) - האפשרות
UrlAnnotationהוצאה משימוש. במקומה צריך להשתמש ב-LinkAnnotation.Url. אם אתם משתמשים בערכת נושא של Material, צריך להשתמש באובייקטTextDefaultsכדי ליצור את ההערה עם ערכת הנושא של Material (I8d180, b/323346545) - השם של
String.parseAsHtmlשונה ל-AnnotatedString.Companion.fromHtml(I43dcd) - נוספו ארגומנטים של סגנון (
linkStyle, focusedLinkStyle, hoveredLinkStyle) ומאזין לאינטראקציה עם קישור לשיטהparseAsHtml. כשמנתחים את המחרוזת עם תגי ה-HTML באמצעות תגי<a>, השיטה יוצרתLinkAnnotation.Urlלכל תג כזה ומעבירה את אובייקטי הסגנון ואת מאזין האינטראקציות עם הקישור לכל הערה. (I7c977) -
LinkAnnotationמקבל עכשיו את הארגומנטים של העיצוב מבוסס-המצב ואתLinkInteractionListener. כדי להוסיף היפר-קישור, מוסיפים את ההערה הזו ל-AnnotatedString. אפשר להגדיר את ההגדרה החזותית של קישורים כשהם במצב מודגש או כשהסמן מוצב מעליהם באמצעות העברת הערכיםfocusedStateאוhoveredState. (I81ce4, b/139312671) - הסרנו את דגל התכונה לצילומי מסך ארוכים. (I28648, b/329128246)
-
LazyColumnיציג עכשיו כותרות קבועות בצורה נכונה בצילומי מסך ארוכים. (I8d239, b/329296635) - ייצבנו את רוב ממשקי ה-API הניסיוניים שנותרו, שהוצגו עם
BasicTextFieldהחדש. (I714e2) - נוסף הפרמטר
textObfuscationCharacterל-BasicSecureTextFieldשקובע באיזה תו להשתמש בזמן הסתרת התוכן. (I0588b) - מקורות
NestedScrollDrag and Fling מוחלפים במקורותUserInputו-SideEffectכדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגל העכבר והמקלדת (UserInput). (I40579) - הוספנו את
LocalBringIntoViewSpec, התנהגות גלילה שמתמקדת ברכיבים ותלויה בפלטפורמה, שמוחלת בשכבת ה-modifier של Scrollable. (I27aa5, b/317453911) - בוצעה הסרה של
TextFieldCharSequence. TextFieldBuffer.originalValuesמוחלף ב-TextFieldBuffer.originalTextוב-TextFieldBuffer.originalSelection. (I2c7d6) - השדה
ImeOptions.hintLocalesכבר לא יכול להכיל ערך null. אם רוצים להעביר רשימה ריקה של לוקאלים, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4) - השם של
getOffsetFractionForPageשונה ל-getOffsetDistanceInPages. (Ia05e2)
תיקוני באגים
- כשמצטרפים ל-
nextעםInputTransformations, המיזוג שלKeyboardOptionsמתבצע עכשיו בצורה תקינה לפי אפשרויות נפרדות, באמצעות השיטה החדשהKeyboardOptions.merge. (Ie5304, b/295951492) -
AnchoredDraggableStatetargetValueכבר לא מתייחס יותר לספי מיקום. עכשיו יש לו סף משתמע של 50%, כלומרtargetValueמשתנה בנקודת האמצע בין שתי נקודות עיגון. (I82c2c)
External Contribution
- שינינו את השם של 2 ממשקי API לגלילה (I56a75)
גרסה 1.7.0-alpha06
3 באפריל 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06 מופץ. גרסה 1.7.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyColumnוב-LazyRow. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי התצוגה הזה והשקנו שינוי תצוגה חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I2d7f7, b/150812265) - לקוחות של
LazyColumn/LazyRowיכולים עכשיו לבטל את ההסכמה לשמירת אינדקס על סמך המפתח למעבר הקרוב למדידה, על ידי קריאה ל-LazyListState.requestToScrollשלא מושהה. (I98036, b/209652366) - הוספנו את ה-method
parseAsHtmlלמחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString. שימו לב: לא כל התגים נתמכים. לדוגמה, עדיין אי אפשר להציג רשימות עם תבליטים. (I84d3d) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות ה-API הרשמי של Android (
ScrollCaptureCallback). התכונה הזו ניסיונית ויכול להיות שהיא לא תטפל כרגע בכל המקרים בצורה נכונה. לכן, בשלב הזה הוא מושבת כברירת מחדל. כדי להצטרף, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabledלערך true. הדגל הזה יוסר לפני גרסת בטא 1.7. (I2b055, b/329296471) - הוספנו
GraphicsLayerAPI חדש כדי לספק גמישות רבה יותר במיקום ובעיבוד של מופעיGraphicsLayer, ולתמוך בתכונות עיבוד פנימיות בלי צורך בתיאום עם הטמעות של Composable כדי לציין מופעי משנה שלGraphicsLayer.
שינויים ב-API
- לכל הפרמטרים
KeyboardOptionsיש עכשיו ערך לא מוגדר כברירת מחדל. נוספה השיטהKeyboardOptions.merge. - שם המאפיין
KeyboardOptions.autoCorrectשונה ל-autoCorrectEnabled, והוא הוגדר כמאפיין שאפשר להשאיר ריק (nullable). ערך ריק מציין שלא צוין ערך. (Ia8ba0, b/295951492) - השם של
outOfBoundsPageCountשונה ל-beyondViewportPageCount. (I129c6) - הערך של
fun ClipEntry.getMetadata()השתנה ל-val ClipEntry.clipMetadata. (I50155) - בוצעה הסרה של
TextFieldState.valueAsFlow(). עדיף להשתמש ב-snapshotFlow { state.text }או ב-snapshotFlow { TextFieldCharSequence(state.text, state.selection) }(I7d629) - ארגון מחדש של פרמטרים של
InputTransformation.transformInput. הוסרoriginalValue: TextFieldCharSequence. במקום זאת,TextFieldBufferמעביר עכשיו את הערך הזה עם אותו שם. הוסר גם הפרמטרvalueWithChanges: TextFieldBuffer. ההיקף של המקבל בפונקציה הוא עכשיוTextFieldBuffer. (I919cc) -
BasicTextField(state)variant ו-BasicSecureTextFieldמשתמשים עכשיו ב-KeyboardActionHandlerבמקום ב-KeyboardActionsכדי לעבד פעולות שמתבצעות במקלדת התוכנה. (I58dda) - ממשקי API של העברת כתיבה ידנית בסטיילוס כדי לתמוך בכתיבה ידנית בסטיילוס בשדות קלט טקסט 'מזויפים'. (I9c09c, b/327271923)
- השם של
KeyboardOptions.shouldShowKeyboardOnFocusשונה ל-showKeyboardOnFocus. (Ib4b7a, b/295951492) - הפרמטר
hintMediaTypesהוסר מ-Modifier.contentReceiver. כבר עודדנו מפתחים לבדוק את סוג המדיה שלTransferableContentשהתקבל, כי יכול להיות שהוא לא תואם ל-hintMediaTypesשהוגדר. (I82f99) - שינינו את הסדר של הפרמטרים של
BasicSecureTextField. הסרנו את הפרמטריםkeyboardTypeו-imeActionלטובת המחלקה המלאהKeyboardOptions, תוך שמירה על אותם ערכי ברירת מחדל שמתאימים ל-BasicSecureTextField. הוסר גם הפרמטרscrollState. (Ibbfa9) - הסוג של
TextFieldState.textהשתנה מ-TextFieldCharSequenceל-CharSequence. לכן, הוספנו אתTextFieldState.selection: TextRangeו-TextFieldState.composition: TextRange?כדי לקרוא את הערכים של הבחירה והקומפוזיציה הנוכחיות ישירות מאובייקט המצב. - בוצעה הסרה של
TextFieldState.forEachTextValue. (Idb2a2) - הפונקציות
ClipboardManager.getClipMetadataו-ClipboardManager.hasClipהוסרו. אפשר להשתמש ב-clipEntry.getMetadata()כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. כדאי גם לבדוק את התוצאה שלClipboardManager.getClipאם היא null או לא, כדי להבין אם יש בלוח העתקה קליפ נוכחי. (I50498) -
ClipboardManager.setClipמקבל עכשיו ערך null כדי לאפשר ניקוי של הלוח. (I7d2e9) -
ReceiveContentListenerמומר לממשק פונקציות. בנוסף, עומס יתר שלModifier.receiveContentשמקבל למדה הוסר כיReceiveContentListenerהוא עכשיו ממשק פונקציה. - השם של
Modifier.receiveContentהשתנה לModifier.contentReceiver. (I1e6af) - השם של
TransferableContent.consumeEachשונה ל-TransferableContent.consume. (I1e462) -
rememberTextFieldStateAPI עבר לשלב של API יציב. (I37999)
תיקוני באגים
- תוקן באג שבו וריאציית
BasicTextField(state)לא פעלה עם מקלדות CJK(מבוססות קומפוזיציה). (I54425) - תוקן באג שבו
Modifier.dragAndDropTarget()יכול היה להתייחס לנתונים ישנים בתרחישים מסוימים עם שימוש חוזר ב-Modifier.Node. (I05bb1) - בוטל שינוי שבוצע לאחרונה בחוזה, שבו שיחות
AnchoredDraggableState#anchoredDragהיו נקטעות בסוף פעולתanchoredDrag. (I95715)
גרסה 1.7.0-alpha05
20 במרץ 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05 מופץ. גרסה 1.7.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוסר הקומפוזיציה המקומית
LocalTextLinkStyleהניסיונית לעיצוב היפר-קישורים. (Iebfa7) - הוסר שינוי ניסיוני של
BasicTextעם הארגומנטonLinkClicked. בעתיד נשיק API חלופי לתמיכה בהיפר-קישורים. (I107d5) - הוסרו methods ומאפיינים שקשורים לנקודות קוד (Codepoints) בקטע
TextFieldStateובקטעTextFieldBuffer. הסרנו גם את הסיומותinCharsמממשקי ה-API שנותרו שקשורים לבחירה ולחיבור. (Ief7ce) - הערך של
AnchoredDraggablecurrentValueיתעדכן עכשיו כשעוברים דרך נקודת עיגון. משתמשים ב-settledValueכדי לקבל את הסמנטיקה הקודמת שלcurrentValue, ומתבצע עדכון רק כשמגיעים לנקודת עיגון. ההתקדמות מוצגת עכשיו כפונקציה (שדורשת נקודת התחלה ונקודת סיום) במקום כמאפיין. (Ibe6e8, b/318707189, b/298271489, b/294991954) -
BasicTextField(state), TextFieldState, InputTransformation, OutputTransformation, TextFieldLineLimits, TextFieldDecoratorעברו לשלב היציב. (I9582b) - הוספנו את
InterceptPlatformTextInputכדי לעזור לכתוב בדיקות ברמה נמוכה שקשורות ל-IME, ותרחישי שימוש אחרים ברמה נמוכה שקשורים ל-IME. המאפייןPlatformTextInputTestOverrideהוצא משימוש. (I862ed, b/322680547) - פיצול
restrictedConstraints()לשתי שיטות:fitPrioritizingWidth()ו-fitPrioritizingHeight()(I6d7fd)
External Contribution
- נוספו 2 ממשקי API חדשים
isLastScrollForward/isLastScrollBackwardכדי לבדוק את כיוון הגלילה של פעולת הגלילה האחרונה, ולהחזיר false אם עדיין לא בוצעה פעולת גלילה. (I63a0e)
גרסה 1.7.0-alpha04
6 במרץ 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04 מופץ. גרסה 1.7.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- תמיכה בתכונת הכתיבה הידנית בסטיילוס במכשירים עם Android U ואילך. (I002e4)
- נוסף
hintLocalesל-KeyboardOptionsכדי לספק ל-TextFieldsאת היכולת להציע IME עם לוקאלים ספציפיים כדי להגדיר מראש שפה מועדפת. (Id18c2) - הוסרו העומסים העודפים של
BasicTextField2ו-BasicSecureTextFieldשהיו בניסוי, שקיבלו פרמטרים שלvalue: Stringו-onValueChange: () -> String. (I568b4) - מוסיפים פונקציה אופציונלית
applySemanticsל-InputTransformationכדי להשפיע על הסמנטיקה שלBasicTextField2שאליה היא מוחלת. (I74a2f, b/170648072) - ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית
GetScrollViewportLengthכדי שנוכל להעביר מידע על הרכיבים שמוצגים בגלילה ב-Compose למערכת הנגישות. ב-CL הזה מיושם גם השימוש במאפיין הזה ברשימות Foundation Scrollable. (Ic5fa2) - השם של
BasicTextField2השתנה לBasicTextField. (Ie5713) -
FocusRequester.createRefsיציב עכשיו (I4d92c, b/261436820) - הוספנו את
DelegatableNode.scrollIntoView()כדי לאפשר לצמתי שינוי לשלוח בקשותscrollIntoViewישירות. (I2b3b7, b/299939840) - הוספנו את
DelegatableNode.requireView()כדי לאפשר לצמתי שינוי לקבל אתViewהנוכחי של Android בלי לקרוא את המיקום המקומי של הקומפוזיציה. (I40768) - הוספנו מידע על פריסה לפי הקשר ב-Contextual Flow Row Scope וב-Contextual Flow Column Scope, כולל אינדקס שורות, מיקום ומגבלות על הרוחב והגובה המקסימליים כדי שהרכיב יישאר במיקום שצוין. פריטים שחורגים מהרוחב או מהגובה המקסימליים עשויים לעבור לשורה הבאה או להיות מושמטים, בהתאם להגדרות הגלישה. (Id13f8, b/292114798)
תיקוני באגים
- תוקן באג שבו החלפה של מאפייני
enabledאוreadOnlyשלTextFieldבתנאים מסוימים גרמה לקריסה. (Iae17b)
גרסה 1.7.0-alpha03
21 בפברואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03 מופץ. גרסה 1.7.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
DelegatableNode.requireLayoutCoordinates()כדרך לקבל אתModifier.Nodeהנוכחי שלLayoutCoordinatesבלי שתצטרכו לבטל אתonPlacedולאחסן את הקואורדינטות במאפיין בעצמכם. (Ia8657) - הוספנו את
DelegatableNode.currentLayoutCoordinatesכדרך לקבל אתModifier.Nodeהנוכחי שלLayoutCoordinatesבלי שתצטרכו לבטל אתonPlacedולאחסן את הקואורדינטות במאפיין בעצמכם. (Iaebaa) - אופטימיזציות של הביצועים ב-
DraggableAnchorsשנעשה בהן שימוש על ידיAnchoredDraggable. (I89cff) -
BasicTextField2וממשקי API קשורים בחבילהandroidx.compose.foundation.text2מועברים אלandroidx.compose.foundation.text. (I9f635) - הפרמטר
BasicTextField2לא מקבל יותר את הפרמטרCodepointTransformation. אפשר להשתמש ב-BasicSecureTextFieldאו ב-OutputTransformation. (Id34ff) - הוספנו שיטה להשוואה רק של ההערות של שני
AnnotatedStrings. (I32659) - חדש:
ContextualFlowRowושיפורים ב-FlowRow/ColumnעםMaxLinesו-Overflow. אנחנו שמחים להודיע על שיפורים בתכונות הניסיוניותFlowRowו-FlowColumn, שכוללות עכשיו אתmaxLinesותמיכה בהצגת תוכן שגולש מעבר לגבולות, לצד השקת התכונותContextualFlowRowו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים עם ביצועים אופטימליים. הרכיבContextualFlow*מתאים למספר גדול של פריטים שמשתמשים בהגדרה קטנה שלmaxLinesובלחצנים דינמיים של 'עוד' +N. הרכיביםFlowRowו-FlowColumnמתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRowאו ב-FlowColumn, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם לערך המקסימלי של הציר הניצב, צריך להגדיר אתoverflowל-FlowRowOverflow.Visibleאו ל-FlowColumnOverflow.Visibleבמהלך האתחול. כדאי לעיין בContextualFlowRowSampleובFlowRowSampleכדי לראות דוגמאות לשימוש בתכונות החדשות האלה. (Ib9135, b/293577082)
תיקוני באגים
- אנימציית הסמן לא מבקשת יותר פריימים בין מצבי ההפעלה וההשבתה. (Ia2253)
KeyboardOptions' deprecated copy constructors will now correctly copy all properties. (If12de)
גרסה 1.7.0-alpha02
7 בפברואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02 מופץ. גרסה 1.7.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הגרסאות
HorizontalPager,VerticalPagerוגםPagerStateהועברו לגרסה יציבה. (I67660, b/316966909) - נוסף
LocalTextLinkStylecomposition local שמאפשר לשנות את הסגנון של הקישורים בטקסט באפליקציה. אם אתם משתמשים בערכת נושא משלכם באפליקציה, אתם צריכים להגדיר את ה-composition local הזה בהתאם לערכת הנושא שלכם. כשמשתמשים בעיצוב Material, צבע הקישור מוגדר כברירת מחדל לצבע הראשי של Material. (I7eb10) - הוספנו את ה-modifier
receiveContentשמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose. -
receiveContentמשתלב עםBasicTextField2כדי לקבל תוכן עשיר שמסופק על ידי המקלדת הווירטואלית, או באמצעות פעולת הדבקה מהלוח. (I81b72) - במסגרת השינוי הזה, אנחנו מחליפים את
SnapFlingBehaviorב-TargetedFlingBehaviorבכלי להצגת תוצאות בדפים, כדי לאפשר תרחישי שימוש נוספים ולספק גמישות רבה יותר. (I762ea) - בשינוי הזה אנחנו הופכים את ממשקי ה-API של Snapping ליציבים. בנוסף, אנחנו מנקים חלק מקוד הבדיקה ומוסיפים עוד דוגמאות לסידור חלונות. (Id8da9)
- הכירו את
TargetedFlingBehavior,FlingBehaviorשמאפשר להפיץ מידע על מצב האנימציה הפעילה ועל היעד שלה למיקום הגלילה. (I6a207)
תיקוני באגים
- מעכשיו,
BasicTextField2שומר את הסמן בתצוגה בזמן ההקלדה, אם הוא יצא מהתצוגה בגלל גלילה או בגלל קלט. (Ieb856, b/237190748)
External Contribution
- נוסף API ניסיוני להגדרת התנהגות טעינה מראש של LazyLists. (I022a4)
גרסה 1.7.0-alpha01
24 בינואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01 מופץ. גרסה 1.7.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- נוסף
Indication APIחדש,IndicationNodeFactory. התוצאה היא הטמעות יעילות יותר שלIndicationבהשוואה ל-API הקודם (שכבר הוצא משימוש) שלrememberUpdatedInstance. מידע על העברה זמין בכתובת developer.android.com. - הפונקציה
clickable / combinedClickable / selectable / toggleableמקבלת עכשיו פרמטרMutableInteractionSourceשאפשר להגדיר לו ערך null. אם הערך הוא null, והערך שסופקIndicationהואIndicationNodeFactory, אפשר ליצור אתIndicationרק כשצריך, מה שמשפר את הביצועים. אם לא משתמשים ב-MutableInteractionSource, מומלץ להעביר null.
שינויים ב-API
- הוספנו את
DecayAnimationב-AnchoredDraggable. השינוי הזה מוסיף פרמטרdecayAnimationSpecל-AnchoredDraggable, שמאפשר להשתמש באנימציית דעיכה כשמגיעים לאחד מנקודות העיגון. במסגרת השינוי, השם שלanimationSpecהקיים שונה ל-snapAnimationSpecכדי לעזור להבין את תרחיש השימוש של כל מפרט. - התכונה
BasicTextField2זמינה לשימוש ניסיוני. היא צריכה להיות דומה ל-BasicTextFieldמבחינת התכונות, וההתנהגות שלה צריכה להיות מוכנה לשימוש בסביבת ייצור. עם זאת, ה-API עדיין ניסיוני בשלב הזה. לפני שהיא תהפוך ליציבה, השם שלה ישתנה ל-BasicTextFieldוהיא תועבר לאותה חבילה. - השקנו את הטיוטה הראשונה של
OutputTransformationAPI ל-BasicTextField2. ה-API הזה מחליף את רוב תרחישי השימוש ב-VisualTransformationבגרסה הישנה שלBasicTextField. עם זאת, הוא עדיין לא מושלם, ויש דברים שלא יפעלו כמו שצריך. נשמח לקבל משוב על השימושיות של ה-API בתרחישי השימוש שלכם. (aosp/2708848) - השקנו את התכונה
LinkAnnotationשמאפשרת להוסיף קישורים ורכיבים שאפשר ללחוץ עליהם לטקסט. התכונה 'קישורים' עדיין לא הושלמה, וצפויים שינויים נוספים ב-API. - הוספנו את ה-modifier
receiveContentשמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose. -
receiveContentמשתלב עםBasicTextField2כדי לקבל תוכן עשיר שמסופק על ידי המקלדת הווירטואלית, או באמצעות הדבקה מהלוח. -
KeyboardOptions.shouldShowKeyboardOnFocusמאפשרת להשבית את התנהגות ברירת המחדל שלBasicTextFieldשל בקשת מקלדת תוכנה במיקוד. - המאפיינים
TextInputServiceו-LocalTextInputServiceהוצאו משימוש. במקום זאת, אפשר להשתמש ב-PlatformTextInputModifierNodeכדי לבצע שילוב ישירות עם ממשקי API של IME בפלטפורמה. (aosp/2862698) - המאפיין
Indication#rememberUpdatedInstanceהוצא משימוש. הוא גורם לירידה משמעותית בביצועים שאי אפשר להימנע ממנה, ומונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactoryAPI החדש.
תיקוני באגים
-
BasicTextFieldיבצע עכשיו אימות מראש של מבחר קטן של מיפויי היסטים כשמעבירים אתVisualTransformation. כך אפשר לזהות שגיאות נפוצות בקידוד שמובילות לחריגים שלא ניתן לשחזר בשלבים מאוחרים יותר של המדידה או של העברת הנתונים. השגיאות האלה מוצגות במהלך ההרכבה, ולכן יש סיכוי גבוה יותר שהמפתחים יראו אותן במהלך הפיתוח, וכך יוכלו למנוע קריסות בסביבת הייצור. (I0fd42) -
VisualTransformationלא יחזיר שגיאה אם מחזירים אינדקס לא תקין לאינדקס לא תקין (b/316401857 )
גרסה 1.6
גרסה 1.6.8
12 ביוני 2024
androidx.compose.foundation:foundation-*:1.6.8 מופץ. גרסה 1.6.8 מכילה את השמירות האלה.
גרסה 1.6.7
1 במאי 2024
androidx.compose.foundation:foundation-*:1.6.7 מופץ. גרסה 1.6.7 מכילה את השמירות האלה.
גרסה 1.6.6
17 באפריל 2024
androidx.compose.foundation:foundation-*:1.6.6 מופץ. גרסה 1.6.6 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג שבו החלפה של מאפייני
enabledאוreadOnlyשלTextFieldבתנאים מסוימים גרמה לקריסה. (Iae17b)
גרסה 1.6.5
3 באפריל 2024
androidx.compose.foundation:foundation-*:1.6.5 מופץ. גרסה 1.6.5 מכילה את השמירות האלה.
תיקוני באגים
- הוספת יומני ניפוי באגים לבאגים שקשה לשחזר בשורה/בעמודה: (b/300280216 ו-b/297974033)
גרסה 1.6.4
20 במרץ 2024
androidx.compose.foundation:foundation-*:1.6.4 מופץ. גרסה 1.6.4 מכילה את השמירות האלה.
תיקוני באגים
- התנועה של לחיצה ארוכה ואז גרירה לבחירה, שיוצאת מגבולות הפריסה של הטקסט בפריים הראשון של הגרירה, כבר לא גורמת לקריסה. (Icdf90, b/325307463)
גרסה 1.6.3
6 במרץ 2024
androidx.compose.foundation:foundation-*:1.6.3 מופץ. גרסה 1.6.3 מכילה את השמירות האלה.
גרסה 1.6.2
21 בפברואר 2024
androidx.compose.foundation:foundation-*:1.6.2 מופץ. גרסה 1.6.2 מכילה את השמירות האלה.
תיקוני באגים
- תיקון של
AnimateContentSizeשלא מתאפס כראוי. (I07051) - נפתרה בעיה שגרמה לשמירת
intrinsicHeightשל טקסט במטמון יתר על המידה בנסיבות מסוימות. (3cd398, b/217910352)
גרסה 1.6.1
7 בפברואר 2024
androidx.compose.foundation:foundation-*:1.6.1 מופץ. גרסה 1.6.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון של מדידת רשת מדורגת כשגוללים מעבר למגבלה. (bffc39)
- הוספת בדיקה של פריסה עם ממדים גדולים. (e74af5)
- תיקון המיקום של פריטים בגודל 0 בתחילת הרשת המדורגת. (785f94)
- הפעלת הקריאה החוזרת onRelease באותו סדר כמו onForgotten. (31ce3b)
גרסה 1.6.0
24 בינואר 2024
androidx.compose.foundation:foundation-*:1.6.0 מופץ. גרסה 1.6.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.5.0
- הוספנו משנה חדש
Modifier.anchoredDraggableשמאפשר לגרור ולהנפיש בין קבוצה מוגדרת מראש של נקודות עיגון. השינוי הזה נועד להחליף אתModifier.swipeable. הוראות לשימוש ולהעברה מ-Modifier.swipeableמפורטות במדריך להעברת נתונים (מיגרציה). - נוספה פונקציית גרירה ושחרור בין אפליקציות ורכיבים. כדאי לעיין במאמרים בנושא
DragAndDropTarget, Modifier.dragAndDropSourceובממשקי API אחרים כדי להתחיל -
Modifier.draggable2Dהוא משנה חדש שמאפשר תמיכה קלה בגרירה דו-ממדית. דוגמה - הוספנו את
AndroidExternalSurfaceו-AndroidEmbeddedExternalSurfaceכדי להקל על הוספת רכיבים מבוססי-משטח ב-Compose - שינויים ושיפורים שונים ב-API ב-
Pagerוב-snapFlingBehaviour - ממשקי API שונים של מיקוד, טקסט ו-insets קודמו לממשקי API יציבים
גרסה 1.6.0-rc01
10 בינואר 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01 מופץ. גרסה 1.6.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- הוסר בנאי התוסף
DragAndDropTarget(). יוצרים מכונה חדשה באמצעותobject: DragAndDropTarget {}. (I32318)
גרסה 1.6.0-beta03
13 בדצמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03 מופץ. גרסה 1.6.0-beta03 מכילה את השמירות האלה.
תיקוני באגים
- תיקון קריסה שהשפיעה על טקסט גדול מאוד שנמדד עם אילוצים אינסופיים. (I1a7df, b/312294386)
-
PlatformImeOptionsהיא עכשיו מחלקה קונקרטית במקום ממשק. (If40a4)
גרסה 1.6.0-beta02
29 בנובמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02 מופץ. גרסה 1.6.0-beta02 מכילה את השמירות האלה.
תיקוני באגים
- תיקון של בעיה שבה
canScrollלא מתעדכן אחרי גלילה שכוללת רק שינוי פריסה. (I60a86) - תיקון של
Modifier.animateItemPlacement()ו-LookaheadScopeאחרי גלילות קטנות. (I3a2b7)
גרסה 1.6.0-beta01
15 בנובמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01 מופץ. גרסה 1.6.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- המשנה
DragAndDropTargetמקבל עכשיו אתDragAndDropTargetהמקבל באופן מפורש, ויש לו ביטוי למדא כדי להצטרף לסשן של גרירה ושחרור. עכשיו יש שתי פונקציות ליצירת אובייקטDragAndDropModifierNode. אחד לקבלת העברות ואחד להעברת נתונים (I69481) - העדכון של
maximumFlingVelocityמיוצג כ-Float. עדכנו את התיעוד כדי להבהיר את המושגmaximumFlingVelocityunity. (I8adc7) השם של
onDragAndDropStartבמפעלDragAndDropModifierNodeשונה ל-acceptDragAndDropTransfer.איש/אשת הקשר
acceptsDragAndDropTransferנוסף/ה אלdragAndDropTargetModifierכדי לאשר את ההזמנה באמצעות גרירה ושחרור. פונקציית ה-lambda הזו מחזירהDragAndDropTargetאם המשתמש מעוניין בהפעלה של גרירה ושחרור. הפונקציה הזו מחליפה פונקציות למבדא אחרות לעיבוד אירועי גרירה.נוספה פונקציית יצרן
DragAndDropTargetלקבלת נתונים מסשנים של גרירה ושחרור (Iebf3a)חשיפת
startDragImmediatelyב-AnchoredDraggableמאפשרת שליטה בזיהוי תנועות גרירה כשמשתמשים בו. כדאי להגדיר את הפרמטר הזה כשהווידג'ט מונפש לעוגן יעד. דוגמה (Ie6d13, b/285139987)ממשקי ה-API של הסברים קצרים על כלים זמינים עכשיו ב-
@ExperimentalFoundationApi(I30b0b)הוסר
DragAndDropInfoכסוגDragAndDropModifierNode.dragמקבל עכשיו פרמטרים עבורtransferData, גודל העיטור וגרירת העיטורDrawScopelambdaל-
DragAndDropTargetיש methods לאירועי גרירה ושחרור ספציפיים, במקום method מופשטת אחתהפרמטר
onDragAndDropEventבפונקציית הפקטורי (factory) שלDragAndDropModifierNodeשונה ל-onDragAndDropStartכדי להבהיר שהערךDragAndDropTargetשסופק תקף רק לסשן מסוים של גרירה ושחרורהוסר
DragAndDropEventType(I645b1)השם של
PlatformTextInputModifierNode.runTextInputSessionשונה ל-establishTextInputSession. (I03cd0)צריך להחליף את
OriginalTextב-TextSubstitution. (Ifa5a8)השם של
PlatformTextInputModifierNode.textInputSessionשונה ל-runTextInputSession. (Ie9c6b)הילדים של
SubcomposeLayout(ופריסות כמוLazyColumnשמבוססות עליו) שנשמרים לשימוש חוזר בעתיד נחשבים ללא פעילים. הוספנו ממשק API חדש לבדיקה,assertIsDeactivated(), כדי לבדוק צמתים כאלה. כל שאר ממשקי ה-API לבדיקה יסננו כברירת מחדל צמתים שהושבתו. (I2ef84, b/187188981)הפרמטר
clippingEnabledשל הפונקציהModifier.magnifierנקרא עכשיוclip.הפרמטר
magnifierCenterשלModifier.magnifierהופך לפרמטר שאפשר להגדיר כ-nullable, בלי לשנות את התנהגות ברירת המחדל. (I6aa66)ממשקי ה-API של Material
SwipeToReveal(לכרטיסים ולצ'יפים) מסתמכים עכשיו על API מבוסס-משבצות (כפי שמומלץ ב-Compose) במקום על מופעים מבוססי-מחלקות נתונים כדי ליצור את המשבצות האלה. זהו שינוי שעלול לגרום לבעיות, לכן מומלץ לעיין בהדגמה ובדוגמאות הקוד כדי ללמוד איך להשתמש ב-API החדש. (Ia8943)
תיקוני באגים
- מטמיעים את הפונקציות equals ו-hashcode עבור
PageSize.Fixed. (Ie3ede, b/300134276) - תוקן באג שגרם לכך שהפריסה
BasicTextלא הצטמצמה כשminWidthהשתנה וminWidthהיה קטן מאילוצי המידה הראשונייםmaxWidth(Idb19c) - הוספנו תמיכה ב-Renderer לטווח צבעים מתמשך ב-
ArcLine. (I4d5bb) - תיקון בעיה בתאימות בינארית עם שינוי של Window Inset (Iee695)
- הסרנו את שכבת הליבה של Material עבור רכיב Chip/Button של Material3, כי המיקרו-בנצ'מרקים מראים ביצועים טובים יותר בלעדיה. (I55555)
גרסה 1.6.0-alpha08
18 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha08 מופץ. גרסה 1.6.0-alpha08 מכילה את השמירות האלה.
תכונות חדשות
-
Modifier.draggable2Dהוא משנה חדש שמאפשר תמיכה קלה בגרירה דו-ממדית. ראו דוגמה (Id95f5, b/214412658)
שינויים ב-API
- השם של פונקציית ה-lambda
onDrawDragShadowב-Modifier.dragAndDrawSourceשונה ל-drawDragDecoration, והשם של פרמטר הגודל ב-DragAndDropInfoשונה ל-dragDecorationSize. (Id0e30, b/303904810) - הפרמטר
decorationBoxשל הפונקציהBasicTextField2נקרא עכשיוdecorator. הסוג שלו משתנה גם לממשק כיפי מקבילTextFieldDecorator. (I23c1c)
תיקוני באגים
- שיפרנו את התיעוד בנושא
BasicTextFieldבנוגע לדרישות שלonValueChange. (I90fc9, b/160257648)
גרסה 1.6.0-alpha07
4 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha07 מופץ. גרסה 1.6.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- השקנו את
PlatformTextInputMethodTestOverrideלכתיבת בדיקות עבור עורכי טקסט בהתאמה אישית. (Id159b) - השם של
GraphicsSurfaceשונה ל-AndroidExternalSurface(I11680) - נוסף
DisableNonLinearFontScalingInComposeדגל זמני להשבתת שינוי גודל הגופן הלא ליניארי. אם אתם צריכים זמן לנקות את הבחנים, אתם יכולים להגדירDisableNonLinearFontScalingInCompose = true. הדגל הזה יוסר ב-Compose 1.6.0-beta01. (Ic9486) - נוספו אוספי
ColorListו-ColorSetשלא דורשים הקצאות. (I744bd) - בשינוי הזה הסרנו את
shortSnapVelocityThreshold, שהפך לפרט הטמעה של ההטמעות שלSnapLayoutInfoProvider. (I65f6d) - נוספו מקש ה-Modifier
dragAndDropSourceלהפעלת סשנים של גרירה ושחרור, ומקש ה-Modifier dragAndDropTargetלקבלת נתונים מסשנים של גרירה ושחרור (Ib7828, b/286038936) - עדכון המסמכים של
SnapPositionInLayoutושיטת המיקום. הוספת מרווחי תוכן לשיטת המיקום ב-SnapPositionInLayout. (Id7938, b/300116110) - הוספנו את האפשרות
UndoStateל-TextFieldState, שמאפשרת לבטל או לבצע מחדש את השינויים שהמשתמש ביצע. (Icc024)
תיקוני באגים
- תוקנה הבעיה שבה
basicMarqueeלא מונפש אחרי שינוי המהירות. (Id2e77, b/297974036)
גרסה 1.6.0-alpha06
20 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06 מופץ. גרסה 1.6.0-alpha06 מכילה את השמירות האלה.
תכונות חדשות
- עטיפות חדשות של רכיבים שאפשר להרכיב מהם ממשקי משתמש עבור
SurfaceView,TextureView: GraphicsSurface()ו-EmbeddedGraphicsSurface(). זהו API ניסיוני, והוא כפוף לשינויים ולתיקונים. (I9ddb2) -
Modifier.magnifier()הוא עכשיו API יציב. השינוי הזה כולל את ההסרה שלMagnifierStyleלטובת פרמטרים מוטבעים בתוך המונה עצמו. (I83bec, b/298381260, b/262367109, b/261438887)
שינויים ב-API
- הוספנו את
updateCurrentPageו-updateTargetPageב-ScrollScope. אלה הרכיבים האחרונים שנדרשים כדי לאפשר התאמה אישית של אנימציה של גלילה ב-PagerState.scroll. (I9cad5, b/267744105, b/243786897) - הסרת הצפיפות מהמכשיר
SnapFlingBehavior. בכל ההטמעות שלSnapLayoutInfoProviderכבר יש דרך לגשת לצפיפות, ולכן אפשר להסיר את היקף המקלט, מה שיפשט את ההטמעה שלSnapFlingBehaviorושלSnapLayoutInfoProviders. (I153c3) - עוד משנים סומנו כיציבים. (I56af1, b/298046462)
- הסרנו את
SnapStepSizeמהקבוצהSnapLayoutInfoProvider. החישוב צריך להתבצע באמצעות פרטי הפריסה, ולהינתן באמצעות הגישה או ההיסטים של ההצמדה. (If320c)
שינויים בהתנהגות
- התכונה 'יצירת אימייל' משתמשת עכשיו בהתאמת גודל גופן לא לינארית, כדי לשפר את הקריאות והנגישות. אם קנה המידה של הגופן גדול מ-100% בהגדרות המערכת, הגודל של טקסט קטן יגדל באופן רגיל, אבל הגודל של טקסט שכבר גדול יגדל רק קצת. בנוסף, גובה השורה שמוגדר ב-SP יותאם באופן אוטומטי כדי לשמור על יחס פרופורציונלי לגובה המיועד של 100%. מידע נוסף זמין במאמר בנושא שיטות מומלצות לשינוי גודל הגופן. (I11518)
תיקוני באגים
- הסרת השימוש ב-
rememberSaveableבהסברים קצרים. (Icc131, b/299500338)
גרסה 1.6.0-alpha05
6 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05 מופץ. גרסה 1.6.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- מוסיפים עומסים יתרים ל-
BasicSecureTextFieldשמקבלים ערך קבוע וקריאה חוזרת לשינוי הערך הזה, בדיוק כמו ה-API הנוכחי שלBasicTextField. (Ia4882) - מוסיפים את
Modifier.preferKeepClear()כדי לסמן את הפעילות כניתנת להרכבה, וכך למנוע חלונות צפים ב-API 33 ומעלה. (Ib51d5, b/297260115) - המהירויות של תנועות ההטלה ברכיבי התצוגה כמו
ScrollViewו-RecyclerViewמוגבלות ל-ViewConfiguration.ScaledMaximumFlingVelocity. הגרסה שלmaximumFlingVelocityשכלולה עכשיו בכלי הכתיבה חלה עלDraggable. (Ibf974) - הוסרו עומסי יתר (overloads) של
Pagerו-PagerStateשהוצאו משימוש. (Iea07e) - הוספנו את
BasicTooltipBoxל-compose.foundationועדכנו אתPlainTooltipBoxואתRichTooltipBoxכדי להשתמש ב-TooltipBoxעם רכיביPlainTooltipו-RichTooltipחדשים שניתנים להרכבה. (I79e1d)
גרסה 1.6.0-alpha04
23 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04 מופץ. גרסה 1.6.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הוספת ממשק
ReusableCompositionלניהול מחזור החיים של קומפוזיציות משנה ולשימוש חוזר בהן. (I812d1, b/252846775) -
Modifier.focusGroupהועלה לגרסאות יציבות של ממשקי API. (I7ffa3) - מוסיפים עומסים יתרים ל-
BasicTextField2שמקבלים ערך קבוע וקריאה חוזרת לשינוי הערך הזה, בדיוק כמו ה-API הנוכחי שלBasicTextField. (I3f2b8) -
GridItemSpan::currentLineSpanהוא עכשיו API יציב. (Icc29c) - Canvas שמקבל
contentDescriptionהוא עכשיו API יציב. (Ib3d29) - הוספנו את
viewportSizeב-ScrollState, כדי לדעת את הגודל של הרכיב שמשתמש ב-ScrollStateאחרי המדידה.viewPort(I8b85a, b/283102682) - תוקנה בעיה שבה האחזור המקדים ב-Pager לא תאם להתנהגות ב-Views. (I93352, b/289088847)
- המדד
Modifier.consumeWindowInsets(PaddingValues)יציב עכשיו.- ממשק ה-API
Deprecated Modifier.consumedWindowInsetsהוסר. במקום זאת, אתם צריכים להשתמש ב-Modifier.consumeWindowInsets. (Id72bb)
- ממשק ה-API
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03 מופץ. גרסה 1.6.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- נוספה עומס יתר של
LazyLayout, הוא מקבל lambda שלLazyLayoutItemProvider, ולא אובייקט רגיל כמו שהיה קודם. העומס הקודם הוצא משימוש. (I42a5a) - הוספנו תמיכה בהגדרה של
privateImeOptions(Idb772)
תיקוני באגים
- תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כש-
readOnlyהיה true. בנוסף, תוקנה בעיה שגרמה לכך שהמקלדת לא הוצגה כשreadOnlyהשתנה מ-true ל-false בזמן שהיה מיקוד. (I34a19, b/246909589)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02 מופץ. גרסה 1.6.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
PagerLayoutInfoעם מידע שנאסף אחרי שהמדד עבר ב-Pager. הוספנו גם אתPageInfo, המידע על דף יחיד שנמדד ב-Pager. (Iad003, b/283098900) - הערות נוספות לציון קלט מותר לפונקציות שאפשר להרכיב (I51109)
- הוספנו את
SemanticsNodeInteraction.requestFocusכדרך נוחה יותר לבקש התמקדות בבדיקות. (Ie8722) - עיצוב מחדש מלא של
PlatformTextInput*API. (I6c93a, b/274661182, b/267235947, b/277380808) - התכונות
SoftwareKeyboardControllerו-LocalSoftwareKeyboardControllerכבר לא ניסיוניות. בנוסף,LocalSoftwareKeyboardControllerהוא עכשיוCompositionLocal. (I4c364) -
Modifier.transformableמספק עכשיו את הפרמטר pan delta ב-canPanכדי לעזור לקבוע את כיוון הפנורמה ולאפשר או לאסור אותה. (I692aa, b/266829800) - העדכון של שינוי הגישה
consumeWindowInsetsמרחיב את מחלקת העלAbstractComposeView(Iacd74, b/269479941)
גרסה 1.6.0-alpha01
21 ביוני 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01 מופץ. גרסה 1.6.0-alpha01 מכילה את השמירות האלה.
תכונות חדשות
- הוספנו
AnchoredDraggableAPI חדש ב-Foundation. אפשר להשתמש בו כדי לבנות רכיבים שאפשר לגרור בין מצבים נפרדים, כמו גיליונות תחתונים של חלונות קופצים. ה-API הזה מחליף אתSwipeableAPI של Material. (I4a2ed)
שינויים ב-API
- תמיכה ב-
InputConnection#requestCursorUpdates(I0c69b) - הוספנו את
scrollAnimationSpecכדי לאפשר הגדרות אנימציה בהתאמה אישית. ההגדרה שלBringIntoViewCalculatorעודכנה ועכשיו היאBringIntoViewScroller. (Idb741) - הוספת
ResourceResolutionExceptiontype כדי לעטוף את ה-throwables שמופעלים כשמנסים לטעון נכסי bitmap עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788) - נוספו מאפיינים ופעולות סמנטיים לתמיכה בתרגום טקסט. (I4a6bc)
- השקנו
BringIntoViewCalculatorAPI שאפשר להשתמש בו כדי להתאים אישית את האופן שבו רכיבים כמוScrollableמגיבים לבקשותbringIntoView. השתנה העומס של scrollable כך שניתן לקבל אופציונלית מופע שלBringIntoViewCalculator. (Iaf5af)
תיקוני באגים
- נוספה בדיקת לינט כדי להזהיר אם יוצרים
MutableInteractionSourceבקומפוזיציה בלי לזכור אותו, בדומה לבדיקות הלינט ליצירת מצב משתנה /MutableInteractionSource.Animatable(I5daae) - הוספנו תמיכה בבחירה באמצעות העכבר. כשמשתמשים בבחירה מבוססת מגע, הבחירה תתרחב לפי מילה ותצטמצם לפי תו. (Ic0c6c, b/180639271)
- נוסף ממשק
FocusTargetModifierNodeשאפשר להשתמש בו כדי ליצורFocusTargetבהתאמה אישית. (I9790e)
גירסה 1.5
גרסה 1.5.4
18 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.5.4 מופץ. גרסה 1.5.4 מכילה את השמירות האלה.
גרסה 1.5.3
4 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.5.3 מופץ. אין שינויים בגרסה הזו.
גרסה 1.5.2
27 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.5.2 מופץ. גרסה 1.5.2 מכילה את השמירות האלה.
תיקוני באגים
- תוקן באג בטקסט שגרם לקריסות בנסיבות מסוימות כשסמנטיקה בוטלה.
גירסה 1.5.1
6 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כש-
readOnlyהיה true. בנוסף, תוקנה בעיה שגרמה לכך שהמקלדת לא הוצגה כשreadOnlyהשתנה מ-true ל-false בזמן שהיה מיקוד. (I34a19, b/246909589)
גרסה 1.5.0
9 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.4.0
- הרבה משני התכונות הבסיסיות, כולל
Modifier.clickable,Modifier.draggable,Modifier.scrollable, layout modifier ועוד, הועברו אלModifier.NodeAPI, וכך צומצם העומס על הקומפוזיציה הראשונית. - שיפורים ביציבות של מכשירי פייג'ר. טופלו הרבה באגים.
- הפרמטרים
pageCountנמצאים עכשיו ב-PagerStateבמקום ברכיב ה-Pager עצמו
גרסה 1.5.0-rc01
26 ביולי 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01 מופץ. גרסה 1.5.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
אפשר לבצע בדיקה אופציונלית כדי להמליץ על העברת קריאות של
mutableStateOf()לסוגים המקבילים והמיוחדים שלהם עבור פרימיטיבים. מזהה ה-lint הואAutoboxingStateCreation. בעבר, הבדיקה הזו הייתה מופעלת כברירת מחדל בכל הפרויקטים. כדי לראות את האזהרה הזו בעורך של Android Studio ובפלט של lint של הפרויקט, צריך לשנות את רמת החומרה שלה ממידע לאזהרה (או לרמה גבוהה יותר) על ידי הצהרה עלwarning "AutoboxingStateCreation"בתוך ההגדרהbuild.gradleאוbuild.gradle.ktsשל המודול, כמו שמוצג (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
גרסה 1.5.0-beta03
28 ביוני 2023
androidx.compose.foundation:foundation-*:1.5.0-beta03 מופץ. גרסה 1.5.0-beta03 מכילה את השמירות האלה.
גרסה 1.5.0-beta02
7 ביוני 2023
androidx.compose.foundation:foundation-*:1.5.0-beta02 מופץ. גרסה 1.5.0-beta02 מכילה את השמירות האלה.
גרסה 1.5.0-beta01
24 במאי 2023
androidx.compose.foundation:foundation-*:1.5.0-beta01 מופץ. גרסה 1.5.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- מטמיעים את
PlatformDataProviderכדי לספק נתונים על הדופק ועל הצעדים היומיים. ממשקSensorGatewayהוסר מה-API הציבורי. (I55b84)
תיקוני באגים
- הפחתת ההקצאות במהלך מדידות של רשימות, רשתות וכו' (Iaf9e2)
- הקצאות מופחתות כשמחילים תמונות מצב (I65c09)
- הוסרו הקצאות מאנימציות קפיציות (Ie9431)
- ההקצאה הוסרה מ-
TextLayout(I0fd11) - הוסרו הקצאות מרובות במעקב אחר מהירות המצביע (I26bae)
גרסה 1.5.0-alpha04
10 במאי 2023
androidx.compose.foundation:foundation:1.5.0-alpha04 וגם androidx.compose.foundation:foundation-layout:1.5.0-alpha04 מופצים. גרסה 1.5.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את האירוע
TextStyle.merge(...)שעבר אופטימיזציה עם רשימה מלאה של פרמטרים. (Iad234, b/246961787) - תציג
SnapLayoutInfoProviderשאפשר להשתמש בו עםLazyGridState. (I92134, b/269237141, b/260914964) - הוספנו את התכונה הניסיונית
Modifier.animateItemPlacement()להיקף הפריט של רשתות מדורגות בטעינה עצלה. אפשר להחיל אותה על הפריטים כדי ליצור אנימציות של שינוי מיקום או סידור מחדש של האוטומציה. (I4b62d, b/257034719) - קידום
GridCells.FixedSizeלגרסה יציבה. FixedSizeמגדירLazyGridשבו כל תא מקבל גודל מדויק בציר הניצב, והשטח שנותר מחולק לפי סידור הציר הניצב. (I8542f) - הוספנו את היקף המקבל
PagerScopeעבור Pager ואת פונקציית השירות לחישוב ההיסט של דף נתון. (If2577) - הוספנו את
snapPositionalThresholdכשיוצרים התנהגות של הצמדה בהטלה. הפרמטר הזה מאפשר לציין סף מיקום להצמדה קצרה ב-Pager. (If8f7f) - הטקסט
SnapLayoutInfoProvider.calculateSnappingOffsetBoundsהוחלף בטקסטcalculateSnappingOffset. בשיטה החדשה אנחנו פשוט מבקשים את ההיסט הבא שאליו צריך להצמיד את המיקום. את החישוב של הגבולות צריך לבצע ברמת ההטמעה, כי הוא עשוי להיות שונה בהתאם לאופן שבו רוצים שההצמדה תתרחש. (I923a4) - ממשקי ה-API של
LazyStaggeredGridעברו לגרסה יציבה. (I633a5) - הסרת
pageCountמהחשבוןHorizontal/VerticalPager. צריך לספק את הנתונים האלה בזמן יצירת המצב. עודכנו ההגדרותPagerStateו-rememberPagerStateכדי לאשר אתpageCount. (Ieb52d, b/266965072) - הסרת
pageCountמהחשבוןHorizontal/VerticalPager. צריך לספק את הנתונים האלה בזמן יצירת המצב. עודכנו ההגדרותPagerStateו-rememberPagerStateכדי לאשר אתpageCount. (Ifa3cb, b/266965072) - הצגת
shortSnapVelocityThresholdב-SnapFlingBehaviorשל Pager. (I7379e, b/275579012) - הוספה של
FlowRowScopeושלFlowColumnScope. (I54fe2)
תיקוני באגים
- שיחות לקבלת סמנטיקה בטקסט כשיש אילוצים
minWidthו-minHeightכבר לא קורסות. (Ibd072) - תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי רכיב ה-Composable
Dialog. (I82551, b/262140644)
גרסה 1.5.0-alpha03
19 באפריל 2023
androidx.compose.foundation:foundation:1.5.0-alpha03 וגם androidx.compose.foundation:foundation-layout:1.5.0-alpha03 מופצים. גרסה 1.5.0-alpha03 מכילה את השמירות האלה.
בגרסה הזו מופעלת חבילת התוכנה החדשה לעיבוד טקסט בכלי הכתיבה. הסט החדש עבר אופטימיזציה לביצועים, ולא אמורים להיות שינויים גלויים.
אם אתם רואים שינויים בטקסט שעבר רינדור, אתם יכולים לבצע ניפוי באגים על ידי הגדרת NewTextRendering1_5 = false כדי לאשר את ההבדל בהתנהגות. הגדרה כזו תגרום להרכבה מחדש. אם יש הבדלים בהתנהגות, צריך לשלוח דוח על באג.
דגל הניפוי באגים יוסר לפני ההשקה של גרסת 1.5 beta01.(Iada23, b/246960758)
שינויים ב-API
- הוספה בתוך השורה.
FlowColumn/FlowRow(Idab37)
גרסה 1.5.0-alpha02
5 באפריל 2023
androidx.compose.foundation:foundation:1.5.0-alpha02 וגם androidx.compose.foundation:foundation-layout:1.5.0-alpha02 מופצים. גרסה 1.5.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה בתאים בגודל קבוע ב-
LazyGridובסידור שלהם באמצעות פריסה של ציר ניצב. (I83ed9, b/235121277, b/267942510) - הוספנו תמיכה בנתיבים בגודל קבוע ב-
LazyStaggeredGridובסידור שלהם באמצעות פריסה של ציר ניצב. (I7d519) - עכשיו אפשר לפתוח
UrlAnnotationב-AnnotatedStringבאמצעות שירותי נגישות כמוTalkBack. (If4d82, b/253292081) - נוספה פעולת הסמנטיקה
InsertTextAtCursorלשדות טקסט. (I11ed5) - פעולות בדיקה שקשורות לטקסט (למשל
performTextInput) יבקשו עכשיו מיקוד ישירות, באמצעות פעולת הסמנטיקה, במקום ללחוץ על השדה. (I6ed05) - הוספנו תמיכה בפריסה או ברווחים בין צירים באמצעות
verticalArrangementב-FlowRowו-horizontalArrangementב-FlowColumn. אנחנו מסירים גם את הרמה העליונהverticalAlignmentו-horizontalAlignmentב-FlowRow/FlowColumn. מפתחים יכולים להשתמש ב-Modifier.alignבמקום זאת. כך מצמצמים את הסיכוי לבלבול בין מוסכמות השמות שלverticalAlignmentושלverticalArrangement. (I87b60, b/268365538)
גרסה 1.5.0-alpha01
22 במרץ 2023
androidx.compose.foundation:foundation:1.5.0-alpha01 וגם androidx.compose.foundation:foundation-layout:1.5.0-alpha01 מופצים. גרסה 1.5.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הטקסט ו-
BasicTextעוברים רפקטורינג כדי להשתמש במערכת החדשה של שינוי מאפיינים. במקרים רבים, השינוי הזה מוביל לשיפורים משמעותיים בביצועים. לא אמורים להיות שינויים גלויים. (If1d17, b/246961435) - נוספה הפעולה הסמנטית
PerformImeActionלהפעלת פעולת ה-IME בצמתים של עורך טקסט. (Ic606f, b/269633506)
תיקוני באגים
- בוצע עדכון פנימי של
Modifier.hoverable. המשנהhoverableיוצג בכלי הבדיקה רק אם הוא מופעל. (I82103)
גרסה 1.4
גרסה 1.4.3
3 במאי 2023
הגרסאות androidx.compose.foundation:foundation:1.4.3 ו-androidx.compose.foundation:foundation-layout:1.4.3 יוצאות ללא שינויים (רק שינוי במספר הגרסה).
גרסה 1.4.2
19 באפריל 2023
androidx.compose.foundation:foundation:1.4.2 וגם androidx.compose.foundation:foundation-layout:1.4.2 מופצים. גרסה 1.4.2 מכילה את השמירות האלה.
גרסה 1.4.1
5 באפריל 2023
androidx.compose.foundation:foundation:1.4.1 וגם androidx.compose.foundation:foundation-layout:1.4.1 מופצים. גרסה 1.4.1 מכילה את השמירות האלה.
גרסה 1.4.0
22 במרץ 2023
androidx.compose.foundation:foundation:1.4.0 וגם androidx.compose.foundation:foundation-layout:1.4.0 מופצים. גרסה 1.4.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.3.0
- נוספה שילוב תאימות לאמוג'י ב-
Textוב-TextField, וגם בפסקה ברמה נמוכה יותר. ההגדרה הזו מופעלת כברירת מחדל כשמגדירים את emojicompat. - אפשר להגדיר את
EmojiCompatבטקסט ספציפי באמצעותPlatformParagraphStyle. - נוספה תמיכה בפריסה של שורה מלאה אל
LazyStaggeredGrid(I28252) - הוספה של
onHoverניסיוני אלClickableText(I6938f) - הוספנו עומסים חדשים לניסויים לפונקציה
runComposeUiTestולפונקציותcreate*ComposeRuleשמקבלות פרמטרים מסוגCoroutineContext. ההקשר ישמש להרכבת הבדיקה ולכל קריאות ה-LaunchedEffectוה-rememberCoroutineScope()בהרכבה. (I10614, b/265177763) -
FlowRowו-FlowColumnזמינים עכשיו כ-@ExperimentalFoundationApiשמאפשרים פריסה גמישה יותר של רכיבים שמבוססת על שורות ועמודות, ושעוברים לשורה חדשה אם אין מספיק מקום בציר הראשי. (I3a7b2) - האפשרות
Modifier.basicMarquee()זמינה כניסיונית להצגת תוכן עם אפקט של כותרת נעה. (I2df44, b/139321650)
גרסה 1.4.0-rc01
8 במרץ 2023
androidx.compose.foundation:foundation:1.4.0-rc01 וגם androidx.compose.foundation:foundation-layout:1.4.0-rc01 מופצים. גרסה 1.4.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- השקנו ממשק API חדש ברמה נמוכה,
PlatformTextInputAdapter, ליצירת הטמעות מותאמות אישית של הזנת טקסט שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4) - הוספת תמיכה בפריסה הפוכה ל-
LazyStaggeredGrid. (I3ef4a)
תיקוני באגים
- הפעולה הסמנטית של
BasicTextField'sSetTextתעדכן עכשיו את מאגר הטקסט באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (לדוגמה,performTextReplacement). - פונקציות בדיקת הטקסט
performTextClearance,performTextReplacementו-performTextSelectionמשתמשות עכשיו ב-SemanticsActions. (I0807d, b/269633168, b/269624358)
גרסה 1.4.0-beta02
22 בפברואר 2023
androidx.compose.foundation:foundation:1.4.0-beta02 וגם androidx.compose.foundation:foundation-layout:1.4.0-beta02 מופצים. גרסה 1.4.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף קריאה חוזרת (callback) חדשה
Modifier.Node.onReset()שמאפשרת לאפס מצב מקומי מסוים כדי לטפל כמו שצריך במקרה שבו נעשה שימוש חוזר ב-Layout(למשל, כפריט שלLazyColumn). תוקןFocusTargetModifierNodeכדי לאפס כמו שצריך את מצב המיקוד. (I65495, b/265201972) - נוסף הפרמטר
BlendModeלשיטותDrawScope.drawText,Paragraph.paintו-MultiParagraph.paintכדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508) - הסרנו את
modifierElementOf()API. במקום זאת, צריך להשתמש בהרחבה ישירה מ-ModifierNodeElement. (Ie6d21)
תיקוני באגים
- אי אפשר יותר לבחור חלק מתו באמצעות שינוי הגודל של נקודות האחיזה של הבחירה. (Idedd1)
- תיקון קריסה כשמקישים על Ctrl+BackSpace ב-
TextFieldריק (I0427f, b/244185537)
גרסה 1.4.0-beta01
8 בפברואר 2023
androidx.compose.foundation:foundation:1.4.0-beta01 וגם androidx.compose.foundation:foundation-layout:1.4.0-beta01 מופצים. גרסה 1.4.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- החל מגרסה 1.3, נוספה שילוב תאימות של אמוג'י ל-
Textול-TextField, וגם לפסקה ברמה נמוכה יותר. ההגדרה הזו מופעלת כברירת מחדל כשמגדירים את emojicompat. - אפשר להגדיר את
EmojiCompatבטקסט ספציפי באמצעותPlatformParagraphStyle.
שינויים ב-API
- נוספה הטמעה משותפת של
PinnableContainerAPI שמשמש בכלLazyLayoutsכדי לשמור פריטים שיוצאים מהקומפוזיציה, אבל עדיין צריכים להיות פעילים. (If45a4) - השם של
PinnableContainer.PinnedHandle.unpin()שונה לrelease()(I4667a)
External Contribution
- נוסף נכס מסוג
mainAxisItemSpacingאלLazyListLayoutInfo,LazyGridLayoutInfoו-LazyStaggeredGridItemInfo(I52fad)
גרסה 1.4.0-alpha05
25 בינואר 2023
androidx.compose.foundation:foundation:1.4.0-alpha05 וגם androidx.compose.foundation:foundation-layout:1.4.0-alpha05 מופצים. גרסה 1.4.0-alpha05 מכילה את השמירות האלה.
תכונות חדשות
- נוספה תמיכה בטווח מלא של שורות ל-
LazyStaggeredGrid(I28252) - הוספה של
onHoverניסיוני אלClickableText(I6938f) - הוספנו עומסים חדשים לניסויים לפונקציה
runComposeUiTestולפונקציותcreate*ComposeRuleשמקבלות פרמטרים מסוגCoroutineContext. ההקשר ישמש להרכבת הבדיקה ולכל קריאות ה-LaunchedEffectוה-rememberCoroutineScope()בהרכבה. (I10614, b/265177763)
שינויים ב-API
- מיזוג ממשקי ה-API של
OverscrollEffectלפני ואחרי לתוך פונקציות משולבות של 'מעצב'applyToScrollו-applyToFling. בדוגמאות המעודכנות במסמכי התיעוד אפשר לראות איך מטמיעים אפקט של גלילה מעבר לקצה באמצעות מבנה ה-API החדש. (I8a9c4, b/255554340) - שיפורים בסוגים ובערכי null של פונקציות מוטמעות/מוסתרות שהוצאו משימוש (I24f91)
- ממשקי ה-API
LineBreakו-Hyphensב-TextStyleעברו לשלב היציבות. (Ic1e1d)
תיקוני באגים
- הסמן בשדות טקסט ימשיך להבהב גם כשהאנימציות מושבתות. (I95e70, b/265177763)
- האמוג'י
Modifier.basicMarqueeמונפש עכשיו גם כשהאנימציות מושבתות בהגדרות המערכת. (I23389, b/262298306, b/265177763)
External Contribution
- השיטות
notifyFocusedRectב-TextInputSessionוב-TextInputServiceלא הוצאו שוב משימוש. (I23a04, b/262648050)
גרסה 1.4.0-alpha04
11 בינואר 2023
androidx.compose.foundation:foundation:1.4.0-alpha04 וגם androidx.compose.foundation:foundation-layout:1.4.0-alpha04 מופצים. גרסה 1.4.0-alpha04 מכילה את השמירות האלה.
תכונות חדשות
-
FlowRowו-FlowColumnזמינים עכשיו כ-@ExperimentalFoundationApiשמאפשרים פריסה גמישה יותר של רכיבים שמבוססת על שורות ועמודות, ושעוברים לשורה חדשה אם אין מספיק מקום בציר הראשי. (I3a7b2) - האפשרות
Modifier.basicMarquee()זמינה כניסיונית להצגת תוכן עם אפקט של כותרת מתגלגלת. (I2df44, b/139321650)
שינויים ב-API
- התכונה
FocusRequesterModifierהוצאה משימוש לטובתFocusRequesterNode(I7f4d7, b/247708726, b/255352203, b/253043481, b/247716483, b/254529934, b/251840112, b/251859987, b/257141589) - הקונסטרוקטור
AndroidFontעםvariationSettingsהוא עכשיו API יציב, ואפשר להשתמש בו כדי ליצור סוגים חדשים של תיאורי גופנים. (I5adcc, b/261565807) - הוספנו את
PinnableContainerapi שמופץ על ידי רשימות עצלות באמצעות קומפוזיציה מקומית שמאפשרת להצמיד את הפריט הנוכחי. המשמעות היא שהפריט לא יוסר כשהמשתמש יגלול אותו מחוץ לתצוגה. לדוגמה,Modifier.focusable()יצמיד את הפריט הנוכחי שמוגדר עליו מיקוד באמצעות המנגנון הזה. (Ib8881, b/259274257, b/195049010) - שכתבנו את האופן שבו רכיבים עם אפשרות גלילה מגיבים ל-
bringIntoViewRequestersורכיבים שאפשר להתמקד בהם, כדי ליצור מודל טוב יותר של מורכבות הפעולות האלה ולטפל ביותר מקרים קיצוניים. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - הוספת אפשרות להחזרת ערך null לסוגים נוספים של פונקציות שהוצאו משימוש ומוסתרות (Ibf7b0)
- נוספה התכונה הניסיונית
TextMotionל-TextStyleכדי להגדיר אם הטקסט יהיהStatic(default)או מונפש. משתמשים ב-TextMotion.Animatedאם הטקסט הולך להיות מוגדל, מתורגם או מסובב באמצעות אנימציה. (I24dd7) - הוספת
TextFieldFocusModifierכדי לתקן את התנהגות הניווט במיקוד בפלטפורמת Android (I00303) - הארגומנט
maxSize: IntSizeבפונקציהdrawTextהוחלף בארגומנטsize: Sizeכדי להתאים לפונקציות אחרות שלDrawScope. כברירת מחדל,sizeמוגדר כ-Size.Unspecified, ולא אמור לשנות את התנהגות ברירת המחדל הקודמת. (Icd27d)
תיקוני באגים
- שינויים בפיזיקה של ההצמדה ב-
SnapFlingBehaviourכדי ליצור תחושה טבעית יותר.
בעיה ידועה
- כשמעדכנים מ-
androidx.compose.foundation:1.4.0-alpha03ל-androidx.compose.foundation:1.4.0-alpha04, יכול להיות שתיתקלו בשגיאהjava.lang.NoSuchFieldError. כאן דווחה הבעיה במקור. תיקון נשלח ויהיה זמין בעדכון הבא של 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.foundation:foundation:1.4.0-alpha03 וגם androidx.compose.foundation:foundation-layout:1.4.0-alpha03 מופצים. גרסה 1.4.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- בבדיקות של ממשק משתמש באמצעות כלל Compose, המשכים שהופעלו מחדש במהלך קריאות חוזרות (callbacks) של
withFrameNanosלא יישלחו עד שכל הקריאות החוזרות של המסגרת יסיימו לפעול. ההתנהגות הזו תואמת להתנהגות של כתיבת הודעה כשהיא פועלת כרגיל. עם זאת, יכול להיות שבדיקות שמסתמכות על ההתנהגות הישנה ייכשלו. השינוי הזה אמור להשפיע רק על קוד שמבצע קריאה ישירה ל-withFrameNanosאו ל-withFrameMillis, וכולל לוגיקה מחוץ לקריאות החוזרות שמועברות לפונקציות האלה, שאולי צריך להעביר אותה לתוך הקריאות החוזרות. בדוגמה הזו אפשר לראות את השינויים בבדיקת האנימציה. - נוסף פרמטר אופציונלי
onPerformTraversals: (Long) -> Unitל-constructor ולפונקציית factory שלTestMonotonicFrameClockכדי להריץ קוד אחרי הקריאות החוזרות (callbacks) שלwithFrameNanosאבל לפני חידוש הקורוטינות של המתקשרים. (Idb413, b/254115946, b/222093277, b/255802670) - הוספנו פעולות נגישות בדף:
PageUp,PageDown,PageLeft,PageRight. הערה: האפשרויות האלה זמינות רק מ-API 29. (Ida4ab) - הצגת
HorizontalPagerו-VerticalPager, דרך להצגת רכיבים שאפשר להרכיב בדומה לרכיב Pager. הוספנו אתPagerStateכדי לשלוט ברכיבי ה-Pager וגם כדי לשאול מידע על המצב הנוכחי של ה-Pager. הוספנו אתPageSize, דרך לשלוט בגודל הדף של רכיב Pager. אפשר להשתמש בזה כדי ליצור קרוסלה כמו Pagers. הוספנו אתPagerSnapDistance, דרך לשלוט באופן הפעולה של ההצמדה בהתנהגות ההזזה של Pager. (I01120) - הוספנו עומס יתר ב-
SnapFlingBehavior.performFlingכדי לעזור להבין איפה התנועה תתייצב. (I569f6) - בוצעה הסרה של
OverscrollEffect#isEnabled. במקום לזכור ולהגדיר את הדגל הזה, פשוט אל תשלחו אירועים לאפקט הגלילה העודפת במקרים שבהם אתם לא רוצים שהגלילה העודפת תוצג (לדוגמה, אםScrollableState#canScrollForward/backwardמחזירה false). (I1a4b0, b/255554340, b/255557085) - נוספו
ScrollableState#canScrollForwardו-ScrollableState#canScrollBackwardכדי לבדוק אם יש מקום לגלול ב-ScrollableStateלכל אחד מהכיוונים (אם הוא במינימום או במקסימום של הטווח שלו). ברירת המחדל היא true לצורך תאימות לאחור עם הטמעות קיימות שלScrollableState. הצרכנים יכולים להשתמש בזה כדי להראות למשתמש שיש עוד מקום לגלול, ואפשר גם להשתמש בזה כדי להימנע משליחת דלתא ל-ScrollableStatesשאין בהן מקום לגלול בכיוון מסוים, וכך לצמצם עבודה מיותרת. (Idf1a0, b/255557085) - נוסף Modifier API לשאילתת מידע על גלילה ברכיבי צאצא. (I2ba9d, b/203141462)
- המאפיין הזה משמש ב-
Clickableכדי להשהות אינטראקציות של לחיצה בצורה נכונה, במקרים שבהם תנועות יכולות להפוך לאירועי גלילה. - תוקנה הבעיה שבה לא היה עיכוב נכון באפקט הגלים של
Clickablesכשנעשה בו שימוש בתוךScrollable ViewGroup. - עדכנו את מגירות הצד ואת הגיליונות כדי להשהות לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
- עדכון השם של
snapStepSizeכך שיהיה עקבי עם שיטות אחרות ב-SnapLayoutInfoProvider. (Ife67c) - נוספה
EmojiCompatאלCompose(Ibf6f9, b/139326806) - שינינו את השם של
consumedWindowInsets()ל-consumeWindowInsets()ואת השם שלwithConsumedWindowInsets()ל-onConsumedWindowInsetsChanged()והפכנו את ה-Modifiers לציבוריים. (Ie44e1)
תיקוני באגים
- הקריסה עם
Modifier.animateItemPlacement()ו-Lazy grids תוקנה. הבעיה התרחשה בתנאים מסוימים, כשהמספר של הפריטים החדשים היה קטן מהמספר של הפריטים הקודמים. (I0bcac, b/253195989)
גרסה 1.4.0-alpha02
9 בנובמבר 2022
androidx.compose.foundation:foundation:1.4.0-alpha02 וגם androidx.compose.foundation:foundation-layout:1.4.0-alpha02 מופצים. גרסה 1.4.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- ב-
awaitFirstDownוב-waitForUpOrCancellationאפשר עכשיו להשתמש ב-PointerEventPassכדי ליהנות מגמישות רבה יותר. (I7579a, b/212091796) - החזרה של
beyondBoundCountAPI מ-Lazy* APIs (I12197) - הוספנו פרמטר לממשקי API של Lazy כדי ליצור פריטים ולהציב אותם מחוץ לאזור התצוגה (I69e89, b/172029355)
- הוספנו את הפרמטר
minLinesל-BasicTextול-BasicTextField. המאפיין הזה מאפשר להגדיר את הגובה המינימלי של רכיבי ה-Composable האלה במונחים של מספר שורות (I24294, b/122476634)
גרסה 1.4.0-alpha01
24 באוקטובר 2022
androidx.compose.foundation:foundation:1.4.0-alpha01 וגם androidx.compose.foundation:foundation-layout:1.4.0-alpha01 מופצים. גרסה 1.4.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- נוספה שיטה חדשה,
awaitEachGesture(), לגלאי תנועות. הפעולה שלו דומה לזו שלforEachGesture(), אבל הלולאה של המחוות פועלת רק בתוךAwaitPointerEventScope, כך שלא יכול להיות אובדן של אירועים בין איטרציות. - הפונקציה
forEachGesture()הוצאה משימוש לטובתawaitEachGesture()כי היא מאפשרת לאירועים ללכת לאיבוד בין תנועות. (Iffc3f, b/251260206) - נוספו
WindowInsets.imeAnimationSource ו-WindowInsets.imeAnimationTargetכדי לקבוע את התקדמות האנימציה ולדעת איפה ה-IME יהיה אחרי שהאנימציה תסתיים. (I356f1, b/217770337)
גרסה 1.3
גרסה 1.3.1
9 בנובמבר 2022
androidx.compose.foundation:foundation:1.3.1 וגם androidx.compose.foundation:foundation-layout:1.3.1 מופצים. גרסה 1.3.1 מכילה את השמירות האלה.
תיקוני באגים
- פתרון בעיית ביצועים ב-
BeyondBoundsLayout(aosp/2255266) -
ContentInViewModifierלא יקרא קואורדינטות של פריסה אלא אם הוא מצורף (aosp/2241316)
גרסה 1.3.0
24 באוקטובר 2022
androidx.compose.foundation:foundation:1.3.0 וגם androidx.compose.foundation:foundation-layout:1.3.0 מופצים. גרסה 1.3.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.2.0
- השקנו גרסאות ניסיוניות של
LazyVerticalStaggeredGridושלLazyHorizontalStaggeredGrid. - ממשקי ה-API המתאימים
SnapFlingBehavior, rememberSnapFlingBehaviorואחרים נוספו כניסיוניים. -
Modifier.clickable,Modifier.toggleableוגםModifier.selectableמציגים עכשיו אדוות אם לוחצים עליהם באמצעות המקלדת או לחצני החיצים בשלט רחוק.
גרסה 1.3.0-rc01
5 באוקטובר 2022
androidx.compose.foundation:foundation:1.3.0-rc01 וגם androidx.compose.foundation:foundation-layout:1.3.0-rc01 מופצים. גרסה 1.3.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את המאפיין
lowVelocityAnimationSpecשמשמש את שלב הגישה כשאין מספיק מהירות תנועה כדי להפחית את התנועה. (Iaeb27) - נוסף API ניסיוני חדש של מקפים לתמיכה בהוספת מקפים אוטומטית בטקסט (Iaa869)
גרסה 1.3.0-beta03
21 בספטמבר 2022
androidx.compose.foundation:foundation:1.3.0-beta03 וגם androidx.compose.foundation:foundation-layout:1.3.0-beta03 מופצים. גרסה 1.3.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- אפשר להוסיף אפשרויות להתאמה אישית של מעברי שורה בטקסט. (I86907)
- מעכשיו,
BringIntoViewResponderיכולים לקבל את הגבולות העדכניים ביותר של בקשה בזמן העיבוד שלה. (If86a5, b/241591211) - הוספת תמיכה במרווחים בין פריטים לניסוי
Staggered Grid(I10b82) - הוספת ריווח פנימי לתוכן בניסוי
Staggered Grid(I342ea) - הארגומנט
size:IntSizeהוחלף בארגומנטconstraints: ConstraintsבשיטהTextMeasurer.measureכדי לתמוך באילוצי רוחב מינימליים. (I37530, b/242707525) - נוספה
Modifier.withConsumedWindowInsets()לצריכהWindowInsetsלשימוש מחוץ ל-windowInsetsPadding. - הוספנו את
MutableWindowInsetsכדי לאפשר שינוי קל שלWindowInsetsבלי ליצור מחדש את הקומפוזיציה. (I7fd28, b/237019262, b/243119659)
גרסה 1.3.0-beta02
7 בספטמבר 2022
androidx.compose.foundation:foundation:1.3.0-beta02 וגם androidx.compose.foundation:foundation-layout:1.3.0-beta02 מופצים. גרסה 1.3.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- גרסה ראשונית של
StaggeredGridניסיוני (Ia48be) - שינוי השם של
FocusDirection.InושלFocusDirection.Outל-FocusDirection.Enterול-FocusDirection.Exit(Ia4262, b/183746982) - הוספנו עומס יתר של
rememberSnapFlingBehaviorשמאפשר להפעיל במהירות את ההצמדה ב-LazyLists. (Ifb48a) - הוחלף המפעל
snapFlingBehaviorבמחלקהSnapFlingBehaviorקונקרטית. הוספנו שיטותSnapLayoutInfoProviderל-Density כדי להקל על משתמשי ה-API לבצע המרות בין Dp ל-Px. (I54a11) - עדכון
LazyLayoutMeasureScope.measureכדי להחזיר רשימה של מיקומי מודעות שאפשר להציב בהם מודעות, תוך הדגשת חוסר השינוי הרצוי של הערך המוחזר. (I48b7c) - הוספנו את
SnapLayoutInfoProvider, שמקבלLazyListStateכדי ליצור מופע שלSnapLayoutInfoProviderשאפשר להשתמש בו כדי להפעיל snapFlingBehaviorעבורLazyLists. (I2dd10)
תיקוני באגים
- שינוי מבנה הקוד של
AwaitPointerEventScope#awaitLongPressOrCancellationכך שיתאים לפונקציות אחרות של await (I646e6)
גרסה 1.3.0-beta01
24 באוגוסט 2022
androidx.compose.foundation:foundation:1.3.0-beta01 וגם androidx.compose.foundation:foundation-layout:1.3.0-beta01 מופצים. גרסה 1.3.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הוסר
pointerPositionמ-OverscrollEffect– אפקטים שמתייחסים למיקום הסמן יכולים להשתמש ב-Modifier.pointerInput { }ב-effectModifierכדי לקבל את המיקום הנוכחי של הסמן במקום זאת. (I9f606, b/241239306) -
AwaitPointerEventScope#awaitLongPressOrCancellationExposed as additional building block for more complex gesture detection (I04374, b/181577176) - הוספנו את
lazyListSnapLayoutInfoProviderכדי לאפשר הצמדה ברשימות עצלות. (I3ecdf) - הוספנו את
SnapFlingBehavior, התנהגות של תנועת הצמדה שמאפשרת הצמדה של רשימות. מספקים מופע שלSnapLayoutInfoProviderעם מידע על פריסת החלונות הצמודים. (Ie754c)
גרסה 1.3.0-alpha03
10 באוגוסט 2022
androidx.compose.foundation:foundation:1.3.0-alpha03 וגם androidx.compose.foundation:foundation-layout:1.3.0-alpha03 מופצים. גרסה 1.3.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הספרייה Resource Fonts תומכת עכשיו בהגדרת וריאציות של גופנים (API 26 ואילך). (I900dd, b/143703328)
- תמיכה בגופנים משתנים ב-
DeviceFontFamilyNameFont(Ic1279, b/143703328) - ההערה הניסיונית הוסרה מ-
PlatformTextStyleומ-LineHeightStyle. (I64bef) - בשדות טקסט יוצגו עכשיו חריגים מפורטים יותר כשהערך
OffsetMappingשסופק על ידיVisualTransformationמחזיר אינדקסים לא תקינים. (Ie73f9, b/229378536) - הוספנו ממשקי API ניסיוניים לשיתוף הלוגיקה של ספק הפריטים בין פריסות Lazy. (Ic891c)
ScrollableDefaults.reverseDirection()כבר לא ניסיוני. (Iba646)- המאפיין
SemanticsModifier.idיצא משימוש, והסמנטיקה של המזהה הועברה במקומו אלLayoutInfo.semanticsId. (Iac808, b/203559524) checkScrollableContainerConstraints()כבר לא ניסיוני. (I2c290)Modifier.clipScrollableContainer()כבר לא ניסיוני. (Ia2b44)- הוצאה משימוש של
TextInputService.show|hideSoftwareKeyboard. במקומה, צריך להשתמש ב-SoftwareKeyboardControllerבקוד האפליקציה וב-TextInputSessionבקוד לניהול IME. (I14e4c, b/183448615)
גרסה 1.3.0-alpha02
27 ביולי 2022
androidx.compose.foundation:foundation:1.3.0-alpha02 וגם androidx.compose.foundation:foundation-layout:1.3.0-alpha02 מופצים. גרסה 1.3.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פונקציית ההרחבה
drawTextב-DrawScopeכדי לספק דרך לצייר טקסט עם כמה סגנונות ברכיבים הניתנים להגדרה ובאמצעי שינוי שפועלים ב-DrawScopeכמוCanvasו-drawBehind. (I16a62, b/190787898)
תיקוני באגים
- המקלדת הווירטואלית תוסתר עכשיו כששדה טקסט מושבת בזמן שהוא מודגש. (I6e3e4, b/237308379)
- כשמוסיפים אירועים של
InputEventChangeל-Velocity Tracker, המערכת תתייחס עכשיו לשינויים במקום למיקומים. כך מובטח שהמהירות תחושב בצורה נכונה בכל המקרים, גם אם רכיב היעד זז (Icea9d, b/216582726, b/223440806, b/227709803) - כשאלמנט שאפשר לגלול בו מכיל אלמנט צאצא שמסומן, הוא יגלול עכשיו בצורה נכונה כדי שהאלמנט הצאצא המסומן יישאר בתצוגה גם אם הגודל שלו קטן, גם אם הגודל מונפש. (I80867, b/230756508, b/220119990)
- תוקנה קריסה שמתרחשת כש
TextFieldמתרוקן ומתמלא מחדש בזמן שהבחירה פעילה. (I1235b, b/208655565, b/214253689)
גרסה 1.3.0-alpha01
29 ביוני 2022
androidx.compose.foundation:foundation:1.3.0-alpha01 וגם androidx.compose.foundation:foundation-layout:1.3.0-alpha01 מופצים. גרסה 1.3.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את סוג ההערה
UrlAnnotationואת השיטות שמשויכות אליו כדי לתמוך בקישוריTalkBackב-AnnotatedString. (I1c754, b/231495122)
תיקוני באגים
- יכול להיות שעכשיו
BasicTextFieldcursorBrushיונפש בלי להפעיל מחדש את הטיימר של הסמן. (I812e6, b/236383522)
גרסה 1.2
גרסה 1.2.1
10 באוגוסט 2022
androidx.compose.foundation:foundation:1.2.1 וגם androidx.compose.foundation:foundation-layout:1.2.1 מופצים. גרסה 1.2.1 מכילה את השמירות האלה.
גרסה 1.2.0
27 ביולי 2022
androidx.compose.foundation:foundation:1.2.0 וגם androidx.compose.foundation:foundation-layout:1.2.0 מופצים. גרסה 1.2.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.1.0
- המדדים
LazyVerticalGridוLazyHorizontalGridיציבים עכשיו. - עכשיו אפשר לציין סוג תוכן לפריטים ברשימות ובטבלאות דינמיות. כך הרכיבים יוכלו לעשות שימוש חוזר באלמנטים בצורה יעילה יותר.
- לרשימות ולרשתות עצלות יש עכשיו פרמטר
userScrollEnabledשמאפשר להשבית את הגלילה באמצעות תנועות של המשתמש. - נוסף API חדש בשלב ניסוי בשם
LazyLayout. זהו ה-API שבו אנחנו משתמשים באופן פנימי כדי להפעיל רשימות ורשתות עצלות. -
OverscrollEffectAPI הושק כניסיוני. אפשר גם להגדיר אפקטים מותאמים אישית של גלילה מעבר לקצה, וגם להוסיף אפקט פלטפורמה רגיל למאגרי גלילה מותאמים אישית. - הוספנו ממשקי API של יכולת פעולה הדדית לגלילה מקוננת כדי לאפשר יכולת פעולה הדדית בין תצוגות ורכיבי גלילה של Compose.
- הוספנו גלילה באמצעות עכבר ומשטח מגע לכל מאגרי הגלילה.
גרסה 1.2.0-rc03
29 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc03 וגם androidx.compose.foundation:foundation-layout:1.2.0-rc03 מופצים. גרסה 1.2.0-rc03 מכילה את השמירות האלה.
- לא בוצעו שינויים מאז גרסה 1.2.0-rc02.
גרסה 1.2.0-rc02
22 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc02 וגם androidx.compose.foundation:foundation-layout:1.2.0-rc02 מופצים. גרסה 1.2.0-rc02 מכילה את השמירות האלה.
גרסה 1.2.0-rc01
15 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc01 וגם androidx.compose.foundation:foundation-layout:1.2.0-rc01 מופצים. גרסה 1.2.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו
OverscrollEffectניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילה מעבר לקצה, בנוסף לModifier.scrollableעומסים העודפים שמקבלים אותו. - הפונקציה הניסיונית
LocalOverScrollConfigurationהועברה מ-foundation.gestureלחבילת הבסיס ושמה שונה ל-LocalOverscrollConfiguration(If19fb, b/204650733) - ממשקים בספריות של Compose נוצרים עכשיו באמצעות שיטות ממשק שמוגדרות כברירת מחדל ב-jdk8 (I5bcf1)
- השקנו API ניסיוני
checkScrollableContainerConstraints()שמאפשר לבדוק שלא מוסיפים מאגדים עם אפשרות גלילה בתוך מאגדים אחרים. אפשר להשתמש בו כשיוצרים פריסות עצלות שניתנות לגלילה באמצעותLazyLayout. (Id6fab, b/233352497) - הוסר
LazyVerticalGridשהוצא משימוש מהחבילהandroidx.compose.foundation.lazy. ה-API היציב החדש נמצא בכתובתandroidx.compose.foundation.lazy.grid(I73c76, b/225192009)
גרסה 1.2.0-beta03
1 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-beta03 וגם androidx.compose.foundation:foundation-layout:1.2.0-beta03 מופצים. גרסה 1.2.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- נוספו התכונות הניסיוניות החדשות
IntervalListו-MutableIntervalList. הפונקציה מאפשרת לייצג רשימה של ערכים באמצעות כמה מרווחים. הוא יהיה שימושי כשרוצים להגדיר שפת תצורה משלכם שדומה לזו שמשמשת אתLazyColumn, שבה אפשר להגדיר פריטים ברשימה באמצעות כמה קריאות של item/items. (I2d05e, b/228580728)
תיקוני באגים
- הוספנו הבהרה למסמכי התיעוד של
WindowInsets.ime, שלפיהimeנתוני השוליים הפנימיים מדווחים החל מ-API 23, אבל רק אנימציות מדווחות החל מ-API 30. (Ia7fc0, b/230756508) - לחיצה על מקש המחיקה קדימה כשהסמן נמצא בסוף שדה טקסט לא תגרום יותר לקריסה.
- הארגומנטים של בנאי המחלקה
DeleteSurroundingTextCommandו-DeleteSurroundingTextInCodePointsCommandחייבים להיות לא שליליים. (Ica8e6, b/199919707)
גרסה 1.2.0-beta02
18 במאי 2022
androidx.compose.foundation:foundation:1.2.0-beta02 וגם androidx.compose.foundation:foundation-layout:1.2.0-beta02 מופצים. גרסה 1.2.0-beta02 מכילה את השמירות האלה.
- רזולוציית גופן להורדה שלא משנה את גודל הפריסה של טקסט או
TextFieldבעבר לא הייתה מציירת מחדש, מה שהוביל לתצוגת גופן לא עדכנית. תיקון הבאג הזה מבטיח שפריסת הטקסט תמיד תפעיל שרטוט מחדש (b/229727404). (I1d49e, b/229727404)
גרסה 1.2.0-beta01
11 במאי 2022
androidx.compose.foundation:foundation:1.2.0-beta01 וגם androidx.compose.foundation:foundation-layout:1.2.0-beta01 מופצים. גרסה 1.2.0-beta01 מכילה את השמירות האלה.
תכונות חדשות
- זו גרסת הבטא הראשונה של 1.2!
שינויים ב-API
- נוספה תכונה ניסיונית
BeyondBoundsIntervalשאפשר להשתמש בה בהטמעות בהתאמה אישית שלLazyListכשפריטים מוצגים מחוץ לגבולות הנראים (Ifabfb, b/184670295) - השם של
LineHeightBehaviorהשתנה לLineHeightStyle - השם של
LineVerticalAlignmentהשתנה לLineHeightStyle.Alignment - השם של
LineHeightTrimשונה לLineHeightStyle.Trim - הערכים של בנאי ברירת המחדל מ-
LineHeightStyleהוסרו (I582bf, b/181155707) - נוספו ערכי ברירת מחדל לחברים האופציונליים בממשק
LazyLayoutItemProvider. (Iba8a0) - ב-
LazyLayoutItemProviderAPI, במקום פונקציית factory שמחזירה את פונקציית ה-lambda שאפשר להרכיב לפי אינדקס, יש עכשיו פונקציה פשוטה יותר שאפשר להרכיב, Item, שמקבלת את האינדקס. (Id2196) - השם של LazyLayoutItemsProvider שונה ל-LazyLayoutItemProvider (I0638c)
- השם של
LazyLayoutItemsProvider.itemsCountשונה ל-itemCount(מזהה 409c) - נוספה אפשרות לשימוש במברשת ב-
TextStyleוב-SpanStyleכדי לצייר טקסט עם צביעת מעבר צבעים. (I53869, b/187839528) - המאפיינים
trimFirstLineTopו-trimLastLineBottomשלLineHeightBehaviorשונו לסוג enum יחיד:LineHeightTrim.LineHeightTrimיש 4 מצבים שמוגדרים על ידי שני ערכים בוליאניים:FirstLineTop, LastLineBottom, Both ו-None (Ifc6a5, b/181155707) נוסף
LineHeightBehaviorלTextStyleולParagraphStyle. LineHeightBehavior. הפקדים האלה קובעים אם גובה השורה יוחל על החלק העליון של השורה הראשונה ועל החלק התחתון של השורה האחרונה. התג גם מגדיר את יישור השורה במרחב שמוגדר על ידיTextStyle(lineHeight).לדוגמה, אפשר לקבל התנהגות דומה למה שמוגדר ב-CSS באמצעות
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).ההגדרות של
trimFirstLineTop, trimLastLineBottomפועלות בצורה תקינה רק אם הערך שלincludeFontPaddingהוא false. (I97332, b/181155707)נוסף משנה
imeNestedScroll()ניסיוני כדי שמפתחים יוכלו לשלוט ב-IME באמצעות גלילה. (I60759)
תיקוני באגים
- תוקנה רגרסיה שבה שדות טקסט לא הסתירו את המקלדת כשהם הוסרו מהחיבור בזמן שהם היו ממוקדים. (I7a410, b/230536793, b/225541817)
- תמיכה בשלוש נקודות כשגובה מוגבל ואין מקום לכל שורות הטקסט (Ie528c, b/168720622)
- החל מעכשיו,
BringIntoViewRequester.bringIntoViewתמיד תושעה עד שהבקשה תושלם או עד שהיא תופרע על ידי בקשה חדשה יותר שלא חופפת לה. בקשות חופפות יוכנסו לתור. (I43e7f, b/216790855) - מעכשיו, אם יש חפיפה מלאה בין מלבנים, רק הבקשה של המלבן הגדול יותר תכובד.
BringIntoViewRequester.bringIntoView(I34be7, b/216790855, b/184760918) - מופעל כברירת מחדל
includeFontPadding. אפשר להשבית אתincludeFontPaddingבאמצעות המאפייןTextStyle.platformTextStyle. בעתיד הקרוב נשנה את התנהגות ברירת המחדל, אבל עד אז השינוי הזה מאפשר לנו לשלב טוב יותר שיפורים בגובה השורה (aosp/2058653) ולפתור בעיות שלTextFieldחיתוך. (I01423, b/171394808) - הארגון
Modifier.bringIntoViewRequesterכבר לא משתמש ב-onGloballyPositioned. (I630f5)
External Contribution
-
MouseInjectionScope.scroll(delta = someDelta)עכשיו הפוך ב-Android אם גוללים אנכית (אם someDelta חיובי, הגלילה תהיה כלפי מטה) (Ifb697, b/224992993)
גרסה 1.2.0-alpha08
20 באפריל 2022
androidx.compose.foundation:foundation:1.2.0-alpha08 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha08 מופצים. גרסה 1.2.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הצגת כל המשקלים הזמינים לגופני מערכת ב-Android כשמשתמשים ב-
FontFamily.SansSerif. הפעולה הזו תשתמש בשמות גופנים חלופיים כמו sans-serif-medium באופן פנימי ב-API 21-28. זהו שינוי בהתנהגות, כי בעבר נתמכו רק משקלים 400 ו-700 ב-API 21-28. (I380fe, b/156048036, b/226441992) - הפרמטר Constraints מתקבל עכשיו ב-Paragraph וב-MultiParagraph. העברת הערך
Constraints.maxHeightלא עושה כלום כרגע, אבל בעתיד היא תאפשר לבצע חישובים מסוימים, כמו הצגת חלק מהטקסט בהתאם לגובה. (I6afee, b/168720622) -
SubcomposeSlotReusePolicy.getSlotsToRetain()מקבל עכשיו מחלקה מותאמת אישית שדומה ל-MutableSet, שלא מאפשרת להוסיף אליה פריטים חדשים. (Icd314) - האפשרות 'צריכה חלקית' (הורדה או מיקום) הוצאה משימוש ב-
PointerInputChange. אפשר להשתמש ב-consume()כדי להחיל את השינוי באופן מלא. אפשר להשתמש ב-isConsumedכדי לקבוע אם מישהו אחר כבר השתמש בשינוי הזה. -
PointerInputChange::copy()יוצר עכשיו תמיד עותק שטחי. המשמעות היא שעותקים שלPointerInputChangeינוצלו ברגע שאחד מהעותקים ינוצל. אם רוצים ליצורPointerInputChangeלא מאוגד, צריך להשתמש ב-constructor. (Ie6be4, b/225669674) - השקנו
LazyLayoutAPI חדש לניסויים. כך תוכלו ליצור רכיבים משלכם כמוLazyColumnשלLazyVerticalGrid. שימו לב שממשק ה-API נמצא בשלבים מוקדמים, ויכול להיות שהוא ישתנה בגרסאות עתידיות. (Iba2bc, b/166591700) - הפרמטר
AndroidFontמקבל עכשיו את הערךtypefaceLoaderכפרמטר של בנאי. (I2c971) - החלונית הנלווית של
WindowInsetsמציגה עכשיו את הנראות (אם היא מופיעה במסך, בלי קשר לחיתוך עם החלון) ואת הגודל שלה אם היא זמינה במכשיר אבל לא פעילה כרגע. (I65182, b/217770337)
גרסה 1.2.0-alpha07
6 באפריל 2022
androidx.compose.foundation:foundation:1.2.0-alpha07 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha07 מופצים. גרסה 1.2.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- נוסף
PinnableParentAPI שמאפשר לרכיבים צאצא של פריסות עצלות למנוע את הסרת הפריטים הנוכחיים שהורכבו (Ibbdd0, b/184670295) - ל-
LazyListLayoutInfoול-LazyGridLayoutInfoיש עכשיו שדותbeforeContentPaddingו-afterContentPadding(I3b628, b/200920410) - נוספה האפשרות
KeyboardType.Decimalכחלופה ל-Keyboard.Numberכדי לכלול בממשק IME מפריד עשרוני באופן ספציפי. (Iec4c8, b/209835363) - הוספה של מתאר גופן חדש Font(DeviceFontFamilyName) כדי לחפש באופן אופציונלי גופנים שהותקנו במערכת במהלך שרשראות של חזרה לגופן ברירת המחדל. (I30468, b/219754572)
-
PointerEventType.Scrollו-PointerEvent.scrollDeltaהם עכשיו ממשקי API יציבים (I574c5, b/225669674) - נוספה הגדרת תאימות זמנית ל-
includeFontPaddingב-TextStyle/ParagraphStyle. includeFontPadding. אפשר לשנות אותה באמצעותTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). זוהי אפשרות הגדרה זמנית להפעלת ההעברה, והיא תוסר בהמשך. (If47be, b/171394808) - בוצע עדכון של
FontFamily.Resolverכדי לשלב את הגדרת הנגישות של טקסט מודגש בכל המערכת (I6c1e7) - מאפיין התוסף
consumeWindowInsetsשלComposeViewמאפשר למפתחים להשבית את השימוש ב-WindowInsets של Android. כך כלComposeViewsבהיררכיה יכול להחילWindowInsetsבלי להפריע אחד לשני. (I0ef08, b/220943142)
גרסה 1.2.0-alpha06
23 במרץ 2022
androidx.compose.foundation:foundation:1.2.0-alpha06 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha06 מופצים. גרסה 1.2.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פעולת סמנטיקה
RequestFocusכדי לבקש התמקדות ביעד שאפשר להתמקד בו. (I17b71) - החשבון
FocusOrderמוזג עכשיו עם החשבוןFocusProperties, ולחשבוןfocusProperties()יש עכשיו את כל היכולות שלfocusOrder(). התכונותFocusOrderו-focusOrder()הוצאו משימוש. focusOrder()שכוללfocusRequesterצריך להיות מוחלף בשינויfocusRequester()בשילוב עםfocusProperties(). כך אפשר להפריד בצורה טובה יותר בין התפקידים של משני המשתנים. (I601b7) - הוספנו את
WindowInsets.asPaddingValues(Density)כדי לאפשר למפתחים לבצע את ההמרה בלי להיכנס למצב כתיבה. (I94c35) - עדכון של ניתוח התוכן של נכסי וקטורים שניתנים לציור כדי לתמוך בשיקוף אוטומטי, במטרה להפוך את התוכן של
VectorPainterאם כיוון הפריסה הנוכחי הוא מימין לשמאל. (I79cd9, b/185760237)
תיקוני באגים
- אם משנים את הגודל של אזור הגלילה, ועכשיו הרכיב שמוצג במרכז לא גלוי, שינויי הגלילה (
Modifier.verticalScroll(),Modifier.horizontalScroll()ו-Modifier.scrollable()) יגללו כדי שהרכיב שמוצג במרכז יישאר גלוי. - כששדות טקסט נמצאים בתוך רכיב שניתן לגלילה ולא נטען באופן עצל, וכשמצב הקלט הרך הוא
ADJUST_RESIZE, הם יישארו מעל המקלדת כשהם במצב ממוקד והמקלדת מוצגת. (I4a485, b/190539358, b/192043120, b/216842427)
גרסה 1.2.0-alpha05
9 במרץ 2022
androidx.compose.foundation:foundation:1.2.0-alpha05 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha05 מופצים. גרסה 1.2.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- המדדים
LazyVerticalGridוLazyHorizontalGridיציבים עכשיו. (I307c0) - השדה
LazyGridItemInfo.Unknownהוחלף בשדות נפרדיםLazyGridItemInfo.UnknownRowו-LazyGridItemInfo.UnknownColumn(I56d51) -
LazyVerticalGrid/LazyHorizontalGridוכל ממשקי ה-API שקשורים אליהם הועברו לחבילת המשנה.grid. צריך לעדכן את הייבוא מ-androidx.compose.foundation.lazyל-androidx.compose.foundation.lazy.grid. (I2d446, b/219942574) - ההגדרה 'טקסט:
includeFontPadding' מושבתת עכשיו כברירת מחדל. בעיות החיתוך כתוצאה משימוש ב-includeFontPadding=falseמטופלות, ולא אמור להתרחש חיתוך בסקריפטים ארוכים. (I31c84, b/171394808) - ממשק Measured חושף עכשיו את המאפיין parentData (I3313f)
- הוספנו תכונה ניסיונית
Modifier.onFocusedBoundsChangedשמאפשרת לראות את הגבולות של רכיבים שניתן להתמקד בהם. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - נוסף LazyHorizontalGrid. (I61ae7, b/191238807)
- הוספנו API חדש,
LazyVerticalGrid, להגדרת גדלים של צירים חוצים (I17723) - נוסף משנה FocusGroup (I64bc0, b/213508274, b/184670295)
תיקוני באגים
WindowInsets.toString()יוצגו עכשיו הערכים הנכונים. (I1585d)
External Contribution
- העדכון בוצע לשימוש ב-Kotlinx coroutines 1.6.0 (I3366d)
גרסה 1.2.0-alpha04
23 בפברואר 2022
androidx.compose.foundation:foundation:1.2.0-alpha04 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha04 מופצים. גרסה 1.2.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
BringIntoViewRespondersכבר לא צריכים להעביר בקשות באופן ידני למשיבים ברמת ההורה, אלא נדרשים להחזיר מיד את המלבן שהם רוצים שההורה שלהם יציג. (I8e66a)- תמיכה בטעינה אסינכרונית של גופנים בטקסט (I77057, b/214587005)
- מעכשיו יש תמיכה ב-
LazyVerticalGridב-line breakingלפני פריטים עם טווח שלא מתאים לשורה הנוכחית. (I05c40, b/207462103) - השם של
excludeFromSystemGesturesשונה ל-systemGesturesExclusion(I19526) -
LazyVerticalGridתומך עכשיו ב-reverseLayout. (I6d7d7, b/215572963, b/211753558) - מוסיפים את השיטה
WindowInsets.only()כדי לאפשר למפתחים לכלול רק מאפיינים מ-WindowInsets. (I14c94, b/217768486) נוספו הפונקציות
ComposableTarget,ComposableTargetMarkerו-ComposableOpenTargetשמאפשרות דיווח בזמן קומפילציה על מצבים שבהם פונקציה ניתנת להגדרה מופעלת בטירגוט של כלי שלא נועד לשימוש בה.ברוב המקרים, אפשר להסיק את ההערות האלה באמצעות התוסף של מהדר Compose, ולכן השימוש בהערות האלה ישירות צריך להיות נדיר . המקרים שלא ניתן להסיק לגביהם כוללים יצירה ושימוש בפונקציית החלה בהתאמה אישית, פונקציות מופשטות שניתנות להרכבה (כמו שיטות ממשק), שדות או משתנים גלובליים שהם ביטויי למדה שניתנים להרכבה (משתנים מקומיים ופרמטרים נגזרים), או כשמשתמשים ב-
ComposeNodeאו בפונקציות קומפוזיציה קשורות.במקרה של פונקציות מותאמות אישית, הפונקציות המורכבות שקוראות ל-
ComposeNodeאו ל-ReusableComposeNodeצריכות להוסיף הערהCompoableTargetלפונקציה ולכל סוגי הפרמטרים של lambda שניתנים להרכבה. עם זאת, מומלץ ליצור הערה עם התגComposableTargetMarker, ואז להשתמש בהערה המסומנת במקום בתגComposableTargetישירות. הערה שאפשר להרכיב ומסומנת ב-ComposableTargetMarkerשווה ל-ComposbleTargetעם השם המלא של מחלקת המאפיינים כפרמטר של ה-applier. דוגמה לשימוש ב-ComposableTargetMarkerמופיעה במאמרanroidx.compose.ui.UiComposable. (I38f11)
תיקוני באגים
- עכשיו אפשר להעביר היסטים שליליים של גלילה אל
LazyGridState.scrollToItem()ואלLazyGridState.animateScrollToItem(). (I025c6, b/211753558) - תמיכה בטעינת גופנים אסינכרונית עבור TextField. (Icc4bf, b/214587005)
גרסה 1.2.0-alpha03
9 בפברואר 2022
androidx.compose.foundation:foundation:1.2.0-alpha03 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha03 מופצים. גרסה 1.2.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- השיטות
notifyFocusedRectב-TextInputSessionוב-TextInputServiceיצאו משימוש ולא יופעלו. במקום זאת, אתם צריכים להשתמש ב-BringIntoViewRequester. (Ia4302, b/192043120, b/216842427, b/178211874) - הפעלנו אנימציות לפריטים של רשתות עצלות באמצעות Modifier.animateItemPlacement(). (Ib6621, b/211753218)
BringIntoViewRequesterמעביר עכשיו בקשות אל תצוגת Android של המארח. (Ia7a51)- האפליקציה
FontFamilyResolverזמינה עכשיו דרךLocalFontFamilyResolver.current- נוספו
createFontFamilyResolver(context)ו-createFontFamilyResolver(context, coroutineScope)כדי ליצור פונקציות חדשות לפתרון בעיות של FontFamily מחוץ לשימוש ב-Compose. - התכונות Paragraph ו-MultiParagraph מקבלות עכשיו
FontFamily.Resolver - התג
TextLayoutResult.layoutInput.fontFamilyResolverמכיל עכשיו את המקודד שמשמש לפריסה הזו. התגTextLayoutResult.layoutInput.resourceLoaderהוצא משימוש כי הוא כבר לא בשימוש. (Id5a45, b/174162090)
- נוספו
- נוסף
AndroidFont, API חדש ברמה נמוכה שמאפשר לספק סוגים חדשים של תיאורי משאבי גופנים ב-Android. לדוגמה, טעינת גופנים מקצה עורפי ספציפי לאפליקציה, איתור אופציונלי של גופנים שהותקנו מראש במכשיר או טעינת גופן ממקור שלא מסופק על ידי מפעלי הגופנים הנוכחיים.- הרחבת
Font.ResourceLoadedAPI כדי לתמוך בטעינת גופנים אופציונלית ואסינכרונית. לא מומלץ למפתחי אפליקציות להשתמש ישירות ב-API הזה. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמר בנושא AndroidFont. - פונקציית התוסף
Font.AndroidResourceLoaderמאפשרת ליצורFont.ResourceLoaderכשלא מדובר בהרכבה. - נוסף פרמטר
loadingStrategyלגופנים מבוססי-משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים להורדה. (Ie5aea, b/174162090)
- הרחבת
- ה-constructor של
Typeface(FontFamily)הוצא משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. בגופנים שאפשר להוריד, הקריאה הזו עשויה להיחסם למשך 10 שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload- האפשרות
fontResource(FontFamily): Typefaceהוצאה משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. במקום זאת, אפשר להשתמש ב-FontFamilyResolver.preload(If8e7c, b/174162090)
- האפשרות
- מעכשיו אפשר לציין את סוג התוכן של הפריטים בפונקציות
LazyVerticalGrid- item/items ב-LazyGridScope. הפונקציות האלה מקבלות עכשיו פרמטר כזה. המידע הזה עוזר ללוגיקה של שימוש חוזר בהרכב הפריט לפעול בצורה יעילה יותר, ולהשתמש מחדש בתוכן רק בין פריטים מאותו סוג. (I7b355, b/215372836) - למאפיינים
LazyListLayoutInfoו-LazyGridLayoutInfoיש עכשיו מאפיינים חדשים:viewportSize, orientation, reverseLayout(Ifc8ed, b/200920410) - עכשיו אפשר לציין את סוג התוכן של הפריטים בפונקציות LazyColumn/LazyRow – item/items ב-LazyListScope. הפונקציות האלה מקבלות עכשיו פרמטר כזה. המידע הזה עוזר ללוגיקה של שימוש חוזר בהרכב הפריט לפעול בצורה יעילה יותר, ולהשתמש מחדש בתוכן רק בין פריטים מאותו סוג. (I26506)
- ה-constructor של
SubcomposeLayoutStateשמקבלmaxSlotsToRetainForReuseהוצא משימוש. במקום זאת, יש קונסטרוקטור חדש שמקבלSubcomposeSlotReusePolicy– ממשק חדש שמאפשר שליטה יותר מדויקת בחריצים שצריך לשמור לשימוש חוזר בעתיד. (I52c4d) - מוסיף משנים ל-WindowInsets, גם למרווח הפנימי וגם לגודל. כך חלק מהתוכן יכול להיכנס לאזור השוליים הפנימיים, אבל התוכן העיקרי יישאר מחוץ לאזור הזה. לדוגמה, אפשר להשתמש ב-windowInsetsPadding כדי להוסיף ריווח לאזור התוכן, וכך להימנע מאזורים שעשויים להיות מכוסים באופן מלא או חלקי. (Id0395, b/213942085)
תיקוני באגים
- כששדה טקסט נמצא בפוקוס והמקלדת מוצגת, הוא יישאר מעל המקלדת אם מצב הקלט הרך הוא
ADJUST_PAN. (I8eaeb, b/190539358, b/192043120) - ב-Desktop נעשה שימוש בהרכבה מקומית עבור
FontFamily.Resolver- הגרסה למחשב של
FontLoaderהוצאה משימוש - מפעל חדש של
createFontFamilyResolverבמחשב (I6bbbb, b/174162090)
- הגרסה למחשב של
- סוג הקלט של המקלדת הווירטואלית לא מהבהב יותר כשמעבירים את המיקוד בין שדות טקסט. (I1bf50, b/187746439)
- כשמוצגת ידית הסמן, כבר לא צריך להקיש על מקש החזרה כדי להזיז את הסמן בשדות טקסט. (Ideb4b, b/205726883)
- התנהגות הזכוכית המגדלת לבחירת טקסט שופרה כדי שתתאים לזכוכית המגדלת של הפלטפורמה. (Idd918, b/206833278)
גרסה 1.2.0-alpha02
26 בינואר 2022
androidx.compose.foundation:foundation:1.2.0-alpha02 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha02 מופצים. גרסה 1.2.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את
NonRestartableComposableלשיטות שהן עומס יתר של שיטות קיימות ללא לוגיקה מורכבת. הפעולה הזו מצמצמת את הבדיקות של הממויזציה (equals) שנוצרות על ידי הקומפיילר לכל הפרמטרים שחוזרים על עצמם בפונקציה הפנימית שמופעלת. (I90490) - נוספו
excludeFromSystemGestureמשנים לגישה קלה אלsetSystemGestureExclusionRects(I46f07) ב-Android
תיקוני באגים
- התנהגות הזכוכית המגדלת לבחירת טקסט שופרה כדי שתתאים לזכוכית המגדלת של הפלטפורמה. (Idd918, b/206833278)
-
LazyColumn, LazyRow, Modifier.verticalScrollומאגרי תגים אחרים שמשתמשים ב-Modifier.scrollableתומכים עכשיו בגלילה באמצעות גלגל העכבר. (I2b5e1, b/198214718)
גרסה 1.2.0-alpha01
12 בינואר 2022
androidx.compose.foundation:foundation:1.2.0-alpha01 וגם androidx.compose.foundation:foundation-layout:1.2.0-alpha01 מופצים. גרסה 1.2.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הפרמטר החדש
userScrollEnabledנוסף ל-LazyColumn, ל-LazyRowול-LazyVerticalGridכדי לאפשר למשתמשים להשבית באופן זמני או קבוע את הגלילה שהמשתמש יזם באמצעות מחוות מגע או פעולות נגישות. עדיין תהיה אפשרות לגלול באופן פרוגרמטי באמצעות השיטות בסטטוס. (I7eae9, b/201150093) - הוספת קריאה חוזרת (callback) לשינוי של הגדלת המסך.
onSizeChanged(I6879f) - ווידג'ט הזכוכית המגדלת מוצג עכשיו כשגוררים את נקודות האחיזה של הבחירה ב-
SelectionContainer. (I30b38, b/139320979)
תיקוני באגים
- תוקנה הבעיה שבה נקודת האחיזה של הסמן
TextFieldלא מוסתרת כשמגללים אותה מחוץ לתצוגה. (I14552, b/208883748)
עדכונים של תלות
- עכשיו תלוי ב-Kotlin
1.6.10.
גרסה 1.1
גרסה 1.1.1
23 בפברואר 2022
androidx.compose.foundation:foundation:1.1.1 וגם androidx.compose.foundation:foundation-layout:1.1.1 מופצים. גרסה 1.1.1 מכילה את השמירות האלה.
תיקוני באגים
- תיקון
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.foundation:foundation:1.1.0 וגם androidx.compose.foundation:foundation-layout:1.1.0 מופצים. גרסה 1.1.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.0.0
- תמיכה יציבה באפקט הגלילה העודפת ב-Android 12
- שיפורים בגודל משטח המגע
- שימו לב: ברכיבי Material ב-Compose 1.0, שטח הפריסה יורחב כדי לעמוד בהנחיות הנגישות של Material בנוגע לגודל משטח המגע. לדוגמה, משטח המגע של לחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרתם שהגודל של הלחצן יהיה קטן יותר. כך, התנהגות Compose Material זהה להתנהגות של רכיבי Material Design, ומתקבלת התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשתצרו את ממשק המשתמש באמצעות רכיבי Compose Material, הדרישות המינימליות לנגישות של משטחי מגע יתקיימו.
- תמיכה יציבה בפס ניווט
- העברנו מספר ממשקי API שהיו בשלב הניסוי לגרסה יציבה
- תמיכה בגרסאות חדשות יותר של Kotlin
גרסה 1.1.0-rc03
26 בינואר 2022
androidx.compose.foundation:foundation:1.1.0-rc03 וגם androidx.compose.foundation:foundation-layout:1.1.0-rc03 מופצים. גרסה 1.1.0-rc03 מכילה את השמירות האלה.
תיקוני באגים
- עדכון לתמיכה ב-Compose Material 1.1.0-rc03
גרסה 1.1.0-rc01
15 בדצמבר 2021
androidx.compose.foundation:foundation:1.1.0-rc01 וגם androidx.compose.foundation:foundation-layout:1.1.0-rc01 מופצים. גרסה 1.1.0-rc01 מכילה את השמירות האלה.
תיקוני באגים
- עכשיו אפשר להעביר היסטים שליליים של גלילה אל
LazyListState.scrollToItem()ואלLazyListState.animateScrollToItem(). (Iceb90, b/184252837) - תוקן באג שגרם לכך שפעולות גלילה של נגישות לא הופיעו (I7cbfb)
גרסה 1.1.0-beta04
1 בדצמבר 2021
androidx.compose.foundation:foundation:1.1.0-beta04 וגם androidx.compose.foundation:foundation-layout:1.1.0-beta04 מופצים. גרסה 1.1.0-beta04 מכילה את השמירות האלה.
תכונות חדשות
- עודכן כך שיהיה תואם ל-Kotlin
1.6.0
שינויים ב-API
- בוצע ניקוי של אפשרות ה-null ב-
androidx.core.view(I7078a, b/204917439) - נוספו ממשקי API ניסיוניים שמאפשרים להשתמש ב-PointerInputchange כשלם או לבדוק אם נעשה בו שימוש או לא. (I2e59d)
- הצגת ווידג'ט של זכוכית מגדלת כשגוררים את הסמן או את נקודות האחיזה לבחירה בתוך שדות טקסט. (I5391e, b/203781358)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שנקודות האחיזה של הטקסט לא זזו כשחלו שינויים במידת החשיפה של IME. (I25f2e)
גרסה 1.1.0-beta03
17 בנובמבר 2021
androidx.compose.foundation:foundation:1.1.0-beta03 וגם androidx.compose.foundation:foundation-layout:1.1.0-beta03 מופצים. גרסה 1.1.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- נוספה תמיכה בפריסות אופקיות ל-LazyVerticalGrid. (I7e2fa, b/176758183)
נוספה יכולת ניסיונית להנפשת מיקומי פריטים ברשימות Lazy. יש משנה חדש שזמין ב-LazyItemScope שנקרא
Modifier.animateItemPlacement(). דוגמה לשימוש:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }- כשמספקים מפתח באמצעות
LazyListScope.itemאוLazyListScope.items, משתמשים במגדיר הזה כדי להפעיל אנימציות של שינוי סדר הפריטים. בנוסף לשינוי הסדר של הפריטים, גם כל שינוי אחר במיקום שנגרם מאירועים כמו שינויים בסידור או ביישור ילווה באנימציה. (I59e7b, b/150812265)
- כשמספקים מפתח באמצעות
גרסה 1.1.0-beta02
3 בנובמבר 2021
androidx.compose.foundation:foundation:1.1.0-beta02 וגם androidx.compose.foundation:foundation-layout:1.1.0-beta02 מופצים. גרסה 1.1.0-beta02 מכילה את השמירות האלה.
תיקוני באגים
- האפקטים של הגלים וסימנים אחרים יוצגו עכשיו באיחור רק אם הם נמצאים בתוך מאגר
Modifier.scrollable(), במקום תמיד באיחור באירוע של ירידה. (Ibefe0, b/203141462) - נוסף BringIntoView API ניסיוני שמאפשר לשלוח בקשה להורים כדי שהם יגללו להצגת פריט (Ib918d, b/195353459)
External Contribution
- נוסף בתאריך
Modifier.pointerHoverIcon(I95f01)
גרסה 1.1.0-beta01
27 באוקטובר 2021
androidx.compose.foundation:foundation:1.1.0-beta01 וגם androidx.compose.foundation:foundation-layout:1.1.0-beta01 מופצים. גרסה 1.1.0-beta01 מכילה את השמירות האלה.
תיקוני באגים
- נוסף BringIntoView API ניסיוני שמאפשר לשלוח בקשה להורים כדי שהם יגללו להצגת פריט (Ib918d, b/195353459)
גרסה 1.1.0-alpha06
13 באוקטובר 2021
androidx.compose.foundation:foundation:1.1.0-alpha06 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha06 מופצים. גרסה 1.1.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- נוספה פונקציית עומס יתר (overload) ל-Layout ללא פרמטרים של ילדים, עם יעילות משופרת (Ib0d9a)
- הפונקציה
SemanticsNodeInteraction.performSemanticsActionמחזירה עכשיו אתSemanticsNodeInteractionשעליו הופעלה הפונקציה. (I9e5db) - נוסף
performScrollToNode(matcher: SemanticsMatcher)שגורם לגלילה של מאגר תוכן שניתן לגלילה אל התוכן שתואם ל-matcher שצוין. (Ic1cb8)
גרסה 1.1.0-alpha05
29 בספטמבר 2021
androidx.compose.foundation:foundation:1.1.0-alpha05 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha05 מופצים. גרסה 1.1.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו מצביעים היסטוריים ניסיוניים ל-PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
תיקוני באגים
- תוקנה תמיכת הנגישות ברכיבים שניתן לגלול בהם (גם כאלה שנטענים באופן עצלני וגם כאלה שלא) בהקשר של גלילה (I6cdb0)
גרסה 1.1.0-alpha04
15 בספטמבר 2021
androidx.compose.foundation:foundation:1.1.0-alpha04 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha04 מופצים. גרסה 1.1.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- הוצאו משימוש
performGestureו-GestureScope, שהוחלפו ב-performTouchInputוב-TouchInjectionScope. (Ia5f3f, b/190493367) - הוספנו את
touchBoundsInRootאלSemanticsNodeשכולל את הגודל המינימלי של משטח המגע, כדי שמפתחים יוכלו לוודא שמשטחי המגע עומדים בדרישות המינימליות של נגישות. (I2e14b, b/197751214)
תיקוני באגים
- נוספה תמיכה בגלילה עם אפקט מתיחה במכשירי Android 12. (Iccf3c, b/171682480)
גרסה 1.1.0-alpha03
1 בספטמבר 2021
androidx.compose.foundation:foundation:1.1.0-alpha03 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha03 מופצים. גרסה 1.1.0-alpha03 מכילה את השמירות האלה.
תכונות חדשות
- Compose
1.1.0-alpha03עודכן כך שיהיה תלוי ב-Kotlin1.5.30. (I74545)
שינויים ב-API
- נוסף אפקט זוהר לגלילה. נוסף API חדש לניסוי OverScrollConfiguration, שמאפשר להגדיר את האפקט החזותי של גלילה מעבר לקצה. כדי להשבית את אפקט הגלילה העודפת, צריך לספק ערך null. (I0c304, b/171682480)
- ל-AwaitPointerEventScope יש עכשיו withTimeout() ו-withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- נוספה שיטת בדיקה כדי לקבל את הגבולות של האזור החתוך. (I6b28e)
- הוספנו גודל מינימלי של משטח מגע ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע, כדי להבטיח נגישות. (Ie861c)
גרסה 1.1.0-alpha02
18 באוגוסט 2021
androidx.compose.foundation:foundation:1.1.0-alpha02 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha02 מופצים. גרסה 1.1.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- נוספו גרסאות של DpSize ל-
Modifier.sizeול-requiredSize(I3fc7e, b/194219828)
גרסה 1.1.0-alpha01
4 באוגוסט 2021
androidx.compose.foundation:foundation:1.1.0-alpha01 וגם androidx.compose.foundation:foundation-layout:1.1.0-alpha01 מופצים. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- עדכון של שיטת
DrawScope#drawImageשצורכת מקור ומלבנים של יעד כדי לצרוך פרמטר אופציונלי של FilterQuality. האפשרות הזו שימושית לאומנות פיקסלים שמיועדת להיות מפוקסלת כשמגדילים אותה. בוצע עדכון של BitmapPainter + Image composable כך שיכללו גם פרמטר אופציונלי של FilterQuality (Ie4fb0, b/180311607) - עכשיו, כשלוחצים על לחצן החזרה, הבחירה ב-TextField מתבטלת, כמו ב-EditText ב-Android. (I3ca16, b/174173645)
- מוסיפים את הכינוי של הסמן. (I07a82, b/173016579)
תיקוני באגים
- הגלילה באמצעות פעולות סמנטיות ברשימות עצלות וברכיבי גלילה רגילים מונפשת עכשיו (Id9066, b/190742024)
External Contribution
-
LazyVerticalGridמקבלת עכשיו פרמטרים של סידור אופקי וגם אנכי. (If9c92)
גירסה 1.0
גרסה 1.0.5
3 בנובמבר 2021
androidx.compose.foundation:foundation:1.0.5 וגם androidx.compose.foundation:foundation-layout:1.0.5 מופצים. גרסה 1.0.5 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה קריסה במעקב אחר מופעים של derivedStateOf. (aosp/1792247)
גרסה 1.0.4
13 באוקטובר 2021
androidx.compose.foundation:foundation:1.0.4 וגם androidx.compose.foundation:foundation-layout:1.0.4 מופצים. גרסה 1.0.4 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.31
גרסה 1.0.3
29 בספטמבר 2021
androidx.compose.foundation:foundation:1.0.3 וגם androidx.compose.foundation:foundation-layout:1.0.3 מופצים. גרסה 1.0.3 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.30
גרסה 1.0.2
1 בספטמבר 2021
androidx.compose.foundation:foundation:1.0.2 וגם androidx.compose.foundation:foundation-layout:1.0.2 מופצים. גרסה 1.0.2 מכילה את השמירות האלה.
העדכון כולל תמיכה בגרסת Compose 1.0.2. Compose 1.0.2 עדיין תואם ל-Kotlin 1.5.21.
גרסה 1.0.1
4 באוגוסט 2021
androidx.compose.foundation:foundation:1.0.1 וגם androidx.compose.foundation:foundation-layout:1.0.1 מופצים. גרסה 1.0.1 מכילה את השמירות האלה.
עדכונים של תלות
- העדכון כולל תלות ב-Kotlin
1.5.21.
גרסה 1.0.0
28 ביולי 2021
androidx.compose.foundation:foundation:1.0.0 וגם androidx.compose.foundation:foundation-layout:1.0.0 מופצים. גרסה 1.0.0 מכילה את השמירות האלה.
התכונות העיקריות של גרסה 1.0.0
זו הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose.
בעיות מוכרות
אם אתם משתמשים ב-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 ל-24 ומעלה בקובץ
build.gradle. הבעיה הזו תיפתר בגרסה הבאה של Android Studio Bumblebee וב-AGP7.1. (b/194289155)
גרסה 1.0.0-rc02
14 ביולי 2021
androidx.compose.foundation:foundation:1.0.0-rc02 וגם androidx.compose.foundation:foundation-layout:1.0.0-rc02 מופצים. גרסה 1.0.0-rc02 מכילה את השמירות האלה.
- עודכן עיבוד הגבולות של צורות גנריות כדי לפתור בעיות בנתיבים שהוגדרו עם מידות קבועות. (aosp/1748871, b/191817116)
גרסה 1.0.0-rc01
1 ביולי 2021
androidx.compose.foundation:foundation:1.0.0-rc01 וגם androidx.compose.foundation:foundation-layout:1.0.0-rc01 מופצים. גרסה 1.0.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- Canvas תומך עכשיו בפרמטר contentDescription לצורך נגישות. (Ib547c)
תיקוני באגים
- השבתה של לחצן, כרטיס, תיבות סימון או
Modifier.clickable(enabled=false)תחסום את הקליקים ותמנע את העברתם לרכיב ההורה. (Ic2c3b, b/183908811)
גרסה 1.0.0-beta09
16 ביוני 2021
androidx.compose.foundation:foundation:1.0.0-beta09 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta09 מופצים. גרסה 1.0.0-beta09 מכילה את השמירות האלה.
שינויים ב-API
- בוצעה הסרה של
ManualFrameClock. אם אתם צריכים לשלוט באנימציות, עדיף להשתמש ב-composeTestRule.mainClock. (I3c3e8, b/189951065) - שינוי enum Role ו-LiveRegionMode למחלקות מוטבעות עם בנאי פרטי (Id1890)
- המאפיין KeyboardCapitalization מומר למחלקה מוטבעת. (Id5a1c)
- המאפיין TextOverflow משתנה למחלקה מוטבעת. (I433af)
תיקוני באגים
- עכשיו, כשמציינים את המפתחות הייחודיים לפריטים של LazyColumn/Row, מיקום הגלילה נשמר על סמך המפתח. כלומר, אם מוסיפים או מסירים פריטים לפני הפריט הנוכחי שגלוי, הפריט עם המפתח הנתון יישאר הפריט הראשון שגלוי. (Id263f, b/184257857)
- הקבועים העיקריים הם @ExperimentalComposeUiApi בשלב הזה. קוד שמשתמש בספרייה יכול להצהיר על קבועים פרטיים לפני שהספרייה עוברת לייצוב. (Ia5d48)
- נוספה IdlingStrategy ל-AndroidComposeTestRule שאפשר להשתמש בה במסגרות בדיקה כדי להתקין מנגנון חלופי להמתנה או להשגת מצב שקט. כדאי להשתמש ב-
AndroidComposeTestRule.setIdlingStrategyFactory()לפני תחילת הבדיקה כדי להתקין את האסטרטגיה שלכם. (I608fa)
נוספו כללי פרופיל
בגרסה הזו נוספו כללי פרופיל למודולים הבאים של כתיבת הודעות (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
מהם כללי פרופיל?
כללי הפרופיל של ספרייה מצוינים בקובץ טקסט
baseline-prof.txtשנמצא בספרייהsrc/mainאו בספרייה מקבילה. כל שורה בקובץ מציינת כלל, ובמקרה הזה כלל הוא תבנית להתאמה לשיטות או למחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לבני אדם, שמשמש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... הכללים האלה מופיעים באחת משתי צורות, כדי להתמקד בשיטות או במחלקות.כלל של method יכלול את התבנית הבאה:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>כלל מחלקה יכלול את התבנית הבאה:
<CLASS_DESCRIPTOR>כאן
<FLAGS>הוא אחד או יותר מהתוויםH,Sו-Pכדי לציין אם לסמן את השיטה הזו כ'פופולרית', 'הפעלה' או 'אחרי הפעלה'.השדה
<CLASS_DESCRIPTOR>הוא המתאר של המחלקה שאליה משתייכת המתודה המטורגטת. לדוגמה, למחלקהandroidx.compose.runtime.SlotTableיהיה דסקריפטור שלLandroidx/compose/runtime/SlotTable;.
<METHOD_SIGNATURE>הוא החתימה של ה-method, והוא כולל את השם, סוגי הפרמטרים וסוגי הערכים המוחזרים של ה-method. לדוגמה, לשיטהfun isPlaced(): Booleanב-LayoutNodeיש חתימהisPlaced()Z.התבניות האלה יכולות לכלול תווים כלליים (
**,*ו-?) כדי שכלל אחד יכלול כמה שיטות או מחלקות.
מה עושים הכללים?
שיטה עם הדגל
Hמציינת שהשיטה הזו היא שיטה 'פעילה' וצריך לקמפל אותה מראש.שיטה עם הדגל
Sמציינת שהיא שיטה שמופעלת בהפעלה, וצריך לקמפל אותה מראש כדי להימנע מעלות הקומפילציה ומהפרשנות של השיטה בזמן ההפעלה.מתודה עם הסימון
Pהיא מתודה שמופעלת אחרי ההפעלה.אם מחלקה מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה וצריך להקצות לה מראש מקום ב-heap כדי להימנע מעלות הטעינה של המחלקה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בפרטי מידע שנוצרו בתהליך של פיתוח (Artifact) מסוג AAR. כשיוצרים אפליקציה שכוללת את הארטיפקטים האלה, הכללים האלה משולבים יחד, והכללים המשולבים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לאפליקציה. לאחר מכן, מערכת ART יכולה להשתמש בפרופיל הזה כשהאפליקציה מותקנת במכשירים כדי לבצע קומפילציה מראש של קבוצת משנה ספציפית של האפליקציה, וכך לשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. הערה: הפעולה הזו לא תשפיע על אפליקציות שאפשר לבצע בהן ניפוי באגים.
גרסה 1.0.0-beta08
2 ביוני 2021
androidx.compose.foundation:foundation:1.0.0-beta08 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta08 מופצים. גרסה 1.0.0-beta08 מכילה את השמירות האלה.
שינויים ב-API
- ה-enum NestedScrollSource הוחלף במחלקה מוטמעת. (Ie321b, b/187055290)
- שינינו את השימוש בסוגי enum למחלקות מוטבעות כדי למנוע בעיות בשימוש בהצהרות when מקיפות כשמוסיפים ערכים חדשים של enum. (I2b5eb)
- נוסף פסק זמן להקשה על רכיבים שאפשר ללחוץ עליהם או להפעיל/להשבית אותם, כדי למנוע הצגת אפקט אדווה במהלך גלילה או גרירה (Ia2704, b/168524931)
- המאפיינים הסמנטיים ContentDescription ו-Text הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API משופרים לבדיקה כדי להשתמש בשינויים האלה (Ica6bf, b/184825850)
- האפשרות
Modifier.focusModifier()הוצאה משימוש והוחלפה באפשרותModifier.focusTarget()(I6c860) - ה-enum KeyboardType מוחלף במחלקה מוטבעת. (I73045, b/187055290)
- הוחלף enum
FocusStateבממשקFocusState(Iccc1a, b/187055290) - ה-enum ImeAction מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
- הפונקציות
AnnotatedString.withAnnotationהן עכשיו ExperimentalTextApi במקום ExperimentalComposeApi. (I0cd0a)- הבונה של TextUnit עם TextUnitType הוא עכשיו ExperimentalTextApi במקום ExperimentalComposeApi.
- הערך של PaddingValues הוא עכשיו
@Stableולא@Immutable(I88c50)
תיקוני באגים
- תוקנו קריסות של לחיצה ארוכה על אזור ריק בטקסט לא ריק. (I33ab5, b/187437299)
- הצגת סרגל הכלים אחרי בחירת הכול (I495d9, b/185919613)
- תוקנה בעיה שבה קונטיינרים עם אפשרות גלילה חותכים את הרכיבים שלהם בציר הניצב. היה קל לשחזר את הבעיה אם השתמשתם ב-LazyRow עם פריטי Card. עכשיו הצל לא ייחתך. (Icb635, b/186318448)
- תוקנה בעיה שבה גלים או אינדיקציה אחרת נתקעים לפעמים בלחיצה ארוכה כשמשתמשים ב-Modifier.combinedClickable (I2298c, b/186223077)
- החל מעכשיו, הרכיבים
detectDragGesures, detectVerticalGesturesו-detectHorizontalGesturesיבצעו את השינוי במיקום באופן אוטומטי, ואין צורך לקרוא ל-change.consumePositionChange בפונקציות הקריאה החוזרת onDrag (I42fc4, b/185096350, b/187320697) -
Modifier.onGloballyPositioned()השתנה כך שהוא מדווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591)
גרסה 1.0.0-beta07
18 במאי 2021
androidx.compose.foundation:foundation:1.0.0-beta07 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta07 מופצים. גרסה 1.0.0-beta07 מכילה את השמירות האלה.
שינויים ב-API
- הוצגה לוגיקה של אחזור מראש של הפריט הגלוי הבא עבור LazyColumn/Row (I8a4bc, b/184940225)
- נוספה ידית לבחירת קליפים (Iff80d, b/183408447)
תיקוני באגים
- הקומפוננטות LazyColumn/Row ישמרו עכשיו עד 2 פריטים שהיו גלויים בעבר כפעילים (לא יבוטלו), גם אם הם כבר לא גלויים בגלל גלילה. כך הרכיב יכול לעשות שימוש חוזר בתתי-הקומפוזיציות הפעילות כשצריך ליצור פריט חדש, וכך לשפר את ביצועי הגלילה. (Ie5555)
- מסירים את paintBackground. (I38660)
- ציור רקע של בחירה באמצעות DrawScope. (I73c61, b/186674472)
- תוקנה רגרסיה בגרסה beta06 שמשפיעה על Row/Column באמצעות סידורים של spacedBy כדי לפרוס ילדים משוקללים. (Ifaf8c, b/187326588)
גרסה 1.0.0-beta06
5 במאי 2021
androidx.compose.foundation:foundation:1.0.0-beta06 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta06 מופצים. גרסה 1.0.0-beta06 מכילה את השמירות האלה.
שינויים ב-API
- פתרון קונפליקט באמצעות תנועת ניווט (I1145e)
- נוספו ממשקי API של נגישות CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן אוסף ופריטים בו לשירותי נגישות (Id54ef, b/180479017)
- נוספה האפשרות
SemanticsActions.ScrollToIndexלגלילה ברשימה עם פריטים ממוספרים לפריט עם מספר מסוים, וSemanticsProperties.IndexForKeyלקבלת המספר של פריט ברשימה עם פריטים ממוספרים. שתי הפעולות מיושמות על ידי LazyList.- נוספו הפונקציות
SemanticsNodeInteraction.performScrollToIndexשגורמת לגלילה ברשימה עד לאינדקס שצוין, ו-SemanticsNodeInteraction.performScrollToKeyשגורמת לגלילה ברשימה עד לפריט עם המפתח שצוין. (I4fe63, b/178483889, b/161584524)
- נוספו הפונקציות
- תמיכה בשמירה של AnnotatedString ב-TextFieldValue.Saver. נוספו פונקציות כלי השירות addTtsAnnotation ו-withAnnotation ל-AnnotatedString.Builder (I8cbdc, b/178446304)
- נוספו ערכי ברירת מחדל של פרמטר
0.dpאלPaddingValues(horizontal, vertical)(I05571, b/181336792)
תיקוני באגים
- רכיבי צאצא של Row ו-Column עם
weight(fill = false)כבר לא גורמים לרכיב האב למלא את כל השטח הזמין של הציר הראשי. (Ied94d, b/186012444, b/184355105)
גרסה 1.0.0-beta05
21 באפריל 2021
androidx.compose.foundation:foundation:1.0.0-beta05 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta05 מופצים. גרסה 1.0.0-beta05 מכילה את השמירות האלה.
שינויים ב-API
- הממשק FlingBehavior מסומן עכשיו כ- @Stable. כל ההטמעות צריכות להיות בהתאם לחוזה
@Stable. (I93354, b/184830577)
תיקוני באגים
- תוקנו פעולות הגלילה של הנגישות
ACTION_SCROLL_FORWARD,ACTION_SCROLL_BACKWARD,accessibilityActionScrollLeft,accessibilityActionScrollUp,accessibilityActionScrollRightו-accessibilityActionScrollDown. במקום לגלול עד סוף האזור שאפשר לגלול בו, המערכת תגלול עכשיו מסך אחד בכיוון שצוין. (Ieccb0) - קבצי AndroidManifest מ-ui-test-manifest ומ-ui-tooling-data תואמים עכשיו ל-Android 12 (I6f9de, b/184718994)
גרסה 1.0.0-beta04
7 באפריל 2021
androidx.compose.foundation:foundation:1.0.0-beta04 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta04 מופצים. גרסה 1.0.0-beta04 מכילה את השמירות האלה.
שינויים ב-API
- שינוי השמות של hideSoftwareKeyboard ו-showSoftwareKeyboard ב-SoftwareKeyboardController ל-
hide()ו-show()בהתאמה.- הוספת ממשק מלא של CompositionLocal ל-LocalSoftwareKeyboardController, שמאפשר להגדיר אותו (שימושי במיוחד בבדיקות) (I579a6)
TextOverflow.Visibleמוצג. (Ic8f89)- הסרנו מקרים ציבוריים של
RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope. (I4e83e, b/181869067)
תיקוני באגים
- תוקנה הבעיה שבה פריטים מסוג
LazyColumn/LazyRowשהיו בקצוות מוקמו באופן שגוי אחרי העברה מהירה (Ie4d13, b/183877420) לפני השינוי הזה, אפשר היה לדלג על פונקציות מקומיות שניתנות להגדרה על סמך הפרמטרים שלהן. אחרי השינוי הזה, לא תהיה דילוג על פונקציות מקומיות שניתנות להרכבה. השינוי הזה נעשה כי נפוץ ומצופה שפונקציות מקומיות יתעדו פרמטרים מההורה, והדילוג עליהם הוא מקור נפוץ לבאגים.
לסיכום, כדאי לעיין בדוגמה הבאה:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }לפני השינוי הזה, הפונקציה
ShowCountהייתה תמיד מדלגת, גם אחרי שהפרמטרcountעודכן. זה כבר לא המצב. (I5648a)
גרסה 1.0.0-beta03
24 במרץ 2021
androidx.compose.foundation:foundation:1.0.0-beta03 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta03 מופצים. גרסה 1.0.0-beta03 מכילה את השמירות האלה.
שינויים ב-API
- האפשרות
DefaultMonotonicFrameClockהוצאה משימוש. התקשרות אלwithFrameNanosאו אלRecomposer.runRecomposeAndApplyChangesללאMonotonicFrameClockתגרום עכשיו לשגיאהIllegalStateException. (I4eb0d)
תיקוני באגים
- הפונקציה
FlingBehavior.performFling()נקראת עכשיו גם כשהמהירות היא 0 (I0b6e5, b/181237123)
גרסה 1.0.0-beta02
10 במרץ 2021
androidx.compose.foundation:foundation:1.0.0-beta02 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta02 מופצים. גרסה 1.0.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו כמה אופטימיזציות קטנות ללוגיקה של המדידה ב-LazyColumn (Ic6889)
- נוסף ממשק API חדש של
LocalSoftwareKeyboardControllercomposition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I5951e, b/168778053) - נוסף ממשק API חדש של
LocalSoftwareKeyboardControllercomposition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I84472, b/168778053)
תיקוני באגים
- החלת הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, b/174531520)
גרסה 1.0.0-beta01
24 בפברואר 2021
androidx.compose.foundation:foundation:1.0.0-beta01 וגם androidx.compose.foundation:foundation-layout:1.0.0-beta01 מופצים. גרסה 1.0.0-beta01 מכילה את השמירות האלה.
זו הגרסה הראשונה של Compose 1.0.0 Beta.
שינויים ב-API
- נוספה קראה חוזרת (callback) מסוג onStart אל
detectDragGestures(I67269, b/179995594) - השימוש במאפייני שינוי גודל לערכים פנימיים הוא כבר לא ניסיוני. (I15744)
- הוסרו טענות dp (I798d2)
- הוסר קריאה חוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
- השם של MeasureBlocks שונה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי Layout API עודכנו או פושטו כדי להשתמש ב-MeasurePolicy. (Icab48, b/167662468, b/156751158)
-
InteractionStateהוחלף ב-[Mutable]InteractionSource- ממשקי המשתמש אחראים לפליטה ולאיסוף של אירועי אינטראקציה.
- במקום להעביר את
interactionState = remember { InteractionState() }לרכיבים כמוButtonו-Modifier.clickable(), צריך להשתמש ב-interactionSource = remember { MutableInteractionSource() }. - במקום:
Interaction.Pressed in interactionStateצריך להשתמש בפונקציות ההרחבה ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState(). - בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות של InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed, b/169874631, b/175142755)
- נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, b/177662148)
- הקומפוננטה Placeable חושפת עכשיו את המאפיין measuredSize, שמייצג את הגודל שהפריסה של רכיב הצאצא מדדה בפועל. יכול להיות שהגודל הזה לא יתאים למגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת משנה selectionGroup שמאפשר לסמן אוסף של רכיבי Tabs או RadioButtons למטרות נגישות (Ie5c29)
הוספת LazyListState.animateScrollToItem
השיטה הזו מבצעת גלילה חלקה לפריט ספציפי ברשימה. (I4bfd7)
השם של ScrollableState.smoothScrollBy() שונה ל-animateScrollBy() השם של LazyListState.snapToItemIndex() שונה ל-scrollToItem() השם של ScrollState.smoothScrollTo() שונה ל-animateScrollTo() (I35ded)
הפונקציה Modifier.zoomable הוחלפה בפונקציה Modifier.transformable. הפונקציות smoothPanBy ו-smoothRotationBy נוספו כפונקציונליות. (Ifc32b, b/175294473)
השדה
defaultFactoryעבורcompositionLocalOfועבורstaticCompositionLocalOfהוא עכשיו חובה במקום אופציונלי.השינוי הזה מסיר שגיאת סוג פוטנציאלית עבור סוגים שאי אפשר להגדיר כ-nullable, שלא סופקה להם ברירת מחדל של factory. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא ניתן להקצאה ל-null.
בסוגים שניתן להגדיר להם ערך null, כדאי לציין את
{ null }כברירת המחדל של המפעל.אנחנו לא ממליצים להשתמש ב-locals עם סוגים שלא יכולים להיות null, אלא אם אפשר לספק ברירת מחדל הגיונית. אם אין ברירת מחדל הגיונית, פונקציית ה-lambda
defaultFactoryצריכה להחזיר חריגה. עם זאת, אם תופעל חריגה, הצרכנים של המשתנה המקומי יסתמכו באופן מרומז על כך שהוא יסופק, אבל מערכת הטיפוס לא תאכוף את זה. (Ifbd2a)הערך של
Indication#createIndication()השתנה ל-Indication#rememberUpdatedIndication(InteractionState)והפרמטרInteractionStateהוסר מ-IndicationInstance#drawIndication(). האובייקט IndicationInstance צריך להיות אחראי רק על ציור אפקטים חזותיים, ולא על הפעלת אנימציות או על כתיבת מצב בתגובה לשינויים ב-InteractionState. האנימציות והכתיבה של המצב צריכות להתרחש בתוךrememberUpdatedIndication(). גם הפרמטרindicationב-Modifier.indicationהשתנה והפך לפרמטר חובה. (Ic1764, b/152525426)פעולות בטקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, b/179648629)
הוסרה
runBlockingWithManualClock(I15cdc, b/179664814)מיקום הגלילה ב-Modifier.verticalScroll()/horizontalScroll() מיוצג עכשיו באמצעות Ints (I81298)
החבילות של השיטות smoothScrollBy ו-scrollBy השתנו ל-
androidx.compose.foundation.gestures.*(I3f7c1, b/175294473)השם של FlingConfig שונה ל-FlingBehavior, ועכשיו אפשר להתאים אישית את האנימציה של ההשהיה במקום להשתמש ב-Decays מוגדרים מראש. (I02b86, b/175294473)
השם של משני המידות השתנה. השמות של modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)
השם של defaultMinSizeConstraints שונה ל-defaultMinSize. (I4eaae)
המסנן Modifier.tapGestureFilter הוסר. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectTapGestures(...) }. (I266ed, b/175294473)הסרה של צריכה חלקית ממערכת קלט ההצבעה. הדרך המומלצת לתאם צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
ההדרכה הועברה לחבילת Foundation. ה-VelocityTracker הועבר מ-ui.gesture אל ui.input.pointer. (Iff4a8, b/175294473)
הוסרו AnimationClockObservable ומחלקות משנה. התכונה AnimatedFloat הוסרה. (Icde52, b/177457083)
הפונקציות drawerState.open() ו-drawerState.close() הן עכשיו פונקציות השהיה. משתמשים ב-rememberCoroutineScope() כדי לקבל את ההיקף של הקומפוזיציה כדי להפעיל אותם (I16f60, b/175294473)
השם של Providers השתנה ל-CompositionLocalProvider
- הקונסטרוקטור Composition לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
- הפונקציה currentCompositeKeyHash הפכה למאפיין הניתן להגדרה ברמה העליונה, במקום להיות פונקציה הניתנת להגדרה ברמה העליונה.
- המחלקות CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- הפונקציה ComposableLambda הפכה לממשק במקום למחלקה קונקרטית, וכבר לא כוללת פרמטרים של סוג.
- הפונקציה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
- הפונקציה
@TestOnlytop level clearRoots הוסרה. היא כבר לא נחוצה. - הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
- הפונקציה Composer.collectKeySourceInformation הוסרה. היא כבר לא נחוצה.
- השיטות isJoinedKey, joinedKeyLeft ו-joinedKeyRight הוסרו. הם כבר לא נחוצים.
- ממשקי API שונים ברמה העליונה הועברו ואורגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקת הקבצים ב-Kotlin, הפעולה הזו תשבור את התאימות הבינארית אבל לא את תאימות המקור, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
- (I99b7d, b/177245490)
בוצע שינוי ב-Modifier.scrollable. עכשיו נעשה שימוש בממשק Scrollable במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)
הפונקציה Modifier.draggable מקבלת עכשיו DraggableState במקום פונקציית למדה פשוטה. אפשר ליצור מצב באמצעות
rememberDraggableState { delta -> }כדי לקבל את אותה התנהגות כמו קודם (Ica70f, b/175294473).נוספו משנים (modifiers) של requiredWidth(IntrinsicSize) ו-requiredHeight(IntrinsicSize) כדי להגדיר את הגודל הנדרש לגדלים טבעיים. (I0a6b4)
המאפיין
emptyContent()שהוצא משימוש הוסר. במקום זאת, אתם צריכים להשתמש ב-{}. (Idb33f, b/179432510)נמחקו כמה ממשקי API שהוצאו משימוש בעבר (Ice5da, b/178633932)
תיקוני באגים
- נוסף ממשק API חדש של LocalSoftwareKeyboardController composition local כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I658b6, b/168778053)
גרסה 1.0.0-alpha12
10 בפברואר 2021
androidx.compose.foundation:foundation:1.0.0-alpha12 וגם androidx.compose.foundation:foundation-layout:1.0.0-alpha12 מופצים. גרסה 1.0.0-alpha12 מכילה את השמירות האלה.
שינויים ב-API
- הפונקציה Modifier.pointerInput מחייבת עכשיו שימוש במפתחות remember כדי לציין מתי קורוטינת הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (I849cd)
- עדכון בנושא בדיקות: הפונקציה hasText() תבדוק את הטקסטים של הקלט, התווית, ההצעה או ה-placeholder בשדה הטקסט (Iab803)
- נוסף PaddingValues.Absolute שאפשר להשתמש בו בממשקי API שמקבלים PaddingValues. (Ia5f30)
- השימוש ב-onImeActionPerformed יצא משימוש. צריך להשתמש במקום זאת ב-KeyboardActions (If0bbd, b/179071523)
- כדי להתאים טוב יותר את מוסכמות השמות ל-ImageBitmap ול-ImageVector, השם של ImagePainter שונה ל-BitmapPainter כדי ליצור הקבלה ל-VectorPainter. (Iba381, b/174565889)
- ממשקי API משופרים לבדיקת מחרוזת משנה, עם מחרוזת משנה כארגומנט (Icbe78)
- נוסף רכיב של הקשר לקורוטינה
InfiniteAnimationPolicyשיופעל באנימציות אינסופיות. כברירת מחדל, לא מותקנת מדיניות, אלא אם מריצים בדיקות עםComposeTestRule. (I50ec4, b/151940543) - הפונקציות Animatable.snapTo ו-Animatable.stop הן עכשיו פונקציות השעיה (If4288)
- הפונקציה ComponentActivity.setContent הועברה אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
- הוסרו ה-methods של פירוק והעתקה (copy()) מכמה מחלקות שבהן נעשה בהן שימוש לעיתים רחוקות. (I26702, b/178659281)
נוספה תמיכה במפתחות מותאמים אישית עבור LazyColumn/LazyRow. כך אנחנו יכולים לטפל בצורה חכמה יותר בשינוי הסדר של הפריטים. לכן, המצב ששמרתם בבלוקים remember {} יזוז יחד עם הפריט כשמשנים את הסדר של הרכיבים או כשמסירים את הפריט מהאמצע.
LazyColumn { items(users, key = { user -> user.id }) { ... } }- (Ia50ef, b/164901852)
הפונקציה Indication#createInstance השתנתה ל-@Composable, והפונקציה LocalIndication השתנתה כך שתכיל Indication ולא () -> Indication. (I5eeea, b/157150564)
Constraints.enforceהוחלף ב-Constraints.constrain. (I8b8ea)הפונקציה loadFontResource הוצאה משימוש. צריך להשתמש ב-fontResource במקום זאת. הפונקציות imageResource, loadImageResource, vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב-painterResource. (I6b809)
מסיבות שקשורות לביצועים, הסמנטיקה של ScrollAxisRange מקבלת עכשיו ביטויי למדה שמחזירים ערכי Float במקום ערכי Float ישירים. (If4a35, b/178657186)
נוספה סמנטיקה של EditableText כדי לסמן טקסט קלט שניתן לעריכה בשדה הטקסט לצורך נגישות, ונוספו שיטות בדיקה תואמות כדי לבדוק את הסמנטיקה (I8e07a)
המשנה clickable לא תומך יותר בקליק כפול ובלחיצה ארוכה. כדי להשיג את הפונקציונליות הזו, משתמשים ב-Modifier.combinedClickable. (Iafad1)
הפונקציה toIntPx() שונתה ל-roundToPx(). (I9b7e4, b/173502290)
השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
המאפיין Modifier.dragGestureFilter יצא משימוש. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectDragGestures (...)}. אפשרות אחרת היא להשתמש ב-Modifier.draggable לגרירות בציר אחד (I0ba93, b/175294473)שונה השם של Ambients כדי להתאים לשינוי השם של Ambient -> CompositionLocal. בעבר, השם של Ambients היה AmbientFoo, ועכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
הבחירה הועברה לבסיס. (I7892b)
בדומה להסרה הקודמת של
state { 0 }composable, ועכשיו אנחנו מעודדים שימוש ב-remember { mutableStateOf(0) }, אנחנו הולכים להסיר אתsavedInstanceState { 0 }composable. במקום זאת, כדאי להשתמש ב-rememberSaveable { mutableStateOf(0) }, והמערכת תשמור ותשחזר באופן אוטומטי אם אפשר לאחסן את הסוג שמשמש בתוך MutableState ב-Bundle. אם בעבר העברתם אובייקט מותאם אישית של שמירה, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable שיש לו את הפרמטרstateSaver. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004)נוספה סמנטיקה של סיסמאות לנגישות (I231ce)
נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא מוגדרים לנגישות (I6fe05)
זמן ההפעלה באנימציה מאוחד עכשיו למיליארדית השנייה (If776a)
ההערה @ComposableContract הוצאה משימוש, ועכשיו יש שלוש הערות ספציפיות יותר במקומה.
@ComposableContract(restartable = false)הפך ל-@NonRestartableComposable@ComposableContract(readonly = true)הפך ל-@ReadOnlyComposable@ComposableContract(preventCapture = true)הפך ל-@DisallowComposableCalls@ComposableContract(tracked = true)הוסר. (I60a9d)הכלים
emptyContent()ו-(@Composable () -> Unit).orEmpty()הוצאו משימוש כי הם כבר לא משפיעים לטובה על הביצועים או על הערך (I0484d)עכשיו אפשר לסגור את כלי ההלחנה מחדש. הקומפוזיציה של רכיבים סגורים תמשיך עד שקורוטינות הצאצא של הקומפוזיציה יושלמו. השם של הפונקציה Recomposer.shutDown שונה ל-cancel כדי ליצור ניגוד לפונקציה close. (Ib6d76)
ממשקי API שקשורים ל-LazyVerticalGrid מסומנים כניסיוניים (Ia53e3, b/178519862)
השם של rememberSavedInstanceState() שונה ל-rememberSaveable() והוא הועבר לחבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)
השם של RestorableStateHolder שונה ל-SaveableStateHolder, והוא הועבר לחבילה androidx.compose.runtime.saveable. השם של השיטה הפנימית RestorableStateProvider שונה ל-SaveableStateProvider. הסוג הגנרי הוסר, כך שאפשר להעביר Any כמפתח. אין יותר צורך בהערה ניסיונית. (I0902e, b/174598702)
הפונקציות Saver, listSaver(), mapSaver(), autoSaver הועברו מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)
הארטיפקט androidx:compose:runtime:runtime-saved-instance-state שונה ל-androidx:compose:runtime:runtime-saveable (I6dcac)
הרבה ממשקי API שהוצאו משימוש לפני זמן רב בחבילת ui נמחקו. (I2f2dc)
הוצאנו משימוש את פריט המידע שנוצר בתהליך פיתוח (Artifact) compose:runtime-dispatch. המחלקות MonotonicFrameClock נמצאת עכשיו ב-compose:runtime והמחלקות AndroidUiDispatcher נמצאת ב-compose:ui. (Ib5c36)
השמות של הפרמטרים ב-RounderCornerShape, CutCornerShape ו-CornerBasedShape שונו מ-left/right (ימין/שמאל) ל-start/end (התחלה/סיום) כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון מימין לשמאל. הוספנו את הצורות AbsoluteRounderCornerShape ו-AbsoluteCutCornerShape למקרים שבהם לא רוצים שיקוף אוטומטי. (I61040, b/152756983)
המאפיין canDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
ה-API שאליו מכוון פלאגין הקומפיילר של Compose עבר רפקטורינג כדי להשתמש בממשק במקום במחלקה קונקרטית. בנוסף, הממשק לא משתמש יותר בפרמטר מסוג.
זהו שינוי פנימי שלא אמור להשפיע על התאימות של קוד המקור, אבל הוא שינוי בינארי שגורם לשגיאה. (I3b922, b/169406779)
המסנן Modifier.scaleGestureFilter הוסר. במקום זאת, אפשר להשתמש ב-Modifier.zoomable. אפשרות נוספת: שימוש ב-
Modifier.pointerInput { detectMultitouchGestures { ... }}(Id5da1, b/175294473)המאפיין AnimatedValue/Float הוצא משימוש. במקומה צריך להשתמש ב-Animatable. (I71345, b/177457083)
- הוסרו CoreText ו-CoreTextField מ-API ציבורי
- הוסר עומס יתר של SelectionContainer שיצא משימוש (I99c19)
הסרה של פונקציות גלילה שהוצאו משימוש ולא מושהות בהמשך לשינויים מהגרסה הקודמת, פונקציות הגלילה שלא מושהות הוסרו לגמרי. צריך להמיר לפונקציות השהיה עם אותם שמות. אפשר לקבל היקף של קורוטינה באמצעות rememberCoroutineScope(). (I3d39c, b/178169563)
androidx.compose.foundation.layout.ConstraintLayout הוצא משימוש לטובת androidx.constraintlayout.compose.ConstraintLayout. צריך להוסיף תלות ב-
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01. (I87adc)המסננים tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ו-pressIndicaitonGestureFilter הוצאו משימוש. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, b/175294473)
בוצעה הסרה של
Recomposer.current(). [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. הקומפוזיציה מחדש והאנימציה מבוססת-withFrameNanos מושהות בזמן שמחזור החיים של המארח מושהה. (I38e11)Recomposer.runningRecomposers כולל עכשיו StateFlow גלובלי של RecomposerInfo לקריאה בלבד, כדי לעקוב אחרי מצב הקומפוזיציה בתהליך. מומלץ להשתמש ב-API הזה במקום ב-Recomposer.current(), שהוצא משימוש. (If8ebe)
גרסה 1.0.0-alpha11
28 בינואר 2021
androidx.compose.foundation:foundation:1.0.0-alpha11 וגם androidx.compose.foundation:foundation-layout:1.0.0-alpha11 מופצים. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.
שינויים ב-API
הוצאה משימוש של scrollBy ללא השהיה, הסרה של scrollTo ללא השהיה
אנחנו ממליצים עכשיו להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולהמתין עד שהגלילה תסתיים. כחלק מהמעבר הזה, אנחנו מוציאים משימוש או מסירים את הגרסאות של הפונקציות האלה שלא כוללות השעיה. (Ie9ced)
הוצאה משימוש של smoothScrollBy שאינה פונקציית השהיה מומלץ עכשיו להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולחכות עד שהגלילה תסתיים. כחלק מהמעבר הזה, אנחנו מוציאים משימוש את הגרסאות של הפונקציות האלה שלא כוללות השעיה. (I12880)
נוסף פרמטר של תיאור תוכן לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
הפרמטר החדש decorationBox נוסף ל-BasicTextField. הוא מאפשר להוסיף קישוטים כמו סמלים, placeholder, תווית וכדומה לשדה הטקסט ולהגדיל את אזור היעד של הלחיצה. (I16996)
הפרמטר canDrag הוסר מהרכיב Modifier.draggable (Ic4bec, b/175294473)
הפונקציה AnimatedFloat.fling שמקבלת FlingConfig הוסרה. במקומה צריך להשתמש ב-suspend Animatable.animateDecay. (I4659b, b/177457083)
הוסר
data classמהכיתות הבאות:- InlineTextContent
- LocaleList
- (I605c7)
אפשר ליצור עכשיו רכיבים מסוג clickable, toggleable ו-selectable מחוץ לרכיב Composition (I0a130, b/172938345, b/175294473)
התכונות ScrollableColumn ו-ScrollableRow הוצאו משימוש. השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כשמגללים תוכן רב, כי באמצעות LazyColumn אפשר להלחין, למדוד ולצייר רק את הרכיבים הגלויים. כדי למנוע מהמשתמשים להשתמש בדרך לא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקומם. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של טעינה עצלה ולהשתמש ישירות במאפיינים כמו בדוגמה הבאה: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
factory method חדש
items(count: Int)להיקף של LazyColumn/LazyRow/LazyVerticalGrid. הפונקציותitems(items: List)ו-itemsIndexed(items: List)הן עכשיו פונקציות של תוספים, ולכן צריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסים חדשים של תוספים למערכים: items(items: Array) ו-itemsIndexed(Array) (I803fc, b/175562574)הוסר AbsoluteArrangement שיצא משימוש. (Iffa96, b/177641870)
הפרמטר propagateMinConstraints נוסף ל-Box כדי לציין אם אילוצי המינימום הנכנסים צריכים לעבור לתוכן של ה-Box או לא. ברירת המחדל היא False. (I0125b, b/152613457)
תיקוני באגים
- הפונקציות onCommit, onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API SideEffect ו-DisposableEffect (If760e)
- הקומפוזיציה WithConstraints עברה שינוי משמעותי, שונה לשם BoxWithConstraints והועברה אל foundation.layout. (I9420b, b/173387208)
שינויים בפונקציות של Font/FontFamily/Typeface
- נוספו פונקציות ליצירת אובייקטים שמתחילות באות גדולה
- הוצאנו משימוש פונקציות קודמות ליצירת אובייקטים עם אותיות קטנות בתחילת השם
- פונקציות חדשות של יצירת אובייקטים מחזירות את FontFamily במקום מחלקות משנה
- הסתרת constructors של מחלקות משנה, כך שאפשר ליצור אותן רק באמצעות פונקציות factory.
- השם של Font.asFontFamily שונה ל-Font.toFontFamily
- (I42aa7)
הוספנו את
ComposeContentTestRule, שמרחיב אתComposeTestRuleומגדיר אתsetContent, שהוסר מ-ComposeTestRule. נוספה שיטת יצירהcreateEmptyComposeRule()שמחזירהComposeTestRuleולא מפעילה Activity בשבילכם. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעותActivityScenario.launch(I9d782, b/174472899)הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא סוג המשתנה שמונפש. למשל: Float, Dp, Offset וכו' (Ie7e25)
הצפיפות היא עכשיו היקף הנמען בממשקי סידור. (I18aad)
TextFieldValue מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לערוך טקסט עם כמה סגנונות.
- הוסר
initialמפרמטרים של בנאי EditingBuffer. (I326d5)
- הוסר
הפונקציות invalidate ו-compositionReference() הוצאו משימוש, ועכשיו משתמשים במקומן בפונקציות currentRecomposeScope ו-rememberCompositionReference בהתאמה. (I583a8)
המחלקות AnnotatedString השתנו כך שהן יורדות מהמחלקה kotlin.CharSequence. לכן, הפונקציות length ו-subSequence הן עכשיו פונקציות מופע, והפונקציות של התוסף הוסרו. (Iaf429)
הערכים של משך הזמן וזמן הפעולה יוחלפו בערכים של אלפיות שנייה ארוכות, ובשלב הזה מוסרת התלות של קלט מצביע במחלקות האלה. (Ia33b2, b/175142755, b/177420019)
הפונקציה RememberObserver מחליפה את CompositionLifecycleObserver, והפונקציה CompositionLifecycleObserver הוצאה משימוש.
RememberObserverהוא תחליף ל-CompositionLifecycleObserverעם סמנטיקה ששונתה ושיטות ששמן שונה. אפשר לעבור ל-API החדש באופן אוטומטי לאובייקטים שזוכרים רק פעם אחת, וזו גם ההמלצה שלנו. עם זאת, אם הפניה נשמרה יותר מפעם אחת בקומפוזיציה, הפונקציהonRememberedנקראת לכל הפניה, והפונקציהonEnterנקראת רק פעם אחת. הייתה קריאה לפונקציהonEnterכמה פעמים אם האובייקט היה בשימוש בקומפוזיציות משנה, כמוWithConstraintsו-Scaffold, ולכן אי אפשר היה להסתמך על קריאה יחידה לפונקציהonEnter, והיא הוסרה ב-RememberObserver.
RememberObserverמוסיף אתonAbandoned, שמופעל אם מופעRememberObserverמוחזר מהקריאה החוזרת שהועברה אלremember, אבל לא נשמר במצב הקומפוזיציה ולכן לא תתבצע קריאה אלonRemembered. זה יכול לקרות אם חריגה מסיימת את ההרכבה לפני שהיא מסתיימת, או אם ההרכבה נפסלת כי המצב שהיא יצרה עבורו הרכבה כבר לא עדכני או כבר לא נחוץ. אם המופע שלRememberObserverשמופיע אחרי ההמלצה שלמעלה לגבי הפניה היחידה עוקב אחרי משאב חיצוני, גםonForgottenוגםonAbandonedמציינים שהמשאב כבר לא נחוץ. אם האובייקט עוקב אחרי עבודה שהתחילה או משאבים שהוקצו ב-onRemembered, אפשר להתעלם מ-onAbandonedכי הוא לא יופעל אםonRememberedיופעל. (I02c36)שם המאפיין TransformedText.transformedText שונה ל-TransformedText.text
- TransformedText כבר לא סיווג נתונים (Ie672a)
הכיתות הבאות כבר לא מוגדרות ככיתות נתונים:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
הוסרו שיטות ניסיוניות של monotonicFrameAnimationClockOf (Ib753f, b/170708374)
הוצאנו משימוש שיטות של קואורדינטות גלובליות ויצרנו שיטות חדשות של קואורדינטות מבוססות חלון. (Iee284)
במקומו, צריך להשתמש ב-ImeAction.None במקום ב-ImeAction.NoAction
- במקום ImeAction.Unspecified (Ie1bcc), צריך להשתמש ב-ImeAction.Default
הפונקציה FocusRequester.createRefs מסומנת עכשיו כניסיונית כי היא עשויה להשתנות. (I2d898, b/177000821)
השם של SemanticsPropertyReceiver.hidden שונה ל-invisibleToUser והוא סומן כ-@ExperimentalComposeUiApi. השם של AccessibilityRangeInfo שונה ל-ProgressBarRangeInfo. השם של stateDescriptionRange שונה ל-progressBarRangeInfo. השם של AccessibilityScrollState שונה ל-ScrollAxisRange. השם של horizontalAccessibilityScrollState שונה ל-horizontalScrollAxisRange. השם של verticalAccessibilityScrollState שונה ל-verticalScrollAxisRange. (Id3148)
הפכנו את VisualTransformation לממשק פונקציונלי (I3bba4)
שימוש ב-TestCoroutineDispatcher בבדיקות (I532b6)
הוסר PointerInputData ובוצע שינוי ב-PointerInputChange כדי להעביר אליו את כל השדות של PointerInputData. הפכנו את PointerInputEvent ו-PointerInputEventData לפנימיים כי הם לא נמצאים בשימוש באף API ציבורי. (Ifff97, b/175142755)
שם הפונקציה TextInputService.onStateUpdated שונה ל-updateState (Id4853)
צריך להסיר את displaySize כי מומלץ להימנע משימוש בו. בדרך כלל עדיף להשתמש בגודל של onRoot() או בגודל החלון לפחות. (I62db4)
גרסה 1.0.0-alpha10
13 בינואר 2021
androidx.compose.foundation:foundation:1.0.0-alpha10 וגם androidx.compose.foundation:foundation-layout:1.0.0-alpha10 מופצים. גרסה 1.0.0-alpha10 מכילה את השמירות האלה.
שינויים ב-API
- המחלקות ImeOptions ו-KeyboardOptions הן כבר לא מחלקות נתונים (I3c898, b/168684531)
- שינויים ב-VisualTransformation API
- השם של OffsetMap השתנה ל-OffsetMapping
- השם של OffsetMapping.identityOffsetMap שונה ל-OffsetMapping.Identity
- הסיווג PasswordTransformation לא מוגדר יותר כסיווג נתונים
- העברנו את OffsetMapping לקובץ משלו
- (I0bdf3)
- שינויים ב-EditOperations API
- השם של EditOperation שונה ל-EditCommand
- נוספה סיומת פקודה להטמעות קונקרטיות של EditOperation
- EditCommand's הם כבר לא מחלקות נתונים
- השם של הפונקציה EditOperation.process השתנה ל-applyTo
- שם המחלקה InputEventListener שונה ל-InputEventCallback
- (I0a366)
- שינינו את Velocity כך שיכלול רכיבים ופעולות מתמטיות. (Ib0447)
- השם @ExperimentalTesting שונה ל-@ExperimentalTestApi כדי ליצור עקביות עם הערות דומות של ממשקי API ניסיוניים (Ia4502, b/171464963)
- נוספה שיטה ניסיונית של stickyHeader ל-LazyColumn/LazyRow (I0a81d)
- השם של Color.useOrElse() שונה ל-Color.takeOrElse() (Ifdcf5)
- הוצא משימוש TestUiDispatcher. במקום זאת, צריך להשתמש ב-Dispatchers.Main (Ic171f, b/175385255)
- הוספת מתג ל-foundation Strings.kt (I4a5b7, b/172366489)
- העברנו את nativeClass למודול ui והגדרנו אותו כפנימי. השימוש ב-nativeClass עודכן בהטמעות של equals כדי להשתמש ב-'is MyClass' במקום זאת. (I4f734)
- הרכיבים FlowRow ו-FlowColumn הוצאו משימוש. במקומה, צריך להשתמש בפריסה בהתאמה אישית. (I09027)
- הפונקציות Modifier.focus() ו-Modifier.focusRequester() הוצאו משימוש. במקום זאת, צריך להשתמש ב-Modifier.focusModifier() וב-Modifier.focusReference(). (I75a48, b/175160751, b/175160532, b/175077829)
- הוספנו את SelectionRegistrar.notifySelectableChange כדי להודיע ל-SelectionManager על עדכונים ב-Selectable. (I6ff30, b/173215242)
- התפקיד של
fun Dp.isFinite()שונה לval Dp.isFinite(I50e00) - השם של המאפיין Constraints#satisfiedBy שונה ל-isSatisfiedBy. (I9cf5c)
- נוספו isSpecified, isUnspecified ו-useOrElse למחלקות מוטבעות עם קבוע Unspecified. (I93f7b, b/174310811)
תיקוני באגים
- API חדש מבוסס-קורוטינות
Animatableשמבטיח הדרה הדדית בין האנימציות שלו. נוסף DecayAnimationSpec חדש לתמיכה באנימציית ריקבון רב-ממדית (I820f2, b/168014930) - נוספה תמיכה בשדות טקסט מושבתים ולקריאה בלבד (I35279, b/171040474, b/166478534)
- הפונקציה
animate()הוחלפה בפונקציהanimateAsState(), שמחזירהState<T>במקוםT. כך אפשר לשפר את הביצועים, כי אפשר לצמצם את היקף הביטול למקום שבו נקרא ערך המצב. (Ib179e) - מוסיפים את Semantics role API ומוסיפים Role כפרמטר ל-SemanticsModifier שאפשר ללחוץ עליו, לבחור אותו או להפעיל ולבטל אותו. שונה Modifier.progressSemantics כך שגם Slider יכול להשתמש בו. (I216cd)
- עכשיו אפשר לגשת ל-native keyEvent דרך keyEvent.nativeKeyEvent (I87c57, b/173086397)
גרסה 1.0.0-alpha09
16 בדצמבר 2020
androidx.compose.foundation:foundation:1.0.0-alpha09 וגם androidx.compose.foundation:foundation-layout:1.0.0-alpha09 מופצים. גרסה 1.0.0-alpha09 מכילה את השמירות האלה.
שינויים ב-API
הוספת ממשק לגלילה
כך אפשר להתייחס ל-ScrollState ול-LazyListState כאל סוג משותף, וליישם גלילה בהתאמה אישית בשני הסוגים.
בנוסף, הפונקציה smoothScrollBy מועברת לפונקציית הרחבה ב-Scrollable, כדי לנצל את הפונקציונליות הזו. (I2153b)
נוסף LazyVerticalGrid. (I17267, b/162213211)
הוצאה משימוש של LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow (I5b48c)
לגבי השעיה של ממשקי API של קלט מצביע, בוצע שינוי בשם של HandlePointerInputScope ל-AwaitPointerEventScope ושל handlePointerInput() ל-awaitPointerEventScope(). (Idf0a1, b/175142755)
נוסף LazyListState.layoutInfo שחושף את רשימת הגדלים וההיסטים של הפריטים שמוצגים כרגע (If8678, b/170472532)
הוסרה ההערה ExperimentalPointerInput (Ia7a24)
הוספנו תמיכה ב-InteractionState עבור TextFields. (I61d91)
הוספת פרמטר reverseLayout ל-LazyColumn/Row. כשמגדירים את הפרמטר הזה ל-
true, הפריטים יורכבו מלמטה למעלה, וכשמגדירים אותו ל-LazyListState.firstVisibleItemIndex == 0, הפריט הראשון ימוקם בתחתית. (I552ae, b/166589935)נוסף פרמטר verticalArrangement ל-LazyColumn. נוסף פרמטר horizontalArrangement ל-LazyRow. הסידור מאפשר לנו להוסיף רווח בין הפריטים ולציין את הסידור שלהם כשאין לנו מספיק פריטים כדי למלא את הגודל המינימלי. (Icf79a, b/170394300)
הפונקציה detectMultitouchGestures משתמשת עכשיו בקריאה חוזרת אחת עם פרמטרים משולבים של מרכז כובד, הזזה, שינוי מרחק התצוגה וסיבוב. (Ie6e1c)
העברנו את ContentDrawScope למודול ui-graphics כדי שיהיה עם DrawScope. (Iee043, b/173832789)
תיקוני באגים
- פונקציות למדא במאפייני שינוי של היסט מחזירות עכשיו IntOffset ולא Float. (Ic9ee5, b/174137212, b/174146755)
הוסרו SlotTable, SlotReader ו-SlotWriter מה-API הציבורי. בעבר הם סומנו כ-InternalComposeAPI. עכשיו הם פנימיים למודול הכתיבה.
הוספנו את CompositionData ו-CompositionGroup כתחליף ל-API של ui-tooling, כדי לחלץ מידע על הקומפוזיציה. ממשקי ה-API האלה הם ציבוריים, אבל הם לא מיועדים לשימוש מחוץ ל-ui-tooling API, כי הם מספקים את המידע הגולמי ש-ui-tooling API מפרש (I31a9c)
בוצע רפקטורינג ב-ShaderBrush כדי ליצור באופן עצלני מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש ב-Brush مفيد להגדרת מעברי צבע שממלאים את כל גבולות הציור של קומפוזבל בזמן הקומפוזיציה, בלי שתצטרכו להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של constructor של פונקציית שיפוע, ועברנו לשימוש בשיטות factory באובייקט Gradient. (I511fc, b/173066799)
המאפיין Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
ה-API של המילוי האוטומטי הוא עכשיו API ניסיוני ונדרשת הסכמה לשימוש בו (I0a1ec)
הוספת הצהרות על פירוק מבנה כדי ליצור מופעים של FocusRequester (I35d84, b/174817008)
השם של accessibilityLabel השתנה ל-contentDescription. השם של accessibilityValue השתנה ל-stateDescription. (I250f2)
הוספנו כמה פונקציות חדשות ב-SelectionRegistrar ושינינו את השם של onPositionChange ל-notifyPositionChange. (Ifbaf7)
AndroidOwner made internal (Ibcad0, b/170296980)
פונקציה חדשה infiniteRepeatable ליצירת InfiniteRepeatableSpec (I668e5)
ממשק
Applierהשתנה כדי לפשט את בניית העצים מלמטה למעלה במקום מלמעלה למטה.השם של ה-method
insert()השתנה ל-insertTopDown().נוספה שיטה חדשה,
insertBottomUp().הכלי להחלת מדיניות מוסיף צמתים לעץ שהוא עורך באמצעות
insertTopDown()אוinsertBottomUp(), בהתאם למה שנותן תוצאות טובות יותר.יעיל יותר לבנות חלק מהעצים, כמו
LayoutNodeו-View, מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, היה צריך להשתמש במערך של תוספים כדי להטמיע בנייה מלמטה למעלה, והיה צריך להעתיק את המערך לכל כלי שנדרשה בו בנייה מלמטה למעלה כדי לשפר את הביצועים. בעקבות השינוי הזה,ApplieroverridesinsertBottomUp()כדי לבנות עץ מלמטה למעלה ו-insertTopDown()כדי לבנות את העץ מלמעלה למטה. (Icbdc2)נוסף painterResource API לטעינה אטומה של אובייקטים של Painter מפורמטים של נכסי רסטר (כמו PNG) או מ-VectorDrawables. הצרכנים לא צריכים יותר לקבוע מראש את סוג הנכס, ויכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter לשימוש ב-Image composables או ב-painter modifiers. (I2c703, b/173818471)
נוספה פונקציית factory בשם buildAnnotatedString כדי ליצור AnnotatedString. פונקציית ה-builder של annotatedString הוצאה משימוש. (Idfe0b)
גרסה 1.0.0-alpha08
2 בדצמבר 2020
androidx.compose.foundation:foundation:1.0.0-alpha08 וגם androidx.compose.foundation:foundation-layout:1.0.0-alpha08 מופצים. גרסה 1.0.0-alpha08 מכילה את השמירות האלה.
שינויים ב-API
- הפרמטר
maxLinesהוסר מה-CoreTextField. אם רוצים להגביל את הגובה של שדה הטקסט לפי מספר השורות, צריך להשתמש במקום זאת ב-BasicTextField. (Iec002) - שינינו את השיטות
await*TouchSlop()כך שלא יזהו את הלחיצה על העכבר, ושינינו את השם שלהן ל-*OrCancellation. הוסר גם הצורך בפרמטרorientationLock. (Ie96e1) - נוספה בדיקת lint לשמות ולמיקום של פרמטרים של lambda שניתנים להרכבה, כדי לבדוק את העקביות עם ההנחיות של Compose.
בנוסף, העברנו חלק מממשקי ה-API באמצעות
childrenכשם של פונקציית ה-lambda האחרונה שלהם אלcontent, בהתאם לבדיקת ה-lint ולהנחיות. (Iec48e) -
foundation:foundation-textAPIs הועברו אלfoundation:foundation. מבנה החבילה נשאר ללא שינוי (Id3eb2) - גלאי חדש של תנועות מגע מרובות, כולל כלים לזיהוי סיבוב, שינוי מרחק התצוגה והזזה. (Ic459d)
- גלאי חדש של תנועת גרירה שמשעה את API של קלט מצביע, כולל נעילת כיוון. (Icef25)
- שם המחלקה VectorAsset שונה ל-ImageVector הועברה ושם המחלקה VectorAsset שונה ל-Builder כדי שתהיה מחלקה פנימית של ImageVector בהתאם להנחיות של מועצת ה-API. הוספנו typealias של VectorAssetBuilder כדי לקשר אל ImageVector.Builder לצורך תאימות. (Icfdc8)
- שינינו את השם של ImageAsset ושל ה-methods שקשורים אליו ל-ImageBitmap. (Ia2d99)
- העברנו את מאפייני הסמנטיקה של הרכיבים הבסיסיים אל ui (I6f05c)
הוספנו ממשקי API לגלילה שמבוססים על קורוטינות:
נוספו LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וגם ממשקי API ברמה נמוכה יותר לשליטה בגלילה. ממשקי ה-API האלה מספקים ממשק השהיה לשליטה בגלילה שמחכה עד שהגלילה מסתיימת לפני שהיא חוזרת. (Ie5642)
נוסף פרמטר singeLine ל-BasicTextField, ל-TextField ול-OutlinedTextField. מגדירים את הפרמטר הזה לערך true כדי ששדה הטקסט יהיה שורה אחת שאפשר לגלול בה אופקית. (I57004, b/168187755)
נוסף גלאי מחוות להקשה, להקשה כפולה, ללחיצה ארוכה ולסימון לחיצה באמצעות קלט חדש של מצביע בהשהיה. הוספנו גם כמה כלי עזר, כדי להקל על מפתחים לכתוב גלאי מחוות משלהם. (I00807)
הוספנו את Modifier.focusable ל-foundation. אפשר להשתמש בתכונה הזו כדי להוסיף התנהגות שניתן להתמקד בה לרכיב, עם סמנטיקה ונגישות נכונות. (I41eb9, b/152525426, b/162865824)
ממשקי API שהוצאו משימוש בעבר הוסרו: Border הוסר, צריך להשתמש במקומו ב-BorderStroke. הפונקציה Modifier.drawBorder הוסרה. במקומה צריך להשתמש בפונקציה Modifier.border. המאפיין Modifier.gravity הוסר. במקומו צריך להשתמש במאפיין Modifier.align. Stack הוסר, צריך להשתמש ב-Box במקום זאת (I32c2b, b/172470874)
השם של AbsoluteArrangement שונה ל-Arrangement.Absolute. (If26f2)
תיקוני באגים
- העברנו את ממשקי ה-API של DrawModifier מהחבילה androidx.compose.ui לחבילה androidx.compose.ui.draw. נוצר קובץ DrawModifierDeprecated.kt כדי לכלול כינויי טיפוסים (typealiases) ושיטות עזר שיעזרו במעבר מ-API שיצא משימוש ל-API הנוכחי. (Id6044, b/173834241)
- שם המאפיין Modifier.drawLayer שונה ל-Modifier.graphicsLayer. בנוסף, עודכנו מחלקות קשורות ל-GraphicsLayer בהתאם למשוב של מועצת ה-API. (I0bd29, b/173834241)
- הוסר
<T>מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8) - השדות uptime ו-position של PointerInputData לא יכולים להיות null. (Id468a)
- MaterialTheme מגדיר עכשיו את הצבעים הנכונים של נקודות האחיזה לבחירה ושל הרקע של הבחירה. באפליקציות שאינן Material, אפשר להשתמש ב-AmbientTextSelectionColors באופן ידני כדי להתאים אישית את הצבעים שמשמשים לבחירה. (I1e6f4, b/139320372, b/139320907)
- הפרמטר alignment של Box שונה ל-contentAlignment. (I2c957)
- השם של משני offsetPx שונה ל-offset. הם מקבלים עכשיו פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- נוספה הפונקציה WindowManager.isWindowFocused כדי לבדוק אם חלון המארח נמצא במיקוד, ונוסף WindowFocusObserver שמספק קריאה חוזרת (callback) מסוג onWindowFocusChanged. (I53b2a, b/170932874)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- TextFieldValue API עודכן
- made TextFieldValue.composition readonly
- הוסרה חריגה שנוצרה בגלל טווח בחירה לא תקין (I4a675, b/172239032)
- המאפיינים הישנים של Ambients ששמם מסתיים ב-
Ambientהוצאו משימוש והוחלפו במאפיינים חדשים שמתחילים ב-Ambient, בהתאם להנחיות של Compose API. (I33440) - נוסף רכיב wrapper של Android Typeface. אפשר לטעון גופן Android באמצעות הפונקציה
typeface, כלומרtypeface(Typeface.DEFAULT). בנוסף, השם שלtypefaceFromFontFamily()שונה ל-typeface()(I52ab7) - נוסף אימות של lint כדי לוודא שמפעלים של Modifier משתמשים ב-
androidx.compose.ui.composed {}באופן פנימי, במקום להיות מסומנים כ-@Composable. (I3c4bc) - הוספנו בדיקת lint כדי לוודא שפונקציות של יצירת Modifier מוגדרות כתוספים ב-Modifier, כדי שאפשר יהיה לשרשר אותן בצורה חלקה. (I07981)
- הארגומנט הסמנטי mergeAllDescendants שונה ל-mergeDescendants. (Ib6250)
- השליטה בזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיונית (I6ef86, b/171378521)
- הסרת המודול הישן ui-test וה-stubs שלו (I3a7cb)
- השם של TextUnit.Inherit משתנה ל-TextUnit.Unspecified בהתאם ליחידות אחרות. (Ifce19)
- ממשק ההתאמה עודכן והפך לפונקציונלי. (I46a07, b/172311734)
- מודול
foundation:foundation-textמוזג לתוךfoundation:foundation(Idac0f) - הוצאה משימוש של place(Offset) ו-placeRelative(Offset). במקום זאת, אפשר להשתמש בעומסים עודפים עם היסטים של int (I4c5e7)
- השם של
idשונה לlayoutIdעבורLayoutIdParentData. השם שלMeasurable.idשונה ל-Measurable.layoutId. (Iadbcb, b/172449643)
גרסה 1.0.0-alpha07
11 בנובמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha07 יוצאות. גרסה 1.0.0-alpha07 מכילה את השמירות האלה.
שינויים ב-API
- בדומה ל-
Modifier.fillMaxSize[Width|Height], אנחנו תומכים עכשיו בשברים ב-Modifier.fillParentMaxSize[Width|Height]במסגרתLazyColumn/Row(I797e2, b/166586426) - הוסר
KeyboardOptions.toImeOptionsמ-API ציבורי. (Ic2e45) - המאפיינים הבסיסיים AmbientTextStyle, ProvideTextStyle ו-AmbientContentColor הוצאו משימוש. במקום זאת, צריך להשתמש בגרסאות החדשות שזמינות בספריית Material. באפליקציות שאינן Material, במקום זאת, צריך ליצור מערכת עיצוב משלכם עם סביבות נושא ספציפיות שאפשר להשתמש בהן ברכיבים שלכם. (I74acc, b/172067770)
- המאפיין foundation.Text הוצא משימוש והוחלף במאפיין material.Text. ל-API בסיסי של טקסט שלא צורך ערכים מעיצוב, אפשר לעיין ב-androidx.compose.foundation.BasicText. (If64cb)
- נוספה התכונה maxLines לרכיבי TextFields (Ib2a5b)
- עדכון של TextFields כדי לקבל KeyboardOptions (Ida7f3)
- נוספה KeyboardOptions לשימוש ב-TextFields (I9ca32)
- הוספת BasicText כ-API לטקסט ללא דעות קדומות לגבי עיצוב, במקביל ל-BasicTextField. (I28268)
- ההערה ExperimentalLazyDsl הוסרה. עכשיו אפשר להשתמש ב-LazyColumn או ב-LazyRow בלי להוסיף @OptIn (Idab7a, b/166584730)
- ה-BaseTextField הוצא משימוש. במקום זאת, משתמשים ב-BasicTextField. (I896eb)
- הוספנו את BasicTextField כתחליף ל-CoreTextField ול-BaseTextField (Id4cea)
- הסרה של LazyColumnItems/LazyRowItems שהוצאו משימוש (I1d8a8)
- הוסרו רכיבי ה-Composable שהוצאו משימוש לשינוי גודל למדידות פנימיות. (I18537, b/171811496)
- השם של relativePaddingFrom שונה ל-paddingFrom. נוסף משנה המאפיין paddingFromBaseline כדי להקל על ציון המרחקים מגבולות הפריסה לקווי הבסיס של הטקסט. (I0440a, b/170633813)
- הפרמטר matchHeightConstraintsFirst נוסף למגדיר aspectRatio, שאפשר להשתמש בו כדי לציין את המגדיר שצריך להתאים לאילוצי הגובה לפני שמנסים להתאים לאילוצי הרוחב. (Ie7c43, b/155290593)
- ה-DpConstraints שהוצא משימוש הוסר. (I87884, b/171702471)
תיקוני באגים
- הוספנו את המחלקה ScaleFactor
inline כדי לייצג גורמי קנה מידה
לצירים האופקי והאנכי בנפרד, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
- נוספה שיטת computeScaleFactor אל ContentScale
- נוספה התכונה ContentScale.FillBounds כדי לבצע שינוי גודל לא אחיד כדי למתוח את גבולות המקור כך שימלאו את היעד.
- נוספו שיטות אופרטור לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
- (Ic96a6, b/172291582)
- הפונקציה captureToBitmap הועברה אל captureToImage. (I86385)
- סימון CoreText כ-@InternalTextApi. במקומו, צריך להשתמש ב-BasicText. (I6aaeb)
- שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
- העברנו את KeyboardType ו-ImeAction אל KeyboardOptions (I910ce)
- ה-CoreTextField סומן כ- @InternalTextApi. במקום זאת, אפשר להשתמש ב-BasicTextField (Ie2469)
- ההערה ExperimentalSubcomposeLayoutApi הוסרה. מעכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
- הוספת מודול ui-test-junit4 (Ib91f8)
- ה-API של הסמלים עודכן כך שיקבל Color.Unspecified כצבע גוון אפשרי, שישרטט את הנכס או את הכלי לציור שסופקו ללא ColorFilter. בעבר, ניסיונות להתעלם מהגוון באמצעות Color.Unspecified היו גורמים להוספת גוון בצבע שקוף, ובסופו של דבר לא היה מוצג כלום. (I049e2, b/171624632)
- האובייקט MeasureResult הועבר מחוץ לאובייקט MeasureScope. (Ibf96d, b/171184002)
- כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui אל androidx.compose.layout.ui. (I0fa98, b/170475424)
- androidx.ui.test עבר אל androidx.compose.ui.test (I9ffdb)
- הפונקציות FirstBaseline ו-LastBaseline הועברו לחבילה androidx.compose.ui.layout (Ied2e7)
- נוסף SelectionContainer בלי הקריאה החוזרת (Ibfadb)
- הוספת בדיקות למיקומים של SelectionHandles ב-SelectionContainer. (Ie93db)
- נוספה אפשרות לתיקון אוטומטי במקלדת IME (I57b8d)
גרסה 1.0.0-alpha06
28 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha06, androidx.compose.foundation:foundation-layout:1.0.0-alpha06 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha06 יוצאות. גרסה 1.0.0-alpha06 מכילה את השמירות האלה.
שינויים ב-API
- androidx.compose.foundation.Icon הועבר אל androidx.compose.material.Icon. אפשר גם להשתמש ברכיב Image / Modifier.paint() עם Painter אם לא רוצים להשתמש בספריית Material. (I9f622)
- נוספה interactionState ל-Modifier.scrollable, ScrollableColumn ול-LazyColumnFor (I81566, b/169509805)
- המאפיין alignByBaseline נוסף ל-RowScope, והשם של alignWithSiblings שונה ל-alignBy (I06503, b/170628732)
- התיבה הפכה לפונקציה מוטמעת. (Ibce0c, b/155056091)
- נוספה התכונה maxLines ל-CoreTextField (Ibee58, b/143687793)
- נוספה גלישת שורות ל-CoreTextField. (I21a4b)
תיקוני באגים
- הוצאנו משימוש את VectorPainter לטובת rememberVectorPainter כדי להבהיר טוב יותר שה-API של הקומפוזיציה משתמש באופן פנימי ב-remember כדי לשמור נתונים בין קומפוזיציות. (Ifda43)
- מפעילים מעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
- נוספה אפשרות למקלדת עם שורה אחת ל-CoreTextField (I72e6d)
- שינינו את השם של Radius API ל-CornerRadius כדי להבהיר טוב יותר את אופן השימוש בו ב-Compose. עדכנו את המסמכים כדי לציין שרדיוסים שליליים של פינות מוגבלים לאפס. (I130c7, b/168762961)
- הוספת אפשרות לציין פרטים של הכלי לבדיקת מודעות בשינוי (modifier) מורכב (Idee08, b/163494569)
- נוספה אפשרות IME של KeyboardCapitalization (I8ac38)
- תיקון המיקום של נקודת האחיזה לשינוי הסדר בפריסה מימין לשמאל. (I6e1e0)
- שינוי שובר תאימות: הוסר ערך ההחזרה מ-PointerInputFilter.onPointerEvent(...) כי הערך היחיד שאפשר לשנות באירועי הצבעה הוא נתוני הצריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של PointerEvents שמועברים. (I6acd0)
- הוספנו את האפשרות 'בחירת הכול' לתפריט הבחירה (Ief02b)
גרסה 1.0.0-alpha05
14 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha05 יוצאות. גרסה 1.0.0-alpha05 מכילה את השמירות האלה.
שינויים ב-API
- CoreTextField תומך עכשיו בפונקציונליות של סמן (Id23aa)
הוצאה משימוש של ממשקי ה-API contentColor() ו-currentTextStyle(), והחלפה שלהם בממשקי ה-API AmbientContentColor ו-AmbientTextStyle בהתאמה. אפשר לגשת לערך הנוכחי באמצעות
.currentבמאפיין הסביבה, כמו בכל סביבה אחרת. השינוי הזה בוצע כדי לשמור על עקביות ולמנוע מצב שבו יש כמה דרכים להשיג את אותה המטרה. בנוסף, שמות של כמה מאפייני סביבה שונו כדי לתאר טוב יותר את המטרה שלהם, באופן הבא:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
תיקוני באגים
- במסגרת התקנון של ערכי Sentinel עבור מחלקות מוטבעות, שם המחלקה Color.Unset שונה ל-Color.Unspecified כדי לשמור על עקביות עם מחלקות מוטבעות אחרות (I97611, b/169797763)
- הוספנו פעולות נגישות להעתקה, להדבקה ולגזירה (I6db4f)
- הוצג TextOverflow.None. כשהערך של overflow הוא None, הרכיב Text לא יטפל יותר בגלישה, וידווח על הגודל בפועל שלו ל-LayoutNode. (I175c9, b/158830170)
- הפרמטרים של Size.Unspecified עודכנו ל-Float.NaN במקום ל-Float.POSITIVE_INFINITY. עודכנו ההטמעות של Painter כדי לבדוק גם את Size.Unspecified וגם גדלים לא סופיים. (I95a7e)
- נוסף מודול ליצירת דפי אינטרנט ואינטגרציה של יצירת דפים (Ib85da)
- שינוי LazyListScope כדי לקבל ערכים שניתנים לאיפוס (I1765b)
- השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier, והשם של onPositioned() שונה ל-onGloballyPositioned(). (I587e8, b/169083903)
- נוספו דוגמאות ל-LazyColumn/Row (Idc16d)
- תיקון של השיטות items ו-itemsIndexed כדי לאפשר emptyList (I06647)
- הוספת DSL להגדרת פרטי הבודק (Ic9a22)
- מעבירים את LongPress אל Text. (Iff2bc)
- השבתה של בחירה בטקסט, והדגמה. (Ie7e97)
- תמיכה בהמרת AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
- בוצעה הסרה של
PointerInputFilter.onPointerInput(...). במקומה צריך להשתמש ב-PointerInputFilter.onPointerEvent(...). (I6f04a)
גרסה 1.0.0-alpha04
1 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha04 יוצאות. גרסה 1.0.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- השם של Stack שונה ל-Box. ה-Box הקיים foundation.Box יוצא משימוש לטובת ה-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את רכיבי הצאצא אחד מעל השני כשיש לו כמה רכיבי צאצא – זה שונה מ-Box הקודם, שהתנהג בצורה דומה ל-Column. (I94893, b/167680279)
- הפרמטרים של קישוט התיבה הוצאו משימוש. אם רוצים להוסיף קישוטים או ריווח לתיבה, צריך להשתמש במקום זאת בשינויים (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- מוסיפים מחלקה חדשה של LazyListState. כך אפשר לצפות במיקום הגלילה של הרכיבים LazyRow ו-LazyColumn ולשלוט בו. אפשר ליצור מופעים באמצעות rememberLazyListState() ולהעביר אותם לפרמטר state של הרכיב. בגרסה הראשונית הזו אפשר לראות את הפריט הראשון שגלוי ואת ההיסטים. (Ic7cb7, b/159307669)
- עכשיו אפשר לשמור ולשחזר את המיקום ברשימה ואת היסטוריית הגלילה כשיוצרים מחדש את הפעילות (Ie045f, b/166589058)
- הוספת פעולה של לחיצה ארוכה (I6281b, b/156468846)
- נוסף כלי MutatorMutex כדי לשמור על מוטטור יחיד של מצב משותף לאורך זמן ולבטל מוטטורים מתנגשים לפי עדיפות (I3f975)
- הוספת ההערה @VisibleForTesting ל-rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ו-textInputServiceFactory, הפיכתם ל-API פנימי והסתרת ה-kdoc שלהם (I554eb, b/168308412)
- הוסר הפרמטר inlineContent מהרכיב Text עם קלט String. הוא לא ישמש כי inlineContent חייב לעבוד עם AnnotatedString. (Ief403)
- הוסרו ממשקי ה-API המותאמים אישית של סידור החלונות שהוצאו משימוש. (Ic576d, b/168297922, b/168297923)
- הפרמטר
unboundedנוסף ל-modifiers של wrapContentSize, שמאפשרים למדוד את רכיב הפריסה עם מגבלות מקסימליות אינסופיות. (I77951, b/158559319) - מנענו ייבוא סטטי של תוכן של היקפי פריסה (לדוגמה, alignWithSiblings ב-RowScope). במקום זאת, צריך להשתמש בחלופה של היקף מפורש:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, b/166760797)
תיקוני באגים
- עודכנו הרבה ממשקי API של גרפיקה
- ממשקי ה-API של טרנספורמציות של שינוי גודל וסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים ממשיים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
- הוסרו השיטות Rect.expandToInclude ו-Rect.join
- עודכן התיעוד של Radius כך שיצוין בו oval (אליפסה) בנוסף ל-elliptical (אליפטי)
- הוספנו תיעוד שמציין שאסור לקרוא ישירות לבונה הציבורי של המחלקה Radius inline, אלא צריך ליצור מופעים של אובייקטים מסוג Radius באמצעות בוני הפונקציות שלהם
- הוסרו ממשקי RoundRect API לשליחת שאילתות לגבי topRight, bottomRight, bottomCenter וכו'.
- הוצא משימוש Rect.shift לטובת Rect.translate
- הוסרו ממשקי ה-API RoundRect.grow ו-Rect.shrink
- השם של RoundRect.outerRect שונה ל-Rect.boundingRect
- הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
- השם של RoundRect.longestSide שונה ל-RoundRect.maxDimension
- שם המאפיין RoundRect.shortestSide שונה ל-RoundRect.minDimension
- הפכנו את RoundRect.center למאפיין במקום לפונקציה
- העדכון של ה-constructor של RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי רדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם מקור ב-0,0
- הוספנו ל-Radius API להשמדה
- העברנו פונקציות שונות של התוסף RoundRect להיות מאפיינים במקום
- (I8f5c7, b/168762961)
- בוצעו אופטימיזציות של הביצועים לגלילה ב-LazyColumnFor/LazyRowFor, כך שלא מתבצעות קומפוזיציות מחדש מיותרות במהלך כל גלילה (I64f65, b/168293643, b/167972292, b/165028371).
- תוקן קראש ב-LazyColumnFor/LazyRowFor אחרי גלילה ואז שינוי פריטים, והוטמעה גלילה אוטומטית למעלה כשפריט שהיה גלוי קודם הוסר, כדי שלא יוצגו יותר רווחים ריקים בסוף (I220ab, b/161480164, b/167855468)
- אסור יותר להטמיע רכיבים עם אפשרות גלילה באותו כיוון בתוך מאגרי רכיבים כמו ScrollableContainer ו-LazyColumnFor. התכונה הזו אף פעם לא נתמכה, והיא גרמה לבעיות ב-Fling ובכל העצלנות של יצירת הפריטים של LazyColumnFor (I6e101)
- עודכנו הרבה ממשקי API של גרפיקה
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת (callback) ומוסרת אחרי שהקריאה החוזרת מופעלת
- עדכנו את המסמכים בנושא clipPath כך שיפנו אל Path במקום אל מלבן מעוגל
- תוקן הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
- השם של DrawScope.drawCanvas שונה ל-drawIntoCanvas והוסר פרמטר הגודל
- שמות הפרמטרים dx/dy בשיטת inset שונו ל-horizontal ול-vertical
- הוספנו עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
- הסרנו את התיעוד בנושא שיטת ההזחה, שצוין בו שההזחה תחול על כל 4 הצדדים
- עדכון המסמכים של המחלקה Rect
- עדכון ההערות על פרמטרים של Rect כדי להתאים לסגנון kdoc
- הוסרו Rect.join ו-Rect.expandToInclude
- נוצר עומס יתר עבור Rect.translate(offset) ו-Rect.shift הוצא משימוש
- (If086a, b/167737376)
- מוסיפים את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
- כדי להימנע מיצירת אובייקט, צריך להגדיר את TextRange כ-inline. (Id034b)
- המאפיין ParagraphConstraints הוסר. הרוחב מועבר עכשיו ישירות לפסקה. (Ica712)
גרסה 1.0.0-alpha03
16 בספטמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha03 יוצאות. גרסה 1.0.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- השם של InnerPadding שונה ל-PaddingValues. (I195f1, b/167389171)
- השימוש ב-gravity שונה באופן עקבי ל-align או ל-alignment ב-APIs של פריסות. (I2421a, b/164077038)
- נוסף פרמטר יישור ל-Stack, שמאפשר לציין את יישור ברירת המחדל לכל רכיבי הצאצא של Stack. (Ie80ca, b/164085265)
תיקוני באגים
- הוצאנו משימוש את DpConstraints ואת ממשקי ה-API שמשתמשים בו. (I90cdb, b/167389835)
- הפרמטרים
minWidthו-maxWidthשלwidthInשונו ל-minו-max. באופן דומה, לגביpreferredWidthIn,heightIn,preferredHeightIn. (I0e5e1, b/167389544) - נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
- תוקנו חישובים של גודל ומיקום ב-GestureScope, שגרמו בין היתר ליצירה של מחוות החלקה לא תקינות (Iaf358, b/166589947)
- הועברו
createAndroidComposeRuleוAndroidInputDispatcherמandroidx.ui.test.androidאלandroidx.ui.test(Idef08, b/164060572)
גרסה 1.0.0-alpha02
2 בספטמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha02 יוצאות. גרסה 1.0.0-alpha02 מכילה את השמירות האלה.
תיקוני באגים
- הכיתוב TestUiDispatcher מסומן כניסיוני (Iae99d, b/161247083)
נוסף
ManualFrameClock.hasAwaitersכדי לבדוק אם יש משהו שממתין למסגרת מהשעון הזה;runWithManualClockכתחליף ל-runBlockingכשמריצים בדיקות שדורשות ManualFrameClock;TestUiDispatcher.Mainשמאפשר גישה קלה לשולח הראשי של ממשק המשתמש בבדיקות.לדוגמה:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }(I0a85b, b/161247083)
גרסה 1.0.0-alpha01
26 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha01 יוצאות. גרסה 1.0.0-alpha01 מכילה את השמירות האלה.
גרסה 0.1.0-dev
גרסה 0.1.0-dev17
19 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 וגם androidx.compose.foundation:foundation-text:0.1.0-dev17 יוצאות. גרסה 0.1.0-dev17 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו את הסידור spacedBy לרכיבים Row ו-Column, כדי לאפשר מיקום של רכיבי פריסה צאצאים עם ריווח קבוע. נוסף גם רכיב Arrangement מיושר, כדי לאפשר מיקום של רכיבי פריסה ברמת צאצא אחד ליד השני ומיושרים בשורה או בעמודה בהתאם ליישור. השיטות הקודמות Arrangement.Vertical#arrange ו-Arrangement.Horizontal#arrange הוצאו משימוש, ולא תהיה תמיכה בכתיבת פריסות מותאמות אישית בעתיד. (I6733d, b/161985975)
- ההיסט הפך למחלקה מוטבעת (Iaec70)
- הוסרו קריאות חוזרות (callback) של onFocusChanged מ-TextField. במקומו, צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- המאפיין Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. הוחלף Border data class ב-BorderStroke (I4257d, b/158160576)
- הוסרו הרכיבים VerticalScroller ו-HorizontalScroller. במקום זאת, משתמשים ב-ScrollableColumn/Row. הוסר Modifier.drawBackground. שימוש ב-Modifier.background (I73b0d, b/163019183)
- הוסר השימוש במגדירי fillMax* שסומנו כהוצאה משימוש מ-LazyItemScope, כי הם מקשים על הוספה נכונה של מגדירים כאלה לפריטים שהם לא צאצאים ישירים של LazyColumnFor (Ifa78d)
- נוספה הטמעה של LazyColumn/LazyRow כ-DSL (I93cc6)
- האילוצים הם עכשיו מחלקה מוטבעת (I88736)
- הוספנו את היכולת לשנות את הגודל של פריסה לשבר מהשטח הזמין, באמצעות שינויי הגודל fillMaxWidth, fillMaxHeight ו-fillMaxSize. (I945bb, b/161562591)
תיקוני באגים
- נוסף פרמטר של שינוי ל-SelectionContainer (I4aada, b/161487952)
- נוספה lambda של mergePolicy ל-SemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג סמנטי של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך של ההורה אם הוא כבר קיים, אחרת בערך של הצאצא. (Iaf6c4, b/161979921)
- השם של
PlacementScope.placeAbsolute()שונה ל-PlacementScope.place(), והשם הקודםPlacementScope.place()שונה ל-PlacementScope.placeRelative(). כתוצאה מכך, השיטהPlacementScope.place()לא תשקף יותר אוטומטית את המיקום בהקשרים של כתיבה מימין לשמאל. אם רוצים להשתמש במדיניות הזו, צריך להשתמש במדיניותPlacementScope.placeRelative()במקום זאת. (I873ac, b/162916675) - הוסר הרכיב FilledTextField שיצא משימוש. במקומו צריך להשתמש ב-TextField כדי לקבל את ההטמעה של Material Design של שדה טקסט מלא. (I5e889)
- הוספנו את הפרמטר backgroundColor ל-LinearProgressIndicator והסרנו את הריווח הפנימי מ-CircularProgressIndicator. נוסף ProgressIndicatorConstants.DefaultProgressAnimationSpec חדש שאפשר להשתמש בו כ-AnimationSpec כברירת מחדל כשמנפישים התקדמות בין ערכים (If38b5, b/161809914, b/161804677)
- הפונקציה הניתנת להרכבה
state { ... }הוצאה משימוש. במקומה, מומלץ להשתמש בקריאות מפורשות ל-remember { mutableStateOf(...) }כדי לשמור על בהירות. כך מצטמצם מספר ממשקי ה-API והמושגים לניהול מצבים, והשיטה הזו תואמת לדפוסby mutableStateOf()של הקצאת מאפייני מחלקה. (Ia5727) - השם RRect שונה ל-RoundRect כדי להתאים יותר לדפוסי מתן השמות ב-Compose. נוצרו פונקציות דומות של constructor ל-RRect, והוצאו משימוש פונקציות של constructor ל-RRect (I5d325).
- הוסרו הפונקציות onChildPositioned ו-OnChildPositionedModifier. מפתחים צריכים להשתמש ב-onPositioned וב-OnPositionedModifier בפריסת הצאצא במקום זאת. (I4522e, b/162109766)
- IntSize היא עכשיו מחלקה מוטבעת (I2bf42)
- לחיצה ארוכה על האזור הריק כדי לערוך. (Ib1e5b)
- הסתרת סרגל הכלים הצף אחרי הקשה על הטקסט. (If4525)
- הסתרת סרגל הכלים הצף כשמעדכנים את הבחירה. (I8444c)
- מבטלים את הסימון של האפשרות 'מתי לטשטש'. (I781a2)
גרסה 0.1.0-dev16
5 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev16, androidx.compose.foundation:foundation-layout:0.1.0-dev16 וגם androidx.compose.foundation:foundation-text:0.1.0-dev16 יוצאות. גרסה 0.1.0-dev16 מכילה את השמירות האלה.
שינויים ב-API
- הפרמטר LazyItemScope נוסף לפרמטר itemContent של רשימות Lazy. הוא מספק משנים למילוי הגודל המקסימלי של הרכיב ההורה, וכך פותר את מקרה השימוש שבו הפריט צריך למלא את אזור התצוגה והמשנה הרגיל Modifier.fillMaxSize() לא פועל כי הפריט נמדד עם אילוצי אינסוף. (Ibd3b2, b/162248854)
- העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
- נוספו LazyColumnForIndexed/LazyRowForIndexed – גרסאות של LazyColumnFor/LazyRowFor שמספקות גם אינדקס וגם פריט ב-itemCallback. השיטה הזו שימושית כשצריך לדעת את האינדקס הנוכחי בנוסף לפריט הנוכחי. (I65ff3)
- השם של Modifier.deternimateProgress השתנה ל-Modifier.progressSemantics (I9c0b4)
- השם של LazyColumnItems שונה ל-LazyColumnFor. השם של LazyRowItems שונה ל-LazyRowFor (I84f84)
- מומלץ להוסיף סימנים או הערות כדי לעקוב אחרי שיטות מומלצות. (I66b20)
- החבילה foundation.shape.corner שוטחה לחבילה foundation.share (I46491, b/161887429)
- נוסף פרמטר כוח משיכה של ציר ניצב עבור LazyRowItems/LazyColumnItems. רכיבי LazyRowItems/LazyColumnItems תומכים עכשיו בהתנהגות של גלישת תוכן. (Ib39fc)
- השם של ZoomableState שונה ל-ZoomableController. נוספה תמיכה בעקומות מותאמות אישית ל-smoothScale. נוספה פונקציונליות של
enabledו-onZoomStarted(If8b8f) - השם של Material FilledTextField שונה ל-TextField, והשם של TextField הבסיסי שונה ל-BaseTextField, כדי שיהיה קל יותר לגלות את ה-API הפשוט ביותר הרצוי ולהשתמש בו (Ia6242, b/155482676)
- הוסר AdapterList שהוצא משימוש בעבר. במקום זאת, צריך להשתמש ב-LazyColumnItems (I12b9b)
- השם של Modifier.drawBackground שונה ל-Modifier.background (I13677)
- ה-DSL הישן של ConstraintLayout הוסר. השם של ConstraintSet2 השתנה ל-ConstraintSet. (If58d1, b/162450908)
- נוספו Modifier.absoluteOffset() ו-Modifier.absoluteOffsetPx(). בניגוד למגבילי offset, מגבילי offset מוחלטים לא ישתקפו אוטומטית בהקשר של כתיבה מימין לשמאל (I3aa21)
- הפונקציות
Rowו-Columnהן עכשיו פונקציות מוטמעות, מה שמפחית באופן משמעותי את התקורה של השימוש בהן. (I75c10)
תיקוני באגים
- תיקונים נרחבים ב-API (I077bc)
- הסרה של ממשק OffsetBase שלא בשימוש
- התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
- משנים את השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
- העברנו את השיטה nativeCanvas מממשק Canvas כדי לתמוך בצרכנים שרוצים ליצור מופעי Canvas משלהם
- נוצרת מחלקה מסוג stub בשם EmptyCanvas כדי לבצע refactoring של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null.
- שינינו את השם של סוגי ה-enum של ClipOp ל-Pascal Case
- השמות של סוגי ה-enum FilterQuality שונו ל-Pascal Case
- השמות של ה-enums של StrokeJoin שונו ל-Pascal Case
- שמות הערכים של enum PointMode שונו ל-Pascal Case
- שינוי השם של סוגי ה-enum PaintingStyle ל-Pascal Case
- שמות הערכים של PathFillType שונו ל-Pascal Case
- השמות של סוגי ה-enum של StrokeCap שונו ל-Pascal Case
- היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
- עדכון של DrawScope כך שלא נעשה יותר שימוש בהעברת הרשאה עצלה לפרמטרים פנימיים של fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עדכון המחלקה Outline כך שתכלול הערות @Immutable
- הוספנו הערות @Immutable לכל הוראת נתיב ב-PathNode
- בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון, כי הפונקציה compose כבר מטפלת בהן
- הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
- עדכנו את המחלקות של Brush ואת בנאי הפונקציות באמצעות ממשקי ה-API @Immutable ו-@Stable
- העדכון של ספירת VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה פרמטרים של קו בציור אם הם השתנו
- עדכון של Size כדי להוסיף API של פירוק מבנה, לשנות את השם של UnspecifiedSize ל-Unspecified ולהסיר שיטות שלא נמצאות בשימוש
נוסף MonotonicFrameAnimationClock שמאפשר להשתמש ב-MonotonicFrameClock כ-AnimationClockObservable כדי לגשר על הפער בין השעונים החדשים שמבוססים על קורוטינות לבין ממשקי API שעדיין משתמשים בשעונים הישנים שמבוססים על קריאות חוזרות (callback).
הגרסה המקבילה של MonotonicFrameClock ל-ManualAnimationClock היא עכשיו ManualFrameClock. (I111c7, b/161247083)
בוצעה הסרה של
SemanticsNodeInteraction.performPartialGesture. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture. (Id9b62)שינית את השם של
SemanticsNodeInteraction.getBoundsInRoot()לSemanticsNodeInteraction.getUnclippedBoundsInRoot()(Icafdf, b/161336532)ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. הוסרו Modifier.rtl ו-Modifier.ltr. (I080b3)
ה-API Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. השימוש במילה 'אז' מספק אות חזק יותר לגבי הסדר, ובנוסף אוסר על הקלדת
Modifier.padding().background() + anotherModifier, מה ששובר את הרצף ומקשה על הקריאה (Iedd58, b/161529964)נוספו
isFocused()ו-isNotFocused()SemanticsMatcher. (I0b760)התג RemeasurementModifier נוסף. היא מאפשרת למשתמשים למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל לא צריך להשתמש בה, כי המדידה מחדש והפריסה מחדש מתבצעות באופן אוטומטי, אבל אנחנו משתמשים בה בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
הפונקציה isSystemInDarkTheme תמיד מתייחסת להגדרת העיצוב הכהה בכל המערכת, ומתעלמת מסטטוס החיסכון באנרגיה לפני Q, בהתאם להנחיות העדכניות. (I0c10c)
הפונקציה OnChildPositioned הוצאה משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, b/162109766)
שם המחלקה AndroidComposeTestRule שונה ל-createAndroidComposeRule. (I70aaf)
הוספת פעולת נגישות לקבלת TextLayoutResult (I9d6e6)
גרסה 0.1.0-dev15
22 ביולי 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev15, androidx.compose.foundation:foundation-layout:0.1.0-dev15 וגם androidx.compose.foundation:foundation-text:0.1.0-dev15 יוצאות. גרסה 0.1.0-dev15 מכילה את השמירות האלה.
כדי להשתמש בגרסה 0.1.0-dev15 של Compose, צריך:
עדכון התלות
- כדי להשתמש בגרסה
0.1.0-dev15של Compose, צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.
שינויים ב-API
- בדומה לפרמטר החדש ב-ScrollableColumn/ScrollableRow, גם ל-LazyColumnItems/LazyRowItems יש עכשיו פרמטר contentPadding שמאפשר להוסיף ריווח לתוכן אחרי שהוא נחתך. אי אפשר לעשות את זה רק באמצעות פרמטר modifier. בנוסף, אפשר להוסיף ריווח רק לפני הפריט הראשון או אחרי הפריט האחרון. (Ibc24e)
- הפונקציה להחזרת קריאה (callback) onFocusChange בשדות טקסט שונתה ל-onFocusChanged (Ida4a1)
- הוצאנו משימוש את הרכיבים VerticalScroller ו-HoriziontalScroller. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליצור חוויה מובנית עם התנהגות ופרמטרים של Column/Row, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב שלכם. באופן דומה, השימוש ב-ScrollerPosition הוצא משימוש לטובת ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- בוצע שינוי ב-APIs Modifier.draggable ו-Modifier.scrollable. המאפיין DragDirection הוסר לטובת Orientation. הדרישה לציין מדינה עבור מודעות שאפשר לגלול בהן פשוטה יותר עכשיו. השם של ScrollableState שונה ל-ScrollableController (Iab63c, b/149460415)
- מאפיינים סמנטיים של ערך יחיד משתמשים עכשיו בסגנון קריאה.
לדוגמה, המחרוזת 'semantics { hidden = true }' נכתבת עכשיו כך:
semantics { hidden() }. (Ic1afd, b/145951226, b/145955412) - עכשיו אפשר להגדיר גדלים של פינות שגדולים מ-50% ב-RoundedCornerShape וב-CutCornerShape (Id2340, b/160400213)
- הפרמטר ContentScale שמוגדר כברירת מחדל עבור רכיב ה-Image שניתן להרכבה השתנה מ-Inside ל-Fit. הפעולה הזו בוצעה כדי שההתנהגות תתאים להגדלה של האובייקט Painter הבסיסי אם גודל הפריסה גדול יותר מהגודל המהותי של האובייקט Painter, תוך שמירה על יחס הגובה-רוחב. ההתנהגות הזו תואמת יותר לציפיות לגבי הגדרת גדלים קבועים לתמונה, בלי להשפיע על התנהגות ברירת המחדל אם משתמשים רק בגודל המובנה כדי לחשב את הגודל של הרכיב שאפשר להרכיב. (I40ae3, b/159838006)
- משתמשים ב-AnimationSpec במקום ב-AnimationBuilder בממשקי ה-API ברמה העליונה כדי להבהיר את הרעיון של הגדרת אנימציה סטטית. - משפרים את ה-DSL של המעבר על ידי הסרת הדרישה ל-lambda ליצירת AnimationSpec כמו tween ו-spring. במקום זאת, הם מקבלים ישירות פרמטרים של בנאי. –שיפור נוחות השימוש הכוללת ב-AnimationSpec על ידי פתיחת בנאים במקום להסתמך על בונים. –שינוי משך הזמן וההשהיה של KeyFrames ו-Tween ל-Int. כך נמנעים מהמרות מיותרות של סוגים ומעומס יתר של שיטות (לתמיכה גם ב-Long וגם ב-Int). (Ica0b4)
- המאפיין Clickable הוסר. שימוש ב-Modifier.clickable (I84bdf)
- נוספו LazyRowItems – אנלוגיה של LazyColumnItems לגלילה אופקית (Ibbcf7)
- השקנו ממשקי API של אנימציה ברמה נמוכה ללא שמירת מצב. ממשקי ה-API האלה (I63bf7)
- השימוש ב-androidx.ui.foundation.TextFieldValue וב-androidx.ui.input.EditorValue הוצא משימוש. גם קומפוזיציות מסוג TextField, FilledTextField ו-CoreTextField שמשתמשות בסוג הזה הוצאו משימוש. במקומה, אפשר להשתמש ב-androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- השימוש ב-IntPx הוחלף ב-Int. השימוש ב-IntPxPosition הוחלף ב-IntOffset. הוחלף IntPxSize ב-IntSize. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape הוסר; צריך להשתמש ב-androidx.ui.graphics.RectangleShape (I94939, b/154507984)
- כדי לאחד את מספר הכיתות שמשמשות לייצוג מידע על גודל, צריך להשתמש בכיתת הגודל במקום ב-PxSize. השימוש בטכניקה הזו מאפשר ליהנות מהיתרונות של מחלקה מוטמעת כדי להשתמש בערך מסוג long לאריזת 2 ערכים מסוג float שמייצגים רוחב וגובה. (Ic0191)
- כדי לצמצם את מספר המחלקות שמשמשות לייצוג נתוני מיקום, מומלץ להשתמש במחלקה Offset במקום ב-PxPosition. השימוש ב-inline class מאפשר ליהנות מהיתרונות של long כדי לארוז 2 ערכים מסוג float שמייצגים את ההיסטים x ו-y שמיוצגים כערכים מסוג float. (I3ad98)
- נוסף Modifier.zoomable לפונקציונליות של צביטה לזום (Id5d63)
- הוצאנו משימוש את הרכיב שאפשר להפעיל ולהשבית. מומלץ להשתמש ב-Modifier.toggleable במקום זאת (I35220, b/157642842)
- המאפיין MutuallyExclusiveSetItem הוצא משימוש. במקומו צריך להשתמש ב-Modifier.selectable. (I02b47, b/157642842)
- התג TestTag הוצא משימוש. במקומו, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)
- הוספת הפרמטר fontWeight לרכיב Text, שלא נוסף בטעות קודם לכן (I56937)
- הוחלף השימוש במחלקת Px במחלקות שונות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)
- רכיב VerticalScroller מספק עכשיו Column מחוץ לקופסה. הקומפוננטה HorizontalScroller מספקת עכשיו Row מחוץ לקופסה. (Ieca5d, b/157020670)
- החלפנו את השימוש במחלקה Px במחלקות שונות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)
- המאפיין modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג לחיצה/גרירה/אינדיקציה אחרת על רכיבים אינטראקטיביים מותאמים אישית (I8425f, b/155287131)
- רכיבי VerticalScroller ו-HorizontalScroller תומכים עכשיו בגלילה הפוכה אם המאפיין isReversed מוגדר ב-ScrollerPosition (I953bd)
- תמיכה בהוספת קומפוזיציות לפריסת טקסט. (I1373c)
- איחדנו את ההטמעות של CanvasScope, כך שעכשיו יש רק DrawScope ו-ContentDrawScope. שינינו את השם של CanvasScope ל-DrawScope. בוצע עדכון ב-DrawScope כדי להטמיע את הממשק Density ולספק את LayoutDirection בוטלה מחלקת המשנה DrawScope ב-ContentDrawScope בוצע עדכון ב-Painter וב-PainterModifier כדי שלא יחזיקו יותר במאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)
- הוסר ה-API DrawBackground שהוצא משימוש לטובת ממשקי API של תוסף drawBackground ב-Modifier. בוצע רפקטורינג של ההטמעות של color, brush ו-paint drawBackground כדי לצמצם את נתיבי הקוד וגם כדי להסיר את הדרישה ליצירת Modifier כחלק מהקומפוזיציה. (I0343a)
- ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שבמקום Canvas הם חושפים CanvasScope. כך הצרכנים לא צריכים לשמור אובייקטים של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה drawCanvas של התוסף, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
- רכיבי HorizontalScroller ו-VerticalScroller לא משחזרים את מיקום הגלילה שלהם באמצעות מצב מופע שמור. (Ia0fae, b/155075048)
- הוסר FocusManagerAmbient. משתמשים ב-FocusModifier.requestFocus כדי לקבל את המיקוד. (Ic4826)
- הסרנו באופן זמני את פריסת הטבלה עד שנוכל להחזיר אותה עם API מעודכן. (Id88a7)
נוצר CanvasScope API שעוטף אובייקט Canvas כדי לחשוף משטח API לציור דקלרטיבי ללא מצב. הטרנספורמציות כלולות בהיקף של המקלט שלהן, וגם נתוני הגודל מוגבלים לגבולות התואמים של התוסף. הוא לא מחייב את הצרכן לשמור אובייקט משלו של מצב הצביעה כדי להגדיר פעולות ציור.
נוספה האפליקציה CanvasScopeSample, ואפליקציית ההדגמה עודכנה כך שתכלול הדגמה של גרפיקה הצהרתית (Ifd86d)
הוסר ColoredRect. במקום זאת, משתמשים ב-Box עם modifier של drawBackground (I983c7, b/152753731)
הוספת התאמה אישית של צבע הסמן ל-TextField (I6e33f)
עכשיו אפשר להסתיר או להציג את המקלדת הווירטואלית באמצעות SoftwareKeyboardController, שמועבר על ידי הקריאה החוזרת (callback) onTextInputStarted (I8dc44, b/151860051)
השימוש ב-TextFieldValue עם TextField יכול לשרוד יצירה מחדש של פעילות כשמשתמשים בו כך:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce, b/155075724)נוספו פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי כדי להעביר מספר קטן של הפרמטרים האלה, כמו
Text(style = TextStyle(textAlign = TextAlign.Center)), עכשיו אתם יכולים פשוט לספק את הפרמטרים ישירות:Text(textAlign = TextAlign.Center)(I82768)החלפנו את הפרמטר focusIdentifier של CoreTextField/TextField ב-FocusNode כדי לשלב אותו עם מערכת המשנה של ההתמקדות. (I7ea48)
עדכון של TextField – במימד האופקי, הוא יתפוס את כל השטח הזמין שהוקצה לו (Ib08df, b/154638552)
נוספו InteractionState ו-Interaction, כדי להקל על יצירת רכיבים שמגיבים לשינויים במצב ממשק המשתמש, כמו לחיצה וגרירה (Icfe25, b/152525426)
RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null (Iabaa7)
עדכון של TextField API – מיזוג של קריאות חוזרות (callbacks) מסוג onFocus ו-onBlur לקריאה חוזרת יחידה מסוג onFocusChange(Boolean) עם פרמטר (I66cd3)
שינינו את השם של ScaleFit ל-ContentScale העברנו את ContentScale מהמודול ui-graphics למודול ui-core כדי שיהיה באותו מודול כמו Alignment API. שם המאפיין FillMaxDimension שונה ל-Crop שם המאפיין FillMinDimension שונה ל-Fit שם המאפיין Fit שונה ל-Inside כדי להתאים טוב יותר למאפיין ImageView.ScaleType נוספה תיעוד שמציין שהשילוב של Crop ו-Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_CROP, ושהשימוש ב-Fit עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER השימוש ב-Inside עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
הוסרה הפונקציה ProvideContentColor, במקומה אפשר להשתמש ישירות בפונקציה ContentColorAmbient עם
Providers(Iee942)הוספת פרמטר צבע לטקסט, שמאפשר לבטל את הצבע של סגנון הטקסט בלי צורך למזג אותו ידנית עם הסגנון שמופיע בערכת נושא. (I41a66)
שיפור DrawModifier API:
- הגדרנו את היקף המקבל של draw() כ-ContentDrawScope
- הסרה של כל הפרמטרים ב-draw()
- ל-DrawScope יש את אותו ממשק כמו ל-CanvasScope הקודם
- ל-ContentDrawScope יש שיטה drawContent() (Ibaced, b/152919067)
התכונה ColoredRect הוצאה משימוש. במקום זאת, אתם צריכים להשתמש ב-
Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)מערכת העיצוב של הצורות עודכנה בהתאם למפרט העיצוב של Material. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות לשימוש ברוב הרכיבים (Ifb4d1)
הוחלף Modifier plus operator בפונקציות של תוסף factory (I225e4)
התכונה Draggable הועברה ל-modifier (Id9b16, b/151959544)
הועבר
Textלחבילה androidx.ui.foundation, מ-androidx.ui.core. (I87ce5)הוספת הפרמטר
enabledל-Checkbox, Switch ו-Toggleable (I41c16)האפקט 'אדווה' הוא עכשיו אפקט שינוי. השימוש המומלץ ב-Clickable הוא
Clickable(onClick = { ... }, modifier = ripple())(Ie5200, b/151331852, b/150060763)הוספנו את VectorPainter API כדי להחליף את subcomposition API הקיים לגרפיקה וקטורית. התוצאה של subcomposition היא אובייקט VectorPainter ולא DrawModifier. הוצאנו משימוש את רכיבי ה-DrawVector הקודמים לטובת VectorPainter.
שינוי השם של
Image(Painter)API ל-PaintBox(Painter)נוצר רכיב Vector שאפשר להוסיף לו רכיבים אחרים, שמתנהג כמו רכיב Image, אבל עם VectorAsset במקום ImageAsset (I9af9a, b/149030271)נוצר קומפוזיציה של תמונה כדי לטפל בשינוי הגודל או בפריסה, בנוסף לציור של ImageAsset נתון במסך. רכיב ה-Composable הזה תומך גם בציור של כל מופע Painter שרירותי בהתאם לגודל הטבעי שלו, וגם בגודל קבוע נתון או בגודל מינימלי (Ibcc8f)
לרכיבים Button, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabledנפרד. השמות של חלק מהפרמטרים ב-Button השתנו או שהסדר שלהם השתנה. (I54b5a)שם המחלקה Image שונה ל-ImageAsset כדי להבדיל טוב יותר בין נתוני התמונה לבין רכיב ה-Image שיופיע בהמשך, שמשמש להשתתפות בפריסה ובהצגת תוכן.
נוצרת שיטת הרחבה ב-android.graphics.Bitmap,
Bitmap.asImageAsset(), כדי ליצור מופע של ImageAsset ששימושי לשילוב של פיתוח אפליקציות מסורתיות ל-Android עם מסגרת ה-Compose. (Id5bbd)הקומפוזיציה DrawImage הוסרה. שימוש ב-ImagePainter כדי לצייר תמונה בפריסה קיימת, או ב-SimpleImage כדי להוסיף תמונה שתופסת מקום (I595e1, b/149827027)
רכיב Stack תומך בכיווניות מימין לשמאל (Ic9e00)
הוספנו את הרכיבים Icon, IconButton ו-IconToggleButton והסרנו את הרכיב AppBarIcon. אפשר להחליף ישירות את השימושים הקיימים ב-AppBarIcon ב-IconButton, ועכשיו יהיה להם את משטח המגע הנכון. אפשר לעיין בדוגמאות כדי לקבל מידע על השימוש, ובסמלים כדי לראות את סמלי Material שסופקו ואפשר להשתמש בהם ישירות עם הרכיבים האלה. (I96849)
הקומפוזיציה DrawShape הוסרה. במקום זאת, צריך להשתמש בשינוי DrawBackground. (I7ceb2)
נוסף AdapterList, רכיב של רשימה עם אפשרות גלילה שמרכיב ומסדר רק את הפריטים הגלויים. בעיות ידועות כרגע כוללות את העובדה שהפריסה היא אנכית בלבד, ושהיא לא מטפלת באופן מלא בכל המקרים של שינויים ברכיבי הצאצא שלה. (Ib351b)
נוסף רכיב עם אפשרות גלילה, שמאפשר ליצור רכיבי גלילה או רשימות בהתאמה אישית (I5fd37)
שינוי השם של הרקע ל-DrawBackground והגדרתו כרקע שייזכר כברירת מחדל (Ia0bd3)
הוספת פרמטרים של שוליים פנימיים, גבול, צורה ורקע ל-Box (I05027, b/148147281)
נוסף רכיב Canvas. הקומפוזיציה הזו תופסת נפח מסוים (שמסופק על ידי המשתמש) ומאפשרת לכם לצייר באמצעות CanvasScope (I0d622)
שינוי שם של העיבוד
Borderל-DrawBorder(I8ffcc)נוסף רכיב Box לשילוב פריסה ופונקציונליות משותפת של ציור. (I6e2a7)
הגלילה מתבצעת עכשיו כמו במכשיר Android רגיל. (I922af, b/147493715)
הוחלף ב-DrawBorder לטובת Border Modifier (Id335a)
השם של Modifier.tag שונה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)
הפרמטר percent (אחוז) שמשמש ליצירת קווי הנחיה ב-ConstraintLayout (פריסת אילוצים) שונה ל-fraction (שבר). (Ida2db)
הוספנו תמיכה בשוליים של מחסומי ConstraintLayout. (I47ffe)
תוקנה תמיכה בפריסה מימין לשמאל ב-ConstraintLayout. נוספו ממשקי API שלא מודעים לכיוון הכתיבה מימין לשמאל. (I3b1c7)
נוסף DSL חדש ל-ConstraintLayout. פרטים נוספים מופיעים בדוגמאות. (Icaa9a)
נוספה ההערה @ExperimentalLayout. התגים ConstraintLayout, FlowRow ו-FlowColumn מסומנים עכשיו בתג הזה כדי לציין שממשקי ה-API שלהם עומדים להשתנות. (I412a8)
Modifier.padding(InnerPadding)נוסף (I94985, b/157133803)הוסרו RowAlign ו-ColumnAlign שהוצאו משימוש ב-Row וב-Column. (If60d4, b/155858731)
הוסר LayoutTag() שהוצא משימוש. במקומו צריך להשתמש ב-Modifier.tag(). הסרנו את השיטה Modifier.matchParent() שהוצאה משימוש. במקומה צריך להשתמש ב-Modifier.matchParentSize(). (If8044)
נוסף משנה הפריסה offsetPx, שאפשר להשתמש בו כדי להגדיר היסטים (דינמיים) בפיקסלים. (I5af57)
הקומפוזיציה AlignmentLineOffset הוצאה משימוש. במקומה צריך להשתמש במעצב relativePaddingFrom(). הקומפוזיציה CenterAlignmentLine הוסרה. (I60107)
נוסף משנה פריסה defaultMinSizeConstraints, שמגדיר אילוצי גודל לפריסה העוטפת רק כשהאילוצים התואמים הנכנסים לא מוגדרים (0 לאילוצי מינימום ואינסוף לאילוצי מקסימום). (I311ea, b/150460257)
המאגר הוסר. שימוש ב-Box במקום זאת (Ibbc2b, b/151407926)
הוסרו משני המאפיינים LayoutWidth/Height/Size שיצאו משימוש. (Ib0bc1)
הוספנו ערכי פרמטרים שמוגדרים כברירת מחדל לשינוי ההיסט. (I37f06)
נוסף משנה של מרווח פנימי סימטרי. (I39840)
הוסר שינוי מאפיין שיצא משימוש LayoutAspectRatio. (I65a74)
הוסרו משנים של LayoutAlign שהוצאו משימוש. (I10877)
תוקן באג במגדירי הרוחב והגובה שגרם לכך שהפריסה העוטפת נמדדה ללא אילוצים של הציר הנגדי. (I210b8, b/154797971)
נוספו הפרמטרים verticalGravity ו-horizontalGravity לרכיבים Row ו-Column, בהתאמה. (I7dc5a)
הפונקציות wrapContentWidth ו-wrapContentHeight עודכנו כך שהן מצפות ליישור אנכי או אופקי ולא ליישור כלשהו. העדכון של משנה הגרביטציה מאפשר יישור אנכי או אופקי. העדכנו את הרכיבים Row, Column ו-Stack כדי לתמוך ביישור רציף בהתאמה אישית. (Ib0728)
הפכנו את Alignment לניתן ליצירה עם ערכים שרירותיים. נוספו יישור דו-ממדי. (Ia0c05)
השם של EdgeInsets השתנה ל-InnerPadding. השם של הפרמטר innerPadding של לחצני Material שונה ל-padding. (I66165)
המאפיין alignToSiblings מקבל עכשיו Measured במקום Placeable. (I5788d)
נוספו משנים למידות של מדידות פנימיות, והוצאו משימוש הרכיבים ששימשו למטרה הזו. (I8295d)
הוספנו תמיכה בהתאמה אישית של מאפיינים של רכיבי צאצא של ConstraintLayout (Idb1a5)
הוסרו רכיבי Wrap ו-Center composable שהוצאו משימוש. (I29e23)
נוסף LayoutModifier2, API חדש להגדרת משני פריסה. הוצא משימוש LayoutModifier (If32ac)
מעכשיו אפשר לגשת לחברים ב-RowScope וב-ColumnScope מחוץ לשורה ולעמודה. (I3a641)
הוצאנו את מאגר התגים משימוש. במקום זאת, אפשר להשתמש ב-Box. (I675ce, b/151407926)
נוסף משנה המאפיינים LayoutOffset להזזת מיקום הפריסה (I0b8a3)
תמיכה ראשונית ב-RTL בפריסת Compose (Ia5519)
העדכון של LayoutAlign לא מאפשר יותר למלא את השטח הזמין (I2b14f)
הוסר קומפוזיציה של AspectRatio לטובת שינוי. נמחקו רכיבי FlexColumn, FlexRow ו-Spacing modifier שיצאו משימוש (Iec8a7)
הוסר המשנה LayoutInflexible עבור Row ו-Column (I0d820)
הטמעה של נקודות אחיזה לגרירת בחירה כדי לשנות את הבחירה ב-TextField. (I27032)
מטמיע LongPressAndDrag לבחירת TextField. (I17919)
תיקוני באגים
- המאפיין FocusModifier הוצא משימוש והוחלף במאפיינים Modifier.focus, Modifier.focusRequester ו-Modifier.focusObserver. המאפיינים FocusState ו-FocusDetailedState הוצאו משימוש לטובת FocusState2 (I46919, b/160822875, b/160922136)
- השם של
runOnIdleComposeשונה לrunOnIdle(I83607) - השמות של כמה ממשקי API לבדיקות השתנו כדי שיהיו אינטואיטיביים יותר. כל ממשקי ה-API מסוג findXYZ קיבלו שם חדש: onNodeXYZ. כל ממשקי ה-API מסוג doXYZ קיבלו שם חדש: performXYZ. (I7f164)
- הוסרה ההגדרה Modifier.ripple שהוצאה משימוש בעבר. הפונקציה clickable משתמשת עכשיו באפקט אדווה כסימן ברירת המחדל (אם הגדרתם MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש בפונקציה clickable ולקבל את אפקט האדווה בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של האפקט, אתם יכולים ליצור ידנית RippleIndication ולהעביר אותו ל-clickable כפרמטר של האינדיקציה. (I663b2, b/155375067)
- הוסרו ממשקי API לבדיקת גודל שיצאו משימוש. (Iba0a0)
- API ניסיוני של LayoutNode (I4f2e9)
- גרסה 1 של נעילת כיוון הגלילה מיושמת ב-Compose. (I1ce7a, b/150289741)
- חלונות קופצים, תיבות דו-שיח ותפריטים מקבלים עכשיו בירושה את MaterialTheme ההקשרי (Ia3665, b/156527485)
- הוסר פרמטר כיוון הפריסה מבלוק המידה של הפונקציה Layout(). עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)
- נוספה התכונה AbsoluteArrangement – מאפשרת סידור של רכיבי הצאצא בתוך השורה בלי שיקוף אוטומטי ב-RTL (I3a1df)
- ההערה @Untracked הוצאה משימוש. החלפה עם @ComposableContract(tracked=false) (Id211e)
- לפני השינוי הזה, התוסף של מהדר Compose היה מיירט באופן לא טריוויאלי קריאות ל-constructors בתוך פונקציית @Composable אם היה (I5205a, b/158123804)
- הוספת
viewModel()composable שמאפשר ליצור או לקבל ViewModel שכבר נוצר, בדומה לאופן שבו זה עובד ב-Activity או ב-Fragment (I5fdd1) בוצע רפקטורינג של מחלקת Radius כדי שתהיה מחלקה מוטמעת. הוסרו שיטות ליצירת רכיבים נלווים לטובת בנאי פונקציות עם פרמטר ברירת מחדל, כדי שהרדיוס לאורך ציר ה-Y יתאים לפרמטר הרדיוס החובה לאורך ציר ה-X.
הפונקציה DrawScope.drawRoundRect עודכנה כך שהיא מקבלת פרמטר רדיוס יחיד במקום 2 ערכי float נפרדים לרדיוס לאורך ציר x וציר y (I46d1b)
החלפנו את השימוש במחלקה Px בכמה מחלקות Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים. מחקנו את הכיתה Px במלואה (I3ff33)
החלפנו את השימוש במחלקת Px בכמה מחלקות Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)
החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)
החלפנו את השימוש במחלקת Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)
הסמן ב-TextField כולל אנימציית הבהוב (Id10a7)
כבר לא צריך להעביר GestureToken (Id7ae5) כדי להשתמש במחוות חלקיות.
החלפנו את השימוש במחלקה Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)
הפסקנו את ההוצאה משימוש של Modifier.semantics כדי לאפשר שימוש ברכיבים ברמה גבוהה. (I4cfdc)
שינוי השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)
עדכנו את Alignment API והוספנו תמיכה ביישור מוחלט (שלא משתקף אוטומטית בהקשר של כתיבה מימין לשמאל) (I38cd3)
אפשר למדוד את רכיבי הצאצא של Layout ו-LayoutModifier עם כיוון פריסה שונה. (Ibd731)
הוספנו פרמטר אופציונלי נוסף של rect ל-ImagePainter כדי לתמוך בציור של חלק משני של ImageAsset הבסיסי (I0ea9e)
תוקן קריסה ב-AdapterList כשמסירים פריטים (Ic64b0, b/153195921)
שינינו את האופן שבו אנחנו מודדים את הפריסה הראשונה שמוסיפים לבלוק activity.setContent { }. בעבר, הוא נאלץ למלא את כל המסך של הפעילות, ועכשיו הוא מתנהג כאילו הוספתם את הפריסה שלכם לתוך Stack: הוא יכול להיות קטן יותר מהמסך ויוצב בפינה השמאלית העליונה של המסך. אם רוצים את ההתנהגות הישנה, אפשר להחיל את Modifier.fillMaxSize() על הפריסה. (Ie88a7, b/153453714)
המודול ui-text-compose נקרא עכשיו ui-text. המודול ui-text מכיל עכשיו את רכיבי ה-Composable CoreText ו-CoreTextField (Ib7d47)
השם של המודול ui-text שונה ל-ui-text-core (I57dec)
העברנו את רכיבי ה-Composable ui-framework/CoreText ו-CoreTextField אל ui-text-compose. יכול להיות שכדאי לכם לכלול את ui-text-compose בפרויקט שלכם. (I32042)
runOnIdleComposeו-runOnUiThreadהן עכשיו פונקציות גלובליות במקום שיטות ב-ComposeTestRule. (Icbe8f)[Mutable]אופרטורים של נציגי מאפיינים של מצב הועברו לתוספים כדי לתמוך באופטימיזציות של נציגי מאפיינים ב-Kotlin 1.4. כדי להמשיך להשתמש ב-
by state { ... }או ב-by mutableStateOf(...), המתקשרים צריכים להוסיף ייבוא. (I5312c)הערכים של clipToBounds ו-clipToOutline ב-DrawLayerModifier וב-drawLayer() הם עכשיו false כברירת מחדל. (I0eb8b, b/152810850)
השם של LayoutResult שונה ל-MeasureResult. (Id8c68)
הוצא משימוש Center composable. צריך להחליף אותו ב-LayoutSize.Fill + LayoutAlign.Center או באחד מהקומפוזבילים Box או Stack עם שינויים מתאימים (Idf5e0)
השם של LayoutFlexible שונה ל-LayoutWeight. השם של הפרמטר tight שונה ל-fill. (If4738)
הפונקציה DrawVector השתנתה מפונקציה רגילה שניתן להרכבה להחזרת Modifier drawVector() שתצייר את הווקטור כרקע לפריסה. (I7b8e0)
מחליפים את הפונקציה Clip שניתנת להרכבה במקש הצירוף drawClip(). DrawClipToBounds הוא מקש צירוף נוח לשימוש כשצריך לחתוך רק את הגבולות של השכבה בצורת מלבן. (If28eb)
הפונקציה drawShadow() הניתנת להרכבה הוחלפה בשינוי (modifier) drawShadow(). הצללות מצוירות עכשיו כחלק מ-LayerModifier. (I0317a)
androidx.compose.ViewComposer הועבר אל androidx.ui.node.UiComposer androidx.compose.Emittable הוסר. הוא היה מיותר כי יש ComponentNode. הספרייה androidx.compose.ViewAdapters הוסרה. הם כבר לא נתמכים כתרחיש שימוש. הפונקציה Compose.composeInto הוצאה משימוש. במקומה, השתמשו ב-
setContentאו ב-setViewContent. השימוש ב-Compose.disposeComposition הוצא משימוש. במקום זאת, משתמשים בשיטהdisposeבאובייקטCompositionשמוחזר על ידיsetContent. הפונקציה androidx.compose.Compose.subcomposeInto הועברה אל androidx.ui.core.subcomposeInto הפונקציה ComponentNode#emitInsertAt שונתה ל-ComponentNode#insertAt הפונקציה ComponentNode#emitRemoveAt שונתה ל-ComponentNode#removeAt הפונקציה ComponentNode#emitMode שונתה ל-ComponentNode#move (Idef00)רכיב קומפוזבילי Wrap שהוצא משימוש. אפשר להחליף אותו במאפיין LayoutAlign או ברכיב Stack (Ib237f)
הגדרנו שהכיוון של הפריסה יועבר מהצומת של פריסת האב לצומתי הצאצא. נוסף משנה של כיוון הפריסה. (I3d955)
שינוי השם של Painter.toModifier ל-Painter.asModifier כי ל-Modifier שנוצר יש הפניה ל-Painter המקורי שאפשר לשתף בין כמה מופעים של Modifier (I7195b)
תמיכה בכיוון מימין לשמאל במאפיין LayoutPadding (I9e8da)
התצוגות Density ו-DensityScope מוזגו לממשק אחד. במקום ambientDensity(), אפשר עכשיו להשתמש ב-DensityAmbient.current. במקום withDensity(density), רק with(density) (I11cb1)
הוסר הערך ValueHolder class. שינינו את המבנה של המחלקות AnimatedValue ו-AnimatedFloat כדי להפוך את שדה ערך האנימציה למופשט, כך שמחלקות משנה יוכלו לעקוב אחרי עדכון הערך.
- נוספו מחלקות מודלים ל-AnimatedValue, AnimatedFloat וכו'.
- הוספנו קבוצה חדשה של ממשקי API קלי משקל מסוג @Composable להנפשה בין ערכים.
- (I79530)
שינויי תוכנה שעלולים לגרום לכשל ב-API של מצב אווירה. פרטים נוספים מופיעים ביומן ובמסמכי התיעוד של
Ambient<T>(I4c7ee, b/143769776)המיקומים של קו היישור שמוחזרים מ-Placeable#get(AlignmentLine) כבר לא יכולים להיות null. אם קו היישור שנשלחה לגביו השאילתה חסר, יוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
תוקן באג ב-ConstraintLayout שגרם לקריסה בהרכבות מחדש. (Ibee5a, b/158164341)
בוצע שינוי ב-API של trailing lambda עם Constraints. עכשיו, במקום שני פרמטרים, יש לו היקף של מקבל, שבנוסף למגבלות ול-layoutDirection מספק את המאפיינים minWidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
השם של LayoutModifier2 שונה ל-LayoutModifier. (Id29f3)
לפונקציות המדידה המובנות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק API של שאילתות מובנות עם כיוון פריסה שמופץ באופן מרומז. (Id9945)
המאפיין LayoutDirectionAmbient הוצא משימוש. כדי לקרוא את כיוון הפריסה שמוגדר על ידי הלוקאל, משתמשים ב-localeLayoutDirection ב-ConfigurationAmbient (I851b1)
נוספו positionInParent ו-boundsInParent ל-LayoutCoordinates. (Icacdd, b/152735784)
הקומפוזיציה ParentData הוצאה משימוש. אפשר ליצור משנה שמטמיע את הממשק ParentDataModifier, או להשתמש במשנה LayoutTag אם רוצים רק לתייג רכיבי צאצא של פריסה כדי לזהות אותם בתוך בלוק המדידה. (I51368, b/150953183)
מוסיפים OnPositionedModifier ו-OnChildPositionedModifier כדי להחליף את הפונקציות OnPositioned ו-OnChildPositioned שאפשר להרכיב. (I2ec8f)
אי אפשר להשתמש בערך שלילי של ריווח פנימי ב-LayoutPadding. במקום זאת, צריך להשתמש ב-LayoutOffset כדי להגדיר היסטים שליליים של מיקום. (Ifb5b1)
הפרמטר LayoutDirection נוסף ל-WithConstraints (I6d6f7)
הדגל
ComposeFlags.COMPOSER_PARAMעודכן ל-true, מה שישנה את אסטרטגיית יצירת הקוד לתוסף הכתיבה. ברמה גבוהה, הפעולה הזו גורמת ליצירה של פונקציות עם הערה @Composable עם פרמטר סינתטי נוסף, שמועבר לקריאות הבאות עם הערה @Composable כדי שזמן הריצה ינהל את הביצוע בצורה תקינה. זהו שינוי משמעותי שגורם לשבירת תאימות בינארית, אבל הוא אמור לשמור על תאימות ברמת המקור בכל השימושים המאושרים של Compose. (I7971c)השדה LayoutCoordinates השתנה כך שהשדה providedAlignmentLines הוא Set ולא Map, והשדה LayoutCoordinates מטמיע את האופרטור get() במקום זאת כדי לאחזר ערך. כך קל יותר לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משנה. (I0245a)
התכונה position כבר לא קיימת ב-LayoutCoordinates. המאפיין position לא הגיוני כשמביאים בחשבון LayoutModifiers, rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מקואורדינטת פריסה אחת לקואורדינטת פריסה אחרת.
ב-LayoutCoordinates נעשה שימוש ב-IntPxSize במאפיין size במקום ב-PxSize. בפריסות משתמשים בגדלים של מספרים שלמים בפיקסלים, ולכן כל הגדלים של הפריסות צריכים להיות מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)
שיפורים בממשק ה-API של Constraints (I0fd15)
נוסף TextDirection.Content (I48f36)
התאמה של תפריט סרגל הכלים כדי שהאפשרויות 'העתקה', 'גזירה' ו'הדבקה' יוצגו בצורה תקינה. (Id3955)
הוספת FloatingToolbar לבחירת TextField. (Ie8b07)
השם של TextDirectionAlgorithm שונה ל-TextDirection (I75ce8)
השם של TextDirection השתנה ל-ResolvedTextDirection (I3ff38)
הוספת HapticFeedback ל-TextField Selection. (I58050)
הוספת שיטות להעתקה, לגזירה ולהדבקה לבחירת TextField. (Idb70b)
התכונות TestTag ו-Semantics נמחקו. במקום זאת, אפשר להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0, b/158841414)
שם החבילה של Locale ו-LocaleList השתנה מ-androidx.ui.text ל-androidx.ui.intl (I8132c)
שינוי ב-API: השם של
AnnotatedString(builder: Builder)שונה ל-annotatedString(builder: Builder). (Ia6377)שינוי ב-API: השם של
AnnotatedString.Itemשונה ל-AnnotatedString.Range. (I2d44d)הוספת סרגל כלים לפעולות שקשורות לטקסט. (I49d53)
הגרסה החדשה של LifecycleOwnerAmbient זמינה עכשיו. עכשיו פעילות שמשתמשים בה עם Compose UI צריכה להרחיב את androidx.activity.ComponentActivity (או AppCompatActivity). הפונקציה setContent ב-android.app.Activity הוצאה משימוש (Idb25a, b/153141084)
שם החבילה ui-android-text (androidx.text) הוחלף ב-androidx.ui.text.platform כדי להתאים למדיניות androidx. (I42711)