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)
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 7 באוקטובר 2026 | 1.12.1 | - | 1.13.0-beta01 | - |
מבנה
Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציות, ולכל אחת מהן יש קבוצה משלה של הערות על הגרסה.
בטבלה הזו מוסבר על הקבוצות ומופיעים קישורים לכל קבוצה של הערות מוצר.
| קבוצה | תיאור |
|---|---|
| compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
| compose.compiler | אפשר להשתמש בפלאגין של Kotlin Compiler כדי לשנות פונקציות @Composable ולהפעיל אופטימיזציות. |
| compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
| compose.material | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
| compose.material3 | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הדור הבא של Material Design. Material 3 כולל רכיבים ועיצובים מעודכנים, ותכונות התאמה אישית של Material You כמו צבע דינמי. הוא מתוכנן להיות עקבי עם הסגנון החזותי וממשק המשתמש החדשים של Android 12. |
| compose.runtime | אבני הבניין הבסיסיות של מודל התכנות וניהול המצב של Compose, וזמן הריצה המרכזי של פלאגין מהדר Compose לטירגוט. |
| compose.ui | רכיבים בסיסיים של ממשק משתמש ב-Compose שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, ציור וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר ה-Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.12.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.12.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.13
גרסה 1.13.0-beta01
7 באוקטובר 2026
androidx.compose.foundation:foundation-*:1.13.0-beta01 מופץ. גרסה 1.13.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו הערות
@FloatRangeו-@IntRangeלפרמטרים שלPolygonShapeו-PolygonShapeScope, והגבלנו אתinnerRadiusRatioב-PolygonShape.starוב-PolygonShape.pillStarל-(0f, 1f). (I47ea3) - עדכון של ממשקי ה-API של
PolygonShape: העברנו אתCornerRoundingלרמה העליונה עם יצירתdp()ו-fraction(), והחלפנו את התוספיםtransformed()ו-scaledToFit()ב-PolygonShape.transform(PolygonShapeTransformScope.() -> Unit)ו-PolygonShape.copy()שניתנים לשינוי במקום. (If5970) - תוקן באג שבו בקשת מיקוד ב-
BasicTextFieldלפני שהחלון התמקד (למשל ב-onCreate) גרמה לכך שהמקלדת הווירטואלית לא הופיעה. BasicTextFieldChromeOS ימתין עכשיו עד שהחלון יתמקד לפני הפעלת סשן הזנת הטקסט. אם השינוי הזה גורם לבעיות למפתחים, אפשר לחזור להתנהגות הקודמת על ידי הגדרתComposeFoundationFlags.isTextFieldWaitWindowFocusForInputSessionEnabledכ-false. (I4206b) - הספריות מכוונות עכשיו ל-Kotlin 2.2 ונדרש kotlinc 2.2 (I82396, b/498369605)
- נוספה שיטה
styleLayer()ל-CommonStyleשמצהירה שכל המאפיינים בשכבה יקבלו עדיפות על פני מאפיינים שהוגדרו בשכבה נמוכה יותר. ה-methodstate()(ועוזרים לניהול מצב כמוpressed()) יוצר עכשיו שכבה באופן מרומז. (I24473)
תיקוני באגים
- תוקנה בעיה ב-
FlexBoxשבה הגדרה שגויה שלalignContent(FlexAlignContent.Stretch) גרמה לפריטים צאצאים להימתח עם השורה. (Ida156) - תוקנה בעיה ב-
FlexBoxשבה שורה אחת עם גלישת טקסט (FlexWrap.WrapאוFlexWrap.WrapReverse) הורחבה בכוח למגבלת הציר המשני המינימלית של הקונטיינר, מה שגרם לפריטים ב-alignContentוב-alignItemsלהיות לא מיושרים. (I038b1) - תוקן קראש של
IllegalStateExceptionבמהלך עדכון שלconsumeWindowInsets,windowInsetsPaddingאוonConsumedWindowInsetsChangedבצמתי שינוי מנותקים, למשל במהלך תנועה שלmovableContent. (I80ae5) - התלות ב-
androidx.lifecycle:lifecycle-runtimeעודכנה ל-2.10.0. הגרסה הזו נדרשת כדי להריץ בדיקות lint של זמן ריצה של מחזור חיים בחבילה עם AGP בגרסה 9.5.0-alpha04 ואילך. (I99bfd, b/556807521)
גרסה 1.13.0-alpha03
9 בספטמבר 2026
androidx.compose.foundation:foundation-*:1.13.0-alpha03 מופץ. גרסה 1.13.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוספנו תמיכה בציון הסגנון של חלקים נפרדים של קומפוננטה מורכבת (כמו
TextFieldאוDatePicker) ישירות בפרמטר הסגנון של הקומפוננטה. לדוגמה, אפשר ליצור קומפוזיציה שדומה ל-TextField, שמאפשרת להתאים אישית כל אחת מהתיבות של המעצב באמצעות סגנון, כך שאפשר לבטל את ההתאמה האישית ברמת הנושא או באתר הקריאה. (I43c0f) - העומסים העודפים של שדות טקסט ב-Material 2 שמקבלים פרמטרים של
value, onValueChangeהוצאו משימוש. צריך לבצע מיגרציה ל-overload שמשתמש ב-TextFieldStateכדי להעביר את המצב שלו. (I6b841, b/556234973) - ההערה
@ExperimentalFoundationApiהוסרה מהסרטוןundoStateב-TextFieldState. (I93a44) - מוסיפים אובייקטים של הגדרות ברירת מחדל לכל פריסת Lazy, שמכילים את ערכי ברירת המחדל שמשמשים בפונקציות
@Composeableהמתאימות. כרגע הוא מכיל רק את חלון ברירת המחדל של המטמון לכל פריסה. (I58633) - הפעלת הדגל
isUsingDynamicDefaultCacheWindowIn[List|Grid|StaggeredGrid]sגורמת לפריסות עצלות להשתמש בחלון מטמון שמשתמש בגודל הממוצע של פריטים גלויים כדי לבצע אחזור מראש לפני אזור התצוגה, עם חלון מינימלי של 10% מאזור התצוגה וחלון מקסימלי של 50% מאזור התצוגה. (I59212) - הוצאו משימוש
LazyListPrefetchStrategy,LazyListPrefetchScopeו-LazyListPrefetchResultScope. צריך להגדיר את התנהגות האחזור מראש באמצעותLazyLayoutCacheWindowב-LazyColumnאו ב-LazyRow.LazyLayoutCacheWindowמספק מנגנון הצהרתי של שמירת נתונים במטמון שמבוסס על אזור התצוגה, שמכין פריטים באופן אוטומטי לפני החלון הגלוי ושומר פריטים מאחורי החלון הגלוי, בלי צורך בפונקציות קריאה חוזרת מורכבות של תזמון אימפרטיבי. ה-API החדש פשוט יותר ודורש פחות שלבי הגדרה מאשרLazyListPrefetchStrategy. (I1fa2d) - הוספה של פונקציות ההרחבה
PolygonShape.transformedו-PolygonShape.scaledToFitב-Compose Foundation לצורך שינוי והתאמה של צורות פוליגון. (I3f327) - במסגרת השינוי הזה, בוצע רפקטורינג ב-Styles API לשני חלקים נפרדים: Styles DSL והמשנים שמוגדרים על ידי DSL. ההטמעה הקודמת שמבוססת על
Styleעדיין קיימת, אבל היא תוצא משימוש ותוסר. צריך להחליף את כל השימושים ב-API הזה ב-API החדש שמבוסס עלCommonStyle. - הרכיבים העיקריים שהוספנו:
-
CustomStyleו-CommonStyle: ממשקי בסיס ועוזרים למיזוג להצהרה על סגנונות שניתן להרכיב. -
StyleResolver: פותר את מאפייני הסגנון בקומפוזיציה וקושר לצמתי פריסה באמצעותModifier.styleResolver. -
Modifier scopes:Modifier.appearance, Modifier.placement, Modifier.paddingו-Modifier.graphicsLayerדינמיים מבוססי קריאה חוזרת. - פרימיטיבים של נכס:
stylePropertyOf, styleLocalOf. - סוגים שימושיים למאפייני סגנון:
Breadth,Fillו-Shadows.
-
- המשנים החדשים שימושיים ליישום מערכת עיצוב באמצעות Styles API, אבל הם לא נדרשים. יכול להיות שמערכת עיצוב תשתמש במאפיינים האלה או תספק מאפיינים משלה. (Ieb8cc, b/549921960)
- הוסרה ההערה
ExperimentalFoundationApiמממשקי API שלTextFieldBufferשעוקבים אחרי השינויים (I546a7) - הוספנו את
MorphPolygonShapeב-Compose Foundation לאנימציות מורפינג בין צורות פוליגון, יחד עם ממירים שלtoPolygonShape()ל-RoundedCornerShapeושל ל-CutCornerShape. (Ic5a89) - הוספנו את
PolygonShapeל-Compose Foundation כדי לעבד פוליגונים רגילים, פוליגונים בצורת כוכב ופוליגונים מעוגלים בהתאמה אישית עם החלקה של הפינות. (I0b99d) - הוצאנו משימוש עומסים של
BasicTextFieldשמקבלים פרמטרים שלvalue, onValueChange. צריך לבצע מיגרציה ל-BasicTextFieldoverload שמשתמש ב-TextFieldStateכדי להעביר את המצב שלו. (I636bf, b/552879150) - בדומה ל-
BasicTextField(value, onValueChange), גםVisualTransformationהוצא משימוש כי הוא נחשף רק דרך הטעםTextFieldהזה. ההמרות הקיימות יועברו אלOutputTransformation. (I636bf, b/552879150) - הוצאנו משימוש את האפשרות לספק
LazyLayoutCacheWindowו-LazyListPrefetchStrategyדרךLazyListState, ועכשיו צריך לספקLazyLayoutCacheWindowלפונקציה קומפוזבילית. (I71f19) - הוסר דגל תכונה זמני
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabled. (Ifff7f) - נוספה התכונה
InputTransformation.maxLengthTrimלהגבלת אורך הטקסט על ידי חיתוך של תווים עודפים בקלט, נוספה התכונהInputTransformation.maxLengthRejectלדחיית קלט שחורג מ-maxLength, והוצאה משימוש של התכונהInputTransformation.maxLengthלטובת התכונותmaxLengthTrimו-maxLengthReject. (I8d4cd)
תיקוני באגים
-
compileSdkCompose libraries updated to 37.1. לשם כך צריך לעדכן אתcompileSdkבאופן טרנזיטיבי בכל האפליקציות והספריות שמשתמשות ב-Compose. (I05b0f) - תוקנה בעיה שבה
WindowInsetsRulersIME insets לא סומנו כאנימציה במהלך ניווט חזוי אחורה, ותוקנה בעיה שבהimePaddingלא עודכן כשעברו בין שדות טקסט. (Id4562, b/537386261, b/539686000) - הרכיבים
SecureTextFieldו-OutlinedSecureTextField(וגם העומסים העודפים שלBasicSecureTextFieldשהוצאו משימוש) עודכנו כך שישתמשו ב-TextObfuscationMode.Systemכברירת המחדל של מצב ההסתרה במקום ב-TextObfuscationMode.RevealLastTyped. (I76c7e)
גרסה 1.13.0-alpha02
26 באוגוסט 2026
androidx.compose.foundation:foundation-*:1.13.0-alpha02 מופץ. גרסה 1.13.0-alpha02 מכילה את השמירות האלה.
שינויים ב-API
- העברנו את ממשקי ה-API של פריסת הרשת (
Grid, GridScope, GridConfigurationScope, GridFlow, Fr, GridTrackSize, GridTrackSpec, Modifier.gridItem) לגרסה יציבה. (I43ac4, b/462550392) - נוספה מאפיין סמנטי חדש
BackgroundColorל-Modifier.background (I7eec3, b/518049030) - הסרנו את ההערה
ExperimentalFlexBoxApiושינינו את השם של נכסים מבוססי-פיקסל ב-FlexConfigScopeעם הסיומתPxלשם הבהרה. (I5b24e, b/543092286) - רק פריטים במטמון נשמרים כשלא מפעילים מעבר lookahead. נוסף הדגל
isKeepAroundDuringLookaheadDisabled. כדי לחזור להתנהגות הקודמת, מגדירים את הדגל לערךfalse. (I110e9) - נוסף דגל הכתיבה
isLazyLayoutItemAnimatorVisibleBoundsFixEnabled. כשההגדרה הזו מופעלת, הגבולות של אינדקס הפריטים הגלויים מחושבים לפני הפעלת אנימציות של מיקום ב-LazyListוב-LazyGrid. (I56150) - תיקון צריכה במעבר הראשוני ב-Draggable. כך, אם אירוע של לחיצה ממושכת נצרך במעבר הראשוני, הגרירה מתחילה מיד במעבר הראשי. השינוי הזה בהתנהגות מוגבל על ידי דגל התכונה
ComposeFoundationFlags.isDraggableInitialPassConsumptionFixEnabled. (I6a77f, b/532946466)
גרסה 1.13.0-alpha01
12 באוגוסט 2026
androidx.compose.foundation:foundation-*:1.13.0-alpha01 מופץ. גרסה 1.13.0-alpha01 מכילה את השמירות האלה.
שינויי תוכנה שעלולים לגרום לכשלים
- בהמשך להודעה בגרסה הקודמת, ההטמעה של
Modifier.onFocusedBoundsChangedהוסרה לגמרי. השימוש במקש הצירוף הזה בלי תפעול (no-ops). כדאי לעבור לשימוש ב-FocusTargetModifierNode.getFocusedRect()כדי להריץ שאילתות על המידע הזה לפי הצורך. (Ia39db, b/220030968)
שינויים ב-API
- הוצאנו משימוש את האפשרות לספק
LazyLayoutCacheWindowו-LazyGridPrefetchStrategyדרךLazyGridState, ועכשיו צריך לספקLazyLayoutCacheWindowלפונקציה קומפוזבילית. (I3f31e) - הסרת הדגל
isSkipItemPlacementAnimationFixEnabled(I890f3, b/493183465) - הסרת הדגל
isClearNestedScrollCoroutineScopeFixEnabled(Iedfd7, b/506963276) - הדגל
isCacheWindowVisibleItemCountCheckEnabledשונה ל-isCacheWindowLookaheadCheckEnabled(I2ea06) -
TextFieldStateשומרת עכשיו מידע על סגנון הטקסט ומשחזרת אותו. AnnotatedString.Annotation.Saverעכשיו ציבורי כדי לאפשר שמירה ושחזור של אובייקטים מסוגAnnotatedString.Annotation. (I8b533, b/135556699) - הוספת חלון מטמון לפריסת רשת מדורגת עם טעינה עצלה. כדי לחזור להתנהגות הישנה של טעינה מראש, מגדירים את
isUsingCacheWindowInStaggeredGridsכ-false. (I1c70d) -
FlexBoxוממשקי ה-API הקשורים להגדרה שלו עברו לגרסה יציבה ולא מוגדרים יותר כניסיוניים. (I209ed, b/475491619) - הוספנו הגדרה של
maxItemsInEachLineל-FlexBoxכדי לאפשר הגבלת מספר הפריטים בכל שורה כשהאפשרות 'גלישת טקסט' מופעלת. (I2744b, b/475491619) - הוספת הערות לשיטות בסיס ריקות שניתנות לביטול ב-Compose עם
@EmptySuperכדי לציין שהטמעות של ביטול לא צריכות להפעיל את super. (Id407b) - העברנו את ממשקי ה-API של החשיפה והאנימציה של
WindowInsetsהתוכן המקודם לגרסה יציבה. (I37441, b/537329254) - כשלוחצים על רכיבים שאפשר ללחוץ עליהם, אפקטים קוליים של אינטראקציה מושמעים עכשיו באופן אוטומטי ב-Android. (Ia72f8)
- חלון המטמון ממלא עכשיו מחדש את החלון הקדמי אם מספר הפריטים הגלויים משתנה בלי שהמשתמש גלל. מגדירים את הדגל
isCacheWindowVisibleItemCountCheckEnabledלערךfalseכדי להשבית את הבדיקה הזו ולחזור להתנהגות הקודמת. (I67b5a) - הנכס
NestedScrollDispatcher.coroutineScopeעודכן כך שיחזיר בבטחה את הערךCoroutineScopeשבוטל כשהוא לא מצורף או מנותק. (I9b112, b/535290281) - השם של
enableNonScrollCachingשונה לisNonScrollCachingEnabled(I7a54b, b/535290282) - הוספנו @
CheckResultל-SemanticsNodeInteraction.isDisplayed() ול-isNotDisplayed() כדי לוודא שערכי ההחזרה שלהם מאומתים, וכך למנוע כשלים שקטים בבדיקות אם מפתחים משתמשים בהם בטעות במקום בממשקי API של טענות. (I1b447, b/508178494) - הפיכת
LazyLayoutCacheWindowליציב (I2cda3) - הוספנו את הפרמטר
bringIntoViewSpecלרכיב Horizontal ו-Vertical Pager כדי לאפשר עקיפה של הטמעת ברירת המחדל של Pager. (Icdcbf, b/505052292) - תוקן באג בזיהוי מצב חוסר פעילות בתזמון של אחזור מראש של פריסה עצלה. בעבר, יכול להיות שמתזמן המשימות חשב בטעות שהוא במצב בלי פעילות כשפריים מתעכב באופן משמעותי, מה שעלול לגרום לבעיות בממשק (jank) כשגוללים. כדי לחזור להתנהגות הקודמת, מגדירים את הדגל
isLazyPrefetchSchedulerIdleTimeFixEnabledשל הכתיבה כ-false. (If0594, b/458024295) - הצגת
coroutineScopeOrNull()ב-NestedScrollDispatcher, API חלופי לגישה להיקף של שגרת המשך (coroutine) האב של ה-dispatcher. (I18c0f) - תוקנה בעיה של הזזת טקסט אופקי במהלך גלילה מעבר לקצה במסך הכתיבה. אפשר להשבית את התכונה דרך
AndroidComposeFoundationFlags.isOverscrollPixelRoundingEnabled. (Ica169, b/532079110, b/532081619) - הוספנו את הדגל
isDraggableZeroDeltaConsumptionEnabledכדי לשלוט בהשקת התיקון הזה ב-Draggable. אירועי דלתא עם ערך אפס מעובדים עכשיו בצורה נכונה. (I50eb1, b/524163413) - כדי למנוע קריסות, בחירת הטקסט מוגבלת עכשיו בבטחה לאורך הטקסט במהלך עדכוני טקסט בו-זמניים. (I64fd7)
- מעכשיו ל-
androidx.benchmarkישminSdkשל 24. (Ic2a85) - הקישורים מטפלים עכשיו טוב יותר בקליקים כשהם משתרעים על כמה שורות. כדי לתמוך בזה, יעד המגע הוגדר כ-0. אם אתם לא רוצים שההתנהגות הזו תתרחש, אתם יכולים להשתמש בדגל
ComposeFoundationFlags.isLinkMinimumTouchTargetSizeZeroEnabledכדי לשנות אותה. (Ide41b, b/361106057) - תוקנה חריגה בנפח נמוך בכתיבה לאובייקט של מצב שניתן לשינוי. (I48194, b/503110696)
- הוספנו את האפשרות להציג את
keysב-SaveableStateHolderכדי לפשט את הניווט ואת ניהול המצב של היסטוריית הדפים, וכדי לבטל את הצורך במעקב חיצוני אחריkey. גישה דרךholder.keys; הסרה באמצעותremoveState. (I9bbbb, b/398887924) - מסירה פונקציית עזר ניסיונית ומיושנת
IndirectPointerEvent. (I05dee, b/499336763, b/501098299, b/501098376, b/513249467) - שיפור היציבות של
LocalBringIntoViewSpecב-Android. (Ibcb97) - הוספת דגל
isMultiLaneCacheWindowEnabled(I3d997) - נוצר API חדש
SelectionState, שיועבר אלSelectionContainerכדי לצפות בטקסט שנבחר ולעדכן את הבחירה באופן פרוגרמטי." אל androidx-main am: 929401883c am: c02871cac4 (I15bd4) - נוסף
LocalTextFieldContentObserverRegistrationExecutorשמציע דרך להעביר את הרישום המרומזContentObserverשמתרחש ב-TextFieldלשרשור ברקע. (Ib4fa6, b/505287297, b/509842675) - השם של
TextObfuscationMode.Defaultשונה ל-System. TextObfuscationMode.RevealLastTypedפועל עכשיו כביטול מוחלט ותמיד חושף את התו האחרון שהוקלד. ארגומנט ברירת המחדל שלBasicSecureTextFieldעודכן ל-System. (If26d3, b/425658491, b/453647378)
תיקוני באגים
- תוקנה בעיה שבה גלילה מהירה ב-Compose שמוטמע בתוך מאגר גלילה של Android (כמו
ScrollViewאוCoordinatorLayout) גרמה לפעמים לחישוב שגוי של המהירות. (I0f017) - תוקנה בעיה ב-
FlexBoxשבה מעבר המיקוד לא תאם לסדר החזותי של הפריטים כשמשתמשים בכיוונים הפוכים, בהעברה הפוכה או בסדר פריטים מותאם אישית. (I4cc61, b/521609263) - תוקנה בעיה שבה משנים סטנדרטיים של פריסות כמו
Modifier.fillMaxWidth()ו-Modifier.fillMaxHeight()לא השפיעו על פריטים בתוךFlexBox, אלא אם צוין גורם גדילה מפורש של flex. (Ib0ac3, b/515657458) - אופטימיזציה של אתחול ברמת הקובץ של
foundationמאפיינים של מחלקת ערכים ברמה העליונה באמצעות פונקציות גט דינמיות. (I570d7) - אופטימיזציה של אתחול אובייקט משני של
foundation-layoutמחלקות ערכים (WindowInsetsSidesוכו') באמצעות שימוש בפונקציות get דינמיות. (I01c2b) - תוקנה בעיה שבה פריטים בתפריט ההקשר של בחירת טקסט בכתיבת הודעה הציגו מחרוזות ישנות אחרי מעבר בין לוקאלים בתוך האפליקציה, כשפעילות ההפעלה מחדש הייתה מושבתת דרך
android:configChanges. (Ic910b, b/515156417) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
compose:foundation(KeyModifiers,MarqueeAnimationMode,Sourceוכו') באמצעות שימוש בשיטות גישה דינמיות. (I78455) - תוקנו אנימציות של סגנונות כדי להבטיח שכאשר מתבצע מעבר לערך שמוגדר באנימציה רק באופן מותנה, וממנו, הוא יטופל כאנימציה לערך ברירת המחדל של המאפיין וממנו. (I8e41d, b/527140078)
- תוקנה בעיה ב-Grid שבה פריטים שמוצבים אוטומטית עם טווח גדול יותר מהמסלולים הזמינים והמפורשים בכיוון המוגבל, חורגים מגבולות הרשת כשמחילים רווחים. (I00ce0, b/506570362)
- ניקוי פרטי ה-API (Ia8066)
- תוקן באג ב-
BasicTextFieldשגרם לכך שלא סופקו עדכונים של טקסט שחולץ ל-IME כשנדרש. (I746fa, b/203549026, b/492363474)
גרסה 1.12
גרסה 1.12.1
9 בספטמבר 2026
androidx.compose.foundation:foundation-*:1.12.1 מופץ. גרסה 1.12.1 מכילה את השמירות האלה.
גרסה 1.12.0
12 באוגוסט 2026
androidx.compose.foundation:foundation-*:1.12.0 מופץ. גרסה 1.12.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.11.0:
גרסה 1.12.0-rc01
29 ביולי 2026
androidx.compose.foundation:foundation-*:1.12.0-rc01 מופץ. גרסה 1.12.0-rc01 מכילה את השמירות האלה.
גרסה 1.12.0-beta02
1 ביולי 2026
androidx.compose.foundation:foundation-*:1.12.0-beta02 מופץ. גרסה 1.12.0-beta02 מכילה את השמירות האלה.
גרסה 1.12.0-beta01
17 ביוני 2026
androidx.compose.foundation:foundation-*:1.12.0-beta01 מופץ. גרסה 1.12.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- שינוי השם של פונקציית הבדיקה להפעלת אירועי מצביע עקיפים (I3ee35, b/509618414)
- השם של
TextObfuscationMode.Defaultשונה ל-System. TextObfuscationMode.RevealLastTypedפועל עכשיו כביטול מוחלט ותמיד חושף את התו האחרון שהוקלד. ארגומנט ברירת המחדל שלBasicSecureTextFieldעודכן ל-System. (If26d3, b/425658491, b/453647378) - הפונקציות
getSpanStylesו-getParagraphStylesעודכנו כך שהן מקבלותTextRangeבמקום אינדקסים נפרדים של התחלה וסיום. הבדיקות של הגבולות בשאילתות לגבי סגנונות שונו כך שלא יגרמו יותר לחריגות, ונמנעו קריסות כשמבצעים שאילתות לגבי מאפיינים שלTrackedRangesלא תקפים. (I62a9a, b/514404697) - נוספה התכונה 'אזורים עם שמות' לפריסת רשת. מפתחים יכולים עכשיו להגדיר אזורים סמנטיים באמצעות
GridConfigurationScope.area()ולהציב בהם פריטים באמצעות העומס החדש שלModifier.gridItem(area), וכך להפריד בין כוונות סמנטיות לבין קואורדינטות פיזיות. (Id9303, b/487503921) - נוספו אופרטורים ופונקציות של שילוב הגדרות עבור
FlexBoxConfigו-FlexConfigכדי לאפשר מיזוג ושינוי של הגדרות פריסה. (Icfdd8, b/475491619) - נוספו הפונקציות
RevealState.drag(),SwipeToRevealDragScope, ונחשףflingBehaviorמותאם אישית ב-SwipeToRevealכדי לאפשר שליטה פרוגרמטית בתנועות החלקה, בהיסטים ובאנימציות של התייצבות. (Ibfe56, b/484185090)
תיקוני באגים
- תוקנה בעיה שבה יכול להיות שסרגל הכלים לבחירת טקסט לא מעדכן את המיקום או הפריטים שלו. (Ib2566)
External Contribution
- ב-
SelectionContainer, מאפשרים בחירה (באמצעות העכבר) כדי להתחיל באזורים ריקים ביןTextפריטים שאפשר לבחור. (I93f69, b/502151445) - הוספת ממשק
AndroidClipboardלבדיקה כדי לספק דרך ליצור מוקאפ של הטמעה של לוח העריכה (Ie4d72, b/512924975) - הוספת תאימות לדורות קודמים ל
TextAttributeוריאציות שלcommitText()ושלsetComposingText(). ב-SDK בגרסה 37 ומעלה, שירותי הנגישות יוכלו להודיע אם נבחר טקסט חלופי להצעה. ב-SDK<37, לא תהיה השפעה על משוב קולי (כלומר, על אופן הפעולה הקיים). (I90e3d, b/439879822)
גרסה 1.12.0-alpha03
19 במאי 2026
androidx.compose.foundation:foundation-*:1.12.0-alpha03 מופץ. גרסה 1.12.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- ב-Style API הניסיוני, הוספנו תמיכה ביצירת סוגי סגנונות מותאמים אישית שיכולים לכלול היקפי סגנון מותאמים אישית. כך אפשר להגדיר תת-קבוצה של המאפיינים שניתנים להגדרה על ידי סגנון (למשל, להסיר לחלוטין את שכבת הגרפיקה או מאפייני הטקסט), וגם להרחיב את היקף ההגדרה באופן עצמאי מסגנונות אחרים (למשל, לתמוך רק בתחביר
playing { }ב-MediaPlayerשאפשר להרכיב). השינוי הזה פוגע בתאימות של קוד המקור והקובץ הבינארי. השינוי העיקרי שגורם לאי-תאימות למקור הוא שפונקציות העזר ב-StyleScopeעברו להיות פונקציות הרחבה (לדוגמה,fun contentProperty(all: Dp)היא עכשיו פונקציית הרחבה). כדי שהקוד שקורא לשיטות האלה יתקמפל בצורה תקינה, צריך לייבא את פונקציות התוסף הנדרשות או לייבא את כל הסמלים מ-androidx.compose.foundation.styles. (I1ef27, b/493676648). - הטמעות של
ScrollIndicatorStateמחזירות עכשיו בצורה נכונה את היסט הגלילה מההתחלה החזותית עבור פריסות הפוכות, וכך מבטיחות הצגה חזותית נכונה של האינדיקטורים. (Ia3fae, b/503604996) - נוסף דגל
isClearNestedScrollCoroutineScopeFixEnabledכדי לשלוט בתיקון. (Ibd394, b/505343254)
External Contribution
- הפעלת גלילה אוטומטית כשגוררים בחירת טקסט מעבר לאזור התצוגה ב-
SelectionContainer. (Ibcb08, b/424433794)
גרסה 1.12.0-alpha02
6 במאי 2026
androidx.compose.foundation:foundation-*:1.12.0-alpha02 מופץ. גרסה 1.12.0-alpha02 מכילה את השמירות האלה.
גרסה 1.12.0-alpha01
22 באפריל 2026
androidx.compose.foundation:foundation-*:1.12.0-alpha01 מופץ. גרסה 1.12.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- נוסף דגל חדש
isBasicTextFieldHeighInLinesOptimizationEnabledכדי לאפשר אופטימיזציה בחישוב הגובה של שדה טקסט במספר השורות המינימלי/מקסימלי. היא אמורה להיות מופעלת כברירת מחדל. אם אתם מוצאים נסיגות בפריסת שדה הטקסט והשבתת הדגל הזה פותרת את הבעיה, עליכם לדווח על באג לצוות Compose כדי שיבדוק את העניין. (Idffae, b/486871837, b/487546327) - תיקון הבחירה של
textfieldבזמן עריכת טקסט באמצעות תנועה. (I6fd98, b/490509264) - הוספנו תמיכה ב-
colorFilterל-StyleScopeב-Compose Foundation. (I553a0) textMotionנוסף לרשימהStyleScope. (Id8523, b/482301609)- מוסיף עוד
KeyboardTypeאפשרויות להשלמת קבוצת האפשרויות הנתמכות במקלדת ב-Android, כולל תאריך, שעה, תאריך ושעה, מספר עשרוני עם סימן ועוד. (I3713e, b/202353328) - הסרת דגל
isNestedDraggablesTouchConflictFixEnabled(I79e52, b/485966180) - הסרת דגל
isDelayPressesUsingGestureConsumptionEnabled(I533dd, b/485966702) - הסרת הדגל
isBringIntoViewRltBouncyBehaviorInPagerFixEnabledכי הוא פורסם בגרסה יציבה. (I73fb2, b/485967682) - הסרת הדגל
isCacheWindowRefillFixEnabledכי הוא פורסם בגרסה יציבה. (Ic7505, b/485967875) - הסרה של
ComposeFoundationFlags#isNonSuspendingPointerInputInCombinedClickableEnabled(I1f76c, b/485966320, b/477836055) - נוספו עומסים יתרים ל-
contentPaddingול-externalPaddingב-StyleScopeשמקבליםPaddingValues. (I3a6ce, b/493154098) - השתנה
VelocityTrackerלשימוש בהטמעה שסופקה על ידי Android Framework (ניתן להגדרה באמצעותAndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, b/359962905)
תיקוני באגים
- השתנה האופן שבו מתבצע מעקב אחרי אנימציות ומאפיינים, כדי למנוע חפיפה בין אנימציות של אותו מאפיין. (I4921f)
- תוקן הבאג שגורם לקריסה של תפריט ההקשר כש
TextField(או טקסט שאפשר לבחור) נמצא בתיבת דו-שיח. (I21461, b/441759435) - עדכון של Compose
compileSdkל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743) - תוקנה בעיה בפריסת רשת שבה המיקוד במקלדת והמעבר בין רכיבי הנגישות התבססו על סדר הקומפוזיציה של הפריטים ולא על סדר המיקום החזותי בצורת Z. (I122a8, b/494096503)
- תוקן באג שגרם לסרגל הכלים לבחירת טקסט להיעלם באופן שגוי כשהידיות של ההתחלה והסוף היו מיושרות אופקית (למשל, כשבוחרים טקסט בכמה שורות שמסתיים בשורה ריקה). (I391d2, b/497724722)
- תוקנה בעיה ב-
FlexBoxשבה פריטים לא הצטמצמו בצורה נכונה כשהם חרגו מגבולות המאגר. (Ia741d, b/480797591) - תיקון באג שגורם לכך ש-
foregroundColorלא נפסל בצורה נכונה. (I74abe, b/493245886) - תוקנה בעיה שבה ה-inset לא היה עדכני במקרים שבהם ה-listener של ה-inset עבור Compose היה מנותק ומחובר מחדש. (I1e905, b/491346046, b/486084139)
- כשמשתמש מעביר את הסמן מחוץ לאזור שאפשר לגלול בו, הסמן עובר לאזור הגלוי. (If694c, b/266094055)
גרסה 1.11
גרסה 1.11.4
1 ביולי 2026
androidx.compose.foundation:foundation-*:1.11.4 מופץ. גרסה 1.11.4 מכילה את השמירות האלה.
גרסה 1.11.3
17 ביוני 2026
androidx.compose.foundation:foundation-*:1.11.3 מופץ. גרסה 1.11.3 מכילה את השמירות האלה.
גרסה 1.11.2
19 במאי 2026
androidx.compose.foundation:foundation-*:1.11.2 מופץ. גרסה 1.11.2 מכילה את השמירות האלה.
גרסה 1.11.1
6 במאי 2026
androidx.compose.foundation:foundation-*:1.11.1 מופץ. גרסה 1.11.1 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה ב-
FlexBoxשבה פריטים לא הצטמצמו בצורה נכונה כשהם חרגו מגבולות המאגר. (Ia741d, b/480797591)
גרסה 1.11.0
22 באפריל 2026
androidx.compose.foundation:foundation-*:1.11.0 מופץ. גרסה 1.11.0 מכילה את השמירות האלה.
גרסה 1.11.0-rc01
8 באפריל 2026
androidx.compose.foundation:foundation-*:1.11.0-rc01 מופץ. גרסה 1.11.0-rc01 מכילה את השמירות האלה.
שינויים ב-API
- תיקון הבחירה של
textfieldבזמן עריכת טקסט באמצעות תנועה. (I2ba33, b/490509264)
גרסה 1.11.0-beta02
25 במרץ 2026
androidx.compose.foundation:foundation-*:1.11.0-beta02 מופץ. גרסה 1.11.0-beta02 מכילה את השמירות האלה.
שינויים ב-API
- נוסף הדגל
isReverseLayoutNestedScrollConnectionInPagerFixEnabledכדי לשלוט בהשקת התיקון הזה. (I07404, b/399800244) - השקנו את
isSkipItemPlacementAnimationFixEnabledכדי לשלוט בהשקת התכונה הזו. (Id665d, b/455884472, b/352584409, b/410487464, b/372509998) MinMax(min: Dp, max: Fr)נוסף לרשימהGridTrackSize. כך מפתחים יכולים להגדיר במפורש את הגבולות המינימליים של רצועה גמישה. השימוש ב-MinMax(0.dp, 1.fr)מאפשר לעקוף בהצלחה שאילתות מדידה פנימיות, כך שאפשר להציב רכיביSubcomposeLayoutכמוLazyColumnו-LazyRowבתוך רכיבי grid גמישים בלי שהדפדפן יקרוס. (Ieb8c2, b/483822148)
תיקוני באגים
- תוקן באג ב-
FlexBoxשגרם לפריטים להתכווץ בצורה שגויה כשהם הגיעו לגודל המינימלי שלהם. הפריטים משתפים עכשיו בצורה נכונה את המקום שפונה בכיווץ עם פריטים באותה רמה. בנוסף,FlexBoxכבר לא יגביל באופן מלאכותי את הפריטים בציר הראשי. אם אי אפשר להקטין את הפריטים מספיק כדי שיתאימו למאגר, הם יגלשו מהציר הראשי. משתמשים ב-Modifier.clipToBounds()אם רוצים לחתוך את התמונה. (Ief751, b/480797591) - למנוע גישה של Keep Around לאינדקסים לא חוקיים. (I19121, b/485626636)
- תוקנה בעיה ב-Grid שבה פערים בין שורות או עמודות שנוצרו באופן מרומז לא נכללו בחישוב הגודל הכולל של הקונטיינר, מה שגרם לחיתוך התוכן. (Ib9df8, b/480372415)
-
Clipboardו-ClipboardManagerמבקשים עכשיו את שירות המערכת בהפעלת ה-method הראשונה (If0016, b/487947860) - תוקנה בעיה ב-
RowעםArrangement.spacedByב-RTL, שבה פריטים שחורגים מהגבולות גורמים לפריסה ולריווח שגויים. (I44e53, b/476006478)
גרסה 1.11.0-beta01
11 במרץ 2026
androidx.compose.foundation:foundation-*:1.11.0-beta01 מופץ. גרסה 1.11.0-beta01 מכילה את השמירות האלה.
שינויים ב-API
- בוצעה אופטימיזציה של חישובי הגודל המינימלי הפנימיים של
BasicTextField. אם תרצו להשבית את ההגדרות האלה, תוכלו לעשות זאת דרךComposeFoundationFlags#isBasicTextFieldMinSizeOptimizationEnabled. (I70ade) - הוספנו את
rememberUpdatedStyleStateשהוא חלק מ-Style API הניסיוני. צריך להשתמש ב-rememberUpdatedכשיוצרים מופעים שלStyleStateכשפרמטרים של הרכיב שאפשר להרכיב (כמוenabled) מועתקים למצב הסגנון (Idf7ff, b/485510967) - שינוי השם של המאפיינים
PointerInputChangeו-HistoricalChangeכדי לאחזר את ערכי ההתאמה וההזזה. (I989a8, b/481333653) - הוספנו עוד פונקציונליות לממשקי API לבדיקת משטחי מגע, כדי לדמות עקומות וקלט שונים למחוות במשטח מגע. (I290fb, b/473603145, b/479213358)
- פיצול של
PointerEventType.Panהחדש ל-PointerEventType.PanStart, PointerEventType.PanMoveו-PointerEventType.PanEnd. באופן דומה,PointerEventType.Scaleמפולח ל-PointerEventType.ScaleStart, PointerEventType.ScaleChangeו-PointerEventType.ScaleEnd. הפיצול הזה מאפשר להעביר מידע נוסף על ההתחלה והסיום של מחוות הזזה ושינוי גודל שפלטפורמת Compose מפרשת, וכך מאפשר למטפלים בקלט של מצביע ב-Compose להשתמש במידע הזה כדי לזהות אירועים בצורה מתאימה, ובמיוחד לדעת מתי מסתיימת הזזה או שינוי גודל. (I4daf6, b/479285849, b/481333653) - נוספה
constraintsל-GridConfigurationScopeכדי לאפשר הגדרה של רכיבי grid על סמך הגודל הזמין. (I80a41, b/481205205, b/481205205) - שפת התצורה
FlexBoxDSL משתמשת עכשיו בפונקציות (למשל, grow(1f)) במקום במאפיינים (למשל, grow = 1f) להגדרה ב-FlexBoxConfigוב-Modifier.flex. (I8dbae, b/475491619)
תיקוני באגים
- תוקן באג שבו
OutputTransformationגורם להוספת תווים כפולים בחלק משיטות הקלט. (I9fdc0) - נוספה תמיכה בתנועות מהירות לגלול באמצעות משטח המגע (I55f8a, b/479285849)
- הוספת נקודות השוואה ל-Style API הניסיוני (I67437)
External Contribution
- מוסיפים מאפיין
InputTextSuggestionStateכדי לזהות את המצבים השונים שבהם יכול להיות קלט תעתיק כשהצעות להחלפת טקסט זמינות. בנוסף, נוסףTextCompositionRangeכדי לעקוב אחרי טווח ההרכבה של הטקסט הנוכחי בתעתיק; ערך null מציין שאין הרכבה במקום. (I7a67f, b/476472318) - נוספה עומס יתר חדש ל-
BasicTooltipBoxשמאפשר להגדיר אתpropagateMinConstraints, בדומה לפרמטר של Box עם אותו שם. כך אפשר להעביר את האילוצים המינימליים ישירות לצאצאים שלBasicTooltipBox, בלי ש-BasicTooltipBoxירחיב אותם. תודה, Steven Schoen! (Ib145f, b/467532639, b/301605744)
גרסה 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נכתב מחדש כדי לא להשתמש בקלט של מצביע השהיה כאופטימיזציה. התכונה הזו מופעלת באמצעות הדגל שאפשר להשבית אם נתקלים בבאג בהטמעה החדשה –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
- הוספת תמיכה במקשי התנועה
NumPad(I1ff12)
גרסה 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, שנדרש כשצריך קריאה חוזרת שלonRemeasured(). במקום להשתמש ב-LayoutAwareModifierNodeכללי יותר כשלא צריך קריאות חוזרות אחרות, עדיף להשתמש בממשק הזה ישירות. (If6fb0) - נוסף
visibleModifier שאפשר להשתמש בו כדי לדלג על ציור התוכן של Composable בלי להשפיע על המקום שהוא תופס. (Ia6871, b/158837937)
גרסה 1.10
גרסה 1.10.6
25 במרץ 2026
androidx.compose.foundation:foundation-*:1.10.6 מופץ. גרסה 1.10.6 מכילה את השמירות האלה.
תיקוני באגים
- ההגדרה
ComposeFoundationFlags.isPausableCompositionInPrefetchEnabledמושבתת כברירת מחדל כדי לטפל בבעיות יציבות. (I73960, b/482223006, b/488433633)
גרסה 1.10.5
11 במרץ 2026
androidx.compose.foundation:foundation-*:1.10.5 מופץ. גרסה 1.10.5 מכילה את השמירות האלה.
תיקוני באגים
- תוקנה בעיה ב-
IndexOutOfBoundsExceptionב-BasicTextFieldכשמשתמשים ב-OutputTransformationומוחקים טקסט. (I20ee1)
גרסה 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)
תיקוני באגים
- העמודה והשורה מעבירות עכשיו בצורה נכונה את המידה בפועל של הפריט אל
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
- מעדכנים את אסטרטגיית השליפה מראש (prefetch) של רכיב ה-Pager כך שישתמש בחלון מטמון במקום בפריט אחד שמוגדר כברירת מחדל בכיוון הגלילה. עכשיו, אחזור מראש ראשוני מופעל כברירת מחדל ב-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 היא לא צריכה, כך ש-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הטמעה של אינדיקציה שהוצאה משימוש, ומשתמשים בממשקי ה-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),LazyLayoutPrefetchStateומתודת התזמון שלוschedulePrecompositionו-schedulePrecompositionAndPremeasure. (I4362f, b/252853717) ו-LazyLayoutItemProvider(Icce09,b/261565751) - מתן הרשאה לכתיבה להפעיל את
ViewTreeObserver.OnScrollChanged. ההתנהגות הזו מוצגת באמצעות הדגלisOnScrollChangedCallbackEnabled. השקנו גם פונקציית הרחבה שלDelegatableNode dispatchOnScrollChanged. (I34b9d, b/238109286) - השקת
Modifier.scrollable2D,Scrollable2DStateוממשקי API נלווים ליצירת מצב. נוספו גם פונקציות נפוצות של תוסף גלילה. (Ic61c8, b/214410040) -
PrefetchSchedulerוההתאמה האישית הוצאו משימוש לטובת ההטמעה הפנימית שמבצעת את כל העבודה באופן אוטומטי. (I3a9a6, b/420551535) TextFieldState.edit { }כבר לא מוחק את היסטוריית הביטול. במקום זאת, היא יוצרת רשומה עצמאית לביטול הפעולה. אם רוצים שההתנהגות הרצויה תהיה ניקוי של מחסנית הביטול אחרי קריאה לעריכה, צריך להשתמש ב-TextFieldState.undoState.clearHistory(). (I12c14)- תפריט ההקשר וסרגל הכלים לבחירה תומכים עכשיו בפריטים חכמים (בחירה חכמה)
- נוסף טקסט עם סגנון
OutputTransformationכדי לאפשר עיצוב של הפלט שלTextFieldבאמצעות העמסת היתרstate. -
TextField: תפריט הקשר של התמיכה (תפריט לחיצה ימנית). - אם מעתיקים טקסט מכמה רכיבי Text composable ב-
SelectionContainer, עכשיו יתווסף תו מעבר שורה \n בין הטקסט שמגיע מרכיבי Text composable הנפרדים. (I25332, b/285036739) - הוספנו API ליצירת רשימות תבליטים מותאמות אישית דרך
AnnotatedString(I1d066, b/383269496, b/139326648) - ההגדרה
stateoverload ofBasicTextFieldתדאג שהסמן יישאר בתצוגה כשגודלו ישתנה. (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. הוא גם חשףcompositionLocalסטטיLocalTextClassifierCoroutineContextשאפשר להשתמש בו כדי לציין את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 של שינוי המחירים, הוספנו עוד ממשקי APIRelativeLayoutBoundsכדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8) - נוספה
detectDragGesturesoverload שכוללת שליטה ב-touch slop ובנעילת הכיוון. (Iadb0d) - השקת
Modifier.scrollable2D,Scrollable2DStateוממשקי API נלווים ליצירת מצב. נוספו גם פונקציות נפוצות של תוסף גלילה. (Ic61c8, b/214410040) - אי אפשר להשוות ישירות בין ערכי צבע של Compose ב-64 ביט לבין ערכי צבע של Android
ColorLongsכי מזהי מרחבי הצבעים לא מסודרים בחלק ממרחבי הצבעים. כדי להמיר בין מרחבי צבעים של 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.WindowInsetsיותאם אוטומטית לגודל ולמיקום של הילד כשהערך שלו מוגדר כ-False, כך שאין יותר צורך להגדיר אותו כ-True כברירת מחדל. העדכון הזה פותר את הבעיה שבה תצוגות צאצא לא קיבלו עדכונים שלWindowInsetsכברירת מחדל. מפתחים יכולים לבטל את ההסכמה לעדכון על ידי שינוי הערך שלComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabledל-true, או עדיף, על ידי הגדרת הערך שלAbstractComposeView.consumeWindowInsetsל-true בכל המקרים של תצוגת Compose. (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ללא פרמטר של אינדיקציה תומכים עכשיו רק במופעים שלIndicationNodeFactoryשסופקו באמצעותLocalIndication. השינוי הזה יחול כשקומפילציה מחדש של השימוש במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על תלות בינארית או על תלות מעבר. אם אתם מספקים ל-LocalIndicationהטמעה של אינדיקציה שהוצאה משימוש, ומשתמשים בממשקי ה-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ללא פרמטר של אינדיקציה תומכים עכשיו רק במופעים שלIndicationNodeFactoryשסופקו באמצעותLocalIndication. השינוי הזה יחול כשקומפילציה מחדש של השימוש במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על תלות בינארית או על תלות מעבר. אם אתם מספקים ל-LocalIndicationהטמעה של אינדיקציה שהוצאה משימוש, ומשתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים, וכדי לאפשר לפונקציות קומפוזביליות שמשתמשות במעבדים האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=falseכדי לבטל באופן זמני את השינוי הזה בהתנהגות, וכך לשדרג את Compose בלי שההעברה הזו תחסום אתכם. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שיצאו משימוש לשימוש ב-IndicationNodeFactoryבמקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר של ציון מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים של ציון שאינםIndicationNodeFactory, אבל לא מומלץ לעשות זאת מסיבות שקשורות לביצועים. (I6bcdc, b/316914333) - הוספנו דגל לשליטה בהתנהגות האוטומטית של שליפה מראש (prefetch) מקוננת:
isAutomaticNestedPrefetchEnabled(I8d448) - מגדירים עומס יתר ל-
LazyGridStateול-rememberLazyGridStateשמקבלLazyLayoutCacheWindow. (I51151) - מוסיף סרגלים לשינוי גודל החלון. הוספת
DerivedRulerכדי לאפשר חישוב של סרגל מסרגל אחר. משנה אתPlacmentScopeכדי להטמיע את הצפיפות. (I658bc, b/359260964) - נוספה פונקציית יצירה (factory function) עם אפס ארגומנטים
WindowInsets()כדי ליצור בקלותWindowInsetsריק. (I65f62, b/395311689) - נוסף
PaddingValues.ZeroלPaddingValuesריק. (If193e, b/386255688)
תיקוני באגים
- ההגדרה
stateoverload ofBasicTextFieldתדאג שהסמן יישאר בתצוגה כשגודלו ישתנה. (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 (חיתוך), כמו שהייתה מאז שהם הוצגו. - אפשר לבצע הרבה מקרים לדוגמה של
ContextualFlowRowבאמצעותFlowRow, אבל אנחנו מודעים לכך שזה לא נכון באופן כללי. אפשר להטמיע את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/Sizemodifiers כדי לטפל בגדלים פנימיים בצורה נכונה. (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) - נוספה הטמעה של ברירת מחדל ל-DSL החדש של
stickyHeader. (I68986) - המאפיין
LocalAutofillHighlightColorcomposition local use הוא מסוג 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מהפונקציה הניתנת להרכבהBasicText. נוסף הדגל הניסיוני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. זו הייתה סיבה אפשרית לקריסות מסוג measure called on a deactivated node (הפעלת מדידה בצומת שהושבת). (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שניתן להגדיר כ-nullable. אם הערך הוא null, והאינדיקציה שסופקה היאIndicationNodeFactory, אפשר ליצור את האינדיקציה רק כשצריך, מה שמשפר את הביצועים. אם אתם לא משתמשים ב-hoisting וב-MutableInteractionSource, מומלץ להעביר null במקום להעבירremember { MutableInteractionSource() }. - הגרסה
Indication#rememberUpdatedInstanceהוצאה משימוש. הוא גורם לירידה משמעותית בביצועים שאי אפשר להימנע ממנה, ומונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactoryAPI החדש.
- הוספנו API חדש של אינדיקציות,
- השימוש ב-
BasicTextFieldבאמצעותTextFieldStateיציב עכשיו, ואנחנו ממליצים לכל האתרים שמשתמשים ב-BasicTextField(value, onValueChange)להתחיל בהעברה ל-BasicTextField(TextFieldState). - התכונה
ClickableTextהוצאה משימוש. כדי להוסיף לטקסט קישורים שאפשר ללחוץ עליהם, משתמשים ב-BasicTextעם ההערה החדשהLinkAnnotationב-AnnotatedString. LinkAnnotationמאפשר עיצוב בהתאמה אישית על סמך מצב הקישור (למשל, מודגש, הצבת הסמן מעל). - חדש:
ContextualFlowRowו-Enhanced FlowRow/ColumnעםMaxLinesו-Overflow. אנחנו שמחים להודיע על שיפורים בתכונות הניסיוניותFlowRowו-FlowColumn, שכוללות עכשיו אתmaxLinesותמיכה בהצגת תוכן שגולש מעבר למסגרת, לצד השקת התכונותContextualFlowRowו-ContextualFlowColumn. המטרה של העדכון הזה היא לספק רכיבים עם ביצועים אופטימליים. הרכיבContextualFlow*מתאים למספר גדול של פריטים שמשתמשים בהגדרת maxLines קטנה ובלחצנים דינמיים של 'עוד' (+N). הרכיביםFlowRowו-FlowColumnמתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRowאו ב-FlowColumn, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם למקסימום של הציר הניצב, צריך להגדיר את הגלישה ל-FlowRowOverflow.Visibleאו ל-FlowColumnOverflow.Visibleבמהלך האתחול. כדאי לנסות אתContextualFlowRowSampleוFlowRowSampleכדי לראות דוגמאות לשימוש בתכונות החדשות האלה. (Ib9135, b/293577082) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyColumnוב-LazyRow. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי המאפיין הזה והשקנו שינוי מאפיין חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לתמוך בכל שלושת סוגי האנימציה: הופעה (fade in), היעלמות (fade out) ושינוי סדר. (I2d7f7, b/150812265) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות ה-API הרשמי של Android (
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 מכילה את השמירות האלה.
תיקוני באגים
- פונקציות שקשורות להזנת טקסט
SemanticsNodeInteractionperformTextReplacement,performTextInputו-performTextClearanceיחזירו עכשיו שגיאות של טענות (assertion) כשהן מופעלות עלTextFieldsלקריאה בלבד. (I4ae8f) - תוקנה בעיה ויזואלית בהיפר-קישורים. (I23311)
- תוקנה בעיה שבה מקש הצירוף
contentReceiverלא פעל עם חלק משיטות הקלט. - יצירת מהירות: מניעת הפצה של ערכי NaN ב-Compose UI וב-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) - הוסר 'Marquee' מהמאפיינים של
MarqueeDefaults. (Iad4f4) - הוסר
TextLinkStylesמהכיתהTextStyle. במקום זאת,TextLinkStylesהוא חלק מהבונהLinkAnntationומהשיטהAnnotatedString.fromHtml(I90b2b) - תוקן באג שגרם לכך שהרכיב Pager קפץ כשמבצעים תנועת החלקה לכיוון גבול, כשהוא כבר נמצא בגבול. (I9f373, b/339171222)
- עכשיו יש ב-BTF2 מחוות נכונות לבחירה באמצעות העכבר. (Ibe8c6)
External Contribution
- שליחה מחדש של 'שיפור הדיוק של חישוב הזמן של יצירת הודעה או מדידה על ידי התבססות על סוג התוכן באחזור מראש' (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 בטקסט. הסרנו את ה-methods מה-
TextDefaultsכדי ליצורLinkAnnotationsעם עיצובים וניתוח של HTML עם קישורים מעוצבים. במקום זאת, הוספנו מחלקהTextLinkStylesשמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93) - החלפנו את
onDragStartedואתonDragStoppedבקריאות חוזרות (callback) שלא גורמות להשהיה. (I59de8)
תיקוני באגים
- תוקן באג שגרם לקריסה של Pager כשהערך של
contentPaddingהיה גדול מהמגבלות הנכנסות. הכלי Pager מאלץ עכשיו ערכים שליליים שמוחזרים מ-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) - תוקנה בעיה שבה הערך של
AnchoredDraggableStatecurrentValueהשתנה כשמתקרבים לגבולות של המצב. (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(), שמאפשר לתמוך בכל שלושת סוגי האנימציה: הופעה (fade in), היעלמות (fade out) ושינוי סדר. (Ib7d12, b/330510929) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyVerticalStaggeredGridוב-LazyHorizontalStaggeredGrid. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי המאפיין הזה והשקנו שינוי מאפיין חדש ולא ניסיוני בשםModifier.animateItem(), שמאפשר לתמוך בכל שלושת סוגי האנימציה: הופעה (fade in), היעלמות (fade out) ושינוי סדר. (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ב-Pager. בכל מעבר מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח על ידי קריאה ל-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כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (תופעת לוואי) וגלגל העכבר והמקלדת (UserInput). (I40579) - הוספנו את
LocalBringIntoViewSpec, התנהגות גלילה שמתמקדת ברכיבים ותלויה בפלטפורמה, שמוחלת בשכבת ה-modifier של Scrollable. (I27aa5, b/317453911) - בוצעה הסרה של
TextFieldCharSequence. TextFieldBuffer.originalValuesמוחלף ב-TextFieldBuffer.originalTextוב-TextFieldBuffer.originalSelection. (I2c7d6) - השדה
ImeOptions.hintLocalesכבר לא יכול להיות ריק. אם רוצים להעביר רשימה ריקה של לוקאלים, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4) - השם של
getOffsetFractionForPageשונה ל-getOffsetDistanceInPages. (Ia05e2)
תיקוני באגים
- כשמצטרפים
InputTransformationsל-next, המערכת ממזגת עכשיו אתKeyboardOptionsשלהם בצורה תקינה באמצעות אפשרויות נפרדות, בשיטה החדשהKeyboardOptions.merge. (Ie5304, b/295951492) -
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(), שמאפשר לתמוך בכל שלושת סוגי האנימציה: הופעה (fade in), היעלמות (fade out) ושינוי סדר. (I2d7f7, b/150812265) - לקוחות של
LazyColumn/LazyRowיכולים עכשיו לבטל את ההסכמה לשמירת אינדקס על סמך המפתח למעבר הקרוב למדידה, על ידי קריאה ל-LazyListState.requestToScrollשלא גורמת להשעיה. (I98036, b/209652366) - הוספנו את ה-method
parseAsHtmlלמחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString. הערה: לא כל התגים נתמכים. לדוגמה, אי אפשר להציג עדיין רשימות עם תבליטים. (I84d3d) - הוספנו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות Android API רשמי (
ScrollCaptureCallback). התכונה הזו ניסיונית, ויכול להיות שהיא לא תפעל כרגע בכל המקרים. לכן, כרגע היא מושבתת כברירת מחדל. כדי להצטרף, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabledלערך true. הדגל הזה יוסר לפני גרסת בטא 1.7. (I2b055, b/329296471) - הוספנו API חדש של
GraphicsLayerכדי לספק גמישות רבה יותר במיקום ובהצגה של מופעיGraphicsLayer, ולתמוך בתכונות הצגה פנימיות בלי צורך בתיאום עם הטמעות של Composable כדי לציין מופעי משנה שלGraphicsLayer.
שינויים ב-API
- לכל הפרמטרים
KeyboardOptionsיש עכשיו ערך לא מוגדר כברירת מחדל. נוספה שיטתKeyboardOptions.merge. - שם המאפיין
KeyboardOptions.autoCorrectשונה ל-autoCorrectEnabled, והוא יכול להכיל ערך null, שמציין שלא צוין ערך. (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. TextFieldBuffernow הוא היקף המקבל בפונקציה. (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שמקבל lambda הוסר כיReceiveContentListenerהוא עכשיו ממשק פונקציה. - השם של
Modifier.receiveContentהשתנה לשםModifier.contentReceiver. (I1e6af) - השם של
TransferableContent.consumeEachשונה ל-TransferableContent.consume. (I1e462) -
rememberTextFieldStateעבר לשלב של 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את האפשרות להציע שיטות קלט בשפות מסוימות כדי להגדיר מראש שפה מועדפת. (Id18c2) - הוסרו העומסים העודפים של
BasicTextField2ו-BasicSecureTextFieldשהיו בשלב הניסוי וכללו את הפרמטריםvalue: Stringו-onValueChange: () -> String. (I568b4) - מוסיפים פונקציה אופציונלית
applySemanticsל-InputTransformationכדי להשפיע על הסמנטיקה שלBasicTextField2שאליה היא מוחלת. (I74a2f, b/170648072) - ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית
GetScrollViewportLengthכדי שנוכל להעביר מידע על הרכיבים שמוצגים בגלילה ב-Compose למערכת הנגישות. ב-CL הזה מיושם גם השימוש במאפיין הזה ברשימות הניתנות לגלילה של Foundation. (Ic5fa2) - השם של
BasicTextField2השתנה לשםBasicTextField. (Ie5713) -
FocusRequester.createRefsיציב עכשיו (I4d92c, b/261436820) - הוספנו את
DelegatableNode.scrollIntoView()כדי לאפשר לצמתי שינוי לבצע בקשותscrollIntoViewישירות. (I2b3b7, b/299939840) - הוספנו את
DelegatableNode.requireView()כדי לאפשר לצמתי modifier לקבל את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בוני העתקה שהוצאו משימוש יעתיקו עכשיו את כל המאפיינים בצורה נכונה. (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) - הוספנו את
receiveContentmodifier שמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose. -
receiveContentמשתלב עםBasicTextField2כדי לקבל תוכן עשיר שמסופק על ידי המקלדת הווירטואלית או באמצעות פעולת הדבקה מהלוח. (I81b72) - במסגרת השינוי הזה, אנחנו מחליפים את
SnapFlingBehaviorב-TargetedFlingBehaviorברכיב pager כדי לאפשר תרחישי שימוש נוספים ולספק גמישות רבה יותר. (I762ea) - בשינוי הזה אנחנו הופכים את ממשקי ה-API של Snapping ליציבים. בנוסף, אנחנו מנקים חלק מקוד הבדיקה ומוסיפים עוד דוגמאות ל-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שניתן להגדיר כ-nullable. אם הערך הוא 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) חדש
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 של Foundation זמינים עכשיו ב-
@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הופך לפרמטר שאפשר להגדיר כ-null, בלי לשנות את התנהגות ברירת המחדל. (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) - נוספו
dragAndDropSourceModifier להפעלת סשנים של גרירה ושחרור, ו-dragAndDropTargetModifier לקבלת נתונים מסשנים של גרירה ושחרור (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) - המהירויות של תנועות ההטלה ברכיבי View כמו
ScrollViewו-RecyclerViewמוגבלות ל-ViewConfiguration.ScaledMaximumFlingVelocity. Compose כולל עכשיו גרסה משלו של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. המאפיין הזה מאפשר לדעת את הגודלviewPortשל הרכיב שמשתמש ב-ScrollStateאחרי המדידה. (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, הוא מקבל ביטוי למדא של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מספק עכשיו את הפרמטרcanPanpan delta כדי לעזור לקבוע את כיוון הפנורמה ולאפשר או לא לאפשר אותה. (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)
תיקוני באגים
- הוספנו בדיקת lint כדי להזהיר אם יוצרים
MutableInteractionSourceבקומפוזיציה בלי לזכור אותה, בדומה לבדיקות ה-lint ליצירת מצב שניתן לשינוי /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, משנה פריסה ועוד, הועברו אל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) - תוקנה רגרסיה שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי רכיב ה-
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.5beta01.(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
- השקנו
PlatformTextInputAdapterAPI חדש ברמה נמוכה ליצירת הטמעות מותאמות אישית של הזנת טקסט, שמתקשרות ישירות עם ממשקי 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
- נוסף
Modifier.Node.onReset()callback חדש שמאפשר לאפס חלק מהמצב המקומי כדי לטפל בצורה נכונה במקרה שבו נעשה שימוש חוזר ב-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ורכיבים עם אפשרות מיקוד מגיבים ל-focusables, כדי לדמות טוב יותר את המורכבות של הפעולות האלה ולטפל ביותר מקרים חריגים. (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. כאן דווחה הבעיה במקור. תיקון נשלח, והוא יהיה זמין בעדכון הבא של כלי ההלחנה. כפתרון עקיף, אפשר לעדכן את הספריות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אבל לפני חידוש שגרות המשנה (coroutines) של המתקשרים. (Idb413, b/254115946, b/222093277, b/255802670) - הוספנו פעולות נגישות בדף:
PageUp,PageDown,PageLeft,PageRight. הערה: האפשרויות האלה זמינות רק מגרסת API 29. (Ida4ab) - הוספנו את
HorizontalPagerו-VerticalPager, דרך להצגת קומפוזיציות באופן שדומה לרכיב Pager. הוספנו אתPagerStateכדי לשלוט במכשירים לזימון תורים ולקבל מידע על המצב הנוכחי של המכשיר. הוספנו אתPageSize, דרך לשלוט בגודל הדף של רכיב Pager. אפשר להשתמש בזה כדי ליצור רכיב Pager שדומה לקרוסלה. הוספנו את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. הבעיה התרחשה בתנאים מסוימים, כשהמספר החדש של הפריטים היה קטן מהמספר הקודם. (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) - החזרה של API
beyondBoundCountמ-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. -
SnapFlingBehavior, rememberSnapFlingBehaviorוממשקי API תואמים אחרים נוספו כניסיוניים. -
Modifier.clickable,Modifier.toggleableוגםModifier.selectableמציגים עכשיו גלים כשלוחצים עליהם באמצעות המקלדת או כפתורי החיצים (D-pad) בשלט רחוק.
גרסה 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 חדש לניסויים, Hyphens, כדי לתמוך במקפים אוטומטיים בטקסט (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) - הוחלפה הפונקציה
snapFlingBehaviorfactory במחלקה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#awaitLongPressOrCancellationכאבן בניין נוספת לזיהוי מחוות מורכבות יותר (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יציבים עכשיו. - עכשיו אפשר לציין סוג תוכן לפריטים ברשימות ובטבלאות Lazy. כך הרכיבים יוכלו לעשות שימוש חוזר באלמנטים בצורה יעילה יותר.
- לרשימות ולרשתות עצלות יש עכשיו פרמטר
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שמקבלים אותו. - החבילה Experimental
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כדי לציין שערכיimeinsets מדווחים החל מ-API 23, אבל רק animated ב-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(מזהה: Id409c) - הוספנו את האפשרות 'מברשת' ל-
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
- נוסף API
PinnableParentשמאפשר לרכיבים צאצא של פריסות עצלות למנוע את הסרת הפריטים הנוכחיים (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) - המאפיין parentData מוצג עכשיו בממשק Measured (I3313f)
- הוספנו את התכונה הניסיונית
Modifier.onFocusedBoundsChangedכדי לאפשר צפייה בגבולות של רכיבים שניתן להתמקד בהם. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - נוסף LazyHorizontalGrid. (I61ae7, b/191238807)
- הוספנו
LazyVerticalGridAPI חדש להגדרת גדלים של צירים חוצים (I17723) - נוסף משנה FocusGroup (I64bc0, b/213508274, b/184670295)
תיקוני באגים
-
WindowInsets.toString()יוצגו עכשיו הערכים הנכונים. (I1585d)
External Contribution
- העדכון כולל שימוש בשגרות משנה (coroutines) של Kotlinx בגרסה 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)- תמיכה בטעינת גופנים אסינכרונית ב-Text (I77057, b/214587005)
-
LazyVerticalGridתומך עכשיו ב-line breakingלפני פריטים עם span שלא מתאים לשורה הנוכחית. (I05c40, b/207462103) - שינית את השם של
excludeFromSystemGesturesל-systemGesturesExclusion(I19526) -
LazyVerticalGridתומך עכשיו ב-reverseLayout. (I6d7d7, b/215572963, b/211753558) - מוסיפים את השיטה
WindowInsets.only()כדי לאפשר למפתחים לכלול רק מאפיינים מ-WindowInsets. (I14c94, b/217768486) נוספו הפונקציות
ComposableTarget,ComposableTargetMarkerו-ComposableOpenTargetשמאפשרות דיווח בזמן קומפילציה על מצב שבו פונקציה הניתנת להגדרה מופעלת בטירגוט של פונקציית החלה שהיא לא נועדה להשתמש בה.ברוב המקרים, אפשר להסיק את הערכים של ההערות האלה באמצעות תוסף מהדר של Compose, ולכן השימוש בהערות האלה ישירות צריך להיות נדיר . המקרים שבהם אי אפשר להסיק כוללים יצירה ושימוש ב-applier מותאם אישית, פונקציות קומפוזביליות מופשטות (כמו שיטות ממשק), שדות או משתנים גלובליים שהם ביטויי למבדה קומפוזביליים (משתנים מקומיים ופרמטרים נגזרים), או כשמשתמשים ב-
ComposeNodeאו בפונקציות קומפוזביליות קשורות.במקרה של פונקציות מותאמות אישית, הפונקציות הניתנות להגדרה שמפעילות את
ComposeNodeאו אתReusableComposeNodeצריכות להוסיף הערהCompoableTargetלפונקציה ולכל סוגי הפרמטרים של פונקציית ה-lambda הניתנת להגדרה. עם זאת, מומלץ ליצור הערה עם התיוגComposableTargetMarkerואז להשתמש בהערה המתויגת במקום להשתמש ישירות ב-ComposableTarget. אנוטציה קומפוזבילית שמסומנת ב-ComposableTargetMarkerשווה ל-ComposbleTargetעם השם המוגדר במלואו של מחלקת המאפיינים כפרמטר של ממשק ההחלה. דוגמה לשימוש ב-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)
- הרחבנו את
- הקונסטרוקטור
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)
- הקונסטרוקטור
SubcomposeLayoutStateשמקבלmaxSlotsToRetainForReuseהוצא משימוש. במקום זאת, יש קונסטרוקטור חדש שמקבלSubcomposeSlotReusePolicy– ממשק חדש שמאפשר שליטה פרטנית יותר על המיקומים שצריך לשמור לשימוש חוזר בעתיד. (I52c4d) - מוסיף משנים (Modifiers) ל-WindowInsets, גם למרווח פנימי וגם לשינוי גודל. כך חלק מהתוכן יכול להיכנס לאזור המושקע, אבל התוכן העיקרי יישאר מחוץ לאזור המושקע. לדוגמה, אפשר להשתמש ב-windowInsetsPadding כדי להוסיף מרווחים לאזור התוכן וכך להימנע מאזורים שעשויים להיות מכוסים באופן מלא או חלקי. (Id0395, b/213942085)
תיקוני באגים
- כששדה טקסט נמצא בפוקוס והמקלדת מוצגת, הוא יישאר מעל המקלדת אם מצב הקלט הרך הוא
ADJUST_PAN. (I8eaeb, b/190539358, b/192043120) - ב-Desktop נעשה שימוש בהרכבה מקומית עבור
FontFamily.Resolver- הגרסה של Chrome Desktop
FontLoaderהוצאה משימוש - מפעל חדש
createFontFamilyResolverבמחשב (I6bbbb, b/174162090)
- הגרסה של Chrome Desktop
- סוג הקלט של המקלדת הווירטואלית לא מהבהב יותר כשמעבירים את המיקוד בין שדות טקסט. (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של Android (I46f07)
תיקוני באגים
- התנהגות הזכוכית המגדלת לבחירת טקסט שופרה כדי להתאים לזכוכית המגדלת של הפלטפורמה. (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) - מוסיפים
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
- שיפורים בגודל של יעד מגע
- שימו לב: ב-Compose 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material בנושא גודל יעד המגע. לדוגמה, יעד המגע של לחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרתם גודל קטן יותר ללחצן. ההתנהגות הזו תואמת להתנהגות של רכיבי 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)שגורמת לגלילה של מאגר תוכן שניתן לגלילה אל התוכן שתואם לפרמטר ההתאמה שצוין. (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 בשלב הזה. קוד שמשתמש ב-API יכול להצהיר על קבועים פרטיים לפני שה-API עובר לייצוב. (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.בדפוסי כתובות ה-URL האלה יכולים להיות תווים כלליים (
**,*ו-?) כדי שכלל אחד יכלול כמה שיטות או מחלקות.
מה עושים הכללים?
שיטה עם הדגל
Hמציינת שזו שיטה 'פעילה' וצריך לקמפל אותה מראש.אם ל-method יש את הדגל
S, זה אומר שהיא נקראת בזמן ההפעלה, ולכן צריך לבצע קומפילציה מראש כדי להימנע מהעלות של קומפילציה ופרשנות של ה-method בזמן ההפעלה.מתודה עם הדגל
Pהיא מתודה שמופעלת אחרי ההפעלה.אם מחלקה מסוימת מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה, ולכן צריך להקצות לה מראש מקום בזיכרון כדי להימנע מעלות הטעינה של המחלקה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בפריטי מידע שנוצרו בתהליך של פיתוח (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)
- החלפת סוג הנתונים
FocusStateenum בממשק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 שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום ב-positionInParent ולגבולות ב-boundsInParent (I580ed, b/169874631, b/175142755)
- נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, b/177662148)
- הקומפוננטה Placeable חושפת עכשיו את המאפיין measuredSize, שמייצג את הגודל שהפריסה של רכיב הצאצא נמדדה בפועל. יכול להיות שהגודל הזה לא עומד במגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת modifier 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, שלא סופקה להם הגדרת ברירת מחדל. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא ניתן להקצאה.
בסוגים שניתן להגדיר כ-nullable, כדאי לספק את
{ null }כברירת המחדל של factory.אנחנו לא ממליצים להשתמש ב-locales עם סוגים שלא יכולים להיות 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 הוסר. במקומה, צריך להשתמש ב-method
Modifier.pointerInput { detectTapGestures(...) }. (I266ed, b/175294473)הוסר צריכה חלקית ממערכת קלט ההצבעה. הדרך המומלצת לתאם צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
ההדרכה הועברה לחבילת הבסיס. ה-API VelocirtTracker הועבר מ-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)
המשנה draggable מקבל עכשיו DraggableState במקום פונקציית למדה פשוטה. אפשר ליצור מצב באמצעות
rememberDraggableState { delta -> }כדי לקבל את אותה התנהגות כמו קודם (Ica70f, b/175294473)נוספו משני הגודל 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 כדי לציין מתי שגרת המשך (coroutine) הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (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)
המשנה Modifier.clickable לא תומך יותר בקליק כפול ובלחיצה ארוכה. כדי להשיג את הפונקציונליות הזו, משתמשים ב-Modifier.combinedClickable. (Iafad1)
הפונקציה toIntPx() שונה ל-roundToPx(). (I9b7e4, b/173502290)
השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
המאפיין Modifier.dragGestureFilter יצא משימוש. במקומה, צריך להשתמש ב-method
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)עכשיו אפשר לסגור את כלי ההלחנה מחדש. רכיבי Composable סגורים ימשיכו את הרה-קומפוזיציה עד ששגרות המשך (coroutine) הצאצא של הקומפוזיציה יסתיימו. השם של הפונקציה 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. השם של ה-method הפנימי 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)
הארטיפקט 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)
הסרה של פונקציות גלילה שהוצאו משימוש ולא מושהות בהמשך לשינויים מהגרסה הקודמת, פונקציות הגלילה שלא מושהות הוסרו לגמרי. צריך להמיר לפונקציות השהיה עם אותם שמות. אפשר לקבל היקף של שגרת המשך (coroutine) באמצעות rememberCoroutineScope(). (I3d39c, b/178169563)
ה-API androidx.compose.foundation.layout.ConstraintLayout הוצא משימוש לטובת androidx.constraintlayout.compose.ConstraintLayout. צריך להוסיף תלות ב-
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01. (I87adc)ה-API 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)
הוספנו את הפרמטר content_description לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
הפרמטר החדש שנוסף ל-BasicTextField נקרא decorationBox. הוא מאפשר להוסיף קישוטים כמו סמלים, 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
- נוספו פונקציות factory שמתחילות באות רישית
- הוצאנו משימוש פונקציות קודמות של factory עם אותיות קטנות בתחילת המילה
- פונקציות חדשות של יצירת אובייקטים מחזירות את 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.NoAction, צריך להשתמש ב-ImeAction.None
- במקום ImeAction.Unspecified (Ie1bcc), צריך להשתמש ב-ImeAction.Default
הפונקציה FocusRequester.createRefs מסומנת עכשיו כניסיונית כי יכול להיות שהיא תשתנה. (I2d898, b/177000821)
השם של SemanticsPropertyReceiver.hidden שונה ל-invisibleToUser והוא סומן כ-@ExperimentalComposeUiApi. השם של AccessibilityRangeInfo שונה ל-ProgressBarRangeInfo. השם של stateDescriptionRange שונה ל-progressBarRangeInfo. השם של AccessibilityScrollState השתנה ל-ScrollAxisRange. השם של horizontalAccessibilityScrollState השתנה ל-horizontalScrollAxisRange. השם של verticalAccessibilityScrollState השתנה ל-verticalScrollAxisRange. (Id3148)
הפכנו את VisualTransformation לממשק פונקציונלי (I3bba4)
שימוש ב-TestCoroutineDispatcher בבדיקות (I532b6)
הוסר PointerInputData ובוצע שינוי ב-PointerInputChange כדי להעביר אליו את כל השדות של PointerInputData. הפכנו את PointerInputEvent ואת PointerInputEventData לפנימיים כי הם לא בשימוש בממשקי 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 כבר לא מוגדרות כ-data classes
- השם של הפונקציה EditOperation.process השתנה ל-applyTo
- השם של InputEventListener שונה ל-InputEventCallback
- (I0a366)
- שינינו את המהירות כך שתכלול רכיבים ופעולות מתמטיות. (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שמבטיח הדרה הדדית בין האנימציות שלו. New 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 כתחליף ל-ui-tooling API, כדי להשתמש בהם לחילוץ פרטי קומפוזיציה. ממשקי ה-API האלה הם ציבוריים, אבל הם לא מיועדים לשימוש מחוץ ל-ui-tooling API, כי הם מספקים את המידע הגולמי ש-ui-tooling API מפרש (I31a9c)
בוצע שינוי מבנה ב-ShaderBrush כדי ליצור באופן עצלני מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש ב-Fill מאפשר להגדיר מעברי צבעים שממלאים את כל גבולות הציור של רכיב שאפשר להוסיף לו קומפוזיציה בזמן הקומפוזיציה, בלי להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של פונקציות ליצירת מעברי צבעים, ועברנו לשימוש בשיטות 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, מלמטה למעלה ולא מלמעלה למטה. לפני השינוי הזה, כדי להטמיע את השיטה מלמטה למעלה היה צריך להשתמש במערך של תוספים, והיה צריך להעתיק אותו לכל כלי שנדרשה בו בנייה מלמטה למעלה כדי לשפר את הביצועים. בעקבות השינוי הזה,ApplierמחליףinsertBottomUp()כדי לבנות עץ מלמטה למעלה, ו-insertTopDown()כדי לבנות את העץ מלמעלה למטה. (Icbdc2)נוסף painterResource API כדי לטפל בטעינה אטומה של אובייקטים של Painter מפורמטים של נכסי רסטר (כמו PNG) או מ-VectorDrawables. הצרכנים לא צריכים יותר לקבוע מראש את סוג הנכס, ויכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter לשימוש ברכיבי Image composable או בשינויים של Painter. (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)
- העברה של מאפייני סמנטיקה של foundation אל 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)
תיקוני באגים
- הועברו ממשקי DrawModifier API מחבילת androidx.compose.ui לחבילת androidx.compose.ui.draw. נוצר קובץ DrawModifierDeprecated.kt כדי לכלול כינויי טיפוסים ושיטות עזר שיעזרו במעבר מ-API שיצא משימוש ל-API הנוכחי. (Id6044, b/173834241)
- שם הפונקציה Modifier.drawLayer שונה ל-Modifier.graphicsLayer. בנוסף, עודכנו מחלקות קשורות ל-GraphicsLayer בהתאם למשוב של צוות ה-API. (I0bd29, b/173834241)
-
<T>הוסר מההצהרה SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8) - השדות 'זמן פעולה' ו'מיקום' של PointerInputData לא יכולים להיות ריקים. (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 עודכן
- הגדרת TextFieldValue.composition לקריאה בלבד
- הוסרה חריגה שמופעלת עבור טווח בחירה לא תקין (I4a675, b/172239032)
- הוצאנו משימוש את המאפיינים מסוג Ambient ששם המחלקה שלהם מסתיים ב-
Ambient, והחלפנו אותם במאפיינים חדשים ששם המחלקה שלהם מתחיל ב-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 class כדי לייצג גורמי קנה מידה
לצירים האופקי והאנכי בנפרד, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
- נוספה השיטה 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)
- Introduce ui-test-junit4 module (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)
- הפונקציה Box הפכה לפונקציה מוטמעת. (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)
- נוספה אפשרות לציין פרטים של כלי הבדיקה במגדיר מורכב (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(), והחלפה שלהם ב-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. הקומפוננטה 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 כדי לציין צורה אובלית בנוסף לצורה אליפטית
- הוספנו תיעוד שמציין שאסור לקרוא ישירות לבונה הציבורי של מחלקת Radius מוטבעת, אלא צריך ליצור מופעים של אובייקטים של 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 שונתה והפכה לנכס במקום לפונקציה
- העדכון של בנאי RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי רדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם מקור ב-0,0
- נוסף API להשמדה ל-Radius
- העברנו פונקציות שונות של תוסף RoundRect להיות מאפיינים במקום זאת
- (I8f5c7, b/168762961)
- בוצעו אופטימיזציות של הביצועים לגלילה ב-LazyColumnFor/LazyRowFor, כך שלא מתבצעות קומפוזיציות מחדש מיותרות במהלך כל גלילה (I64f65, b/168293643, b/167972292, b/165028371).
- תוקן קראש ב-LazyColumnFor/LazyRowFor אחרי גלילה ואז שינוי פריטים, והוטמעה גלילה אוטומטית למעלה כשפריט שהיה גלוי קודם הוסר, כדי שלא יוצגו יותר רווחים ריקים בסוף (I220ab, b/161480164, b/167855468)
- אסור יותר להטמיע רכיבים עם אפשרות גלילה באותו כיוון, כמו ScrollableContainer ו-LazyColumnFor. התכונה הזו אף פעם לא נתמכה, והיא גרמה לבעיות בהעברה מהירה ובכל העצלנות של יצירת הפריטים של LazyColumnFor (I6e101)
- עודכנו הרבה ממשקי API של גרפיקה
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל, כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת ומוסרת אחרי שהקריאה החוזרת מופעלת
- עדכנו את מסמכי העזרה בנושא 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 הוסרה. הרוחב מועבר עכשיו ישירות ל-Paragraph. (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 בממשקי API של פריסה. (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.Vertical#arrange ו-Arrangement.Horizontal#arrange, ולא תהיה תמיכה בכתיבת פריסות מותאמות אישית בעתיד. (I6733d, b/161985975)
- ההיסט הפך למחלקה מוטבעת (Iaec70)
- הוסרו קריאות חוזרות (callback) של onFocusChanged מ-TextField. במקומו, צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- המאפיין Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. החלפנו את מחלקת הנתונים Border במחלקת הנתונים BorderStroke (I4257d, b/158160576)
- הוסרו הרכיבים VerticalScroller ו-HorizontalScroller. במקום זאת, צריך להשתמש ב-ScrollableColumn/Row. הוסר Modifier.drawBackground. שימוש ב-Modifier.background (I73b0d, b/163019183)
- הוסרו מ-LazyItemScope משנים (modifiers) מסוג fillMax* שסומנו כ-deprecated, כי הם מקשים על הוספה נכונה של משנים כאלה לפריטים שהם לא צאצאים ישירים של 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. נוצרו פונקציות דומות ל-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, והשם של foundational 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
- שונה שם של סוגי ClipOp ל-Pascal Case
- השמות של סוגי ה-enum של FilterQuality שונו ל-Pascal Case
- השמות של סוגי ה-enum StrokeJoin שונו ל-Pascal Case
- שמות הערכים של enum PointMode שונו ל-Pascal Case
- שמות ה-enum של PaintingStyle שונו ל-Pascal Case
- שמות ה-enum של PathFillType שונו ל-Pascal Case
- השמות של ערכי ה-enum של StrokeCap שונו ל-Pascal Case
- הטמענו עדכון ב-DrawCache כך שלא נעשה יותר שימוש בפרמטרים של lateinit
- העדכון של DrawScope לא כולל יותר שימוש בהעברה עצלה (lazy delegation) לפרמטרים הפנימיים fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עודכן הסיווג Outline כך שיכלול הערות מסוג @Immutable
- עדכנו את PathNode כך שיכלול הערות @Immutable לכל הוראת נתיב
- בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי הפונקציה compose כבר מטפלת בהן
- הוצאנו משימוש את שיטות ה-constructor הנלוות ל-Rect, ועברנו לשימוש ב-constructors של פונקציות
- עדכון של מחלקות Brush ושל פונקציות בונות עם ממשקי API @Immutable ו-@Stable
- העדכון של סוג ה-enum VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה את פרמטרים של קו המתאר בציור אם הם השתנו
- העדכון של Size כולל הוספה של API לפירוק מבנה, שינוי השם של UnspecifiedSize ל-Unspecified והסרה של מתודות שלא נמצאות בשימוש
נוסף MonotonicFrameAnimationClock שמאפשר להשתמש ב-MonotonicFrameClock כ-AnimationClockObservable כדי לגשר על הפער בין השעונים החדשים שמבוססים על קורוטינות לבין ממשקי API שעדיין משתמשים בשעונים הישנים שמבוססים על קריאות חוזרות (callback).
הפונקציה המקבילה ל-ManualAnimationClock ב-MonotonicFrameClock היא עכשיו ManualFrameClock. (I111c7, b/161247083)
בוצעה הסרה של
SemanticsNodeInteraction.performPartialGesture. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture. (Id9b62)השם של
SemanticsNodeInteraction.getBoundsInRoot()שונה ל-SemanticsNodeInteraction.getUnclippedBoundsInRoot()(Icafdf, b/161336532)ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. הוסרו Modifier.rtl ו-Modifier.ltr. (I080b3)
השיטה Modifier.plus הוצאה משימוש. במקומה צריך להשתמש ב-Modifier.then. השימוש במילה 'ואז' מעביר מסר חזק יותר לגבי הסדר, וגם אוסר על הקלדת
Modifier.padding().background() + anotherModifier, מה ששובר את הרצף ומקשה על הקריאה (Iedd58, b/161529964)נוספו
isFocused()ו-isNotFocused()SemanticsMatcher. (I0b760)התג RemeasurementModifier נוסף. היא מאפשרת למשתמשים למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל לא צריך להשתמש בה, כי המדידה מחדש או הפריסה מחדש מתבצעות באופן אוטומטי, אבל אנחנו משתמשים בה בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
הפונקציה isSystemInDarkTheme תמיד מתייחסת להגדרת העיצוב הכהה בכל המערכת, ומתעלמת מסטטוס החיסכון באנרגיה לפני גרסה Q, בהתאם להנחיות העדכניות. (I0c10c)
הפונקציה OnChildPositioned הוצאה משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, b/162109766)
השם של AndroidComposeTestRule שונה ל-createAndroidComposeRule. (I70aaf)
הוספת פעולת נגישות לקבלת TextLayoutResult (I9d6e6)
גרסה 0.1.0-dev15
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 של 'יצירה', צריך:
עדכון של יחסי תלות
- כדי להשתמש בגרסה
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)
- ממשקי ה-API 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 של אנימציה ללא מצב (stateless) ברמה נמוכה. ממשקי ה-API האלה (I63bf7)
- השימוש ב-androidx.ui.foundation.TextFieldValue וב-androidx.ui.input.EditorValue הוצא משימוש. גם רכיבי ה-TextField, FilledTextField ו-CoreTextField composable שמשתמשים בסוג הזה הוצאו משימוש. במקומו, אפשר להשתמש ב-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 שמייצגים רוחב וגובה שמוצגים כערכים מסוג 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)
- הוסר DrawBackground API שהוצא משימוש לטובת drawBackground extension APIs ב-Modifier. בוצע רפקטורינג של ההטמעות של color, brush ו-paint drawBackground כדי לצמצם את נתיבי הקוד וגם כדי להסיר את הדרישה ליצירת Modifier כחלק מהקומפוזיציה. (I0343a)
- ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שהם חושפים CanvasScope במקום Canvas. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה drawCanvas של התוסף, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
- המיקום של HorizontalScroller ו-VerticalScroller לא משוחזר באמצעות מצב המופע שנשמר. (Ia0fae, b/155075048)
- הוסר FocusManagerAmbient. משתמשים ב-FocusModifier.requestFocus כדי לקבל את הפוקוס. (Ic4826)
- הסרנו באופן זמני את פריסת הטבלה עד שנשיק שוב את האפשרות הזו עם API מעודכן. (Id88a7)
נוצר CanvasScope API שעוטף אובייקט Canvas כדי לחשוף משטח API לציור דקלרטיבי בלי שמירת מצב. הטרנספורמציות מוגבלות להיקף של המקלט שלהן, וגם פרטי הגודל מוגבלים לגבולות התואמים של התוסף. הוא לא מחייב את הצרכן לתחזק אובייקט משלו של מצב הצבע כדי להגדיר פעולות ציור.
נוספה CanvasScopeSample וגם בוצע עדכון באפליקציית ההדגמה כדי לכלול הדגמה של גרפיקה הצהרתית (Ifd86d)
הוסר ColoredRect. במקום זאת, צריך להשתמש ב-User Box עם drawBackground modifier (I983c7, b/152753731)
הוספת התאמה אישית של צבע הסמן ל-TextField (I6e33f)
עכשיו אפשר להסתיר או להציג את המקלדת הווירטואלית באמצעות SoftwareKeyboardController, שמועבר על ידי הקריאה החוזרת onTextInputStarted (I8dc44, b/151860051)
השימוש ב-TextFieldValue עם TextField יכול לשרוד יצירה מחדש של פעילות כשמשתמשים בו כך:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce, b/155075724)הוספנו ל-Text() פרמטרים שנמצאים בשימוש נפוץ. אם אתם יוצרים כרגע סגנון טקסט מקומי כדי להעביר מספר קטן של פרמטרים כאלה, כמו
Text(style = TextStyle(textAlign = TextAlign.Center)), עכשיו אתם יכולים פשוט לספק את הפרמטרים ישירות:Text(textAlign = TextAlign.Center)(I82768)החלפנו את הפרמטר 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 – מיזוג של הקריאות החוזרות onFocus ו-onBlur לקריאה חוזרת יחידה onFocusChange(Boolean) עם פרמטר (I66cd3)
שינינו את השם של ScaleFit ל-ContentScale העברנו את ContentScale מ-ui-graphics ל-ui-core module כדי שיהיה באותו מודול כמו 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 הוצאה משימוש. במקומה, צריך להשתמש ב-method
Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, b/152753731)מערכת העיצוב של הצורות עודכנה בהתאם למפרט של Material Design. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות לשימוש ברוב הרכיבים (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.
שם ה-API
Image(Painter)שונה ל-PaintBox(Painter)נוצר רכיב Vector שאפשר להוסיף לו רכיבים אחרים, והוא מתנהג כמו רכיב Image, רק שבמקום ImageAsset הוא משתמש ב-VectorAsset (I9af9a, b/149030271)יצרנו את רכיב ה-Composable Image כדי לטפל בשינוי הגודל ובפריסה, בנוסף לציור של ImageAsset נתון במסך. רכיב ה-Composable הזה תומך גם בציור של כל מופע Painter שרירותי בהתאם לגודל הפנימי שלו, וגם תומך בגודל קבוע או בגודל מינימלי נתון (Ibcc8f).
ללחצן, ל-FloatingActionButton ול-Clickable יש עכשיו פרמטר
enabledנפרד. חלק מהפרמטרים של Button קיבלו שם חדש או שונו הסדר שלהם. (I54b5a)שם המחלקה Image שונה ל-ImageAsset כדי להבדיל טוב יותר בין נתוני התמונה לבין רכיב ה-Image שיוצג בקרוב ומשמש להשתתפות בפריסה ולציור תוכן.
נוצרה שיטת הרחבה ב-android.graphics.Bitmap,
Bitmap.asImageAsset(), כדי ליצור מופע של ImageAsset ששימושי לשילוב של פיתוח אפליקציות מסורתיות ל-Android עם Compose Framework. (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)
שינוי השם של
Bordermodifier ל-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)
תוקנה תמיכה ב-RTL ב-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 Buttons שונה ל-padding. (I66165)
המאפיין alignToSiblings מקבל עכשיו Measured במקום Placeable. (I5788d)
נוספו משנים לשינוי גודל למדידות פנימיות, והוצאו משימוש הרכיבים ששימשו למטרה הזו. (I8295d)
הוספנו תמיכה בהתאמה אישית של מאפייני צאצאים של ConstraintLayout (Idb1a5)
הוסרו רכיבי Wrap ו-Center composable שהוצאו משימוש. (I29e23)
נוסף LayoutModifier2, API חדש להגדרת שינויים בפריסה. הוצא משימוש LayoutModifier (If32ac)
מעכשיו אפשר לגשת לחברים ב-RowScope וב-ColumnScope מחוץ ל-Row ול-Column. (I3a641)
מאגר התגים יצא משימוש. במקום זאת, אפשר להשתמש ב-Box. (I675ce, b/151407926)
נוסף משנה המיקום LayoutOffset כדי להזיז את מיקום הפריסה (I0b8a3)
תמיכה ראשונית ב-RTL בפריסת Compose (Ia5519)
העדכון של LayoutAlign לא מאפשר יותר למלא את המקום הפנוי (I2b14f)
הוסר קומפוזיציה של AspectRatio לטובת modifier. נמחקו רכיבי 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 כפרמטר indication. (I663b2, b/155375067)
- הוסרו ממשקי API לבדיקת גודל שיצאו משימוש. (Iba0a0)
- הפכנו את LayoutNode ל-API ניסיוני (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 עודכנה כך שהיא מקבלת פרמטר Radius יחיד במקום 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 מכיל עכשיו את הקומפוזיציות CoreText ו-CoreTextField (Ib7d47)
המודול ui-text משנה את השם שלו ל-ui-text-core (I57dec)
העברנו את הקומפוזיציות ui-framework/CoreText ו-CoreTextField אל ui-text-compose. יכול להיות שכדאי לכלול את ui-text-compose בפרויקט שלכם. (I32042)
הפונקציות
runOnIdleComposeו-runOnUiThreadהן עכשיו פונקציות גלובליות ולא שיטות ב-ComposeTestRule. (Icbe8f)[Mutable]אופרטורים של נציגי מאפיינים של מצב הועברו לתוספים כדי לתמוך באופטימיזציות של נציגי מאפיינים ב-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 modifier, או באחד מהרכיבים הקומפוזביליים Box או Stack עם שינויים מתאימים (Idf5e0)
השם של הפריסה LayoutFlexible שונה ל-LayoutWeight. השם של הפרמטר tight שונה ל-fill. (If4738)
הפונקציה DrawVector השתנתה מפונקציה קומפוזבילית רגילה להחזרת Modifier drawVector() שתצייר את הווקטור כרקע לפריסה. (I7b8e0)
מחליפים את הפונקציה Clip שניתנת להרכבה במקש הצירוף drawClip(). DrawClipToBounds הוא מקש צירוף נוח לשימוש כשצריך לחתוך רק את הגבולות של השכבה בצורת מלבן. (If28eb)
הפונקציה הקומפוזבילית DrawShadow הוחלפה בעיבוד 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. שינינו את המבנה של המחלקות AnimatedValue ו-AnimatedFloat כדי להפוך את שדה ערך האנימציה למופשט, כך שמחלקות משנה יוכלו לעקוב אחרי עדכון הערך.
- נוספו מחלקות מודלים ל-AnimatedValue, AnimatedFloat וכו'.
- הוספנו קבוצה חדשה של API קל משקל מסוג @Composable להנפשה בין ערכים.
- (I79530)
שינויים ב-API של ambients שעלולים לגרום לכשלים. פרטים נוספים מופיעים ביומן ובמסמכי התיעוד של
Ambient<T>(I4c7ee, b/143769776)המיקומים של קו היישור שמוחזרים מ-Placeable#get(AlignmentLine) כבר לא יכולים להיות null. אם שורת היישור שביקשתם חסרה, יוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
תוקן באג ב-ConstraintLayout שגרם לקריסה בהרכבות מחדש. (Ibee5a, b/158164341)
בוצע שינוי ב-API של lambda עם Constraints trailing. עכשיו, במקום שני פרמטרים, יש לו היקף של מקבל, שכולל, בנוסף להגבלות ול-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)
ל-LayoutCoordinates אין יותר מאפיין position. המאפיין position לא הגיוני כשמביאים בחשבון LayoutModifiers, rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מ-LayoutCoordinate אחד ל-LayoutCoordinate אחר.
ב-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 זמין עכשיו. מעכשיו, Activity שמשתמשים בו עם Compose UI צריך להרחיב את androidx.activity.ComponentActivity (או AppCompatActivity). הפונקציה setContent ב-android.app.Activity הוצאה משימוש (Idb25a, b/153141084)
שם החבילה ui-android-text (androidx.text) הוחלף ב-androidx.ui.text.platform כדי להתאים למדיניות androidx. (I42711)