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
(See the API reference docs for all compose packages)
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
2 ביולי 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
מבנה
Compose הוא שילוב של 7 מזהי קבוצות Maven בתוך androidx
. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, ולכל אחת מהן יש קבוצה משלה של הערות על הגרסה.
בטבלה הזו מוסבר על הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.
קיבוץ | תיאור |
---|---|
compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
compose.compiler | שינוי פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין של מהדר Kotlin. |
compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
compose.material | אפשר ליצור ממשקי משתמש של Jetpack פיתוח נייטיב באמצעות רכיבי 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, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-Build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.
גרסה 1.9
גרסה 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 הבסיסיים הבאים לציבוריים, כדי שתוכלו ליצור תפריט הקשר מותאם אישית:TextContextMenuProvider
TextContextMenuDataProvider
TextContextMenuData
TextContextMenuComponent
LocalTextContextMenuDropdownProvider
LocalTextContextMenuToolbarProvider
(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 האלה של שינוי, נוספו ממשקי API נוספים ל-RelativeLayoutBounds
כדי לתמוך בתרחישי השימוש האלה, וכדי להקל על מפתחים ליצור בקלות שינויים מותאמים אישית דומים שמתאימים בדיוק לתרחיש השימוש שלהם. (I759b8) - הוספנו עומס יתר של
detectDragGestures
עם שליטה בהטיה של המגע ובנעילת הכיוון. (Iadb0d) - השקנו את
Modifier.scrollable2D
,Scrollable2DState
וממשקי API נלווים ליצירת מצב. הוספנו גם פונקציות נפוצות של תוספי גלילה. (Ic61c8, b/214410040) - אי אפשר להשוות ישירות בין ערכי צבע של 64 ביט ב-Compose לבין ערכי צבע ב-Android
ColorLongs
כי מזהי מרחבי הצבעים לא מסודרים בחלק ממרחבי הצבעים. כדי להמיר בין מרחבי צבעים של Android, נוספו שני ממשקי API חדשים:toColorLong()
ו-fromColorLong()
. (I36899)
תיקוני באגים
- אם מעתיקים טקסט מכמה רכיבי Text קומפוזביליים ב-
SelectionContainer
, עכשיו יתווסף מפריד שורות\n
בין הטקסטים שמגיעים מרכיבי Text קומפוזביליים נפרדים. (I25332, b/285036739)
גרסה 1.9.0-alpha02
7 במאי 2025
androidx.compose.foundation:foundation-*:1.9.0-alpha02
משוחרר. גרסה 1.9.0-alpha02 מכילה את הקומטים האלה.
שינויים ב-API
- תוקן האופן שבו שינויים בקלט של מצביע נוספים ל-
VelocityTracker
ב-DragGestureNode
. אפשר לשלוט בזה באמצעות הדגל החדשisOffsetPositionBeforeAddingToVelocityTrackerEnabled
. (Ic7992, b/292556787, b/236451818) - הפיכת
await[Vertical/Horizontal]PointerSlopOrCancellation
לציבורי (I6968b, b/298903681) - ברירת המחדל של
AbstractComposeView.consumeWindowInsets
היא עכשיו false. אם המדיניות הזו מוגדרת כ-False, הגודל והמיקום שלWindowInsets
יותאמו אוטומטית לגודל ולמיקום של הילד, ולכן אין יותר צורך להגדיר אותה כ-True כברירת מחדל. העדכון הזה פותר את הבעיה שבה תצוגות צאצא לא קיבלו עדכונים שלWindowInsets
כברירת מחדל. מפתחים יכולים לבטל את ההסכמה לעדכון על ידי שינוי הערך שלComposeFoundationLayout.isWindowInsetsDefaultPassThroughEnabled
ל-true, או עדיף, על ידי הגדרת הערך שלAbstractComposeView.consumeWindowInsets
ל-true בכל המקרים של תצוגת 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 בתוך סביבת הפיתוח המשולבת, נדרשת גרסה Ladybug של Android Studio או גרסה חדשה יותר.שינוי שעלול לגרום לכשלים: עומסי יתר של
clickable
,combinedClickable
,selectable
,toggleable
ו-triStateToggleable
ללא פרמטר של אינדיקציה תומכים עכשיו רק במופעים שלIndicationNodeFactory
שסופקו באמצעותLocalIndication
. השינוי הזה יחול כשקומפילציה מחדש של השימושים במאפיינים האלה תתבצע באמצעות הגרסה הזו של Compose. השינוי לא משפיע על יחסי תלות בינאריים או טרנזיטיביים. אם אתם מספקים ל-LocalIndication
הטמעה של Indication שהוצא משימוש, ומשתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים ולאפשר לפונקציות Composable שמשתמשות במגדירי הגישה האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=false
כדי להשבית באופן זמני את השינוי הזה בהתנהגות, וכך לאפשר שדרוג של Compose בלי להיחסם במיגרציה הזו. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שהוצאו משימוש לשימוש ב-IndicationNodeFactory
במקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר Indication מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים של Indication שאינם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
הטמעה של Indication שהוצא משימוש, ומשתמשים בממשקי ה-API האלה, תתרחש קריסה בזמן הריצה. השינוי הזה נדרש כדי לשפר את הביצועים ולאפשר לפונקציות Composable שמשתמשות במגדירי הגישה האלה לדלג במהלך ההרכבה מחדש. אתם יכולים להשתמש ב-ComposeFoundationFlags.isNonComposedClickableEnabled=false
כדי להשבית באופן זמני את השינוי הזה בהתנהגות, וכך לאפשר שדרוג של Compose בלי להיחסם במיגרציה הזו. הדגל הזה יוסר אחרי גרסה יציבה אחת. כדי לפתור את הבעיה, צריך להעביר את כל ההטמעות של Indication שהוצאו משימוש לשימוש ב-IndicationNodeFactory
במקום זאת. אפשר גם להשתמש בעומסים העודפים עם פרמטר Indication מפורש – העומסים העודפים האלה ימשיכו לתמוך במופעים של Indication שאינםIndicationNodeFactory
, למרות שלא מומלץ לעשות זאת מסיבות שקשורות לביצועים. (I6bcdc, b/316914333) - הוספנו דגל לשליטה בהתנהגות האוטומטית של שליפה מראש (prefetch) מקוננת:
isAutomaticNestedPrefetchEnabled
(I8d448) - תציג עומס יתר עבור
LazyGridState
ו-rememberLazyGridState
שמקבלLazyLayoutCacheWindow
. (I51151) - הוספת סרגלים לשינוי שוליים בחלון. הוספת
DerivedRuler
כדי לאפשר חישוב של Ruler מתוך Ruler אחר. משנה אתPlacmentScope
כדי להטמיע את הצפיפות. (I658bc, b/359260964) - נוספה פונקציית יצירה (factory function) עם אפס ארגומנטים
WindowInsets()
כדי ליצור בקלותWindowInsets
ריק. (I65f62, b/395311689) - נוסף
PaddingValues.Zero
עבורPaddingValues
ריק. (If193e, b/386255688)
תיקוני באגים
- העומס העודף של
state
BasicTextField
יגרום לכך שהסמן יישאר בתצוגה כשגודלו ישתנה. (I0eb41, b/406187741) - ממשקי ה-API של
onVisibleItemsUpdated
ב-LazyListPrefetchStrategy
וב-LazyGridPrefetchStrategy
עודכנו כדי לספק מידע על המצב הראשוני. (If2cfa)
גרסה 1.8
גרסה 1.8.3
18 ביוני 2025
androidx.compose.foundation:foundation-*:1.8.3
משוחרר. גרסה 1.8.3 מכילה את ההתחייבויות האלה.
גרסה 1.8.2
20 במאי 2025
androidx.compose.foundation:foundation-*:1.8.2
משוחרר. גרסה 1.8.2 מכילה את ההתחייבויות האלה.
תיקוני באגים
- הוספנו תיקון שמונע חלוקה באפס בחישוב מספר הפריטים לטעינה בחיפוש הממוקד. החלנו את הבדיקה על כל הפריסות שמשתמשות ב-
LazyLayoutBeyondBoundsState
. (8e6dc8)
גרסה 1.8.1
7 במאי 2025
androidx.compose.foundation:foundation-*:1.8.1
משוחרר. גרסה 1.8.1 מכילה את הקומטים האלה.
תיקוני באגים
- תוקן באג ב-
BasicText
וב-TextAutoSize
שבו שימוש ב-TextOverflow.Ellipsize
הניב טקסט קטן יותר מהאופטימלי. (I1e1d8, b/396582066) - תוקן באג ב-
BasicTextField
שגרם לקריסות שונות כש-TextFieldDecorator
דילג על התקשרות ל-innerTextField
. (I2638c), b/308398612 - תוקן באג ב-
TextField
שגרם לסרגל הכלים של הטקסט ולנקודות האחיזה של הבחירה להיעלם לגמרי כשמופעTextFieldState
השתנה. (I8068a), b/390477786 - תוקן באג ב-
BasicText
שגרם לכך ששינוי האילוץ של הרוחב המינימלי לא עדכן את מיקום הטקסט כש-textAlign
הוגדר לערך שאינו ברירת המחדל. (I77a96), b/406305552
גרסה 1.8.0
23 באפריל 2025
androidx.compose.foundation:foundation-*:1.8.0
משוחרר. גרסה 1.8.0 מכילה את הקומטים האלה.
גרסה 1.8.0-rc03
9 באפריל 2025
androidx.compose.foundation:foundation-*:1.8.0-rc03
משוחרר. גרסה 1.8.0-rc03 מכילה את הקומטים האלה.
גרסה 1.8.0-rc02
26 במרץ 2025
androidx.compose.foundation:foundation-*:1.8.0-rc02
משוחרר. גרסה 1.8.0-rc02 מכילה את הקומטים האלה.
גרסה 1.8.0-rc01
12 במרץ 2025
androidx.compose.foundation:foundation-*:1.8.0-rc01
משוחרר. גרסה 1.8.0-rc01 מכילה את הקומטים האלה.
גרסה 1.8.0-beta03
26 בפברואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta03
משוחרר. גרסה 1.8.0-beta03 מכילה את ההתחייבויות האלה.
תיקוני באגים
- נוסף מאפיין סמנטי חדש,
InputText
, שמתעד את הערך של שדה טקסט לפני שמחילים עליו טרנספורמציה של פלט. (Iae46a, b/395911609, b/176949051) - הוסרו עומסי יתר (overloads) שהוצאו משימוש של
AutoSize
. מומלץ להשתמש בממשקי ה-API שלTextAutoSize
שמבצעים את אותה הפונקציה. (I2c90f) - תוקנה בעיה במטמון ב-
TextAutoSize
שבה מעבר שני לפריסה עם אותם אילוצים יכול היה לגרום לשימוש בגודל הגופן השני הכי גדול במקום בגודל הגופן הכי גדול. (Id367f)
גרסה 1.8.0-beta02
12 בפברואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta02
משוחרר. גרסה 1.8.0-beta02 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תוקנה הבעיה שבה הטמעות של גלילה מעבר לקצה באמצעות
LayoutModifierNode
לא פעלו בצורה תקינה בתוך מאגרי תגים של גלילה.
גרסה 1.8.0-beta01
29 בינואר 2025
androidx.compose.foundation:foundation-*:1.8.0-beta01
משוחרר. גרסה 1.8.0-beta01 מכילה את הקומטים האלה.
שינויים ב-API
SemanticsNodeInteraction.semanticsId()
הוסר. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.fetchSemanticsNode().id
. (Ie397a)- לשכתב את
requestAutofill
API כך שיהיה מחוץ למנהל המילוי האוטומטי. (Id1929) - הוצאנו משימוש את
ContextualFlowRow
וContextualFlowColumn
. הרכיב הניסיוני הזה הוצג בגרסה 1.7, והוא עדיין לא עבר ייצוב. ההטמעה שלו נחשבת ללא רצויה. בעתיד, יכול להיות שנספק רכיב שיפתור את תרחישי השימוש שהרכיב הזה נועד לפתור.- ל-
FlowRow
ול-FlowColumn
יש עומסי יתר ניסיוניים שהוצגו בגרסה 1.7 וכוללים פרמטרoverflow
. השימוש בפרמטר הזה הוצא משימוש, ואפשר להשתמש במקומו בעומסים העודפים בלי הפרמטר הזה. התנהגות ברירת המחדל של העומסים העודפים האלה היא Clip, כמו שהייתה מאז ההשקה. - אפשר להשתמש ב-
FlowRow
כדי לבצע הרבה תרחישי שימוש שלContextualFlowRow
, אבל אנחנו מודעים לכך שזה לא נכון באופן כללי. אפשר להטמיע אתContextualFlowRow
באופן מלא במרחב המשתמש, ואפשר לנסות להעתיק את ההטמעה שלו ולהתאים אותה לפי הצורך. בעתיד, ננסה לפתור את תרחישי השימוש האלה בדרך אחרת. (Ibafec)
- ל-
תיקוני באגים
- תיקון פריסת טקסט עם שלוש נקודות, שלפעמים מתורגמות בצורה שגויה במהלך אנימציות. מידע נוסף זמין בכתובת b/389707025 (Ie55b1, b/389707025)
- תוקן באג ב-
BasicText
שבוTextAutoSize
ו-maxLines
הוגדרו ל-1. (Ic0450, b/376834366) - הגובה המינימלי של הטקסט מביא עכשיו בחשבון את הפרמטר
minLines
. המשמעות היא שהגובה המינימלי של המודעות המובנות שדווח לא יהיה קטן מהגובה הנדרש כדי לעמוד בדרישות הפרמטרminLines
(I225f9, b/388299762)
גרסה 1.8.0-alpha08
15 בינואר 2025
androidx.compose.foundation:foundation-*:1.8.0-alpha08
משוחרר. גרסה 1.8.0-alpha08 מכילה את הקומטים האלה.
שינויים ב-API
- AutoSize: השם שונה מ-
AutoSize
ל-TextAutoSize
ופורסמו ממשקי API שמאפשרים ליצור הטמעות מותאמות אישית שלTextAutoSize
. דוגמה להטמעה של גודל טקסט אוטומטי בהתאמה אישית מופיעה במאמרTextAutoSizeSample
. (I85756) - העברנו את דגל התכונה
DetectTapGesturesEnableNewDispatchingBehavior
אלComposeFoundationFlags
ושינינו את השם שלו ל-isDetectTapGesturesImmediateCoroutineDispatchEnabled
. הדגל הישן הוצא משימוש ועכשיו הוא יוקצה ל-ComposeFoundationFlags.isDetectTapGesturesImmediateCoroutineDispatchEnabled
במקום זאת. (I62932)
תיקוני באגים
- מופעלת
DetectTapGesturesEnableNewDispatchingBehavior
כברירת מחדל. ממשקי ה-API שלTapGestureDetector
משתמשים עכשיו בהתנהגות החדשה של שליחת אירועים (שליחה מיידית) כברירת מחדל. (I9f2bc, b/369648479) - תוקנו משני ה-
requiredWidth/Height/Size
כדי לטפל בגדלים פנימיים בצורה נכונה. (Ie3d7d, b/368113212)
External Contribution
- הפונקציה
BasicTooltip
נפוצה ב-Foundation וBasicTooltip/Tooltip
ב-Material3. (Ifc2e6) - נוסף ממשק חדש ללוח ההעתקה וקומפוזיציה מקומית בשבילו. (I80809)
גרסה 1.8.0-alpha07
11 בדצמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha07
משוחרר. גרסה 1.8.0-alpha07 מכילה את הקומטים האלה.
שינויים ב-API
- הוסר הדגל
ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled
שסייע בהחזרת ההסרה שלgraphicsLayer
פנימי מ-BasicText
. אם השתמשתם בדגל הזה, אתם מוזמנים לשלוח לנו דיווח על באג כדי לספר לנו מה הסיבות לכך. בנוסף, אפשר פשוט להעביר אתModifier.graphicsLayer()
לשיחותBasicText
כדי לקבל את אותה התנהגות כמו קודם. (Id9f90) - הוספנו הטמעה כברירת מחדל ל-
stickyHeader
DSL חדש. (I68986) - המאפיין
LocalAutofillHighlightColor
composition 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. זו הייתה סיבה אפשרית לקריסות מסוג 'הפעלת מדידה בצומת מושבת'. (Id6e60)
גרסה 1.7.3
2 באוקטובר 2024
androidx.compose.foundation:foundation-*:1.7.3
משוחרר. גרסה 1.7.3 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תוקן דליפת זיכרון ב-
BasicText
כש-minLines מוגדר לערך שאינו ברירת המחדל.
גרסה 1.7.2
18 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.7.2
משוחרר. גרסה 1.7.2 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה בעיה שקשורה לרכיב שאפשר לגרור, שחסרו בו אירועים של לחיצה ממושכת, ולכן נראה שההטלה איטית מהרגיל.
גרסה 1.7.1
10 בספטמבר 2024
- לא חלו שינויים בארטיפקטים של Android.
-desktop
ארטיפקטים הוסרו ו--jvmStubs
ו--linuxx64Stubs
ארטיפקטים נוספו. היעדים האלה לא מיועדים לשימוש, אלא הם משמשים כ-placeholder כדי לתמוך במאמצים של Jetbrains Compose.
גרסה 1.7.0
4 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.7.0
משוחרר. גרסה 1.7.0 מכילה את הקומטים האלה.
שינויים חשובים מאז גרסה 1.6.0
- הביצועים של
Modifier.clickable
, Modifier.focusable
, Modifier.indication
, Modifier.scrollable
ו-Modifier.draggable
השתפרו באופן משמעותי. במסגרת המאמץ הזה, בוצעו שינויים פנימיים וגם שינויים בממשקי ה-API הבאים:- נוסף API חדש של אינדיקציות,
IndicationNodeFactory
. כך אפשר להטמיע את ההמלצות בצורה יעילה יותר בהשוואה ל-API הקודם (שכבר הוצא משימוש) rememberUpdatedInstance
. מידע על העברה זמין בכתובת developer.android.com. - הפונקציות
clickable
/combinedClickable
/selectable
/toggleable
מקבלות עכשיו פרמטרMutableInteractionSource
שאפשר להגדיר לו ערך null. אם הערך הוא null, והאינדיקציה שסופקה היאIndicationNodeFactory
, אפשר ליצור את האינדיקציה רק כשצריך, מה שמשפר את הביצועים. אם אתם לא משתמשים ב-MutableInteractionSource
, מומלץ להעביר null במקום להעבירremember { MutableInteractionSource() }
. - המאפיין
Indication#rememberUpdatedInstance
הוצא משימוש. השימוש בשיטה הזו גורם לירידה משמעותית בביצועים שאי אפשר להימנע ממנה, ומונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactory
API החדש.
- נוסף 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()
, שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I2d7f7, b/150812265) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות Android API הרשמי (
ScrollCaptureCallback
). - האפשרויות
NestedScroll
מקורות גרירה והטלה מוחלפות באפשרויותUserInput
וSideEffect
כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (תופעת לוואי) וגלגל העכבר והמקלדת (UserInput
). LazyLayout
עכשיו אפשר לסמן בקשות לאחזור מראש כדחופות, כלומר אנחנו צופים שיהיה צורך בפריט הזה בפריים הבא ורוצים להתעלם מהתקציב של הפריים כדי לוודא שנעשה יותר עבודה מראש (Id513f)- תמיכה בתכונת הכתיבה הידנית בסטיילוס במכשירים עם Android U ומעלה. (I002e4)
- ממשקי API שונים הועברו לסטטוס יציב
- החלפת עמודים, הצמדה, שוליים פנימיים של חלונות
גרסה 1.7.0-rc01
21 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01
משוחרר. גרסה 1.7.0-rc01 מכילה את הקומטים האלה.
תיקוני באגים
- תוקנה רגרסיה שגרמה לקריסה כשפריט כלשהו נמצא במיקוד בתוך רכיב אב שניתן להעברה למיקוד (או שניתן ללחיצה) ומושבת. (b/317561689)
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
משוחרר. גרסה 1.7.0-beta07 מכילה את הקומטים האלה.
תיקוני באגים
- הפונקציות
SemanticsNodeInteraction
,performTextInput
ו-performTextClearance
שקשורות לקלט טקסט, יחזירו עכשיו שגיאות של טענות (assertion) כשהן מופעלות עלTextFields
לקריאה בלבד.performTextReplacement
(I4ae8f) - תוקנה בעיה ויזואלית בהיפר-קישורים. (I23311)
- תוקן באג שבו מקש הצירוף
contentReceiver
לא פועל עם חלק משיטות הקלט. - יצירת מהירות: מניעת הפצה של ערכי NaN בממשק המשתמש של Compose וב-Foundation.
גרסה 1.7.0-beta06
24 ביולי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta06
משוחרר. גרסה 1.7.0-beta06 מכילה את הקומטים האלה.
גרסה 1.7.0-beta05
10 ביולי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta05
משוחרר. גרסה 1.7.0-beta05 מכילה את התחייבויות האלה.
תיקוני באגים
- תיקון של הטיפול בערכי Nan ב-
SnapFlingBehavior
וב-Pager.
גרסה 1.7.0-beta04
26 ביוני 2024
androidx.compose.foundation:foundation-*:1.7.0-beta04
משוחרר. גרסה 1.7.0-beta04 מכילה את הקומטים האלה.
תיקוני באגים
- תיקון באג שגורם לקריסה כשמודדים שורות טקסט גדולות מאוד (למשל 10,000 תווים) (8157ab)
- תוקן באג שקשור למדידה של טקסט גדול מאוד שגרם לקריסה בגרסה החדשה של
BasicTextField
(6b7575) - החזרת שינוי בהתנהגות במדידת שורות/עמודות שגורם לשיבוש בשימוש בטקסט בתרחישים מסוימים (69e8ba)
גרסה 1.7.0-beta03
12 ביוני 2024
androidx.compose.foundation:foundation-*:1.7.0-beta03
משוחרר. גרסה 1.7.0-beta03 מכילה את הקומטים האלה.
גרסה 1.7.0-beta02
29 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta02
משוחרר. גרסה 1.7.0-beta02 מכילה את הקומטים האלה.
שינויים ב-API
- נוסף API ניסיוני להגדרת התנהגות של אחזור מראש של
LazyGrids
בדומה ל-API הניסיוני הקיים שלLazyLists
. זה כולל תמיכה באחזור מראש של פריטים ב-LazyGrids
במבנה היררכי. בדומה ל-LazyListPrefetchStrategy
, הגדרת ברירת המחדל של ההטמעה היא אחזור מראש של 2 הפריטים הראשונים שמוטמעים בכל רשת, אבל אפשר להגדיר את זה באמצעות ממשקי ה-API החדשיםLazyGridPrefetchStrategy(nestedPrefetchItemCount)
ו-LazyListPrefetchStrategy#onNestedPrefetch
. (I591c4) - השם של
SemanticsProperties.Editable
השתנה ל-IsEditable
והערך שלSemanticsPropertyReceiver.editable
השתנה ל-isEditable
. המאפיין הוא עכשיו בוליאני ותמיד מצוין על ידי שדות טקסט. (I8acd8) - הועברו
basicMarquee
ערכי ברירת מחדל לאובייקטMarqueeDefaults
. (I12ff6) - השם של הפרמטר
basicMarquee
delayMillis
השתנה ל-repeatDelayMillis
. (I12ff6) - עדכון API לעיצוב הקישורים: הועבר
TextLinkStyles
אלTextStyle
והוסרTextDefaults
מ-Material (I5477b)
תיקוני באגים
- שם השדה
LayoutCoordinates.introducesFrameOfReference
שונה ל-LayoutCoordinates.introducesMotionFrameOfReference
כדי לשקף טוב יותר את המטרה שלו. שם הפונקציה שקשורה לחישוב הקואורדינטות שונה בהתאם לדגל. (I3a330) - הוסר הערך 'ברירת מחדל' מהנכסים
MarqueeDefaults
. (I1d8a0) - הוסר הנכס 'מאמר מרכזי' מהנכסים
MarqueeDefaults
. (Iad4f4) - הוסר מהכיתה
TextStyle
:TextLinkStyles
. במקום זאת,TextLinkStyles
הוא חלק מהבונהLinkAnntation
ומהשיטהAnnotatedString.fromHtml
(I90b2b) - תוקן באג שגרם לכך שהרכיב Pager נסגר כשמבצעים תנועת החלקה לכיוון גבול, בזמן שהוא כבר נמצא בגבול. (I9f373, b/339171222)
- עכשיו יש ב-BTF2 מחוות נכונות לבחירה בעכבר. (Ibe8c6)
External Contribution
- שליחה מחדש של 'Make compose/measure time calculation content-type based in prefetch to improve accuracy' (Iea622)
- שיפור הדיוק בחישוב הזמן של יצירה/מדידה על ידי התבססות על סוג התוכן באחזור מראש (Ibccb1)
- הגדרת מגבירים של
WindowInsetsPadding
כזמינים מתוך קבוצת מקורות משותפת (I070b2)
גרסה 1.7.0-beta01
14 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-beta01
משוחרר. גרסה 1.7.0-beta01 מכילה את הקומטים האלה.
שינויים ב-API
- המאפיין
KeyboardOptions.shouldShowKeyboardOnFocus
נוסף מחדש כמאפיין שהוצא משימוש ומוסתר לצורך תאימות בינארית. (I15cfe) -
Modifier.anchoredDraggable
עכשיו מתבצעת היפוך של דלתאות הגרירה כברירת מחדל לרכיבים עם כיוון אופקי כשמשתמשים בהם בפריסה מימין לשמאל. (I3c6d9) - השם של
AnnotatedString.hasEqualsAnnotations
הוא עכשיוhasEqualAnnotations
. (I685c0) - ה-API לעדכון קישורים עם עיצוב Material בטקסט עודכן. הסרנו את השיטות מה-
TextDefaults
ליצירתLinkAnnotations
עם נושאים ולניתוח HTML עם קישורים שמותאמים לנושאים. במקום זאת, הוספנו מחלקהTextLinkStyles
שמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93) - הוחלפו
onDragStarted
ו-onDragStopped
בקריאות חוזרות שלא גורמות להשהיה. (I59de8)
תיקוני באגים
- תוקן באג שגרם לקריסה של Pager כש-
contentPadding
היה גדול מהמגבלות הנכנסות. הערכים השליליים שמוחזרים מהפונקציהPageSize
מומרים עכשיו ל-0. (Iba5d8, b/314008560)
גרסה 1.7.0-alpha08
1 במאי 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha08
משוחרר. גרסה 1.7.0-alpha08 מכילה את הקומטים האלה.
תכונות חדשות
- הוספנו לתפריט ההקשר של
BasicTextField
ו-SelectionContainer
פריטים לפעולות גזירה, העתקה, הדבקה ובחירת הכול. (If8c93, Ia2b49, I6f268)
שינויים ב-API
LazyLayout
עכשיו אפשר לסמן בקשות לאחזור מראש כדחופות, כלומר אנחנו צופים שיהיה צורך בפריט הזה בפריים הבא ורוצים להתעלם מהתקציב של הפריים כדי לוודא שנעשה יותר עבודה מראש (Id513f)- השם של
isPositionedByParentWithDirectManipulation
שונה ל-introducesFrameOfReference
. שימו לב שההשפעה שלה הפוכה עכשיו, כלומר, כברירת מחדל, רובLayoutCoordinates
מציגים מסגרת הפניה, ורק כשממקמים אותם תחת מניפולציה ישירה, המאפיין יהיה false. כדי לשאול על מיקום רק עם אלה שמציגים מסגרת התייחסות, משתמשים ב-positionInLocalFrameOfReference(...)
. אוpositionInLocalLookaheadFrameOfReference
מ-LookaheadScope
. (Ifc5f7) - השם של
onClicked
שונה ל-onClick
בתוךLinkInteractionListener
(Iaa35c) - שינוי של lambda של פעולה עבור
getScrollViewportLength
בהתאם למשוב של מועצת ה-API. (Ibc74a) - שינינו את השם של ממשקי ה-API להענקת גישה לכתיבה ידנית בסטיילוס. (Ica45f, b/327271923)
- שינוי השם של
TextInclusionStrategy.isInside
לisIncluded
. הגדרת סוג ההחזרה שלParagraph/MultiParagraph#getRangeForRect()
כלא ניתן לאיפוס. (I51f26)
תיקוני באגים
- הוספנו את האפשרות 'בחירת הכול' לכל התפריטים ההקשריים של הטקסט ב-
SelectionContainer
. (Ib750e, b/240143283) - תוקנה בעיה בצילום מסך ארוך של מאגרי תגים נגללים עם
reverseScrolling=true
. (I7c59c) - תוקנה בעיה שבה הערך של
AnchoredDraggableState
[currentValue
] השתנה כשמתקרבים לגבולות של המצב. (Iea30b, b/333846848)
External Contribution
- שינינו את השם של
PrefetchExecutor
->PrefetchScheduler
כדי לשקף טוב יותר את האחריות שלו. (Ib9154) - הוספנו תמיכה באחזור מראש של פריטים ב-
LazyLists
מקוננים (למשלLazyColumn
שמציגLazyRows
מקונן). השינוי הזה צפוי להפחית את מספר הפריימים שנושרים במהלך גלילה ב-LazyLists
האלה. ההתנהגות שמוגדרת כברירת מחדל בהטמעה היא אחזור מראש של 2 הפריטים הראשונים ברמה השנייה, אבל אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשיםLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
ו-LazyListPrefetchStrategy#onNestedPrefetch
. (I51952)
גרסה 1.7.0-alpha07
17 באפריל 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha07
משוחרר. גרסה 1.7.0-alpha07 מכילה את הקומטים האלה.
תכונות חדשות
- נוסף אובייקט
TextDefaults
שמכיל שיטות ליצירתLinkAnnotation
ולניתוח מחרוזת עם תגי HTML שמחילותMaterialTheme
על הקישורים. (I98532, b/139312671) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyVerticalGrid
וב-LazyHorizontalGrid
. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()
כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי ההתנהגות הזה והשקנו שינוי התנהגות חדש ולא ניסיוני בשםModifier.animateItem()
, שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (Ib7d12, b/330510929) - נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyVerticalStaggeredGrid
וב-LazyHorizontalStaggeredGrid
. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()
כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי ההתנהגות הזה והשקנו שינוי התנהגות חדש ולא ניסיוני בשםModifier.animateItem()
, שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I69bc9, b/330511290)
שינויים ב-API
- כולל
ContextMenuColors
ואתLocalContextMenuTheme
ProvidableCompositionLocal
המשויך. אפשר לשנות את הצבעים של תפריט ההקשר בתיבות טקסט ובטקסט שאפשר לבחור בו על ידי ציון המיקום של הקומפוזיציה. (Ifa154) - נוספה אפשרות לעיצוב של מצב לחיצה בקישורי טקסט, בנוסף לעיצוב רגיל, לעיצוב של מצב ריחוף ולעיצוב של מצב מיקוד. (I5f864, b/139312671)
- הוספנו את
ViewConfiguration.HandwritingGestureLineMargin
לתנועות של כתב יד. תמיכה בתנועת כתב יד עבורBasicTextField
. (Ie6e13, b/325660505) - הסרנו את
DelegatableNode.scrollIntoView
בגרסה 1.7 כי לא היה לנו זמן לסיים את הייצוב של שאר ממשק ה-API שקשור אליו. הפונקציה הזו תתווסף מחדש בגרסה 1.8 (I6cf61, b/333421581, b/332900232) - כשמבצעים שאילתה לגבי קואורדינטות של פריסה, אפשר להשתמש עכשיו בארגומנט
excludeDirectManipulationOffset
כדי להחריג את ההיסט שמוגדר על ידי פריסות אב שמיקמו את רכיבי הצאצא שלהן באמצעותPlaceable.PlacementScope.withDirectManipulationPlacement
. באופן דומה, רכיב Layout שמשנה את המיקום של רכיבי הצאצא שלו לעיתים קרובות עשוי למקם אותם עכשיו באמצעותwithDirectManipulationPlacement
(כמו Scroll, שמוטמע כברירת מחדל). השינוי הזה עוזר ליצור אנימציות אינטואיטיביות יותר ב-approachLayout
, כי עכשיו אפשר להבחין בין ההיסט שרוצים להנפיש לבין ההיסט שרוצים להחיל ישירות כשמחליטים להנפיש את הגישה. (I60ec7) - הצגת
requestScrollToItem
עבורLazyStaggeredGrid
. עכשיו הלקוח יכול לבטל את ההסכמה לשמירת האינדקס על סמך המפתח בכל מעבר מדידה, על ידי קריאה ל-requestScrollToItem
. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה ל-requestScrollToItem
. (I63983) - הצגת
requestScrollToPage
בתצוגת הדפים. עכשיו הלקוח יכול לבטל את ההסכמה לשמירת האינדקס על סמך המפתח בכל מעבר מדידה, על ידי קריאה ל-requestScrollToPage
. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה ל-requestScrollToPage
. (Ic4213) - השקנו את
requestScrollToItem
ל-LazyGrids
. עכשיו הלקוח יכול לבטל את ההסכמה לשמירת האינדקס על סמך המפתח בכל מעבר מדידה, על ידי קריאה ל-requestScrollToItem
. השינוי הזה לא משפיע על ההתנהגות הקיימת בשום צורה, אלא אם מתבצעת קריאה ל-requestScrollToItem
. (I0a7a0) - האפשרות
ClickableText
הוצאה משימוש. כדי להוסיף קישורים לטקסט, יוצריםAnnotatedString
עםLinkAnnotation
שמתאים לקישור ומעבירים אתAnnotatedString
הזה ל-Text
composable (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) - מקורות
NestedScroll
Drag and Fling מוחלפים ב-UserInput
וב-SideEffect
כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגל העכבר והמקלדת (UserInput
). (I40579) - הוספנו את
LocalBringIntoViewSpec
, התנהגות גלילה שמתמקדת ברכיבים ותלויה בפלטפורמה, שמוחלת בשכבת ה-modifier של Scrollable. (I27aa5, b/317453911) - בוצעה הסרה של
TextFieldCharSequence
. TextFieldBuffer.originalValues
מוחלף ב-TextFieldBuffer.originalText
וב-TextFieldBuffer.originalSelection
. (I2c7d6) - השדה
ImeOptions.hintLocales
כבר לא יכול להכיל ערך null. אם רוצים להעביר רשימה ריקה של Locale, צריך להשתמש ב-LocaleList.Empty
. (Ic5bc4) - השם של
getOffsetFractionForPage
שונה ל-getOffsetDistanceInPages
. (Ia05e2)
תיקוני באגים
- כשמצטרפים
InputTransformations
ל-next
, המידעKeyboardOptions
שלהם מאוחד עכשיו בצורה תקינה לפי אפשרויות נפרדות באמצעות השיטה החדשהKeyboardOptions.merge
. (Ie5304, b/295951492) -
AnchoredDraggableState
targetValue
כבר לא מתייחס יותר לספי מיקום. עכשיו יש לו סף משתמע של 50%, כלומרtargetValue
משתנה בנקודת האמצע בין שתי נקודות עיגון. (I82c2c)
External Contribution
- שינוי השם של 2 ממשקי API לגלילה (I56a75)
גרסה 1.7.0-alpha06
3 באפריל 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha06
משוחרר. גרסה 1.7.0-alpha06 מכילה את הקומטים האלה.
תכונות חדשות
- נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-
LazyColumn
וב-LazyRow
. בעבר הייתה אפשרות להוסיף את המגבילModifier.animateItemPlacement()
כדי לתמוך באנימציות של מיקום (סידור מחדש). הוצאנו משימוש את שינוי ההתנהגות הזה והשקנו שינוי התנהגות חדש ולא ניסיוני בשםModifier.animateItem()
, שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הנפשה של כניסה), היעלמות (הנפשה של יציאה) ושינוי סדר. (I2d7f7, b/150812265) - לקוחות של
LazyColumn/LazyRow
יכולים עכשיו לבטל את ההסכמה לשמירה של אינדקס שמבוסס על המפתח של המעבר הקרוב למדידה, על ידי קריאה ל-LazyListState.requestToScroll
שלא מושעה. (I98036, b/209652366) - הוספנו את השיטה
parseAsHtml
למחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString
. שימו לב: לא כל התגים נתמכים. לדוגמה, אי אפשר להציג עדיין רשימות עם תבליטים. (I84d3d) - הטמענו תמיכה ניסיונית בצילומי מסך ארוכים במאגרי גלילה של Compose באמצעות Android API רשמי (
ScrollCaptureCallback
). התכונה הזו ניסיונית ויכול להיות שהיא לא תטפל כרגע בכל המקרים בצורה נכונה. לכן, בשלב הזה הוא מושבת כברירת מחדל. כדי להצטרף, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabled
לערך true. הדגל הזה יוסר לפני גרסת בטא 1.7. (I2b055, b/329296471) - הוספנו
GraphicsLayer
API חדש כדי לספק גמישות רבה יותר במיקום ובעיבוד של מופעי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
. ההיקף של המקבל בפונקציה הוא עכשיוTextFieldBuffer
. (I919cc) - הגרסאות
BasicTextField(state)
ו-BasicSecureTextField
משתמשות עכשיו ב-KeyboardActionHandler
במקום ב-KeyboardActions
כדי לעבד פעולות שמבוצעות באמצעות המקלדת הווירטואלית. (I58dda) - ממשקי API של העברת כתיבה ידנית בסטיילוס כדי לתמוך בכתיבה ידנית בסטיילוס בשדות קלט טקסט 'מזויפים'. (I9c09c, b/327271923)
- השם של
KeyboardOptions.shouldShowKeyboardOnFocus
שונה ל-showKeyboardOnFocus
. (Ib4b7a, b/295951492) - הפרמטר
hintMediaTypes
הוסר מ-Modifier.contentReceiver
. כבר עודדנו מפתחים לבדוק את סוג המדיה שלTransferableContent
שהתקבל, כי יכול להיות שהוא לא תואם ל-hintMediaTypes
שהוגדר. (I82f99) - שינינו את הסדר של הפרמטרים של
BasicSecureTextField
. הפרמטריםkeyboardType
ו-imeAction
הוסרו לטובת המחלקה המלאהKeyboardOptions
, תוך שמירה על ברירות המחדל המתאימות ל-BasicSecureTextField
. הוסר גם הפרמטרscrollState
. (Ibbfa9) - הסוג של
TextFieldState.text
השתנה מ-TextFieldCharSequence
ל-CharSequence
. לכן, הוספנו אתTextFieldState.selection: TextRange
ו-TextFieldState.composition: TextRange?
כדי לקרוא את הערכים של הבחירה והקומפוזיציה הנוכחיות ישירות מאובייקט המצב. - בוצעה הסרה של
TextFieldState.forEachTextValue
. (Idb2a2) - הפונקציות
ClipboardManager.getClipMetadata
ו-ClipboardManager.hasClip
הוסרו. אפשר להשתמש ב-clipEntry.getMetadata()
כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. כדאי גם לבדוק את התוצאה שלClipboardManager.getClip
אם היא null או לא, כדי להבין אם יש בלוח קטע נוכחי. (I50498) -
ClipboardManager.setClip
מקבל עכשיו ערך null כדי לאפשר ניקוי של הלוח. (I7d2e9) -
ReceiveContentListener
מומר לממשק פונקציות. בנוסף, עומס יתר שלModifier.receiveContent
שמקבל למדה הוסר כיReceiveContentListener
הוא עכשיו ממשק פונקציה. - השם של
Modifier.receiveContent
השתנה ל-Modifier.contentReceiver
. (I1e6af) - השם של
TransferableContent.consumeEach
שונה ל-TransferableContent.consume
. (I1e462) -
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) - הוסרו שיטות ומאפיינים שקשורים לנקודות קוד בקטע
TextFieldState
ובקטעTextFieldBuffer
. הסרנו גם את הסיומותinChars
מממשקי ה-API שנותרו שקשורים לבחירה ולחיבור. (Ief7ce) - הערך של
AnchoredDraggable
ב-currentValue
יתעדכן עכשיו כשעוברים דרך נקודת עיגון. משתמשים ב-settledValue
כדי לקבל את הסמנטיקה הקודמת שלcurrentValue
, ומתעדכנים רק כשמגיעים לנקודת עוגן. ההתקדמות מוצגת עכשיו כפונקציה (שדורשת נקודת התחלה ונקודת סיום) במקום כמאפיין. (Ibe6e8, b/318707189, b/298271489, b/294991954) -
BasicTextField(state)
, TextFieldState
, InputTransformation
, OutputTransformation
, TextFieldLineLimits
, TextFieldDecorator
עברו לשלב יציב. (I9582b) - הוספנו את
InterceptPlatformTextInput
כדי לעזור לכתוב בדיקות ברמה נמוכה שקשורות ל-IME, ותרחישי שימוש אחרים ב-IME ברמה נמוכה. המאפייןPlatformTextInputTestOverride
הוצא משימוש. (I862ed, b/322680547) - פיצול
restrictedConstraints()
לשתי שיטות:fitPrioritizingWidth()
ו-fitPrioritizingHeight()
(I6d7fd)
External Contribution
- נוספו 2 ממשקי API חדשים
isLastScrollForward
/isLastScrollBackward
לבדיקת כיוון הגלילה של פעולת הגלילה האחרונה, מחזירים false אם עדיין לא בוצעה פעולת גלילה. (I63a0e)
גרסה 1.7.0-alpha04
6 במרץ 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha04
משוחרר. גרסה 1.7.0-alpha04 מכילה את הקומטים האלה.
שינויים ב-API
- תמיכה בתכונת הכתיבה הידנית בסטיילוס במכשירים עם Android U ומעלה. (I002e4)
- נוסף
hintLocales
ל-KeyboardOptions
כדי לספק ל-TextFields
את היכולת להציע לממשקי IME לוקאלים ספציפיים כדי להגדיר מראש שפה מועדפת. (Id18c2) - הוסרו העומסים העודפים של
BasicTextField2
ו-BasicSecureTextField
שהיו בשלב הניסוי, וכללו את הפרמטריםvalue: String
ו-onValueChange: () -> String
. (I568b4) - מוסיפים פונקציה אופציונלית
applySemantics
ל-InputTransformation
כדי להשפיע על הסמנטיקה שלBasicTextField2
שאליה היא מוחלת. (I74a2f, b/170648072) - ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית
GetScrollViewportLength
כדי שנוכל להעביר מידע על הרכיבים שמוצגים בגלילה ב-Compose למערכת הנגישות. ב-CL הזה נעשה שימוש במאפיין הזה גם ברשימות שאפשר לגלול בהן ב-Foundation. (Ic5fa2) - השם של
BasicTextField2
השתנה ל-BasicTextField
. (Ie5713) -
FocusRequester.createRefs
יציב עכשיו (I4d92c, b/261436820) - הוספנו את
DelegatableNode.scrollIntoView()
כדי לאפשר לצמתי שינוי לבצע בקשותscrollIntoView
ישירות. (I2b3b7, b/299939840) - הוספנו את
DelegatableNode.requireView()
כדי לאפשר לצמתי שינוי לקבל אתView
הנוכחי של Android בלי לקרוא את המיקום המקומי של הקומפוזיציה. (I40768) - הוספנו מידע על פריסה לפי הקשר ב-Contextual Flow Row Scope וב-Contextual Flow Column Scope, כולל אינדקס שורות, מיקום ומגבלות על רוחב וגובה מקסימליים כדי להישאר במיקום שצוין. פריטים שחורגים מהרוחב או מהגובה המקסימליים עשויים לעבור לשורה הבאה או להיות מושמטים, בהתאם להגדרות הגלישה. (Id13f8, b/292114798)
תיקוני באגים
- תוקן באג שבו החלפה של מאפייני
enabled
אוreadOnly
שלTextField
בתנאים מסוימים גרמה לקריסה. (Iae17b)
גרסה 1.7.0-alpha03
21 בפברואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha03
משוחרר. גרסה 1.7.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו את
DelegatableNode.requireLayoutCoordinates()
כדרך לקבל אתLayoutCoordinates
הנוכחי שלModifier.Node
בלי שתצטרכו לבטל אתonPlaced
ולאחסן את הקואורדינטות בנכס בעצמכם. (Ia8657) - הוספנו את
DelegatableNode.currentLayoutCoordinates
כדרך לקבל אתLayoutCoordinates
הנוכחי שלModifier.Node
בלי שתצטרכו לבטל אתonPlaced
ולאחסן את הקואורדינטות בנכס בעצמכם. (Iaebaa) - אופטימיזציות של הביצועים ב-
DraggableAnchors
שנעשה בהן שימוש על ידיAnchoredDraggable
. (I89cff) -
BasicTextField2
וממשקי API קשורים בחבילהandroidx.compose.foundation.text2
מועברים אלandroidx.compose.foundation.text
. (I9f635) - הפרמטר
BasicTextField2
לא מקבל יותר את הפרמטרCodepointTransformation
. אפשר להשתמש ב-BasicSecureTextField
או ב-OutputTransformation
. (Id34ff) - הוספנו שיטה להשוואה רק בין ההערות של שני
AnnotatedStrings
. (I32659) - חדש:
ContextualFlowRow
וFlowRow
/Column
משופרים עםMaxLines
וOverflow
. אנחנו שמחים להודיע על שיפורים בתכונות הניסיוניותFlowRow
ו-FlowColumn
, שכוללות עכשיו תמיכה ב-maxLines
ובגלישה מעבר למסך, לצד השקת התכונותContextualFlowRow
ו-ContextualFlowColumn
. העדכון הזה נועד לספק רכיבים עם ביצועים אופטימליים. הרכיבContextualFlow*
מתאים למספר גדול של פריטים שמשתמשים בהגדרתmaxLines
קטנה ובלחצנים דינמיים של 'עוד' (+N). הרכיביםFlowRow
ו-FlowColumn
מתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRow
או ב-FlowColumn
, שבה כל הפריטים מורכבים בלי קשר להתאמה שלהם לערך המקסימלי של הציר הניצב, צריך להגדיר אתoverflow
ל-FlowRowOverflow.Visible
או ל-FlowColumnOverflow.Visible
במהלך האתחול. כדאי לצפות בסרטוניםContextualFlowRowSample
וFlowRowSample
כדי לראות דוגמאות לשימוש בתכונות החדשות האלה. (Ib9135, b/293577082)
תיקוני באגים
- האנימציה של הסמן לא מבקשת יותר פריימים בין מצב מופעל למצב מושבת. (Ia2253)
KeyboardOptions
' deprecated copy constructors will now correctly copy all properties. (If12de)
גרסה 1.7.0-alpha02
7 בפברואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha02
משוחרר. גרסה 1.7.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הגרסאות
HorizontalPager
,VerticalPager
ו-PagerState
מקודמות לגרסה יציבה. (I67660, b/316966909) - נוסף
LocalTextLinkStyle
composition local שמאפשר לשנות את הסגנון של הקישורים בטקסט באפליקציה. אם אתם משתמשים בערכת נושא משלכם באפליקציה, אתם צריכים להגדיר את ה-composition local הזה בהתאם לערכת הנושא שלכם. כשמשתמשים בעיצוב Material, צבע הקישור מוגדר כברירת מחדל לצבע הראשי של Material. (I7eb10) - הוספנו את
receiveContent
modifier שמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose. -
receiveContent
משתלב עםBasicTextField2
כדי לקבל תוכן עשיר שמסופק על ידי המקלדת הווירטואלית, או באמצעות פעולת הדבקה מהלוח. (I81b72) - במסגרת השינוי הזה, אנחנו מחליפים את
SnapFlingBehavior
ב-TargetedFlingBehavior
ב-pager כדי לאפשר תרחישי שימוש נוספים ולספק גמישות רבה יותר. (I762ea) - במסגרת השינוי הזה, אנחנו הופכים את ממשקי ה-API של הצמדה ליציבים. אנחנו גם מנקים חלק מקוד הבדיקה ומוסיפים עוד דוגמאות ל-Snapping. (Id8da9)
- הכירו את
TargetedFlingBehavior
,FlingBehavior
שמאפשר להפיץ מידע על מצב האנימציה הפעילה ועל היעד שלה למיקום הגלילה. (I6a207)
תיקוני באגים
- מעכשיו,
BasicTextField2
שומר את הסמן בתצוגה בזמן ההקלדה, אם הוא יצא מהתצוגה בגלל גלילה או בגלל קלט. (Ieb856, b/237190748)
External Contribution
- נוסף API ניסיוני להגדרת התנהגות טעינה מראש של LazyLists. (I022a4)
גרסה 1.7.0-alpha01
24 בינואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
משוחרר. גרסה 1.7.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- נוסף
Indication API
חדש,IndicationNodeFactory
. התוצאה היא הטמעות יעילות יותר שלIndication
בהשוואה ל-API הקודם (שכבר הוצא משימוש) שלrememberUpdatedInstance
. מידע על העברה זמין בכתובת developer.android.com. - הפונקציה
clickable / combinedClickable / selectable / toggleable
מקבלת עכשיו פרמטרMutableInteractionSource
שאפשר להגדיר לו ערך null. אם הערך הוא null, והערך שצוין ב-Indication
הואIndicationNodeFactory
, אפשר ליצור אתIndication
רק כשצריך, מה שמשפר את הביצועים. אם לא משתמשים ב-MutableInteractionSource
, מומלץ להעביר null.
שינויים ב-API
- השינוי הזה מוסיף פרמטר
decayAnimationSpec
ל-AnchoredDraggable
ומאפשר להשתמש באנימציית דעיכה כשמגיעים לאחד העוגנים.DecayAnimation
AnchoredDraggable
במסגרת השינוי, השם שלanimationSpec
הקיים שונה ל-snapAnimationSpec
כדי לעזור להבין את תרחיש השימוש של כל מפרט. BasicTextField2
זמין לשימוש ניסיוני. היא צריכה להיות שוות ערך בערך ל-BasicTextField
, וההתנהגות שלה צריכה להיות מוכנה לייצור. עם זאת, ה-API עדיין ניסיוני. לפני שהיא תהפוך ליציבה, היא תשונה ל-BasicTextField
ותועבר לאותה חבילה.- השקנו את הטיוטה הראשונה של
OutputTransformation
API ל-BasicTextField2
. ה-API הזה מחליף את רוב תרחישי השימוש ב-VisualTransformation
בגרסה הישנה שלBasicTextField
. עם זאת, הוא עדיין לא מושלם, ויש דברים שלא יפעלו כמו שצריך. נשמח לקבל משוב על השימושיות של ה-API בתרחישי השימוש שלכם. (aosp/2708848) - הוספנו את התג
LinkAnnotation
שמאפשר להוסיף קישורים ורכיבים שאפשר ללחוץ עליהם לטקסט. התכונה 'קישורים' עדיין לא הושלמה, וצפויים שינויים נוספים ב-API. - הוספנו את
receiveContent
modifier שמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose. -
receiveContent
משתלב עםBasicTextField2
כדי לקבל תוכן עשיר שמסופק על ידי המקלדת הווירטואלית, או באמצעות הדבקה מהלוח. KeyboardOptions.shouldShowKeyboardOnFocus
מאפשרת להשבית את התנהגות ברירת המחדל שלBasicTextField
של בקשת מקלדת תוכנה במיקוד.- המאפיינים
TextInputService
ו-LocalTextInputService
הוצאו משימוש. במקום זאת, אפשר להשתמש ב-PlatformTextInputModifierNode
כדי לבצע שילוב ישירות עם ממשקי ה-API של IME בפלטפורמה. (aosp/2862698) - המאפיין
Indication#rememberUpdatedInstance
הוצא משימוש. השימוש בשיטה הזו גורם לירידה משמעותית בביצועים שאי אפשר להימנע ממנה, ומונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactory
API החדש.
תיקוני באגים
-
BasicTextField
יבצע עכשיו אימות מראש של מבחר קטן של מיפויי היסטרים כשמעבירים אתVisualTransformation
. כך אפשר לזהות שגיאות נפוצות בקידוד שמובילות לחריגות שלא ניתן לתקן בשלבים מאוחרים יותר של המדידה או של העברת הנתונים. השגיאות האלה מוצגות במהלך ההרכבה, ולכן יש סיכוי גבוה יותר שהמפתחים יראו אותן במהלך הפיתוח, וכך יוכלו למנוע קריסות בסביבת הייצור. (I0fd42) -
VisualTransformation
לא יופעל אם מחזירים אינדקס לא תקין לאינדקס לא תקין (b/316401857 )
גרסה 1.6
גרסה 1.6.8
12 ביוני 2024
androidx.compose.foundation:foundation-*:1.6.8
משוחרר. גרסה 1.6.8 מכילה את הקומטים האלה.
גרסה 1.6.7
1 במאי 2024
androidx.compose.foundation:foundation-*:1.6.7
משוחרר. גרסה 1.6.7 מכילה את הקומטים האלה.
גרסה 1.6.6
17 באפריל 2024
androidx.compose.foundation:foundation-*:1.6.6
משוחרר. גרסה 1.6.6 מכילה את התחייבויות האלה.
תיקוני באגים
- תוקן באג שבו החלפה של מאפייני
enabled
אוreadOnly
שלTextField
בתנאים מסוימים גרמה לקריסה. (Iae17b)
גרסה 1.6.5
3 באפריל 2024
androidx.compose.foundation:foundation-*:1.6.5
משוחרר. גרסה 1.6.5 מכילה את הקומטים האלה.
תיקוני באגים
- הוספנו יומני ניפוי באגים לבאגים שקשה לשחזר בשורה/בעמודה: (b/300280216 ו-b/297974033)
גרסה 1.6.4
20 במרץ 2024
androidx.compose.foundation:foundation-*:1.6.4
משוחרר. גרסה 1.6.4 מכילה את הקומטים האלה.
תיקוני באגים
- התנועה של לחיצה ארוכה ואז גרירה לבחירת טקסט, שיוצאת מגבולות הפריסה של הטקסט בפריים הראשון של הגרירה, לא גורמת יותר לקריסה. (Icdf90, b/325307463)
גרסה 1.6.3
6 במרץ 2024
androidx.compose.foundation:foundation-*:1.6.3
משוחרר. גרסה 1.6.3 מכילה את הקומטים האלה.
גרסה 1.6.2
21 בפברואר 2024
androidx.compose.foundation:foundation-*:1.6.2
משוחרר. גרסה 1.6.2 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון של
AnimateContentSize
שלא מתאפס כראוי. (I07051) - נפתרה בעיה שגרמה לשמירת
intrinsicHeight
של טקסט במטמון יתר בנסיבות מסוימות. (3cd398, b/217910352)
גרסה 1.6.1
7 בפברואר 2024
androidx.compose.foundation:foundation-*:1.6.1
משוחרר. גרסה 1.6.1 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון של מדד רשת מדורגת כשגוללים מעבר למגבלה. (bffc39)
- הוספת בדיקה של פריסה עם ממדים גדולים. (e74af5)
- תיקון המיקום של פריטים בגודל 0 בתחילת הרשת המדורגת. (785f94)
- הפעלת הקריאה החוזרת onRelease באותו סדר כמו onForgotten. (31ce3b)
גרסה 1.6.0
24 בינואר 2024
androidx.compose.foundation:foundation-*:1.6.0
משוחרר. גרסה 1.6.0 כוללת את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.5.0
- נוסף משנה
Modifier.anchoredDraggable
שמאפשר לגרור ולהנפיש בין קבוצה מוגדרת מראש של נקודות עיגון. המשנה הזה נועד להחליף אתModifier.swipeable
. במדריך להעברת נתונים מוסבר איך להשתמש בכלי הזה ואיך להעביר נתונים מ-Modifier.swipeable
. - נוספה פונקציונליות של גרירה ושחרור בין אפליקציות ורכיבים. כדי להתחיל, אפשר לעיין במאמרים בנושא
DragAndDropTarget
,Modifier.dragAndDropSource
ובממשקי API אחרים -
Modifier.draggable2D
הוא משנה חדש שמאפשר תמיכה קלה בגרירה דו-ממדית. דוגמה - הוספנו את
AndroidExternalSurface
ו-AndroidEmbeddedExternalSurface
כדי להקל על הוספת רכיבים מונחי-משטח ב-Compose - שינויים ושיפורים שונים ב-API ב-
Pager
וב-snapFlingBehaviour
- ממשקי API שונים של מיקוד, טקסט ו-insets עברו לסטטוס של ממשקי API יציבים
גרסה 1.6.0-rc01
10 בינואר 2024
androidx.compose.foundation:foundation-*:1.6.0-rc01
משוחרר. גרסה 1.6.0-rc01 כוללת את הקומיטים האלה.
שינויים ב-API
- הוסר בנאי התוסף
DragAndDropTarget()
. יוצרים מכונה חדשה באמצעותobject: DragAndDropTarget {}
. (I32318)
גרסה 1.6.0-beta03
13 בדצמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta03
משוחרר. גרסה 1.6.0-beta03 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון קריסה שהשפיעה על טקסט גדול מאוד שנמדד עם אילוצים אינסופיים. (I1a7df, b/312294386)
-
PlatformImeOptions
היא עכשיו מחלקה קונקרטית במקום ממשק. (If40a4)
גרסה 1.6.0-beta02
29 בנובמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta02
משוחרר. גרסה 1.6.0-beta02 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון של בעיה שבה
canScroll
לא מתעדכן אחרי גלילה שכוללת רק שינוי פריסה. (I60a86) - תיקון של
Modifier.animateItemPlacement()
ו-LookaheadScope
אחרי גלילות קטנות. (I3a2b7)
גרסה 1.6.0-beta01
15 בנובמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-beta01
משוחרר. גרסה 1.6.0-beta01 מכילה את הקומיטים האלה.
שינויים ב-API
- המשנה
DragAndDropTarget
מקבל עכשיו אתDragAndDropTarget
המקבל באופן מפורש, ויש לו ביטוי למדא כדי להצטרף לסשן של גרירה ושחרור. יש עכשיו שתי פונקציות ליצירת אובייקטDragAndDropModifierNode
. אחד לקבלת העברות ואחד להעברת נתונים (I69481) - העדכון בוצע ב-
maximumFlingVelocity
כדי שיוצג כ-Float. עדכנו את התיעוד כדי להבהיר את נושאmaximumFlingVelocity
האחדות. (I8adc7) השם של
onDragAndDropStart
במפעלDragAndDropModifierNode
שונה ל-acceptDragAndDropTransfer
.איש/אשת הקשר
acceptsDragAndDropTransfer
נוסף/ה אלdragAndDropTarget
Modifier
כדי לאשר את ההזמנה באמצעות גרירה ושחרור. פונקציית ה-lambda הזו מחזירהDragAndDropTarget
אם המשתמש מעוניין בסשן של גרירה ושחרור. הפונקציה הזו מחליפה פונקציות למבדה אחרות לעיבוד אירועי גרירה.נוספה פונקציית יצרן
DragAndDropTarget
לקבלת נתונים מפעולות גרירה ושחרור (Iebf3a)חשיפת
startDragImmediately
ב-AnchoredDraggable
מאפשרת שליטה בזיהוי תנועות גרירה כשמשתמשים בו. כדאי להגדיר את המאפיין הזה כשהווידג'ט מונפש לעוגן יעד. דוגמה (Ie6d13, b/285139987)ממשקי ה-API של הסברים קצרים על כלי Foundation זמינים עכשיו בגרסת
@ExperimentalFoundationApi
(I30b0b)הוסר
DragAndDropInfo
כסוג.DragAndDropModifierNode.drag
מקבל עכשיו פרמטרים עבורtransferData
, גודל העיטור וגרירת העיטורDrawScope
lambda
DragAndDropTarget
כולל שיטות לאירועי גרירה ושחרור ספציפיים, במקום שיטה מופשטת אחתהפרמטר
onDragAndDropEvent
בפונקציית היצירה שלDragAndDropModifierNode
שונה ל-onDragAndDropStart
כדי להבהיר שהערך שלDragAndDropTarget
תקף רק לסשן מסוים של גרירה ושחרורהוסר
DragAndDropEventType
(I645b1)השם של
PlatformTextInputModifierNode.runTextInputSession
שונה ל-establishTextInputSession
. (I03cd0)צריך להחליף את
OriginalText
ב-TextSubstitution
. (Ifa5a8)השם של
PlatformTextInputModifierNode.textInputSession
שונה ל-runTextInputSession
. (Ie9c6b)האלמנטים הצאצאים של
SubcomposeLayout
(ופריסות כמוLazyColumn
שמבוססות עליו) שנשמרים לשימוש חוזר בעתיד נחשבים כלא פעילים. הוספנוassertIsDeactivated()
API חדש לבדיקה כדי לבדוק צמתים כאלה. שאר ממשקי ה-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) - הוספנו תמיכה ב-Sweep Gradient לרכיב 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) - נוספו מקשי הצירוף
dragAndDropSource
להפעלת סשנים של גרירה ושחרור, ומקשי הצירוףdragAndDropTarget
לקבלת נתונים מסשנים של גרירה ושחרור (Ib7828, b/286038936) - עדכון התיעוד של
SnapPositionInLayout
ושיטת המיקום. הוספת מרווחי תוכן לשיטת המיקום ב-SnapPositionInLayout
. (Id7938, b/300116110) - הוספנו את האפשרות
UndoState
ל-TextFieldState
, שמאפשרת לבטל או לבצע מחדש את השינויים שהמשתמש ביצע. (Icc024)
תיקוני באגים
- תוקנה הבעיה שבה
basicMarquee
לא מונפש אחרי שינוי המהירות. (Id2e77, b/297974036)
גרסה 1.6.0-alpha06
20 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha06
משוחרר. גרסה 1.6.0-alpha06 מכילה את הקומיטים האלה.
תכונות חדשות
- עטיפות חדשות של Composable ל-
SurfaceView
, ל-TextureView: GraphicsSurface()
ול-EmbeddedGraphicsSurface()
. זהו API ניסיוני, והוא כפוף לשינויים ולתיקונים. (I9ddb2) - ממשק ה-API
Modifier.magnifier()
הוא עכשיו יציב. השינוי הזה כולל את ההסרה שלMagnifierStyle
לטובת פרמטרים מוטבעים בתוך המונה עצמו. (I83bec, b/298381260, b/262367109, b/261438887)
שינויים ב-API
- הוספנו את
updateCurrentPage
ואתupdateTargetPage
ב-ScrollScope
. אלה הרכיבים האחרונים שנדרשים כדי לאפשר התאמה אישית של אנימציה של גלילה ב-PagerState.scroll
. (I9cad5, b/267744105, b/243786897) - הסרת הצפיפות מהמכשיר
SnapFlingBehavior
. בכל ההטמעות שלSnapLayoutInfoProvider
כבר יש דרך לגשת לצפיפות, ולכן אפשר להסיר את היקף המקלט, מה שיביא להטמעה פחות מורכבת שלSnapFlingBehavior
ושלSnapLayoutInfoProviders
. (I153c3) - עוד משנים סומנו כיציבים. (I56af1, b/298046462)
- הסרנו את
SnapStepSize
מהקבוצהSnapLayoutInfoProvider
. החישוב צריך להתבצע באמצעות פרטי הפריסה, ולספק את הגישה או את ההיסטים של ההצמדה. (If320c)
שינויים בהתנהגות
- התכונה 'יצירת אימייל' משתמשת עכשיו בסקאלת גופנים לא לינארית כדי לשפר את הקריאות והנגישות. אם קנה המידה של הגופן גדול מ-100% בהגדרות המערכת, גודל הטקסט הקטן יגדל כרגיל, אבל גודל הטקסט שכבר גדול יגדל רק קצת. בנוסף, גובה השורה שמוגדר ב-SP ישתנה באופן אוטומטי כדי לשמור על יחס פרופורציונלי לגובה המיועד של 100%. מידע נוסף זמין במאמר בנושא שיטות מומלצות לשינוי גודל הגופן. (I11518)
תיקוני באגים
- הסרת השימוש ב-
rememberSaveable
להצגת הסברים קצרים. (Icc131, b/299500338)
גרסה 1.6.0-alpha05
6 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
משוחרר. גרסה 1.6.0-alpha05 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספת עומסים יתרים ל-
BasicSecureTextField
שמקבלים ערך קבוע וקריאה חוזרת לשינוי הערך הזה, בדיוק כמו ה-API הנוכחי שלBasicTextField
. (Ia4882) - מוסיפים
Modifier.preferKeepClear()
כדי לסמן את הפונקציה כניתנת להרכבה, וכך למנוע חלונות צפים ב-API ברמה 33 ומעלה. (Ib51d5, b/297260115) - המהירויות של תנועת ההטלה ברכיבי תצוגה כמו
ScrollView
ו-RecyclerView
מוגבלות ל-ViewConfiguration.ScaledMaximumFlingVelocity
. הגרסה שלmaximumFlingVelocity
שמופיעה עכשיו בכלי הכתיבה חלה עלDraggable
. (Ibf974) - הוסרו עומסי יתר (overloads) של
Pager
ו-PagerState
שהוצאו משימוש. (Iea07e) - הוספנו את
BasicTooltipBox
ל-compose.foundation
ועדכנו אתPlainTooltipBox
ואתRichTooltipBox
כך שישתמשו ב-TooltipBox
עם רכיביPlainTooltip
ו-RichTooltip
חדשים שניתנים להרכבה. (I79e1d)
גרסה 1.6.0-alpha04
23 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
משוחרר. גרסה 1.6.0-alpha04 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו
ReusableComposition
ממשק לניהול מחזור החיים של קומפוזיציות משנה ולשימוש חוזר בהן. (I812d1, b/252846775) -
Modifier.focusGroup
קודם לממשקי API יציבים. (I7ffa3) - הוספת עומסים יתרים ל-
BasicTextField2
שמקבלים ערך קבוע וקריאה חוזרת לשינוי הערך הזה, בדיוק כמו ה-API הנוכחי שלBasicTextField
. (I3f2b8) - ממשק ה-API
GridItemSpan::currentLineSpan
הוא עכשיו יציב. (Icc29c) - Canvas שתומך ב-
contentDescription
הוא עכשיו API יציב. (Ib3d29) - הוספנו את
viewportSize
ב-ScrollState
. זהו מדד שמאפשר לדעת את הגודל של הרכיב שמשתמש ב-ScrollState
אחרי המדידה.viewPort
(I8b85a, b/283102682) - תוקנה בעיה שבה האחזור מראש ב-Pager לא תאם להתנהגות ב-Views. (I93352, b/289088847)
- הגרסה
Modifier.consumeWindowInsets(PaddingValues)
יציבה עכשיו.- ממשק ה-API
Deprecated Modifier.consumedWindowInsets
הוסר. במקום זאת, אתם צריכים להשתמש ב-Modifier.consumeWindowInsets
. (Id72bb)
- ממשק ה-API
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
משוחרר. גרסה 1.6.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- נוספה פונקציית עומס יתר של
LazyLayout
, היא מקבלת ביטוי למדא שלLazyLayoutItemProvider
, ולא אובייקט רגיל כמו שהיה קודם. העומס הקודם הוצא משימוש. (I42a5a) - נוספה תמיכה בהגדרת
privateImeOptions
(Idb772)
תיקוני באגים
- תוקנה בעיה שבה שדות טקסט הציגו מקלדת ואפשרו עריכה כשערך המאפיין
readOnly
היה true. בנוסף, תוקנה בעיה שגרמה לכך שהמקלדת לא הוצגה כשreadOnly
השתנה מ-true ל-false בזמן שהמיקוד היה עליה. (I34a19, b/246909589)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
משוחרר. גרסה 1.6.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו את
PagerLayoutInfo
עם מידע שנאסף אחרי שהמדד עבר ב-Pager
. הוספנו גם אתPageInfo
, המידע על דף יחיד שנמדד ב-Pager
. (Iad003, b/283098900) - הערות נוספות לציון קלט מותר לרכיבים הניתנים להרכבה (I51109)
- הוספנו את
SemanticsNodeInteraction.requestFocus
כדרך נוחה יותר לבקש התמקדות בבדיקות. (Ie8722) - עיצוב מחדש מלא של
PlatformTextInput*
API. (I6c93a, b/274661182, b/267235947, b/277380808) - התכונות
SoftwareKeyboardController
ו-LocalSoftwareKeyboardController
כבר לא ניסיוניות. בנוסף,LocalSoftwareKeyboardController
הוא עכשיוCompositionLocal
. (I4c364) - מעכשיו,
Modifier.transformable
מספק את הפרמטר pan delta ב-canPan
כדי לעזור לקבוע את כיוון הפנורמה ולאפשר או לאסור אותה. (I692aa, b/266829800) - העדכון של שינוי הגישה
consumeWindowInsets
מרחיב את מחלקת העלAbstractComposeView
(Iacd74, b/269479941)
גרסה 1.6.0-alpha01
21 ביוני 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha01
משוחרר. גרסה 1.6.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספנו
AnchoredDraggable
API חדש ב-Foundation. אפשר להשתמש בה כדי ליצור רכיבים שאפשר לגרור בין מצבים נפרדים, כמו גיליונות נפתחים בתחתית המסך. ה-API הזה מחליף אתSwipeable
API של Material. (I4a2ed)
שינויים ב-API
- תמיכה ב-
InputConnection#requestCursorUpdates
(I0c69b) - הוספנו את
scrollAnimationSpec
כדי לאפשר הגדרות אנימציה בהתאמה אישית. ההגדרהBringIntoViewCalculator
עודכנה ועכשיו היאBringIntoViewScroller
. (Idb741) - הוספת
ResourceResolutionException
type כדי לעטוף את ה-throwables שמופעלים כשמנסים לטעון נכסי bitmap עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788) - נוספו מאפיינים ופעולות סמנטיים לתמיכה בתרגום טקסט. (I4a6bc)
- השקנו API
BringIntoViewCalculator
שאפשר להשתמש בו כדי להתאים אישית את אופן התגובה של רכיבים כמו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
, layout modifier ועוד, הועברו אלModifier.Node
API, וכך צומצם העומס על הקומפוזיציה הראשונית. - שיפורים ביציבות של מכשירי פייג'ר. טופלו הרבה באגים.
- הפרמטרים של
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
composable. (I82551, b/262140644)
גרסה 1.5.0-alpha03
19 באפריל 2023
הגרסאות androidx.compose.foundation:foundation:1.5.0-alpha03
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha03
יוצאות לאור. גרסה 1.5.0-alpha03 מכילה את הקומיטים האלה.
בגרסה הזו מופעלת חבילת התוכנה החדשה לעיבוד טקסט ב'יצירה'. הסט החדש עבר אופטימיזציה לביצועים, ולא אמורים להיות שינויים גלויים.
אם אתם רואים שינויים בטקסט שעבר רינדור, אתם יכולים לנפות באגים על ידי הגדרת NewTextRendering1_5 = false
כדי לאשר את ההבדל בהתנהגות. הגדרה כזו תגרום להרכבה מחדש. אם יש הבדלים בהתנהגות, צריך לשלוח דוח על באג.
דגל הניפוי באגים יוסר לפני ההפצה של גרסת 1.5 beta01.(Iada23, b/246960758)
שינויים ב-API
- הופכים את
FlowColumn/FlowRow
למוטבע. (Idab37)
גרסה 1.5.0-alpha02
5 באפריל 2023
הגרסאות androidx.compose.foundation:foundation:1.5.0-alpha02
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha02
יוצאות לאור. גרסה 1.5.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו תמיכה בתאים בגודל קבוע ב-
LazyGrid
ובסידור שלהם באמצעות cross axis arrangement. (I83ed9, b/235121277, b/267942510) - הוספנו תמיכה בנתיבים בגודל קבוע ב-
LazyStaggeredGrid
ובסידור שלהם באמצעות cross axis arrangement. (I7d519) - עכשיו אפשר לפתוח
UrlAnnotation
ב-AnnotatedString
באמצעות שירותי נגישות כמוTalkBack
. (If4d82, b/253292081) - נוספה פעולת הסמנטיקה
InsertTextAtCursor
לשדות טקסט. (I11ed5) - פעולות בדיקה שקשורות לטקסט (למשל,
performTextInput
) יבקשו עכשיו להתמקד ישירות, באמצעות פעולת הסמנטיקה, במקום ללחוץ על השדה. (I6ed05) - הוספת תמיכה בסידור/ריווח בין צירים באמצעות
verticalArrangement
ב-FlowRow
ו-horizontalArrangement
ב-FlowColumn
. אנחנו גם מסירים את התגיםverticalAlignment
ו-horizontalAlignment
ברמה העליונה ב-FlowRow/FlowColumn
. מפתחים יכולים להשתמש ב-Modifier.align
במקום זאת. כך מצמצמים את הסיכוי לבלבול בין מוסכמות השמות שלverticalAlignment
ושלverticalArrangement
. (I87b60, b/268365538)
גרסה 1.5.0-alpha01
22 במרץ 2023
הגרסאות androidx.compose.foundation:foundation:1.5.0-alpha01
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha01
יוצאות לאור. גרסה 1.5.0-alpha01 מכילה את הקומיטים האלה.
שינויים ב-API
- הטקסט ו-
BasicText
עוברים רפקטורינג כדי להשתמש במערכת החדשה של שינוי מאפיינים. במקרים רבים, הפעולה הזו מובילה לשיפורים משמעותיים בביצועים. לא אמורים להיות שינויים גלויים. (If1d17, b/246961435) - נוספה פעולת הסמנטיקה
PerformImeAction
להפעלת פעולת ה-IME בצמתים של עורך טקסט. (Ic606f, b/269633506)
תיקוני באגים
- בוצע עדכון פנימי של
Modifier.hoverable
. המשנהhoverable
יוצג בכלי לבדיקת רכיבים רק אם הוא מופעל. (I82103)
גרסה 1.4
גרסה 1.4.3
3 במאי 2023
הגרסאות androidx.compose.foundation:foundation:1.4.3
ו-androidx.compose.foundation:foundation-layout:1.4.3
יוצאות ללא שינויים (רק עם עדכון גרסה).
גרסה 1.4.2
19 באפריל 2023
הגרסאות androidx.compose.foundation:foundation:1.4.2
ו-androidx.compose.foundation:foundation-layout:1.4.2
יוצאות לאור. גרסה 1.4.2 מכילה את הקומיטים האלה.
גרסה 1.4.1
5 באפריל 2023
הגרסאות androidx.compose.foundation:foundation:1.4.1
ו-androidx.compose.foundation:foundation-layout:1.4.1
יוצאות לאור. גרסה 1.4.1 מכילה את הקומיטים האלה.
גרסה 1.4.0
22 במרץ 2023
הגרסאות androidx.compose.foundation:foundation:1.4.0
ו-androidx.compose.foundation:foundation-layout:1.4.0
יוצאות לאור. גרסה 1.4.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.3.0
- נוסף שילוב של תאימות לאמוג'י ב-
Text
וב-TextField
, וגם בפסקה ברמה נמוכה יותר. ההגדרה הזו מופעלת כברירת מחדל כשמגדירים את emojicompat. - אפשר להגדיר את
EmojiCompat
בטקסט ספציפי באמצעותPlatformParagraphStyle
. - נוספה תמיכה בטווח מלא של שורות ל-
LazyStaggeredGrid
(I28252) - הוספה של
onHover
ניסיוני אלClickableText
(I6938f) - הוספנו עומסים חדשים לניסויים לפונקציה
runComposeUiTest
ולפונקציותcreate*ComposeRule
שמקבלות פרמטרים מסוגCoroutineContext
. ההקשר ישמש להרכבת הבדיקה ולכל קריאותLaunchedEffect
ו-rememberCoroutineScope()
בהרכבה. (I10614, b/265177763) -
FlowRow
ו-FlowColumn
זמינים עכשיו כ-@ExperimentalFoundationApi
שמאפשרים פריסה גמישה יותר של רכיבים שמבוססת על שורות ועמודות, ושעוברים לשורה חדשה אם אין מספיק מקום בציר הראשי. (I3a7b2) - האפליקציה
Modifier.basicMarquee()
זמינה כניסיונית להצגת תוכן עם אפקט של כותרת נעה. (I2df44, b/139321650)
גרסה 1.4.0-rc01
8 במרץ 2023
הגרסאות androidx.compose.foundation:foundation:1.4.0-rc01
ו-androidx.compose.foundation:foundation-layout:1.4.0-rc01
יוצאות לאור. גרסה 1.4.0-rc01 כוללת את הקומיטים האלה.
שינויים ב-API
- השקנו ממשק API חדש ברמה נמוכה,
PlatformTextInputAdapter
, ליצירת הטמעות מותאמות אישית של הזנת טקסט שמתקשרות ישירות עם ממשקי API של הפלטפורמה. (I58df4) - הוספת תמיכה בפריסה הפוכה ל-
LazyStaggeredGrid
. (I3ef4a)
תיקוני באגים
- הפעולה הסמנטית של
BasicTextField
'sSetText
תעדכן עכשיו את מאגר הטקסט באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (לדוגמה,performTextReplacement
). - פונקציות הבדיקה של טקסט
performTextClearance
,performTextReplacement
ו-performTextSelection
משתמשות עכשיו ב-SemanticsActions
. (I0807d, b/269633168, b/269624358)
גרסה 1.4.0-beta02
22 בפברואר 2023
הגרסאות androidx.compose.foundation:foundation:1.4.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.4.0-beta02
יוצאות לאור. גרסה 1.4.0-beta02 מכילה את הקומיטים האלה.
שינויים ב-API
- נוסף קריאה חוזרת (callback) חדשה
Modifier.Node.onReset()
שמאפשרת לאפס חלק מהמצב המקומי כדי לטפל כמו שצריך במקרה שבו נעשה שימוש חוזר ב-Layout
(למשל, כפריט שלLazyColumn
). תוקןFocusTargetModifierNode
כדי לאפס כמו שצריך את המצב של המיקוד. (I65495, b/265201972) - נוסף הפרמטר
BlendMode
לשיטותDrawScope.drawText
,Paragraph.paint
ו-MultiParagraph.paint
כדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508) - הסרנו את
modifierElementOf()
API. במקום זאת, צריך להשתמש בהרחבה ישירה מ-ModifierNodeElement
. (Ie6d21)
תיקוני באגים
- אי אפשר יותר לבחור חלק מתו באמצעות שינוי של נקודות האחיזה של הבחירה. (Idedd1)
- תיקון קריסה כשמקישים על Ctrl+Backspace ב-
TextField
ריק (I0427f, b/244185537)
גרסה 1.4.0-beta01
8 בפברואר 2023
הגרסאות androidx.compose.foundation:foundation:1.4.0-beta01
ו-androidx.compose.foundation:foundation-layout:1.4.0-beta01
יוצאות לאור. גרסה 1.4.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- החל מגרסה 1.3, נוספה שילוב תאימות של אמוג'י ל-
Text
ול-TextField
, וגם לפסקה ברמה הנמוכה יותר. ההגדרה הזו מופעלת כברירת מחדל כשמגדירים את emojicompat. - אפשר להגדיר את
EmojiCompat
בטקסט ספציפי באמצעותPlatformParagraphStyle
.
שינויים ב-API
- נוספה הטמעה נפוצה של
PinnableContainer
API שמשמש בכל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) - הוספנו את
PinnableContainer
API שמופץ על ידי רשימות עצלניות באמצעות קומפוזיציה מקומית, שמאפשרת להצמיד את הפריט הנוכחי. המשמעות היא שהפריט לא יוסר כשהמשתמש יגלול אותו מחוץ לתצוגה. לדוגמה,Modifier.focusable()
יוביל להצמדת הפריט הנוכחי שבמוקד באמצעות המנגנון הזה. (Ib8881, b/259274257, b/195049010) - שכתבנו את האופן שבו רכיבים עם אפשרות גלילה מגיבים ל-
bringIntoViewRequesters
ורכיבים שאפשר להתמקד בהם, כדי ליצור מודל טוב יותר של מורכבות הפעולות האלה ולטפל ביותר מקרים חריגים. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - הוספת אפשרות להחזרת ערך null לסוגים נוספים של פונקציות שהוצאו משימוש ומוסתרות (Ibf7b0)
- נוסף הניסוי
TextMotion
ל-TextStyle
כדי להגדיר אם הטקסט יהיהStatic(default)
או מונפש. משתמשים ב-TextMotion.Animated
אם הטקסט אמור לעבור שינוי גודל, תרגום או סיבוב באמצעות אנימציה. (I24dd7) - הוספה של
TextFieldFocusModifier
כדי לתקן את התנהגות הניווט במיקוד בפלטפורמת Android (I00303) - הארגומנט
maxSize: IntSize
בפונקציהdrawText
הוחלף ב-size: Size
כדי להתאים לפונקציות אחרות שלDrawScope
. כברירת המחדל,size
מוגדר כ-Size.Unspecified
, ולא אמור לשנות את התנהגות ברירת המחדל הקודמת. (Icd27d)
תיקוני באגים
- שינויים בפיזיקה של ההצמדה ב-
SnapFlingBehaviour
כדי ליצור תחושה טבעית יותר.
בעיה ידועה
- כשמעדכנים מ-
androidx.compose.foundation:1.4.0-alpha03
ל-androidx.compose.foundation:1.4.0-alpha04
, יכול להיות שתיתקלו בשגיאהjava.lang.NoSuchFieldError
. כאן דווחה הבעיה במקור. תיקון נשלח ויהיה זמין בעדכון הבא של Compose. כפתרון עקיף, אפשר לעדכן את הספריותandroidx.compose.material
ו-androidx.compose.material3
לגרסה האחרונה(1.1.0-alpha04) או לשנמך אתandroidx.compose.foundation
לגרסה 1.4.0-alpha03.
גרסה 1.4.0-alpha03
7 בדצמבר 2022
הגרסאות androidx.compose.foundation:foundation:1.4.0-alpha03
ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha03
יוצאות לאור. גרסה 1.4.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- בבדיקות של ממשק משתמש באמצעות כלל Compose, המשכי הפעולה שמתחדשים במהלך קריאות חוזרות (callbacks) של
withFrameNanos
לא יישלחו עד שכל הקריאות החוזרות של המסגרת יסיימו את הפעולה. ההתנהגות הזו זהה להתנהגות של כתיבת הודעה כשהיא פועלת כרגיל. עם זאת, יכול להיות שבדיקות שמסתמכות על ההתנהגות הישנה ייכשלו. השינוי הזה אמור להשפיע רק על קוד שמבצע קריאה ישירה לפונקציותwithFrameNanos
אוwithFrameMillis
, וכולל לוגיקה מחוץ לפונקציות הקריאה החוזרת שמועברת לפונקציות האלה, שאולי צריך להעביר אותה אל תוך הקריאות החוזרות. בדוגמה הזו אפשר לראות את השינויים בבדיקת האנימציה. - נוסף פרמטר אופציונלי
onPerformTraversals: (Long) -> Unit
ל-constructor ולפונקציית factory שלTestMonotonicFrameClock
כדי להריץ קוד אחרי הקריאות החוזרות (callbacks) שלwithFrameNanos
אבל לפני חידוש שגרות המשנה (coroutines) של המתקשרים. (Idb413, b/254115946, b/222093277, b/255802670) - הוספנו פעולות נגישות בדף:
PageUp
,PageDown
,PageLeft
,PageRight
. הערה: האפשרויות האלה זמינות רק מ-API 29. (Ida4ab) - הוספנו את
HorizontalPager
ו-VerticalPager
, דרך להצגת קומפוזיציות באופן שדומה ל-Pager. הוספנו אתPagerState
כדי לשלוט ב-Pagers ולקבל מידע על המצב הנוכחי של ה-Pager. הוספנו אתPageSize
, דרך לשלוט בגודל הדף של רכיב Pager. אפשר להשתמש בזה כדי ליצור קרוסלה כמו Pagers. הוספנו אתPagerSnapDistance
, דרך לשלוט באופן הפעולה של ההצמדה בהתנהגות ההזזה של Pager. (I01120) - הוספנו עומס יתר ב-
SnapFlingBehavior.performFling
כדי לעזור להבין איפה ההטלה תנחת. (I569f6) - בוצעה הסרה של
OverscrollEffect#isEnabled
. במקום לזכור ולהגדיר את הדגל הזה, פשוט אל תשלחו אירועים לאפקט הגלילה העודפת במקרים שבהם אתם לא רוצים שהגלילה העודפת תוצג (לדוגמה, אםScrollableState#canScrollForward/backward
מחזיר false). (I1a4b0, b/255554340, b/255557085) - נוספו
ScrollableState#canScrollForward
ו-ScrollableState#canScrollBackward
כדי לבדוק אם יש מקום לגלול ב-ScrollableState
לכל אחד מהכיוונים (אם הוא נמצא במינימום או במקסימום של הטווח שלו). ברירת המחדל היא true, כדי לשמור על תאימות לאחור עם הטמעות קיימות שלScrollableState
. הצרכנים יכולים להשתמש בזה כדי להראות למשתמש שיש עוד מקום לגלול, ואפשר גם להשתמש בזה כדי להימנע משליחת דלתא ל-ScrollableStates
שאין בהם מקום לגלול בכיוון מסוים, כדי לצמצם עבודה מיותרת. (Idf1a0, b/255557085) - נוסף Modifier API כדי לשלוח שאילתות לגבי פרטי גלילה של רכיבי צאצא. (I2ba9d, b/203141462)
- משמש ב-
Clickable
כדי להשהות נכון אינטראקציות של לחיצה, כשמחוות יכולות להפוך לאירועי גלילה. - תוקנה הבעיה שבה לא היה עיכוב נכון באפקט האדוות כשנעשה שימוש ב-
Clickables
בתוךScrollable ViewGroup
. - עדכנו את מגירות האפליקציות ואת Sheets כדי לעכב לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
- עדכון השם של
snapStepSize
כך שיהיה עקבי עם שיטות אחרות ב-SnapLayoutInfoProvider
. (Ife67c) - הוספת
EmojiCompat
אלCompose
(Ibf6f9, b/139326806) - השמות של
consumedWindowInsets()
ו-withConsumedWindowInsets()
שונו ל-consumeWindowInsets()
ו-onConsumedWindowInsetsChanged()
, והמשנים הפכו לציבוריים. (Ie44e1)
תיקוני באגים
- הקריסה עם
Modifier.animateItemPlacement()
ו-Lazy grids תוקנה. הבעיה התרחשה בתנאים מסוימים, כשהמספר של הפריטים החדשים היה קטן מהמספר של הפריטים הקודמים. (I0bcac, b/253195989)
גרסה 1.4.0-alpha02
9 בנובמבר 2022
הגרסאות androidx.compose.foundation:foundation:1.4.0-alpha02
ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha02
יוצאות לאור. גרסה 1.4.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הפונקציות
awaitFirstDown
ו-waitForUpOrCancellation
מקבלות עכשיוPointerEventPass
כדי לאפשר גמישות רבה יותר. (I7579a, b/212091796) - החזרת 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.imeAnimationSourc
e ו-WindowInsets.imeAnimationTarget
כדי לקבוע את התקדמות האנימציה ולדעת איפה ה-IME יהיה אחרי שהאנימציה תסתיים. (I356f1, b/217770337)
גרסה 1.3
גרסה 1.3.1
9 בנובמבר 2022
הגרסאות androidx.compose.foundation:foundation:1.3.1
ו-androidx.compose.foundation:foundation-layout:1.3.1
יוצאות לאור. גרסה 1.3.1 מכילה את הקומיטים האלה.
תיקוני באגים
- פתרון בעיית ביצועים ב-
BeyondBoundsLayout
(aosp/2255266) -
ContentInViewModifier
לא יקרא קואורדינטות של פריסה אלא אם הוא מצורף (aosp/2241316)
גרסה 1.3.0
24 באוקטובר 2022
הגרסאות androidx.compose.foundation:foundation:1.3.0
ו-androidx.compose.foundation:foundation-layout:1.3.0
יוצאות לאור. גרסה 1.3.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.2.0
- השקנו גרסאות ניסיוניות של
LazyVerticalStaggeredGrid
ושלLazyHorizontalStaggeredGrid
. - ממשקי ה-API התואמים
SnapFlingBehavior
, rememberSnapFlingBehavior
ואחרים נוספו כניסיוניים. Modifier.clickable
,Modifier.toggleable
ו-Modifier.selectable
מציגים עכשיו אפקט אדווה כשלוחצים עליהם באמצעות המקלדת או לחצני החיצים בשלט רחוק.
גרסה 1.3.0-rc01
5 באוקטובר 2022
הגרסאות androidx.compose.foundation:foundation:1.3.0-rc01
ו-androidx.compose.foundation:foundation-layout:1.3.0-rc01
יוצאות לאור. גרסה 1.3.0-rc01 כוללת את הקומיטים האלה.
שינויים ב-API
- הוספנו את
lowVelocityAnimationSpec
שמשמש בשלב הגישה כשאין מספיק מהירות תנועה כדי להפחית את התנועה. (Iaeb27) - נוספו מקפים חדשים ל-API הניסיוני כדי לתמוך בהוספת מקפים אוטומטית בטקסט (Iaa869)
גרסה 1.3.0-beta03
21 בספטמבר 2022
הגרסאות androidx.compose.foundation:foundation:1.3.0-beta03
ו-androidx.compose.foundation:foundation-layout:1.3.0-beta03
יוצאות לאור. גרסה 1.3.0-beta03 מכילה את הקומיטים האלה.
שינויים ב-API
- אפשר להוסיף אפשרויות להתאמה אישית של מעברי שורה בטקסט. (I86907)
- עכשיו אפשר לקבל את הגבולות העדכניים ביותר של בקשה בזמן העיבוד שלה.
BringIntoViewResponder
(If86a5, b/241591211) - הוספת תמיכה במרווחים בין פריטים לניסוי
Staggered Grid
(I10b82) - הוספת תוכן לניסוי
Staggered Grid
(I342ea) - הארגומנט
size:IntSize
הוחלף בארגומנטconstraints: Constraints
בשיטהTextMeasurer.measure
כדי לתמוך באילוצי רוחב מינימליים. (I37530, b/242707525) - נוספה
Modifier.withConsumedWindowInsets()
לצריכהWindowInsets
לשימוש מחוץ ל-windowInsetsPadding
. - הוספנו את
MutableWindowInsets
כדי לאפשר שינוי קל שלWindowInsets
בלי להרכיב מחדש. (I7fd28, b/237019262, b/243119659)
גרסה 1.3.0-beta02
7 בספטמבר 2022
הגרסאות androidx.compose.foundation:foundation:1.3.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.3.0-beta02
יוצאות לאור. גרסה 1.3.0-beta02 מכילה את הקומיטים האלה.
שינויים ב-API
- גרסה ראשונית של ניסוי
StaggeredGrid
(Ia48be) - שינוי השם של
FocusDirection.In
ושלFocusDirection.Out
ל-FocusDirection.Enter
ול-FocusDirection.Exit
(Ia4262, b/183746982) - הוספנו עומס יתר של
rememberSnapFlingBehavior
שמאפשר להפעיל במהירות את ההצמדה ב-LazyLists
. (Ifb48a) - הוחלף המפעל
snapFlingBehavior
במחלקה קונקרטיתSnapFlingBehavior
. הוספנו שיטות עם היקף מוגבל ל-Density כדי להקל על משתמשי ה-API לבצע המרות של Dp<->Px.SnapLayoutInfoProvider
(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
כדי לאפשר הצמדה ב-Lazy Lists. (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)
תיקוני באגים
- יכול להיות שעכשיו
BasicTextField
cursorBrush
יונפש בלי להפעיל מחדש את הטיימר של הסמן. (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 שבו אנחנו משתמשים באופן פנימי כדי להפעיל רשימות ורשתות עצלות. - ממשק ה-API
OverscrollEffect
הוצג כניסיוני. אפשר להגדיר אפקטים מותאמים אישית של גלילה מעבר לקצה, וגם להוסיף אפקט פלטפורמה רגיל למאגרי גלילה מותאמים אישית. - הוספנו ממשקי 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) - הוסר מהחבילה
androidx.compose.foundation.lazy
הפריטLazyVerticalGrid
שהוצא משימוש. ה-API היציב החדש נמצא בכתובתandroidx.compose.foundation.lazy.grid
(I73c76, b/225192009)
גרסה 1.2.0-beta03
1 ביוני 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-beta03
ו-androidx.compose.foundation:foundation-layout:1.2.0-beta03
יוצאות לאור. גרסה 1.2.0-beta03 מכילה את הקומיטים האלה.
שינויים ב-API
- נוספו תכונות ניסיוניות חדשות:
IntervalList
ו-MutableIntervalList
. הפונקציה מאפשרת לייצג רשימה של ערכים באמצעות כמה מרווחים. המאפיין הזה שימושי כשרוצים להגדיר שפת תצורה משלכם שדומה לזו שמשמשת אתLazyColumn
, שבה אפשר להגדיר פריטים ברשימה באמצעות כמה קריאות item/items. (I2d05e, b/228580728)
תיקוני באגים
- הוספנו הבהרה למסמכי התיעוד של
WindowInsets.ime
, שלפיה נתוניime
insets מדווחים החל מ-API 23, אבל רק animated מדווח החל מ-API 30. (Ia7fc0, b/230756508) - לחיצה על מקש המחיקה קדימה כשהסמן נמצא בסוף שדה טקסט לא תגרום יותר לקריסה.
- הארגומנטים של בנאי המחלקה
DeleteSurroundingTextCommand
ו-DeleteSurroundingTextInCodePointsCommand
חייבים להיות לא שליליים. (Ica8e6, b/199919707)
גרסה 1.2.0-beta02
18 במאי 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.2.0-beta02
יוצאות לאור. גרסה 1.2.0-beta02 מכילה את הקומיטים האלה.
- רזולוציית גופן להורדה שלא משנה את גודל הפריסה של טקסט או
TextField
בעבר לא הייתה מציירת מחדש, מה שהוביל לתצוגה לא עדכנית של הגופן. תיקון הבאג הזה מבטיח שפריסת הטקסט תמיד תפעיל ציור מחדש (b/229727404). (I1d49e, b/229727404)
גרסה 1.2.0-beta01
11 במאי 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-beta01
ו-androidx.compose.foundation:foundation-layout:1.2.0-beta01
יוצאות לאור. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- זו גרסת הבטא הראשונה של 1.2!
שינויים ב-API
- נוספה תכונה ניסיונית
BeyondBoundsInterval
שאפשר להשתמש בה בהטמעות מותאמות אישית שלLazyList
כשפריטים מוצגים מחוץ לגבולות הנראים (Ifabfb, b/184670295) - השם של
LineHeightBehavior
השתנה ל-LineHeightStyle
- השם של
LineVerticalAlignment
השתנה ל-LineHeightStyle.Alignment
- השם של
LineHeightTrim
שונה לLineHeightStyle.Trim
- הערכים של בנאי ברירת המחדל מ-
LineHeightStyle
הוסרו (I582bf, b/181155707) - נוספו ערכי ברירת מחדל לחברים האופציונליים בממשק
LazyLayoutItemProvider
. (Iba8a0) - ב-
LazyLayoutItemProvider
API, במקום פונקציית factory שמחזירה את ה-lambda שניתן להרכבה לפי אינדקס, יש עכשיו פונקציית Item פשוטה יותר שניתן להרכבה ומקבלת את האינדקס. (Id2196) - השם של LazyLayoutItemsProvider שונה ל-LazyLayoutItemProvider (I0638c)
- השם של
LazyLayoutItemsProvider.itemsCount
שונה ל-itemCount
(מזהה 409c) - הוספנו את האפשרות 'מברשת' ל-
TextStyle
ול-SpanStyle
כדי לאפשר לכם לצייר טקסט עם צביעת מעבר צבעים. (I53869, b/187839528) - המאפיינים
trimFirstLineTop
ו-trimLastLineBottom
שלLineHeightBehavior
השתנו לסוג enum יחיד:LineHeightTrim
.LineHeightTrim
יש 4 מצבים שמוגדרים על ידי שני ערכים בוליאניים:FirstLineTop
, LastLineBottom
, Both ו-None (Ifc6a5, b/181155707) נוסף
LineHeightBehavior
לTextStyle
וParagraphStyle. LineHeightBehavior
. המדיניות קובעת אם גובה השורה יחול על החלק העליון של השורה הראשונה ועל החלק התחתון של השורה האחרונה. התג גם מגדיר את יישור השורה במרחב שסופק על ידיTextStyle
(lineHeight
).לדוגמה, אפשר לקבל התנהגות דומה למה שמוגדר ב-CSS באמצעות
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
.ההגדרות של
trimFirstLineTop
ו-trimLastLineBottom
פועלות בצורה תקינה רק אם הערך שלincludeFontPadding
הוא false. (I97332, b/181155707)נוסף משנה ניסיוני
imeNestedScroll()
כדי שמפתחים יוכלו לשלוט ב-IME באמצעות גלילה. (I60759)
תיקוני באגים
- תוקנה רגרסיה שבה שדות טקסט לא הסתירו את המקלדת כשהוסרו מהחיבור בזמן שהם היו ממוקדים. (I7a410, b/230536793, b/225541817)
- תמיכה בשלוש נקודות כשגובה מוגבל ואין מקום לכל שורות הטקסט (Ie528c, b/168720622)
- החל מעכשיו,
BringIntoViewRequester.bringIntoView
תמיד תושעה עד שהבקשה תושלם או עד שהיא תופרע על ידי בקשה חדשה יותר שלא חופפת לה. בקשות חופפות יוכנסו לתור. (I43e7f, b/216790855) - מעכשיו, אם יש חפיפה מלאה בין מלבנים, רק הבקשה של המלבן הגדול יותר תכובד.
BringIntoViewRequester.bringIntoView
(I34be7, b/216790855, b/184760918) - הופעלה ברירת המחדל
includeFontPadding
. אפשר להשבית אתincludeFontPadding
באמצעות המאפייןTextStyle.platformTextStyle
. בעתיד הקרוב נשנה את התנהגות ברירת המחדל, אבל עד אז השינוי הזה מאפשר לנו לשלב טוב יותר שיפורים בגובה השורה (aosp/2058653) ולפתור בעיות שלTextField
חיתוך. (I01423, b/171394808) Modifier.bringIntoViewRequester
כבר לא משתמש ב-onGloballyPositioned
. (I630f5)
External Contribution
-
MouseInjectionScope.scroll(delta = someDelta)
עכשיו הפוך ב-Android אם גוללים אנכית (אם someDelta חיובי, הגלילה תהיה כלפי מטה) (Ifb697, b/224992993)
גרסה 1.2.0-alpha08
20 באפריל 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha08
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha08
יוצאות לאור. גרסה 1.2.0-alpha08 מכילה את הקומיטים האלה.
שינויים ב-API
- הצגת כל המשקלים הזמינים לגופני מערכת ב-Android כשמשתמשים ב-
FontFamily.SansSerif
. במקרים כאלה, המערכת תשתמש באופן פנימי בשמות של גופנים חלופיים כמו sans-serif-medium ב-API 21-28. זהו שינוי בהתנהגות, כי קודם לכן הייתה תמיכה רק במשקלים 400 ו-700 ב-API 21-28. (I380fe, b/156048036, b/226441992) - הפרמטר Constraints מתקבל עכשיו ב-Paragraph וב-MultiParagraph. העברת הערך
Constraints.maxHeight
לא משפיעה על הפעולה בשלב הזה, אבל בעתיד היא תאפשר לבצע חישובים מסוימים, כמו השמטת חלק מהטקסט בהתאם לגובה. (I6afee, b/168720622) -
SubcomposeSlotReusePolicy.getSlotsToRetain()
מקבל עכשיו מחלקה מותאמת אישית שדומה ל-MutableSet, שלא מאפשרת להוסיף אליה פריטים חדשים. (Icd314) - השימוש החלקי (הורדה או מיקום) הוצא משימוש ב-
PointerInputChange
. אפשר להשתמש ב-consume()
כדי להחיל את השינוי באופן מלא. אפשר להשתמש ב-isConsumed
כדי לקבוע אם מישהו אחר כבר השתמש בשינוי. - הפונקציה
PointerInputChange::copy()
יוצרת עכשיו תמיד עותק שטחי. המשמעות היא שעותקים שלPointerInputChange
ינוצלו ברגע שאחד מהעותקים ינוצל. אם רוצים ליצורPointerInputChange
לא מאוגד, צריך להשתמש בבונה במקום זאת. (Ie6be4, b/225669674) - אנחנו משיקים
LazyLayout
API חדש בשלב הניסוי. כך תוכלו ליצור רכיבים משלכם כמו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
- נוסף
PinnableParent
API שמאפשר לרכיבים צאצא של פריסות עצלות למנוע את הסרת הפריטים שנוצרו כרגע (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
מאפשר למפתחים להשבית את השימוש ב-Android WindowInsets. כך כלComposeViews
בהיררכיה יכול להחילWindowInsets
בלי להפריע לComposeViews
אחרים. (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)
תיקוני באגים
- אם משנים את הגודל של אזור הגלילה ורכיב ה-Composable שהמיקוד עליו היה גלוי קודם,עכשיו אפשר להשתמש במקשי הצירוף לגלילה (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
ו-Modifier.scrollable()
) כדי לגלול ולשמור על רכיב ה-Composable שהמיקוד עליו גלוי. - שדות טקסט יישארו מעל המקלדת כשהם במצב ממוקד והמקלדת מוצגת, כשהם נמצאים בתוך רכיב שניתן לגלילה ולא נטען באופן עצלני, ומצב הקלט הרך הוא
ADJUST_RESIZE
. (I4a485, b/190539358, b/192043120, b/216842427)
גרסה 1.2.0-alpha05
9 במרץ 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha05
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha05
יוצאות לאור. גרסה 1.2.0-alpha05 מכילה את הקומיטים האלה.
שינויים ב-API
- התכונות
LazyVerticalGrid
וLazyHorizontalGrid
יציבות עכשיו. (I307c0) -
LazyGridItemInfo.Unknown
הוחלף בשדות נפרדיםLazyGridItemInfo.UnknownRow
ו-LazyGridItemInfo.UnknownColumn
(I56d51) -
LazyVerticalGrid
/LazyHorizontalGrid
וכל ממשקי ה-API שקשורים אליהם הועברו לחבילת המשנה.grid
. צריך לעדכן את הייבוא מ-androidx.compose.foundation.lazy
ל-androidx.compose.foundation.lazy.grid
. (I2d446, b/219942574) - האפשרות 'טקסט:
includeFontPadding
' מושבתת עכשיו כברירת מחדל. בעיות החיתוך כתוצאה משימוש ב-includeFontPadding=false
מטופלות, ולא אמור להתרחש חיתוך של סקריפטים ארוכים. (I31c84, b/171394808) - ממשק Measured חושף עכשיו את המאפיין parentData (I3313f)
- השקנו תכונה ניסיונית
Modifier.onFocusedBoundsChanged
שמאפשרת לראות את הגבולות של רכיבים שניתן להתמקד בהם. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - נוסף LazyHorizontalGrid. (I61ae7, b/191238807)
- הוספנו
LazyVerticalGrid
API חדש להגדרת גדלים של צירים חוצים (I17723) - נוסף משנה FocusGroup (I64bc0, b/213508274, b/184670295)
תיקוני באגים
WindowInsets.toString()
יוצגו עכשיו הערכים הנכונים. (I1585d)
External Contribution
- העדכון כולל שימוש ב-Kotlinx coroutines 1.6.0 (I3366d)
גרסה 1.2.0-alpha04
23 בפברואר 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha04
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha04
יוצאות לאור. גרסה 1.2.0-alpha04 מכילה את הקומיטים האלה.
שינויים ב-API
- אין יותר צורך להעביר בקשות באופן ידני מ-
BringIntoViewResponders
אל רכיבי ההורה שמטפלים בבקשות, ובמקום זאת צריך להחזיר מיד את המלבן שרוצים שרכיב ההורה יציג. (I8e66a) - תמיכה בטעינה אסינכרונית של גופנים בטקסט (I77057, b/214587005)
- מעכשיו יש תמיכה ב-
LazyVerticalGrid
ב-line breaking
לפני פריטים עם טווח שלא מתאים לשורה הנוכחית. (I05c40, b/207462103) - השם של
excludeFromSystemGestures
שונה ל-systemGesturesExclusion
(I19526) -
LazyVerticalGrid
תומך עכשיו ב-reverseLayout. (I6d7d7, b/215572963, b/211753558) - מוסיפים את השיטה
WindowInsets.only()
כדי לאפשר למפתחים לכלול רק מאפיינים מ-WindowInsets. (I14c94, b/217768486) נוספו הפונקציות
ComposableTarget
,ComposableTargetMarker
ו-ComposableOpenTarget
שמאפשרות דיווח בזמן קומפילציה על מצבים שבהם מתבצעת קריאה לפונקציה הניתנת להרכבה שמטרגטת כלי להחלת שינויים שלא נועד להשתמש בה.ברוב המקרים, אפשר להסיק את ההערות האלה באמצעות התוסף של מהדר Compose, ולכן השימוש בהערות האלה ישירות צריך להיות נדיר . המקרים שלא ניתן להסיק לגביהם כוללים יצירה ושימוש בפונקציית החלה בהתאמה אישית, פונקציות קומפוזביליות מופשטות (כמו שיטות ממשק), שדות או משתנים גלובליים שהם ביטויי למבדה קומפוזביליים (משתנים מקומיים ופרמטרים נגזרים), או כשמשתמשים ב-
ComposeNode
או בפונקציות קומפוזביליות קשורות.במקרה של פונקציות מותאמות אישית, הפונקציות המורכבות שקוראות ל-
ComposeNode
או ל-ReusableComposeNode
צריכות להוסיף הערהCompoableTarget
לפונקציה ולכל סוגי הפרמטרים של lambda שניתנים להרכבה. עם זאת, מומלץ ליצור הערה שמוערת באמצעותComposableTargetMarker
ואז להשתמש בהערה המסומנת במקוםComposableTarget
ישירות. הערה שאפשר להוסיף לה הערות אחרות, שמסומנת ב-ComposableTargetMarker
, שווה ל-ComposbleTarget
עם השם המלא של מחלקת המאפיינים כפרמטר של ה-applier. דוגמה לשימוש ב-ComposableTargetMarker
מופיעה ב-anroidx.compose.ui.UiComposable
. (I38f11)
תיקוני באגים
- עכשיו אפשר להעביר היסטים שליליים של גלילה אל
LazyGridState.scrollToItem()
ואלLazyGridState.animateScrollToItem()
. (I025c6, b/211753558) - תמיכה בטעינת גופנים אסינכרונית עבור TextField. (Icc4bf, b/214587005)
גרסה 1.2.0-alpha03
9 בפברואר 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha03
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha03
יוצאות לאור. גרסה 1.2.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- השיטות
notifyFocusedRect
ב-TextInputSession
וב-TextInputService
הוצאו משימוש ולא יופעלו. במקום זאת, אתם צריכים להשתמש ב-BringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874) - הפעלנו אנימציות לפריטים של רשתות עצלות באמצעות Modifier.animateItemPlacement(). (Ib6621, b/211753218)
BringIntoViewRequester
מעביר עכשיו בקשות אל תצוגת Android של המארח. (Ia7a51)- האפליקציה
FontFamilyResolver
זמינה עכשיו דרךLocalFontFamilyResolver.current
- נוספו
createFontFamilyResolver(context)
ו-createFontFamilyResolver(context, coroutineScope)
כדי ליצור פונקציות חדשות לפתרון בעיות שקשורות ל-FontFamily מחוץ לשימוש ב-Compose. - הפרמטרים Paragraph ו-MultiParagraph מקבלים עכשיו את הערך
FontFamily.Resolver
-
TextLayoutResult.layoutInput.fontFamilyResolver
מכיל עכשיו את הפונקציה לפתרון בעיות שמשמשת לפריסה הזו, והפונקציהTextLayoutResult.layoutInput.resourceLoader
הוצאה משימוש כי היא כבר לא בשימוש. (Id5a45, b/174162090)
- נוספו
- נוסף
AndroidFont
, API חדש ברמה נמוכה שמאפשר לספק סוגים חדשים של מתארים של משאבי גופנים ב-Android. לדוגמה, טעינת גופנים משרת קצה ספציפי לאפליקציה, איתור אופציונלי של גופנים שהותקנו מראש במכשיר או טעינת גופן ממקור שלא מסופק על ידי מפעלי הגופנים הנוכחיים.- הרחבת
Font.ResourceLoaded
API כדי לתמוך בטעינת גופנים אופציונלית ואסינכרונית. לא מומלץ למפתחי אפליקציות להשתמש בממשק ה-API הזה באופן ישיר. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמר בנושא AndroidFont. - פונקציית התוסף
Font.AndroidResourceLoader
מאפשרת ליצורFont.ResourceLoader
כשלא מדובר בהרכבה. - הוספנו את הפרמטר
loadingStrategy
לגופנים מבוססי-משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים להורדה. (Ie5aea, b/174162090)
- הרחבת
- ה-constructor של
Typeface(FontFamily)
הוצא משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. בגופנים שאפשר להוריד, הקריאה הזו עשויה להיחסם למשך 10 שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload
- האפשרות
fontResource(FontFamily): Typeface
הוצאה משימוש. בעבר, התג הזה שימש לטעינה מראש של גופנים, וההורדה של גופנים להורדה עשויה להימשך עד 10 שניות. במקום זאת, אפשר להשתמש ב-FontFamilyResolver.preload
(If8e7c, b/174162090)
- האפשרות
- מעכשיו אפשר לציין את סוג התוכן של הפריטים בפונקציות
LazyVerticalGrid
– פונקציות item/items ב-LazyGridScope
מקבלות עכשיו פרמטר כזה. המידע הזה עוזר ללוגיקה של שימוש חוזר בפריטים לפעול בצורה יעילה יותר, ולהשתמש מחדש בתוכן רק בין פריטים מאותו סוג. (I7b355, b/215372836) - למאפיינים
LazyListLayoutInfo
ו-LazyGridLayoutInfo
נוספו עכשיו מאפיינים חדשים:viewportSize
, orientation
, reverseLayout
(Ifc8ed, b/200920410) - עכשיו אפשר לציין את סוג התוכן של הפריטים בפונקציות LazyColumn/LazyRow – item/items ב-LazyListScope. המידע הזה עוזר ללוגיקה של שימוש חוזר בפריטים לפעול בצורה יעילה יותר, ולהשתמש מחדש בתוכן רק בין פריטים מאותו סוג. (I26506)
- ה-constructor של
SubcomposeLayoutState
שמקבל אתmaxSlotsToRetainForReuse
הוצא משימוש. במקום זאת, יש בונה חדש שמקבלSubcomposeSlotReusePolicy
– ממשק חדש שמאפשר שליטה מפורטת יותר על המשבצות שצריך לשמור לשימוש חוזר בעתיד. (I52c4d) - מוסיף משנים ל-WindowInsets, גם לריווח פנימי וגם לשינוי גודל. כך חלק מהתוכן יכול להיכנס לאזור השוליים הפנימיים, אבל התוכן העיקרי יישאר מחוץ לאזור הזה. לדוגמה, אפשר להשתמש ב-windowInsetsPadding כדי להוסיף ריווח לאזור התוכן, וכך להימנע מאזורים שעשויים להיות מכוסים באופן מלא או חלקי. (Id0395, b/213942085)
תיקוני באגים
- תיבות טקסט יישארו מעל המקלדת כשהן ממוקדות והמקלדת מוצגת, כשמצב הקלט הרך הוא
ADJUST_PAN
. (I8eaeb, b/190539358, b/192043120) - Desktop משתמש ב-composition local ל-
FontFamily.Resolver
- הגרסה למחשב של
FontLoader
הוצאה משימוש - מפעל חדש של
createFontFamilyResolver
במחשב (I6bbbb, b/174162090)
- הגרסה למחשב של
- סוג הקלט של המקלדת הווירטואלית לא מהבהב יותר כשמעבירים את המיקוד בין שדות טקסט. (I1bf50, b/187746439)
- בשדות טקסט, כבר לא צריך להקיש על מקש החזרה כדי להזיז את נקודת האחיזה של הסמן. (Ideb4b, b/205726883)
- התנהגות הזכוכית המגדלת לבחירת טקסט שופרה כדי להתאים לזכוכית המגדלת של הפלטפורמה. (Idd918, b/206833278)
גרסה 1.2.0-alpha02
26 בינואר 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha02
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha02
יוצאות לאור. גרסה 1.2.0-alpha02 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו את
NonRestartableComposable
לשיטות שהן עומס יתר של שיטות קיימות ללא לוגיקה מורכבת. הפעולה הזו מצמצמת את הבדיקות של הממויזציה (equals) שנוצרות על ידי הקומפיילר לכל הפרמטרים שחוזרים על עצמם בפונקציה הפנימית שמופעלת. (I90490) - נוספו
excludeFromSystemGesture
משנים לגישה קלה אלsetSystemGestureExclusionRects
(I46f07) ב-Android
תיקוני באגים
- התנהגות הזכוכית המגדלת לבחירת טקסט שופרה כדי להתאים לזכוכית המגדלת של הפלטפורמה. (Idd918, b/206833278)
-
LazyColumn
,LazyRow
,Modifier.verticalScroll
ומאגרי תגים אחרים שמשתמשים ב-Modifier.scrollable
תומכים עכשיו בגלילה באמצעות גלגל העכבר. (I2b5e1, b/198214718)
גרסה 1.2.0-alpha01
12 בינואר 2022
הגרסאות androidx.compose.foundation:foundation:1.2.0-alpha01
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha01
יוצאות לאור. גרסה 1.2.0-alpha01 מכילה את הקומיטים האלה.
שינויים ב-API
- הפרמטר החדש
userScrollEnabled
נוסף לפונקציותLazyColumn
,LazyRow
ו-LazyVerticalGrid
כדי לאפשר למשתמשים להשבית באופן זמני או קבוע את הגלילה שהמשתמש יזם באמצעות מחוות מגע או פעולות נגישות. עדיין תהיה אפשרות לגלול באופן פרוגרמטי באמצעות השיטות בסטטוס. (I7eae9, b/201150093) - הוספת קריאה חוזרת (callback) לשינוי של הגדלת המסך.
onSizeChanged
(I6879f) - הווידג'ט של זכוכית המגדלת מוצג עכשיו כשגוררים את נקודות האחיזה של הבחירה ב-
SelectionContainer
. (I30b38, b/139320979)
תיקוני באגים
- תוקנה הבעיה שבה נקודת האחיזה של הסמן
TextField
לא מוסתרת כשמגללים אותה מחוץ לתצוגה. (I14552, b/208883748)
עדכונים של יחסי תלות
- עכשיו תלוי ב-Kotlin
1.6.10
.
גרסה 1.1
גרסה 1.1.1
23 בפברואר 2022
הגרסאות androidx.compose.foundation:foundation:1.1.1
ו-androidx.compose.foundation:foundation-layout:1.1.1
יוצאות לאור. גרסה 1.1.1 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון
NullPointerException
ב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - תוקנה קריסה שנגרמה בגלל תוכן הלוח בזמן קריאה מהלוח ב-Android. (I06020, b/197769306)
- תוקנה בעיה בפריסה מימין לשמאל ב-
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, גם אם הגדרתם שהלחצן יהיה קטן יותר. כך, התנהגות הרכיבים של Compose Material תהיה זהה להתנהגות הרכיבים של Material Design, ותוכלו ליהנות מהתנהגות עקבית אם תשתמשו גם ב-Views וגם ב-Compose. השינוי הזה גם מבטיח שכשתצרו את ממשק המשתמש באמצעות רכיבי Compose Material, הדרישות המינימליות לנגישות של משטחי מגע יתקיימו.
- תמיכה יציבה בפס ניווט
- העברה של מספר ממשקי API שהיו בשלב הניסוי לשלב היציב
- תמיכה בגרסאות חדשות יותר של Kotlin
גרסה 1.1.0-rc03
26 בינואר 2022
הגרסאות androidx.compose.foundation:foundation:1.1.0-rc03
ו-androidx.compose.foundation:foundation-layout:1.1.0-rc03
יוצאות לאור. גרסה 1.1.0-rc03 מכילה את הקומיטים האלה.
תיקוני באגים
- עדכון לתמיכה ב-Compose Material 1.1.0-rc03
גרסה 1.1.0-rc01
15 בדצמבר 2021
הגרסאות androidx.compose.foundation:foundation:1.1.0-rc01
ו-androidx.compose.foundation:foundation-layout:1.1.0-rc01
יוצאות לאור. גרסה 1.1.0-rc01 כוללת את הקומיטים האלה.
תיקוני באגים
- עכשיו אפשר להעביר היסטים שליליים של גלילה אל
LazyListState.scrollToItem()
ואלLazyListState.animateScrollToItem()
. (Iceb90, b/184252837) - תוקן באג שגרם לכך שפעולות גלילה של נגישות לא הופיעו (I7cbfb)
גרסה 1.1.0-beta04
1 בדצמבר 2021
הגרסאות androidx.compose.foundation:foundation:1.1.0-beta04
ו-androidx.compose.foundation:foundation-layout:1.1.0-beta04
יוצאות לאור. גרסה 1.1.0-beta04 מכילה את הקומיטים האלה.
תכונות חדשות
- עודכן כך שיהיה תואם ל-Kotlin
1.6.0
שינויים ב-API
- בוצע ניקוי של אפשרות ה-null ב-
androidx.core.view
(I7078a, b/204917439) - נוספו ממשקי API ניסיוניים שמאפשרים להשתמש ב-PointerInputchange כשלם או לבדוק אם נעשה בו שימוש או לא. (I2e59d)
- הצגת ווידג'ט של זכוכית מגדלת כשגוררים את הסמן או את נקודות האחיזה לבחירה בתוך שדות טקסט. (I5391e, b/203781358)
תיקוני באגים
- תוקנה בעיה שגרמה לכך שהידיות של הטקסט לא זזו כשחלו שינויים במיקום של ה-IME. (I25f2e)
גרסה 1.1.0-beta03
17 בנובמבר 2021
הגרסאות androidx.compose.foundation:foundation:1.1.0-beta03
ו-androidx.compose.foundation:foundation-layout:1.1.0-beta03
יוצאות לאור. גרסה 1.1.0-beta03 מכילה את הקומיטים האלה.
שינויים ב-API
- נוספה תמיכה בפריסה אופקית ל-LazyVerticalGrid. (I7e2fa, b/176758183)
נוספה יכולת ניסיונית להנפשת מיקומי פריטים ברשימות Lazy. יש משנה חדש שזמין ב-LazyItemScope שנקרא
Modifier.animateItemPlacement()
. דוגמה לשימוש:var list by remember { mutableStateOf(listOf("A", "B", "C")) } LazyColumn { item { Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } } items(list, key = { it }) { Text("Item $it", Modifier.animateItemPlacement()) } }
- כשמספקים מפתח באמצעות
LazyListScope.item
אוLazyListScope.items
, המגדיר הזה יפעיל אנימציות של שינוי סדר הפריטים. בנוסף לשינוי הסדר של הפריטים, גם כל שינוי אחר במיקום שנגרם מאירועים כמו שינויים בסידור או ביישור ילווה באנימציה. (I59e7b, b/150812265)
- כשמספקים מפתח באמצעות
גרסה 1.1.0-beta02
3 בנובמבר 2021
הגרסאות androidx.compose.foundation:foundation:1.1.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.1.0-beta02
יוצאות לאור. גרסה 1.1.0-beta02 מכילה את הקומיטים האלה.
תיקוני באגים
- האפקט של הגלים וסימנים אחרים יוצגו עכשיו באיחור רק אם הם בתוך מאגר
Modifier.scrollable()
, במקום תמיד באיחור באירוע של הורדה. (Ibefe0, b/203141462) - נוסף ממשק API ניסיוני של BringIntoView שמאפשר לשלוח בקשה להורים כדי שיגללו כדי להציג פריט (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 מכילה את הקומיטים האלה.
תיקוני באגים
- נוסף ממשק API ניסיוני של BringIntoView שמאפשר לשלוח בקשה להורים כדי שיגללו כדי להציג פריט (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
- נוספה פונקציית עומס יתר ללא ילדים עבור 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 או ב-LazyRow, מיקום הגלילה יישמר על סמך המפתח. כלומר, אם מוסיפים או מסירים פריטים לפני הפריט הנוכחי שגלוי, הפריט עם המפתח הנתון יישאר הפריט הראשון שגלוי. (Id263f, b/184257857)
- הקבועים העיקריים הם @ExperimentalComposeUiApi בשלב הזה. קוד צריכה יכול להצהיר על קבועים פרטיים לפני ייצוב. (Ia5d48)
- נוספה IdlingStrategy ל-AndroidComposeTestRule שאפשר להשתמש בה במסגרות בדיקה כדי להתקין מנגנון חלופי להמתנה או להשגת מצב שקט. כדי להתקין אסטרטגיה משלכם, כדאי להשתמש ב-
AndroidComposeTestRule.setIdlingStrategyFactory()
לפני שהבדיקה מתחילה. (I608fa)
נוספו כללי פרופיל
בגרסה הזו נוספו כללי פרופיל למודולים הבאים של כתיבת הודעות (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
מהם כללי פרופיל?
כללי הפרופיל של ספרייה מצוינים בקובץ טקסט
baseline-prof.txt
שנמצא בתיקייהsrc/main
או בתיקייה מקבילה. בכל שורה בקובץ מצוין כלל, ובמקרה הזה כלל הוא תבנית להתאמה לשיטות או למחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט פרופיל ART שקריא לבני אדם, שמשמש כשמשתמשים ב-adb shell profman --dump-classes-and-methods ...
. הכללים האלה יכולים להיות באחת משתי צורות, כדי לטרגט שיטות או מחלקות.כלל של method ייראה כך:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
כלל כיתה יכלול את התבנית הבאה:
<CLASS_DESCRIPTOR>
כאן
<FLAGS>
הוא אחד או יותר מהתוויםH
,S
ו-P
כדי לציין אם לסמן את השיטה הזו כ'פופולרית', 'הפעלה' או 'אחרי הפעלה'.השדה
<CLASS_DESCRIPTOR>
הוא המתאר של המחלקה שאליה שייכת השיטה המטורגטת. לדוגמה, למחלקהandroidx.compose.runtime.SlotTable
יהיה דסקריפטור שלLandroidx/compose/runtime/SlotTable;
.
<METHOD_SIGNATURE>
הוא החתימה של ה-method, והוא כולל את השם, סוגי הפרמטרים וסוגי הערכים המוחזרים של ה-method. לדוגמה, לשיטהfun isPlaced(): Boolean
ב-LayoutNode
יש חתימהisPlaced()Z
.התבניות האלה יכולות להכיל תווים כלליים (
**
,*
ו-?
) כדי שכלל יחיד יכלול כמה שיטות או מחלקות.
מה עושים הכללים?
שיטה עם הדגל
H
מציינת שהשיטה הזו היא שיטה 'פעילה' וצריך לקמפל אותה מראש.שיטה עם הדגל
S
היא שיטה שמופעלת בהפעלה, וצריך לבצע קומפילציה שלה מראש כדי להימנע מעלות הקומפילציה והפרשנות של השיטה בזמן ההפעלה.שיטה עם הדגל
P
מציינת שהיא שיטה שמופעלת אחרי ההפעלה.אם מחלקה מופיעה בקובץ הזה, המשמעות היא שהיא נמצאת בשימוש במהלך ההפעלה, ולכן צריך להקצות לה מראש מקום ב-heap כדי להימנע מעלות הטעינה של המחלקה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בארטיפקטים של AAR. כשיוצרים אפליקציה שכוללת את הארטיפקטים האלה, הכללים האלה משולבים יחד, והכללים המשולבים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לאפליקציה. לאחר מכן, מערכת ART יכולה להשתמש בפרופיל הזה כשהאפליקציה מותקנת במכשירים, כדי לבצע קומפילציה מראש של קבוצת משנה ספציפית של האפליקציה ולשפר את הביצועים שלה, במיוחד בהפעלה הראשונה. הערה: הפעולה הזו לא תשפיע על אפליקציות שאפשר לבצע בהן ניפוי באגים.
גרסה 1.0.0-beta08
2 ביוני 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta08
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta08
יוצאות לאור. גרסה 1.0.0-beta08 מכילה את הקומיטים האלה.
שינויים ב-API
- ה-enum NestedScrollSource הוחלף במחלקה מוטמעת. (Ie321b, b/187055290)
- בוצע רפקטורינג של השימוש בסוגי enum כדי להשתמש במחלקות מוטבעות, כדי למנוע בעיות בשימוש במשפטי when מקיפים כשמוסיפים ערכי enum חדשים. (I2b5eb)
- נוסף פסק זמן להקשה על רכיבים שאפשר ללחוץ עליהם או להפעיל/להשבית אותם, כדי למנוע הצגת אפקט אדווה במהלך גלילה או גרירה (Ia2704, b/168524931)
- המאפיינים הסמנטיים ContentDescription ו-Text הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API משופרים לבדיקה כדי להשתמש בשינויים האלה (Ica6bf, b/184825850)
- הפרמטר
Modifier.focusModifier()
הוצא משימוש והוחלף בפרמטרModifier.focusTarget()
(I6c860) - ה-enum KeyboardType מוחלף במחלקה מוטבעת. (I73045, b/187055290)
- החלפנו את ה-enum
FocusState
בממשקFocusState
(Iccc1a, b/187055290) - ה-enum ImeAction מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
- פונקציות
AnnotatedString.withAnnotation
הן עכשיו ExperimentalTextApi במקום ExperimentalComposeApi. (I0cd0a)- הבונה של TextUnit עם TextUnitType הוא עכשיו ExperimentalTextApi במקום ExperimentalComposeApi.
- הערך של PaddingValues הוא עכשיו
@Stable
ולא@Immutable
(I88c50)
תיקוני באגים
- תוקנו קריסות של לחיצה ארוכה על אזור ריק בטקסט לא ריק. (I33ab5, b/187437299)
- הצגת סרגל הכלים אחרי בחירת הכול (I495d9, b/185919613)
- תוקן באג שגרם לחיתוך של רכיבי צאצא במאגדים עם אפשרות גלילה בציר הניצב. היה קל לשחזר את הבעיה אם השתמשתם ב-LazyRow עם פריטי Card. עכשיו הצל לא ייחתך. (Icb635, b/186318448)
- תוקנה בעיה שבה גלים או אינדיקציות אחרות נתקעים לפעמים בלחיצה ארוכה כשמשתמשים ב-Modifier.combinedClickable (I2298c, b/186223077)
- החל מעכשיו, הרכיבים
detectDragGesures
, detectVerticalGestures
ו-detectHorizontalGestures
יבצעו את השינוי במיקום באופן אוטומטי, ולא יהיה צורך להפעיל את הפונקציה change.consumePositionChange בקריאות החוזרות של onDrag (I42fc4, b/185096350, b/187320697) -
Modifier.onGloballyPositioned()
השתנה כך שהוא מדווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591)
גרסה 1.0.0-beta07
18 במאי 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta07
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta07
יוצאות לאור. גרסה 1.0.0-beta07 מכילה את הקומיטים האלה.
שינויים ב-API
- הוצגה לוגיקה של אחזור מראש של הפריט הבא שגלוי ב-LazyColumn/Row (I8a4bc, b/184940225)
- נוספה נקודת אחיזה לבחירת קליפ (Iff80d, b/183408447)
תיקוני באגים
- הקומפוננטות LazyColumn/Row ישמרו עכשיו עד 2 פריטים שהיו גלויים בעבר כפעילים (לא יבוטלו), גם אם הם כבר לא גלויים בגלל גלילה. כך הרכיב יכול לעשות שימוש חוזר בתתי-הקומפוזיציות הפעילות כשצריך ליצור פריט חדש, מה שמשפר את ביצועי הגלילה. (Ie5555)
- הסרה של paintBackground. (I38660)
- ציור הרקע של הבחירה באמצעות DrawScope. (I73c61, b/186674472)
- תוקנה רגרסיה בגרסת beta06 שמשפיעה על Row/Column באמצעות סידורים של spacedBy כדי לפרוס צאצאים משוקללים. (Ifaf8c, b/187326588)
גרסה 1.0.0-beta06
5 במאי 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta06
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta06
יוצאות לאור. גרסה 1.0.0-beta06 כוללת את הקומיטים האלה.
שינויים ב-API
- פתרון התנגשות עם תנועת ניווט (I1145e)
- נוספו ממשקי API של נגישות CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן אוסף ופריטים בו לשירותי נגישות (Id54ef, b/180479017)
- נוספה האפשרות
SemanticsActions.ScrollToIndex
לגלילה ברשימה עם פריטים ממוספרים לפריט עם מספר מסוים, ונוספה האפשרותSemanticsProperties.IndexForKey
לקבלת המספר של פריט ברשימה עם פריטים ממוספרים. שתי הפעולות מיושמות על ידי LazyList.- נוספו הפונקציות
SemanticsNodeInteraction.performScrollToIndex
שגוללת רשימה לאינדקס שצוין, ו-SemanticsNodeInteraction.performScrollToKey
שגוללת רשימה לפריט עם המפתח שצוין. (I4fe63, b/178483889, b/161584524)
- נוספו הפונקציות
- תמיכה בשמירה של AnnotatedString ב-TextFieldValue.Saver. נוספו פונקציות כלי עזר addTtsAnnotation ו-withAnnotation ל-AnnotatedString.Builder (I8cbdc, b/178446304)
- נוספו ערכי ברירת מחדל של פרמטר
0.dp
אלPaddingValues(horizontal, vertical)
(I05571, b/181336792)
תיקוני באגים
- רכיבי צאצא של Row ו-Column עם
weight(fill = false)
כבר לא גורמים לרכיב האב למלא את כל השטח הזמין של הציר הראשי. (Ied94d, b/186012444, b/184355105)
גרסה 1.0.0-beta05
21 באפריל 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta05
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta05
יוצאות לאור. גרסה 1.0.0-beta05 מכילה את הקומיטים האלה.
שינויים ב-API
- הממשק FlingBehavior מסומן עכשיו כ- @Stable. כל ההטמעות צריכות לעמוד בדרישות
@Stable
החוזה. (I93354, b/184830577)
תיקוני באגים
- בעיות שפתרנו: פעולות גלילה של נגישות ב-
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
,accessibilityActionScrollLeft
, accessibilityActionScrollUp
,accessibilityActionScrollRight
ו-accessibilityActionScrollDown
. במקום לגלול עד לסוף של אזור הגלילה, המערכת תגלול עכשיו מסך אחד בכיוון הנתון. (Ieccb0) - קבצי AndroidManifest מ-ui-test-manifest ומ-ui-tooling-data תואמים עכשיו ל-Android 12 (I6f9de, b/184718994)
גרסה 1.0.0-beta04
7 באפריל 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta04
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta04
יוצאות לאור. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.
שינויים ב-API
- משנים את השמות של hideSoftwareKeyboard ו-showSoftwareKeyboard ב-SoftwareKeyboardController ל-
hide()
ו-show()
בהתאמה.- סיפקנו את הממשק המלא של CompositionLocal עבור LocalSoftwareKeyboardController, כדי לאפשר את ההגדרה שלו (שימושי במיוחד בבדיקות) (I579a6)
TextOverflow.Visible
is introduced. (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 חדש של
LocalSoftwareKeyboardController
composition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I5951e, b/168778053) - נוסף API חדש של
LocalSoftwareKeyboardController
composition local כדי להחליף את הממשק הקודם SoftwareKeyboardController ב-TextField. (I84472, b/168778053)
תיקוני באגים
- החלת הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, b/174531520)
גרסה 1.0.0-beta01
24 בפברואר 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-beta01
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta01
יוצאות לאור. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
זו הגרסה הראשונה של Compose 1.0.0 Beta.
שינויים ב-API
- נוספה קראה חוזרת (callback) מסוג onStart אל
detectDragGestures
(I67269, b/179995594) - המשנים של גודל המאפיינים הפנימיים כבר לא ניסיוניים. (I15744)
- הוסרו טענות dp (I798d2)
- הסרנו את הקריאה החוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
- השם של MeasureBlocks שונה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי Layout API עודכנו או פושטו כדי להשתמש ב-MeasurePolicy. (Icab48, b/167662468, b/156751158)
- הטקסט
InteractionState
הוחלף בטקסט[Mutable]InteractionSource
- ממשקי המשתמש אחראים לפליטה ולאיסוף של אירועי אינטראקציה.
- במקום להעביר את
interactionState = remember { InteractionState() }
לרכיבים כמוButton
ו-Modifier.clickable()
, צריך להשתמש ב-interactionSource = remember { MutableInteractionSource() }
. - במקום:
Interaction.Pressed in interactionState
צריך להשתמש בפונקציות ההרחבה ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState(). - בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות של InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed, b/169874631, b/175142755)
- נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, b/177662148)
- הקומפוננטה Placeable חושפת עכשיו את המאפיין measuredSize, שמייצג את הגודל שהפריסה של רכיב הצאצא נמדדה בפועל. יכול להיות שהגודל הזה לא עומד במגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת משנה selectionGroup שמאפשר לסמן אוסף של רכיבי Tabs או RadioButtons למטרות נגישות (Ie5c29)
הוספת LazyListState.animateScrollToItem
השיטה הזו מבצעת גלילה חלקה לפריט ספציפי ברשימה. (I4bfd7)
השם של ScrollableState.smoothScrollBy() שונה ל-animateScrollBy() השם של LazyListState.snapToItemIndex() שונה ל-scrollToItem() השם של ScrollState.smoothScrollTo() שונה ל-animateScrollTo() (I35ded)
הפונקציה Modifier.zoomable הוחלפה בפונקציה Modifier.transformable. הפונקציות smoothPanBy ו-smoothRotationBy נוספו כפונקציונליות. (Ifc32b, b/175294473)
השדה
defaultFactory
עבורcompositionLocalOf
ועבורstaticCompositionLocalOf
הוא עכשיו חובה במקום אופציונלי.השינוי הזה מסיר שגיאת סוג פוטנציאלית עבור סוגים שאי אפשר להגדיר כ-nullable, שלא סופקה להם ברירת מחדל של factory. בעבר, הפעולה הזו הייתה מספקת הפניה לערך null עבור סוג שלא ניתן להגדיר כ-nullable.
בסוגים שניתן להגדיר בהם ערך null, כדאי לספק את
{ null }
כברירת המחדל של factory.אנחנו לא ממליצים להשתמש ב-locals עם סוגים שלא ניתן להגדיר להם ערך null, אלא אם אפשר לספק ערך ברירת מחדל הגיוני. אם אין ברירת מחדל הגיונית, פונקציית ה-lambda
defaultFactory
צריכה להחזיר חריגה. עם זאת, אם מתרחשת חריגה, הצרכנים של המשתנה המקומי יהיו תלויים בו באופן מרומז, והתלות הזו לא נאכפת על ידי מערכת הטיפוסים. (Ifbd2a)הערך של
Indication#createIndication()
השתנה ל-Indication#rememberUpdatedIndication(InteractionState)
והפרמטרInteractionState
הוסר מ-IndicationInstance#drawIndication()
. האובייקט IndicationInstance צריך להיות אחראי רק לציור אפקטים חזותיים, ולא להפעלת אנימציות או לכתיבת מצב בתגובה לשינויים ב-InteractionState. האנימציות והכתיבה למצב צריכים להתרחש בתוךrememberUpdatedIndication()
. גם הפרמטרindication
ב-Modifier.indication
השתנה והפך לפרמטר חובה. (Ic1764, b/152525426)פעולות בטקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, b/179648629)
הוסר
runBlockingWithManualClock
(I15cdc, b/179664814)מיקום הגלילה ב-Modifier.verticalScroll()/horizontalScroll() מיוצג עכשיו באמצעות Ints (I81298)
החבילות של השיטות smoothScrollBy ו-scrollBy השתנו ל-
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)השם של FlingConfig שונה ל-FlingBehavior, ועכשיו אפשר להתאים אישית את האנימציה של ההשהיה במקום להשתמש ב-Decays מוגדרים מראש. (I02b86, b/175294473)
השם של מגבילי המידות השתנה. השמות של modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)
השם של defaultMinSizeConstraints שונה ל-defaultMinSize. (I4eaae)
המסנן Modifier.tapGestureFilter הוסר. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectTapGestures(...) }
. (I266ed, b/175294473)הסרה של צריכה חלקית ממערכת קלט ההצבעה. הדרך המומלצת לתאם צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
ההגדרה 'כיוון' הועברה לחבילת הבסיס. ה-VelocityTracker הועבר מ-ui.gesture ל-ui.input.pointer. (Iff4a8, b/175294473)
הוסרו AnimationClockObservable ומחלקות משנה. התכונה AnimatedFloat הוסרה. (Icde52, b/177457083)
הפונקציות drawerState.open() ו-drawerState.close() הן עכשיו פונקציות השהיה. משתמשים ב-rememberCoroutineScope() כדי לקבל את ההיקף של הקומפוזיציה כדי להפעיל אותן (I16f60, b/175294473)
השם של Providers השתנה ל-CompositionLocalProvider
- הקונסטרוקטור Composition לא מקבל יותר פרמטר מפתח, והוצא משימוש.
- הפונקציה currentCompositeKeyHash הפכה למאפיין ברמה העליונה שאפשר להגדיר אותו, במקום פונקציה ברמה העליונה שאפשר להגדיר אותה.
- המחלקות CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- הפונקציה ComposableLambda הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
- הפונקציה
@TestOnly
top level clearRoots הוסרה. היא כבר לא נחוצה. - הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
- הפונקציה Composer.collectKeySourceInformation הוסרה. היא כבר לא נחוצה.
- הוסרו השיטות isJoinedKey, joinedKeyLeft ו-joinedKeyRight. הם כבר לא נחוצים.
- ממשקי API שונים ברמה העליונה הועברו ואורגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקת הקבצים ב-Kotlin, הפעולה הזו תשבור את התאימות הבינארית אבל לא את תאימות המקור, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
- (I99b7d, b/177245490)
בוצע שינוי ב-Modifier.scrollable. עכשיו נעשה שימוש בממשק Scrollable במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)
הפונקציה Modifier.draggable מקבלת עכשיו DraggableState במקום פונקציית למדה פשוטה. אפשר ליצור מצב באמצעות
rememberDraggableState { delta -> }
כדי לקבל את אותה התנהגות כמו קודם (Ica70f, b/175294473).נוספו משני המאפיינים requiredWidth(IntrinsicSize) ו-requiredHeight(IntrinsicSize) לציון הגודל הנדרש של גדלים פנימיים. (I0a6b4)
המאפיין
emptyContent()
שהוצא משימוש הוסר. במקום זאת, אתם צריכים להשתמש ב-{}
. (Idb33f, b/179432510)נמחקו כמה ממשקי API שהוצאו משימוש בעבר (Ice5da, b/178633932)
תיקוני באגים
- נוסף API חדש של LocalSoftwareKeyboardController composition כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I658b6, b/168778053)
גרסה 1.0.0-alpha12
10 בפברואר 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha12
ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha12
יוצאות לאור. גרסה 1.0.0-alpha12 מכילה את הקומיטים האלה.
שינויים ב-API
- הפונקציה Modifier.pointerInput מחייבת עכשיו שימוש במפתחות remember כדי לציין מתי קורוטינת הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (I849cd)
- עדכון לבדיקה: הפונקציה hasText() תבדוק את הטקסט בשדה הטקסט, כולל טקסט של קלט, תווית, רמז או placeholder (Iab803)
- נוסף PaddingValues.Absolute שאפשר להשתמש בו בממשקי API שמקבלים PaddingValues. (Ia5f30)
- השיטה onImeActionPerformed הוצאה משימוש. במקומה צריך להשתמש ב-KeyboardActions (If0bbd, b/179071523)
- כדי להתאים טוב יותר את מוסכמות מתן השמות ל-ImageBitmap ול-ImageVector, השם ImagePainter שונה ל-BitmapPainter כדי ליצור הקבלה ל-VectorPainter. (Iba381, b/174565889)
- ממשקי API טובים יותר לבדיקת מחרוזות משנה, עם מחרוזת משנה כארגומנט (Icbe78)
- הוספנו רכיב של הקשר קורוטינה
InfiniteAnimationPolicy
שיחול על אנימציות אינסופיות. כברירת מחדל, לא מותקנת מדיניות, אלא אם מריצים בדיקות עםComposeTestRule
. (I50ec4, b/151940543) - הפונקציות Animatable.snapTo ו-Animatable.stop הן עכשיו פונקציות השהיה (If4288)
- הפונקציה ComponentActivity.setContent הועברה אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
- הוסרו שיטות של פירוק מבנה והעתקה (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 מחזירה עכשיו lambdas שמחזירות ערכי Float במקום ערכי Float ישירים. (If4a35, b/178657186)
נוספה סמנטיקה של EditableText כדי לסמן טקסט קלט שניתן לעריכה בשדה הטקסט לנגישות, ונוספו שיטות בדיקה תואמות כדי לבדוק את הסמנטיקה (I8e07a)
המשנה Modifier.clickable לא תומך יותר בקליק כפול ובלחיצה ארוכה. כדי להשיג את הפונקציונליות הזו, משתמשים ב-Modifier.combinedClickable. (Iafad1)
הפונקציה toIntPx() שונה ל-roundToPx(). (I9b7e4, b/173502290)
השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
המאפיין Modifier.dragGestureFilter הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectDragGestures (...)}
. אפשרות נוספת היא להשתמש ב-Modifier.draggable לגרירות בציר אחד (I0ba93, b/175294473)שונה השם של Ambients כדי להתאים לשינוי השם של Ambient -> CompositionLocal. בעבר, השם של Ambients היה AmbientFoo, ועכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
הבחירה הועברה לבסיס. (I7892b)
בדומה להסרה הקודמת של
state { 0 }
composable, ועכשיו אנחנו מעודדים שימוש ב-remember { mutableStateOf(0) }
, אנחנו עומדים להסיר אתsavedInstanceState { 0 }
composable. במקום זאת, כדאי להשתמש ב-rememberSaveable { mutableStateOf(0) }
, והוא ישמור וישחזר אוטומטית אם אפשר לאחסן את הסוג שמשמש בתוך MutableState ב-Bundle. אם בעבר העברתם אובייקט מותאם אישית של שמירה, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable עם הפרמטרstateSaver
. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)נוספה סמנטיקה של סיסמאות לנגישות (I231ce)
נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא מוגדרים לצורך נגישות (I6fe05)
זמן ההפעלה באנימציה מאוחד עכשיו למיליארדית השנייה (If776a)
ההערה @ComposableContract הוצאה משימוש, ועכשיו יש שלוש הערות ספציפיות יותר במקומה.
@ComposableContract(restartable = false)
הפך ל-@NonRestartableComposable
@ComposableContract(readonly = true)
הפך ל-@ReadOnlyComposable
@ComposableContract(preventCapture = true)
הפך ל-@DisallowComposableCalls
@ComposableContract(tracked = true)
הוסר. (I60a9d)הוצאנו משימוש את כלי השירות
emptyContent()
ו-(@Composable () -> Unit).orEmpty()
כי הם כבר לא משפיעים לטובה על הביצועים או על הערך (I0484d)עכשיו אפשר לסגור את כלי ההלחנה מחדש. רכיבי Composable סגורים ימשיכו את הפעולה עד שקורוטינות הצאצא של ה-Composition יסיימו את הפעולה. השם של הפונקציה 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)
הוצאנו משימוש את פריט המידע שנוצר בתהליך פיתוח (Artifact) compose:runtime-dispatch. MonotonicFrameClock נמצא עכשיו ב-compose:runtime ו-AndroidUiDispatcher נמצא ב-compose:ui. (Ib5c36)
הפרמטרים ב-RounderCornerShape, CutCornerShape ו-CornerBasedShape קיבלו שמות חדשים: במקום left/right (ימין/שמאל) הם נקראים start/end (התחלה/סיום). זאת כדי לתמוך בשיקוף אוטומטי של הצורה בכיוון מימין לשמאל. הוספנו את הצורות AbsoluteRounderCornerShape ו-AbsoluteCutCornerShape למקרים שבהם לא רוצים שיקוף אוטומטי. (I61040, b/152756983)
המאפיין canDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
ה-API שאליו מכוון פלאגין הקומפיילר של Compose עבר רפקטורינג כדי להשתמש בממשק במקום במחלקה קונקרטית. בנוסף, הממשק לא משתמש יותר בפרמטר type.
זהו שינוי פנימי שלא אמור להשפיע על התאימות של קוד המקור, אבל הוא שינוי בינארי שעלול לגרום לבעיות. (I3b922, b/169406779)
המסנן Modifier.scaleGestureFilter הוסר. במקומו, אפשר להשתמש ב-Modifier.zoomable. אפשרות אחרת: שימוש ב-
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473)המאפיין AnimatedValue/Float הוצא משימוש. במקומו צריך להשתמש ב-Animatable. (I71345, b/177457083)
- הוסרו CoreText ו-CoreTextField מ-API ציבורי
- הוסר עומס יתר של SelectionContainer שיצא משימוש (I99c19)
הסרה של פונקציות גלילה שהוצאו משימוש ולא מושהות בהמשך לשינויים מהגרסה הקודמת, פונקציות הגלילה שלא מושהות הוסרו לגמרי. צריך להמיר לפונקציות ההשעיה עם אותם שמות. אפשר לקבל היקף של שגרת משנה באמצעות rememberCoroutineScope(). (I3d39c, b/178169563)
ה-ConstraintLayout של androidx.compose.foundation.layout הוצא משימוש לטובת ה-ConstraintLayout של androidx.constraintlayout.compose. צריך להוסיף תלות ב-
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
. (I87adc)המסננים tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ו-pressIndicaitonGestureFilter הוצאו משימוש. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, b/175294473)
בוצעה הסרה של
Recomposer.current()
. [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. ההרכבה מחדש והטיקים של האנימציה שמבוססים על withFrameNanos מושהים בזמן שמחזור החיים של המארח מושהה. (I38e11)Recomposer.runningRecomposers כולל עכשיו StateFlow גלובלי של RecomposerInfo לקריאה בלבד, כדי לעקוב אחרי מצב הקומפוזיציה בתהליך. עדיף להשתמש ב-API הזה במקום ב-Recomposer.current(), שמוצא משימוש. (If8ebe)
גרסה 1.0.0-alpha11
28 בינואר 2021
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha11
ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha11
יוצאות לאור. גרסה 1.0.0-alpha11 מכילה את הקומיטים האלה.
שינויים ב-API
הוצאה משימוש של scrollBy ללא השהיה, הסרה של scrollTo ללא השהיה
אנחנו ממליצים עכשיו להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולהמתין עד שהגלילה תסתיים. כחלק מהמעבר הזה, אנחנו מוציאים משימוש ו/או מסירים את הגרסאות של הפונקציות האלה שלא כוללות השעיה. (Ie9ced)
הוצאה משימוש של smoothScrollBy שאינה פונקציית השהיה מומלץ עכשיו להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולהמתין לסיום הגלילה. אנחנו מוציאים משימוש את הגרסאות שלא כוללות השהיה של הפונקציות האלה כחלק מהמעבר הזה. (I12880)
נוסף פרמטר של תיאור תוכן לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
הפרמטר החדש שנוסף ל-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 במקומם. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של lazy ולהשתמש במאפיינים ישירות, כמו בדוגמה הבאה: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
items(count: Int)
factory method חדש להיקף של LazyColumn/LazyRow/LazyVerticalGrid. הפונקציותitems(items: List)
ו-itemsIndexed(items: List)
הן עכשיו פונקציות הרחבה, ולכן צריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסים חדשים של פונקציות לשימוש במערכים: items(items: Array) ו-itemsIndexed(Array) (I803fc, b/175562574)הוסר AbsoluteArrangement שיצא משימוש. (Iffa96, b/177641870)
הפרמטר propagateMinConstraints נוסף ל-Box, כדי לציין אם אילוצי המינימום הנכנסים צריכים לעבור לתוכן של ה-Box או לא. ברירת המחדל היא False. (I0125b, b/152613457)
תיקוני באגים
- הפונקציות onCommit, onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API SideEffect ו-DisposableEffect (If760e)
- הקומפוזיציה WithConstraints עברה שינוי משמעותי, שמה שונה ל-BoxWithConstraints והיא הועברה ל-foundation.layout. (I9420b, b/173387208)
שינויים בפונקציות של Font/FontFamily/Typeface
- נוספו פונקציות ליצירת אובייקטים שמתחילות באות גדולה
- הוצאנו משימוש פונקציות קודמות ליצירת אובייקטים עם אותיות קטנות בתחילת השם
- פונקציות חדשות של מפעל מחזירות את FontFamily במקום מחלקות משנה
- הסתרנו את ה-constructors של מחלקות המשנה, כך שאפשר ליצור אותן רק באמצעות פונקציות factory.
- השם של Font.asFontFamily שונה ל-Font.toFontFamily
- (I42aa7)
הוספנו את
ComposeContentTestRule
, שמרחיב אתComposeTestRule
ומגדיר אתsetContent
, שהוסר מ-ComposeTestRule
. נוספה שיטת יצירהcreateEmptyComposeRule()
שמחזירהComposeTestRule
ולא מפעילה פעילות בשבילכם. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעותActivityScenario.launch
(I9d782, b/174472899)הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא סוג המשתנה שמונפש. למשל: Float, Dp, Offset וכו' (Ie7e25)
הצפיפות היא עכשיו היקף המקלט בממשקי סידור. (I18aad)
TextFieldValue מקבל AnnotatedString. עם זאת, זהו שינוי שמתבצע רק ב-API, ועדיין לא הוטמעה האפשרות לעריכת טקסט עם כמה סגנונות.
- הוסר
initial
מפרמטרים של בנאי EditingBuffer. (I326d5)
- הוסר
הפונקציות invalidate ו-compositionReference() הוצאו משימוש, ועכשיו משתמשים בפונקציות currentRecomposeScope ו-rememberCompositionReference בהתאמה. (I583a8)
המחרוזת AnnotatedString השתנתה כך שהיא נגזרת מ-kotlin.CharSequence. לכן, הפונקציות length ו-subSequence הן עכשיו פונקציות של מופע, והפונקציות של התוסף הוסרו. (Iaf429)
הערכים של משך הזמן וזמן הפעולה יוחלפו בערכים של אלפיות שנייה ארוכות, ובשלב הזה תוסר התלות של קלט מצביע במחלקות האלה. (Ia33b2, b/175142755, b/177420019)
הפונקציה RememberObserver מחליפה את CompositionLifecycleObserver, והשימוש ב-CompositionLifecycleObserver הוצא משימוש.
RememberObserver
הוא תחליף ל-CompositionLifecycleObserver
עם סמנטיקה שונה ושיטות ששמן שונה. אפשר לעבור ל-API החדש באופן אוטומטי לאובייקטים שזוכרים רק פעם אחת, וזו עדיין השיטה המומלצת. עם זאת, אם הפניה נשמרה יותר מפעם אחת בקומפוזיציה, הפונקציהonRemembered
נקראת לכל הפניה, והפונקציהonEnter
נקראת רק פעם אחת. הייתה קריאה לפונקציהonEnter
כמה פעמים אם האובייקט היה בשימוש בקומפוזיציות משנה, כמוWithConstraints
ו-Scaffold
, ולכן אי אפשר היה להסתמך על קריאה יחידה לפונקציהonEnter
. לכן, הפונקציה הוסרה ב-RememberObserver
.
RememberObserver
מוסיף אתonAbandoned
שמופעל אם מופעRememberObserver
מוחזר מהקריאה החוזרת שהועברה אלremember
אבל לא נשמר במצב הקומפוזיציה, ולכן אף פעם לא תתבצע קריאה אלonRemembered
. זה יכול לקרות אם חריגה מסיימת את ההרכבה לפני שהיא מסתיימת, או אם ההרכבה נפסלת כי המצב שהיא יצרה עבורו הרכבה כבר לא עדכני או כבר לא נחוץ. אם המופע שלRememberObserver
אחרי ההמלצה שלמעלה לגבי הפניה יחידה עוקב אחרי משאב חיצוני, גםonForgotten
וגםonAbandoned
מציינים שהמשאב כבר לא נחוץ. אם האובייקט עוקב אחרי עבודה שהתחילה או משאבים שהוקצו ב-onRemembered
, אפשר להתעלם מ-onAbandoned
כי הוא לא יופעל אםonRemembered
יופעל. (I02c36)שם המאפיין TransformedText.transformedText שונה ל-TransformedText.text
- TransformedText כבר לא סיווג נתונים (Ie672a)
הכיתות הבאות כבר לא מוגדרות ככיתות נתונים:
- AnnotatedString
- ParagraphStyle
- SpanStyle
- TextStyle
- FontWeight
- TextDecoration
- TextGeometricTransform
- TextIndex
- TextLayoutResult
- TextLayoutInput (Iaff99)
הוסרו שיטות ניסיוניות של monotonicFrameAnimationClockOf (Ib753f, b/170708374)
הוצאנו משימוש שיטות של קואורדינטות גלובליות ויצרנו שיטות חדשות של קואורדינטות מבוססות חלון. (Iee284)
במקומו צריך להשתמש ב-ImeAction.None ולא ב-ImeAction.NoAction
- צריך להשתמש ב-ImeAction.Default במקום ב-ImeAction.Unspecified (Ie1bcc)
הפונקציה 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)
- הוספנו לרכיב Velocity חלקים ופעולות מתמטיות. (Ib0447)
- שם ההערה @ExperimentalTesting שונה ל-@ExperimentalTestApi כדי לשמור על עקביות עם הערות דומות של ממשקי API ניסיוניים (Ia4502, b/171464963)
- נוספה שיטה ניסיונית של stickyHeader לרכיבים LazyColumn/LazyRow (I0a81d)
- שם הפונקציה Color.useOrElse() שונה ל-Color.takeOrElse() (Ifdcf5)
- TestUiDispatcher יצא משימוש. במקום זאת, צריך להשתמש ב-Dispatchers.Main (Ic171f, b/175385255)
- הוספת Toggle ל-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 כתחליף ל-API של ui-tooling, כדי להשתמש בו לחילוץ מידע על קומפוזיציה. הם ציבוריים אבל לא מיועדים לשימוש מחוץ ל-API של ui-tooling, כי הם מספקים את המידע הגולמי ש-API של ui-tooling מפרש (I31a9c)
בוצע רפקטורינג ב-ShaderBrush כדי ליצור באופן עצלן מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש ב-Brush مفيد להגדרת מעברי צבע שממלאים את כל גבולות הציור של רכיב שאפשר להוסיף לו רכיבים אחרים בזמן ההוספה, בלי להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של פונקציות ליצירת שיפועים לטובת שיטות ליצירת אובייקטים במפעל באובייקט Gradient. (I511fc, b/173066799)
המאפיין Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
Autofill 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
overridesinsertBottomUp()
כדי ליצור עץ מלמטה למעלה ו-insertTopDown()
כדי ליצור עץ מלמעלה למטה. (Icbdc2)נוסף painterResource API לטיפול בטעינה אטומה של אובייקטים של Painter מפורמטים של נכסי רסטר (כמו PNG) או מ-VectorDrawables. הצרכנים לא צריכים יותר לקבוע מראש את סוג הנכס, ויכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter לשימוש ב-Image composables או ב-painter modifiers. (I2c703, b/173818471)
נוספה פונקציית factory בשם buildAnnotatedString כדי ליצור AnnotatedString. פונקציית ה-builder של annotatedString הוצאה משימוש. (Idfe0b)
גרסה 1.0.0-alpha08
2 בדצמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha08
ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha08
יוצאות לאור. גרסה 1.0.0-alpha08 מכילה את הקומיטים האלה.
שינויים ב-API
- הפרמטר
maxLines
הוסר מה-CoreTextField
. אם רוצים להגביל את הגובה של שדה הטקסט לפי מספר השורות, צריך להשתמש במקום זאת ב-BasicTextField
. (Iec002) - שינינו את השיטות
await*TouchSlop()
כך שלא יזהו את הצבעת העכבר כלפי מטה, ושינינו את השם שלהן ל-*OrCancellation
. הוסר גם הצורך בפרמטרorientationLock
. (Ie96e1) - נוספה בדיקת Lint לשמות ולמיקום של פרמטרים של lambda שניתנים להרכבה, כדי לבדוק את העקביות עם ההנחיות של Compose.
בנוסף, העברנו חלק מממשקי ה-API באמצעות
children
כשם של פונקציית ה-lambda האחרונה שלהם אלcontent
, בהתאם לבדיקת ה-lint ולהנחיות. (Iec48e) -
foundation:foundation-text
APIs הועברו אלfoundation:foundation
. מבנה החבילה נשאר ללא שינוי (Id3eb2) - גלאי חדש של תנועות מגע מרובות, כולל כלים לזיהוי סיבוב, שינוי מרחק התצוגה והזזה. (Ic459d)
- גלאי חדש של תנועת גרירה שמשעה את API של קלט מצביע, כולל נעילת כיוון. (Icef25)
- שם המחלקה VectorAsset שונה ל-ImageVector הועברה ושם המחלקה VectorAsset שונה ל-Builder כדי להיות מחלקה פנימית של ImageVector בהתאם להנחיות של מועצת ה-API. הוספנו typealias של VectorAssetBuilder כדי לקשר אל ImageVector.Builder לצורך תאימות. (Icfdc8)
- שינינו את השם של ImageAsset ושל שיטות קשורות ל-ImageBitmap. (Ia2d99)
- העברנו את מאפייני הסמנטיקה של הרכיבים הבסיסיים אל ui (I6f05c)
הוספת ממשקי API לגלילה מבוססת-קורוטינה:
נוספו LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וגם ממשקי API ברמה נמוכה יותר לשליטה בגלילה. ממשקי ה-API האלה מספקים ממשק השהיה לשליטה בגלילה, שמחכה עד שהגלילה מסתיימת לפני שהוא חוזר. (Ie5642)
נוסף פרמטר singeLine ל-BasicTextField, ל-TextField ול-OutlinedTextField. מגדירים את הפרמטר הזה לערך true כדי להפוך את שדה הטקסט לשורה אחת שאפשר לגלול בה אופקית. (I57004, b/168187755)
הוספנו גלאי מחוות להקשה, להקשה כפולה, ללחיצה ארוכה ולסימון של לחיצה באמצעות קלט חדש של מצביע בהשהיה. הוספנו גם כמה כלי עזר, כדי להקל על מפתחים לכתוב גלאי מחוות משלהם. (I00807)
הוספנו את Modifier.focusable ל-foundation. אפשר להשתמש בזה כדי להוסיף התנהגות שניתן להתמקד בה לרכיב, עם סמנטיקה ונגישות נכונות. (I41eb9, b/152525426, b/162865824)
הוסרו ממשקי API שהוצאו משימוש בעבר: הוסר Border, במקומו אפשר להשתמש ב-BorderStroke. הפונקציה Modifier.drawBorder הוסרה. במקומה צריך להשתמש בפונקציה Modifier.border. המאפיין Modifier.gravity הוסר. במקומו צריך להשתמש במאפיין Modifier.align. Stack הוסר, צריך להשתמש ב-Box במקום זאת (I32c2b, b/172470874)
השם של AbsoluteArrangement שונה ל-Arrangement.Absolute. (If26f2)
תיקוני באגים
- העברנו את ממשקי 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) - השדות uptime ו-position של PointerInputData לא יכולים להיות null. (Id468a)
- MaterialTheme מגדיר עכשיו את הצבעים הנכונים של נקודות האחיזה לבחירה ושל הרקע של הבחירה. באפליקציות שאינן Material, אפשר להשתמש ב-AmbientTextSelectionColors באופן ידני כדי להתאים אישית את הצבעים שמשמשים לבחירה. (I1e6f4, b/139320372, b/139320907)
- השם של פרמטר היישור של Box שונה ל-contentAlignment. (I2c957)
- השם של משני offsetPx שונה ל-offset. עכשיו הם מקבלים פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- נוספה הפונקציה WindowManager.isWindowFocused כדי לבדוק אם חלון המארח נמצא במיקוד, ונוסף WindowFocusObserver שמספק קריאה חוזרת (callback) מסוג onWindowFocusChanged. (I53b2a, b/170932874)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- TextFieldValue API עודכן
- made TextFieldValue.composition readonly
- הוסרה חריגה שמופעלת בטווח בחירה לא תקין (I4a675, b/172239032)
- הוצאנו משימוש את הסביבות המקיפות ששמן מסתיים ב-
Ambient
והחלפנו אותן במאפיינים חדשים שמתחילים ב-Ambient, בהתאם להנחיות של סביבות מקיפות אחרות ושל Compose API. (I33440) - נוסף ראפ Typeface ל-Android. אפשר לטעון גופן 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 modifier, שאפשר להשתמש בו כדי לציין את ה-modifier לשינוי הגודל לפי אילוצי הגובה לפני שמנסים את אילוצי הרוחב. (Ie7c43, b/155290593)
- המאפיין DpConstraints שהוצא משימוש הוסר. (I87884, b/171702471)
תיקוני באגים
- הוספנו את המחלקה ScaleFactor
inline כדי לייצג גורמי קנה מידה
לצירים האופקי והאנכי, בלי תלות אחד בשני, כדי לתמוך בתרחישי שימוש של שינוי קנה מידה לא אחיד.
- נוספה שיטת computeScaleFactor אל ContentScale
- נוסף ContentScale.FillBounds כדי לבצע שינוי גודל לא אחיד כדי להרחיב את גבולות ה-src כך שימלאו את היעד.
- נוספו שיטות אופרטור לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
- (Ic96a6, b/172291582)
- הפונקציה captureToBitmap הועברה אל captureToImage. (I86385)
- סימון CoreText כ-@InternalTextApi. במקום זאת, צריך להשתמש ב-BasicText. (I6aaeb)
- שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
- העברנו את KeyboardType ו-ImeAction אל KeyboardOptions (I910ce)
- CoreTextField סומן כ- @InternalTextApi. צריך להשתמש ב-BasicTextField במקום זאת (Ie2469)
- ההערה ExperimentalSubcomposeLayoutApi הוסרה. מעכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
- הצגת המודול ui-test-junit4 (Ib91f8)
- ה-API של הסמלים עודכן כך שיקבל Color.Unspecified כצבע גוון אפשרי, שיצייר את הנכס או את הכלי שסופקו ללא ColorFilter. בעבר, ניסיונות להתעלם מהגוון באמצעות Color.Unspecified היו גורמים להוספת גוון עם צבע שקוף, ובסופו של דבר לא היה מוצג כלום. (I049e2, b/171624632)
- האובייקט MeasureResult הועבר מחוץ ל-MeasureScope. (Ibf96d, b/171184002)
- כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui אל androidx.compose.layout.ui. (I0fa98, b/170475424)
- androidx.ui.test עבר אל androidx.compose.ui.test (I9ffdb)
- הפונקציות FirstBaseline ו-LastBaseline הועברו לחבילה androidx.compose.ui.layout (Ied2e7)
- נוסף SelectionContainer בלי הקריאה החוזרת (Ibfadb)
- הוספת בדיקות למיקומים של SelectionHandles ב-SelectionContainer. (Ie93db)
- נוספה אפשרות לתיקון אוטומטי במקלדת IME (I57b8d)
גרסה 1.0.0-alpha06
28 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha06
, androidx.compose.foundation:foundation-layout:1.0.0-alpha06
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha06
יוצאות. גרסה 1.0.0-alpha06 מכילה את הקומיטים האלה.
שינויים ב-API
- androidx.compose.foundation.Icon הועבר אל androidx.compose.material.Icon. אפשר גם להשתמש ברכיב Image / Modifier.paint() עם Painter אם לא רוצים להשתמש בספריית Material. (I9f622)
- נוספה interactionState ל-Modifier.scrollable, ScrollableColumn ול-LazyColumnFor (I81566, b/169509805)
- המאפיין alignByBaseline נוסף ל-RowScope, והשם של alignWithSiblings שונה ל-alignBy (I06503, b/170628732)
- התיבה הפכה לפונקציה מוטמעת. (Ibce0c, b/155056091)
- נוספה התכונה maxLines ל-CoreTextField (Ibee58, b/143687793)
- נוספה גלישת שורות ל-CoreTextField. (I21a4b)
תיקוני באגים
- הוצאנו משימוש את VectorPainter לטובת rememberVectorPainter כדי לציין בצורה טובה יותר שה-API הניתן להרכבה משתמש באופן פנימי ב-remember כדי לשמור נתונים לאורך זמן בהרכבות. (Ifda43)
- מפעילים מעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
- נוספה אפשרות למקלדת עם שורה אחת ל-CoreTextField (I72e6d)
- שינינו את השם של Radius API ל-CornerRadius כדי להבהיר טוב יותר את אופן השימוש בו ב-Compose. עדכנו את התיעוד כדי לציין שרדיוסים שליליים של פינות מוצמדים לאפס. (I130c7, b/168762961)
- נוספה אפשרות לציין פרטים של הכלי לבדיקת מודעות במאפיין modifier מורכב (Idee08, b/163494569)
- נוספה אפשרות IME של KeyboardCapitalization (I8ac38)
- תיקון המיקום של נקודת האחיזה לשינוי הסדר בפריסה מימין לשמאל. (I6e1e0)
- שינוי שובר תאימות: הוסר ערך ההחזרה מ-PointerInputFilter.onPointerEvent(...) כי הערך היחיד שאפשר לשנות באירועי הצבעה הוא נתוני הצריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר לשנות את נתוני הצריכה של PointerEvents שמועברים. (I6acd0)
- הוספנו את האפשרות 'בחירת הכול' לתפריט הבחירה (Ief02b)
גרסה 1.0.0-alpha05
14 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha05
יוצאות. גרסה 1.0.0-alpha05 מכילה את הקומיטים האלה.
שינויים ב-API
- CoreTextField תומך עכשיו בפונקציונליות של סמן (Id23aa)
הוצאה משימוש של ממשקי ה-API contentColor() ו-currentTextStyle(), והחלפתם בממשקי ה-API AmbientContentColor ו-AmbientTextStyle בהתאמה. אפשר לגשת לערך הנוכחי באמצעות
.current
במאפיין הסביבה, כמו בכל סביבה אחרת. השינוי הזה בוצע כדי לשמור על עקביות ולמנוע מצב שבו יש כמה דרכים להשיג את אותה המטרה. בנוסף, שמות של כמה מאפייני סביבה שונו כדי לתאר טוב יותר את המטרה שלהם, באופן הבא:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
תיקוני באגים
- במסגרת התהליך של סטנדרטיזציה של ערכי sentinel עבור מחלקות מוטבעות, שם המחלקה Color.Unset שונה ל-Color.Unspecified כדי לשמור על עקביות עם מחלקות מוטבעות אחרות (I97611, b/169797763).
- הוספנו פעולות נגישות להעתקה, הדבקה וגזירה (I6db4f)
- הוצג TextOverflow.None. כשהערך של overflow הוא None, הרכיב Text לא יטפל יותר בגלישה, וידווח על הגודל בפועל שלו לרכיב LayoutNode. (I175c9, b/158830170)
- הפרמטרים של Size.Unspecified עודכנו ל-Float.NaN במקום ל-Float.POSITIVE_INFINITY. עודכנו ההטמעות של Painter כדי לבדוק גם את Size.Unspecified וגם את הגדלים הלא סופיים. (I95a7e)
- נוסף מודול Paging Compose ושילוב של החלפת דפים (Ib85da)
- שינוי LazyListScope כדי לקבל ערכים שניתנים לאיפוס (I1765b)
- השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier, והשם של onPositioned() שונה ל-onGloballyPositioned(). (I587e8, b/169083903)
- נוספו דוגמאות ל-LazyColumn/Row (Idc16d)
- תיקון של השיטות items ו-itemsIndexed כדי לאפשר emptyList (I06647)
- הוספת DSL להגדרת פרטי הבודק (Ic9a22)
- מעבירים את LongPress אל Text. (Iff2bc)
- השבתה של בחירה בטקסט, והדגמה. (Ie7e97)
- תמיכה בהמרת AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
- בוצעה הסרה של
PointerInputFilter.onPointerInput(...)
. במקומה, צריך להשתמש ב-PointerInputFilter.onPointerEvent(...)
. (I6f04a)
גרסה 1.0.0-alpha04
1 באוקטובר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha04
, androidx.compose.foundation:foundation-layout:1.0.0-alpha04
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha04
יוצאות. גרסה 1.0.0-alpha04 מכילה את הקומיטים האלה.
שינויים ב-API
- השם של Stack שונה ל-Box. ה-Box הקיים ב-foundation.Box יוצא משימוש לטובת ה-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את רכיבי הצאצא אחד מעל השני כשיש לו כמה רכיבי צאצא – זה שונה מ-Box הקודם, שהתנהג בצורה דומה ל-Column. (I94893, b/167680279)
- הפרמטרים של קישוט התיבה הוצאו משימוש. אם רוצים להוסיף קישוטים או ריווח לתיבה, צריך להשתמש במקום זאת בשינויים (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- מוסיפים מחלקה חדשה של LazyListState. כך אפשר לצפות במיקום הגלילה של הרכיבים LazyRow ו-LazyColumn ולשלוט בו. אפשר ליצור מופעים באמצעות rememberLazyListState() ולהעביר אותם לפרמטר state של הרכיב. בגרסה הראשונית הזו אפשר לראות את הפריט הראשון שגלוי ואת ההיסטים. (Ic7cb7, b/159307669)
- עכשיו אפשר לשמור את המיקום ברשימה ואת היסט הגלילה ולשחזר אותם כשיוצרים מחדש פעילות (Ie045f, b/166589058)
- הוספת פעולה של לחיצה ארוכה (I6281b, b/156468846)
- נוסף כלי השירות MutatorMutex כדי לשמור על מוטטור יחיד של מצב משותף לאורך זמן ולבטל מוטטורים מתנגשים לפי עדיפות (I3f975)
- הוספת ההערה @VisibleForTesting ל-rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled ו-textInputServiceFactory, כדי להפוך אותם ל-API פנימי ולהסתיר את ה-kdoc שלהם (I554eb, b/168308412)
- הוסר הפרמטר inlineContent מהרכיב Text עם קלט String. הוא לא ישמש כי inlineContent חייב לעבוד עם AnnotatedString. (Ief403)
- הוסרו ממשקי ה-API המותאמים אישית של סידור החלונות שהוצאו משימוש. (Ic576d, b/168297922, b/168297923)
- הפרמטר
unbounded
נוסף ל-modifiers של wrapContentSize, שמאפשרים למדוד את רכיב הפריסה עם מגבלות מקסימליות אינסופיות. (I77951, b/158559319) - מנענו ייבוא סטטי של תוכן בהיקפי פריסה (לדוגמה, alignWithSiblings ב-RowScope). במקום זאת, צריך להשתמש בחלופה של היקף מפורש:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
תיקוני באגים
- עודכנו הרבה ממשקי API של גרפיקה
- ממשקי ה-API של שינוי קנה מידה וסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים ממשיים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
- הוסרו השיטות Rect.expandToInclude ו-Rect.join
- עודכן התיעוד של הרדיוס כך שיכלול גם צורה אובלית בנוסף לצורה אליפטית
- הוספנו תיעוד שמציין שאסור לקרוא ישירות לבנאי הציבורי של מחלקת Radius מוטבעת, אלא ליצור מופעים של אובייקטים של Radius באמצעות בנאי הפונקציות שלהם
- הוסרו ממשקי RoundRect API לשאילתות topRight, bottomRight, bottomCenter וכו'.
- הוצא משימוש Rect.shift לטובת Rect.translate
- הוסרו ממשקי ה-API RoundRect.grow ו-Rect.shrink
- השם של RoundRect.outerRect שונה ל-Rect.boundingRect
- הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
- השם של RoundRect.longestSide שונה ל-RoundRect.maxDimension
- השם של RoundRect.shortestSide שונה ל-RoundRect.minDimension
- הפונקציה RoundRect.center שונתה והפכה למאפיין במקום לפונקציה
- העדכון של ה-constructor של RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי הרדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם מקור ב-0,0
- הוספנו API להשמדה ל-Radius
- העברנו פונקציות שונות של התוסף RoundRect להיות מאפיינים במקום
- (I8f5c7, b/168762961)
- בוצעו אופטימיזציות של הביצועים לגלילה ב-LazyColumnFor/LazyRowFor, כך שלא מתבצעות קומפוזיציות מחדש מיותרות במהלך כל גלילה (I64f65, b/168293643, b/167972292, b/165028371).
- תוקן קראש ב-LazyColumnFor/LazyRowFor אחרי גלילה ואז שינוי פריטים, והוטמעה גלילה אוטומטית למעלה כשפריט שהיה גלוי קודם הוסר, כדי שלא יוצגו יותר רווחים ריקים בסוף (I220ab, b/161480164, b/167855468)
- אסור יותר להטמיע רכיבים עם אפשרות גלילה באותו כיוון, כמו ScrollableContainer ו-LazyColumnFor. התכונה הזו אף פעם לא נתמכה, והיא גרמה לבעיות ב-Fling ובכל העצלנות של יצירת הפריטים של LazyColumnFor (I6e101)
- עודכנו הרבה ממשקי API של גרפיקה
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת (callback) ומוסרת אחרי שהקריאה החוזרת מופעלת.
- עדכון במסמכי התיעוד של clipPath כדי להפנות אל Path במקום אל מלבן מעוגל
- תוקן הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
- השם של DrawScope.drawCanvas שונה ל-drawIntoCanvas והוסר פרמטר הגודל
- שמות הפרמטרים dx/dy בשיטת inset שונו ל-horizontal ו-vertical
- נוספה עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
- הסרנו את התיעוד בנושא שיטת ההזחה, שצוין בו שההזחה תחול על כל 4 הצדדים
- עדכון התיעוד של המחלקה Rect
- עדכון ההערות על פרמטרים של Rect כדי להתאים לסגנון kdoc
- הוסרו Rect.join ו-Rect.expandToInclude
- נוצר עומס יתר עבור Rect.translate(offset) ו-Rect.shift הוצא משימוש
- (If086a, b/167737376)
- מוסיפים את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
- כדאי להגדיר את TextRange כ-inline כדי להימנע מיצירת אובייקט. (Id034b)
- המאפיין ParagraphConstraints הוסר. הרוחב מועבר עכשיו ישירות לפסקה. (Ica712)
גרסה 1.0.0-alpha03
16 בספטמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha03
, androidx.compose.foundation:foundation-layout:1.0.0-alpha03
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha03
יוצאות. גרסה 1.0.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- השם של InnerPadding שונה ל-PaddingValues. (I195f1, b/167389171)
- השימוש ב-gravity שונה באופן עקבי ל-align או ל-alignment ב-APIs של פריסות. (I2421a, b/164077038)
- נוסף פרמטר יישור לרכיב Stack, שמאפשר לציין את יישור ברירת המחדל לכל רכיבי הצאצא של Stack. (Ie80ca, b/164085265)
תיקוני באגים
- הוצאנו משימוש את DpConstraints ואת ממשקי ה-API שמשתמשים בו. (I90cdb, b/167389835)
- הפרמטרים
minWidth
ו-maxWidth
שלwidthIn
שונו ל-min
ו-max
. באופן דומה, לגביpreferredWidthIn
,heightIn
,preferredHeightIn
. (I0e5e1, b/167389544) - נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
- תיקנו את החישובים של הגודל והמיקום ב-GestureScope, שגרמו בין היתר ליצירה של מחוות החלקה לא תקינות (Iaf358, b/166589947)
- הועברו
createAndroidComposeRule
וAndroidInputDispatcher
מandroidx.ui.test.android
אלandroidx.ui.test
(Idef08, b/164060572)
גרסה 1.0.0-alpha02
2 בספטמבר 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha02
, androidx.compose.foundation:foundation-layout:1.0.0-alpha02
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha02
יוצאות. גרסה 1.0.0-alpha02 מכילה את הקומיטים האלה.
תיקוני באגים
- הכיתוב TestUiDispatcher מסומן כניסיוני (Iae99d, b/161247083)
נוסף
ManualFrameClock.hasAwaiters
כדי לראות אם יש משהו שממתין למסגרת מהשעון הזה;runWithManualClock
כתחליף ל-runBlocking
כשמריצים בדיקות שדורשות ManualFrameClock;TestUiDispatcher.Main
שמאפשר גישה קלה לשולח הראשי של ממשק המשתמש בבדיקות.לדוגמה:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
(I0a85b, b/161247083)
גרסה 1.0.0-alpha01
26 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:1.0.0-alpha01
, androidx.compose.foundation:foundation-layout:1.0.0-alpha01
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha01
יוצאות. גרסה 1.0.0-alpha01 מכילה את הקומיטים האלה.
גרסה 0.1.0-dev
גרסה 0.1.0-dev17
19 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev17
, androidx.compose.foundation:foundation-layout:0.1.0-dev17
ו-androidx.compose.foundation:foundation-text:0.1.0-dev17
יוצאות. גרסה 0.1.0-dev17 מכילה את הקומיטים האלה.
שינויים ב-API
- הסידור spacedBy נוסף לרכיבים Row ו-Column כדי לאפשר מיקום של רכיבי פריסה צאצאים עם ריווח קבוע. נוסף גם רכיב ה-Arrangment המותאם, כדי לאפשר מיקום של רכיבי פריסה ברמת צאצא אחד ליד השני, והתאמה בשורה או בעמודה בהתאם ל-Alignment. השיטות הקודמות 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 משנה (modifier) מסוג fillMax* שסומן כהוצאה משימוש, כי הוא מקשה על הוספה נכונה של משנים כאלה לפריטים שהם לא צאצאים ישירים של 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, והוצאו משימוש בנאים של פונקציות RRect (I5d325).
- הוסרו הפונקציות onChildPositioned ו-OnChildPositionedModifier. מפתחים צריכים להשתמש ב-onPositioned וב-OnPositionedModifier בפריסת הצאצא במקום זאת. (I4522e, b/162109766)
- IntSize היא עכשיו מחלקה מוטבעת (I2bf42)
- לחיצה ארוכה על האזור הריק כדי לערוך. (Ib1e5b)
- הסתרת סרגל הכלים הצף אחרי הקשה על הטקסט. (If4525)
- הסתרת סרגל הכלים הצף כשמעדכנים את הבחירה. (I8444c)
- מבטלים את הסימון של האפשרות 'מתי לטשטש'. (I781a2)
גרסה 0.1.0-dev16
5 באוגוסט 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev16
, androidx.compose.foundation:foundation-layout:0.1.0-dev16
ו-androidx.compose.foundation:foundation-text:0.1.0-dev16
יוצאות. גרסה 0.1.0-dev16 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו את LazyItemScope לפרמטר itemContent של רשימות Lazy. הוא מספק משנים למילוי הגודל המקסימלי של הרכיב ההורה, וכך פותר את מקרה השימוש שבו הפריט צריך למלא את אזור התצוגה והמשנה הרגיל Modifier.fillMaxSize() לא פועל כי הפריט נמדד עם אילוצי אינסוף. (Ibd3b2, b/162248854)
- העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
- נוספו LazyColumnForIndexed/LazyRowForIndexed – גרסאות של LazyColumnFor/LazyRowFor שכוללות גם אינדקס וגם פריט ב-itemCallback. היא שימושית כשצריך לדעת את האינדקס הנוכחי בנוסף לפריט הנוכחי. (I65ff3)
- השם של Modifier.deternimateProgress השתנה ל-Modifier.progressSemantics (I9c0b4)
- השם של LazyColumnItems שונה ל-LazyColumnFor. השם של LazyRowItems שונה ל-LazyRowFor (I84f84)
- מומלץ להוסיף סימנים או הערות. (I66b20)
- חבילת foundation.shape.corner שוטחה ל-foundation.share (I46491, b/161887429)
- נוסף פרמטר כוח משיכה של ציר חוצה לרכיבים LazyRowItems/LazyColumnItems. רכיבי LazyRowItems/LazyColumnItems תומכים עכשיו בהתנהגות של גלישת תוכן. (Ib39fc)
- השם של ZoomableState שונה ל-ZoomableController. נוספה תמיכה בעקומות מותאמות אישית ל-smoothScale. נוספה פונקציונליות של
enabled
ו-onZoomStarted
(If8b8f) - השם של Material FilledTextField שונה ל-TextField, והשם של TextField הבסיסי שונה ל-BaseTextField, כדי שיהיה קל יותר למצוא את ה-API הרצוי והפשוט ביותר ולהשתמש בו (Ia6242, b/155482676)
- הסרנו את AdapterList שהוצא משימוש בעבר. שימוש ב-LazyColumnItems במקום זאת (I12b9b)
- השם של Modifier.drawBackground שונה ל-Modifier.background (I13677)
- ה-DSL הישן של ConstraintLayout הוסר. השם של ConstraintSet2 השתנה ל-ConstraintSet. (If58d1, b/162450908)
- נוספו הפונקציות Modifier.absoluteOffset() ו-Modifier.absoluteOffsetPx(). בניגוד למגדירי היסט, מגדירי היסט מוחלט לא ישתקפו אוטומטית בהקשר של כתיבה מימין לשמאל (I3aa21)
- הפונקציות
Row
ו-Column
הן עכשיו פונקציות מוטמעות, מה שמפחית באופן משמעותי את התקורה של השימוש בהן. (I75c10)
תיקוני באגים
- טיפלנו בבעיות נרחבות ב-API (I077bc)
- הסרה של ממשק OffsetBase שלא בשימוש
- התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
- שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
- העברנו את השיטה nativeCanvas מממשק Canvas כדי לתמוך בצרכנים שרוצים ליצור מופעי Canvas משלהם
- נוצר מחלקה של stub EmptyCanvas כדי לבצע refactoring של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null
- שינינו את השם של סוגי ה-enum ClipOp ל-Pascal Case
- השמות של הערכים המנויים (enum) של FilterQuality שונו ל-Pascal Case
- שינינו את השם של סוגי ה-enum של StrokeJoin ל-Pascal Case
- שמות הערכים של PointMode שונו ל-Pascal Case
- שינוי השם של סוגי ה-enum PaintingStyle ל-Pascal Case
- שמות ה-enum של PathFillType שונו ל-Pascal Case
- השמות של סוגי ה-enum של StrokeCap שונו ל-Pascal Case
- היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
- העדכון של DrawScope לא מאפשר יותר שימוש בהעברת הרשאות עצלה לפרמטרים הפנימיים fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עדכון של המחלקה Outline כך שתכלול הערות מסוג @Immutable
- העדכון של PathNode כולל הערות @Immutable לכל הוראת נתיב
- בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי compose כבר מטפל בהן
- הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
- עדכנו את מחלקות המברשות ואת בנאי הפונקציות באמצעות ממשקי API של @Immutable ו- @Stable
- העדכון של ספירת VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה את פרמטרים של קו המכחול בציור אם הם השתנו
- העדכון של Size כולל הוספה של API לפירוק מבנה, שינוי השם של UnspecifiedSize ל-Unspecified והסרה של שיטות שלא נמצאות בשימוש
נוסף MonotonicFrameAnimationClock שמאפשר להשתמש ב-MonotonicFrameClock כ-AnimationClockObservable כדי לגשר על הפער בין השעונים החדשים שמבוססים על קורוטינות לבין ממשקי API שעדיין משתמשים בשעונים הישנים שמבוססים על קריאה חוזרת (callback).
השווה-ערך של MonotonicFrameClock ל-ManualAnimationClock הוא עכשיו ManualFrameClock. (I111c7, b/161247083)
בוצעה הסרה של
SemanticsNodeInteraction.performPartialGesture
. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture
. (Id9b62)שינית את השם של
SemanticsNodeInteraction.getBoundsInRoot()
ל-SemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf, b/161336532)ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. המאפיינים Modifier.rtl ו-Modifier.ltr הוסרו. (I080b3)
ה-API Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. השימוש במילה 'אז' מעביר מסר חזק יותר של סדר, וגם אוסר על הקלדת
Modifier.padding().background() + anotherModifier
, מה ששובר את הרצף ומקשה על הקריאה (Iedd58, b/161529964)נוספו
isFocused()
ו-isNotFocused()
SemanticsMatcher. (I0b760)התבצע שינוי של RemeasurementModifier. היא מאפשרת למשתמשים למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל לא צריך להשתמש בה כי המדידה מחדש והפריסה מחדש מתבצעות באופן אוטומטי, אבל אנחנו משתמשים בה בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
הפונקציה isSystemInDarkTheme תמיד מתייחסת להגדרת העיצוב הכהה בכל המערכת, ומתעלמת מסטטוס החיסכון באנרגיה לפני Android Q, בהתאם להנחיות העדכניות. (I0c10c)
המאפיין OnChildPositioned הוצא משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, b/162109766)
השם של AndroidComposeTestRule שונה ל-createAndroidComposeRule. (I70aaf)
הוספת פעולת נגישות לקבלת TextLayoutResult (I9d6e6)
גרסה 0.1.0-dev15
22 ביולי 2020
הגרסאות androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
ו-androidx.compose.foundation:foundation-text:0.1.0-dev15
יוצאות. גרסה 0.1.0-dev15 מכילה את הקומיטים האלה.
כדי להשתמש בגרסה 0.1.0-dev15
של Compose, צריך:
עדכון של יחסי תלות
- כדי להשתמש בגרסה
0.1.0-dev15
של Compose, צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.
שינויים ב-API
- בדומה לפרמטר החדש ב-ScrollableColumn/ScrollableRow, גם ל-LazyColumnItems/LazyRowItems יש עכשיו פרמטר contentPadding שמאפשר להוסיף ריווח לתוכן אחרי שהוא נחתך. אי אפשר לעשות את זה רק באמצעות פרמטר modifier. בנוסף, אפשר להוסיף ריווח רק לפני הפריט הראשון או אחרי הפריט האחרון. (Ibc24e)
- הקריאה החוזרת (callback) onFocusChange בשדות טקסט שונתה ל-onFocusChanged (Ida4a1)
- הוצאנו משימוש את הרכיבים VerticalScroller ו-HoriziontalScroller. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליצור חוויה מובנית עם התנהגות ופרמטרים של Column/Row, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב שלכם. באופן דומה, הוצאנו משימוש את ScrollerPosition לטובת ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- בוצעו שינויים בממשקי ה-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)
- ה-API androidx.ui.foundation.TextFieldValue ו-androidx.ui.input.EditorValue הוצא משימוש. גם רכיבי ה-TextField, FilledTextField ו-CoreTextField הניתנים להרכבה שמשתמשים בסוג הזה הוצאו משימוש. במקום זאת, צריך להשתמש ב-androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- השימוש ב-IntPx הוחלף ב-Int. השימוש ב-IntPxPosition הוחלף ב-IntOffset. המאפיין IntPxSize הוחלף במאפיין IntSize. (Ib7b44)
- androidx.ui.foundation.shape.RectangleShape הוסר; צריך להשתמש ב-androidx.ui.graphics.RectangleShape (I94939, b/154507984)
- כדי לאחד את מספר הכיתות שמשמשות לייצוג מידע על גודל, צריך להשתמש בכיתת הגודל במקום ב-PxSize. היתרון של שימוש במחלקה מוטבעת הוא שאפשר להשתמש בערך ארוך כדי לארוז 2 ערכים מסוג float שמייצגים רוחב וגובה. (Ic0191)
- כדי לצמצם את מספר המחלקות שמשמשות לייצוג נתוני מיקום, מומלץ להשתמש במחלקה Offset במקום ב-PxPosition. השימוש במחלקה מוטבעת מאפשר לנצל את היתרונות של long כדי לארוז 2 ערכי float לייצוג של היסטים x ו-y שמיוצגים כערכי float. (I3ad98)
- נוסף Modifier.zoomable לפונקציונליות של צביטה לזום (Id5d63)
- הוצאנו משימוש את הרכיב שאפשר להפעיל ולהשבית. מומלץ להשתמש ב-Modifier.toggleable במקום זאת (I35220, b/157642842)
- התג MutuallyExclusiveSetItem הוצא משימוש. במקומו צריך להשתמש ב-Modifier.selectable. (I02b47, b/157642842)
- התג TestTag הוצא משימוש. במקומו, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)
- נוסף פרמטר fontWeight לרכיב Text, שלא נוסף בטעות קודם לכן (I56937)
- החלפנו את השימוש במחלקה Px בכמה מחלקות של Compose כחלק ממאמץ רחב של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02).
- רכיב VerticalScroller מספק עכשיו Column מחוץ לקופסה. הקומפוננטה HorizontalScroller מספקת עכשיו Row מחוץ לקופסה. (Ieca5d, b/157020670)
- הוחלף השימוש במחלקת Px במחלקות שונות של Compose כחלק ממאמץ רחב היקף של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)
- Modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג לחיצה/גרירה/אינדיקציה אחרת ברכיבים אינטראקטיביים מותאמים אישית (I8425f, b/155287131)
- רכיבי VerticalScroller ו-HorizontalScroller תומכים עכשיו בגלילה הפוכה אם המאפיין isReversed מוגדר ב-ScrollerPosition (I953bd)
- תמיכה בהוספת קומפוזיציות לפריסת טקסט. (I1373c)
- איחדנו את ההטמעות של CanvasScope, כך שעכשיו יש רק DrawScope ו-ContentDrawScope. שינינו את השם של CanvasScope ל-DrawScope. בוצע עדכון ב-DrawScope כדי להטמיע את הממשק Density ולספק את LayoutDirection מחלקת המשנה DrawScope נמחקה ב-ContentDrawScope בוצע עדכון ב-Painter וב-PainterModifier כדי שלא יחזיקו יותר במאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)
- הוסר ה-API DrawBackground שיצא משימוש לטובת ממשקי ה-API של התוסף drawBackground ב-Modifier. בוצע רפקטורינג של ההטמעות של color, brush ו-paint drawBackground כדי לצמצם את נתיבי הקוד, וגם כדי להסיר את הדרישה ליצירת Modifier כחלק מהקומפוזיציה. (I0343a)
- בוצע עדכון של ממשקי API ברמה גבוהה יותר של Compose, שחושפים Canvas, כדי לחשוף CanvasScope במקום זאת. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה של התוסף drawCanvas, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
- רכיבי HorizontalScroller ו-VerticalScroller לא משחזרים את מיקום הגלילה שלהם באמצעות מצב מופע שמור. (Ia0fae, b/155075048)
- ה-API FocusManagerAmbient הוסר. משתמשים ב-FocusModifier.requestFocus כדי לקבל את המיקוד. (Ic4826)
- הסרנו באופן זמני את פריסת הטבלה עד שנוכל להחזיר אותה עם API מעודכן. (Id88a7)
יצרנו את CanvasScope API שעוטף אובייקט Canvas כדי לחשוף משטח API לציור דקלרטיבי ללא מצב. הטרנספורמציות מוגבלות להיקף המקלט שלהן, וגם פרטי הגודל מוגבלים לגבולות התואמים של התוסף. הוא לא מחייב את הצרכן לשמור אובייקט משלו של מצב הצביעה כדי להגדיר פעולות ציור.
נוספה האפליקציה CanvasScopeSample, ואפליקציית ההדגמה עודכנה כך שתכלול הדגמה של גרפיקה הצהרתית (Ifd86d)
הוסר ColoredRect. במקום זאת, משתמשים ב-Box עם modifier של drawBackground (I983c7, b/152753731)
הוספת התאמה אישית של צבע הסמן ל-TextField (I6e33f)
עכשיו אפשר להסתיר או להציג את המקלדת הווירטואלית באמצעות SoftwareKeyboardController, שמועבר על ידי הקריאה החוזרת (callback) onTextInputStarted (I8dc44, b/151860051)
השימוש ב-TextFieldValue עם TextField יכול לשרוד יצירה מחדש של פעילות כשמשתמשים בו כך:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce, b/155075724)הפונקציה מוסיפה פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי כדי להעביר מספר קטן של פרמטרים כאלה, כמו
Text(style = TextStyle(textAlign = TextAlign.Center))
, עכשיו אתם יכולים פשוט לספק את הפרמטרים ישירות:Text(textAlign = TextAlign.Center)
(I82768)החלפנו את הפרמטר focusIdentifier של CoreTextField/TextField ב-FocusNode כדי לשלב אותו עם מערכת המשנה של המיקוד. (I7ea48)
עדכון של TextField – בממד האופקי, הוא יתפוס את כל המקום שזמין לו (Ib08df, b/154638552)
נוספו InteractionState ו-Interaction, כדי להקל על יצירת רכיבים שמגיבים לשינויים במצב ממשק המשתמש, כמו לחיצה וגרירה (Icfe25, b/152525426)
RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null (Iabaa7)
עדכון של TextField API – מיזוג של קריאות חוזרות (callback) של onFocus ו-onBlur לקריאה חוזרת יחידה של onFocusChange(Boolean) עם פרמטר (I66cd3)
שינינו את השם של ScaleFit ל-ContentScale העברנו את ContentScale מהמודול ui-graphics למודול ui-core כדי שיהיה באותו מודול כמו Alignment API. השם של FillMaxDimension שונה ל-Crop השם של FillMinDimension שונה ל-Fit השם של Fit שונה ל-Inside כדי להתאים יותר ל-ImageView.ScaleType equivalents נוספה תיעוד שמציין שהשילוב של Crop ו-Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_CROP, ו-Fit שמשמש עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER. בנוסף, Inside שמשמש עם Alignment.Center משיג את אותה תוצאה כמו ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
הוסרה הפונקציה ProvideContentColor, במקומה אפשר להשתמש ישירות בפונקציה ContentColorAmbient עם
Providers
(Iee942)הוספת פרמטר צבע לטקסט, שמאפשר לבטל את הצבע של סגנון הטקסט בלי צורך למזג אותו ידנית עם הסגנון שמופיע בערכת נושא. (I41a66)
שיפור DrawModifier API:
- הגדרנו את היקף המקבל של draw() כ-ContentDrawScope
- הסרה של כל הפרמטרים ב-draw()
- ל-DrawScope יש את אותו ממשק כמו ל-CanvasScope הקודם
- ל-ContentDrawScope יש שיטה drawContent() (Ibaced, b/152919067)
התכונה ColoredRect הוצאה משימוש. במקום זאת, אתם צריכים להשתמש ב-
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731)מערכת העיצוב של הצורות מתעדכנת בהתאם למפרט של Material Design. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות לשימוש ברוב הרכיבים (Ifb4d1)
הוחלף אופרטור עם משנה בפונקציות של תוסף factory (I225e4)
המאפיין Draggable הועבר לשינוי (Id9b16, b/151959544)
הועבר
Text
לחבילה androidx.ui.foundation, מ-androidx.ui.core. (I87ce5)הוספת הפרמטר
enabled
לרכיבים Checkbox, Switch ו-Toggleable (I41c16)האפשרות 'הזזה' היא עכשיו 'שינוי משך'. Clickable עדיין לא הומר, אבל השימוש המומלץ הוא
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)הוספנו את VectorPainter API כדי להחליף את subcomposition API הקיים לגרפיקה וקטורית. התוצאה של subcomposition היא אובייקט VectorPainter במקום DrawModifier. הוצאנו משימוש את רכיבי ה-DrawVector הקודמים לטובת VectorPainter.
שינוי השם של
Image(Painter)
API ל-PaintBox(Painter)
נוצר רכיב Vector שאפשר להוסיף לאפליקציה, שמתנהג כמו רכיב Image, אבל עם VectorAsset במקום ImageAsset (I9af9a, b/149030271)נוצר קומפוזיציה של תמונה כדי לטפל בגודל/בפריסה בנוסף לציור של ImageAsset נתון במסך. רכיב ה-Composable הזה תומך גם בציור של כל מופע Painter שרירותי בהתאם לגודל המובנה שלו, וגם בגודל קבוע או בגודל מינימלי נתון (Ibcc8f)
לרכיבים Button, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabled
נפרד. השמות של חלק מהפרמטרים ב-Button השתנו או שהסדר שלהם השתנה. (I54b5a)שם המחלקה Image שונה ל-ImageAsset כדי להבדיל טוב יותר בין נתוני התמונה לבין רכיב ה-Image שיופיע בהמשך, שמשמש להשתתפות בפריסה ובהצגת תוכן.
נוצרה שיטת הרחבה ב-android.graphics.Bitmap,
Bitmap.asImageAsset()
, כדי ליצור מופע של ImageAsset ששימושי לשילוב של פיתוח אפליקציות מסורתיות ל-Android עם מסגרת ה-Compose. (Id5bbd)הקומפוזיציה DrawImage הוסרה. שימוש ב-ImagePainter כדי לצייר תמונה בפריסה קיימת, או ב-SimpleImage כדי להוסיף תמונה שתופסת מקום (I595e1, b/149827027)
רכיב ה-Stack תומך בכיווניות מימין לשמאל (Ic9e00)
הוספנו את הרכיבים Icon, IconButton ו-IconToggleButton והסרנו את הרכיב AppBarIcon. אפשר להחליף ישירות את השימושים הקיימים ב-AppBarIcon ב-IconButton, ועכשיו יהיה להם את משטח המגע הנכון. בקטע הדוגמאות אפשר למצוא מידע על אופן השימוש, ובקטע הסמלים אפשר למצוא את סמלי Material שסופקו ואפשר להשתמש בהם ישירות עם הרכיבים האלה. (I96849)
הקומפוזיציה DrawShape הוסרה. במקום זאת, צריך להשתמש ב-DrawBackground modifier. (I7ceb2)
נוסף AdapterList, רכיב של רשימה עם אפשרות גלילה שמרכיב ומסדר רק את הפריטים הגלויים. בעיות ידועות כרגע כוללות את העובדה שהפריסה היא אנכית בלבד, ושהיא לא מטפלת באופן מלא בכל המקרים של שינויים ברכיבי הצאצא שלה. (Ib351b)
נוסף רכיב עם אפשרות גלילה, שמאפשר ליצור רכיבי גלילה או רשימות בהתאמה אישית (I5fd37)
שינוי השם של הרקע ל-DrawBackground והגדרתו כרקע שזוכרים כברירת מחדל (Ia0bd3)
הוספת פרמטרים של שוליים פנימיים, גבול, צורה ורקע לתיבה (I05027, b/148147281)
נוסף רכיב Canvas. הקומפוזיציה הזו תופסת נפח מסוים (שמסופק על ידי המשתמש) ומאפשרת לכם לצייר באמצעות CanvasScope (I0d622)
שינוי השם של העיבוד
Border
ל-DrawBorder
(I8ffcc)נוסף רכיב Box לשילוב פריסה וציור של פונקציונליות נפוצה. (I6e2a7)
הגלילה מתבצעת עכשיו כמו במכשיר Android. (I922af, b/147493715)
הוחלף ב-DrawBorder לטובת Border Modifier (Id335a)
השם של Modifier.tag שונה ל-Modifier.layoutId כדי למנוע בלבול עם Modifier.testTag. (I995f0)
הפרמטר percent כשיוצרים קווי הנחיה של ConstraintLayout שונה ל-fraction. (Ida2db)
הוספנו תמיכה בשוליים של מחסומי ConstraintLayout. (I47ffe)
תוקנה התמיכה בפריסה מימין לשמאל ב-ConstraintLayout. נוספו ממשקי API שלא תומכים ב-RTL. (I3b1c7)
נוסף DSL חדש ל-ConstraintLayout. פרטים נוספים אפשר למצוא בדוגמאות. (Icaa9a)
נוספה ההערה @ExperimentalLayout. התגים ConstraintLayout, FlowRow ו-FlowColumn מסומנים עכשיו בתג הזה כדי לציין שממשקי ה-API שלהם עומדים להשתנות. (I412a8)
Modifier.padding(InnerPadding)
נוסף (I94985, b/157133803)הוסרו מאפיינים שיצאו משימוש: RowAlign, ColumnAlign בשורה ובעמודה. (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)
הוסרו משני ה-modifiers LayoutWidth, LayoutHeight ו-LayoutSize שהוצאו משימוש. (Ib0bc1)
נוספו ערכי ברירת מחדל לפרמטרים של משנה ההיסט. (I37f06)
נוסף משנה של ריווח סימטרי. (I39840)
הוסר שינוי מאפיין שיצא משימוש LayoutAspectRatio. (I65a74)
הוסרו משנים של LayoutAlign שהוצאו משימוש. (I10877)
תוקן באג במגבילי הרוחב והגובה שגרם לכך שהפריסה העוטפת נמדדה ללא אילוצים של ציר הפוך. (I210b8, b/154797971)
נוספו הפרמטרים verticalGravity ו-horizontalGravity לרכיבים Row ו-Column, בהתאמה. (I7dc5a)
הפונקציות wrapContentWidth ו-wrapContentHeight עודכנו כך שהן מצפות ליישור אנכי או אופקי ולא ליישור כלשהו. העדכון של משנה הכבידה מאפשר יישור אנכי או אופקי. העדכנו את הרכיבים Row, Column ו-Stack כדי לתמוך ביישור רציף בהתאמה אישית. (Ib0728)
הפכנו את Alignment לניתן ליצירה עם ערכים שרירותיים. נוספו התאמות חד-ממדיות. (Ia0c05)
השם של EdgeInsets השתנה ל-InnerPadding. השם של הפרמטר innerPadding של לחצני Material שונה ל-padding. (I66165)
הפונקציה alignToSiblings מקבלת עכשיו Measured במקום Placeable. (I5788d)
נוספו משנים למידות של מדידות פנימיות, והוצאו משימוש הרכיבים ששימשו למטרה הזו. (I8295d)
נוספה תמיכה בהתאמה אישית של מאפיינים של רכיבי צאצא של ConstraintLayout (Idb1a5)
הוסרו רכיבי Wrap ו-Center שאינם בשימוש. (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) שיצאו משימוש (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 בתוך פונקציה עם annotation @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)
API מעודכן של יישור והוספת תמיכה ביישור מוחלט (שלא משתקף אוטומטית בהקשר של RTL) (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)
העברנו את רכיבי ה-Composable של ui-framework/CoreText ו-CoreTextField אל ui-text-compose. כדאי לכלול את ui-text-compose בפרויקט. (I32042)
runOnIdleCompose
ו-runOnUiThread
הן עכשיו פונקציות גלובליות במקום שיטות ב-ComposeTestRule. (Icbe8f)[Mutable]אופרטורים של נציגי מאפיינים של מצב הועברו לתוספים כדי לתמוך באופטימיזציות של נציגי מאפיינים ב-Kotlin 1.4. כדי להמשיך להשתמש ב-
by state { ... }
או ב-by mutableStateOf(...)
, המתקשרים צריכים להוסיף יבוא. (I5312c)הערכים של clipToBounds ו-clipToOutline ב-DrawLayerModifier וב-drawLayer() הם עכשיו false כברירת מחדל. (I0eb8b, b/152810850)
השם של LayoutResult שונה ל-MeasureResult. (Id8c68)
הוצא משימוש Center composable. צריך להחליף אותו ב-LayoutSize.Fill + LayoutAlign.Center 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 של מצב אווירה. פרטים נוספים זמינים ביומן ובמסמכי התיעוד (I4c7ee, b/143769776)
Ambient<T>
המיקומים של קו היישור שמוחזרים מ-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 לא הגיוני כשמביאים בחשבון את LayoutModifiers, rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מ-LayoutCoordinate אחד ל-LayoutCoordinate אחר.
ב-LayoutCoordinates נעשה שימוש ב-IntPxSize במאפיין size במקום ב-PxSize. בפריסות משתמשים בגדלים של מספרים שלמים בפיקסלים, ולכן כל הגדלים של הפריסות צריכים להיות מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)
שיפורים בממשק ה-API של Constraints (I0fd15)
נוסף TextDirection.Content (I48f36)
שינוי בתפריט סרגל הכלים כדי להציג את האפשרויות 'העתקה', 'גזירה' ו'הדבקה' בצורה תקינה. (Id3955)
הוספת סרגל כלים צף לבחירת שדה טקסט. (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)