כתיבת בסיס
androidx.compose.foundation
androidx.compose.foundation.layout
androidx.compose.foundation.gestures
androidx.compose.foundation.selection
androidx.compose.foundation.lazy
androidx.compose.foundation.interaction
androidx.compose.foundation.text
(עיינו במסמכי העזר של ה-API לגבי כל חבילות הכתיבה)
העדכון האחרון | גרסה יציבה | מועמד לפרסום | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
4 בספטמבר 2024 | 1.7.0 | - | - | 1.8.0-alpha01 |
מבנה
תהליך הכתיבה הוא שילוב של 7 מזהי קבוצות Maven בתוך androidx
. כל קבוצה
מכיל קבוצת משנה מטורגטת של פונקציונליות, שלכל אחת מהן יש גרסה משלה
הערות.
בטבלה הזו מוסבר על הקבוצות והקישורים לכל קבוצה של נתוני גרסה.
קיבוץ | תיאור |
---|---|
compose.animation | יוצרים אנימציות באפליקציות 'Jetpack פיתוח נייטיב' כדי להעשיר את חוויית המשתמש. |
compose.compiler | שינוי פונקציות @Composable והפעלת אופטימיזציות באמצעות פלאגין מהדר של Kotlin. |
compose.foundation | כתיבת אפליקציות ב-Jetpack פיתוח נייטיב עם אבני בניין מוכנות לשימוש והרחבת היסודות לבניית חלקים משלכם במערכת העיצוב. |
compose.material | בניית ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבים מוכנים לשימוש ב-Material Design. זו נקודת הכניסה ברמה הגבוהה יותר של 'כתיבה', שנועדה לספק רכיבים שתואמים לאלה שמתוארים באתר www.material.io. |
compose.material3 | בניית ממשקי משתמש ב-Jetpack פיתוח נייטיב עם רכיבי Material Design 3, הפיתוח הבא של עיצוב Material Design. Material 3 כולל עיצוב ורכיבים מעודכנים ותכונות התאמה אישית של Material You, כמו צבעים דינמיים, ונועד להיות אחיד עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת. |
compose.runtime | אבני הבניין הבסיסיות של מודל התכנות וניהול המצבים של Compose, ושל זמן הריצה העיקרי של הפלאגין Compose Compiler לטירגוט. |
compose.ui | רכיבים בסיסיים בממשק המשתמש של הרכבה שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, שרטוט וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות בכתיבה, צריך להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.
מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle
בשביל
האפליקציה או המודול שלך:
Groovy
dependencies { implementation "androidx.compose.foundation:foundation:1.7.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:1.7.0") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
למידע נוסף על יחסי תלות, אפשר לעיין במאמר הוספת יחסי תלות של build.
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.
מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.
גרסה 1.8
גרסה 1.8.0-alpha01
4 בספטמבר 2024
androidx.compose.foundation:foundation-*:1.8.0-alpha01
משוחרר. גרסה 1.8.0-alpha01 מכילה את התחייבויות אלה.
גרסה 1.7
גרסה 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 בנוסף לשינויים פנימיים- נוסף Indication API חדש,
IndicationNodeFactory
. כתוצאה מכך, הטמעות אינדיקציה יעילות יותר בהשוואה לממשק ה-API הקודם שלrememberUpdatedInstance
(שיצא משימוש). מידע על ההעברה זמין בכתובת developer.android.com. clickable
/combinedClickable
/selectable
/toggleable
מקבלים עכשיו פרמטרMutableInteractionSource
שאינו יכול להיות null. אם הערך הוא null והסימון שצוין הואIndicationNodeFactory
, אפשר ליצור אותו באופן הדרגתי רק במקרה הצורך, וכך משפרים את הביצועים. אם לא מתבצעת העלאה ומשתמשים ב-MutableInteractionSource
, מומלץ להעביר ערך null במקום להעבירremember { MutableInteractionSource() }
.- האפשרות
Indication#rememberUpdatedInstance
הוצאה משימוש. לקמפיין יש קנס גבוה ובלתי נמנע על הביצועים, והוא מונע פעולות אופטימיזציה אחרות. במקום זאת, צריך להשתמש ב-API החדש שלIndicationNodeFactory
.
- נוסף Indication 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) - הוטמעה תמיכה ניסיונית בצילומי מסך ארוכים בקונטיינרים של גלילה לכתיבת הודעות באמצעות ה-Android API הרשמי (
ScrollCaptureCallback
). NestedScroll
מקורות 'גרירה והיפוך' מוחלפים ב-UserInput
וב-SideEffect
כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללים עכשיו אנימציות (אפקט צד) וגלגל העכבר ומקלדת (UserInput
).LazyLayout
בקשות לשליפה מראש (prefetch) יכולות להיות מסומנות עכשיו כדחופות, כלומר אנחנו צופים שהפריט הזה יהיה נחוץ במסגרת הבאה, ואנחנו רוצים להתעלם מתקציב המסגרת כדי להבטיח יותר עבודה מראש (Id513f)- תמיכה בתכונה לכתיבה ידנית בסטיילוס במכשירים אחרי Android U. (I002e4)
- ממשקי API שונים קודמו לגרסה יציבה
- זימונית, הצמדה, רכיבים בחלונות
גרסה 1.7.0-rc01
21 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-rc01
משוחרר. גרסה 1.7.0-rc01 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תוקנה רגרסיה שבה הקריסה התרחשה כשרכיב כלשהו מוקד ברכיב הורה שניתן להתמקד בו (או ללחוץ עליו) ולהשבית אותו. (b/317561689)
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.foundation:foundation-*:1.7.0-beta07
משוחרר. גרסה 1.7.0-beta07 כוללת את ההתחייבויות האלה.
תיקוני באגים
- עכשיו פונקציות
SemanticsNodeInteraction
שקשורות לקלט טקסט:performTextReplacement
,performTextInput
ו-performTextClearance
, יקפיצו שגיאות טענת נכוֹנוּת (assertion) כשמפעילים אותן במצב קריאה בלבדTextFields
. (I4ae8f) - תוקנה תקלה ויזואלית בהיפר-קישורים. I23311
- תוקן מגביל
contentReceiver
לא עבד עם חלק מרכיבי ה-IME. - יצירת מהירות: מניעת הפצה של ערכי NaN בממשק המשתמש של הכתיבה ובבסיס הנתונים.
גרסה 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 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תיקון לטיפול בערכי נאן ב
SnapFlingBehavior
ובזימונית.
גרסה 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 ניסיוני להגדרת התנהגות השליפה מראש (prefetch) של
LazyGrids
, בדומה ל-API הניסיוני הקיים שלLazyLists
. זה כולל תמיכה בשליפה מראש של פריטים בLazyGrids
מקונן. בדומה ל-LazyListPrefetchStrategy
, ברירת המחדל של ההטמעה היא שליפה מראש (prefetch) של 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
מהחומר (I5477b)
תיקוני באגים
- כדי לשקף טוב יותר את המטרה של הקובץ, השם
LayoutCoordinates.introducesFrameOfReference
שונה. השם החדש הואLayoutCoordinates.introducesMotionFrameOfReference
. שינו את השם של הפונקציה הקשורה כדי לחשב קואורדינטות על סמך הדגל הזה. (I3a330) - האפשרות 'ברירת מחדל' הוסרה מהמאפיינים
MarqueeDefaults
. (I1d8a0) - השדה 'Marquee' הוסר מ-
MarqueeDefaults
נכסים. (Iad4f4) - הסרת את
TextLinkStyles
מהכיתהTextStyle
. במקום זאת,TextLinkStyles
הוא חלק מה-constructor שלLinkAnntation
ומה-methodAnnotatedString.fromHtml
(I90b2b) - תוקן באג שגרם להצמדה של זימונית כשהיא נעה לעבר גבול כשהיא כבר התייצב. (I9f373, b/339171222)
- ל-BTF2 יש עכשיו תנועות נכונות לבחירת העכבר. (Ibe8c6)
תרומה חיצונית
- שליחה מחדש של בנושא 'הגדרה של חישוב זמן הכתיבה/מדידה של סוג התוכן על סמך שליפה מראש (prefetch) כדי לשפר את הדיוק' (Iea622)
- הגדרת סוג התוכן של חישוב זמן הכתיבה/מדידה על סמך שליפה מראש (prefetch) כדי לשפר את הדיוק (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
עכשיו מבטל את השינויים בגרירה כברירת מחדל עבור רכיבים עם כיוון אופקי כשמשתמשים בפריסת RTL. (I3c6d9)AnnotatedString.hasEqualsAnnotations
נקראת עכשיוhasEqualAnnotations
. (I685c0)- ה-API עודכן לצורך קבלת קישורים מעוצבים בטקסט. באופן ספציפי, הסרנו את השיטות מ-
TextDefaults
לבנייתLinkAnnotations
בנושא מסוים ולניתוח HTML עם קישורים מעוצבים. במקום זאת, הוספנו מחלקהTextLinkStyles
שמאפשרת לעצב את הקישורים כפרמטר לתוכן הקומפוזבילי של טקסט. (I31b93) onDragStarted
ו-onDragStopped
הוחלפו בקריאות חוזרות (callback) שלא הושעו. (I59de8)
תיקוני באגים
- תוקן באג שגרם לקריסת זימונית כשה
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
בקשות לשליפה מראש (prefetch) יכולות להיות מסומנות עכשיו כדחופות, כלומר אנחנו צופים שהפריט הזה יהיה נחוץ במסגרת הבאה, ואנחנו רוצים להתעלם מתקציב המסגרת כדי להבטיח יותר עבודה מראש (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()
כ-null. (I51f26)
תיקוני באגים
- האפשרות 'בחירת הכול' נוספה לכל תפריטי הטקסט לפי הקשר ב
SelectionContainer
(Ib750e, b/240143283) - תוקן צילום המסך הארוך של מאגרי גלילה באמצעות
reverseScrolling=true
. (I7c59c) - תוקנה בעיה שבה ערך
currentValue
שלAnchoredDraggableState
השתנה כשמתקרבים לגבולות המדינה. (Iea30b, b/333846848)
תרומה חיצונית
- שינית את השם של
PrefetchExecutor
->PrefetchScheduler
כדי לשקף טוב יותר את תחומי האחריות שלו. (Ib9154) - נוספה תמיכה באחזור מראש של פריטים ב
LazyLists
מקונן (למשלLazyColumn
שמעבדLazyRows
מקונן). השינוי הזה צפוי לצמצם ירידות פריימים במהלך הגלילה בLazyLists
האלה. ברירת המחדל של ההטמעה היא שליפה מראש (prefetch) של 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
שמכיל methods ליצירת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
. באופן דומה, פריסה שמשנה את מיקום הצאצאים שלה לעיתים קרובות יכולה עכשיו למקם אותם באמצעותwithDirectManipulationPlacement
(כמו Scroll, מיושם כברירת מחדל). כך אנימציות מבוססותapproachLayout
יכולות להיות יותר אינטואיטיביות, כך שיש עכשיו הזדמנות להבחין בין ההיסט להנפשה ומה צריך ליישם ישירות כשמחליטים ליצור אנימציה. (I60ec7) - הצגה של
requestScrollToItem
ל-LazyStaggeredGrid
. עבור כל אישור מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח באמצעות התקשרות אלrequestScrollToItem
. הפעולה הזו לא תשנה את ההתנהגות הקיימת בשום צורה, אלא אם תתבצע קריאה ל-requestScrollToItem
. I63983 - הצגה של
requestScrollToPage
בזימונית. עבור כל אישור מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח באמצעות התקשרות אלrequestScrollToPage
. הפעולה הזו לא תשנה את ההתנהגות הקיימת בשום צורה, אלא אם תתבצע קריאה ל-requestScrollToPage
. (Ic4213) - הצגה של
requestScrollToItem
ל-LazyGrids
. עבור כל אישור מדידה, הלקוח יכול עכשיו לבטל את ההסכמה לשמירת האינדקס על סמך המפתח באמצעות התקשרות אלrequestScrollToItem
. הפעולה הזו לא תשנה את ההתנהגות הקיימת בשום צורה, אלא אם תתבצע קריאה ל-requestScrollToItem
. (I0a7a0) - המוצר
ClickableText
מסומן כהוצאה משימוש. כדי להוסיף קישורים לטקסט, צריך ליצורAnnotatedString
עםLinkAnnotation
שתואם לקישור שלך ולהעביר אתAnnotatedString
הזה לתוכן הקומפוזביליText
(I34d4b, b/323346994) - ההוראה
UrlAnnotation
הוצאה משימוש. במקומה צריך להשתמש במדיניותLinkAnnotation.Url
. אם משתמשים בעיצוב מהותי, אז משתמשים באובייקטTextDefaults
כדי ליצור את ההערה עם עיצוב מהותי (I8d180, b/323346545) - השם של
String.parseAsHtml
השתנה ל-AnnotatedString.Companion.fromHtml
(I43dcd) - נוספו ארגומנטים מסוג סגנון (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ומאזינים לאינטראקציה עם קישור ל-methodparseAsHtml
. כשמנתחים את המחרוזת המתויגת ב-HTML באמצעות תגי<a>
, השיטה תיצורLinkAnnotation.Url
לכל תג כזה ותעביר את האובייקטים של העיצוב ואת ה-listener לאינטראקציה של הקישור לכל הערה. (I7c977) - עכשיו
LinkAnnotation
לוקחת את הארגומנטים של סגנון מבוסס-מצב ואת הפונקציהLinkInteractionListener
. יש להוסיף את ההערה הזו אלAnnotatedString
כדי לקבל היפר-קישור. העברה שלfocusedState
ו/אוhoveredState
מאפשרת להגדיר את התצורה החזותית של קישורים כשהם ממוקדים או מעבירים את העכבר מעל לקישורים. (I81ce4, b/139312671) - סימון התכונה עבור צילומי מסך ארוכים הוסר. (I28648, b/329128246)
LazyColumn
יעבד עכשיו כותרות במיקום קבוע בצילומי מסך ארוכים. (I8d239, b/329296635)- התייצב רוב ממשקי ה-API הניסיוניים שנותרו שהושקו עם
BasicTextField
החדש. (I714e2) - נוסף הפרמטר
textObfuscationCharacter
ל-BasicSecureTextField
שקובע באיזה תו להשתמש בזמן ערפול התוכן (obfuscation). (I0588b) NestedScroll
מקורות 'גרירה והיפוך' מוחלפים ב-UserInput
וב-SideEffect
כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללים עכשיו אנימציות (אפקט צד) וגלגל העכבר ומקלדת (UserInput
). (I40579)- הצגה של
LocalBringIntoViewSpec
, התנהגות גלילה שתלויה בפלטפורמה ומופעלת בשכבה של מקש הצירוף שניתן לגלילה. (I27aa5, b/317453911) - בוצעה הסרה של
TextFieldCharSequence
.TextFieldBuffer.originalValues
מוחלף ב-TextFieldBuffer.originalText
וב-TextFieldBuffer.originalSelection
. (I2c7d6) - הערך של
ImeOptions.hintLocales
כבר לא יכול להיות null. אם ברצונך להעביר רשימת לוקאלים ריקה, צריך להשתמש ב-LocaleList.Empty
. (Ic5bc4) - השם של
getOffsetFractionForPage
השתנה. השם החדש הואgetOffsetDistanceInPages
. (Ia05e2)
תיקוני באגים
- עכשיו, כשמצרפים את
InputTransformations
עםnext
, הערכים שלKeyboardOptions
שלהם ממוזגים כמו שצריך לפי אפשרויות נפרדות באמצעות השיטה החדשהKeyboardOptions.merge
. (Ie5304, b/295951492) - הפונקציה
targetValue
שלAnchoredDraggableState
לא מביאה בחשבון יותר ערכי סף תלויי מיקום. עכשיו יש לו סף משתמע של 50%, כלומר הערך שלtargetValue
משתנה בנקודת האמצע בין שני ישויות עוגן. (I82c2c)
תרומה חיצונית
- שני ממשקי 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) - הוטמעה תמיכה ניסיונית בצילומי מסך ארוכים בקונטיינרים של גלילה לכתיבת הודעות באמצעות ה-Android API הרשמי (
ScrollCaptureCallback
). התכונה הזו ניסיונית ויכול להיות שבשלב הזה לא תטפל כראוי בכל המקרים. לכן היא מושבתת כרגע כברירת מחדל. כדי להביע הסכמה, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabled
כ-true. הסימון הזה יוסר לפני גרסת בטא 1.7. (I2b055, b/329296471) - אנחנו משיקים API חדש של
GraphicsLayer
שיספק יותר גמישות במיקום וברינדור של מכונותGraphicsLayer
, ויתמוך בתכונות רינדור פנימיות בלי שיהיה צורך לתאם עם הטמעות קומפוזביליות כדי לציין מופעים של מגביליGraphicsLayer
.
שינויים ב-API
- כברירת מחדל, כל הפרמטרים מסוג
KeyboardOptions
כוללים עכשיו ערך לא מוגדר. השיטהKeyboardOptions.merge
נוספה. - שיניתם את השם של
KeyboardOptions.autoCorrect
ל-autoCorrectEnabled
והפכו את השם ל-null. הערך 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
. (Ibfa9) - הסוג של
TextFieldState.text
השתנה מ-TextFieldCharSequence
ל-CharSequence
בלבד. לכן, הוסיפו אתTextFieldState.selection: TextRange
ואתTextFieldState.composition: TextRange?
כדי לקרוא את ערכי הבחירה וההרכבה הנוכחיים ישירות מאובייקט המצב. - בוצעה הסרה של
TextFieldState.forEachTextValue
. (Idb2a2) - הפונקציות
ClipboardManager.getClipMetadata
ו-ClipboardManager.hasClip
הוסרו. יש להשתמש ב-clipEntry.getMetadata()
כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. צריך גם לבדוק את התוצאה שלClipboardManager.getClip
אם היא ריקה או לא כדי להבין אם יש קליפ נוכחי בלוח. (I50498) - האפליקציה
ClipboardManager.setClip
מקבלת עכשיו את הערך null כדי לנקות את הלוח. (I7d2e9) - הפונקציה
ReceiveContentListener
מומרה לממשק פונקציה. גם עומס יתר שלModifier.receiveContent
שלוקח lambda הוסר כיReceiveContentListener
הוא ממשק פונקציה. - השם של
Modifier.receiveContent
השתנה ל-Modifier.contentReceiver
. (I1e6af) - השם של
TransferableContent.consumeEach
השתנה. השם החדש הואTransferableContent.consume
. (I1e462) - הסתיים השדרוג של
rememberTextFieldState
ל-API יציב. (I37999)
תיקוני באגים
- תוקן באג שבו וריאנט אחד (
BasicTextField(state)
) לא עבד במקלדות CJK (מבוססות על הרכב). (I54425) - תוקן באג שבו
Modifier.dragAndDropTarget()
יכול להפנות לנתונים לא פעילים בתרחישים מסוימים, תוךModifier.Node
בשימוש חוזר. (I05bb1) - בוטל שינוי בחוזה שהתבצע לאחרונה, שבו שיחות
AnchoredDraggableState#anchoredDrag
יקובצו בסיום פעולה שלanchoredDrag
. (I95715)
גרסה 1.7.0-alpha05
20 במרץ 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha05
משוחרר. גרסה 1.7.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- הוסרה יצירה מקומית ניסיונית מסוג
LocalTextLinkStyle
לעיצוב היפר-קישורים. (Iebfa7) - הוסר שינוי ניסיוני של
BasicText
עם ארגומנטonLinkClicked
. בעתיד נוסיף ממשק API חלופי לתמיכה בהיפר-קישורים. (I107d5) - הוסרו שיטות ומאפיינים שקשורים לנקודות קוד בקטע
TextFieldState
ו-TextFieldBuffer
. הוסרו גם הסיומותinChars
מממשקי ה-API הנותרים שקשורים לבחירה וליצירה. (Ief7ce) - עכשיו המדיניות
currentValue
שלAnchoredDraggable
תתעדכן כשיעברו דרך נקודת עוגן. אפשר להשתמש ב-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)
תרומה חיצונית
- נוספו 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
כדי שנוכל להעביר למערכת a11y מידע על הרכיבים שנגללים במקומם. מדיניות ה-CL הזו מחילה גם את השימוש בנכס שצוין ברשימות הבסיס לגלילה. (Ic5fa2) - השם של
BasicTextField2
השתנה ל-BasicTextField
. (Ie5713) FocusRequester.createRefs
יציב עכשיו (I4d92c, b/261436820)- הוספה של
DelegatableNode.scrollIntoView()
מאפשרת לצמתים עם מגביל לשלוח בקשותscrollIntoView
ישירות. (I2b3b7, b/299939840) - הוספנו את התכונה
DelegatableNode.requireView()
כדי לאפשר לצמתי מגביל לקבל את הגרסה הנוכחית של AndroidView
בלי לקרוא יצירה מקומית של היצירה. (I40768) - חדש: מידע על פריסה לפי הקשר בהיקף השורות של הזרימה לפי הקשר ובהיקף העמודות של הזרימה לפי הקשר, כולל אינדקס קו, מיקום ומגבלות על רוחב וגובה מקסימליים כדי להישאר במיקום שצוין. פריטים שחורגים מהרוחב/גובה המקסימלי עשויים לזרום לשורה הבאה, או שהם יושמטו בהתאם להגדרות הגלישה. (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
רגל ב-constructors של עותק שהוצאו משימוש, יעתיקו עכשיו בצורה נכונה את כל המאפיינים. (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
שמאפשרת לשנות את סגנון הקישורים בטקסט בכל האפליקציה. אם אתם משתמשים בעיצוב משלכם באפליקציה, עליכם להגדיר את הקומפוזיציה הזו באופן מקומי בהתאם לנושא שלכם. כשמשתמשים בעיצוב Material, הצבע של הקישור יוגדר כברירת מחדל כצבע הראשי של Material. (I7eb10) - הוספנו תכונה חדשה של
receiveContent
שמאפשרת למפתחים לקבל תוכן עשיר ב-Jetpack פיתוח נייטיב. receiveContent
משתלב עםBasicTextField2
כדי לקבל תוכן עשיר שסופק על ידי מקלדת התוכנה או באמצעות פעולת הדבקה מהלוח. (I81b72)- במסגרת השינוי הזה, אנחנו מחליפים את
SnapFlingBehavior
באפליקציהTargetedFlingBehavior
בתצוגת דפים כדי לאפשר שימוש בתרחישים אחרים וליהנות מגמישות רבה יותר. (I762ea) - במסגרת השינוי, אנחנו הופכים את ממשקי Snapping API ליציבים. אנחנו גם מנקים חלק מקוד הבדיקה ומוסיפים עוד דוגמאות ל-Snapping. (Id8da9)
- הצגה של
TargetedFlingBehavior
,FlingBehavior
שמאפשר להפיץ מידע על מצב האנימציה המתמשכת ועל היסט הגלילה של היעד. (I6a207)
תיקוני באגים
BasicTextField2
משאיר את הסמן בתצוגה בזמן ההקלדה – אם הוא נגלל מחוץ לתצוגה או יוצא מהתצוגה עקב קלט. (Ieb856, b/237190748)
תרומה חיצונית
- הוספת API ניסיוני להגדרת התנהגות של שליפה מראש (prefetch) של LazyLists. (I022a4)
גרסה 1.7.0-alpha01
24 בינואר 2024
androidx.compose.foundation:foundation-*:1.7.0-alpha01
משוחרר. גרסה 1.7.0-alpha01 מכילה את התחייבויות אלה.
תכונות חדשות
- נוסף
Indication API
חדש,IndicationNodeFactory
. כתוצאה מכך, הטמעותIndication
שמניבות ביצועים טובים יותר בהשוואה לממשק ה-API הקודם שלrememberUpdatedInstance
(שיצא משימוש). מידע על ההעברה זמין בכתובת developer.android.com. clickable / combinedClickable / selectable / toggleable
מקבל עכשיו פרמטרMutableInteractionSource
שאינו יכול להיות null. אם הערך הוא null והשדהIndication
שצוין הואIndicationNodeFactory
, אפשר ליצור אתIndication
באופן מדורג רק במקרה הצורך. הפעולה הזו משפרת את הביצועים. אם לא מתבצעת העלאה ומשתמשים ב-MutableInteractionSource
, מומלץ להעביר ערך null.
שינויים ב-API
- הזנה של
DecayAnimation
ב-AnchoredDraggable
. השינוי הזה מוסיף פרמטרdecayAnimationSpec
ל-AnchoredDraggable
, שמאפשר להשתמש באנימציה של דעיכה כשמתבצע חיבור לאחד מהעוגנים. השינוי כולל גם את שינוי השם שלanimationSpec
הקיים ל-snapAnimationSpec
כדי לעזור בהבנת התרחיש לדוגמה של כל מפרט. BasicTextField2
זמין לשימוש ניסיוני. הוא צריך להיות תואם בערך לתכונות עםBasicTextField
, וההתנהגות צריכה להיות מוכנה לייצור. עם זאת, ה-API עדיין ניסיוני בשלב זה. לפני הייצוב, השם שלו ישתנה ל-BasicTextField
ויועבר לאותה חבילה.- הוצגה הטיוטה הראשונה של ה-API של
OutputTransformation
ל-BasicTextField2
. ה-API הזה מחליף את רוב התרחישים לדוגמה שלVisualTransformation
בגרסה הישנה שלBasicTextField
. אמנם התהליך עדיין לא הושלם, ויש דברים שלא יפעלו בצורה תקינה, אבל נבקש ממך משוב לגבי נוחות השימוש של ה-API בתרחישים לדוגמה שלך. (aosp/2708848) - הוספנו את המוצר
LinkAnnotation
שמאפשר להוסיף לטקסט קישורים וקישורים לחיצים. יצירת הקישורים עדיין לא הושלמה, בקרוב צפויים שינויים נוספים ב-API. - הוספנו תכונה חדשה של
receiveContent
שמאפשרת למפתחים לקבל תוכן עשיר ב-Jetpack פיתוח נייטיב. receiveContent
משתלב עםBasicTextField2
כדי לקבל תוכן עשיר שמסופק על ידי מקלדת התוכנה או באמצעות הדבקה מהלוח.KeyboardOptions.shouldShowKeyboardOnFocus
מאפשר להשבית את התנהגות ברירת המחדל שלBasicTextField
כשמפעילים בקשה להתמקדות במקלדת תוכנה.TextInputService
ו-LocalTextInputService
הוצאו משימוש. במקום זאת, צריך להשתמש ב-PlatformTextInputModifierNode
כדי לשלב ישירות עם ממשקי API של IME של הפלטפורמה. (aosp/2862698)- האפשרות
Indication#rememberUpdatedInstance
הוצאה משימוש. לקמפיין יש קנס גבוה ובלתי נמנע על הביצועים, והוא מונע פעולות אופטימיזציה אחרות. במקום זאת, צריך להשתמש ב-API החדש שלIndicationNodeFactory
.
תיקוני באגים
- עכשיו
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)
- מפעילים את אפשרות הקריאה החוזרת (callback) באותו סדר כמו ב-Forgotten. (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
נוספו כדי שיהיה קל יותר להוסיף רכיבים מבוססי-שטח לכתיבה- שינויים ושיפורים שונים בממשקי API ב-
Pager
וב-snapFlingBehaviour
- ממשקי API שונים של התמקדות, טקסט ורכיבים שונים קודמו לממשקי 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
המקבל באופן מפורש, וכולל lambda להצטרפות לסשן גרירה ושחרור. עכשיו יש שתי פעולות המקוריות לDragAndDropModifierNode
. אחד לקבלת העברות ואחד להעברת נתונים (I69481) maximumFlingVelocity
עודכן כך שמיוצג כ-Float. המסמכים עודכנו כדי להיות ברורים יותר על האחדותmaximumFlingVelocity
. (I8adc7)onDragAndDropStart
בDragAndDropModifierNode
שם המפעל השתנה ל-acceptDragAndDropTransfer
.acceptsDragAndDropTransfer
נוסף אלdragAndDropTarget
Modifier
כדי לאשר באמצעות גרירה ושחרור. lambda כזה מחזירDragAndDropTarget
אם מעניין אותך בסשן של גרירה ושחרור. פונקציות lambda אחרות לעיבוד אירועי גרירה הוחלפו בכלי הזה.פונקציה זו של היצרן
DragAndDropTarget
נוספה לקבלה מהפעלות גרירה ושחרור (Iebf3a)חשיפת
startDragImmediately
ב-AnchoredDraggable
מעניקה שליטה בזיהוי תנועות גרירה כשמשתמשים בו. מומלץ להגדיר אותו כאשר הווידג'ט יוצר אנימציה לעוגן יעד. ראו דוגמה. (Ie6d13, b/285139987)ממשקי ה-API של הסבר קצר על בסיס הם עכשיו
@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 מהותיים מסוג
SwipeToReveal
(לכרטיסים וצ'יפים) מסתמכים עכשיו על API מבוסס משבצות (לפי ההמלצה של Compose) במקום על מכונות שמבוססות על סיווג נתונים כדי ליצור את המקומות האלה. זהו שינוי תוכנה שעלול לגרום לכשל. אפשר לעיין בהדגמה ובקוד לדוגמה כדי לראות דוגמאות לשימוש ב-API החדש. (Ia8943)
תיקוני באגים
- הטמעה של השווה ו-hashcode עבור
PageSize.Fixed
. (Ie3ede, b/300134276) - תוקן באג שגרם לא להתכווץ של הפריסה
BasicText
כששינוי שלminWidth
ו-minWidth
פחות ממגבלות המדידה הראשוניתmaxWidth
(Idb19c) - הוספת תמיכה בכלי לרינדור עבור Sweep Gradient ב-
ArcLine
. (I4d5b) - פתרון של בעיית תאימות בינארית עם שינוי Inset של חלון (Iee695)
- הסרת שכבת הליבה של החומר עבור צ'יפ/לחצן של 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
- השם של
Modifier.dragAndDrawSource
השתנה ל-onDrawDragShadow
lambda ל-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
בבדיקות שלך. הדגל הזה יוסר בכתיבה שלך בגרסה 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 מכילה את התחייבויות אלה.
תכונות חדשות
- רכיבי wrapper חדשים של
SurfaceView
וגםTextureView: GraphicsSurface()
ו-EmbeddedGraphicsSurface()
. זהו API ניסיוני והוא עשוי להשתנות ולשינויים. (I9ddb2) Modifier.magnifier()
הוא עכשיו API יציב. זה כולל הסרה שלMagnifierStyle
לטובת פרמטרים בתוך השורה בהתאמה עצמה. (I83bec, b/298381260, b/262367109, b/261438887)
שינויים ב-API
- הצגנו את
updateCurrentPage
ו-updateTargetPage
ב-ScrollScope
. אלה הקטעים האחרונים שדרושים כדי לאפשר התאמה אישית של גלילה מונפשת עדPagerState.scroll
. (I9cad5, b/267744105, b/243786897) - הסרת הצפיפות מ-
SnapFlingBehavior
. בכל האפליקציות שלSnapLayoutInfoProvider
כבר יש דרך לגשת לצפיפות. אפשר להסיר את היקף המקלט, דבר שעלול להוביל להטמעה פחות מורכבת שלSnapFlingBehavior
ושלSnapLayoutInfoProviders
. (I153c3) - עוד מגבילי התאמה סומנו כיציבים. (I56af1, b/298046462)
- המשתמש
SnapStepSize
הוסר מהמרחב המשותף 'SnapLayoutInfoProvider
'. יש לבצע את החישוב באמצעות פרטי הפריסה, ולהינתן באמצעות גישה או קיזוזי הצמדה. (If320c)
שינויים בהתנהגות
- התכונה 'כתיבה' משתמשת עכשיו בשינוי לא לינארי של גופנים, כדי לשפר את הקריאוּת והנגישות שלה. במקרה של שינוי קנה מידה של גופן > 100% בהגדרות המערכת: טקסט קטן יגדל כרגיל, וטקסט גדול יותר יגדל במידה מועטה בלבד. כמו כן, גובהי השורות שמוגדרים ב-SP יותאמו אוטומטית כדי להישאר פרופורציונליים לגובה המיועד של 100%. למידע נוסף, ראו שיטות מומלצות להתאמת הגופנים לגודל הגופן. (I11518)
תיקוני באגים
- צריך להסיר את השימוש ב
rememberSaveable
כדי לקבל הסברים קצרים. (Icc131, b/299500338)
גרסה 1.6.0-alpha05
6 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha05
משוחרר. גרסה 1.6.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- צריך להוסיף עומסי יתר עבור
BasicSecureTextField
שמקבלים ערך שלא ניתן לשינוי וקריאה חוזרת כדי לשנות את הערך הזה, בדיוק כמו ב-API הנוכחי שלBasicTextField
. (Ia4882) - צריך להוסיף את
Modifier.preferKeepClear()
כדי לסמן כתוכן קומפוזבילי כהעדפה, כדי להימנע מחלונות צפים ב-API 33 ואילך. (Ib51d5, b/297260115) - מהירויות התנועה ברכיבים בתצוגה, כמו
ScrollView
ו-RecyclerView
, מוגבלות ב-ViewConfiguration.ScaledMaximumFlingVelocity
. ההצעות לכתיבה מכילות עכשיו גרסה משלה שלmaximumFlingVelocity
שחלה עכשיו עלDraggable
. (Ibf974) - הוסרו עומסי יתר של
Pager
ו-PagerState
שהוצאו משימוש. (Iea07e) - הוספנו את
BasicTooltipBox
אלcompose.foundation
, ועדכנו אתPlainTooltipBox
ואתRichTooltipBox
לשימוש ב-TooltipBox
עם תכנים קומפוזביליים חדשים שלPlainTooltip
ו-RichTooltip
. (I79e1d)
גרסה 1.6.0-alpha04
23 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha04
משוחרר. גרסה 1.6.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת ממשק
ReusableComposition
לניהול מחזור חיים ושימוש חוזר בהרכבת משנה. (I812d1, b/252846775) Modifier.focusGroup
קודמה לממשקי API יציבים. (I7ffa3)- צריך להוסיף עומסי יתר עבור
BasicTextField2
שמקבלים ערך שלא ניתן לשינוי וקריאה חוזרת כדי לשנות את הערך הזה, בדיוק כמו ב-API הנוכחי שלBasicTextField
. (I3f2b8) GridItemSpan::currentLineSpan
הוא עכשיו API יציב. (Icc29c)- לוח הציור שתומך ב-
contentDescription
הוא עכשיו API יציב. (Ib3d29) - הוספנו את
viewportSize
ב-ScrollState
, דרך לדעת מה הגודל שלviewPort
של הרכיב שמשתמש ב-ScrollState
אחרי שהמדידה מתרחשת. (I8b85a, b/283102682) - תוקנה בעיה שבה השליפה מראש (prefetch) ב-Pager לא תאמה להתנהגות בתצוגות. (I93352, b/289088847)
- המכשיר
Modifier.consumeWindowInsets(PaddingValues)
יציב עכשיו.- ממשק ה-API
Deprecated Modifier.consumedWindowInsets
הוסר. במקומה צריך להשתמש במדיניותModifier.consumeWindowInsets
. (Id72b)
- ממשק ה-API
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha03
משוחרר. גרסה 1.6.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף עומס יתר של
LazyLayout
, הוא מקבל lambda שלLazyLayoutItemProvider
, לא אובייקט פשוט כמו קודם. עומס היתר הקודם הוצא משימוש. (I42a5a) - נוספה תמיכה בהגדרת
privateImeOptions
(Idb772)
תיקוני באגים
- שדות טקסט תוקנו שמציגים את המקלדת ויכולים לערוך אותם כאשר הערך של
readOnly
מוגדר כ-True. תוקנה גם המקלדת שלא מוצגת כשמשנים אתreadOnly
מ-True ל-False בזמן המיקוד. (I34a19, b/246909589)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.foundation:foundation-*:1.6.0-alpha02
משוחרר. גרסה 1.6.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
PagerLayoutInfo
הוצג עם מידע שנאסף אחרי שעבר בהצלחה מדידה בPager
. הוספנו גם אתPageInfo
, המידע על דף יחיד שנמדד ב-Pager
. (Iad003, b/283098900)- הערות נוספות שמציינות ערכי קלט מותרים לתכנים קומפוזביליים (I51109)
- הוספנו את
SemanticsNodeInteraction.requestFocus
כדרך נוחה יותר וגלויה יותר לבקשת התמקדות בבדיקות. (Ie8722) - ממשק ה-API של
PlatformTextInput*
השתנה לגמרי. (I6c93a, b/274661182, b/267235947, b/277380808) - התכונות
SoftwareKeyboardController
ו-LocalSoftwareKeyboardController
כבר לא ניסיוניות.LocalSoftwareKeyboardController
הוא גםCompositionLocal
עכשיו כמו שצריך. (I4c364) - עכשיו הפונקציה
Modifier.transformable
מספקת עכשיו את האפשרות 'הזזה בצילום משהו שנע' בפרמטר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 מכילה את התחייבויות אלה.
תכונות חדשות
- השקת API חדש של
AnchoredDraggable
ב-Fundamentals. אפשר להשתמש בו כדי לבנות רכיבים שאפשר לגרור בין מצבים נפרדים, כמו גיליונות תחתונים בעיצובים מודאליים. ה-API הזה מחליף את ה-APISwipeable
של Material. (I4a2ed)
שינויים ב-API
- תמיכה ב-
InputConnection#requestCursorUpdates
(I0c69b) - הוספנו את
scrollAnimationSpec
כדי לאפשר שימוש במפרטים של אנימציה בהתאמה אישית. ההגדרה שלBringIntoViewCalculator
עודכנה ועכשיו היאBringIntoViewScroller
. (Idb741) - צריך להוסיף סוג
ResourceResolutionException
לאריזה של פריטים שנזרקים לאריזה כשמנסים לטעון נכסי מפת סיביות (bitmap) עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788) - נוספו מאפייני סמנטיקה ופעולות לתמיכה בתרגום טקסט. (I4a6bc)
- השקנו API של
BringIntoViewCalculator
שיכול לשמש להתאמה אישית של האופן שבו רכיבים כמוScrollable
מגיבים לבקשות שלbringIntoView
. שיניתם את עומס יתר של מודעות שאפשר לגלול כדי לאשר מופע שלBringIntoViewCalculator
. (Iaf5af)
תיקוני באגים
- נוספה בדיקת שגיאות בקוד כדי להזהיר אם יוצרים
MutableInteractionSource
בקומפוזיציה בלי לזכור אותו, בדומה לבדיקות לאיתור שגיאות בקוד ליצירת מצב שניתן לשינוי /Animatable
. (I5daae) - נוספה תמיכה בבחירה באמצעות העכבר. בחירה מבוססת מגע תתרחב במילים ותתכווץ לפי תו. (Ic0c6c, b/180639271)
- נוסף ממשק
FocusTargetModifierNode
שניתן להשתמש בו כדי ליצורFocusTarget
בהתאמה אישית. (I9790e)
גירסה 1.5
גרסה 1.5.4
18 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.5.4
משוחרר. גרסה 1.5.4 כוללת את ההתחייבויות האלה.
גרסה 1.5.3
4 באוקטובר 2023
androidx.compose.foundation:foundation-*:1.5.3
משוחרר. אין שינויים בגרסה הזו.
גרסה 1.5.2
27 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.5.2
משוחרר. גרסה 1.5.2 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקן באג בטקסט שגרם לקריסות בנסיבות מסוימות שבהן הסמנטיקה בוטלה.
גירסה 1.5.1
6 בספטמבר 2023
androidx.compose.foundation:foundation-*:1.5.1
משוחרר. גרסה 1.5.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- שדות טקסט תוקנו שמציגים את המקלדת ויכולים לערוך אותם כאשר הערך של
readOnly
מוגדר כ-True. תוקנה גם המקלדת שלא מוצגת כשמשנים אתreadOnly
מ-True ל-False בזמן המיקוד. (I34a19, b/246909589)
גרסה 1.5.0
9 באוגוסט 2023
androidx.compose.foundation:foundation-*:1.5.0
משוחרר. גרסה 1.5.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.4.0
- מגבילים בסיסיים רבים, כולל
Modifier.clickable
,Modifier.draggable
,Modifier.scrollable
, מגביל פריסה ועוד הועברו ל-API שלModifier.Node
, במטרה לצמצם את התקורה על הרכב הראשוני. - שיפורים ביציבות של Pagers. הרבה באגים טופלו.
- פרמטרים של
pageCount
נמצאים עכשיו ב-PagerState
במקום בזימונית עצמה
גרסה 1.5.0-rc01
26 ביולי 2023
androidx.compose.foundation:foundation-*:1.5.0-rc01
משוחרר. גרסה 1.5.0-rc01 מכילה את ההתחייבויות האלה.
תיקוני באגים
אפשר לבצע בדיקה אופציונלית כדי להמליץ על מיגרציה של קריאות
mutableStateOf()
לסוגים ספציפיים של קריאות פרימיטיביים. המזהה של איתור השגיאות בקוד הואAutoboxingStateCreation
. בעבר, הבדיקה הזו הופעלה כברירת מחדל בכל הפרויקטים. כדי לראות את האזהרה הזו בעורך של Android Studio ובפלט של איתור השגיאות בקוד, צריך לשנות את חומרת האזהרה מ'אינפורמטיבית' ל'אזהרה' (או גבוהה יותר). לשם כך, צריך להצהיר על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
לזימונית ופונקציית עזר לחישוב היסט נתון של דף. (If2577) - יש להציג את
snapPositionalThreshold
כשיוצרים התנהגות של הנפה מהירה. משתמשים בפרמטר הזה כדי לציין סף מיקום להצמדה קצרה ב-Pager. (If8f7f) - הטקסט
SnapLayoutInfoProvider.calculateSnappingOffsetBounds
הוחלף בטקסטcalculateSnappingOffset
. בשיטה החדשה הזו, אנחנו פשוט מבקשים את ההיסט הבא שאליו תתבצע הצמדה. חישוב הגבולות צריך להתבצע ברמת ההטמעה, מכיוון שהדבר עשוי להשתנות בהתאם לאופן שבו צריך להצמיד את הגבולות. (I923a4) LazyStaggeredGrid
ממשקי API קודמו ליציבות. (I633a5)- הסרה של
pageCount
מהחשבוןHorizontal/VerticalPager
. צריך לספק את המזהה בתהליך יצירת המדינה. עודכנוPagerState
ו-rememberPagerState
כדי לאשר אתpageCount
. (Ieb52d, b/266965072) - הסרה של
pageCount
מהחשבוןHorizontal/VerticalPager
. צריך לספק את המזהה בתהליך יצירת המדינה. עודכנוPagerState
ו-rememberPagerState
כדי לאשר אתpageCount
. (Ifa3cb, b/266965072) - הצגה של
shortSnapVelocityThreshold
בSnapFlingBehavior
של זימונית. (I7379e, b/275579012) - הפונקציה מוסיפה
FlowRowScope
ו-FlowColumnScope
. (I54fe2)
תיקוני באגים
- קריאות לקבלת סמנטיקה ב-Text כאשר האילוצים כוללים
minWidth
ו-minHeight
כבר לא קורסות. (Ibd072) - תוקנה רגרסיה שבה המקלדת לא הוצגה עבור שדות טקסט בתיבות דו-שיח שלא נוצרו על ידי התוכן הקומפוזבילי
Dialog
. (I82551, b/262140644)
גרסה 1.5.0-alpha03
19 באפריל 2023
androidx.compose.foundation:foundation:1.5.0-alpha03
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha03
שוחררו. גרסה 1.5.0-alpha03 מכילה את התחייבויות אלה.
הגרסה הזו מפעילה את מחסנית רינדור הטקסט החדשה עבור 'כתיבה'. המקבץ החדש עבר אופטימיזציה לביצועים, ולא אמורים לראות שינויים גלויים.
אם מופיעים שינויים בטקסט שעבר רינדור, אפשר לנפות באגים על ידי הגדרה של NewTextRendering1_5 = false
כדי לאשר את ההבדל בהתנהגות. הגדרת האפשרות הזו תאלץ הרכבה מחדש. אם יש הבדלים בהתנהגות, צריך לציין אותם כבאגים.
סימון ניפוי הבאגים יוסר לפני גרסת בטא 1.5 בטא.(Iada23, b/246960758)
שינויים ב-API
- הגדירו את
FlowColumn/FlowRow
בתוך שורה. (Idab37)
גרסה 1.5.0-alpha02
5 באפריל 2023
androidx.compose.foundation:foundation:1.5.0-alpha02
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha02
שוחררו. גרסה 1.5.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה תמיכה בתאים בגודל קבוע בתוך
LazyGrid
וסידור שלהם לפי צירים שונים. (I83ed9, b/235121277, b/267942510) - נוספה תמיכה בנתיבים בגודל קבוע ב
LazyStaggeredGrid
וסידור שלהם לפי צירים שונים. (I7d519) - עכשיו אפשר לפתוח
UrlAnnotation
באפליקציותAnnotatedString
באמצעות שירותי נגישות כמוTalkBack
. (If4d82, b/253292081) - נוספה פעולת הסמנטיקה
InsertTextAtCursor
לשדות טקסט. (I11ed5) - פעולות בדיקה הקשורות לטקסט (למשל
performTextInput
) יבקשו מעכשיו להתמקד ישירות באמצעות הפעולה הסמנטית, במקום ללחוץ על השדה. (I6ed05) - נוספה תמיכה ברווחים/סידור בין צירים באמצעות
verticalArrangement
ב-FlowRow
ו-horizontalArrangement
ב-FlowColumn
. אנחנו מסירים גם אתverticalAlignment
ואתhorizontalAlignment
ברמה העליונה בFlowRow/FlowColumn
. מפתחים יכולים להשתמש ב-Modifier.align
במקום זאת. כך אפשר להפחית את הבלבול בין המוסכמות מתן השמות שלverticalAlignment
ושלverticalArrangement
. (I87b60, b/268365538)
גרסה 1.5.0-alpha01
22 במרץ 2023
androidx.compose.foundation:foundation:1.5.0-alpha01
ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha01
שוחררו. גרסה 1.5.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- הפורמט של הטקסט ו-
BasicText
משתנה בהתאם למערכת הצירוף החדשה. במקרים רבים, העדכון הזה מוביל לשיפורים משמעותיים בביצועים. שינויים לא צריכים להיות גלויים. (If1d17, b/246961435) - נוספה פעולת הסמנטיקה
PerformImeAction
כדי להפעיל את הפעולה IME בצמתים של עורך טקסט. (Ic606f, b/269633506)
תיקוני באגים
- עודכנו הפנימיים של
Modifier.hoverable
. הצירוףhoverable
יוצג בכלי הבדיקה רק אם הוא מופעל. (I82103)
גרסה 1.4
גרסה 1.4.3
3 במאי 2023
androidx.compose.foundation:foundation:1.4.3
ו-androidx.compose.foundation:foundation-layout:1.4.3
שוחררו ללא שינויים (רק שדרוג של גרסה).
גרסה 1.4.2
19 באפריל 2023
androidx.compose.foundation:foundation:1.4.2
ו-androidx.compose.foundation:foundation-layout:1.4.2
שוחררו. גרסה 1.4.2 כוללת את ההתחייבויות האלה.
גרסה 1.4.1
5 באפריל 2023
androidx.compose.foundation:foundation:1.4.1
ו-androidx.compose.foundation:foundation-layout:1.4.1
שוחררו. גרסה 1.4.1 כוללת את ההתחייבויות האלה.
גרסה 1.4.0
22 במרץ 2023
androidx.compose.foundation:foundation:1.4.0
ו-androidx.compose.foundation:foundation-layout:1.4.0
שוחררו. גרסה 1.4.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.3.0
- נוסף שילוב תואם לאמוג'י ל
Text
ולTextField
, וכן לפסקה ברמה התחתונה. היא מופעלת כברירת מחדל כשמוגדרת תאימות אמוג'י. - אפשר להגדיר את
EmojiCompat
בטקסט ספציפי באמצעות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)
תיקוני באגים
- פעולת הסמנטיקה של
SetText
שלBasicTextField
תעדכן עכשיו את מאגר הטקסט הזמני באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (למשלperformTextReplacement
). - הפונקציות לבדיקת טקסט
performTextClearance
,performTextReplacement
ו-performTextSelection
משתמשות עכשיו ב-SemanticsActions
. (I0807d, b/269633168, b/269624358)
גרסה 1.4.0-beta02
22 בפברואר 2023
androidx.compose.foundation:foundation:1.4.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.4.0-beta02
שוחררו. גרסה 1.4.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה קריאה חוזרת של
Modifier.Node.onReset()
שמאפשרת לאפס מצב מקומי מסוים כדי לטפל כראוי בפנייה כשנעשה שימוש חוזר ב-Layout
(לדוגמה, כפריט שלLazyColumn
). בוצע תיקון ב-FocusTargetModifierNode
כדי לאפס כראוי את מצב המיקוד. (I65495, b/265201972) - הפרמטר
BlendMode
נוסף לשיטותDrawScope.drawText
,Paragraph.paint
ו-MultiParagraph.paint
כדי לתמוך באלגוריתמים שונים של מיזוג בעת ציור טקסט על קנבס. (I57508) - ה-API של
modifierElementOf()
הוסר. במקום זאת, יש לעבור מ-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
בטקסט ספציפי באמצעותPlatformParagraphStyle
.
שינויים ב-API
- נוספה הטמעה משותפת של API
PinnableContainer
שמשמשת בכלLazyLayouts
כדי לשמור פריטים שיוצאים מההרכבה, אבל עדיין צריכים להיות פעילים. (If45a4) - השם של
PinnableContainer.PinnedHandle.unpin()
השתנה ל-release()
(I4667a)
תרומה חיצונית
- נוסף נכס
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
ל-'decorator' משולב הפונקציהapplyToScroll
ו-applyToFling
. בדוגמאות המעודכנות שבמסמכי התיעוד מפורטות דוגמאות לאופן שבו ניתן ליישם אפקט גלילה מעבר לקצה עם צורת ה-API החדשה. (I8a9c4, b/255554340) - עוד סוג/יכולת null של פונקציות inline/הוצא משימוש (I24f91)
- ממשקי ה-API של
LineBreak
ו-Hyphens
ב-TextStyle
קיבלו דירוג יציב. (Ic1e1d)
תיקוני באגים
- עכשיו הסמן בשדות הטקסט ימשיך להבהב גם כשהאנימציות מושבתות. (I95e70, b/265177763)
Modifier.basicMarquee
מציג עכשיו אנימציה גם אם האנימציות מושבתות בהגדרות המערכת. (I23389, b/262298306, b/265177763)
תרומה חיצונית
- השיטות
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
- ה-constructor של
AndroidFont
עםvariationSettings
הוא עכשיו API יציב, ואפשר להשתמש בו כדי ליצור סוגים חדשים של תיאורי גופנים. (I5adcc, b/261565807) - הושק ממשק ה-API של
PinnableContainer
שהופץ על ידי רשימות מושהות באמצעות שילוב מקומי שמאפשר להצמיד את הפריט הנוכחי. כלומר, פריט שכזה לא יסולק אם נגללו אל מחוץ לתצוגה. לדוגמה, באמצעות המנגנון הזה, תצמידModifier.focusable()
את הפריט הנוכחי שבו מתמקדים. (Ib8881, b/259274257, b/195049010) - שכתבו את האופן שבו מודעות עם גלילה מגיבות ל
bringIntoViewRequesters
ולמודעות למיקוד, כדי לבנות מודל טוב יותר של הפעולות האלה ולטפל ביותר מקרי קצה. (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114) - יותר ערך אפסי של סוג החזרה של פונקציות מוסתרות שהוצאה משימוש (Ibf7b0)
- הניסוי הניסיוני
TextMotion
נוסף אלTextStyle
כדי להגדיר את הטקסט כ'Static(default)
' או כ'אנימציה'. אם רוצים לשנות את גודל הטקסט, לתרגם או לסובב אותו באמצעות אנימציה, יש להשתמש ב-TextMotion.Animated
. (I24dd7) - צריך להוסיף
TextFieldFocusModifier
כדי לתקן התנהגות של ניווט ממוקד בפלטפורמת Android (I00303) - הארגומנט
maxSize: IntSize
ב-drawText
הוחלף בארגומנטsize: Size
כדי לחפוף לפונקציותDrawScope
אחרות. כברירת מחדל,size
מוגדר לערךSize.Unspecified
, ולכן התנהגות ברירת המחדל הקודמת לא אמורה לשנות. (Icd27d)
תיקוני באגים
- כוונונים בפיזיקה הקודת של
SnapFlingBehaviour
לתחושה טבעית יותר.
בעיה ידועה
- בעדכון מ-
androidx.compose.foundation:1.4.0-alpha03
ל-androidx.compose.foundation:1.4.0-alpha04
, יכול להיות שתופיע הודעת השגיאהjava.lang.NoSuchFieldError
. כאן הבעיה דווחה בארגון. נשלח תיקון, ויהיה זמין בעדכון הבא של 'כתיבה'. כדי לעקוף את הבעיה, עליך לעדכן את הספריותandroidx.compose.material
ו-androidx.compose.material3
לגרסה האחרונה(1.1.0-alpha04) או לשדרג לאחור אתandroidx.compose.foundation
ל-1.4.0-alpha03.
גרסה 1.4.0-alpha03
7 בדצמבר 2022
androidx.compose.foundation:foundation:1.4.0-alpha03
ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha03
שוחררו. גרסה 1.4.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- בבדיקות ממשק משתמש שנעשה בהן שימוש בכלל 'כתיבה', המשיכות יופעלו מחדש במהלך
withFrameNanos
קריאה חוזרת (callback) רק אחרי שכל הקריאות החוזרות לפריימים יפסיקו לפעול. ההגדרה הזו תואמת להתנהגות של כתיבת הודעה בזמן הפעלה רגילה. עם זאת, בדיקות שמסתמכות על ההתנהגות הישנה עלולות להיכשל. הפעולה הזו אמורה להשפיע רק על קוד שקורא ישירות ל-withFrameNanos
אוwithFrameMillis
, ושהלוגיקה מחוץ לקריאה החוזרת מועברת לפונקציות האלה שצריך להעביר בתוך הקריאות החוזרות. אפשר לראות את השינויים בבדיקת האנימציה ב-CL הזה לקבלת דוגמאות. - הפרמטר
onPerformTraversals: (Long) -> Unit
האופציונלי נוסף ל-constructor ולפונקציית היצרן שלTestMonotonicFrameClock
כדי להריץ את הקוד אחרי התקשרות חזרה שלwithFrameNanos
, אבל לפני המשך הפעולה של המתקשרים וקורוטינים. (Idb413, b/254115946, b/222093277, b/255802670) - הוספה של פעולות נגישות בדף:
PageUp
,PageDown
,PageLeft
,PageRight
. לתשומת ליבכם: המדדים האלה זמינים רק ב-API 29. (Ida4ab) - אנחנו שמחים להציג את
HorizontalPager
ואתVerticalPager
, דרך להציג תכנים קומפוזביליים בצורה של זימונית. התכונהPagerState
נוספה כדי לשלוט באיתורית וגם בפרטי שאילתות לגבי המצב הנוכחי של הזימונית. השקנו אתPageSize
, דרך לשלוט בגודל הדף של זימונית. באמצעותה אפשר ליצור קרוסלה כמו זימונית. השקנו אתPagerSnapDistance
, דרך שמאפשרת לשלוט באופן הפעולה של ההצמדה בהתנהגות ההחלקה של זימונית. (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) - נוסף ממשק API של Modifier להרצת שאילתות על פרטי גלילה של ישויות אב. (I2ba9d, b/203141462)
- נעשה שימוש ב-
Clickable
כדי לעכב באופן תקין אינטראקציות עם העיתונות, כאשר תנועות עשויות להפוך לאירועי גלילה. - בוצע תיקון של
Clickables
לעיכוב תקין של הדים בזמן שימוש בתוךScrollable ViewGroup
. - חלונית ההזזה ו-Sheets עודכנו כדי להשהות לחיצות בצורה נכונה במקרה שתנועות יכולות להפוך לאירועי גלילה.
- צריך לעדכן את השם של
snapStepSize
בהתאם לשיטות אחרות ב-SnapLayoutInfoProvider
. (Ife67c) - הוספת את
EmojiCompat
אלCompose
(Ibf6f9, b/139326806) - שינית את השם של
consumedWindowInsets()
. השם החדש הואconsumeWindowInsets()
ואת השםwithConsumedWindowInsets()
לשםonConsumedWindowInsetsChanged()
. המשנים הפכו לגלויים לכולם. (Ie44e1)
תיקוני באגים
- הקריסה ברשת
Modifier.animateItemPlacement()
וברשתות 'לאזיות' תוקנה. הדבר קרה בתנאים מסוימים, כאשר מספר הפריטים החדשים קטן יותר ממספר הפריטים הקודם. (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
מממשקי API של Lazy* (I12197) - נוסף פרמטר ב-Lazy APIs כדי לכתוב ולהציב מחוץ לפריטי התצוגה (I69e89, b/172029355)
- הפרמטר
minLines
נוסף לערכיBasicText
ול-BasicTextField
. הוא מאפשר להגדיר את הגובה המינימלי של תכנים קומפוזביליים כאלה מספר השורות (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
. SnapFlingBehavior
,rememberSnapFlingBehavior
וממשקי API תואמים אחרים נוספו כממשקי API ניסיוניים.Modifier.clickable
,Modifier.toggleable
ו-Modifier.selectable
מציגים עכשיו הדים אם לוחצים עליהם באמצעות המקלדת או מקשי החיצים (d-pad).
גרסה 1.3.0-rc01
5 באוקטובר 2022
androidx.compose.foundation:foundation:1.3.0-rc01
ו-androidx.compose.foundation:foundation-layout:1.3.0-rc01
שוחררו. גרסה 1.3.0-rc01 מכילה את ההתחייבויות האלה.
שינויים ב-API
- התכונה
lowVelocityAnimationSpec
הופעלה בשלב הגישה כשאין מספיק מהירות הטיה כדי להתרוקן. (Iaeb27) - נוספו מקפים ניסיוניים חדשים של API כדי לתמוך במקף אוטומטי בטקסט (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
שמאפשר להפעיל Snaps ב-LazyLists
במהירות. (Ifb48a) - המפעל
snapFlingBehavior
הוחלף בסיווגSnapFlingBehavior
מבטון. היקף ההרשאות:SnapLayoutInfoProvider
שיטות לצפיפות כדי להקל על משתמשי ה-API לבצע המרות מ-Dp<->Px. (I54a11) - צריך לעדכן את השדה
LazyLayoutMeasureScope.measure
כדי להחזיר רשימה של פריטי מיקום ומודגשים בהם השינויים הרצויים בערך המוחזר. (I48b7c) - הושקה השיטה
SnapLayoutInfoProvider
, שלוקחתLazyListState
ליצור מכונה שלSnapLayoutInfoProvider
שאפשר להשתמש בה כדי להפעיל הצמדהFlingBehavior
ל-LazyLists
. (I2dd10)
תיקוני באגים
- גורמים מחדש של
AwaitPointerEventScope#awaitLongPressOrCancellation
כדי להתאים לפונקציות המתנה אחרות (I646e6)
גרסה 1.3.0-beta01
24 באוגוסט 2022
androidx.compose.foundation:foundation:1.3.0-beta01
ו-androidx.compose.foundation:foundation-layout:1.3.0-beta01
שוחררו. גרסה 1.3.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- בוצעה הסרה של
pointerPosition
מהאפשרותOverscrollEffect
– אפקטים שחשובים למיקום הסמן יכולים להשתמש ב-Modifier.pointerInput { }
ב-effectModifier
כדי לקבל את מיקום הסמן הנוכחי. (I9f606, b/241239306) - חשיפה של
AwaitPointerEventScope#awaitLongPressOrCancellation
כאבן בניין נוספת לזיהוי תנועה מורכב יותר (I04374, b/181577176) - הגדרה של
lazyListSnapLayoutInfoProvider
להפעלת הצמדה ב'רשימות עצלות'. (I3ecdf) - הוספנו את
SnapFlingBehavior
, התנהגות של החלקה שמאפשרת הצמדה של רשימות. עליך לספק מופע שלSnapLayoutInfoProvider
עם מידע על פריסת Snaps שלך. (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
- בגופנים של משאבים יש עכשיו תמיכה בהגדרה של וריאציות של גופן (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
יציבים עכשיו.- עכשיו אפשר לציין סוג תוכן לפריטים ברשימות וברשתות של 'עצלנים'. כך הרכיבים יוכלו לעשות שימוש חוזר ברכיבים בצורה יעילה יותר.
- ברשימות ובתצוגות רשת עצלות יש עכשיו פרמטר אחד (
userScrollEnabled
) שמאפשר להשבית את הגלילה באמצעות תנועות המשתמש. - נוסף API ניסיוני חדש בשם
LazyLayout
. זהו ה-API שבו אנחנו משתמשים באופן פנימי כדי להפעיל רשתות ורשימות של עצלנים. - ממשק ה-API של
OverscrollEffect
הושק כניסיוני. ניתן להגדיר אפקטים מותאמים אישית לגלילה מעבר לקצה וגם להוסיף פלטפורמה סטנדרטית אחת לקונטיינרים בהתאמה אישית שניתנים לגלילה. - הושקו ממשקי API ליכולת פעולה הדדית של גלילה בתוך גלילה כדי לאפשר יכולת פעולה הדדית בין תצוגות לבין כתיבה של גורמי גלילה.
- גלילה באמצעות עכבר ומשטח מגע נוספה לכל מאגרי הגלילה.
גרסה 1.2.0-rc03
29 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc03
ו-androidx.compose.foundation:foundation-layout:1.2.0-rc03
שוחררו. גרסה 1.2.0-rc03 מכילה את שמירות האלה.
- לא בוצעו שינויים מאז 1.2.0-rc02.
גרסה 1.2.0-rc02
22 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc02
ו-androidx.compose.foundation:foundation-layout:1.2.0-rc02
שוחררו. גרסה 1.2.0-rc02 מכילה את שמירות האלה.
גרסה 1.2.0-rc01
15 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-rc01
ו-androidx.compose.foundation:foundation-layout:1.2.0-rc01
שוחררו. גרסה 1.2.0-rc01 מכילה את שמירות האלה.
שינויים ב-API
- הוספנו
OverscrollEffect
ניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילת יתר, לצד עומסי-היתר שלModifier.scrollable
שמקבלים אותו. LocalOverScrollConfiguration
הניסיוני הועבר מ-foundation.gesture
לחבילת היסודות ושמו השתנה ל-LocalOverscrollConfiguration
(If19fb, b/204650733)- ממשקים בספריות הרכבה נוצרים עכשיו באמצעות שיטות ברירת מחדל של jdk8 (I5bcf1)
- הושק ממשק API ניסיוני
checkScrollableContainerConstraints()
שמאפשר לבדוק שאנחנו לא מקוננים קונטיינרים שניתנים לגלילה. אפשר להשתמש בתכונה הזו כשיוצרים פריסות עצלות שאפשר לגלול דרךLazyLayout
. (Id6fab, b/233352497) - הוסרה
LazyVerticalGrid
שהוצאה משימוש מחבילתandroidx.compose.foundation.lazy
. ממשק ה-API היציב החדש נמצא ב-androidx.compose.foundation.lazy.grid
(I73c76, b/225192009)
גרסה 1.2.0-beta03
1 ביוני 2022
androidx.compose.foundation:foundation:1.2.0-beta03
ו-androidx.compose.foundation:foundation-layout:1.2.0-beta03
שוחררו. גרסה 1.2.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספו
IntervalList
ו-MutableIntervalList
ניסיוניים חדשים. הוא מאפשר לייצג רשימה מסוימת של ערכים באמצעות מספר פרקי זמן. כדאי להשתמש באפשרות הזו כשרוצים להגדיר DNS משלכם, בדומה לזה שמשמש אתLazyColumn
, שבו ניתן להגדיר פריטים ברשימה באמצעות קריאות מרובות של פריטים או פריטים. (I2d05e, b/228580728)
תיקוני באגים
- הבהרנו את מסמכי התיעוד בנושא
WindowInsets.ime
כדי לציין שכניסות שלime
נכללות כבר בדוחות של API 23, אבל רק מונפשות מגרסה 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) - בממשק ה-API של
LazyLayoutItemProvider
במקום במפעל שמחזיר את ה-lambda הקומפוזבילי לפי אינדקס, עכשיו יש לנו פריט של פונקציה קומפוזבילית פשוטה יותר שמקבל את האינדקס. (Id2196) - השם של LazyLayoutItemsProvider השתנה ל-LazyLayoutItemProvider (I0638c)
- השם של
LazyLayoutItemsProvider.itemsCount
השתנה ל-itemCount
(Id409c) - הוספת המברשת ל-
TextStyle
ול-SpanStyle
כדי לספק דרך לשרטוט טקסט עם צבעים הדרגתיים. (I53869, b/187839528) trimFirstLineTop
,trimLastLineBottom
מאפיינים של הערך שלLineHeightBehavior
השתנה ל-enum אחד:LineHeightTrim
. ל-LineHeightTrim
יש ערכים של 4 מצבים המוגדרים על ידי שני בוליאניים:FirstLineTop
,LastLineBottom
, שניהם ואף אחד (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)
תרומה חיצונית
- אם גוללים אנכיים ב-Android, הערך של
MouseInjectionScope.scroll(delta = 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) - פיסקה ו-MultiParagraph מקבלים עכשיו את הפרמטר Constraints. ההעברה של
Constraints.maxHeight
לא מתבצעת כרגע, אבל היא תאפשר: תבצע חישובים בעתיד, כמו אליפסה על סמך הגובה. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
מקבל עכשיו מחלקה מותאמת אישית כמו MutableSet, שלא מאפשרת להוסיף בה פריטים חדשים. (Icd314)- האפשרות 'צריכה חלקית (מיקום למטה' או 'מיקום נמוך') הוצאה משימוש ב-
PointerInputChange
. אפשר להשתמש ב-consume()
כדי לקבל את השינוי באופן מלא. אפשר להשתמש ב-isConsumed
כדי לבדוק אם מישהו אחר ביצע את השינוי בעבר. - מעכשיו,
PointerInputChange::copy()
תמיד יוצר עותק שטחי שימוש. פירוש הדבר הוא שעותקים שלPointerInputChange
ייצרוך לאחר מימוש אחד מהעותקים. כדי ליצורPointerInputChange
ללא גבולות, צריך להשתמש ב-constructor. (Ie6be4, b/225669674) - מוצג API ניסיוני חדש של
LazyLayout
. כך תוכלו ליצור רכיבים משלכם, כמוLazyColumn
שלLazyVerticalGrid
. הערה: ה-API עדיין נמצא בשלבי פיתוח מוקדמים, ואפשר לשנות אותו בגרסאות עתידיות. (Iba2bc, b/166591700) - עכשיו
AndroidFont
משתמש ב-typefaceLoader
כפרמטר של constructor. (I2c971) - מודעה נלווית עם
WindowInsets
חושפת עכשיו את החשיפה (אם היא במסך, בין אם היא מצטלבת עם החלון) ומה הגודל שלה אם היא זמינה במכשיר, אבל לא פעילה כרגע. (I65182, b/217770337)
גרסה 1.2.0-alpha07
6 באפריל 2022
androidx.compose.foundation:foundation:1.2.0-alpha07
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha07
שוחררו. גרסה 1.2.0-alpha07 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף API של
PinnableParent
שמאפשר צאצאים של פריסות עצלות כדי למנוע את השלכת הפריטים שמרכיבים כרגע (Ibbdd0, b/184670295) - ב-
LazyListLayoutInfo
וב-LazyGridLayoutInfo
יש עכשיו שדות שלbeforeContentPadding
ו-afterContentPadding
(I3b628, b/200920410) - נוספה
KeyboardType.Decimal
כחלופה ל-Keyboard.Number
כדי לכלול באופן ספציפי מפריד עשרוני ב-IME. (Iec4c8, b/209835363) - הוספת גופן חדש לתיאור הגופן(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
מאפשר למפתחים להשבית את הצריכה של רכיבי windowInset ב-Android. כך אפשר להפריד ביןComposeViews
בהיררכיה לכל אפליקציה שלWindowInsets
, בלי להפריע זה לזה. (I0ef08, b/220943142)
גרסה 1.2.0-alpha06
23 במרץ, 2022
androidx.compose.foundation:foundation:1.2.0-alpha06
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha06
שוחררו. גרסה 1.2.0-alpha06 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה פעולה סמנטיקה של
RequestFocus
כדי לבקש התמקדות ביעד שניתן להתמקד בו. (I17b71) - התבצע מיזוג של
FocusOrder
אלFocusProperties
, ועכשיו יש לשירותfocusProperties()
את כל היכולות שלfocusOrder()
. הוצאנו משימוש אתFocusOrder
ואתfocusOrder()
. צריך להחליף את השדהfocusOrder()
שמקבל את הערךfocusRequester
במשתנהfocusRequester()
בשילוב עםfocusProperties()
. כך אפשר להפריד בצורה ברורה יותר בין החששות. (I601b7) - הוספנו את
WindowInsets.asPaddingValues(Density)
כדי לאפשר למפתחים לבצע המרה בלי שיצטרכו להיות הרכבים. I94c35 - ניתוח מעודכן של פריטים וקטוריים שניתנים להזזה כדי לתמוך בשיקוף אוטומטי כדי להפוך את התוכן של
VectorPainter
אם הפריסה הנוכחית הכיוון הוא RTL. (I79cd9, b/185760237)
תיקוני באגים
- תנאי הצירוף של הגלילה (
Modifier.verticalScroll()
,Modifier.horizontalScroll()
ו-Modifier.scrollable()
) יגללו עכשיו כדי שהתוכן הקומפוזבילי עם המיקוד יהיה גלוי אם משנים את הגודל של אזור הגלילה והתוכן הקומפוזבילי עם המיקוד היה גלוי בעבר. - עכשיו, TextFields (שדות טקסט) יישמרו מעל המקלדת כשמתמקדים בה, וכשהמקלדת מוצגת, כשנמצאים בתוך רכיב שלא ניתן לגלול בעצמה ומצב הקלט הרך הוא
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) - הממשק המדידה חושף עכשיו את נכס הורה (I3313f)
- התכונה
Modifier.onFocusedBoundsChanged
הושקה כדי לאפשר שימוש ניסיוני עמידה בגבולות של דברים שילדים יכולים להתמקד בהם. (I14283, b/220030968, b/190539358, b/192043120, b/216842427) - נוספה רשת LazyHorizontalGrid. (I61ae7, b/191238807)
- נוסף API חדש של
LazyVerticalGrid
להגדרת גדלים של צירים שונים (I17723) - נוסף מאפיין FocusGroup (I64bc0, b/213508274, b/184670295)
תיקוני באגים
- עכשיו יוצגו הערכים הנכונים ב-
WindowInsets.toString()
. (I1585d)
תרומה חיצונית
- עודכן לשימוש ב-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) - תמיכה בטעינת גופנים אסינכרוניים ב-Text (I77057, b/214587005)
LazyVerticalGrid
תומך עכשיו ב-line breaking
לפני פריטים שהמפתח שלהם לא מתאים לשורה הנוכחית. (I05c40, b/207462103)- השם של
excludeFromSystemGestures
השתנה ל-systemGesturesExclusion
(I19526) - ב-
LazyVerticalGrid
יש עכשיו תמיכה בפריסה הפוכה. (I6d7d7, b/215572963, b/211753558) - הוספת השיטה
WindowInsets.only()
כדי לאפשר למפתחים כדי לכלול רק מימדים מהטווחים שבחלונות. (I14c94, b/217768486) נוספו
ComposableTarget
,ComposableTargetMarker
וגםComposableOpenTarget
שמאפשר לקבל דיווח על זמן שבו פונקציה קומפוזבילית נקראת טירגוט לאפליקציה שהיא לא שמיועד לשימוש.ברוב המקרים, רכיב הכתיבה יכול להסיק את ההערות של המהדר (compiler), כך שהשימוש באנוטציות האלה ישירות צריך להיות נדיר . המקרים שלא ניתן להסיק כוללים יצירה ו באמצעות פונקציות קומפוזביליות מופשטות בהתאמה אישית (כמו שיטות ממשק), שדות או משתנים גלובליים lambdas קומפוזביליים (מסיקים משתנים ופרמטרים מקומיים), או כשמשתמשים ב-
ComposeNode
או בפונקציות קומפוזביליות קשורות.לאפליקציות קומפוזביליות בהתאמה אישית, פונקציה זו מפעילה את הפונקציות הקומפוזביליות
ComposeNode
אוReusableComposeNode
צריכים להוסיף הערתCompoableTarget
לפונקציה ולכל הערה אחרת סוגי פרמטרים קומפוזביליים של lambda. עם זאת, מומלץ כדי ליצור הערה שנוספהComposableTargetMarker
ולאחר מכן ייעשה שימוש בהערה המסומנת במקוםComposableTarget
ישירות. הערה קומפוזבילית שמסומן ב-ComposableTargetMarker
שווה ערך ל-ComposbleTarget
בשם המוגדר במלואו של המאפיין class בתור הפרמטר 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
methods ב-TextInputSession
ו-TextInputService
הוצאו משימוש ולא ייקראו אליהם. כדאי להשתמש יש גם אפשרותBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)- האנימציות הופעלו בפריטים של רשתות עצלות עם Modifier.animateItemPosition(). (Ib6621, b/211753218)
BringIntoViewRequester
מפיץ עכשיו בקשות לאירוח תצוגת Android. (Ia7a51)FontFamilyResolver
זמין עכשיו דרךLocalFontFamilyResolver.current
- בוצעה הוספה של
createFontFamilyResolver(context)
וגםcreateFontFamilyResolver(context, coroutineScope)
כדי ליצור חדש מקודדי FontFamily מחוץ לשימוש בכתיבה. - הפסקאות והסעיפים הקודמים יהיו עכשיו
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
מכיל עכשיו המקודד שמשמש לפריסה הזו, הוצא משימושTextLayoutResult.layoutInput.resourceLoader
כי כבר לא נעשה בו שימוש. (Id5a45, b/174162090)
- בוצעה הוספה של
- נוסף
AndroidFont
, ממשק API חדש ברמה נמוכה לאספקת סוגים חדשים של מתארי משאבי הגופנים ב-Android. לדוגמה, טעינת גופנים מ- קצה עורפי ספציפי לאפליקציה, עם אפשרות לאתר גופנים שהותקנו מראש במכשיר, או טעינת גופן ממשאב שלא סופק על ידי ההגדרה הנוכחית מפעלים לגופנים.- API של
Font.ResourceLoaded
הורחב כדי לתמוך בתמיכה אופציונלית ובאסינכרונית טעינת הגופן מתבצעת. לא מומלץ שמפתחי אפליקציות ישתמשו ישירות בממשק API. כדי להוסיף סוגי גופנים חדשים, יש להיכנס אל AndroidFont. - פונקציית התוסף
Font.AndroidResourceLoader
מאפשרת שלFont.ResourceLoader
כשהוא לא בקומפוזיציה. - הפרמטר
loadingStrategy
נוסף לגופנים מבוססי משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים שניתן להוריד. (Ie5aea, b/174162090)
- API של
- ה-constructor של
Typeface(FontFamily)
הוצא משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. עם גופנים שניתנים להורדה, השיחה הזו יכולה להיות מוגבלת ל-10 אנשים שניות. במקומו צריך להשתמש ב-FontFamilyResolver.preload
- האפשרות
fontResource(FontFamily): Typeface
הוצאה משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload
(If8e7c, b/174162090)
- האפשרות
- עכשיו אפשר לציין את סוג התוכן של הפריטים של
LazyVerticalGrid
– פונקציות פריטים/פריטים ב-LazyGridScope
מקבלים עכשיו פרמטר כזה. מידע כזה עוזר להשתמש שוב בלוגיקה של הרכבה כדי להפוך אותו ליעיל יותר, ולעשות שימוש חוזר רק בתוכן בין פריטים מסוג דומה. (I7b355, b/215372836) - ל-
LazyListLayoutInfo
ול-LazyGridLayoutInfo
יש עכשיו נכסים חדשים:viewportSize
,orientation
,reverseLayout
(Ifc8ed, b/200920410) - עכשיו אפשר לציין את סוג התוכן של הפריטים בפונקציות LazyColumn/LazyRow - item/items ב-LazyListScope. מידע כזה עוזר להשתמש שוב בלוגיקה של הרכבה כדי להפוך אותו ביעילות רבה יותר, ולעשות שימוש חוזר רק בתוכן בין פריטים מסוג דומה. (I26506)
- ה-constructor של
SubcomposeLayoutState
שמקבל אתmaxSlotsToRetainForReuse
הוצא משימוש. במקום זאת, יש constructor חדש שמקבל אתSubcomposeSlotReusePolicy
– ממשק חדש שמאפשר שליטה מפורטת יותר על המקומות שיש לשמור לשימוש חוזר בעתיד. (I52c4d) - הוספת מגבילי התאמה ל-windowInsets, גם למרווח פנימי ולשנות את הגודל. כך חלק מהתוכן יכול להתפרס לתוך האזור הפנימי, ועדיין מכילים תוכן ראשי, והם צריכים להישאר מחוץ לאזור הפנימי. לדוגמה, אפשר להשתמש ב-windowInsetsPting כדי למלא את התוכן כדי להימנע מאזורים שמכוסה באופן מלא או חלקי. (Id0395, b/213942085)
תיקוני באגים
- עכשיו, שדות TextFields יופיעו מעל המקלדת
והמקלדת מוצגת, כשמצב הקלט הרך
ADJUST_PAN
(I8eaeb, b/190539358, b/192043120) - במחשב נעשה שימוש בהרכבה מקומי ל-
FontFamily.Resolver
- הוצאה משימוש של
FontLoader
למחשב - מפעל חדש של
createFontFamilyResolver
במחשב (I6bbb, 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
לשיטות של עומס יתר שיטות קיימות ללא לוגיקה מורכבת. הפעולה הזו מפחיתה את המהדר (compiler) שיצרה בדיקות שינון (שווה) לכל הפרמטרים חוזרים בפונקציה הפנימית שנקראת. (I90490) - נוספו
excludeFromSystemGesture
מגבילי התאמה עבור גישה קלה ל-setSystemGestureExclusionRects
של Android (I46f07)
תיקוני באגים
- התבצע כוונון של התנהגות ההגדלה של הטקסט כדי לבחור את הטקסט התאמה למגדיל התצוגה של הפלטפורמה. (Idd918, b/206833278)
LazyColumn
,LazyRow
,Modifier.verticalScroll
ומאגרים אחרים שמשתמשים ב-Modifier.scrollable
תומכים עכשיו בגלילה באמצעות גלגל העכבר. (I2b5e1, b/198214718)
גרסה 1.2.0-alpha01
12 בינואר, 2022
androidx.compose.foundation:foundation:1.2.0-alpha01
ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha01
שוחררו. גרסה 1.2.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- הפרמטר החדש
userScrollEnabled
נוסף ל-LazyColumn
, ל-LazyRow
ול-LazyVerticalGrid
כדי לאפשר למשתמשים להשבית באופן זמני או קבוע את הגלילה ביוזמת המשתמש באמצעות תנועות מגע או פעולות נגישות. עדיין תהיה אפשרות לגלול באופן פרוגרמטי באמצעות השיטות במדינה. (I7eae9, b/201150093) - הוספת קריאה חוזרת (callback) של
onSizeChanged
למקש הצירוף של זכוכית המגדלת. (I6879f) - ווידג'ט ההגדלה מוצג עכשיו כשגוררים את הבחירה
ב
SelectionContainer
. (I30b38, b/139320979)
תיקוני באגים
- תיקון נקודת האחיזה של הסמן
TextField
שלא מוסתרת כשגוללים מתוך צפייה. (I14552, b/208883748)
עדכונים בנושא תלות
- עכשיו תלוי ב-Kotlin
1.6.10
.
גרסה 1.1
גרסה 1.1.1
23 בפברואר 2022
androidx.compose.foundation:foundation:1.1.1
ו-androidx.compose.foundation:foundation-layout:1.1.1
שוחררו. גרסה 1.1.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תיקון
NullPointerException
ב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - תיקון הקריסה שנגרמה בגלל תוכן שבלוח העריכה במהלך קריאה מ לוח העריכה ב-Android. (I06020, b/197769306)
- RTL קבוע ב-
LazyVerticalGrid
(aosp/1931080, b/207510535)
גרסה 1.1.0
9 בפברואר 2022
androidx.compose.foundation:foundation:1.1.0
ו-androidx.compose.foundation:foundation-layout:1.1.0
שוחררו. גרסה 1.1.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.0.0
- תמיכה יציבה באפקט גלילת היתר ב-Android 12
- שיפורים בגודל משטחי מגע
- חשוב לשים לב: בכל הנוגע לניסוח 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כך שיעמדו בהנחיות הנגישות של Material עבור גודל יעד המגע. לדוגמה, משטח המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרת את גודל הלחצן קטן יותר. זה מאפשר התאמה של חומרי הלימוד לאותה התנהגות של רכיבי Material Design, שמספק התנהגות עקבית אם משלבים בין תצוגות מפורטות לבין 'כתיבה'. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי 'חומר הכתיבה', צריך לעמוד בדרישות המינימליות לנגישות במשטח מגע.
- תמיכה יציבה במסילת הניווט
- שדרוג של מספר ממשקי 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 מכילה את ההתחייבויות האלה.
תיקוני באגים
- עודכנה לתמיכה בחומר 'כתיבה' 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)
נוספה יכולת ניסיונית להוסיף אנימציה למיקומי פריטים ברשימות של 'לאיזי'. יש תכונת התאמה חדשה זמינה ב-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)
תרומה חיצונית
- בוצעה הוספה של
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
- נוסף עומס יתר של פריסה בלי ילדים, עם יעילות משופרת (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 מכילה את התחייבויות אלה.
תכונות חדשות
- הכתיבה
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
עודכנה שימוש בתשובות של מקור ויעד כדי לצרוך מסנן איכות אופציונלי הפרמטר. זה שימושי לפיקסלים אומנות שמיועדת להיות מפוקסלת כשהוא מותאם לגרפיקה מבוססת-פיקסלים. עודכן ב-BitmapPainter + תמונה קומפוזבילית כדי לצרוך גם תכונת Filter Quality (איכות סינון) אופציונלית פרמטר (Ie4fb0, b/180311607) - TextField מבטל עכשיו את הבחירה כשלוחצים על לחצן 'הקודם', שתואם להתנהגות של Android EditText. (I3ca16, b/174173645)
- הוספת נקודת אחיזה של הסמן. (I07a82, b/173016579)
תיקוני באגים
- אנימציה של גלילה באמצעות פעולות סמנטיקה ברשימות עצלות וברכיבי גלילה רגילה (Id9066, b/190742024)
תרומה חיצונית
- הפונקציה
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 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקן מכונות של conversionStateOf למעקב אחרי קריסה. (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 כוללת את ההתחייבויות האלה.
עודכנה לתמיכה בגרסה 'כתיבה' 1.0.2
. הכתיבה 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
זוהי הגרסה היציבה הראשונה של 'כתיבה'. לפרטים נוספים, מומלץ לעיין בבלוג הרשמי של תוכנית 'כתיבת תוכן'.
בעיות מוכרות
אם אתם משתמשים ב-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
- לוח הציור תומך עכשיו בפרמטר 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)' ו-LiveRegionMode למחלקות מוטבעות עם Private constructor (Id1890)
- שימוש באותיות רישיות מומר למחלקה בתוך השורה. (Id5a1c)
- TextOverflow משתנה למחלקה מוטבעת. (I433af)
תיקוני באגים
- עכשיו, כשמציינים את המפתחות הייחודיים לפריטים מסוג LazyColumn/Line, הגלילה נשמרת על סמך המפתח. כלומר, אם מוסיפים/מסירים פריטים לפני הפריט הגלוי הנוכחי, הפריט עם המפתח הנתון יישמר בתור הפריט הגלוי הראשון. (Id263f, b/184257857)
- קבועי מפתח הם @trialComposeUiApi בשלב זה. צריכה קוד יכול להצהיר על קבועים פרטיים לפני ייצוב. (Ia5d48)
- נוספה ל-AndroidComposeTestRule את שיטת הפעולה הזאת שיכול להיות
משמשת לבדיקת frameworks להתקנת מנגנון חלופי
או להשיג שקטנות. כדאי להשתמש
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
או בספרייה מקבילה. הקובץ מציין כלל בכל שורה, כאשר כלל במקרה הזה הוא דפוס להתאמה ל-methods או מחלקות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט פרופיל ART קריא לאנשים, שנעשה בו שימוש כשמשתמשים ב-adb shell profman --dump-classes-and-methods ...
. לכללים אלה יש אחת משתי דרכים לטירגוט שיטות או מחלקות.כלל שיטה יכלול את הדפוס הבא:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
וכלל מחלקה יהיה הדפוס הבא:
<CLASS_DESCRIPTOR>
הערך
<FLAGS>
הוא אחד או יותר מהתוויםH
,S
ו-P
כדי לציין אם יש לסמן את השיטה הזו כ'חם', 'הפעלה' או 'פוסט סטארט-אפ'.<CLASS_DESCRIPTOR>
הוא התיאור של המחלקה שאליה שייכת שיטת הטירגוט. לדוגמה, המחלקהandroidx.compose.runtime.SlotTable
תקבל מתאר שלLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
הוא החתימה של השיטה, והוא כולל את השם, סוגי הפרמטרים וסוגי ההחזרה של השיטה. לדוגמה, השיטהfun isPlaced(): Boolean
ב-LayoutNode
כוללת את החתימהisPlaced()Z
.לתבניות האלה יכולים להיות תווים כלליים לחיפוש (
**
,*
ו-?
) כדי שכלל יחיד יכלול כמה שיטות או מחלקות.
למה משמשים הכללים?
שיטה עם הדגל
H
מציינת שהשיטה הזו היא 'חם' וצריך להרכיב אותה מראש.שיטה עם הדגל
S
מציינת שזו שיטה שנקראת בזמן ההפעלה, וצריך להרכיב אותה מראש כדי למנוע את עלות ההידור והפירוש של השיטה בזמן ההפעלה.שיטה עם הדגל
P
מציינת שזו שיטה שנקראת אחרי ההפעלה.מחלקה שנמצאת בקובץ הזה מצביעה על כך שנעשה בו שימוש במהלך ההפעלה וצריך להקצות אותו מראש בערימה כדי למנוע את עלות הטעינה של הכיתה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שיישמרו בפריטי מידע שנוצרו בתהליך הפיתוח (Artifact) של AAR. לאחר מכן, כשמתבצעת בנייה של אפליקציה שכוללת את פריטי המידע האלה שנוצרו בתהליך הפיתוח (Artifact), הכללים האלה ממוזגים יחד, והכללים הממוזגים משמשים כדי ליצור פרופיל 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
- NestedScrollSource enum מוחלף במחלקה מוטבעת. (Ie321b, b/187055290)
- ארגון מחדש של השימושים ב-enum למחלקות מוטבעות כדי להימנע עם הצהרות ממצות נוספו ערכי enum חדשים. (I2b5eb)
- הוספת זמן קצוב לתפוגה של הקשה לצורך לחיצה או החלפת מצב כדי למנוע הצגת גלים במהלך גלילה או גרירה (Ia2704, b/168524931)
- מאפייני ContentDescription ו-Text סמנטיקה כבר לא זמינים ערכים בודדים, אלא רשימות. כך אפשר למזג אותם כפי שהם במקום זאת של שרשורי מחרוזות. סופקו גם ממשקי API טובים יותר לבדיקה כדי להשתמש שינויים (Ica6bf, b/184825850)
Modifier.focusModifier()
הוצא משימוש והוחלף ב-Modifier.focusTarget()
(I6c860)- GboardType enum מוחלפת במחלקה מוטבעת. (I73045, b/187055290)
FocusState
enum הוחלף בממשק עםFocusState
(Iccc1a, b/187055290)- ImeAction enum מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
- הפונקציות של
AnnotatedString.withAnnotation
הן עכשיו trialTextApi במקום trialComposeApi. (I0cd0a)- constructor של TextUnit עם TextUnitType נקרא עכשיו trialTextApi במקום trialComposeApi.
- הערך של PWordValues הוא עכשיו
@Stable
במקום@Immutable
(I88c50)
תיקוני באגים
- תיקון קריסות של לחיצה ארוכה על האזור הריק בטקסט שאינו ריק. (I33ab5, b/187437299)
- הצגת סרגל הכלים לאחר SelectAll (I495d9, b/185919613)
- תיקון עבור מאגרים שניתנים לגלילה שגוזרים את הצאצאים שלהם על הציר האופקי. אפשר לשחזר אותו בקלות אם יש לכם שורת LazyRow עם פריטים בכרטיס. עכשיו הצל לא ייחתך. (Icb635, b/186318448)
- תוקנה בעיה שבה גלים או סימנים אחרים נתקעו לפעמים בלחיצה ארוכה במהלך שימוש ב-Modifier.combinedClickable (I2298c, b/186223077)
- עכשיו
detectDragGesures
,detectVerticalGestures
ו-detectHorizontalGestures
ישתמשו בשינוי המיקום באופן אוטומטי, ללא צורך בקריאה לשנות.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)
תיקוני באגים
- בשלב הזה, עד 2 פריטים שהיו פעילים בעבר יופיעו ב-LazyColumn/Line, גם אם הם נגללו כלפי מטה. כך הרכיב יכול לעשות שימוש חוזר בהרכבות המשנה הפעילות במקרה שנצטרך להרכיב פריט חדש, וכך תשפר את ביצועי הגלילה. Ie5555
- הסרת צבע רקע. (I38660)
- שרטט את רקע הבחירה באמצעות DrawScope. (I73c61, b/186674472)
- תוקנה רגרסיה של בטא06 שהשפיעה על 'שורה/עמודה' באמצעות הסדרים של 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 והפונקציות של כלי העזר ל-Annotation AnnotatedString.Builder (I8cbdc, b/178446304)
- ערכי הפרמטר
0.dp
המוגדרים כברירת מחדל נוספו אלPaddingValues(horizontal, vertical)
(I05571, b/181336792)
תיקוני באגים
- שורה ו- הצאצאים של העמודה עם
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
- שינוי השם של מקלדת ההסתרה ותצוגת התוכנה להפעלת התוכנה
בקרי תוכנה ל-
hide()
ול-show()
בהתאמה.- יש לספק את הממשק המלא של CompositionLocal עבור Local SoftwareKeyboardController, שמאפשר להגדיר אותו (במיוחד שימושי בבדיקות) (I579a6)
- הצגה של
TextOverflow.Visible
. (Ic8f89) - הוסרו המופעים הציבוריים של
RowScope
,ColumnScope
,BoxScope
ו-BoxWithConstraintsScope
. (I4e83e, b/181869067)
תיקוני באגים
- תוקנה הבעיה כשפריטים של
LazyColumn
/LazyRow
ממוקמים בקצוות באופן שגוי אחרי הנפילה מהירה (Ie4d13, b/183877420) לפני השינוי הזה, היה אפשר לדלג על פונקציות קומפוזביליות מקומיות על סמך הפרמטרים שלהן. אחרי השינוי הזה, לא המערכת תדלג על פונקציות קומפוזביליות מקומיות. השינוי הזה בוצע כי פעמים רבות ומקובלות וצפויות שהפונקציות המקומיות יתעדו פרמטרים מתבנית ההורה, ודילוג עליהן הוא מקור נפוץ לבאגים.
לסיכום, נבחן את הדוגמה:
@Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) { @Composable fun ShowCount() { Text("Count: $count") } ShowCount() Button(onClick={ onCountChange(count + 1) }) { Text("Increment") } }
לפני השינוי הזה, הפונקציה הקומפוזבילית
ShowCount
תמיד הייתה מדלגת, גם אחרי שהפרמטרcount
עודכן. הם לא נספרים כך יותר. (I5648a)
גרסה 1.0.0-beta03
24 במרץ 2021
androidx.compose.foundation:foundation:1.0.0-beta03
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta03
שוחררו. גרסה 1.0.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- האפשרות
DefaultMonotonicFrameClock
הוצאה משימוש. השיחה תכף תחוברwithFrameNanos
אוRecomposer.runRecomposeAndApplyChanges
ללאMonotonicFrameClock
יזרק עכשיו אתIllegalStateException
. (I4eb0d)
תיקוני באגים
- הפונקציה
FlingBehavior.performFling()
נקראת עכשיו גם כשהמהירות היא 0 (I0b6e5, b/181237123)
גרסה 1.0.0-beta02
10 במרץ 2021
androidx.compose.foundation:foundation:1.0.0-beta02
ו-androidx.compose.foundation:foundation-layout:1.0.0-beta02
שוחררו. גרסה 1.0.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספו מספר אופטימיזציות קטנות בלוגיקת המדידה של LazyColumn (Ic6889)
- נוספה יצירה מקומית חדשה של
LocalSoftwareKeyboardController
צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I5951e, b/168778053) - נוספה יצירה מקומית חדשה של
LocalSoftwareKeyboardController
צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController 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 מכילה את התחייבויות אלה.
זוהי הגרסה הראשונה של גרסת הבטא של 'פיתוח נייטיב' 1.0.0.
שינויים ב-API
- onStart callback נוסף אל
detectDragGestures
(I67269, b/179995594) - מגבילי התאמה של הגודל לפי גורמים פנימיים כבר לא ניסיוניים. (I15744)
- טענות נכוֹנוּת (assertions) של dp הוסרו (I798d2)
- הוסרה קריאה חוזרת (callback) של SoftwareKeyboardController מכל הטקסט השדות האלה יוחלפו בקרוב ב-API חדש. (Iae869, b/168778053)
- השם של MeasureBlocks השתנה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי ה-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.collectIsClickedAsState(). - בתרחישים מורכבים לדוגמה, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. למידע נוסף, אפשר לעיין במסמכים ובדוגמאות של InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- הוסרו שיטות LayoutCoordinates שהוצאו משימוש, יש להשתמש בפונקציה במקום במאפיין עבור positionInParent ו-boundsInParent (I580ed, b/169874631, b/175142755)
- נוצרה TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה כמו CoreTextField. (I8817f, b/177662148)
- עכשיו ניתן לראות את הערך של המדד 'מודד', שמייצג את הגודל שאליו נמדדה פריסת הצאצא. יכול להיות שהגודל הזה לא יתאים למגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת מגביל SelectGroup שמאפשר לסמן איסוף של כרטיסיות או לחצני רדיו למטרות נגישות (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
נדרש עכשיו במקום אופציונלי.בעקבות השינוי הזה, תהיה שגיאה מסוג 'סוג אפשרי' במקרה של ערך שאינו null סוגים שלא צוין בהם הגדרות יצרן בברירת מחדל. הפריט הקודם תספק הפניה null עבור סוג שאינו ערך null.
עבור סוגים שאינם יכולים להיות בעלי ערך null, מומלץ לציין את
{ null }
כברירת המחדל במפעל.אנחנו לא ממליצים להשתמש בתושבים מקומיים עם סוגים שאינם ערכי 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()/verticalScroll() מיוצג באמצעות Ints עכשיו (I81298)
smoothScrollBy ו ScrollBy methods' החבילות שונו ל-
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)השם של FlingConfig השתנה ל-FliingBehavior, שמאפשר עכשיו להתאים אישית אנימציית השעיה במקום להגדיר מראש 'דעיכה'. (I02b86, b/175294473)
השמות של ערכי הצירוף של הגודל השתנו. השם של Modifier.width/height/size שונה ל-requiredwidth/requiredHeight/requiredSize. השם של Modifier.Preferredwidth/PreferredHeight/PreferredSize השתנה ל-'width/height/size'. (I5b414)
השם של defaultMinSizeConstraints השתנה ל-defaultMinSize. (I4eaae)
הוסר. במקומה צריך להשתמש במדיניות
Modifier.pointerInput { detectTapGestures(...) }
. (I266ed, b/175294473)הוסרה צריכה חלקית ממערכת הקלט של המצביע. הדרך המומלצת לתיאום צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
הכיוון הועבר לחבילת הבסיס. VelocirtTracker עבר מ-ui.gesture ל-ui.input.pointer. (Iff4a8, b/175294473)
AnimationClockObservable וכיתות המשנה כבר הוסר. האנימציה הוסרה. (Icde52, b/177457083)
חלונית ההזזה.open() ו-slideState.close() משעות עכשיו פונקציות. משתמשים ב-KeepCoroutineScope() כדי לקבל את היקף היצירה שצריך לקרוא לה (I16f60, b/175294473)
השם 'ספקים' השתנה ל-CompositionLocalProvider
- ה-Composition constructor לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
- השדה currentCompositeKeyHash הפך לנכס קומפוזבילי ברמה העליונה במקום לפונקציה קומפוזבילית ברמה העליונה.
- CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- ComposableLambda נוצרה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הגרסה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה SnapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של snapshotMutationPolicy כבר לא ניסיונית
- פונקציית clearRoots ברמה העליונה
@TestOnly
הוסרה. אין בו יותר צורך. - הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
- השדה Composer.collectKeySourceInformation הוסר. אין בו יותר צורך.
- השיטות isjoinedKey, {1}joinKeyLeft ו-joinKeyRight הוסרו. הם כבר לא נחוצים.
- ממשקי API שונים ברמה העליונה הועברו וארגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקות הקבצים של Kotlin, זה פוגע בתאימות בינארית אבל לא בתאימות מקורות, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
- (I99b7d, b/177245490)
הפעולה של Modifier.scrollable בוצעה מחדש. עכשיו הוא משתמש בממשק שניתן לגלול במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable מקבל עכשיו את DraggableState במקום lambda פשוטה. אפשר ליצור מצב דרך
rememberDraggableState { delta -> }
כדי לקבל את אותה התנהגות כמו קודם (Ica70f, b/175294473)נוספו ערכי rewidth(IntrinsicSize) ו-requiredheight(IntrinsicSize) כדי להתאים את הגודל הנדרש לגדלים מהותיים. (I0a6b4)
emptyContent()
שהוצא משימוש הוסר. במקומה צריך להשתמש במדיניות{}
. (Idb33f, b/179432510)נמחקו כמה ממשקי API שהוצאו בעבר משימוש (Ice5da, b/178633932)
תיקוני באגים
- נוספה יצירה מקומית חדשה של Local SoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController 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 דורש שימוש במקשי זיכרון כדי לציין כשהקורוטין של זיהוי קלט הסמן צריך להתחיל מחדש של יחסי התלות. (I849cd)
- עדכון בדיקה: hasText() יבדוק גם טקסט של קלט וגם טקסט של תווית/הרמז/placeholder בשדה הטקסט (Iab803)
- נוסף ערך P עתValues.Absolute - וניתן להשתמש בו בממשקי API שמכבדים PservingValues. (Ia5f30)
- onImeActionPerformed הוצא משימוש. להשתמש ב- KeyboardActions במקום זאת (If0bbd, b/179071523)
- כדי שהשמות יהיו זהים יותר מוסכמות עם ImageBitmap ו-ImageVector, השם של ImagePainter השתנה ל-BitmapPainter מקביל ל-VectorPainter. (Iba381, b/174565889)
- ממשקי API טובים יותר לבדיקה של מחרוזות משנה עם מחרוזת משנה עכשיו כארגומנט (Icbe78)
- הוספת הקשר קורוטין ל
InfiniteAnimationPolicy
רכיב שהוחל באנימציות אינסופיות. כברירת מחדל לא מותקנת, מלבד כאשר מריצים בדיקות באמצעותComposeTestRule
. (I50ec4, b/151940543) - Animatable.snapTo ו-Aimatable.stop הן פונקציות השעיה עכשיו (If4288)
- ElementActivity.setContent עבר אל androidx.activity.compose.setContent androidx.activity:activity-composition. (Icf416)
- שיטות השמדה ו-Copy() הוסרו מ- מחלקות שבהן נעשה שימוש רק לעיתים רחוקות. (I26702, b/178659281)
נוספה תמיכה במפתחות בהתאמה אישית ל-LazyColumn/LazyRow. כך נוכל לטפל בצורה חכמה יותר בסידור מחדש של פריטים. כך, המצב שאחסנתם בבלוקים של {} יעבור יחד עם הפריט כשתבצעו סדר מחדש של רכיבים או כשתסירו את הפריט מהאמצע.
LazyColumn { items(users, key = { user -> user.id }) { ... } }
שינית את Indication#createInstance ל- @Composable, ושינית את ה-LocalIndication כך שיכלול אינדיקציה, לא () -> סימון. (I5eeea, b/157150564)
Constraints.enforce
הוחלף בטקסטConstraints.constrain
. (I8b8ea)הפרמטר loadFontResource הוצא משימוש. במקומו צריך להשתמש ב-fontResource. imageResource , loadImageResource , vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב- PainterResource. (I6b809)
מטעמי ביצועים, הסמנטיקה של ScrollAxisRange לוקחת עכשיו lambdas מחזירה Floats במקום ערכי Float ישירים. (If4a35, b/178657186)
נוספה סמנטיקה של EditableText כדי לסמן את הטקסט שהוזן בשדה הטקסט כקלט שניתן לעריכה, לבדיקת נגישות ושיטות בדיקה תואמות (I8e07a)
ב-Modifier.clickable אין עכשיו תמיכה בלחיצה כפולה או ארוכה. כדי להשיג את הפונקציונליות הזו, צריך להשתמש ב-Modifier.combinedClickable. (Iafad1)
השם של toIntPx() השתנה ל-roundToPx(). (I9b7e4, b/173502290)
השם של IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
ה-Modifier.dragmotionFilter הוצא משימוש. במקומה צריך להשתמש במדיניות
Modifier.pointerInput { detectDragGestures (...)}
. לחלופין, אפשר להשתמש ב-Modifier.draggable לגרירה בציר אחד (I0ba93, b/175294473)שינית את השם של 'סביבה' כך שיתאים לאווירה -> שינוי שם של CompositionLocal. לסביבה (I2d55d)
הבחירה הועברה לבסיס. (I7892b)
בדומה לאופן שבו הסרנו בעבר תוכן קומפוזבילי
state { 0 }
ואנחנו מקדמים עכשיו שימוש כמוremember { mutableStateOf(0) }
, אנחנו עומדים להסיר את התוכן הקומפוזביליsavedInstanceState { 0 }
. במקום זאת, צריך להשתמש בפונקציהrememberSaveable { mutableStateOf(0) }
והיא תישמר ותשוחזר באופן אוטומטי אם אפשר לאחסן בחבילה את הסוג שנעשה בו שימוש ב-MutableState. אם בעבר העברתם אובייקט חיסכון בהתאמה אישית עכשיו, צריך להשתמש בעומס יתר חדש של קובץ שמור שניתן לשמור, שכולל את הפרמטרstateSaver
. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004)נוסף סמנטיקה של סיסמאות בנוגע לנגישות (I231ce)
נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא קבועים בנוגע לנגישות (I6fe05)
זמן ההפעלה באנימציה לא מוגבל עכשיו לננו-שניות (If776a)
הרכיב @ComposableContract הוצא משימוש לטובת שלוש הערות ספציפיות יותר.
התפקיד של
@ComposableContract(restartable = false)
השתנה ל-@NonRestartableComposable
התפקיד של@ComposableContract(readonly = true)
השתנה ל-@ReadOnlyComposable
התפקיד של@ComposableContract(preventCapture = true)
השתנה ל-@DisallowComposableCalls
בוצעה הסרה של@ComposableContract(tracked = true)
. (I60a9d)השירותים
emptyContent()
ו-(@Composable () -> Unit).orEmpty()
הוצאו משימוש כי אין להם יותר השפעה חיובית על הביצועים (I0484d)עכשיו אפשר לסגור את היוצרים מחדש. אחרי שיוצרים מקבצים סגורים להמשיך את ההרכבה מחדש עד להשלמת קורוטין צאצאים. השם של Recomposer.shutDown השתנה כדי לבטל, כדי ליצור ניגודיות ביחס לסגירה. (Ib6d76)
ממשקי API שקשורים ל-LazyVerticalGrid מסומנים כניסיוניים (Ia53e3, b/178519862)
השם של ReSavedInstanceState() השתנה ל-GeminiSaveable() והועבר אל החבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)
השם של RersorableStateHolder שונה ל-SaveableStateHolder והוא הועבר אל androidx.compose.runtime.saveer. השם של השיטה הפנימית RestorableStateProvider השתנה ל-SaveableStateProvider. סוג כללי הוסר כך שאפשר יהיה רק להעביר כל סוג כמפתח. כבר אין צורך בהערה ניסיונית. (I0902e, b/174598702)
בוצעה שמירה, listSaver(), mapSaver(), autoSaver הועבר מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)
השם של Artefact androidx:compose:runtime:runtime- saved-instance-state השתנה ל-androidx:compose:runtime:runtime-saveable (I6dcac)
הרבה ממשקי API ותיקים שהוצאו משימוש בחבילה של ממשק המשתמש נמחקים. (I2f2dc)
פריט ה-Artifact:runtime-dispatch הוצא משימוש. עכשיו ניתן למצוא את MonotonicFrameClock בקובץ פיתוח: הידור:runtime ו- ניתן למצוא את AndroidUiDispatcher ב-Compose:ui. (Ib5c36)
השמות של פרמטרים ב- RounderCornerForm , CutCornerForm ו-Corner להביעצורה השתנו משמאל/ימין להתחלה/לסיום, כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון rtl. התחלנו להשתמש ב-AbsoluteRounderCornersha וב-AbsoluteCutCornerForm במקרים שבהם אין צורך בשיקוף אוטומטי. (I61040, b/152756983)
CanDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
ה-API שאליו מיועד הפלאגין של המהדר לכתיבה עבר ארגון מחדש לשימוש בממשק וגם סיווג קונקרטי. הממשק גם כבר לא משתמש פרמטר של סוג.
זהו שינוי פנימי שלא אמור להשפיע על המקור תאימות לקוד, אבל היא שינוי בינארי שעלול לגרום לכשל. (I3b922, b/169406779)
הוסר. אפשר להשתמש במקום זאת ב-Modifier.Zoomable. לחלופין, אפשר להשתמש ב-
Modifier.pointerInput { detectMultitouchGestures { ... }}
(Id5da1, b/175294473)התכונה מונפשת/Float הוצאה משימוש. צריך להשתמש ב- במקום זאת הוא מיועד לאנימציה. (I71345, b/177457083)
- הוסרו CoreText ו-CoreTextField מ-API ציבורי
- הוסר עומס יתר של SelectionContainer (I99c19)
הסרת פונקציות גלילה שאינן מושעות, שהוצאו משימוש בהמשך לשינויים מהגרסה האחרונה, הגלילה ללא השעיה הפונקציות יוסרו לגמרי. צריך לעבור למצב השעיה פונקציות עם אותם שמות. ניתן לקבל היקף קורוטין דרך ListenCoroutineScope() (I3d39c, b/178169563)
הפונקציה androidx.compose.foundation.layout.ConstraintLayout הוצאה משימוש לטובת androidx.constraintlayout.compose.ConstraintLayout. צריך להוסיף תלות ב-
androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01
. (I87adc)הוצאנו משימוש את הפרמטר TapתנועותFilter, doubleמקישיםGestureFilter, long, ClicktionFilter ו-pressIndicaitonGestureFilter. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה generateמקישים TalkBack. (I6baf9, b/175294473)
בוצעה הסרה של
Recomposer.current()
. [Abstract]ComposeView עכשיו כברירת מחדל של Recomposers שנוצרו באופן עצלני, ברמת החלון, המבוססים על ViewTreeLifecycleOwner לחלון. הרכב מחדש ו סימוני האנימציה המבוססים על 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
הוצאה משימוש של גלילה שאינה מושעית, הסרת גלילה שאינה מושעית
עכשיו מומלץ להשתמש בפונקציות השעיה כדי לשלוט בגלילה ולהמתין עד שהגלילה תסתיים. אנחנו מוציאים משימוש ו/או מסירים גרסאות שאינן מושעות של הפונקציות האלה, כחלק מהמעבר הזה. (Ie9ced)
הוצאה משימוש של smoothScrollBy עכשיו מומלץ להשתמש בפונקציות השעיה כדי לשלוט בגלילה ולהמתין עד שהגלילה תסתיים. אנחנו מוציאים משימוש את הגרסאות שלא מושעות כחלק מהמעבר הזה. (I12880)
הפרמטר של תיאור התוכן נוסף לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
BasicTextField קיבל פרמטר חדש בשם 'decorationBox'. השדה הזה מאפשר להוסיף עוד קישוטים כמו סמלים, placeholder, תווית ודברים דומים לשדה הטקסט ולהגדיל את אזור היעד של ההיט. (I16996)
הפרמטר canDrag הוסר מה-Modifier.draggable (Ic4bec, b/175294473)
הוסרה ה-AnimationFloat.fling שמקבלת את FlingConfig. יש להשתמש בהשעיה במקום זאת, Animatable.animateDecay (I4659b, b/177457083)
הסרת את
data class
מהכיתות הבאות:- InlineTextContent
- רשימה מקומית
- (I605c7)
ניתן ליצור עכשיו את האפשרויות שניתן ללחוץ עליהן, להחליף ביניהן או לבחור במצב מחוץ ליצירה (I0a130, b/172938345, b/175294473)
התכונות ScrollableColumn/Row הוצאו משימוש. השימוש ב- ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn כאשר יש תוכן בעל גלילה גדולה, מכיוון שב-LazyColumn אנחנו יכולים להרכיב, למדוד/לצייר רק רכיבים גלויים. כדי למנוע ממשתמשים לעבור בצורה לא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו- ScrollableRow ולקדם את השימושים ב-LazyColumn וב-LazyRow. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות המושהית ולהשתמש בערכי הצירוף ישירות באופן הבא: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
שיטת מפעל חדשה
items(count: Int)
להיקף של LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
ו-itemsIndexed(items: List)
הן עכשיו פונקציות של תוספים, לכן צריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסי יתר של תוסף חדש עבור מערכים: פריטים(פריטים: מערך) ופריטים שנוספו לאינדקס(מערך) (I803fc, b/175562574)AbsoluteArrangement הוסר. (Iffa96, b/177641870)
הפרמטר sellersMinConstraints התווסף ל-Box כדי לציין אם יש להעביר את מגבלות המינימום הנכנסות לתוכן של Box. ברירת המחדל היא False. (I0125b, b/152613457)
תיקוני באגים
- onCommit , onDispose ו-onActive הוצאו משימוש לטובת ממשקי API של Side Effects ו-Sdisposable Effects (If760e).
- בוצע יישום מחדש של withConstraints בתור BoxWithConstraints, ולהשאיר את base.layout. (I9420b, b/173387208)
שינויים בפונקציות היצרן של גופן/גופנים/משפחת גופנים
- נוספו פונקציות יצרן שמתחילות באות גדולה
- פונקציות קודמות שהוצאו משימוש עם אותיות קטנות האות הראשונה
- פונקציות חדשות במפעל מחזירות את ה-FontFamily במקום מחלקות משנה
- הסתירו בנאים של מחלקות המשנה, כדי שיוכלו יש לבנות אותן רק באמצעות תכונות של היצרן.
- השם של Font.asFontFamily השתנה ל-Font.toFontFamily
- (I42aa7)
הצגה של
ComposeContentTestRule
, עם הרחבהComposeTestRule
ומגדיר אתsetContent
, שהוסר מ:ComposeTestRule
. נוספה שיטה להגדרות המקוריותcreateEmptyComposeRule()
שמחזירהComposeTestRule
ולא מפעילה פעילות עבור את/ה. השתמשו בפלח הזה כשתרצו להפעיל את הפעילות שלכם במהלך הבדיקה. לדוגמה באמצעותActivityScenario.launch
(I9d782, b/174472899)animateAsState נקרא עכשיו animateFooAsState, שבו Foo הוא סוג המשתנה שמונפש. לדוגמה ציפה, Dp, סטייה וכו' (Ie7e25)
ההגדרה 'צפיפות' היא עכשיו היקף המקבל עבור ממשקים של ארגון. (I18aad)
TextFieldValue מקבל את AnnotatedString. אבל זאת שינוי בממשק API בלבד ועריכה של טקסט במגוון סגנונות לא עדיין לא הוטמעו.
- הסרת את
initial
מהפרמטרים של constructor ב-EditorBuffer. (I326d5)
- הסרת את
inverify ו-CompositionReference() הוצאו משימוש לטובת currentRecomposeScope ו-MemoryCompositionReference בהתאמה. (I583a8)
AnnotatedString השתנה כדי להרחיב מ-kotlin.CharSequence. לכן האורך ורצף המשנה הם עכשיו פונקציות של מכונה, והפונקציות של התוספים יוסרו. (Iaf429)
משך הזמן וזמן הפעולה התקינה יוחלפו באלפיות שנייה ארוכות, והשלב הזה מסיר את התלות בקלט של מצביע העכבר הסוגים. (Ia33b2, b/175142755, b/177420019)
remindObserver מחליף את CompositionLifecycleObserver ו-CompositionLifecycleObserver הוצא משימוש.
RememberObserver
הוא תחליף ל-CompositionLifecycleObserver
עם סמנטיקה שונה ו שיטות עם שם חדש. המעבר ל-API החדש יכול להתבצע באופן מכני לאובייקטים שניתן לזכור רק פעם אחת, וממשיכים להיות השיטה המומלצת. אבל אם ההפניה זוכר יותר מפעם אחת ביצירה,onRemembered
נקראת לכל הפניה שבהonEnter
מופעל רק פעם אחת.onEnter
נקרא מספר פעמים אם נעשה שימוש באובייקט בתרכובות משנה, כמוWithConstraints
ו-Scaffold
שהופכים את הסינגל ההתחייבות שלonEnter
לשיחה לא אמינה והיא הוסרה למשךRememberObserver
הפונקציה
RememberObserver
מוסיפה אתonAbandoned
. תתבצע קריאה אם מופע אחד (RememberObserver
) מוחזר מהקריאה החוזרת (callback) שהועברה אלremember
, אבל הוא לא נשמר במצב היצירה ולכן אף פעם לא יתקשרו אלonRemembered
. מי יכול מתרחשת במקרה שחריג מסיים יצירה לפני השלמת היצירה או היצירה בוטלה מכיוון שהמדינה מפיקה יצירה עבור כבר לא עדכנית או שכבר לא זמינה הדרושים. אם המופע שלRememberObserver
שמופיע אחרי הסינגל ההמלצה שצוינה למעלה היא לעקוב אחרי משאב חיצוני גםonForgotten
וגםonAbandoned
מציינים אינו נדרש יותר. אם האובייקט עוקב אחרי עבודה שהתחילו או הוקצו ב-onRemembered
,onAbandoned
אפשר להתעלם ממנו כי לא תיקרא אםonRemembered
שנקראה. (I02c36)השם של TransformedText.transTransformText השתנה ל-TransformedText.text
- TransformedText כבר לא סיווג נתונים (Ie672a)
המחלקות הבאות הן כבר לא מחלקות נתונים:
- מחרוזת עם הערות
- ParagraphStyle
- סגנון סקין
- TextStyle
- משקל הגופן
- עיטור טקסט
- טקסט גיאומטרי טרנספורמציה
- אינדקס טקסט
- תוצאת TextLayoutresult
- TextLayoutInput (Iaff99)
הוסרה שיטות מונוtonicFrameAnimationClockOf (Ib753f, b/170708374)
שיטות קואורדינטות גלובליות שהוצאו משימוש ונוצרו שיטות חדשות לקואורדינטות מבוססות-חלון. (Iee284)
יש להשתמש ב-ImeAction.None במקום ב-ImeAction.NoAction
- יש להשתמש ב-ImeAction.Default במקום ב-ImeAction.Unspecified (Ie1bcc)
הפוקוסRequester.createRefs מסומן עכשיו כניסיוני, ועשוי להשתנות. (I2d898, b/177000821)
השם של SemanticsPropertyReceiver.סתר השתנה ל-invisibleToUser ומסומן כ- @trialComposeUiApi. השם של AccessibilityRangeInfo השתנה ל-ProgressBarRangeInfo. השם של stateDescriptionRange השתנה ל-ProgressBarRangeInfo. השם של AccessibilityScrollState השתנה ל- ScrollAxisRange. השם של EuropeanAccessibilityScrollState השתנה ל-EuropeanScrollAxisRange. השם האנכי של AccessibilityScrollState השתנה ל-verticalScrollAxisRange. (Id3148)
טרנספורמציה חזותית שונתה כממשק פונקציונלי (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 השתנה
- טרנספורמציה של סיסמה היא כבר לא סיווג נתונים
- בוצעה העברה של OffsetMapping לקובץ נפרד
- (I0bdf3)
- עריכת השינויים ב-API של פעולות
- שם הפעולה השתנה כ-EditCommand
- נוספה סיומת Command להטמעות בטון של EditOperation
- פקודות EditCommand הן כבר לא מחלקות נתונים
- השם של פונקציית EditOperation.Process שונה ל-ApplyTo
- השם של קלטEventListener שונה ל-inputEventCallback
- (I0a366)
- מהירות ששונתה כך שתכלול חלקים של רכיבים ונתונים מתמטיים ב-AI. (Ib0447)
- השם של @trialTesting השתנה ל-@trialTestApi ועכשיו הוא עקבי עם הערות דומות של ה-API הניסיוני (Ia4502, b/171464963)
- נוספה שיטת stickyHeader הניסיונית ל-LazyColumn/LazyRow (I0a81d)
- Ranamed Color.useOrElse() ל-Color.takeOrElse() (Ifdcf5)
- TestUiDispatcher הוצא משימוש. במקום זאת, צריך להשתמש ב-Dispatchers.Main (Ic171f, b/175385255)
- הוספת לחצן החלפת מצב למחרוזת Strings.kt (I4a5b7, b/172366489)
- ה-NativeClass הועבר אל של ממשק המשתמש והפך אותו לשימוש פנימי. שימושים מעודכנים ב-NativeClass ב- זהה להטמעות שבהן צריך להשתמש 'is MyClass' במקום זאת. (I4f734)
- ה-Fflowrow ו-FflowColumn הוצאו משימוש. במקום זאת, יש להשתמש בפריסה מותאמת אישית. (I09027)
- ה-Modifier.focus() ו-Modifier.focusRequester() הוצאו משימוש. במקומו צריך להשתמש ב-Modifier.focusModifier() ו-Modifier.focusReference() . (I75a48, b/175160751, b/175160532, b/175077829)
- בוצעה הצגה של SelectionRegistrar.notifySelectableChange כדי לשלוח הודעה אל SelectionManager על עדכונים שניתן לבחור. (I6ff30, b/173215242)
- שינית את
fun Dp.isFinite()
ל-val Dp.isFinite
(I50e00) - השם של Constraints#satisfiedBy השתנה ל-isSatisfiedBy. I9cf5c
- נוסף isSpecified, isUnspecified, ו-useOrElse עבור מחלקות מוטבעות עם קבוע לא מוגדר. (I93f7b, b/174310811)
תיקוני באגים
- API חדש מבוסס קורוטין
Animatable
שמבטיח בלעדיות הדדית בין האנימציות שבו. מפרט חדש של DecayAnimationSpec לתמיכה באנימציה רב-מימדית של דעיכה (I820f2, b/168014930) - נוספה תמיכה בשדות טקסט מושבתים ובשדות טקסט לקריאה בלבד (I35279, b/171040474, b/166478534)
animate()
מוחלף עכשיו ב-animateAsState()
, שתחזירState<T>
במקוםT
. כך אפשר לשפר של הביצועים, כי אפשר לצמצם את היקף הפסילה שבו נקרא ערך State (מדינה). (Ib179e)- הוספת ה-API של תפקיד סמנטי ומוסיפים את התפקיד 'תפקיד' כפרמטר אל SemanticsModifier ניתן ללחיצה, לבחירה ולהחלפת מצב. בוצע שינוי Modifier.progressSemantics כדי שגם Slider יוכל להשתמש בו. (I216cd)
- עכשיו ניתן לגשת ל-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 לפונקציית תוסף שניתנת לגלילה, שמנצלות את הפונקציונליות הזאת. (I2153b)
נוספה התווית LazyVerticalGrid. (I17267, b/162213211)
להוציא משימוש את LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, משתמשים ב-LazyColumn וב-LazyRow (I5b48c)
השעיית ממשקי API לקלט של מצביע העכבר השתנה HandlePointerInputScope אל AwaitPointerEventScope וגם headPointerInput() ל-awaitPointerEventScope(). (Idf0a1, b/175142755)
נוספה רשימת המוצרים LazyListState.layoutInfo שמציגה את רשימת הגדלים וההיסט של הפריטים שמוצגים כרגע (If8678, b/170472532)
הוסרה הערה ניסיונית PointerInput (Ia7a24)
נוספה תמיכה ב-InteractionState ב-TextFields. (I61d91)
מוסיפים את הפרמטר הפוך לפריסה של LazyColumn/Row. כש-
true
פריטים יורכבו מלמטה עד למעלה ו-LazyListState.firstVisibleItemIndex == 0
יציין שהפריט הראשון ימוקם למטה. (I552ae, b/166589935)הפרמטר fullArrangement נוסף ל-LazyColumn. הפרמטר icalArrangement נוסף ל-LazyRow. סידור הפריטים מאפשר לנו להוסיף ריווח בין פריטים ולציין את הסידור שלהם כשאין מספיק פריטים כדי למלא את הגודל המינימלי המלא. (Icf79a, b/170394300)
זיהוי Multitouchתנועות משתמש עכשיו בקריאה חוזרת אחת עם שילוב פרמטרים של מרכז, הזזה, זום וסיבוב. (Ie6e1c)
התוכן של ContentDrawScope הועבר ל-ui-graphics את המודול כדי להיות עם DrawScope. (Iee043, b/173832789)
תיקוני באגים
- רכיבי Lambda בשינויי היסט עכשיו מחזירים IntOffset במקום Float. (Ic9ee5, b/174137212, b/174146755)
הוסרו OAuthTable, SlotReader ו- OAuthWriter מה-API הציבורי. האירועים האלה סומנו בתור InternalComposeAPI בעבר. עכשיו הם פנימיים למודול הכתיבה.
CompositionData ו-CompositionGroup נוספו בתור מחליף את ui-tooling API שישמש לחילוץ מידע על היצירה. הקישורים האלה ציבוריים, אבל הם לא מיועד לשימוש מחוץ ל-ui-tooling API, כי הוא מספק המידע הגולמי שה-ui-tooling API מפרש (I31a9c)
ארגון מחדש של ShaderBrush ל- ליצור באופן מדורג מכונת ההצללה את גודל המידע בשרטוט הסביבה זמינה. כדאי להשתמש באפשרות הזו כדי להגדיר הדרגה תופסים את גבולות השרטוט המלאים של תוכן קומפוזבילי בזמן היצירה, בלי שיהיה צורך להטמיע הטמעות מותאמות אישית של DrawModifier.
ממשקי API של constructor של פונקציות הדרגתיות שהוצאו משימוש לטובת שיטות מפעל על אובייקט מסוג Gradient. (I511fc, b/173066799)
Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
הכלי למילוי אוטומטי הוא עכשיו API ניסיוני ומחייב הסכמה (I0a1ec)
הוספת הצהרות הרסניות ליצירת מכונות FocusRequester (I35d84, b/174817008)
השם של AccessibilityLabel השתנה ל-contentDescription. השם של AccessibilityValue השתנה ל-stateDescription. (I250f2)
הוספת מספר פונקציות חדשות ב- SelectionRegistrar, ושינוי השם של onPositionChange ל-NotifyPositionChange. (Ifbaf7)
AndroidOwner שנוצר לשימוש פנימי (Ibcad0, b/170296980)
פונקציית InfiniteRepeatable חדשה ליצירת InfiniteRepeatableSpec (I668e5)
הממשק של
Applier
השתנה כדי לפשט את הממשק עצים מלמטה למעלה במקום מלמעלה למטה.השם של ה-method
insert()
השתנה ל-insertTopDown()
.נוספה שיטה חדשה,
insertBottomUp()
.המיישם מוסיף צמתים לעץ שהוא עורך באמצעות
insertTopDown()
אוinsertBottomUp()
, בהתאם עם ביצועים טובים יותר.יש עצים, כמו
LayoutNode
ו-View
, בגובה רב יותר יעיל לבנות מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, נדרשה ערימה של תוספות כדי להטמיע היה צורך להעתיק לכל אפליקציה שבה נדרש מלמטה למעלה לשיפור הביצועים. לאחר השינוי הזה,Applier
מבטל אתinsertBottomUp()
כדי לבנות עץ מלמטה למעלהinsertTopDown()
כדי לבנות את העץ מלמעלה-למטה. (Icbdc2)נוסף PainterResource API כדי לטפל באובייקטים של צבע עם טעינה אטומה מכל אחד מהפורמטים של נכסים דיגיטליים שעברו רסטר (כמו קובצי PNG) או VectorDrawables. לצרכנים כבר אין כדי לקבוע מראש את סוג הנכס והם יכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter. לשימוש בתכנים קומפוזביליים של תמונות או בכלים לשינוי צבעים. (I2c703, b/173818471)
נוספה פונקציה במפעל של buildAnnotatedString לפי הסדר כדי ליצור מחרוזת AnnotatedString. NotedString (מחרוזת הערות) שהוצא משימוש ב-builder. (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, כדי לבדוק אם יש עקביות להנחיות לכתיבה.
בנוסף, חלק מממשקי ה-API הועברו בעזרת
children
כשם של lambda בסוף, ל-content
, בהתאם לבדיקת השגיאות בקוד ולהנחיות. (Iec48e) foundation:foundation-text
ממשקי ה-API הועברו אלfoundation:foundation
. מבנה החבילה נשאר ללא שינוי (Id3eb2)- מזהה חדש של תנועות מולטימדיה, כולל עוזרים לזיהוי סיבוב, שינוי מרחק תצוגה והזזה. (Ic459d)
- מצביע השעיה חדש של מזהה תנועת גרירה API לקלט, כולל נעילת כיוון. (Icef25)
- השם של VectorAsset השתנה ל-ImageVector התפקיד VectorAsset הועבר ונקרא עכשיו Builder to Builder אל להיות מחלקה פנימית של ImageVector, להנחיות של מועצת ה-API. נוספו גופנים של 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. אפשר להשתמש באפשרות הזו כדי להוסיף לרכיב התנהגות שניתן להתמקד בה, עם סמנטיקה נכונה ונגישות נכונה. (I41eb9, b/152525426, b/162865824)
הוסרו ממשקי API שכבר הוצאו משימוש: הוסרה הגבול. במקומה צריך להשתמש ב-BorderStroke. השדה Modifier.drawBorder הוסר. צריך להשתמש ב-Modifier.border במקום זאת. הסרנו את Modifier.gravity. במקום זאת, צריך להשתמש ב-Modifier.יישור. המקבץ הוסר, צריך להשתמש ב-Box במקום זאת (I32c2b, b/172470874)
השם של AbsoluteArrangement השתנה ל-'Arrangement.Absolute'. (If26f2)
תיקוני באגים
- ממשקי ה-API של DrawModifier הועברו מ חבילת androidx.compose.ui חבילת androidx.compose.ui.draw. נוצר קובץ DrawModifierexcept.kt של כולל טיפוסים או שיטות עזרה שעוזרות את המיגרציה מההוצאה משימוש לגרסה הנוכחית ממשקי API. (Id6044, b/173834241)
- השם של Modifier.drawLayer השתנה ל-Modifier.graphicsLayer עודכנו גם מחלקות קשורות ל- GraphicsLayer בהתאם משוב ממועצת ה-API. (I0bd29, b/173834241)
- בוצעה הסרה של
<T>
מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8) - ביצעו את זמן הפעולה התקינה של PointerInputData שדות המיקום אינם בני null. (Id468a)
- העיצוב MaterialTheme מגדיר עכשיו את הצבעים הנכונים עבור נקודות אחיזה שנבחרו ורקע בחירה. אפליקציות שהן לא מהותיות יכולות להשתמש באופן ידני ב-AmbientTextSelectionColors כדי להתאים אישית את הצבעים שנבחרו. (I1e6f4, b/139320372, b/139320907)
- השם של פרמטר היישור של Box השתנה ל-contentrement. (I2c957)
- שמות המשנים של offsetPx השתנו כדי לקזז. עכשיו הם מקבלים פרמטרים מסוג lambda במקום State. (Ic3021, b/173594846)
- נוסף windowManager.isWindowFocused כדי לבדוק אם חלון המארח בפוקוס, ו-WindowFocusObserver שמספק קריאה חוזרת onWindowFocusChanged. (I53b2a, b/170932874)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- ממשק API של TextFieldValue מעודכן
- הוגדר לקריאה בלבד של TextFieldValue.composition
- גורם חריג שהוסר עבור טווח בחירה לא חוקי (I4a675, b/172239032)
- אלמנטים של אווירה שהוצאו משימוש, שהשם שלהם הוא
Ambient
, והוחלפו במאפיינים חדשים עם קידומת Ambient, שעומדים בהנחיות נוספות של Ambients ו-Compose API. (I33440) - נוסף wrapper של Android ב-Android. אפשר לטעון מכשיר Android
משפחת גופנים באמצעות הפונקציה
typeface
, כלומרtypeface(Typeface.DEFAULT)
. גם השםtypefaceFromFontFamily()
השתנה ל-typeface()
(I52ab7) - נוספה בדיקת שגיאות בקוד כדי לוודא שמפעלי הצירוף משתמשים ב-
androidx.compose.ui.composed {}
באופן פנימי, במקום שהם מסומנים כ-@Composable
. (I3c4bc) - נוספה בדיקת שגיאות בקוד כדי לבדוק שהפונקציות של יצרן הצירוף מוגדרות כתוספים ב-Modifier, כדי שניתן יהיה לשרשר אותן באופן רציף. (I07981)
- השם של הארגומנטים הסמנטיים מ-MergeAllDescendants השתנה ל- MergeDescendants. (Ib6250)
- בקרת הזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיוני (I6ef86, b/171378521)
- מסירים את המודול הישן של בדיקת ה-ui-test ואת התוספת שלו (I3a7cb)
- השם של TextUnit.Inheriting שונה ל-TextUnit.לא צוין אחרת, בהתאם ליחידות האחרות. (Ifce19)
- הממשק 'יישור' עודכן ופועל כראוי. (I46a07, b/172311734)
- המודול
foundation:foundation-text
מוזג אלfoundation:foundation
(Idac0f) - יש להוציא משימוש את המקום(היסט) והמקום היחסי(קיזוז). במקום זאת, משתמשים בעומסי יתר עם היסט פנימי (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. באפליקציות שאינן חומרים, עליכם ליצור סביבה ספציפית למערכת עיצוב משלכם שתוכלו להשתמש בה ברכיבים שלכם. (I74acc, b/172067770)
- Foundation.Text הוצא משימוש והוחלף ב-material.Text. בכתובת androidx.compose.foundation.BasicText. (If64cb)
- נוספו maxLines ל-TextFields (Ib2a5b)
- צריך לעדכן את TextFields כדי לקבל את השימוש ב- KeyboardOptions (Ida7f3)
- נוספו KeyOptions לשימוש ב-TextFields (I9ca32)
- הפונקציה מוסיפה את BasicText כ-API ללא עיצוב של טקסט, במקביל ל-BasicTextField. (I28268)
- הוסרה הערה ניסיונית-LazyDsl. עכשיו אפשר להשתמש ב-LazyColumn/LazyRow בלי להוסיף @OptIn (Idab7a, b/166584730)
- BaseTextField הוצא משימוש. במקומו צריך להשתמש ב-BasicTextField. (I896eb)
- BasicTextField נוסף כתחליף ל-CoreTextField ול-BaseTextField (Id4cea)
- הסרה של LazyColumnItems/LazyRowItems (I1d8a8)
- הוסרו התכנים הקומפוזביליים שהוצאו משימוש לצורך התאמה למידות של מדידות פנימיות. (I18537, b/171811496)
- השם שלמידע 'יחסי גובה-רוחב' השתנה ל-'מרווח מרווח פנימי'. נוסף ערך הצירוף באנגליתFromBaseline – כדי לציין מרחקים מגבולות פריסה ועד לערכי טקסט בסיסיים. (I0440a, b/170633813)
- הפרמטר matchHeightConstraintsFirst התווסף למגביל יחס הגובה-רוחב, שניתן להשתמש בו כדי לציין את מגבלות הגודל לגובה לפני שמנסים את התאמות הרוחב. (Ie7c43, b/155290593)
- DpConstraints שהוצא משימוש הוסר. (I87884, b/171702471)
תיקוני באגים
- הצגה של ScaleFactor
מחלקה מוטבעת, לייצוג קנה מידה
גורמים אופקיים ואנכיים
צירים שאינם תלויים זה בזה לפי הסדר
כדי לתמוך בתרחישים לא אחידים של התאמה לעומס (scaling).
- נוספה שיטת computeScaleFactor אל קנה מידה של תוכן
- נוסף ContentScale.FillBounds כדי לבצע קנה מידה לא אחיד כדי למתוח את הקטע גבולות לתפוס את היעד במלואו.
- נוספו שיטות של אופרטורים למחשוב פרמטרים של ScaleFactor עם פרמטרים של גודל.
- (Ic96a6, b/172291582)
- collectedToBitmap הועבר ל- captureToImage. (I86385)
- סימון CoreText כ- @InternalTextApi. במקומו צריך להשתמש ב-BasicText. (I6aaeb)
- שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
- KeyType ו-ImeAction הועברו אל KeyboardOptions (I910ce)
- CoreTextField סומן כ- @InternalTextApi. צריך להשתמש ב- BasicTextField במקום זאת (Ie2469)
- הוסרה הערה ניסיונית SubcomposeLayoutApi עכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
- הצגה של מודול ui-test-junit4 (Ib91f8)
- ממשק ה-API של הסמל עודכן כדי לכלול את Color.Unspecified בתור צבע אפשרי לגוון שיצייר את נכס או צייר ללא ColorFilter. בעבר מנסה להתעלם מגוון הצבע.לא צוין יהפוך לצבע שקוף בסוף כך שלא יוצגו שום דבר. (I049e2, b/171624632)
- הכלי Measurement result הוסר מ-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' מיקומים ב-SelectContainer. (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. אפשר גם להשתמש ברכיב התמונה / Modifier.Paint() עם Painter אם לא רוצים להשתמש בספריית Material. (I9f622)
- נוספה interactionsState ל-Modifier.scrollable, ScrollableColumn ו-LazyColumnFor (I81566, b/169509805)
- נוסף ל-LineByBaseline נוסף ל-RowScope ו-siblings השתנה ל-LineBy (I06503, b/170628732)
- התיבה הפכה לפונקציה מוטבעת. (Ibce0c, b/155056091)
- נוספו maxLines ל-CoreTextField (Ibee58, b/143687793)
- נוסף softwrap ל-CoreTextField. (I21a4b)
תיקוני באגים
- הוצאה משימוש של VectorPainter ב- מעדיפים להיזכר ב-VectorPainter לציין שה-API הקומפוזבילי באופן פנימי משתמשת ב'זכור' לשמירת נתונים לאורך של יצירות. (Ifda43)
- הפעלת מעברים ב-ComposeTestRule; הסרת האפשרות כדי להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
- נוספה אפשרות של מקלדת בשורה אחת ל-CoreTextField (I72e6d)
- השם של ה-API של רדיוס שונה לשם פינתי כדי להביע טוב יותר האופן שבו נעשה בו שימוש במהלך הכתיבה. התיעוד עודכן כדי לציין שרדיוס הפינות השלילי מוצמד לאפס. (I130c7, b/168762961)
- הוספת יכולת לציין את פרטי המפקח בתכונת צירוף כתב (Idee08, b/163494569)
- נוספה אפשרות IME של אותיות רישיות (I8ac38)
- תיקון המיקום של נקודת אחיזה Rtl. I6e1e0
- שינוי משמעותי: הסיר את הערך המוחזר מ-PointerInputFilter.onPointerEvent(...) בהינתן שהערך היחיד שאפשר לשנות באירועי מצביע הוא נתוני צריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של אירועי PointerEvents שהועברו. (I6acd0)
- האפשרות SelectAll נוספה לתפריט הבחירה (Ief02b)
גרסה 1.0.0-alpha05
14 באוקטובר 2020
androidx.compose.foundation:foundation:1.0.0-alpha05
, androidx.compose.foundation:foundation-layout:1.0.0-alpha05
ו-androidx.compose.foundation:foundation-text:1.0.0-alpha05
שוחררו. גרסה 1.0.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- ב-CoreTextField יש עכשיו תמיכה בפונקציונליות של הסמן (Id23aa)
מוציא משימוש את ממשקי ה-API של contentColor() ו-currentTextStyle() , ומחליף אותם בסביבה של AmbientContentColor ו-AmbientTextStyle בהתאמה. אפשר לגשת לערך הנוכחי באמצעות שימוש ב-
.current
בנכס האווירה, כמו בכל סוג אחר של אווירה. השינוי הזה בוצע כדי לשמור על עקביות ולמנוע מצבים שבהם כמה דרכים להשיג את אותו הדבר. בנוסף, השמות של חלק ממאפייני האווירה השתנו כדי לתאר טוב יותר את המטרה שלהם:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> אינדיקטור של אווירה
- הדגשה -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
תיקוני באגים
- כחלק מתקן של ערכי סנטינל למחלקות מוטבעות, שינוי השם של Color.Unset ל-Color.Unspecified לעקביות עם מחלקות אחרות בתוך שורה (I97611, b/169797763)
- נוספו פעולות העתקה/הדבקה/חיתוך (I6db4f)
- TextOverflow.None. כאשר האפשרויות הנוספות הן 'ללא', הטקסט לא יטפל יותר בגלישה וידווח על הגודל שלו בפועל ל-LayoutNode. (I175c9, b/158830170)
- גודל מעודכן.לא צוין ל-Float.NaN במקום מספר ממשי (Float).POSITIVE_INFINITY. יישומים של 'צייר' עודכנו ל- בידקו ביחס ל'גודל'. גם לא צוין כגדלים לא סופיים. (I95a7e)
- נוספו מודול של כתיבה ידנית ושילוב של דפים (Ib85da)
- שינוי של LazyListScope כדי לקבל ערכים בני null (I1765b)
- השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier ו-onPositioned() השתנה ל-onGloballyPositioned(). (I587e8, b/169083903)
- נוספו דוגמאות ל-LazyColumn/Row (Idc16d)
- תיקון בשיטות הבאות: פריטים ופריטים שנוספו לאינדקס כדי לאפשר ל-blankList (I06647)
- הוספת DSL לציון פרטי המפקח (Ic9a22)
- מעבירים לחיצה ארוכה לטקסט. (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
- שם המקבץ השתנה ל-Box. הפלטפורמה החדשה Foundation.Box שהייתה קיימת בעבר תוצא משימוש ותוצב לטובת ה-Box החדשה ב-Compose.foundation.layout. המבנה החדש של Box הוא מקבצים ילדים אחד על גבי השני, כאשר יש לו כמה בנים. ההבדל הזה שונה מאופן הפעולה של התיבה הקודמת, שהתנהגה כמו עמודה מסוג 'עמודה'. (I94893, b/167680279)
- הפרמטרים לקישוט התיבות הוצאו משימוש. אם רוצים להוסיף קישוטים או מרווח פנימי לתיבה, אפשר להשתמש במקום זאת במגבילי התאמה (Modifier.background, Modifier.border, Modifier.שטח ) (Ibae92, b/167680279)
- הוספת מחלקה חדשה של LazyListState. הדבר מאפשר תצפית ושליטה במיקום הגלילה של רכיבי LazyRow ו-LazyColumn. ניתן ליצור מכונות באמצעות ListenLazyListState() מועבר לפרמטר המצב של לרכיב הזה. בשלב זה, הפריט הגלוי הראשון והקיזוזים יכולים להיות שמופיעה בגרסה הראשונית הזו. (Ic7cb7, b/159307669)
- מיקום רשימה מדורגת והיסט גלילה שמורים כעת שחזור של פעילויות פנאי (Ie045f, b/166589058)
- הוספת פעולת סמנטיקה של לחיצה ארוכה (I6281b, b/156468846)
- נוספה הכלי Mutatormutex כדי להשאיר מוטציה אחת של מצב משותף לאורך זמן וביטול שינויים סותרים לפי עדיפות (I3f975)
- RootAnimationClockworks, מעבריםEnabled, blinkingCursorEnabled ו-textInputService פעולה עם @visibilityForTesting, הופכים אותם ל-API פנימי ומסתירים את ה-kdoc שלהם (I554eb, b/168308412)
- הפרמטר inlineContent הוסר מ'טקסט עם קלט מחרוזת'. לא ייעשה בו שימוש כי inlineContent חייב לפעול עם AnnotatedString. (Ief403)
- הוסרו ממשקי ה-API המותאמים אישית של Arrangement, שהוצאו משימוש. (Ic576d, b/168297922, b/168297923)
- הפרמטר
unbounded
נוסף לערכי wrapContentSize כדי לאפשר מדידה של רכיב הפריסה עם מגבלות אינסופיות של מקסימום. (I77951, b/158559319) - מנענו ייבוא סטטי של תוכן של היקפי פריסה (למשל, ⌘WithSiblings ב-RowScope). במקום זאת, צריך להשתמש בחלופה של ההיקף המפורש:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
תיקוני באגים
- עודכנו ממשקי API לגרפיקה רבים
- קנה המידה והסיבוב עודכנו של ממשקי API לטרנספורמציה כדי לצרוך פרמטר הסטה לייצוג הציר קואורדינטות במקום מספר ממשי (float) נפרד לקואורדינטות של ה-x/y DawScope ו-DawTransform
- הוסרו Rect.expandToInclude ו-Rect.join הוסרו אמצעי תשלום
- תיעוד הרדיוס עודכן ועכשיו הוא אובלי בנוסף למכשיר אליפטי
- נוסף תיעוד כדי לציין מבנה ציבורי של הרדיוס המוטבע לא ניתן להתקשר ישירות לכיתה, אלא יש ליצור אובייקטים מסוג רדיוס באמצעות את בונה הפונקציות שלהם
- הוסרו ממשקי ה-API של RoundRect להרצת שאילתה topRight, belowRight, belowCenter וכו'.
- Rect.shift הוצא משימוש לטובת Rect.Translate
- ממשקי ה-API של RoundRect.grow ו-Rect.shrink הוסרו
- השם של RoundRect.outerRect השתנה ל-Rect.boundingRect
- הוסר: RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
- השם של RoundRect.longestSide השתנה ל-RroundRect.maxMetric
- השם של RoundRect.shortestSide השתנה ל-RroundRect.min קובצי
- בוצע שינוי של RoundRect.center כנכס במקום לפונקציה
- עדכן את constructor של RoundRect כדי לצרוך מאפייני רדיוס במקום פרמטרים בודדים לערכי רדיוס של x/y
- הוסרו ממשקי ה-API של 'גודל' שהניחו שמדובר במלבן עם המקור ב-0,0
- נוסף לרדיוס ממשק API השמדה
- פונקציות שונות של תוספים מסוג RoundRect הועברו נכסים במקום זאת
- (I8f5c7, b/168762961)
- אופטימיזציית ביצועים ל-LazyColumnFor/LazyRowFor גלילה על ידי אי-הרכבה מחדש מיותרת במהלך כל גלילה (I64f65, b/168293643, b/167972292, b/165028371)
- תוקנה קריסה ב-LazyColumnFor/LazyRowFor לאחר גלילה ולאחר מכן שינוי פריטים, וגלילה אוטומטית כלפי מעלה כשהפריט שהיה גלוי בעבר הוסר כדי שלא נציג יותר פערים ריקים בסוף (I220ab , b/161480164 , b/167855468)
- כבר אי אפשר להציב את התוכן במאגרים שניתנים לגלילה באותו כיוון, כמו ScrollableContainer ו-LazyColumnFor. היא מעולם לא נתמכה והתפרעו ובין כל העצלות והעצלנות של כתיבת הפריטים של LazyColumnFor (I6e101)
- עודכנו ממשקי API לגרפיקה רבים
- ממשקי ה-API של DrawScope עודכנו עם היקף ההרשאות שיטות טרנספורמציה כדי לציין מיושמת רק במסגרת הקריאה החוזרת (callback) והוסרה לאחר הפעלת הקריאה החוזרת
- תיעוד מעודכן של ClatPath מתייחס ל'נתיב' במקום מלבן מעוגל
- תוקן הריווח בתיעוד של הפרמטר הימני ב-ClipPath
- השם של DrawScope.drawCanvas שונה ל-DockIntoCanvas ו הוסר פרמטר המידה
- שינית את השם של הפרמטרים dx/dy בשיטת Inset ל- אופקי ואנכי
- נוסף עומס יתר של הפניה שחוזרת על עצמה ערך פנימי לכל 4 הגבולות
- התיעוד הוסר משיטת ההטמעה, שמציין כי את כניסת הפיסקה תחול על כל 4 הצלעות
- תיעוד מעודכן לכיתת Rect
- התגובות בפרמטרים של Rect עודכנו כך שיתאימו ל-kdoc בסגנון
- הוסרו Rect.join ו-Rect.expandToInclude
- נוצר עומס יתר עבור Rect.Translate(offset) ו- Rect.shift הוצא משימוש
- (If086a, b/167737376)
- להוסיף את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
- כדי למנוע יצירת אובייקטים, צריך להפוך את TextRange למצב מוטבע. (Id034b)
- ה-PagraphConstraints הוסרה. הרוחב מועבר עכשיו ישירות לפיסקה. (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
- השם של InnerPating השתנה ל-PAttributesValues. (I195f1, b/167389171)
- שמות השימושים בכוח הכבידה שונו באופן עקבי כדי ליישר קו או ליישר קו בממשקי ה-API לפריסה. (I2421a, b/164077038)
- נוסף פרמטר יישור ל-Stack, שמאפשר לציין את יישור ברירת המחדל לכל הצאצאים של ה-Stack. (Ie80ca, b/164085265)
תיקוני באגים
- הוצאנו משימוש את DpConstraints וממשקי ה-API שמשתמשים בהם. (I90cdb, b/167389835)
- השמות של הפרמטרים
minWidth
ו-maxWidth
שלwidthIn
השתנו ל-min
ול-max
. באופן דומה, גם עבורpreferredWidthIn
,heightIn
,preferredHeightIn
. (I0e5e1, b/167389544) - נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule בתור הן הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
- חישובים של גודל ומיקום קבוע ב-TrafficScope נגרמה בין היתר ליצירה של תנועות החלקה לא חוקיות (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") } }
גרסה 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
- המרחב המשותף 'הארגון' נוסף ל'שורה' ו'עמודה', כדי לאפשר מיקום של פריסת צאצאים עם ריווח קבוע. נוסף גם הארגומנט המיושר כדי לאפשר פריסת צאצאים אחד לצד השני ומיושרים בשורה/עמודה לפי יישור. השיטות הקודמות של Arrangement.Vertical#arrange ו-Arrangement.Horizontal#arrange הוצאו משימוש, ובעתיד לא תהיה תמיכה בכתיבה של סידורים מותאמים אישית. (I6733d, b/161985975)
- ההיסט הפך למחלקה מוטבעת (Iaec70)
- הוסרו קריאות חוזרות של onFocusChanged מ-TextField. במקומו צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- הממשק Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. סיווג נתוני הגבול הוחלף ב-BorderStroke (I4257d, b/158160576)
- VerticalScroller ו-HorizontalScroller הוסרו. במקום זאת, אפשר להשתמש ב- ScrollableColumn/Row. בוצעה הסרה של Modifier.drawBackground. משתמשים ב-Modifier.background (I73b0d, b/163019183)
- מסירים מ-LazyItemScope את ערכי הצירוף שמסומנים כמגבילי fullMax* שהוצאו משימוש, כי קשה יותר להוסיף אותם בצורה נכונה לפריטים שאינם צאצאים של LazyColumnFor (Ifa78d)
- הוספת הטמעת LazyColumn/LazyRow כ-DSL (I93cc6)
- האילוצים הם עכשיו מחלקה מוטבעת (I88736)
- נוספה האפשרות להתאים את הפריסה לחלק גדול מהשטח הזמין באמצעות מקשי הצירוף fullMaxwidth, fillMaxHeight ו-fillMaxSize. (I945bb, b/161562591)
תיקוני באגים
- נוסף פרמטר מגביל ל-SelectContainer (I4aada, b/161487952)
- נוספה מדיניות מיזוג המדיניות lambda ל-SemmanticsPropertyKey. סוג הפריט יכול להיות משמש להגדרת מדיניות מותאמת אישית לסמנטיקה של מיזוגAllDescendants מיזוג. מדיניות ברירת המחדל היא להשתמש בערך ההורה אם כבר קיים, אחרת ערך הצאצא. (Iaf6c4, b/161979921)
- השם של
PlacementScope.placeAbsolute()
השתנה ל-PlacementScope.place()
, והשם הקודם שלPlacementScope.place()
השתנה ל-PlacementScope.placeRelative()
. כתוצאה מכך, השיטהPlacementScope.place()
לא תשקף יותר את המיקום באופן אוטומטי בהקשרים של מימין לשמאל. אם רוצים, משתמשים במקום זאת ב-PlacementScope.placeRelative()
. (I873ac, b/162916675) - הוסר רכיב FilledTextField שהוצא משימוש. במקום זאת, יש להשתמש ב-TextField כדי לקבל יישום של עיצוב Material Design של שדה הטקסט הממלא. (I5e889)
- נוסף הפרמטר רקעColor ל-LinearProgressIndicator והסרת המרווח הפנימי הפנימי מ-CircularProgressIndicator. נוספה ProgressIndicatorConstants.DefaultProgressAnimationSpec חדש, שיכול לשמש כפרמטר ברירת המחדל של האנימציה (If38b5, b/161809914, b/161804677)
- התוכן הקומפוזבילי
state { ... }
הוצא משימוש לטובת קריאות מפורשות אלremember { mutableStateOf(...) }
לשם הבהרה. כך יצטמצמו פלטפורמת ה-API ואת מספר המושגים ברמת המדינה ניהול, שתואם לדפוסby mutableStateOf()
של הכיתה להעניק גישה לנכסים. (Ia5727) - השם של RRect השתנה ל-RroundRect כך שיתאימו טוב יותר לדפוסי השמות של הכתיבה יצרתם בנאים של פונקציות דומות לפונקציית RRect שהוצאה משימוש constructors (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)
- העברת תיבת דו-שיח ל-ui (I47fa6)
- נוספה LazyColumnForIndexed/LazyRowForIndexed - גרסאות של LazyColumnFor/LazyRowFor, שמספקת גם את האינדקס וגם את הפריט ב-itemCallback. האפשרות הזו שימושית כשבנוסף לפריט נוכחי, צריך לדעת מהו האינדקס הנוכחי. (I65ff3)
- השם של Modifier.deternimateProgress שונה ל-Modifier.progressSemantics (I9c0b4)
- השם של LazyColumnItems שונה ל-LazyColumnFor. השם של LazyRowItems שונה ל-LazyRowFor (I84f84)
- מומלץ להוסיף כמה סימנים או הערות מסיבות שקשורות לשיטות המומלצות. (I66b20)
- base.shape.corner package were Flaten to Foundation.share (I46491, b/161887429)
- נוסף פרמטר כוח הכבידה של сrosscast עבור LazyRowItems/LazyColumnItems. LazyRowItems/LazyColumnItems תומכים עכשיו בהתנהגות של תוכן הגלישה. (Ib39fc)
- השם של ZoomableState השתנה ל-ZoomableController. נוספה תמיכה בעקומות בהתאמה אישית עבור smoothScale. הפונקציונליות
enabled
ו-onZoomStarted
נוספה (If8b8f) - השם של Material FilledTextField השתנה ל-TextField והשם של TextField השתנה ל-BaseTextField כדי שיהיה קל לגלות את ה-API הרצוי ולהשתמש בו (Ia6242, b/155482676)
- הוסרה הגרסה של AdjustList שהוצאה משימוש. במקומו כדאי להשתמש ב-LazyColumnItems (I12b9b)
- השם של Modifier.drawBackground השתנה ל-Modifier.background (I13677)
- ה-ConstraintLayout DSL הישן הוסר. השם של ConstraintSet2 השתנה ל-ConstraintSet. (If58d1, b/162450908)
- נוספו Modifier.ABoluteOffset() ו-Modifier.ABoluteOffsetPx(). בשונה ממגבילי היסט, מגבילי היסט מוחלטים לא ישוכפלו אוטומטית בהקשר של מימין לשמאל (I3aa21)
Row
ו-Column
הם עכשיו פונקציות מוטבעות באופן משמעותי ולהפחית את התקורה כתוצאה מהשימוש בהם. (I75c10)
תיקוני באגים
- כתובות לתיקונים רחבים ב-API (I077bc)
- הסרת ממשק OffsetBase שאינו בשימוש
- יישרו מחלקות אחת (Offset) ו-IntOffset כדי פלטפורמת API עקבית
- שינוי השם של IntOffset.Origin ל-IntOffset.Zero להיות עקביים עם Offset API
- שיטת NativeCanvas הועברה מלוח הציור ממשק לתמיכה בצרכנים כדי ליצור מופעי בד קנבס משלך
- נוצרה כיתת stub EmptyCanvas כדי לארגן מחדש DrawScope להיות פרמטר שאינו אפס במקום מאוחר יותר ולוודא שהשדה אינו null
- השם של ClipOp enum השתנה ל'מקרה פסקל'
- שם המסנן השתנה ל'מקרה פסקל'
- שינינו את השם של StrokeJoin enums ל-Pascal Case
- השם של 'טיפוסים בני מנייה (enum)' השתנה ל'מקרה של פסקל'
- השם של enums ב- PaintingStyle השתנה ועכשיו הוא מקרה פסקל
- השם של PathFillType השתנה לאותיות פסקל
- השם של טיפוסים ב-StrokeCap השתנה לאותיות פסקל
- היישום של DrawCache עודכן ועכשיו הוא לא קיים יותר להשתמש בפרמטרים 'בהשהיה'
- בוצע עדכון של DrawScope לשימוש בהענקת גישה מדורגת לפרמטרים פנימיים של fullPaint ו-streamPaint
- התמונה הקומפוזבילית עודכנה כדי להימנע משימוש ב-Box למשך פחות תקורה
- עדכנו את הכיתה ב-Outline ועכשיו יש בה הערות @Immutable
- PathNode עודכן כך שיש בו הערות @Immutable עבור כל הוראה בנתיב
- הרכב המשנה וקטורי עודכן כדי להסיר פרטים מיותרים בדיקות מותנות לשוויון כי כבר צריך לטפל בהרכבה אותם
- לטובת שיטות constructor נלוות של Rect שהוצאו משימוש של בוני פונקציות
- מחלקות מברשות ומבני פונקציות עודכנו עם ממשקי API של @Immutable ו- @Stable
- VertexMode enum עודכן ועכשיו הוא PascalCase
- שיטת ה-selectPaint של DrawScope עודכנה ל'מותנית' להחליף פרמטרים של קו בצבע בצביעה אם יש להם השתנה
- עודכנה הגודל כדי להוסיף ממשק API להרוס, שינוי השם לא צויןגודל לערך לא צוין והוסרו שיטות שלא בשימוש
נוספה ההגדרה 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)
השירות Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. 'אז' מקבלים אות חזק יותר של הזמנה, וגם אוסר על הקלדת
Modifier.padding().background() + anotherModifier
, דבר ששובר את השרשרת וקשה יותר לקרוא (Iedd58, b/161529964)נוספו
isFocused()
ו-isNotFocused()
SemanticsMatcher. (I0b760)RemeasurementModifier נוסף. הוא מאפשר למשתמשים למדוד מחדש את הפריסה באופן סינכרוני. באופן כללי, אין צורך בכך כי המדידה מחדש/ההעברה מתרחשת באופן אוטומטי, אבל אנחנו משתמשים בהן בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
isSystemInDarkTheme תמיד מביאה בחשבון את הגדרת העיצוב הכהה ברמת המערכת, ומתעלמת מסטטוס החיסכון בסוללה לפני Q, בהתאם להנחיות האחרונות. (I0c10c)
ה-OnChildPositioned הוצא משימוש. שימוש ב-OnPositioned על הילד או הילדה. (I87f95, b/162109766)
השם של AndroidComposeTestRule השתנה ל-createAndroidComposeRule. (I70aaf)
צריך להוסיף פעולת נגישות כדי לקבל TextLayout בטעינה (I9d6e6)
גרסה 0.1.0-dev15
22 ביולי 2020
androidx.compose.foundation:foundation:0.1.0-dev15
, androidx.compose.foundation:foundation-layout:0.1.0-dev15
ו-androidx.compose.foundation:foundation-text:0.1.0-dev15
שוחררו. גרסה 0.1.0-dev15 מכילה את ההתחייבויות האלה.
כדי להשתמש בגרסה 0.1.0-dev15
של 'כתיבה', צריך:
עדכון של יחסי התלות
- כדי להשתמש בגרסה
0.1.0-dev15
של 'כתיבה', צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.
שינויים ב-API
- בדומה לפרמטר החדש שמופיע ב- ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems יש עכשיו גם פרמטר contentPגנים שמאפשר להוסיף מרווח פנימי לתוכן אחרי שנחתך, ולא ניתן לעשות זאת רק באמצעות פרמטר מגביל. היא גם מאפשרת להוסיף ריווח רק לפני הפריט הראשון/אחרי הפריט האחרון. (Ibc24e)
- קריאה חוזרת של onFocusChange בשדות טקסט ששמם השתנה ל-onFocusChanged (Ida4a1)
- העמודות VerticalScroller ו-HoriziontalScroller הוצאו משימוש. ניתן להשתמש ב- ScrollableColumn וב-SllableRow כדי להתנסות באופן מובנה בהתנהגות ובפרמטרים של עמודות/שורה, או ב-Modifier.verticalScroll ו-Modifier.verticalScroll לרכיב משלך. באופן דומה, ScrollerPosition הוצא משימוש לטובת ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
- ממשקי ה-API של Modifier.draggable ו-Modifier.scrollable עברו עיבוד. התכונה DragDirection הוסרה לטובת הכיוון. המצב הנדרש לגלילה הוגדר בצורה פשוטה יותר. השם של ScrollableState השתנה ל- ScrollableController (Iab63c, b/149460415)
- במאפיינים של סמנטיקה של ערך יחיד נעשה עכשיו שימוש בסגנון קריאה.
לדוגמה, 'semantics { paused = true }' כתוב עכשיו כך:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - גדלי הפינות המשמשים את RoundedCornerForm ו-CornerForm יכולים עכשיו להיות גדולים מ-50% (Id2340, b/160400213)
- שינית את ערך ברירת המחדל של ContentScale פרמטר לתמונה קומפוזבילית מפנים ל-Fit. הפעולה בוצעה לפי הסדר כדי לקבל התנהגות שמאפשרת להגביר את צבעים אם גודל הפריסה גדול מ- לגודל הפנימי של הצייר שמירה על יחס גובה-רוחב. הזה ההתנהגות תואמת טוב יותר לציפיות לציון גדלים קבועים של התמונה מבלי להשפיע על התנהגות ברירת המחדל אם משתמשים רק בגודל הפנימי לחשב את הגודל של התוכן הקומפוזבילי. (I40ae3, b/159838006)
- שימוש ב-AnimationSpec בתוך ממשקי ה-API ברמה העליונה במקום ב-AnimationBuilder כדי להבהיר את המושג 'מפרט אנימציה סטטית' -לשפר את המעבר ל-DSL על ידי הסרת דרישת lambda עבור יצירת מפרטי אנימציה כמו גיל טרום-עשרה, אביב. במקום זאת, הם מקבלים את הפרמטרים של constructor באופן ישיר. -שיפור הקלות הכוללת של פתיחת AnimationSpec ולא להסתמך על בנאים - שינוי משך הזמן וההשהיה של מסגרות KeyFrames ו-Tween to Int. הזה מבטלת העברות טיפוס מיותרות ועומס יתר על שיטות (methods) תמיכה גם ב-Long וגם ב-Int). (Ica0b4)
- הוסר קליק. משתמשים ב-Modifier.clickable (I84bdf)
- נוספה LazyRowItems – גלילה אופקית של LazyColumnItems (Ibbcf7)
- הצגת ממשקי API של אנימציה ברמה נמוכה ללא שמירת מצב. ממשקי ה-API האלה (I63bf7)
- androidx.ui.foundation.TextFieldValue וגם הפונקציה androidx.ui.input.EditorValue הוצאה משימוש. TextField, תכנים קומפוזביליים של FilledTextField ו-CoreTextField שנעשה בהם שימוש גם סוג זה הוצא משימוש. צריך להשתמש ב- במקום זאת androidx.ui.input.TextFieldValue (I4066d, b/155211005)
- השימוש ב-IntPx הוחלף ב-Int. מיקום IntPxPosition הוחלף עם IntOffset. הערך של IntPxSize הוחלף ב-IntSize. (Ib7b44)
- androidx.ui.foundation.shape.RectangleForm הוסר; צריך להשתמש ב-androidx.ui.graphics.Rectangle למשתמשים (I94939, b/154507984)
- כדי לאחד את את מספר המחלקות לייצוג התאמת גודל, סטנדרטיזציה על השימוש במחלקת גודל של PxSize. זה היתרונות של בכיתה מוטבעת כדי להשתמש לארוז 2 ערכים צפים לייצוג רוחב וגובה מיוצגים כצפים. (Ic0191)
- כדי לאחד את את מספר המחלקות לייצוג פרטי מיקום, ליצור סטנדרטיזציה על השימוש במחלקה Offset של PxPosition. זה היתרונות של בכיתה מוטבעת כדי להשתמש לארוז 2 ערכים צפים כדי לייצג x ו-y קיזוזים מיוצגים כצפים. (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 הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)
- VerticalScroller מציע עכשיו Column (עמודה) מהתיבה. לרוחב ה-HorizontalScroller מופיע עכשיו שורה מחוץ לקופסה. (Ieca5d, b/157020670)
- השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)
- Modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג לחיצה/גרירה/סימון אחר ברכיבים המותאמים אישית שניתנים לאינטראקציה (I8425f, b/155287131)
- התכונות VerticalScroller ו-HorizontalScroller תומכות עכשיו בגלילה הפוכה. היא מוגדרת למצב ScrollerPosition (I953bd)
- תמיכה בהוספת תכנים קומפוזביליים לפריסת טקסט. (I1373c)
- הטמעות מאוחדות של CanvasScope עכשיו יש רק את DrawScope היקף התוכן השם של CanvasScope השתנה ל-DawScope. בוצע עדכון של DrawScope להטמעת צפיפות ולספק LayoutDirection מחלקה משנית של DrawScope נמחקה ב-ContentDrawScope צבעים ו- PainterModifier עודכנו כדי להפסיק לתחזק נכס RTL בעצמם, מכיוון ש-DawScope כבר מספק בלי לספק אותו באופן ידני (I1798e)
- הוסרה התכונה DrawBackground שהוצאה משימוש API עם העדפה לתוסף RollBackground ממשקי API ב-Modifier. ארגון מחדש צבע, מברשת וציור רקע הטמעות כדי לצמצם את נתיבי הקוד כדרישה להסרה לצורך יצירת מגביל כחלק מהיצירה. (I0343a)
- עודכנה רמה גבוהה יותר כתיבת ממשקי API שחושפים בד ציור במקום זאת, לחשוף את CanvasScope. הפעולה הזו תסיר הצורך של הצרכנים לשמור על אובייקטים של 'צייר'. למשתמשים עדיין נדרשת גישה ללוח הציור הוא יכול להשתמש בתוסף PaintCanvas שמאפשרת קריאה חוזרת (callback) לבעיה שרטוט של פקודות באמצעות קנבס. (I80afd)
- אופקים ו-VerticalScroller לא משחזרים את מיקום הגלילה שלהם באמצעות מצב המכונה שנשמר. (Ia0fae, b/155075048)
- ה-FocusManagerAmbient הוסר. שימוש ב-FocusModifier.requestFocus כדי להשיג מיקוד. (Ic4826)
- פריסת הטבלה הוסרה באופן זמני עד שהיא תחזור להיות זמינה עם API שעבר רענון. (Id88a7)
יצרתם ממשק API של CanvasScope שמכסה אובייקט בד ציור כדי לחשוף אובייקט ללא שמירת מצב, וממשק API לשרטוט. הטרנספורמציות נכללות בתוך היקף המקבל וגודל מידע הוא גם כולל גבולות פנימיים תואמים. הצרכן לא נדרש לשמור על מצב צבע משלו. להגדרת פעולות שרטוט.
נוספה גם CanvasScopeSample וגם עדכנת את אפליקציית ההדגמה ועכשיו היא כוללת גרפיקה מוצהרת הדגמה (Ifd86d)
ColoredRect הוסר. תיבת משתמש עם תכונת שינוי חדשה (I983c7, b/152753731)
הוספת התאמה אישית של צבע הסמן ב-TextField (I6e33f)
כעת ניתן להסתיר/להציג את מקלדת התוכנה באמצעות Softwareמקלדתבקר שמסופקת על ידי onTextInputStarted callback (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)בוצעה החלפה של CoreTextField/TextField FocusIdentifier עם FocusNode כדי לשלב אותו עם מערכת המשנה של המיקוד. (I7ea48)
עדכון TextField - במאפיין האופקי הוא יתפוס את כל השטח הזמין שהוענק לו (Ib08df, b/154638552)
נוספו InteractionState ו-Interaction כדי להקל על הבנייה של רכיבים המגיבים לשינויים במצב ממשק המשתמש, כגון לחיצה וגרירה (Icfe25, b/152525426)
RectangleForm הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
כל השימושים בצבע nullable ב-API הוחלפו ב- non-null ולהשתמש ב-Color.Unset במקום ב-null (Iabaa7)
עדכון של TextField API – מוזגו קריאות חוזרות של onFocus ו-onBlur לקריאה חוזרת (callback) אחת של onFocusChange(Boolean) עם פרמטר (I66cd3)
השם של ScaleFit שונה ל-ContentScale ContentScale הועבר מממשק משתמש גרפי לממשק משתמש (ui-core) חיים באותו המודול כמו היישור API. השם של FillMaxAttribute השתנה ל'חיתוך' השם של FillMin מצד השתנה ל-Fit שינינו את השם של 'כושר' ל'פנים' כדי לשפר את ההתאמה ערכים מקבילים של ImageView.ScaleType נוסף תיעוד שמציין שהשילוב של Crop ו-יישור.Center משיגה את אותה התוצאה בתור ImageView.ScaleType.CENTER_CROP ו-Fit נעשה שימוש ב-יישור.Center משיג את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER. השימוש בפנים עם יישור.Center משיג את אותו הדבר תוצאה בתור ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)
התכונה RemoveContentColor מסירה במקום זאת רק את ContentColorAmbient ישירות עם
Providers
(Iee942)הפונקציה מוסיפה פרמטר של צבע לטקסט ומאפשרת לשנות את הצבע של סגנון הטקסט בלי למזג ידנית עם הסגנון שצוין בעיצוב. (I41a66)
שיפור של DrawModifier API:
- יצרת את היקף המקבל עבור pull() ContentDrawScope
- הוסרו כל הפרמטרים מ-Dock()
- הממשק של DrawScope זהה לממשק הקודם של CanvasScope
- ContentDrawScope כולל שיטת pullContent() (Ibaced, b/152919067)
הצבע של ColoredRect הוצא משימוש. במקומה צריך להשתמש במדיניות
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731)מערכת עיצוב הצורה מתעדכנת בהתאם למפרט של עיצוב חדשני חומרים. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות שישמשו את רוב הרכיבים (Ifb4d1).
אופרטור הצירוף הוחלפה בפונקציות של תוספי היצרן (I225e4)
אפשרות הגרירה הועברה למצב הצירוף (Id9b16, b/151959544)
Text
הועברה לחבילת androidx.ui.foundation, מ-androidx.ui.core. (I87ce5)הוספת הפרמטר
enabled
לתיבת סימון, למתג ולהחלפת מצב (I41c16)Ripple הוא עכשיו 'מגביל'. אמנם השירות 'קליקבילי' עדיין לא הומר, אבל השימוש המומלץ הוא
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)נוסף VectorPainter API אל להחליף את Subcomposition API קיים בשביל בגרפיקה וקטורית. תוצאה של הרכב משנה הוא אובייקט VectorPainter במקום DrawModifier. DrawVector הקודם הוצא משימוש לתכנים קומפוזביליים לטובת VectorPainter.
השם של ה-API של
Image(Painter)
שונה ל-PaintBox(Painter)
יצרתם קומפוזבילי וקטורי שפועל כמו אפשר ליצור תמונה קומפוזבילית, אבל לא באמצעות VectorAsset במקום זאת של ImageAsset (I9af9a, b/149030271)תמונה קומפוזבילית שנוצרה לטיפול שינוי גודל/פריסה בנוסף לשרטוט נתון ImageAsset אל המסך. התוכן הקומפוזבילי הזה תומכת גם בשרטוט כל צבע שרירותי שמתייחס לגודל הפנימי שלו וגם תמיכה בפתרון קבוע נתון גודל או גודל מינימלי (Ibcc8f)
ללחצן, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabled
נפרד. השמות של חלק מהפרמטרים ב'לחצן' שונו או שהסדר שלהם השתנה. (I54b5a)השם של התמונה השתנה ל-ImageAsset כדי ליצור הבחנה טובה יותר את ההבדל בין נתוני התמונה לבין הנתונים תמונה קומפוזבילית שמשמשת להשתתפות בפריסה ובציור תוכן.
נוצרה שיטת תוסף ב-android.graphics.Bitmap,
Bitmap.asImageAsset()
, כדי ליצור מופע של ImageAsset שימושי לשילוב במכשירי Android מסורתיים פיתוח אפליקציות באמצעות מסגרת הכתיבה. (Id5bbd)התוכן הקומפוזבילי של DrawImage הוסר. אפשר להשתמש ב-ImagePainter כדי לשרטט תמונה בפריסה קיימת, או ב-SimpleImage כדי להציג תמונה שצורכת מקום (I595e1, b/149827027)
רכיב מקבץ תומך בכיווניות מימין לשמאל (Ic9e00)
נוסף סמל, לחצן IconToggle והסרת AppBarIcon. תוכלו להחליף ישירות שימושים קיימים ב-AppBarIcon ב-iconButton, ועכשיו יהיה להם משטח המגע הנכון. הצגת דוגמאות של את פרטי השימוש שלו, ולראות סמלים עבור סמלי החומרים שסופקו אפשר להשתמש בהם ישירות עם הרכיבים האלה. (I96849)
הוסר התוכן הקומפוזבילי של DrawForm. במקום זאת, אפשר להשתמש בתכונת הצירוף DrawBackground. (I7ceb2)
נוסף AdjustList, רכיב של רשימת גלילה שרק מלחין ופורס את הפריטים הגלויים. בעיות ידועות כרגע מציין שמדובר בפורמט אנכי בלבד והוא לא מטפל במלואו במקרים של שינויים הצאצאים שלו. (Ib351b)
נוסף רכיב שניתן לגלילה, שמאפשר ליצור רשימות גלילה/רשימות בהתאמה אישית (I5fd37)
שינית את שם הרקע ל-DawBackground וברירת המחדל ל'חשוב לזכור' אותו (Ia0bd3)
הוספת מרווחים פנימיים, גבולות, צורה ופרמטר רקע ל-Box (I05027, b/148147281)
רכיב לוח הציור נוסף. התוכן הקומפוזבילי הזה תופס חלק מהגודל (נשלח על ידי המשתמש) והוא מאפשר לצייר באמצעות CanvasScope (I0d622)
שינוי השם של מגביל
Border
ל-DrawBorder
(I8ffcc)נוסף רכיב Box לשילוב פריסה ושרטוט פונקציונליות נפוצה. (I6e2a7)
עכשיו, בגלילות רואים התנהגות רגילה של תנועה מרחפת ב-Android. (I922af, b/147493715)
בוצעה החלפה של DrawBorder במקום Border Modifier (Id335a)
השם של Modifier.tag שונה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)
השם של פרמטר האחוז ביצירת הנחיות ConstraintLayout השתנה ל'שבר'. (Ida2db)
נוספה תמיכה בשוליים של מחסומי ConstraintLayout. (I47ffe)
תוקנה תמיכה ב-RTL ב-ConstraintLayout. נוספו ממשקי API לא מודעים מסוג RTL. (I3b1c7)
נוסף DSL חדש ל-ConstraintLayout. לקבלת פרטים נוספים, מומלץ לעיין בדוגמאות. (Icaa9a)
נוספה ההערה @גרסה ניסיונית לפריסה. ConstraintLayout, FlowRow ו-FflowColumn מתויגים עכשיו כדי לסמן שממשקי ה-API שלהם עומדים להשתנות. (I412a8)
Modifier.padding(InnerPadding)
נוסף (I94985, b/157133803)הוסרה האפשרות 'Rowיישור', 'יישור עמודות' ו'יישור עמודה' שהוצאו משימוש. (If60d4, b/155858731)
הוסרה LayoutTag() שהוצא משימוש. במקומו צריך להשתמש ב-Modifier.tag() . הוסר Modifier.matchParent() . במקומו צריך להשתמש ב-Modifier.matchParentSize() . (If8044)
נוסף מגביל הפריסה offsetPx, שניתן להשתמש בו כדי להגדיר היסטולים (דינמיים) ב-px. (I5af57)
תוכן קומפוזבילי עם ערכי יישור קומפוזבילי הוצא משימוש. במקומו צריך להשתמש בתכונת הצירוף נעזרתיחס (מידע ) שניתנת להתאמה. התוכן הקומפוזבילי במרכזיישור ליין הוסר. (I60107)
נוסף ערך ברירת מחדל לפריסה של defaultMinSizeConstraints, שמגדיר מגבלות גודל לפריסה הארוזה רק אם לא צוינו האילוצים הנכנסים והתקפים (0 אם מדובר במגבלות של מינימום ואינסוף למגבלות מקסימליות). (I311ea, b/150460257)
המאגר הוסר. במקום זאת, צריך להשתמש ב-Box (Ibbc2b, b/151407926)
הוסרו ערכי הצירוף של רוחב/גובה/גודל שהוצאו משימוש. (Ib0bc1)
נוספו ערכי פרמטרים שמוגדרים כברירת מחדל למגביל ההיסט. (I37f06)
נוסף מקש מרווח סימטרי למרווח פנימי. (I39840)
הוסר מקש הצירוף LayoutAspectRatio שהוצא משימוש. (I65a74)
הוסרו מגבילי יישור שהוצאו משימוש. (I10877)
תוקן באג במגבילי הרוחב והגובה שגרם למדידה של הפריסה הארוזה ללא מגבלות של צירים נגדיים. (I210b8, b/154797971)
נוספו פרמטרים של 'Gravity' ו-'UniformGravity' ל'שורה' ו'עמודה', בהתאמה. (I7dc5a)
עודכנו wrapContentwidth ו-wrapContentHeight כדי לצפות ליישור אנכי או אופקי, במקום יישור כלשהו. מקש הצירוף של כוח הכבידה עודכן לקבלת יישור אנכי או אופקי. השורות, העמודות והמקבץ עודכנו ועכשיו הם תומכים ביישור רציף בהתאמה אישית. (Ib0728)
ניתן ליצור יישור באופן מיידי עם ערכים שרירותיים. נוספו יישורים בתלת-ממד. (Ia0c05)
השם של כניסות Edge השתנה ל-InnerPbound. השם של פרמטר הפנימי (inPend) השתנה מ'לחצני חומר' ל'padpad'. (I66165)
עכשיו הפרמטר OptimizeToSiblings מקבל מודל 'מדידה' במקום 'placeholder'. (I5788d)
נוספו התאמות לשינוי הגודל למדידות פנימיות והוצאנו משימוש את הרכיבים שמשרתים את המטרה הזו. (I8295d)
נוספה תמיכה בהתאמה אישית של מימדים של צאצאים של ConstraintLayout (Idb1a5)
הוסרו תכנים קומפוזביליים של Wrap ו-Center שהוצאו משימוש. (I29e23)
נוסף LayoutModifier2, ממשק API חדש להגדרת מגבילי פריסה; LayoutModifier שהוצא משימוש (If32ac)
החברים ב-rowScope וב-ColumnScope נגישים עכשיו מחוץ ל-Row ול-Column. (I3a641)
הקונטיינר הוצא משימוש. במקום זאת, צריך להשתמש ב-Box. (I675ce, b/151407926)
נוסף מקש הצירוף LayoutOffset לשינוי מיקום הפריסה (I0b8a3)
תמיכה ראשונית ב-Rtl בפריסת פיתוח נייטיב (Ia5519)
בוצע עדכון של הפריסה כך שלא תמלא יותר את השטח הזמין (I2b14f)
התוכן הקומפוזבילי AspectRatio הוסר לטובת מגביל. מחוק(ה) ערך מיושן של FlexColumn, FlexRow composables and Spacing (Iec8a7)
הוסרה תכונת הצירוף LayoutInflexible לשורה ולעמודה (I0d820)
צריך להטמיע נקודות אחיזה לבחירת גרירה כדי לשנות את הבחירה ב-TextField. (I27032)
מיישמת את LongClickAndDrag לבחירת TextField. (I17919)
תיקוני באגים
- ה-FocusModifier הוצא משימוש והוחלף ב-Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. ה-FocusState ו-FocusDetailedState הוצא משימוש לטובת FocusState2 (I46919, b/160822875, b/160922136)
- השם של
runOnIdleCompose
השתנה ל-runOnIdle
(I83607) - השמות של חלק מממשקי ה-API לבדיקה השתנו ועכשיו הם יותר אינטואיטיביים. הכול השמות של ממשקי ה-API של findXYZ השתנו ל-ב-NodeXYZ. השמות של כל ממשקי ה-API של DoXYZ השתנו ל- לבצעXYZ. (I7f164)
- מסיר את Modifier.ripple שהוצא משימוש. האפליקציה 'לחיצה על דף' משתמשת עכשיו ב'גלים' כאינדיקציה ברירת המחדל (אם הגדרתם MaterialTheme {} באפליקציה שלכם), כך שברוב המקרים תוכלו פשוט להשתמש ב'גלים' כדי לקבל אינדיקציה בחינם. אם אתם צריכים להתאים אישית את הצבע / הגודל / הפרמטר המוגבל של ההד, תוכלו ליצור מאפיין גלים באופן ידני ולהעביר אותו כפרמטר לחיץ (קליקבילי). (I663b2, b/155375067)
- הוסרו ממשקי API מיושנים לבדיקת גודל. (Iba0a0)
- ממשק API ניסיוני של LayoutNode (I4f2e9)
- גרסה 1 של נעילת כיוון הגלילה היא שהוטמעו ב'כתיבה'. (I1ce7a, b/150289741)
- חלונות קופצים, תיבות דו-שיח ותפריטים יורשים את עיצוב התוכן ההקשרי ההקשרי (Ia3665, b/156527485)
- הפרמטר של כיוון הפריסה הוסר מבלוק המדידה של הפונקציה Layout() . עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)
- Add AbsoluteArrangement – מאפשר לסדר את הצאצאים בתוך השורה ללא שיקוף אוטומטי ב-RTL (I3a1df)
- הוצאנו משימוש את ההערה @ללא מעקב. מחליפים ב- @ComposableContract(tracked=false) (Id211e)
- לפני השינוי הזה, הפלאגין של המהדר לכתיבה היה לא מיירט קריאות למבנים בתוך פונקציה מסוג @Composable אם הייתה לו (I5205a, b/158123804)
- הוספת תוכן קומפוזבילי
viewModel()
שמאפשר ליצור או ליצור כבר ViewModel באופן דומה לאופן שבו הוא פועל ב'פעילות' או ב-Fragment (I5fdd1) סיווג רדיוס מחדש להגדרה כיתה מוטבעת. היצירה הנלווית הוסרה במקום ב-constructor של פונקציות עם פרמטר ברירת המחדל כדי שהרדיוס תואם לציר ה-Y פרמטר של רדיוס בציר ה-X.
עודכן ב-DawScope.drawRoundRect לצריכה פרמטר רדיוס יחיד במקום שני פרמטרים נפרדים ערכים צפים של הרדיוס לאורך x ו-y ציר (I46d1b)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים. כיתה Px נמחקה במלואה (I3ff33)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)
הסמן של TextField מציג אנימציה מהבהבת (Id10a7)
תנועות חלקיות כבר לא מחייבות העברה של motionToken (Id7ae5)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)
Modifier.semantics הוצא משימוש כדי לאפשר שימושים ברכיבים ברמה גבוהה. (I4cfdc)
שינוי השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)
עדכנו את ה-API של היישור והוספנו תמיכה בהתאמה מוחלטת (שלא משקפת באופן אוטומטי בהקשר Rtl) (I38cd3)
אפשר למדוד את הצאצאים של Layout ו-LayoutModifier, בכיוון פריסה שונה. (Ibd731)
הצגה של מלבן אופציונלי נוסף ל-ImagePainter כדי לתמוך שרטוט קטע משנה של ImageAsset (I0ea9e)
תוקנה קריסה ב-AdjustList בזמן הסרת פריטים (Ic64b0, b/153195921)
שינינו את האופן שבו אנחנו מודדים את הפריסה הראשונה שהוספת בבלוק activity.setContent { }. בעבר המכשיר היה ממלא את כל המסך של הפעילות, ועכשיו הוא מתנהג כאילו מציבים את הפריסה בתוך מקבץ: הוא יכול להיות קטן יותר מהמסך, והוא ימוקם במסך הימני העליון. אם רוצים להשתמש בהתנהגות הישנה, אפשר להחיל את Modifier.fillMaxSize() על הפריסה. (Ie88a7, b/153453714)
השם של המודול ui-text-compose שונה ל-ui-text. טקסט בממשק משתמש מכיל עכשיו תכנים קומפוזביליים של CoreText ו-CoreTextField (Ib7d47)
השם של מודול ui-text השתנה ל-ui-text-core (I57dec)
הועברו ui-framework/CoreText, תכנים קומפוזביליים של CoreTextField ui-text-compose. כדאי שתהיה לך אפשרות לכלול את ui-text-compose פרויקט. (I32042)
runOnIdleCompose
ו-runOnUiThread
הן עכשיו פונקציות גלובליות במקום להשתמש ב-methods ב-ComposeTestRule. (Icbe8f)[ניתן לשינוי]האופרטורים להענקת גישה לנכסים במדינה עברו לתוספים לתמיכה באופטימיזציות של מקבלי גישה לנכס Kotlin 1.4. מתקשרים חייבים להוסיף מיובאים כדי להמשיך להשתמש ב-
by state { ... }
או ב-by mutableStateOf(...)
. (I5312c)DrawLayerModifier ו-trainLayer() משמש עכשיו כברירת המחדל ל-ClipToBounds ו-ClipToOutline ל-FALSE. (I0eb8b, b/152810850)
השם של Layout result השתנה ל-MeasureAmount. (Id8c68)
תוכן קומפוזבילי שהוצא משימוש במרכז. צריך להחליף אותו במגביל הצירוף LayoutSize.Fill + Layout.Center, או באחד מהקומפוזביליים של Box או Stack עם מגבילי התאמה מתאימים (Idf5e0)
השם של הפריסה הגמישה השתנה ל-Layoutweight (משקל). השם של הפרמטר 'נוח' שונה למילוי. (If4738)
DrawVector השתנה ממערך רגיל בפונקציה קומפוזבילית להחזרת ערך Modifier pullVector() יצייר את הווקטור כרקע לפריסה. (I7b8e0)
החלפת הקליפ של הפונקציה הקומפוזבילית עם מקש הצירוף DoodleClip(). תכונת 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)תוכן קומפוזבילי על האריזה שהוצא משימוש. אפשר להחליף אותו במנגנון הצירוף של LayoutLayout או ברכיב הקומפוזבילי של Stack (Ib237f)
כיוון הפריסה יופץ מצומת פריסת ההורה לצאצאים. נוסף ערך לשינוי כיוון הפריסה. (I3d955)
משנים את השם של Painter.toModifier ל- Painter.asModifier כי בגרסה החדשה של ה-Modifier יש הפניה לצייר המקורי שניתן לשתף בין מספר מופעי צירוף (I7195b)
תמיכה בכיוון מימין לשמאל בתכונת השינוי של LayoutPpy (I9e8da)
השדות Density ו-DensityScope מוזגו לממשק אחד. במקום TimeDensity() אפשר להשתמש ב-DensityAmbient.current. במקום withDensity(צפיפות) רק עם(צפיפות) (I11cb1)
הוסרה מחלקה ValueHolder. שינוי מבנה של מחלקות GraphicsValue, AnimationFloat ל- הפוך את שדה ערך האנימציה למופשט כדי שמחלקות המשנה יוכלו לצפות בעדכון הערך.
- נוספו קטגוריות של מודלים ל-AnimationValue, ל-AnimationFloat וכו'.
- נוספה סדרה חדשה של ממשקי API קלים לשימוש עם @Composable לאנימציה בין ערכים.
- (I79530)
שינויי תוכנה ב-Ambis API פרטים נוספים זמינים במסמכי היומן ובמסמכי
Ambient<T>
(I4c7ee, b/143769776)מיקומי היישור הפנימיים שהוחזרו מה-Placeable#get(יישורLine) אינם אפס. אם חסר קו היישור שנוצר בשאילתה, הפונקציה VerifyLine.Unspecified תוחזר. (I896c5, b/158134875)
תוקן באג ConstraintLayout שגרם לקריסה של הרכבות מחדש. (Ibee5a, b/158164341)
ממשק ה-API של lambda בסופו של withConstraints השתנה. עכשיו, במקום שני פרמטרים, יש לו היקף מקלט, שבנוסף למגבלות ו-DeployDirection, מספק את המאפיינים minwidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
השם של LayoutModifier2 שונה ל-LayoutModifier. (Id29f3)
לפונקציות מדידות פנימיות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק עכשיו API של שאילתות מהותיות עם כיוון פריסה מופץ במרומז. (Id9945)
התכונה LayoutDirectionAmbient הוצאה משימוש. כדי לקרוא את כיוון הפריסה שהוגדר על ידי הלוקאל, צריך להשתמש ב-לוקאל LayoutDirection ב-ConfigurationAmbient (I851b1)
נוספו positionInParent ו-boundsInParent לקואורדינטות ב-Layout9s. (Icacdd, b/152735784)
תוכן קומפוזבילי ParentData הוצא משימוש. עליכם ליצור מגביל שמיישם את ממשק ParentDataModifier, או להשתמש ב-LayoutTag אם צריך רק לתייג צאצאים כדי לזהות אותם בתוך בלוק המדידה. (I51368, b/150953183)
הוספת OnPositionedModifier ו-OnChildPositionedModifier כדי להחליף תכנים קומפוזביליים מסוג OnPositioned ו-OnChildPositioned למשימות ספציפיות. (I2ec8f)
אין הרשאה למרווח פנימי שלילי ב-LayoutPגנים. במקום זאת, צריך להשתמש ב-LayoutOffset להיסט של מיקומים שליליים. (Ifb5b1)
withConstraints Get LayoutDirection (I6d6f7)
הדגל
ComposeFlags.COMPOSER_PARAM
עודכן ועכשיו הואtrue
, והוא ישנה את אסטרטגיית יצירת הקוד של הפלאגין של כתיבת הקוד. ברמה הכללית, זה גורם ליצירת פונקציות @Composable עם פרמטר סינתטי נוסף, שמועבר אל הפעלות @Composable נוספות כדי שסביבת זמן הריצה תוכל לנהל כראוי את הביצוע. עם זאת, זהו שינוי תוכנה בינארי משמעותי שעלול לשמר תאימות ברמת המקור בכל שימוש מאושר בכתיבה. (I7971c)שינית את Layouts כדי לבצע חלוקה ליישור קו קבוצה במקום מפה, ו-Layouts (פריסות) מיישמים את במקום זאת, כדי לאחזר ערך, באמצעות האופרטור get() . כך יהיה לך קל יותר עבור משתנים לשינוי ערך אחד או יותר של הקבוצה יוצר אוסף חדש לכל מגביל. (I0245a)
לקואורדינטות כבר אין מאפיין מיקום. אינו הגיוני כאשר מביאים בחשבון את LayoutModififiers, סיבוב או התאמה לעומס (scaling). במקום זאת, על המפתחים להשתמש ב-Parent_Coordinates ו-ChildToLocal() כדי לחשב את הטרנספורמציה ניהול צוותים לפריסה אחרת.
הקואורדינטות ב-Layouts משתמשות ב-IntPxSize עבור מאפיין הגודל במקום ב- גודל PxSize. פריסות משתמשות בגדלים של פיקסלים שלמים לפריסות, כך שכל גדלי הפריסה צריך להשתמש במספרים שלמים ולא בערכי נקודה צפה (floating-point). (I9367b)
שיפורים בפלטפורמת ה-API של המגבלות (I0fd15)
נוסף TextDirection.Content (I48f36)
עליך להתאים את תפריט סרגל הכלים כדי להציג העתקה, גזירה והדבקה כראוי. (Id3955)
מוסיפים סרגל כלים צף לבחירת TextField. (Ie8b07)
השם של TextDirectionAlgorithm נקרא TextDirection (I75ce8)
השם של TextDirection השתנה ל-resolvedTextDirection (I3ff38)
הוספת HapticFeedback ל-TextField Selection (בחירת שדות). (I58050)
הוספת שיטות העתקה, גזירה והדבקה ל-TextField Selection (Idb70b)
TestTag והסמנטיקה נמחקו. במקומו צריך להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0, b/158841414)
שם החבילה של הלוקאלים והלוקאלים השתנה מ- androidx.ui.text to androidx.ui.intl (I8132c)
שינוי ב-API: השם של
AnnotatedString(builder: Builder)
השתנה ל-annotatedString(builder: Builder)
. (Ia6377)שינוי ב-API: השם של
AnnotatedString.Item
השתנה ל-AnnotatedString.Range
. (I2d44d)הוסף את סרגל הכלים לפעולות הקשורות לטקסט. (I49d53)
הגרסה החדשה של LifecycleOwnerAmbient זמינה עכשיו. עכשיו, פעילות שאתם משתמשים בה עם ממשק המשתמש של הכתיבה צריכה להרחיב את הפעילות androidx.activity.ComponentActivity (או AppCompatActivity). הלחצן setContent ב-android.app.Activity הוצא משימוש (Idb25a, b/153141084)
שם חבילת ui-android-text (androidx.text) הוחלף ב- androidx.ui.text.platform כדי להתאים למדיניות של androidx. (I42711)