ממשק המשתמש של הכתיבה
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(עיינו במסמכי העזר של ה-API לגבי כל חבילות הכתיבה)
העדכון האחרון | גרסה יציבה | מועמד לפרסום | גרסת בטא | גרסת אלפא |
---|---|---|---|---|
7 באוגוסט 2024 | 1.6.8 | - | 1.7.0-beta07 | - |
מבנה
תהליך הכתיבה הוא שילוב של 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
בשביל
האפליקציה או המודול שלך:
מגניב
dependencies { implementation "androidx.compose.ui:ui:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
למידע נוסף על יחסי תלות, אפשר לעיין במאמר הוספת יחסי תלות של build.
משוב
המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.
מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.
גרסה 1.7
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.ui:ui-*:1.7.0-beta07
משוחרר. גרסה 1.7.0-beta07 כוללת את ההתחייבויות האלה.
תיקוני באגים
- עכשיו פונקציות
SemanticsNodeInteraction
שקשורות לקלט טקסט:performTextReplacement
,performTextInput
ו-performTextClearance
, יקפיצו שגיאות טענת נכוֹנוּת (assertion) כשמפעילים אותן במצב קריאה בלבדTextFields
. (I4ae8f)
גרסה 1.7.0-beta06
24 ביולי 2024
androidx.compose.ui:ui-*:1.7.0-beta06
משוחרר. גרסה 1.7.0-beta06 כוללת את ההתחייבויות האלה.
גרסה 1.7.0-beta05
10 ביולי 2024
androidx.compose.ui:ui-*:1.7.0-beta05
משוחרר. גרסה 1.7.0-beta05 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקן באג שגרם לשינוי של מקלדת התוכנה וגרם לכך ש-
TextField
לא יקבל קלט מהמקלדת החדשה עד שהפוקוס ילך לאיבוד וישוחזר. - תוקנה בעיה שבה ניסיונות לשמור את תוכן השכבה גרמו לתופעות לוואי לא רצויות במהלך רינדור עם תוכן ב-
SurfaceView
.
גרסה 1.7.0-beta04
26 ביוני 2024
androidx.compose.ui:ui-*:1.7.0-beta04
משוחרר. גרסה 1.7.0-beta04 כוללת את ההתחייבויות האלה.
תיקוני באגים
- מניעת קריסות כשמודדים שורות טקסט גדולות מאוד (למשל, 10,000 תווים) (8157ab)
- השבתת התמיכה ברינדור תוכנה ל-API של
GraphicsLayer
. (35ddd8) - תיקון לקריסה בלוגיקת עקביות של שכבה. (70b13e)
- השימוש החוזר באופטימיזציה של אובייקטים בשכבות בוטל, כי הוא גרם לבעיות רינדור. (70b13e)
גרסה 1.7.0-beta03
12 ביוני 2024
androidx.compose.ui:ui-*:1.7.0-beta03
משוחרר. גרסה 1.7.0-beta03 כוללת את ההתחייבויות האלה.
גרסה 1.7.0-beta02
29 במאי 2024
androidx.compose.ui:ui-*:1.7.0-beta02
משוחרר. גרסה 1.7.0-beta02 כוללת את ההתחייבויות האלה.
שינויים ב-API
- השם של
SemanticsProperties.Editable
השתנה ל-IsEditable
ומשנה אתSemanticsPropertyReceiver.editable
לערךisEditable
. הנכס מוגדר עכשיו לערך בוליאני ותמיד מצוין בשדות טקסט. (I8acd8) - שינוי השם של הפרמטר של נקודת ההשוואה לנגישות. (I3d440)
- ממשק API מעודכן לעיצוב הקישורים:
TextLinkStyles
הוא עכשיו חלק מה-constructor שלLinkAnnotation
ומה-methodAnnotatedString.fromHtml
(I90b2b). הוסר גםTextDefaults
מהחומר (I5477b)
תיקוני באגים
- כדי לשקף טוב יותר את המטרה של השירות, השם
LayoutCoordinates.introducesFrameOfReference
שונה. השם החדש הואLayoutCoordinates.introducesMotionFrameOfReference
. שינו את השם של הפונקציה הקשורה כדי לחשב קואורדינטות על סמך הדגל הזה. (I3a330)
גרסה 1.7.0-beta01
14 במאי 2024
androidx.compose.ui:ui-*:1.7.0-beta01
משוחרר. גרסה 1.7.0-beta01 כוללת את ההתחייבויות האלה.
שינויים ב-API
- השם של
performCustomAccessibilityActionLabelled
השתנה ל-performCustomAccessibilityActionWithLabel
. השם שלperformCustomAccessibilityActionWhere
השתנה ל-performCustomAccessibilityActionWithLabelMatching
. (I5387f) AnnotatedString.hasEqualsAnnotations
נקראת עכשיוhasEqualAnnotations
(I685c0)- ה-API עודכן לצורך קבלת קישורים מעוצבים בטקסט. באופן ספציפי, הסרנו את השיטות מ-
TextDefaults
לבנייתLinkAnnotations
בנושא מסוים ולניתוח HTML עם קישורים מעוצבים. במקום זאת, הוספנו מחלקהTextLinkStyles
שמאפשרת לעצב את הקישורים כפרמטר לתוכן הקומפוזבילי של טקסט. (I31b93)
תיקוני באגים
- תיקון של תרחישים נוספים לדוגמה כשמוסיפים באופן דינמי מגבילי קלט של מצביע במהלך אירועים 63e1504
גרסה 1.7.0-alpha08
1 במאי 2024
androidx.compose.ui:ui-*:1.7.0-alpha08
משוחרר. גרסה 1.7.0-alpha08 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת תמיכה בהטמעות של צורות ניתנות לשינוי. עכשיו ניתן לראות את
Shape#createOutline
בתוך שכבות גרפיקה, כך שקריאת ערכי מצב בתוך שכבות הגרפיקה תגרום לחוסר תקפות כשהמצב משתנה, וכך יתקבלו אנימציות צורה בעלות ביצועים טובים יותר. (Id1629, b/326070216) - השם של
isPositionedByParentWithDirectManipulation
השתנה. השם החדש הואintroducesFrameOfReference
. הערה: עכשיו יש לה את ההשפעה ההפוכה. כלומר, כברירת מחדל, רובLayoutCoordinates
כוללים מסגרת של הפניה. בנוסף, רק כשמציבים את הסמן שלה על ידי מניפולציה ישירה, הנכס יוגדר כ-FALSE. כדי לבצע שאילתה על מיקום רק עם מיקומים שמציגים מסגרת התייחסות, יש להשתמש ב-positionInLocalFrameOfReference(...)
. אוpositionInLocalLookaheadFrameOfReference
מ-LookaheadScope
. (Ifc5f7) - ממשקי ה-API של
LookaheadScope
הפכו ליציבים (I21507) - שינוי הפעולה lambda עבור
getScrollViewportLength
בהתאם למשוב של מועצת ה-API. (Ibc74a) - ממשקי ה-API של Outline ב-
GraphicsLayer
עודכנו ועכשיו הם צורכים פרמטרים צפים במקום int. הוסרו ערכי סנטינלUnsetOffset/UnsetSize IntSize
לטובת קבועים קיימים שלא צוינו במחלקות מוטבעות מבוססות-ציפה וגודל (I2fb03, b/333863462) - כשמכניסים קלט עכבר במהלך בדיקות,
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
מקבלים עכשיו פרמטרbutton: MouseButton
כדי שיהיה רלוונטי יותר לכולם. ערך ברירת המחדל הואMouseButton.Primary
לכל השיטות. (I31a23, b/190493367, b/261439695) - השם של
onClicked
השתנה בתוךLinkInteractionListener
. השם החדש הואonClick
. (Iaa35c) - שינוי השם של
TextInclusionStrategy.isInside
לשםisIncluded
. הגדרת סוג ההחזרהParagraph/MultiParagraph#getRangeForRect()
כ-null. (I51f26)
תיקוני באגים
- תוקן צילום המסך הארוך של מאגרי גלילה באמצעות
reverseScrolling=true
. (I7c59c)
תרומה חיצונית
- נוספה תמיכה באחזור מראש של פריטים ב
LazyLists
מקונן (למשלLazyColumn
שמעבדLazyRows
מקונן). השינוי הזה צפוי לצמצם ירידות פריימים במהלך הגלילה בLazyLists
האלה. ברירת המחדל של ההטמעה היא שליפה מראש (prefetch) של 2 הפריטים הראשונים שהוצבו בו. עם זאת, אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשים מסוגLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
ו-LazyListPrefetchStrategy#onNestedPrefetch
. (I51952)
גרסה 1.7.0-alpha07
17 באפריל 2024
androidx.compose.ui:ui-*:1.7.0-alpha07
משוחרר. גרסה 1.7.0-alpha07 מכילה את התחייבויות אלה.
שינויים ב-API
- המוצר
ClickableText
מסומן כהוצאה משימוש. כדי להוסיף קישורים לטקסט, צריך ליצורAnnotatedString
עםLinkAnnotation
שתואם לקישור שלך ולהעביר אתAnnotatedString
הזה לתוכן הקומפוזבילי של טקסט. (I34d4b, b/323346994) - הצגת
ViewConfiguration.HandwritingGestureLineMargin
לתנועות של כתב יד. תמיכה בתנועה שלJoinOrSplit
עבורBasicTextField
(Ie6e13, b/325660505) - התכונות
FocusProperties.enter
ו-FocusProperties.exit
כבר לא ניסיוניות. התכונותFocusDirection.Enter
ו-FocusDirection.Exit
כבר לא ניסיוניות.FocusRequester.Cancel
כבר לא ניסיוני (I461a1, b/261564106) - כשמריצים שאילתות לגבי קואורדינטות פריסה, אפשר עכשיו להשתמש בארגומנט
excludeDirectManipulationOffset
כדי להחריג את ההיסט שהוגדר על ידי פריסות הורה שהוצבו בהן באמצעותPlaceable.PlacementScope.withDirectManipulationPlacement
. באופן דומה, פריסה שמשנה את מיקום הצאצאים שלה לעיתים קרובות יכולה עכשיו למקם אותם באמצעותwithDirectManipulationPlacement
(כמו Scroll, מיושם כברירת מחדל). כך אנימציות מבוססותapproachLayout
יכולות להיות יותר אינטואיטיביות, כך שיש עכשיו הזדמנות להבחין בין ההיסט להנפשה ומה צריך ליישם ישירות כשמחליטים ליצור אנימציה. (I60ec7) - סימון התכונה עבור צילומי מסך ארוכים הוסר. (I28648, b/329128246)
LazyColumn
יעבד עכשיו כותרות במיקום קבוע בצילומי מסך ארוכים. (I8d239, b/329296635)NestedScroll
מקורות 'גרירה והיפוך' מוחלפים ב-UserInput
וב-SideEffect
כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללים עכשיו אנימציות (אפקט צד) וגלגל העכבר ומקלדת (UserInput
). (I40579)ApproachLayoutModifierNode
ו-Modifier.approachLayout
יציבים עכשיו, עםisMeasurementApproachInProgress()
ו-isPlacementApproachInProgress()
החדשים שמחליפים אתisMeasurementApproachComplete()
ו-isPlacementApproachComplete()
הישנים בהתאמה.- הוסר תכונת הצירוף
intermediateLayout
שהוצא משימוש. (I3e91c) - יש לשנות את השם של
GraphicsLayer#buildLayer
כדי להקליט ולשקף את שיטות ההתחלה/endRecording בממשקי API שמגובים ברשימת Displaylist, כמוRenderNode
ו-Picture. - ההגדרה
rememberGraphicsLayer
עודכנה כדי לאפשר שימוש ב-rememberObserver
. (I312c1, b/288494724, b/330758155) - ההוראה
UrlAnnotation
הוצאה משימוש. במקומה צריך להשתמש במדיניותLinkAnnotation.Url
. אם משתמשים בעיצוב מהותי, אז משתמשים באובייקטTextDefaults
כדי ליצור את ההערה עם עיצוב מהותי (I8d180, b/323346545) - בוצעה לחיצה על אפשרות עיצוב מצב בקישורי טקסט בנוסף לעיצוב רגיל, העברת העכבר מעל והתמקדות (I5f864, b/139312671)
- השם של
String.parseAsHtml
השתנה ל-AnnotatedString.Companion.fromHtml
. (I43dcd) - נוספו ארגומנטים מסוג סגנון (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) ומאזינים לאינטראקציה עם קישור ל-methodparseAsHtml
. כשמנתחים את המחרוזת המתויגת ב-HTML באמצעות תגי<a>
, השיטה תיצורLinkAnnotation.Url
לכל תג כזה ותעביר את האובייקטים של העיצוב ואת ה-listener לאינטראקציה של הקישור לכל הערה. (I7c977) - עכשיו
LinkAnnotation
לוקחת את הארגומנטים של סגנון מבוסס-מצב ואת הפונקציהLinkInteractionListener
. יש להוסיף את ההערה הזו אלAnnotatedString
כדי לקבל היפר-קישור. העברה שלfocusedState
ו/אוhoveredState
מאפשרת להגדיר את הערך החזותיconfiguration
של קישורים כשהם ממוקדים או מעבירים את העכבר מעל לקישורים. (I81ce4, b/139312671) - הערך של
ImeOptions.hintLocales
כבר לא יכול להיות null. אם ברצונך להעביר רשימת לוקאלים ריקה, צריך להשתמש ב-LocaleList.Empty
. (Ic5bc4)
תיקוני באגים
- טיפול באלגנטיות בנתוני אירועי קלט היסטוריים פגומים או פגומים (מתעלם מנתוני היסט לא טובים).
- תיקון אירועים לא צפויים של זיהוי מיקום הסמן של משתמשים אחרים שתוסיפו באופן דינמי מקש קיצור לקלט של מצביע במהלך רצף של אירועים פעילים של קלט מצביע (לדוגמה, בין לחיצה על Enter של העברת עכבר מעל היציאה [עכבר/סטיילוס]).
גרסה 1.7.0-alpha06
3 באפריל 2024
androidx.compose.ui:ui-*:1.7.0-alpha06
משוחרר. גרסה 1.7.0-alpha06 מכילה את התחייבויות אלה.
תכונות חדשות
- נוספה שיטת
parseAsHtml
למחרוזות מעוצבות: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString
. לתשומת ליבכם: לא כל התגים נתמכים. לדוגמה, עדיין לא תוכלו להציג רשימות של תבליטים. (I84d3d, I30626, b/139326648) - הוטמעה תמיכה ניסיונית בצילומי מסך ארוכים בקונטיינרים של גלילה לכתיבת הודעות באמצעות ה-Android API הרשמי (
ScrollCaptureCallback
). התכונה הזו ניסיונית ויכול להיות שבשלב הזה לא תטפל כראוי בכל המקרים. לכן היא מושבתת כרגע כברירת מחדל. כדי להביע הסכמה, מגדירים את הדגלComposeFeatureFlag_LongScreenshotsEnabled
כ-true. (I2b055, b/329296471)
שינויים ב-API
- הערך בעמודה
fun ClipEntry.getMetadata()
השתנה ל-val ClipEntry.clipMetadata
. (I50155) - הפונקציות
ClipboardManager.getClipMetadata
ו-ClipboardManager.hasClip
הוסרו. יש להשתמש ב-clipEntry.getMetadata()
כדי לקרוא את המטא-נתונים של רשומת הקליפ הנוכחית. צריך גם לבדוק את התוצאה שלClipboardManager.getClip
אם היא ריקה או לא כדי להבין אם יש קליפ נוכחי בלוח. (I50498) - עכשיו אפשר להעביר אובייקטים של
GraphicsLayer
לפונקציותplaceable.placeWithLayer()
(I1b22f) - האפליקציה
ClipboardManager.setClip
מקבלת עכשיו את הערך null כדי לנקות את הלוח. (I7d2e9) - נוספו מזהי משאבים לעזרה בהסתרת תצוגות שמשמשות מפרטי ההטמעה בכלי build (I99531)
- שיטת ההשעיה
GraphicsLayer#toImageBitmap
נוספה כדי לתמוך ברינדור של תוכן ממפת סיביות (bitmap) לGraphicsLayer
. זוהי פעולת רינדור מהירות באמצעות חומרה ברמת API 22 ומעלה (כולל), שתומכת ביותר מ-99% מכל מכשירי Android. ב-Android API ברמה 21, אין צורך בעיבוד תוכנה. (I9e114) - שיטת עזרה להמרת
RectF
של Android ל-ComposeRect
(I39925, b/325660505) - כברירת מחדל, כל הפרמטרים מסוג
KeyboardOptions
כוללים עכשיו ערך לא מוגדר. השיטהKeyboardOptions.merge
נוספה. - שיניתם את השם של
KeyboardOptions.autoCorrect
ל-autoCorrectEnabled
והפכו את השם ל-null. הערך null מציין שלא צוין ערך. (Ia8ba0, b/295951492) - בווריאנט
BasicTextField(state)
וב-BasicSecureTextField
משתמשים עכשיו ב-KeyboardActionHandler
במקום ב-KeyboardActions
כדי לעבד פעולות שבוצעו על ידי מקלדת התוכנה. (I58dda)
גרסה 1.7.0-alpha05
20 במרץ 2024
androidx.compose.ui:ui-*:1.7.0-alpha05
משוחרר. גרסה 1.7.0-alpha05 מכילה את התחייבויות אלה.
תכונות חדשות
- הצגת API חדש של
GraphicsLayer
כדי לתעד פקודות שרטוט ברשימת תצוגה, וגם מאפיינים נוספים שמשפיעים על הרינדור של רשימת התצוגה. כך ניתן לחלק סצנה מורכבת לחלקים קטנים יותר שאפשר לעדכן זה לזה בנפרד בלי ליצור מחדש את הסצנה כולה. אפשר לבצע טרנספורמציות ב-GraphicsLayer
בלי להקליט מחדש את רשימת התצוגה. שלא כמוModifier.graphicsLayer
,GraphicsLayer
מאפשר רינדור של תוכן קומפוזבילי במקומות אחרים, והוא שימושי בתרחישים לדוגמה של אנימציה שבהם התוכן צפוי לעבור רינדור בסצנות שונות.
שינויים ב-API
GraphicsLayer.draw(Canvas)
הוא כבר לא ממשק API ציבורי. במקומה צריך להשתמש בפונקציהDrawScope.drawLayer(GraphicsLayer)
של התוסף כדי לשרטט את השכבה. (I7a7c0)- פיצול של
restrictedConstraints()
לשתי שיטות:fitPrioritizingWidth()
ו-fitPrioritizingHeight()
(I6d7fd) - נוסף stub של
HardwareCanvas
לשימוש ב-Android L (I1c3b5, b/288494724) - עדכון מסגרת הכתיבה כדי לחשוף באופן מקומי הרכבה של
GraphicsContext
לצד עדכון הטמעות של הצירוף 'בעלים', 'DelegateableNode
' ו-drawWithCache
, כדי לחשוף את הגישה ל-GraphicsContext
בשביל גישה בהיקף שינקה באופן אוטומטי מכונות שלGraphicsLayer
לאחר ביטול המגבילים. (I64a2f, b/288494724) - הצגת
InterceptPlatformTextInput
לעזרה בכתיבת מבחנים ברמה נמוכה שקשורים ל-IME ותרחישים אחרים לשימוש ב-IME ברמה נמוכה. האפשרותPlatformTextInputTestOverride
הוצאה משימוש. (I862ed, b/322680547) - נוספה פונקציה של תוסף
GraphicsLayer.setOutline(Outline)
. (Ib81f4) - הצגת constructor של פונקציות
GraphicsContext
כדי ליצור מפעל ליצירת מכונותGraphicsLayer
(Ib98d6, b/288494724) - API חשיפה של
GraphicsLayer
כדי לספק גמישות בהגדרת המפתח לתעד פקודות של שרטוט, שאפשר להשתמש בהן כדי לצייר במקומות אחרים וגם להחיל אפקטים חזותיים שונים על התוצאה הסופית. (I80245, b/288494724) - מציגים את הפונקציה
Paragraph#getRangeForRect
שמחזירה טווח טקסט שמכוסה על ידי שטח מלבן נתון. (Iee516, b/325660505) - הוסר שינוי ניסיוני של
BasicText
עם ארגומנטonLinkClicked
. בעתיד נוסיף ממשק API חלופי לתמיכה בהיפר-קישורים. (I107d5)
תיקוני באגים
- נוספה הגדרת API של
GraphicsLayer
תחזית או בפועל שתומכת בתיעוד ובהפעלה מחדש של פקודות שרטוט, עם אפשרות של הרכבה של אפקטים חזותיים ושל טרנספורמציות. הצגת הממשק שלGraphicsContext
כך שתכלול יחסי תלות של גרפיקה, כולל יצירה וניהול של מכונותGraphicsLayer
. (I4a8d6, b/288494724) - תוקנה בעיה של יכולת פעולה הדדית בחיפוש ממוקד חד-ממדי, שהמיקוד היה נתקע בתוך
ComposeView
שהוטמע בין תצוגות אחרות. (I08fd4)
תרומה חיצונית
- הממשק
LocalLifecycleOwner
הועבר מממשק המשתמש של כתיבת הודעה ל-lifecycle-runtime-compose
כדי שאפשר יהיה להשתמש בממשקי ה-API המסייעים שמבוססים על פיתוח נייטיב מחוץ לממשק המשתמש של הכתיבה. תודה על התרומה, Jake Wharton. (I6c41b, b/328263448) - חשיפה בעקביות של מאפייני צף של הטיה בכל סוגי המשנה של יישור שמבוסס על הטיה. (I69f0f, b/328088992)
גרסה 1.7.0-alpha04
6 במרץ 2024
androidx.compose.ui:ui-*:1.7.0-alpha04
משוחרר. גרסה 1.7.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
- תמיכה בתכונה לכתיבה ידנית בסטיילוס ב-BasicTextField2 במכשירים אחרי Android U. (I002e4)
- ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית
GetScrollViewportLength
כדי שנוכל להעביר למערכת a11y מידע על הרכיבים שנגללים במקומם. מדיניות ה-CL הזו מחילה גם את השימוש בנכס שצוין ברשימות הבסיס לגלילה. (Ic5fa2) FocusRequester.createRefs
יציב עכשיו (I4d92c, b/261436820)- הוספנו את התכונה
DelegatableNode.requireView()
כדי לאפשר לצמתי מגביל לקבל את הגרסה הנוכחית של AndroidView
בלי לקרוא יצירה מקומית של היצירה. (I40768) - API חדש
Path.reverse()
שהופך את הכיוון של נתיב (I36348) - הוספת את
hintLocales
אלKeyboardOptions
כדי לספק ל-TextFields
את היכולת לרמוז על עורכי שיטות קלט (IME) עם לוקאלים ספציפיים להגדרה מראש של שפה מועדפת. - חושפים את המאפיין
platformLocale
מ-Locale
שמחזיר את אובייקט הפלטפורמה הבסיסי, למשל:java.util.Locale
. (I921c6)
גרסה 1.7.0-alpha03
21 בפברואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha03
משוחרר. גרסה 1.7.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- חדש:
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) - מוסיפים את מאפיין הסמנטיקה
maxTextLength
שצריך להגדיר בשדות טקסט שמסננים את מספר התווים המקסימלי המותר. (I24d9f, b/170648072) - ה-wrapper של
Modifier.inspectable
הוצא משימוש. ה-API הזה יגרום ליותר פסילות של השינוי שלך מהצורך, ולכן לא מומלץ להשתמש בו עכשיו. אנחנו ממליצים למפתחים להטמיע את השיטהinspectableProperties()
ב-ModifierNodeElement
אם הם רוצים לחשוף מאפייני התאמה לכלים. (Ib3236) - בנאי חדש של
PopupProperties
שמאפשר שליטה מלאה בדגליםWindowManager.LayoutParams
. (Ibb33e, b/312485503) - השקנו את
DelegatableNode.requireLayoutCoordinates()
כדרך לקבל את הערך בשדהLayoutCoordinates
הנוכחי שלModifier.Node
, בלי שיהיה צורך לשנות את הערך שלonPlaced
ולאחסן את הקואורדינטות בנכס בעצמכם. (Ia8657) - השקנו את
DelegatableNode.currentLayoutCoordinates
כדרך לקבל את הערך בשדהLayoutCoordinates
הנוכחי שלModifier.Node
, בלי שיהיה צורך לשנות את הערך שלonPlaced
ולאחסן את הקואורדינטות בנכס בעצמכם. (Iaebaa) BasicTextField2
וממשקי API קשורים בחבילהandroidx.compose.foundation.text2
מועברים אלandroidx.compose.foundation.text
. (I9f635)- נוסף ממשק API חדש של
ApproachLayoutModifierNode
כדי לתמוך ביצירת לוגיקת גישה מותאמת אישית בצומת Modifier מפורש. נוסף גם ממשק API ניסיוני חדש שלDeferredTargetAnimation
לאנימציות שהיעד שלהן לא ידוע בזמן יצירת המופע. (I60745) - ממשקי API חדשים של
Path
לשליחת שאילתות לגבי כיוון הנתיב ולחילוץ קווי מתאר מ-Path
. (I63d04) - הוספנו את
PathHitTest
ואתPath.contains(Offset)
כדי לבדוק אםPath
מכיל נקודה ספציפית. (I3b218) - הקוד
TextLayoutResult
חושף עכשיו את ה-methodgetLineBaseline(lineIndex)
. התכונה הזו מאפשרת לקרוא את הבסיס של שורה שרירותית בטקסט, בנוסף לנכסי הנוחותfirstBaseline
ו-lastBaseline
הקיימים. (Ide4e8, b/237428541) - נוספה שיטה להשוואה רק בין ההערות של שני
AnnotatedStrings
. (I32659)
תיקוני באגים
- תוקנה בעיית תאימות לאחור עם
SemanticsPropertyReceiver.performImeAction
ו-SemanticsActions.PerformImeAction
. (Id0528, b/322269946)
גרסה 1.7.0-alpha02
7 בפברואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha02
משוחרר. גרסה 1.7.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- תוקנה בעיית תאימות בינארית עם
SemanticsPropertyReceiver.performImeAction
. (I65865, b/322269946) - constructor של
PopupProperties
שמקבל פרמטרusePlatformDefaultWidth
כבר לא ניסיוני. (I8f8d2) - נוסף עומס יתר של
ComposeTestRule.waitUntil
שלוקח תיאור של התנאי שצריך לכלול בהודעה על הזמן הקצוב לתפוגה. (I9413e) - API חדש לסמנטיקה
unset()
, כדי להסיר נכסי סמנטיקה שנוספו לאותה שרשרת צירוף. נכס סמנטיקה חדשisOpaque
. (I8c583, b/317966058, b/246056649) - הוסרה
originalEventPosition
משיטת ההעתקה ב-API הציבורי שלPointerInputChange
. (I7bead)
תיקוני באגים
- תוקן באג a11y שמאפשר ללחוץ על לחצנים שאינם כרטיסיות ו לחצנים שאינם אפשרויות בחירה כאשר הם נבחרו. (I2181c)
- מעכשיו
VelocityTracker
יוכל לתקן את הבעיה להוספת נקודות כברירת מחדל. אם יש בעיות, עדיין אפשר להשבית את התיקון על ידי הגדרת הערך שלVelocityTrackerAddPointsFix
כ-False. (Ib3877, b/269487059) - תוקנה חוסר תאימות בינארית לאחור ב-
TextStyle
וב-ParagraphStyle
. (I179f0, b/320819734)
תרומה חיצונית
- נוסף constructor חדש של
DialogProperties
ללא פרמטרים ספציפיים לפלטפורמה. (I45829) - נוסף constructor חדש של
PopupProperties
ללא פרמטרים ספציפיים לפלטפורמה. (I9a038)
גרסה 1.7.0-alpha01
24 בינואר 2024
androidx.compose.ui:ui-*:1.7.0-alpha01
משוחרר. גרסה 1.7.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- הרחבנו את
ClipboardManager
על ידי הוספה שלClipEntry
ו-ClipMetadata
כדי לתמוך בתוכן שרירותי כמו תמונות. - הוספת API של
DeviceConfigurationOverride
ל-ui-test
כדי לאפשר גישה באופן מקומי ביטול ההתנהגות של תוכן שנמצא בבדיקה, למשל כדי לציין גודל, מיקום, כיוון הפריסה, גודל הגופן או עיצוב.
גרסה 1.6
גרסה 1.6.8
12 ביוני 2024
androidx.compose.ui:ui-*:1.6.8
משוחרר. גרסה 1.6.8 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקנו חוסר עקביות בהתאמת גודל הגופנים כאשר קנה המידה של הגופן קטן מהטבלה הנמוכה ביותר שהוגדרה. במקרה הזה, עכשיו אנחנו מבצעים אינטרפולציה בין קנה המידה הלינארי 1x לבין הטבלה הנמוכה ביותר שהוגדרה, כך שגודל הגופן גדל באופן מונוטוני ככל שסולמות הדירוג גדלים. (Icbae3)
גרסה 1.6.7
1 במאי 2024
androidx.compose.ui:ui-*:1.6.7
משוחרר. גרסה 1.6.7 כוללת את ההתחייבויות האלה.
גרסה 1.6.6
17 באפריל 2024
androidx.compose.ui:ui-*:1.6.6
משוחרר. גרסה 1.6.6 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תיקון קריסה נדירה של
BasicTextField
.
גרסה 1.6.5
3 באפריל 2024
androidx.compose.ui:ui-*:1.6.5
משוחרר. גרסה 1.6.5 כוללת את ההתחייבויות האלה.
גרסה 1.6.4
20 במרץ 2024
androidx.compose.ui:ui-*:1.6.4
משוחרר. גרסה 1.6.4 כוללת את ההתחייבויות האלה.
גרסה 1.6.3
6 במרץ 2024
androidx.compose.ui:ui-*:1.6.3
משוחרר. גרסה 1.6.3 כוללת את ההתחייבויות האלה.
גרסה 1.6.2
21 בפברואר 2024
androidx.compose.ui:ui-*:1.6.2
משוחרר. גרסה 1.6.2 כוללת את ההתחייבויות האלה.
גרסה 1.6.1
7 בפברואר 2024
androidx.compose.ui:ui-*:1.6.1
משוחרר. גרסה 1.6.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקנה בעיית תאימות לאחור עם
SemanticsPropertyReceiver.performImeAction
ו-SemanticsActions.PerformImeAction
. (Ie0bb2, b/322269946) - עכשיו מוצגת שגיאה בפריסות כשאחת מהן מחזירה גודל חריג גדול. שגיאה כזו מתרחשת בדרך כלל כשהמדידה משתמשת במגבלות מקסימליות ישירות בלי לבדוק את הערך
Constraints.Infinity
. הבדיקה תעזור למפתחים לגלות בעיות שבהן הפריסה היא בגודל שגוי ולא בפריסה שמכילה אותה. (I339a9)
גרסה 1.6.0
24 בינואר 2024
androidx.compose.ui:ui-*:1.6.0
משוחרר. גרסה 1.6.0 כוללת את ההתחייבויות האלה.
גרסה 1.6.0-rc01
10 בינואר 2024
androidx.compose.ui:ui-*:1.6.0-rc01
משוחרר. גרסה 1.6.0-rc01 מכילה את שמירות האלה.
תיקוני באגים
- הטמעה אופטימלית של גרפיקה וקטורית לשיפור הביצועים על-ידי צמצום הרכבים מחדש נוספים.
גרסה 1.6.0-beta03
13 בדצמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta03
משוחרר. גרסה 1.6.0-beta03 מכילה את התחייבויות אלה.
תכונות חדשות
- עכשיו ניתן לנתק
LayoutCoordinates
בלי לנתק את הצומת. עליך להגן על כך ב'כלי לבדיקת פריסה' (If693)
תיקוני באגים
- עכשיו
PlatformImeOptions
הוא מחלקה קונקרטית במקום ממשק. (If40a4) - תוקנו הרכבים מחדש נוספים ב-downstream שנגרמו על ידי
LocalSoftwareKeyboardController
ו-LocalTextInputService
, כמו שהם סופקו ערכים חדשים בכל פעם שהשורש הורכב מחדש. (I42190, b/310510985)
גרסה 1.6.0-beta02
29 בנובמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta02
משוחרר. גרסה 1.6.0-beta02 מכילה את התחייבויות אלה.
גרסה 1.6.0-beta01
15 בנובמבר 2023
androidx.compose.ui:ui-*:1.6.0-beta01
משוחרר. גרסה 1.6.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- מגביל ה-
DragAndDropTarget
מקבל עכשיו את ה-DragAndDropTarget
המקבל באופן מפורש, וכולל lambda להצטרפות לסשן גרירה ושחרור. עכשיו יש שתי פעולות המקוריות לDragAndDropModifierNode
. אחד לקבלת העברות ואחד להעברת נתונים (I69481) maximumFlingVelocity
עודכן כך שמיוצג כ-Float. המסמכים עודכנו כדי להיות ברורים יותר על האחדותmaximumFlingVelocity
. (I8adc7)- השם של
onDragAndDropStart
במפעלDragAndDropModifierNode
השתנה ל-acceptDragAndDropTransfer
.acceptsDragAndDropTransfer
נוסף למאפייןdragAndDropTarget
כדי לאשר מסשן של גרירה ושחרור. lambda זו מחזירהDragAndDropTarget
מעשי אם מתעניינים בסשן של גרירה ושחרור. פונקציות lambda אחרות לעיבוד אירועי גרירה הוחלפו בכלי הזה. פונקציה זו של היצרןDragAndDropTarget
נוספה לקבלה מהפעלות גרירה ושחרור (Iebf3a) הסרת
DragAndDropInfo
מסוגDragAndDropModifierNode.drag
שניתן להוסיף עכשיו פרמטרים ל-transferData
, גודל קישוט ועיטור גרירהDrawScope
lambdaל-
DragAndDropTarget
יש שיטות לאירועי גרירה ושחרור ספציפיים במקום להיות שיטה מופשטת אחתהשם של
onDragAndDropEvent
בפונקציית היצרן שלDragAndDropModifierNode
שונה ל-onDragAndDropStart
כדי להסביר טוב יותר שה-DragAndDropTarget
שסופק תקף לסשן נתון של גרירה ושחרור בלבד.ה-
DragAndDropEventType
הוסר (I645b1)השם של
PlatformTextInputModifierNode.runTextInputSession
השתנה. השם החדש הואestablishTextInputSession
. I03cd0משפר את שמות ממשקי ה-API של צמתים שאפשר לעבור עליהם כדי להפוך אותם למובנים יותר. (Ia4474)
מחליפים את
OriginalText
ב-TextSubstitution
. (Ifa5a8)השם של
PlatformTextInputModifierNode.textInputSession
השתנה. השם החדש הואrunTextInputSession
. (Ie9c6b)הצאצאים של
SubcomposeLayout
(ופריסות המבוססות עלLazyColumn
) שנשמרות לשימוש חוזר בעתיד נחשבות מושבתות. הושקassertIsDeactivated()
API חדש לבדיקה כדי לבדוק צמתים כאלה. כברירת מחדל, שאר ממשקי ה-API לבדיקה יסוננו צמתים מושבתים. (I2ef84, b/187188981)הוסרו
FocusDirection.In
ו-FocusDirection.Out
משתמשים ב-FocusDirection.Enter
וב-FocusDirection.Exit
במקומם (I2f660)ממשקי API מהותיים מסוג
SwipeToReveal
(לכרטיסים וצ'יפים) מסתמכים עכשיו על API מבוסס משבצות (לפי ההמלצה של Compose) במקום על מכונות שמבוססות על סיווג נתונים כדי ליצור את המקומות האלה. זהו שינוי תוכנה שעלול לגרום לכשל. אפשר לעיין בהדגמה ובקוד לדוגמה כדי לראות דוגמאות לשימוש ב-API החדש. (Ia8943)ה-constructor של
FontStyle(int)
הוצא משימוש. במקומו צריך להשתמש ב-FontStyle.Normal
או ב-FontStyle.Italic
. (I66610)השם של הממשק
FontScalable
השתנה ל-FontScaling
(Ie804a)
תיקוני באגים
- אם אין התמקדות בכלי לעריכת טקסט,
SoftwareKeyboardController.show()
לא יציג יותר את מקלדת התוכנה. (I2165a, b/301477279) - המערכת תתעלם מאירועים של מקש החומרה למפתחות שלא קיבלו אירוע Down באותה תצוגת הכתיבה. (Ib37b4, b/305518328)
- הוספת תמיכה בכלי לרינדור עבור Sweep Gradient ב-
ArcLine
. (I4d5b) - הטמעה של השווה ו-hashcode עבור
PageSize.Fixed
. (Ie3ede, b/300134276) - פתרון של בעיית תאימות בינארית עם שינוי Inset של חלון (Iee695)
- הסרת שכבת הליבה של החומר עבור צ'יפ/לחצן של Material3, כי המיקרו-בנצ'מרקים מראים ביצועים טובים יותר בלעדיה. (I55555)
TestDispatcher
שניות שמועברות כבדיקות שלeffectContext
לכתיבה ישמשו עכשיו ליצירת השעונים לבדיקה ולפריימים. (Ia7178)
גרסה 1.6.0-alpha08
18 באוקטובר 2023
androidx.compose.ui:ui-*:1.6.0-alpha08
משוחרר. גרסה 1.6.0-alpha08 מכילה את התחייבויות אלה.
שינויים ב-API
- השם של
Modifier.dragAndDrawSource
השתנה ל-onDrawDragShadow
lambda ל-drawDragDecoration
, ו-DragAndDropInfo
שונה מפרמטר הגודל ל-dragDecorationSize
. (Id0e30, b/303904810) - צריך להשתמש בפונקציה
SemanticsNodeInteraction.isDisplayed()
וב-SemanticsNodeInteraction.isNotDisplayed()
כדי לבדוק אם צומת תואם גלוי או לא בלי לטעון עליו גם. (I2c196, b/302100809) - הוספנו ערך
Unspecified
מיוחד עבור השדותTextAlign
,TextDirection
,Hyphens
ו-LineBreak
שלParagraphTextStyle
כדי להחליף אתnull
. מאחר שהמחלקות האלה הן מחלקות מוטבעות, על ידי החלפת nullable ולא צוין (unspecified), אנחנו נמנעים משימוש באגרוף בסגנון פרימיטיבי. הבנייה, ה-geters ושיטות אחרות בסגנוןTextStyle
ובסגנון הפיסקה עודכנו כך שהפרמטרים שהוזכרו לא יהיו null. (I4197e, b/299490814) - הוספת עומס יתר של
GoogleFont
לקריאתGoogleFont
מ-XML. (If8f59) - הגדרת את
LoremIpsum
PreviewParameterProvider
ככיתה פתוחה. (I41bf5, b/266918816, b/300116360)
תיקוני באגים
- ב-
FontFamilyResolver
נעשה עכשיו שימוש ב-Dispatchers.Main
לקורוטינים לניהול המטמון. (Ie8dd9) AndroidViewBinding
מסיר עכשיו באופן סינכרוניFragment
מופעים המנפחים את פעולתם באמצעות הוספה שלFragmentContainerView
לפריסה כחלק מה-onRelease
שלו, על ידי שימוש ב-commitNow
(במקום ב-commit
שהיה בשימוש בעבר). כתוצאה מכך, כדי לפתור בעיות בשיטת 'עריכה בזמן אמת', החלפת היצירה בעקבות שינויים. (I58fbf)
גרסה 1.6.0-alpha07
4 באוקטובר 2023
androidx.compose.ui:ui-*:1.6.0-alpha07
משוחרר. גרסה 1.6.0-alpha07 מכילה את התחייבויות אלה.
שינויים ב-API
- הושק
PlatformTextInputMethodTestOverride
לכתיבה של בדיקות לעורכי טקסט בהתאמה אישית. (Id159b) - מוסיף את מגביל
dragAndDropSource
להתחלת סשנים של גרירה ושחרור, ומתאםdragAndDropTarget
לקבלת פעילויות של גרירה ושחרור. (Ib7828, b/286038936) - נוספו אוספים
ColorList
ו-ColorSet
שלא כוללים הקצאות. (I744bd) - נוסף סימון זמני
DisableNonLinearFontScalingInCompose
כדי להשבית שינוי גודל גופנים לא לינארי. אם דרושה לך זמן לנקות אותם, אפשר להגדיר אתDisableNonLinearFontScalingInCompose = true
בבדיקות שלך. הדגל הזה יוסר בכתיבה שלך בגרסה 1.6.0-beta01. (Ic9486)
תיקוני באגים
- ניתוח נתונים של וקטור XML שעבר אופטימיזציה. (Ib015)
גרסה 1.6.0-alpha06
20 בספטמבר 2023
androidx.compose.ui:ui-*:1.6.0-alpha06
משוחרר. גרסה 1.6.0-alpha06 מכילה את התחייבויות אלה.
שינויים ב-API
- אופטימיזציות נוספות לסמלים של Material. (I3e08d)
- מאפשר לעבור בין עץ הצירוף למעלה/למטה כדי למצוא צמתים דומים. (I2d234)
- נוספה קריאה חוזרת של
onRestoreFailed()
למקש הצירוףfocusRestorer()
(Ie1d43) - נוספו הערות androidx לממשקי API שונים של גרפיקה כדי לציין
ColorInt
,FloatRange
,IntRange
,Size
ועוד. (Id65c8, b/290950582) - הוספת
showSystemUi=true
להגדרה שלPreviewScreenSizes
(Ib61d3)
שינויים בהתנהגות
- התכונה 'כתיבה' משתמשת עכשיו בשינוי לא לינארי של גופנים, כדי לשפר את הקריאוּת והנגישות שלה. במקרה של שינוי קנה מידה של גופן > 100% בהגדרות המערכת: טקסט קטן יגדל כרגיל, וטקסט גדול יותר יגדל במידה מועטה בלבד. כמו כן, גובהי השורות שמוגדרים ב-SP יותאמו אוטומטית כדי להישאר פרופורציונליים לגובה המיועד של 100%. למידע נוסף, ראו שיטות מומלצות להתאמת הגופנים לגודל הגופן. (I11518)
גרסה 1.6.0-alpha05
6 בספטמבר 2023
androidx.compose.ui:ui-*:1.6.0-alpha05
משוחרר. גרסה 1.6.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- הפעלת צילום תוכן ב-
AndroidComposeViewAccessibilityDelegateCompat
. (Ib2969) - מהירויות התנועה ברכיבים בתצוגה, כמו
ScrollView
ו-RecyclerView
, מוגבלות ב-ViewConfiguration.ScaledMaximumFlingVelocity
. ההצעות לכתיבה מכילות עכשיו גרסה משלה שלmaximumFlingVelocity
שחלה עכשיו עלDraggable
. (Ibf974) - הוספת פיגומים ראשוניים לתמיכה בממשקי API באמצעות גרירה ושחרור של הפלטפורמה. (If84ce)
- הוספה של
deviceId
אלRotaryScrollEvent
(Iba3bf) - ה-API של
ui-tooling
המכשירים עודכן כך שיכלול מכשירים חדשים יותר (Ib25b4)
גרסה 1.6.0-alpha04
23 באוגוסט 2023
androidx.compose.ui:ui-*:1.6.0-alpha04
משוחרר. גרסה 1.6.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה שיטה להשבתת
ReusableComposition
, הסרת תצפיות אבל שמירת הצמתים במקומם. אפשר להפעיל שוב את היצירה המושבתת באמצעות קריאה אלsetContent
. (Ib7f31) - הוספת ממשק
ReusableComposition
לניהול מחזור חיים ושימוש חוזר בהרכבת משנה. (I812d1, b/252846775) Modifier.focusGroup
קודמה לממשקי API יציבים. (I7ffa3)- נוספו הערות androidx לממשקי API שונים של גרפיקה כדי לציין
ColorInt
,FloatRange
,IntRange
,Size
ועוד. (I70487, b/290950582) - ה-API של
ColorFilter
עודכן ועכשיו הוא כולל סוגים קונקרטיים של מחלקות משנה, כדי לשפר את יכולת הבדיקה של הפרמטרים. (I5fe29) - מוצגת ספריית Wear-tooling-preview , שמפרטת מכשירים ללבוש תקינים שאפשר להשתמש בהם בתצוגה מקדימה בממשק המשתמש (Ib036e)
- יצרתם את הממשק
FontScalable
כדי לטפל בחלק של שינוי גודל הגופן בממשק צפיפות. (I2cf3f)
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.ui:ui-*:1.6.0-alpha03
משוחרר. גרסה 1.6.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- סוג חדש של מעבר כניסה/יציאה, שמשנה את גודל התוכן על סמך גודל הקונטיינר המונפש במהלך הכניסה אנימציית יציאה.
LookaheadScope
המשחק הקומפוזבילי והממשק יציב עכשיו. (Ifb2ce) - נוספה תמיכה בהגדרת
privateImeOptions
(Idb772)
תיקוני באגים
- לאחר שינוי המצב שנקרא בחישוב,
PopupPositionProvider.calculatePosition
יעדכן עכשיו באופן אוטומטי את מיקום החלון הקופץ. (I676a1, b/292257547) - שדות טקסט תוקנו שמציגים את המקלדת ויכולים לערוך אותם כאשר הערך של
readOnly
מוגדר כ-True. תוקנה גם המקלדת שלא מוצגת כשמשנים אתreadOnly
מ-True ל-False בזמן המיקוד. (I34a19, b/246909589) - יישום מורחב של טענות נכונות (assertions) גלובליות בבדיקת ממשק משתמש. (I1f90d)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.ui:ui-*:1.6.0-alpha02
משוחרר. גרסה 1.6.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף ממשק לאיתור שירותים (service locator) שאפשר להטמיע על ידי מפיצי הרכבים, אשר מאפשר הטמעה של יצירה שנותנת סמכויות לחיפושים אחרים של שירות בעל גישה להרכבה ליצירה המקורית. אין לקרוא לכך את הפקודה Directy. היא משמשת כדי לאפשר יצירת ממשקי API ניסיוניים בזמן הריצה, שניתן למצוא בגרסאות מכווץות של ה-Composer, כמו זה עושה זאת. (I296b9)
- ממשק ה-API של
PlatformTextInput*
השתנה לגמרי. (I6c93a, b/274661182, b/267235947, b/277380808) - התכונות
SoftwareKeyboardController
ו-LocalSoftwareKeyboardController
כבר לא ניסיוניות.LocalSoftwareKeyboardController
הוא גםCompositionLocal
עכשיו כמו שצריך. (I4c364) LookaheadLayout
ו-LookaheadLayoutScope
הוצאו משימוש בכמה גרסאות, ועכשיו הם הוסרו. ממשקי ה-API החלופיים הםLookaheadScope
שיכולים לפעול עם כל פריסה. (I12ac3)- הוספנו את
SemanticsNodeInteraction.requestFocus
כדרך נוחה יותר וגלויה יותר לבקשת התמקדות בבדיקות. (Ie8722) - הוספת ממשקי API ניסיוניים לרישום טענות נכוֹנוּת (assertions) גלובליות, לשימוש של frameworks בעתיד. (I12d77)
תיקוני באגים
- ההפעלה הראשונה של הקריאה החוזרת (callback) של
AndroidView
מסוגupdate
תידחה עכשיו עד שהתצוגה תצורף, במקום לפעול כשהמערכת תחיל את הקומפוזיציה שמציגה אתAndroidView
. הפעולה הזו פותרת באג שבמסגרתו הקריאה החוזרת שלupdate
לא תבוטל אם מדינה שהיא נקראה תשתנה באופן מיידי באמצעות השפעה. (Ie9438, b/291094055)
גרסה 1.6.0-alpha01
21 ביוני 2023
androidx.compose.ui:ui-*:1.6.0-alpha01
משוחרר. גרסה 1.6.0-alpha01 מכילה את התחייבויות אלה.
תכונות חדשות
- תמיכה במבט-על ב-
LazyList
. הפעולה הזו מאפשרת ל-LazyList
בכרטיס המבט לאחור לעקוף כל אנימציה (למשל, אנימציה של מיקום הפריט,AnimatedVisibility
וכו') ולחשב את הגודל והמיקום של המבט לאחור עבור כל הילדים. אחרי המעבר במבט-על, הילדים שלLazyList
יוכלו ליצור אנימציה באופן עצמאי למציאות כפי שנראה בכרטיס במבט-על.
שינוי בהתנהגות: כולל FontPVolume מוגדר עכשיו כ-FALSE כברירת מחדל בכתיבה
מעכשיו, includeFontPadding
מוגדר כ-FALSE כברירת מחדל (21d806) בקטע 'כתיבה'.
includeFontPadding
הוא מאפיין מדור קודם שקובע אם לכלול מרווח פנימי נוסף מעל השורה הראשונה והשורה האחרונה של הטקסט, כדי לכלול תווים שעשויים להתפרש מעל או מתחת לערכי הבסיס של הטקסט.
עדכון הגרסה הזו לכתיבה ישנה את האופן שבו כל הטקסטים יעובדו בממשק המשתמש על ידי הסרת המרווח הפנימי הנוסף מעל השורה הראשונה והשורה האחרונה של כל טקסט שמוצג.
השינויים צריכים להיות מזעריים, בהתאם לדרישות ממשק המשתמש שלכם ולמדדי הגופנים שבהם אתם משתמשים. עם זאת, אתם עשויים להיתקל בכלים לחסימת מודעות כמו: - בדיקות מסך לא תקינות. אם צריך, מתקנים את ממשק המשתמש ויוצרים מחדש את התמונות המוזהבות. - הטקסט לא מיושר קצת. מסירים מרווחים שליליים בהתאמה אישית או מוסיפים מרווח פנימי לפי הצורך.
אפשר להביע הסכמה לincludeFontPadding
על ידי שימוש ב-PlatformTextStyle
לכל טקסט:
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
אפשר להביע הסכמה לשימוש ב-includeFontPadding
עבור כל הטקסטים שלך על ידי הגדרת הסגנונות השונים של Material. הערה: שמות הפרמטרים ישתנו בין M2 ל-M3.
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
מידע נוסף על 'כתיבה' includeFontPadding
זמין בתיעוד למפתחים ובפוסט הזה בבלוג.
אם נתקלתם בבעיות או בבאגים שקשורים לשינוי הזה, תוכלו לדווח על באג באמצעות אתר המעקב אחר בעיות.
שינויים ב-API
- תמיכה ב-
InputConnection#requestCursorUpdates
(I0c69b) - נוספו
FocusRequester.saveFocusedChild
ו-FocusRequester.restoreFocusedChild
(Ic557e, b/272302679, b/275157318) - צריך להוסיף סוג
ResourceResolutionException
לאריזה של פריטים שנזרקים לאריזה כשמנסים לטעון נכסי מפת סיביות (bitmap) עם תיאור של נתיב הנכס שלא נטען. (I19f44, b/230166331, b/278424788) - נגישות אופטימלית לביצועים ולהקצאות זיכרון. (Iede48)
- נוספו מאפייני סמנטיקה ופעולות לתמיכה בתרגום טקסט. (I4a6bc)
- נכס חדש ב-
IntrinsincMeasureScope
וההטמעות שלו (למשל,MeasureScope
) כדי לציין אם מעבר המדידה הנוכחי הוא מעבר במבט-על. (I7a812) - ה-API של
DrawScope
עודכן כדי להציג את היכולת לטרגט מחדש את הרינדור באזור עריכה שונה עם צפיפות/פריסה חלופית וגודל חלופי. - בוצע עדכון של
DrawContext
כדי לתמוך בתצורה של הצפיפות ובכיוון הפריסה, וכן כדי להפוך את אזור העריכה להגדרה של אזור העריכה. (Ie1f9b, b/225408150) - הוספת את
Paragraph#fillBoundingBoxes
כדי לחשב תיבות תוחמות תווים. (If30ee) - נוספה קבוצה של
MultiPreviews
נפוץ (Ia5a27)
תיקוני באגים
- נוסף ממשק
FocusTargetModifierNode
שניתן להשתמש בו כדי ליצורFocusTarget
בהתאמה אישית. (I9790e) - שינית את השם של הפרמטרים
fallback*
ב-constructor שלTextMeasurer
ל-default*
. (I940a5) - השם של
SemanticsPropertyReceiver.performImeAction
השתנה ל-onImeAction
. השם שלSemanticsActions.PerformImeAction
השתנה ל-OnImeAction
. (I8e841) - הוספת גלגל כדי להבדיל בין גלילה בעכבר לבין גרירה בגלילה בתוך גלילה (ספציפית, ב-
NestedScrollConnection
). (Ie57e4) - נוסף API של
asComposePaint
כדי להחליף אתtoComposePaint
כי האובייקט שהוחזר כולל את ערךandroid.graphics.Paint
המקורי (I22b4c) - מוציאים את
SemanticsProperties.imeAction
משימוש ומחליפים אותו בפרמטר חדש ל-SemanticsActions.performImeAction
. (I4a587) - נוספה תמיכה בבחירה באמצעות העכבר. בחירה מבוססת מגע תתרחב במילים ותתכווץ לפי תו. (Ic0c6c, b/180639271)
- שיטות
Paragraph
ששימשו לזריקה שלAssertionError
מחוץ לגבולות זרועות עכשיוIllegalArgumentException
כמוMultiParagraph
. (I549d3, b/243338896)
גירסה 1.5
גרסה 1.5.4
18 באוקטובר 2023
androidx.compose.ui:ui-*:1.5.4
משוחרר. גרסה 1.5.4 כוללת את ההתחייבויות האלה.
גרסה 1.5.3
4 באוקטובר 2023
androidx.compose.ui:ui-*:1.5.3
משוחרר. גרסה 1.5.3 כוללת את ההתחייבויות האלה.
תיקוני באגים
- (b/301209788)
TextField
יחיל לפעמים פקודות קודמות באופן שגוי במהלך התמקדות והזנת קלט קוריאנית, וכתוצאה מכך התווים יאבדו.
גרסה 1.5.2
27 בספטמבר 2023
androidx.compose.ui:ui-*:1.5.2
משוחרר. גרסה 1.5.2 כוללת את ההתחייבויות האלה.
תיקוני באגים
- נוספה דרך לעקוף קריסות כשבוצעה גישה ל-API של גלילה לנגישות משרשור ברקע.
- תיקון צמתים לא מצורפים שנוספו לעץ הסמנטיקה.
גירסה 1.5.1
6 בספטמבר 2023
androidx.compose.ui:ui-*:1.5.1
משוחרר. גרסה 1.5.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- שדות טקסט תוקנו שמציגים את המקלדת ויכולים לערוך אותם כאשר הערך של
readOnly
מוגדר כ-True. תוקנה גם המקלדת שלא מוצגת כשמשנים אתreadOnly
מ-True ל-False בזמן המיקוד. (I34a19, b/246909589)
גרסה 1.5.0
9 באוגוסט 2023
androidx.compose.ui:ui-*:1.5.0
משוחרר. גרסה 1.5.0 כוללת את ההתחייבויות האלה.
גרסה 1.5.0-rc01
26 ביולי 2023
androidx.compose.ui:ui-*:1.5.0-rc01
משוחרר. גרסה 1.5.0-rc01 מכילה את ההתחייבויות האלה.
תיקוני באגים
- תוקנה הקריסה שמתרחשת כשמשתמשים ב-
SubcomposeLayout
בתוךmovableContentOf()
.
גרסה 1.5.0-beta03
28 ביוני 2023
androidx.compose.ui:ui-*:1.5.0-beta03
משוחרר. גרסה 1.5.0-beta03 מכילה את התחייבויות אלה.
תיקוני באגים
- נוסף ממשק FocusTargetModifierNode שניתן להשתמש בו כדי ליצור מיקוד מותאם אישית. (Ifb1d6)
- תוקנה בעיה בתכנים קומפוזביליים של תיבות דו-שיח וחלונות קופצים שעלולה לגרום לכך ששינוי הגודל של חלון הצאצא לא ישתנה כאשר
usePlatformDefaultWidth=true
. (I112ee)
גרסה 1.5.0-beta02
7 ביוני 2023
androidx.compose.ui:ui-*:1.5.0-beta02
משוחרר. גרסה 1.5.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף API של
asComposePaint
כדי לאפשר צריכה של מופעandroid.graphics.Paint
לשימוש בכתיבה
תיקוני באגים
- נוסף API של
asComposePaint
כדי להחליף אתtoComposePaint
כי האובייקט שהוחזר כולל את ערךandroid.graphics.Paint
המקורי (I22b4c)
גרסה 1.5.0-beta01
24 במאי 2023
androidx.compose.ui:ui-*:1.5.0-beta01
משוחרר. גרסה 1.5.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- הוסרו הקצאות הרכבה מחדש, אנימציות צבע ו-
AndroidComposeView
(Ib2bfa) - הוספה של
CacheDrawModifierNode()
בעזרת כיף כדי לאפשר הענקת גישה (Icf8f9) - חדש: נכס
isLookingAhead
, שאפשר לגשת אליו דרךMeasureScope
, כדי לאפשר לך לראות תוצאות במבט-על ולהשפיע על הכרטיס הראשי אם רוצים. (Ibf4c3) - נכס סמנטיקה חדש
traversalIndex
, מספר ממשי (float) המשמש לסידור מחדש של צמתים במעבר שלTalkBack
(ערכים נמוכים יותר מופיעים לפני). (I9a81b, b/186443263) - שינוי השם של הנכס הסמנטי
isContainer
ל-isTraversalGroup
(I121f6) - ב-
ColorProducer
יש עכשיוoperator fun invoke
במקוםproduce
(I4a9a2) - הוספת
Path
טרנספורמציה API כדי להחיל טרנספורמציות של תרגום/קנה מידה/רוטציה על אובייקטים של נתיב. (I23434, b/233772232) - השיטה של
ColorProducer
נקראתproduce
. (I78bde) - שינוי השם של
toFrameworkColorSpace
ל-toAndroidColorSpace
(I4f547) - שינוי השם של
ColorLambda
לשםColorProducer
. (I73b1a) - הצגת ממשקי API להמרה בין סוגי מרחב הצבעים של Android ו'פיתוח נייטיב'. (Ie7db4, b/279979665)
- הוספנו פרמטר צבע אל
BasicText
כדי לאפשר אנימציה יעילה או הגדרת צבע טקסט ביעילות. (Iffd88, b/246961787) - השם של
TextRange.constrain
השתנה. השם החדש הואTextRange.coerceIn
. (I31be2) - נוספה אופטימיזציה של
TextStyle.merge(...)
עם רשימת הפרמטרים המלאה. (Iad234, b/246961787) - ממשקי ה-API של טקסט רבים מייצבו את
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
. (I2f740, b/261581564, b/261581931, b/261561245) PlatformTextStyle.includeFontPadding
לא הוצאה משימוש. הכוונה המקורית שלנו הייתה להסיר את השדה, אבל המשוב הראה שמפתחים צריכים את אפשרות ההגדרה הזו. לכן מתבצעת הסרה של ההוצאה משימוש מהשדה (I98e96, b/277703184)- השיטה הציבורית
TextRange.constrain
נוספה. (I97912) - עכשיו אפשר לפתוח
UrlAnnotation
באפליקציותAnnotatedString
באמצעות שירותי נגישות כמוTalkBack
. (If4d82, b/253292081) - נוספה פעולת הסמנטיקה
InsertTextAtCursor
לשדות טקסט. (I11ed5) - ה-constructor של
LineHeightStyle.Alignment(topRatio)
מקודם ל-API יציב. (I79c32, b/261565383) TextMeasurer
וממשקי ה-API הקשורים אליו כבר לא ניסיוניים. (I74647, b/261581753)- נוספה פעולת הסמנטיקה
PerformImeAction
כדי להפעיל את הפעולה IME בצמתים של עורך טקסט. (Ic606f, b/269633506) - ממשקי ה-API של
PlatformTextInput
כבר לא ניסיוניים ל-Android. (I668eb) - שם הפרמטר של הערך
Enum.valueOf
השתנה (Ia9b89) - מספר חריגים נוספים מ-enum valueOf (I818fe)
- הוספת API חדש ברמה נמוכה של
PlatformTextInputAdapter
לפיתוח הטמעות של קלט טקסט בהתאמה אישית שעוסקות ישירות בממשקי API של הפלטפורמה. (I58df4) - הפרמטר
BlendMode
נוסף לשיטותDrawScope.drawText
,Paragraph.paint
ו-MultiParagraph.paint
כדי לתמוך באלגוריתמים שונים של מיזוג בעת ציור טקסט על קנבס. (I57508) - שינוי השם של
Font.MaximumAsyncTimeout
לשםFont.MaximumAsyncTimeoutMillis
. שינוי השם בלבד. (I07af5) - ערכי DPI מעודכנים של
@Preview
מכשירי עזר (Id6151, b/254528382) - כדאי להוסיף פרמטרים של
brush
ו-alpha
אלBasicText
כדי להוסיף אנימציה או להגדיר מברשת טקסט ביעילות. - הגדרת סוגי lambda ללא תיבה ל-Float, Double, Long, Int, Short ב-:ui:ui-unit (I6f18d, b/246961787)
תיקוני באגים
- הוסרו הקצאות מרובות במעקב אחר מהירות המצביע (I26bae)
- הקצאות מופחתות בניהול הקלט של הפריסה והסמן (I5333a)
- אופטימיזציה של השימוש בזיכרון וקטורי ורינדור פריים ראשון (I2f3c6)
- הוסרו הקצאות בזמן שרטוט קווים ונקודות באמצעות לוח הציור (I9f535)
- הוספת מסמכים עבור
AndroidFont.fontVariationSettings
(I7d9e2)
תרומה חיצונית
- ביצועים משופרים וצמצום הקצאות ההקצאות ב-Vector APIs (I906cb)
גרסה 1.5.0-alpha04
10 במאי 2023
androidx.compose.ui:ui-*:1.5.0-alpha04
משוחרר. גרסה 1.5.0-alpha04 מכילה את התחייבויות אלה.
תכונות חדשות
Modifier.Node
שיפורים בהאצלת סמכויות נוספה אפשרות משופרת להענקת גישה למכונות אחרות שלModifier.Node
מ-DelegatingNode
. אפשר לעשות זאת באמצעות ממשקי ה-APIdelegate
ו-undelegate
. לפני השינוי הזה, היה צורך להקצות באופן מפורש כל API מהצומת של הענקת הגישה. לאחר השינוי הזה, ממשקי צמתים יקבלו הקצאה מפורשת, אלא אםDelegatingNode
מחליף אותם באופן מפורש. (67352bc)
שינויים ב-API
- הצגה של
NestedScrollModifierNode
,NestedScroll Modifier.Node
שאפשר לתת אליה הקצאה. I69513 - נוספו הפרמטרים
onReset
ו-onRelease
לתוכן הקומפוזביליAndroidViewBinding
, והם משקפים את התוכן הקומפוזביליAndroidView
ומאפשרים תמיכה בשימוש חוזר בתצוגה עםViewBinding
. (I00b1e, b/276802519) - ה-API של Compose Path עודכן כדי לתמוך בפעולות הרצה אחורה כדי לתמוך בתרחישים לדוגמה של מניפולציה תכופה של נתיב עם שימוש חוזר מהיר יותר. (I7b797)
- נוספה אופטימיזציה של
TextStyle.merge(...)
עם רשימת הפרמטרים המלאה. (Iad234, b/246961787) - ממשקי ה-API של טקסט רבים מייצבו את
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
. (I2f740, b/261581564, b/261581931, b/261561245) PlatformTextStyle.includeFontPadding
לא הוצאה משימוש. הכוונה המקורית שלנו הייתה להסיר את השדה, אבל המשוב הראה שמפתחים צריכים את אפשרות ההגדרה הזו. לכן מתבצעת הסרה של ההוצאה משימוש מהשדה (I98e96, b/277703184)
תיקוני באגים
- תוקנה רגרסיה שבה המקלדת לא הוצגה עבור שדות טקסט בתיבות דו-שיח שלא נוצרו על ידי התוכן הקומפוזבילי
Dialog
. (I82551, b/262140644)
גרסה 1.5.0-alpha03
19 באפריל 2023
androidx.compose.ui:ui-*:1.5.0-alpha03
משוחרר. גרסה 1.5.0-alpha03 מכילה את התחייבויות אלה.
תכונות חדשות
- פעולת ברירת המחדל החדשה של
SubcomposeLayout
ב-LookaheadScope
:SubcomposeLayouts
שאין להן משבצות מותנות (למשלTabRow
,Scaffold
,BoxWithConstraints
וכו') פועלות עכשיו בצורה טובה עם אנימציות של מבט-על.
שינויים ב-API
- מדיניות
intermediateMeasurePolicy
החדשה שמוגדרת כברירת מחדל ועושה שימוש חוזר במדיניות מדידה מכרטיס מבט קדימה מאפשרת לסוגי משנה שלSubcomposeLayout
ללא משבצות מותנות כמוScaffold
,TabRow
ו-BoxWithConstraints
לפעול עם מבט קדימה כברירת מחדל. (Id84c8) - כלי הכתיבה שנוצר לחלון של Android יחסום מעכשיו רק קריאות ל
withFrameNanos
במקום כל ההרכבה כאשר תתקבל התראה עלON_STOP
. המשמעות היא שחלונות המשויכים לפעילויות שהופסקו ימשיכו להתעדכן בשינויים בנתונים, אבל האנימציות, או כל קריאה אחרת שלwithFrameNanos
, ייחסמו. (Id9e7f, b/240975572) - מעבר למצב יציב של
motionEventSpy
. (Ic5ec4, b/261560988) - השיטה הציבורית
TextRange.constrain
נוספה. (I97912) - האפשרות
PlatformTextStyle.includeFontPadding
כבר לא הוצאה משימוש כדי לעודד מפתחים להשתמש ב-API התאימות הזה כדי לשנות את ההגדרהincludeFontPadding
ולבדוק אותה כ-FALSE. (I98e96, b/277703184)
גרסה 1.5.0-alpha02
5 באפריל 2023
androidx.compose.ui:ui-*:1.5.0-alpha02
משוחרר. גרסה 1.5.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- API חדש מסוג
SubcomposeLayout
עם מדיניות של אמצעי ביניים נוסף לטיפול בלוגיקת מדידה/פריסה במהלך אנימציות שמבוססות על מבט קדימה. (I017d3) - עכשיו נעשה שימוש ב-PointerInput בשיטת זרימה עצמאית ומשתמשת ב-Modifier.Node כדי לשפר את הביצועים (למידע נוסף על השינוי בהתנהגות המשנית). (15dab9)
- שינוי ממשקי API ניסיוניים ליציבות עם אירועים מרכזיים. (I9c7d8, b/261566839, b/261567368)
- שינוי ממשקי API ניסיוניים ליציבות ב-
PointerInputChange
. (I1b543, b/261560988, b/261565762, b/261565749) - הוספת דרך ליצור אובייקט
SuspendingPointerInputModifierNode
להטמעות מורכבות יותר שלModifier.Node
. (Ic4933) - עכשיו אפשר לפתוח
UrlAnnotation
באפליקציותAnnotatedString
באמצעות שירותי נגישות כמוTalkBack
. (If4d82, b/253292081) - נוסף ממשק API ליירוט מפתחות חומרה לפני שהם נשלחים למקלדת הרכה (I4f4c6, b/186800395)
- נוספה פעולת הסמנטיקה
InsertTextAtCursor
לשדות טקסט. (I11ed5) - פעולות בדיקה הקשורות לטקסט (למשל
performTextInput
) יבקשו מעכשיו להתמקד ישירות באמצעות הפעולה הסמנטית, במקום ללחוץ על השדה. (I6ed05)
תיקוני באגים
- כדי לבצע פעולות של בדיקת טקסט, צריך עכשיו להפעיל את שדות הטקסט. (Iab328)
גרסה 1.5.0-alpha01
22 במרץ 2023
androidx.compose.ui:ui-*:1.5.0-alpha01
משוחרר. גרסה 1.5.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- מעכשיו, Modifier.intermediateLayout לא דורשת יותר מ-LookaheadScope מפורש. בלוק המדידה ב-mediateLayout הוא חלק מ-IntermediateMeasureScope כמקלט, שמספק יתרונות מרכזיים של CoroutineScope, LookaheadScope ו-MeasureScope.(Ibe2e5)
- LookaheadLayout הוחלפה ב-LookaheadScope, שלא מוגדר יותר כ'פריסה'. כך ניתן לשלוט ישירות בתוכן של Chat ב-LookaheadScope בעזרת MeasurePolicy של ההורה. (Ibe2e5)
- הוספה של
Modifier.Node#coroutineScope
כדי לאפשר ל-Modifier.Nodes להפעיל קורוטינים. (I76ef9) - יש לתת ל-Modifier.Nodes לקרוא את CompositionLocals על ידי הטמעת הממשק של CompositionLocalConsumerModifierNode. (Ib44df)
- הפצת מחלקה @מתחילים מהנכס לנכס. (I882d1)
גרסה 1.4
גרסה 1.4.3
3 במאי 2023
androidx.compose.ui:ui-*:1.4.3
משוחרר. גרסה 1.4.3 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקנה בעיה שבה ייתכן שהמאפיין
AndroidView
לא הוגדר בצורה נכונה כשמשתמשים בו עם מגבילי התאמה מסוימים. (I4dc77, b/274797771) - תוקן באג ב'חיפוש מיקוד דו-ממדי' שהשפיע על התפריטים של
DropDown
(b/276811828) - תוקן באג בנכסי כניסה/יציאה של התמקדות בהתאמה אישית, שהפעילו רק את חסימת הכניסה/היציאה בפעם הראשונה שבה הופעל lambda (b/277234245)
- תוקנה רגרסיה במערכת המיקוד שגרמה לקריסה במהלך קריאת
focusProperties
. (b/271324781, b/274897776)
גרסה 1.4.2
19 באפריל 2023
androidx.compose.ui:ui-*:1.4.2
משוחרר. גרסה 1.4.2 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקנה בעיה שבה נעשה שימוש חוזר בערכי הצירוף של
AndroidView
בצורה לא נכונה, מה שעלול לגרום להתנהגות לא צפויה ולקריסות. (Ib67ee, b/275919849) - תוקנה רגרסיה שבה המקלדת לא הוצגה עבור שדות טקסט בתיבות דו-שיח שלא נוצרו על ידי התוכן הקומפוזבילי
Dialog
(I82551, b/262140644)
גרסה 1.4.1
5 באפריל 2023
androidx.compose.ui:ui-*:1.4.1
משוחרר. גרסה 1.4.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תיקון בעיה ב-
ParentDataModifier
שלא משפיעה עלAndroidView
(b/274797771)
גרסה 1.4.0
22 במרץ 2023
androidx.compose.ui:ui-*:1.4.0
משוחרר. גרסה 1.4.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.3.0
- נוסף API חדש של
PinnableContainer
שמאפשר להצמיד פריטים מדורגת ברשימה, כך שלא יפולחו כשגוללים מחוץ לתחום. לדוגמה, התכונהModifier.focusable()
משתמשת במנגנון הזה כדי להצמיד את הפריט שנמצא כרגע במוקד. (Ib8881, b/259274257, b/195049010) - מערכת המיקוד משוכתבת באמצעות ממשקי ה-API הניסיוניים החדשים של
Modifier.Node
. - נוסף בנכס סמנטיקה
IsContainer
ב'פלטפורמות'. המאפיין הזה ישמש בשינוי מאוחר יותר שיקבע את סדר המעבר על סמך המשמעות הסמנטית של אלמנטים כמו פלטפורמות. I63379 - נוסף תפקיד נגישות חדש
DropdownList
. אפשר להשתמש בכך כדי לשחזר את ההתנהגות שלTalkBack
כשמתמקדים ב-android.widget.Spinner
. (I177e5, b/236159001) - עכשיו אפשר להשתמש ב-
PlatformTextStyle(emojiSupportMatch)
כדי להשבית את עיבוד התמיכה באמוג'י בפסקה אחת. (Ia7100, b/139326806) - בדיקות של ממשק המשתמש של Android לכתיבה ירוצו עכשיו אישורי פריסה לכל פריים כשמריצים פריימים לצורך מעבר למצב 'לא פעיל' (למשל, דרך
waitForIdle
). הדבר עלול להשפיע על בדיקות שמצהירות על פריימים בודדים של אנימציית פריסה. (I8ea08, b/222093277) - הניסוי הניסיוני
TextMotion
נוסף אלTextStyle
כדי להגדיר את הטקסט כ'Static(default)
' או כ'אנימציה'. אם רוצים לשנות את גודל הטקסט, לתרגם או לסובב אותו באמצעות אנימציה, יש להשתמש ב-TextMotion.Animated
. (I24dd7)
גרסה 1.4.0-rc01
8 במרץ 2023
androidx.compose.ui:ui-*:1.4.0-rc01
משוחרר. גרסה 1.4.0-rc01 מכילה את ההתחייבויות האלה.
שינויים ב-API
- נוסף עומס יתר של פונקציה קומפוזבילית
AndroidView
, שמקבלת את הפרמטרonReset
. כך אפשר לעשות שימוש חוזר במופעים של תצוגה מפורטת כשהם מוחקים את הצומת שלהם מהיצירה ועושים בו שימוש חוזר באופן תואם. האפשרות הזו שימושית במיוחד ל-LazyRows
ול-LazyColumns
מהצפיות. (I3f10d, b/230099236) - הוספת API חדש ברמה נמוכה של
PlatformTextInputAdapter
לפיתוח הטמעות של קלט טקסט בהתאמה אישית שמדברות ישירות אל ממשקי API של הפלטפורמה. (I58df4)
תיקוני באגים
- פעולת הסמנטיקה של
SetText
שלBasicTextField
תעדכן עכשיו את מאגר הטקסט הזמני באמצעות אותו נתיב קוד כמו עדכוני IME ופונקציות הבדיקה (למשלperformTextReplacement
). - הפונקציות לבדיקת טקסט
performTextClearance
,performTextReplacement
ו-performTextSelection
משתמשות עכשיו ב-SemanticsActions
. (I0807d, b/269633168, b/269624358)
גרסה 1.4.0-beta02
22 בפברואר 2023
androidx.compose.ui:ui-*:1.4.0-beta02
משוחרר. גרסה 1.4.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- ה-API של
modifierElementOf()
הוסר. במקום זאת, יש לעבור מ-ModifierNodeElement
ישירות. (I2256b) - נוספה קריאה חוזרת של
Modifier.Node.onReset()
שמאפשרת לאפס מצב מקומי מסוים כדי לטפל כראוי בפנייה כשנעשה שימוש חוזר ב-Layout
(לדוגמה, כפריט שלLazyColumn
). בוצע תיקון ב-FocusTargetModifierNode
כדי לאפס כראוי את מצב המיקוד. (I65495, b/265201972) - הפרמטר
BlendMode
נוסף לשיטותDrawScope.drawText
,Paragraph.paint
ו-MultiParagraph.paint
כדי לתמוך באלגוריתמים שונים של מיזוג בעת ציור טקסט על קנבס. (I57508)
תיקוני באגים
- בוצע שיפור באלגוריתם של סדר המיקוד לנגישות, לדוגמה מספר העמודות העליון/התחתון לרוב נקרא ראשון/אחרון, בהתאמה (74e9c5)
גרסה 1.4.0-beta01
8 בפברואר 2023
androidx.compose.ui:ui-*:1.4.0-beta01
משוחרר. גרסה 1.4.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- השם של
PinnableContainer.PinnedHandle.unpin()
השתנה ל-release()
(I4667a) - נוספו
waitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
ו-waitUntilDoesNotExist
כ-API ניסיוני ל-ComposeTestRule
, ועכשיו ה-API שלwaitUntil
הורחב כך שיקבל כל התאמה וכל ספירת צמתים. מידע נוסף זמין בכתובתComposeTestRule
. (Ifa1b9, b/226934294) - שינוי השם של
Font.MaximumAsyncTimeout
לשםFont.MaximumAsyncTimeoutMillis
. (I07af5) - בוצעה הסרה של
GoogleFont.Provider.AllFontsListUri
וקישור אליו ב-ktdoc במקום זאת. (I16f29)
תיקוני באגים
- הוספת מסמכים עבור
AndroidFont.fontVariationSettings
(I7d9e2)
גרסה 1.4.0-alpha05
25 בינואר 2023
androidx.compose.ui:ui-*:1.4.0-alpha05
משוחרר. גרסה 1.4.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספנו עומסי יתר ניסיוניים חדשים לפונקציה
runComposeUiTest
ולפונקציותcreate*ComposeRule
שמקבלות פרמטרים שלCoroutineContext
. ההקשר ישמש ליצירה לבדיקה ולכל מופע שלLaunchedEffect
ו-rememberCoroutineScope()
בהרכבה עצמו. (I10614, b/265177763) - צריך להוסיף API חדש כדי לעקוב אחרי מהירות דו-ממדית אחת (If5a82)
FocusRequester
מסומן עכשיו כ-@Stable
. (I580ee)- מסירים הערה ניסיונית מה-constructor של
DialogProperties
שמקבל פרמטרusePlatformDefaultWidth
. (Ic4048) - נוספה פונקציה למיקום החישוב ולטנגנס במרחק בנתיב – עם
PathMeasure.getPosition()
ו-PathMeasure.getTangent()
(I3b47c) - הוסר בטעות הגדרה ציבורית שנחשפה ב-
PlatformParagraphStyle
. (I07f47) - עוד סוג/יכולת null של פונקציות inline/הוצא משימוש (I24f91)
- הוספת
AnnotatedString.hasStringAnnotations
לשאילתה על הערות עם אפס הקצאות. (I94dfe, b/246960758) - נוסף עומס יתר חדש עבור הפונקציה
TextMeasurer.measure
שמקבל את הפונקציהString
כטקסט. (I47b2d, b/242705342) - ממשקי ה-API של
LineBreak
ו-Hyphens
ב-TextStyle עברו שדרוג ליציב. (Ic1e1d)
תרומה חיצונית
- השיטות
notifyFocusedRect
ב-TextInputSession
וב-TextInputService
לא הוצאו שוב משימוש. (I23a04, b/262648050)
גרסה 1.4.0-alpha04
11 בינואר 2023
androidx.compose.ui:ui-*:1.4.0-alpha04
משוחרר. גרסה 1.4.0-alpha04 מכילה את התחייבויות אלה.
תכונות חדשות
- נוסף API חדש של
PinnableContainer
שמאפשר להצמיד פריטים מדורגת ברשימה, כך שהם לא יושמטו לאחר גלילה מחוץ לתחום. לדוגמה, התכונהModifier.focusable()
משתמשת במנגנון הזה כדי להצמיד את הפריט שנמצא כרגע במוקד. (Ib8881, b/259274257, b/195049010) - מערכת המיקוד משוכתבת באמצעות ממשקי ה-API הניסיוניים החדשים של
Modifier.Node
. - נוסף בנכס סמנטיקה
IsContainer
ב'פלטפורמות'. המאפיין הזה ישמש בשינוי מאוחר יותר שיקבע את סדר המעבר על סמך המשמעות הסמנטית של אלמנטים כמו פלטפורמות. I63379 - נוסף תפקיד נגישות חדש
DropdownList
. אפשר להשתמש בפונקציה הזו כדי לשכפל התנהגות שלTalkBack's
כשמתמקדים ב-android.widget.Spinner
. (I177e5, b/236159001) - עכשיו אפשר להשתמש ב-
PlatformTextStyle(emojiSupportMatch)
כדי להשבית את עיבוד התמיכה באמוג'י בפסקה אחת. (Ia7100, b/139326806) - בדיקות של ממשק המשתמש של Android לכתיבה ירוצו עכשיו אישורי פריסה לכל פריים כשמריצים פריימים לצורך מעבר למצב 'לא פעיל' (למשל, דרך
waitForIdle
). הדבר עלול להשפיע על בדיקות שמצהירות על פריימים בודדים של אנימציית פריסה. (I8ea08, b/222093277) - הניסוי הניסיוני
TextMotion
נוסף אלTextStyle
כדי להגדיר את הטקסט כ'Static(default)
' או כ'אנימציה'. אם רוצים לשנות את גודל הטקסט, לתרגם או לסובב אותו באמצעות אנימציה, יש להשתמש ב-TextMotion.Animated
. (I24dd7)
שינויים ב-API
- הארגומנט
maxSize: IntSize
ב-drawText
הוחלף בארגומנטsize: Size
כדי לחפוף לפונקציותDrawScope
אחרות. כברירת מחדל,size
מוגדר לערךSize.Unspecified
, ולכן התנהגות ברירת המחדל הקודמת לא אמורה לשנות. (Icd27d) - הוסר בנאי הגופנים הניסיוני שהוצא משימוש. (I8a724, b/261435386)
- סיווג הנתונים של ממשק המשתמש
Group
כולל עכשיו את השדהisInline
, שמציין אם הקבוצה מיועדת לקריאה לפונקציה קומפוזבילית מוטבעת. אם הערך שלisInline
הואtrue
, הקריאה היא לפונקציה קומפוזבילית מוטבעת. עם זאת, יכול להיות שהערך יהיה False בקריאות לפונקציות קומפוזביליות מוטבעות, שהן ממודולים שעברו הידור באמצעות גרסה של הפלאגין מהדר (compiler) לכתיבה, שלא יוצרת את פרטי הפונקציה המוטבעת. (Idb846) - העברתם כמה ממשקי API ניסיוניים בעבר לגרסה יציבה
- Rotary Scroll Event API יציב עכשיו (I42ad3, b/261561229)
- ה-API של
FontVariation
יציב עכשיו (I8779f, b/241016309) - כל ה-constructor של
Font()
הם עכשיו API יציב (I5948b, b/261435386) DeviceFontFamilyName
יציב עכשיו (I8b640, b/261435386)- ה-constructor של
AndroidFont
עםvariationSettings
הוא עכשיו API יציב, ואפשר להשתמש בו כדי ליצור סוגים חדשים של תיאורי גופנים. (I5adcc, b/261565807) - ממשק ה-API של
createFontFamilyResolver
יציב עכשיו. אפשר להשתמש באפשרות הזו כדי לזהות חריגים לא מזוהים במהלך טעינה אסינכרונית של גופנים. (Ibb481, b/261435386) - ממשק ה-API של
Font.loadingStrategy
יציב עכשיו. (I5937c, b/261435386) - ממשק ה-API של
GoogleFont
יציב עכשיו. (Ic90b0, b/261435386) TextUnit(float, TextUnitType)
הוא עכשיו API יציב. (I90c84, b/261561612)pluralStringResource
הוא עכשיו API יציב. (I09849, b/261439703)
גרסה 1.4.0-alpha03
7 בדצמבר 2022
androidx.compose.ui:ui-*:1.4.0-alpha03
משוחרר. גרסה 1.4.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- מתבצעת הסרה של
ExperimentalComposeUiApi
מ-PointerIcon
(I23af8) - הוספה של פעולות נגישות בדף:
PageUp
,PageDown
,PageLeft
,PageRight
. לתשומת ליבכם: המדדים האלה זמינים רק ב-API 29. (Ida4ab) - תצוגת הפרמטר
rememberNestedScrollConnection
עודכנה מתצוגת בסיס לתצוגת מארח. (Ia5200) - נוסף ממשק API של Modifier להרצת שאילתות על פרטי גלילה של ישויות אב. (I2ba9d, b/203141462)
- נעשה שימוש ב-
Clickable
כדי לעכב באופן תקין אינטראקציות עם העיתונות, כאשר תנועות עשויות להפוך לאירועי גלילה. - בוצע תיקון של
Clickables
לעיכוב תקין של הדים בזמן שימוש בתוךScrollable ViewGroup
. - חלונית ההזזה ו-Sheets עודכנו כדי להשהות לחיצות בצורה נכונה במקרה שתנועות יכולות להפוך לאירועי גלילה.
- שינינו את השם של
CompositingStrategy.Always
ל-Offscreen
כדי לציין שהשדהgraphicsLayer
תמיד יעבור למאגר זמני ביניים (I47dc1) - יציב עכשיו (I10566, b/248294649)
- נוספו ממשקי API ניסיוניים חדשים
PerfettoTrace.record {}
ו-PerfettoTraceRule
כדי לתעד מעקבי Perfetto (שנקראים גם מעקבי מערכת) כחלק מבדיקה, כדי לבחון את ההתנהגות והביצועים של הבדיקה. (I3ba16) - בבדיקות ממשק משתמש שנעשה בהן שימוש בכלל 'כתיבה', המשיכות יופעלו מחדש במהלך
withFrameNanos
קריאה חוזרת (callback) רק אחרי שכל הקריאות החוזרות לפריימים יפסיקו לפעול. ההגדרה הזו תואמת להתנהגות של כתיבת הודעה בזמן הפעלה רגילה. עם זאת, בדיקות שמסתמכות על ההתנהגות הישנה עלולות להיכשל. הפעולה הזו אמורה להשפיע רק על קוד שקורא ישירות ל-withFrameNanos
אוwithFrameMillis
, ושהלוגיקה מחוץ לקריאה החוזרת מועברת לפונקציות האלה שצריך להעביר בתוך הקריאות החוזרות. לקבלת דוגמאות, אפשר לעיין בשינויים בבדיקת האנימציה ב-CL הזה. - הפרמטר
onPerformTraversals: (Long) -> Unit
האופציונלי נוסף ל-constructor ולפונקציית היצרן שלTestMonotonicFrameClock
כדי להריץ את הקוד אחרי התקשרות חזרה שלwithFrameNanos
, אבל לפני המשך הפעולה של המתקשרים וקורוטינים. (Idb413, b/254115946, b/222093277, b/255802670) - נוספה אמוג'י קומפט לכתיבה (Ibf6f9, b/139326806)
- נוסף פרמטר חדש של טפט ל-
@Preview
לתמיכה בצבעים דינמיים (I9f512)
תיקוני באגים
- התראות על החלת תמונת מצב נשלחות עכשיו אחרי החלת השינויים על
Recomposer
. (Iad6c0, b/222093277) - נוספו שינויים ב-
captureToImage
כדי לאפשר צילום מסך של כמה חלונות. האפשרות הזו שימושית לבדיקות של צילומי מסך שמשתמשות בחלונות קופצים של כתיבת הודעה. (I169c5)
עדכונים בנושא תלות
- ממשק המשתמש של הבנייה וחומר הלימוד תלויים במחזור החיים 2.5.1. (I05ab0, b/258038814)
גרסה 1.4.0-alpha02
9 בנובמבר 2022
androidx.compose.ui:ui-*:1.4.0-alpha02
משוחרר. גרסה 1.4.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
GraphicsLayerScope
עודכן כדי לחשוף את הגודל הנוכחי שלgraphicsLayer
. האפשרות הזו שימושית לחישוב טרנספורמציותgraphicsLayer
כפונקציה של הגודל הקומפוזבילי. (If8c43,b/181387080)- השיטה
CompositingStrategy
הוצגה כדי לקבוע מתי להשתמש בשכבת הרכבה שלא מופיעה במסך לצורך רינדור של תוכן מסוגgraphicsLayer
. המדיניות האוטומטית שומרת על התנהגות ברירת המחדל שממנפת באופן פנימי שכבה אם נעשה שימוש באלפא או ב-RenderEffect/Overscroll
. תמיד יופעל מאגר נתונים זמני שלא נמצא במסך, שבוModulateAlpha
יימנע משימוש במאגר נתונים זמני מחוץ למסך ובמקום זאת ישנה את כל אחת מהוראות השרטוט המוקלטות ב-graphicsLayer
. השימוש ב-ModulateAlpha
עדיין ישתמש במאגר נתונים זמני מחוץ למסך עבור שימושים ב-RenderEffect/Overscroll
(I25e82, b/256382834) invalidateSubtree()
נוסף אלModifier.Node
כדי לאפשר ביטול תוקף של היררכיות שלמות לפריסה ושרטוט. (I4bd90)- קידום של
rememberNestedScrollInteropConnection
ליציבות. נוספה האפשרות להעביר תצוגת בסיס אלrememberNestedScrollInteropConnection
. כך התצוגה המותאמת אישית תוכל להגיב בצורה טובה יותר למגבלות גלילה, במיוחד בתצוגות לא סטנדרטיות (למשלModalBottomSheetDialog
). (I9e107) - נוסף ממשק
ObserverNode
שיכול לשמש הטמעות שלModifier.Node
שצריך לקבל התראה כשערך שהם קראו בעבר משתנה (I5728b, b/247716483) - נוסף constructor חדש ל-
Paint
שמקבלandroid.graphics.Paint
מקורי. נוספה גם פונקציית תוסףtoComposePaint()
שממירה אובייקט מקורי קיים ל-Compose Paint. (Ica91b) - הוספת
FontFamily.Resolver.resolveAsTypeface
חדש לשימוש ב-Android. (I8950b) - צריך להוסיף
ToolingState
כדי לאפשר לכלים לשנות מצבים פנימיים של קומפוזבילי (Ie6614) - יצירה של כלים מחדש (I8677b) כדי לשפר את התמיכה באנימציות חדשות שנוספו
- נוסף הפרמטר
minLines
ל-Material3 Text,TextField
ו-OutlinedTextField
, המאפשר להגדיר את הגובה המינימלי של הרכיב מבחינת מספר השורות (I4af1d)
גרסה 1.4.0-alpha01
24 באוקטובר 2022
androidx.compose.ui:ui-*:1.4.0-alpha01
משוחרר. גרסה 1.4.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה שיטה חדשה,
awaitEachGesture()
, למזהי תנועות. היא פועלת באופן דומה ל-forEachGesture()
, אבל הלולאה מעל התנועות פועלת במלואה בתוךAwaitPointerEventScope
, כך שאי אפשר לאבד אירועים בין החזרות. - השיטה
forEachGesture()
הוצאה משימוש לטובתawaitEachGesture()
כי היא מאפשרת אירועים שאבדו בין התנועות. (Iffc3f, b/251260206) - הוצאה משימוש של מיחזור של אובייקטי תאימות ב-Androidx. גילינו שהשינויים בביצועים הם זניחים, גם בגרסאות הישנות ביותר שנתמכות. (I0a961)
- הוספנו את
DrawStyle
כמאפיין ניסיוני ל-TextStyle
ול-SpanStyle
כדי להפעיל טקסט בשרטוט. (If24b8, b/155421273) AnnotatedString.Builder
מטמיע אתkotlin.text.Appendable
. (I1a061, b/231030444)- בפונקציה
AnnotatedString.Builder
יש עכשיו שיטהappend(AnnotatedString, start: Int, end: Int)
כדי לצרף מחרוזת משנה שלAnnotatedString
והסגנונות שמצטלבים. - הפרמטר
DrawStyle
נוסף לפונקציות העיצובParagraph
ו-MultiParagraph
שמאפשרות להוסיף טקסט עם קווי שרטוט. (Ic8102, b/155421273)
תרומה חיצונית
- תודה על
vighnesh
שהוספת מכשירי טלוויזיה לתצוגות המקדימות (Ie15cd)
גרסה 1.3
גרסה 1.3.3
11 בינואר 2023
androidx.compose.ui:ui-*:1.3.3
משוחרר. גרסה 1.3.3 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תיקון קריסה שמתרחשת לפעמים ב-Android 9 כשהפעילות נשמרת באמצעות תצוגת 'כתיבה'. (I0b755, b/260322832)
גרסה 1.3.2
7 בדצמבר 2022
androidx.compose.ui:ui-*:1.3.2
משוחרר. גרסה 1.3.2 כוללת את ההתחייבויות האלה.
תיקוני באגים
- עודכן לשימוש ב-Profobuf 3.21.8, כך שנמנע מהתראת אבטחה ב-
protobuf-javalite:3.19.4
(CVE-2022-3171) (b/255545055)
גרסה 1.3.1
9 בנובמבר 2022
androidx.compose.ui:ui-*:1.3.1
משוחרר. גרסה 1.3.1 כוללת את ההתחייבויות האלה.
גרסה 1.3.0
24 באוקטובר 2022
androidx.compose.ui:ui-*:1.3.0
משוחרר. גרסה 1.3.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.2.0
- חבילת API ניסיונית חדשה
LookaheadLayout
(הפעלת התנהגויות אנימציה שהיו בלתי אפשריות בעבר) - חבילת API ניסיונית חדשה
Modifier.Node
(חלופה לביצועים גבוהים יותר ל-Modifier.composed
) - תמיכה משופרת בהטמעת חלונות.
- מיקוד תמיכה בלחצני החיצים (D-Pads) ובמקלדת חומרה ב-LazyLists.
- הגובה המרבי הנתמך בתיבות דו-שיח ובחלונות קופצים הצטמצם ל-8dp (שינוי משמעותי בהתנהגות בחלק ממערכות העיצוב המותאמות אישית – הנימוק בנתוני הגרסה של בטא 01)
- שיפורים קטנים וקלים בממשק ה-API
- תיקוני באגים ושיפורי ביצועים רבים
גרסה 1.3.0-rc01
5 באוקטובר 2022
androidx.compose.ui:ui-*:1.3.0-rc01
משוחרר. גרסה 1.3.0-rc01 מכילה את ההתחייבויות האלה.
שינויים ב-API
- נוספו מקפים ניסיוניים חדשים של API כדי לתמוך במקף אוטומטי בטקסט (Iaa869)
תיקוני באגים
- כברירת מחדל, גופנים ב-
DeviceFontFamilyName
לא יגדירו את הגדרות הווריאציהwght
ו-ital
. במקום זאת, ייעשה שימוש בהגדרת הפלטפורמה עבורTypeface
שנטענו. (Ia7a6d, b/246989332) - תוקנה דליפת זיכרון של
LazyColumn
– לא בוצעה קריאה ל-onModifierLocalsUpdated
עם ערך ברירת המחדל כאשר נעשה שימוש חוזר בהתאמות (b/230168389)
גרסה 1.3.0-beta03
21 בספטמבר 2022
androidx.compose.ui:ui-*:1.3.0-beta03
משוחרר. גרסה 1.3.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- אפשר להוסיף אפשרויות להתאמה אישית של שבירת שורה בטקסט. (I86907)
- ארגומנט
size:IntSize
השתנה עםconstraints: Constraints
בשיטהTextMeasurer.measure
כדי לתמוך במגבלות רוחב מינימליות. (I37530, b/242707525)
תיקוני באגים
- ה-API של
BackHandler
ב-AndroidX Activity פועל עכשיו בתוכן קומפוזבילי מסוגDialog
. (I35342)
גרסה 1.3.0-beta02
7 בספטמבר 2022
androidx.compose.ui:ui-*:1.3.0-beta02
משוחרר. גרסה 1.3.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף עומס יתר ניסיוני ל-Layouts שמקבל רשימה של כמה lambdas של תוכן קומפוזבילי, שמאפשר להוסיף מודעות איומים למדידה בצורה שונה לתוכן lambdas שונות (Ic1b4e)
שינויים בממשקי ה-API הניסיוניים לטירגוט:
FocusDirection.In
ו-FocusDirection.Out
הוצאו משימוש והוחלפו ב-FocusDirection.Enter
וב-FocusDirection.Exit
. (Ia4262, b/183746982)- נוספו שני מאפייני מיקוד חדשים מסוג כניסה ויציאה, כדי לציין התנהגות מותאמת אישית עבור
FocusManager.moveFocus(Enter)
ו-FocusManager.moveFocus(Exit)
. (I5f3f9, b/183746982) - עכשיו אפשר להשתמש ב-
FocusRequester.Cancel
כדי לבטל העברת מיקוד. אפשר להשתמש ב-FocusRequester.Cancel
בכל אחד ממאפייני המיקוד הבאים: למעלה, למטה, שמאלה, ימינה, הבא, הקודם, התחלה, סיום, כניסה ויציאה. (Ib300f)
גרסה 1.3.0-beta01
24 באוגוסט 2022
androidx.compose.ui:ui-*:1.3.0-beta01
משוחרר. גרסה 1.3.0-beta01 מכילה את התחייבויות אלה.
ארגון מחדש של צומת Modifier
השכבה שמטפלת במכונות Modifier/Modifier.Element
ומתכווננת את ההתנהגות שלהן ב-LayoutNodes
עברה ארגון מחדש באופן משמעותי. כרגע, מדובר בשינוי ארגון שלא השפיע על ה-API הציבורי של אף אחד מהמגבילים הרבים שקיימים ב-Compose, ואפשר לראות אותו כשינוי להטמעה בלבד. למרות זאת, מדובר בשינוי חשוב מסיבות שונות. Ie4313
סיכום השינויים
ממשקי ה-API הניסיוניים של Modifier.Node
שנוספו, מספקים הפשטה שמאפשרת לנהל את המצב במכונה שתישמר במחזור החיים של הצומת של הפריסה, שיוקצו לכל צומת בפריסה ולכל שימוש של ה-Modifier.Element
התואם שהפיק אותו.
באופן כללי, ההפשטה הזו מספקת מנגנון חלופי ליצירת מגבילי שמירת מצב בלי להסתמך על המנגנונים של ממשק ה-API Modifier.composed
.
סיכון
השינוי הזה תואם לחלוטין לגרסאות קודמות, והוא נועד להיות תואם לאחור מבחינת התנהגות שניתנת למדידה עד כמה שניתן מבחינה מעשית וסבירה. עם זאת, יש כמה תתי-מערכות של הרכבה שלא טופלו, וסביר להניח שההתנהגות השתנתה בדרכים שלא נכללו בבדיקות שלנו ושלא נמצאו עדיין תוקנו.
חשוב להפעיל שיקול דעת בשדרוג לגרסה הזו. אם לדעתך יש בעיה כלשהי עבורך, חשוב לנו לדעת על כך.
ממשקי API ניסיוניים
נוספו ממשקי API ניסיוניים שונים, כולם קשורים לקונספט החדש של "צומת Modifier". פונקציות Modifier.Node נוצרים כתוצאה מ-
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
שינוי משמעותי בהתנהגות
הגובה המקסימלי הנתמך בתיבות דו-שיח בחלון קופץ הצטמצם ל-8dp.
גובה הגובה המקסימלי הנתמך של תיבות דו-שיח וחלונות קופצים של 'כתיבה' הצטמצם מ-30dp ל-8dp. השינוי הזה משפיע על תיבות דו-שיח וחלונות קופצים בהתאמה אישית של חומר וגם על ממשק משתמש. השינוי הזה נועד לתקן באג נגישות בגרסאות Android שקודמות ל-S, ולוודא ששירותי הנגישות בחלונות האלה יוכלו לקיים אינטראקציה עם התוכן שמופיע בתיבת הדו-שיח או בחלון הקופץ.
השינוי הזה ישפיע רק אם יוצרים תיבת דו-שיח או חלון קופץ בהתאמה אישית עם גובה המוגדר לרמות שגבוהות מ-8dp. כדאי לשקול להוריד את הגובה של תיבת הדו-שיח או החלון הקופץ. אם אתם צריכים לבטל את ההסכמה לפעולה החדשה הזו, תוכלו לחבר תיבת דו-שיח או חלון קופץ משלכם עם הגדרת הגובה הרצויה. זה לא מומלץ כי הנגישות עלולה להיפגע, והמפתח הוא זה שצריך לוודא שהחלק התחתון של תיבת הדו-שיח או החלון הקופץ מאפשר אינטראקציה וקריא על ידי שירותי הנגישות.
שינויים ב-API
- תוקנה בעיה שגרמה לכך ש-
painterResource
לא התעדכן לגבי שינויים בהגדרות האישיות (I58e73, b/228862715) rememberTextMeasurer
לא מקבלת יותר פרמטריםFontFamily.Resolver
,Density
אוLayoutDirection
. יש להשתמש ב-constructor שלTextMeasurer
כדי לספק ערכים מותאמים אישית לפרמטרים האלה. (Ia1da3)- נוסף נכס אחד (
DialogProperties.decorFitsSystemWindows
) כדי לאפשר לתיבות דו-שיח לתמוך ב-WindowInsets
. (I57742, b/229378542) - בוני גופנים הועברו חזרה לקובץ Kotlin המקורי כדי לשמור על תאימות בינארית. אין שינוי מהגרסה היציבה האחרונה. (Ieb2f3)
- האופרטור המיותר הוסר מכמה הגדרות של השווה – אין לכך השפעה. I6c309
FontVariation.Setting
הוא ממשק אטום, שמאפשר צמצום עתידי של ממשקי API. (I11021, b/143703328)- הוספה של
CompositionGroup.findParameters
אלSlotTree.kt
. כך כלים לאחזור פרמטרים שלCompositionGroup
בלי שיצטרכו לנתח את כל טבלת מיקומי המשבצות. (I124fe)
גרסה 1.3.0-alpha03
10 באוגוסט 2022
androidx.compose.ui:ui-*:1.3.0-alpha03
משוחרר. גרסה 1.3.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
LayoutCoordinates.findRootCoordinates()
גלוי עכשיו (I7fa37, b/204723384)- נוסף API ניסיוני כדי לקבל את
LayoutCoordinates
בPlacementScope
. כך המפתחים יכולים לדעת איפה הפריסה הנוכחית למקם את הילדים ביחס למיקום שלה. (I5482b, b/238632578) - נוספה
LayoutCoordinates.transformFrom
כדי לקבל את הטרנספורמציה של המטריצה מ-LayoutCoordinates
אחד לאחר. (Ic5ab1, b/238632578) - הוצאנו משימוש את
SemanticsModifier.id
והעברנו את מזהה הסמנטיקה ל-LayoutInfo.semanticsId
. (Iac808, b/203559524) - בגופנים של משאבים יש עכשיו תמיכה בהגדרה של וריאציות של גופן (API מגרסה 26 ואילך). (I900dd, b/143703328)
- תמיכה בגופנים של משתנים ב-
DeviceFontFamilyNameFont
(Ic1279, b/143703328) - בוני גופנים מקבלים עכשיו רשימה של
FontVariation.Setting
להגדרת גופנים של משתנים במכשירי O+. (I11a9d, b/143703328) - הוספת API של
FontVariation
להגדרה ולשימוש בגופנים של משתנים. (I3c40c, b/143703328) LineHeightStyle.Alignment
constructor הוא עכשיו ציבורי (ניסיוני) (I4bbbe, b/235876330)- הפִּסקה צפויה עכשיו|בפועל ומוגדרת ל-Android ולמחשבים. (Id387e, b/239962983)
- פסקה בממשק היא עכשיו סגירה של הממשק Paragarph. אין תרחיש לדוגמה לחלוקה למחלקות משניות, ומומלץ לפנות אלינו אם השינוי הזה ישפיע עליכם. (If5247, b/239962983)
- הערה ניסיונית הוסרה מ-
PlatformTextStyle
ומ-LineHeightStyle
. (I64bef) - הוצאה משימוש של
TextInputService.show|hideSoftwareKeyboard
. במקומו יש להשתמש ב-SoftwareKeyboardController
בקוד האפליקציה וב-TextInputSession
בקוד ניהול IME. (I14e4c, b/183448615) - הוספת ממשק API חדש לסוגי האנימציה הקיימים (I26179)
תיקוני באגים
- נוספה
@RequiresPermission
לממשקי API שמחייבים להעניק את ההרשאהPOST_NOTIFICATIONS
ב-SDK מגרסה 33 ואילך. (Ie542e, b/238790278)
גרסה 1.3.0-alpha02
27 ביולי 2022
androidx.compose.ui:ui-*:1.3.0-alpha02
משוחרר. גרסה 1.3.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף מאפיין חדש
PointerInputChange#pressure
כדי לאחזר את הלחץ. (I45a5e, b/205164819) - הוספת את
rememberTextMeasurer
כדי ליצור בקלות מופעים שלTextMeasurer
ולזכור אותם בהרכבה. (I8d66e) - ב-
Rect
, ב-RoundRect
וב-MutableRect
יש עכשיו תמיכה בתחבירin
של Kotlin כדי לשלוח קריאה לפונקציהcontains
. (Ie42b0, b/238642990) - צריך להסיר פונקציות מיותרות מ-
KeyInjectionScope
, כי אפשר להטמיע אותן בקלות באמצעות חלקים פשוטים יותר ב-API. הפונקציות שהוסרו כוללות אתpressKeys
,keysDown
ו-keysUp
. (I81d77) - ארגון מחדש של שמות פרמטרים וקבועים ב-
KeyInjectionScope
כך שיכללו את הסיומת 'Millis' כאשר היחידות של הקבועים והפרמטרים האלה הן אלפיות שנייה. (Iabef5) - השיטה
toStringForLog()
נוספה אלEditCommand
כדי לעזור בפתרון בעיות בעריכת טקסט. (I53354, b/228862731) - נוספה פונקציית התוסף
drawText
ב-DrawScope
כדי לספק דרך לצייר טקסט במגוון סגנונות באמצעות תכנים קומפוזביליים ומגבילים שפועלים עלDrawScope
כמוCanvas
ו-drawBehind
. (I16a62, b/190787898) - מציגים ממשק API ניסיוני חדש בשם
TextMeasurer
, שמאפשר חישוב של פריסת טקסט שרירותית שיוצר תוצאות זהות ל-BasicText
, ללא קשר לזמן הריצה של כתיבת הודעה. (I17101) - הוספה של
mapTree
אלSlotTree.kt
. כך כלים יכולים לבדוק אתSlotTree
בלי ליצור עותק בזיכרון, כמו שעושים בשבילי. עבור מפקח הפריסה, הדבר מספק שיפור בביצועים גורם 10. (I5e113) - התכונה 'תצוגה מקדימה של כתיבה' שונתה כך שהיא תאוחסן בקובצי פלט בינאריים, כדי לאפשר למפתחים לכתוב הערות ב-
MultiPreview
ולהשתמש בהן מחדש מתוך ספריות. (I85699, b/233511976)
תיקוני באגים
- כשמוסיפים אירועי
InputEventChange
ל-trackerVelocity
, אנחנו נתייחס עכשיו לערך דלתא במקום מיקומים, כדי להבטיח שהמהירות תחושב נכון בכל המקרים, גם אם רכיב היעד זז (Icea9d , b/216582726, b/223440806, b/227709803) - תיקון NPE שנוצר על-ידי
AnnotatedString.toUpperCase
כשיש הערות. (I0aca2, b/210899140)
גרסה 1.3.0-alpha01
29 ביוני 2022
androidx.compose.ui:ui-*:1.3.0-alpha01
משוחרר. גרסה 1.3.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
LookaheadLayout
חדש שתומך באישור מבט קדימה לפני המדידה/הפריסה בפועל. כך המערכת יכולה לחשב מראש את הפריסה כשהיא משתנה, ובמקביל המדידה/הפריסה שלאחר מכן מאפשרת להשתמש בגודל או במיקום שחושבו מראש כדי להציג אנימציה של הגודל והמיקומים שמיועדים ליעד. אין עדיין תמיכה ב-SubcomposeLayouts
, אבל היא תהיה זמינה בגרסה קרובה. (I477f5)- אפשר להוסיף פרמטר אלפא אופציונלי לטעם המברשת של
TextStyle
ו-SpanStyle
כדי לשנות את השקיפות של כלText
. (Ic2fac, b/234117635) - הוספנו את סוג ההערה
UrlAnnotation
ואת השיטות המשויכות לתמיכה בתמיכה בקישורTalkBack
ב-AnnotatedString
. (I1c754, b/231495122) - העברת פונקציונליות של כלי שירות לסביבת זמן ריצה (I4f729)
תיקוני באגים
TextLayoutResult.getLineForOffset
לא זורקות. (Idc5d6, b/235876324)
תרומה חיצונית
- נוסף API חדש
WindowInfo.keyboardModifiers
כדי לצפות במצב שלו בתוך פונקציות קומפוזביליות או דרך SnapshotFlow (Icdb8a)
גרסה 1.2
גרסה 1.2.1
10 באוגוסט 2022
androidx.compose.ui:ui-*:1.2.1
משוחרר. גרסה 1.2.1 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקן Nullpointer בבדיקה (b/237987764)
- תוקן חריג של הפעלת Cast של הכיתה במהלך לזכור בכלי הבדיקה (b/235526153)
גרסה 1.2.0
27 ביולי 2022
androidx.compose.ui:ui-*:1.2.0
משוחרר. גרסה 1.2.0 כוללת את ההתחייבויות האלה.
שינויים חשובים מאז 1.1.0
שיפורים במעבר מיקוד:
- עכשיו פועלת גלילה ממוקדת-מיקוד ברשימות עצלות, באמצעות ליבה ה-API החדש של
BeyondBoundsLayout
- ממשקי API חדשים להתאמה אישית של התנהגות ב-
FocusOrder
וב-FocusProperties
- התנהגות משופרת עם המקלדת הפיזית או השלט של הטלוויזיה
- עכשיו פועלת גלילה ממוקדת-מיקוד ברשימות עצלות, באמצעות ליבה ה-API החדש של
ממשקי API חדשים עבור:
- כניסות לחלונות
- רכיבי ליבה לאנימציות מבוססות-תנועה, אינסופיות ופריסה
- יכולות של
GraphicsLayer
, כוללRenderEffect
תיקוני באגים ושיפורי ביצועים רבים
גרסה 1.2.0-rc03
29 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc03
משוחרר. גרסה 1.2.0-rc03 מכילה את שמירות האלה.
- לא בוצעו שינויים מאז 1.2.0-rc02.
גרסה 1.2.0-rc02
22 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc02
משוחרר. גרסה 1.2.0-rc02 מכילה את שמירות האלה.
גרסה 1.2.0-rc01
15 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-rc01
משוחרר. גרסה 1.2.0-rc01 מכילה את שמירות האלה.
שינויים ב-API
- ממשקים בספריות הרכבה נוצרים עכשיו באמצעות שיטות ברירת מחדל של jdk8 (I5bcf1)
- נוספו פונקציות בסדר גבוה יותר ל-
KeyInjectionScope
להחדרת לחיצות על מקשים, בזמן שמקשים אחרים נמצאים לחוצים או מופעלים. הפונקציות האלה כוללות אתwithKeysDown
,withKeysToggled
וכו'. נוספו גם מאפיינים לבדיקה אם מטא-מפתח מסוים מושבת, לדוגמה,isCtrlDown
כדי לבדוק אם אחד ממקשי הבקרה מבוטל. ב-KeyInjectionScope
אפשר למצוא משאבי עזרה לגבי כל פונקציה. (I9f6cd, b/229831515) - הוספנו
OverscrollEffect
ניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילת יתר, לצד עומסי-היתר שלModifier.scrollable
שמקבלים אותו. LocalOverScrollConfiguration
הניסיוני הועבר מ-foundation.gesture
לחבילת היסודות ושמו השתנה ל-LocalOverscrollConfiguration
(If19fb, b/204650733)- שינוי השם של
runComposeUiTestWithoutActivity {}
ל-runEmptyComposeUiTest {}
, כדי להתאים אותו ל-createEmptyComposeRule()
(I6ified7)
גרסה 1.2.0-beta03
1 ביוני 2022
androidx.compose.ui:ui-*:1.2.0-beta03
משוחרר. גרסה 1.2.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת את
pressKeyTimes
וגם אתisCapsLockOn
וחברים אלKeyInjectionScope
. בנוסף, ה-API תומך עכשיו בתבניות הזרקה משולבות של עכבר ומקלדת, כמו לחיצה על לחצן עכבר כשהמטא-מקש לחוץ. (I4c8da, b/229831515) - נוספה תמיכה ניסיונית בהחדרת אירועים מרכזיים. אפשר להשתמש בפונקציה
performKeyInput
כדי לשלוח אירועים מרכזיים, או לשלוח אותם דרך המאפייןkey
שלMultiModalInjectionScope
במהלך תנועת קלט מרובת מודלים באמצעותperformMultiModalInput
. לעיון במסמכי התיעוד של ה-API, ניתן לעבור אלKeyInjectionScope
. (Ic5000, b/229831515) - צריך להוסיף
GoogleFont.Provider.AllFontsListUri
חדש לאחזור מקור האינטרנט הקנוני של Google Fonts שנתמך ב-Android. - שיפור הודעות שגיאה שנשלחות מחדש כשטעינת GoogleFonts נכשלה. (I0416c)
תיקוני באגים
- כשמוסיפים אירועי
InputEventChange
ל-Velocity Tracker, אנחנו נביא בחשבון עכשיו ערכי דלתא במקום מיקומים, כדי להבטיח שהמהירות תחושב נכון לכל המקרים, גם אם רכיב היעד זז (I51ec3, b/216582726, b/223440806, b/227709803) - ההגדרה
Show Layout Bounds
תחול עכשיו על תכנים קומפוזביליים מיד אחרי החלפת המצב במשבצת של ההגדרות המהירות, בלי לצאת מהפעילות ולהזין אותה מחדש. (I843d5, b/225937688) - חיפוש מחרוזת הנגישות לא מפעיל טעינת גופנים. בעבר, הוא ינסה לטעון גופנים עבור
StyleSpans
, יובילו לקריסות אם יוחלפוFontFamily.Resolver
. (I4609d) - לחיצה על מקש המחיקה קדימה כשהסמן נמצא בסוף שדה טקסט לא תקרוס יותר.
- עכשיו הארגומנטים של
DeleteSurroundingTextCommand
ו-DeleteSurroundingTextInCodePointsCommand
צריכים להיות לא שליליים. (Ica8e6, b/199919707)
גרסה 1.2.0-beta02
18 במאי 2022
androidx.compose.ui:ui-*:1.2.0-beta02
משוחרר. גרסה 1.2.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- שימוש חוזר בפונקציונליות בסוגים אחרים של תצוגה מקדימה (I19f39)
תיקוני באגים
- השם של
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
השתנה ל-DisposeOnDetachedFromWindowOrReleasedFromPool
כדי לשקף טוב יותר את העובדה במקרים שבהם השלכה מתרחשת, ולא רק כאשר השלכה לא מתבצעת. (If15ca)
גרסה 1.2.0-beta01
11 במאי 2022
androidx.compose.ui:ui-*:1.2.0-beta01
משוחרר. גרסה 1.2.0-beta01 מכילה את התחייבויות אלה.
תכונות חדשות
- זוהי גרסת הבטא הראשונה של 1.2!
שינויים ב-API
- נוסף
BeyondBoundsInterval
ניסיוני, שיכול לשמש יישומים מותאמים אישית שלLazyList
בעת פריסת פריטים מעבר לגבולות הגלויים (Ifabfb, b/184670295) - גרסאות עם מפתחות של
Modifier.composed
הן עכשיו API יציב (Ie65e4, b/229988420) - פישוט של ה-API של
rememberNestedScrollConnection
כדי להשתמש בלוקאלים של הרכבה כדי לקבל את מידע התצוגה הנוכחית (I67ca7) - עכשיו אפשר להשתמש בהערות ובהערות
@ComposableTarget
שמסומנות על ידי@ComposableTargetMarker
בהיקף הקובץ באמצעות הקידומת@file
. אם תשתמשו בהערת יעד בהיקף הקובץ, המהדר צריך להניח שכל הפונקציות הקומפוזביליות בקובץ נועדו לטרגט למיישם המשויך. לדוגמה, שימוש ב-@file:UiComposable
מצהיר על כך שכל הפונקציות של@Composable
מטרגטות לאפליקציה של ממשק המשתמש של 'כתיבה'. פונקציה שצריך לטרגט אליה מערכת הפעלה אחרת חייבת לספק באופן מפורש את ההערה של סמן היעד עבור הכלי הרצוי. (I40804) הושק ממשק API ניסיוני, חדש לפלטפורמה עצמאית לבדיקה:
interface ComposeUiTest
ו-fun runComposeUiTest(block: ComposeUiTest.() -> Unit)
, שיכולים לשמש להרצת בדיקות של ממשק פיתוח לכתיבה ללא צורך ב-TestRule
. כדי להריץ בדיקה בליComposeTestRule
, עוברים את הבדיקה כמו lambda לrunComposeUiTest
ומשתמשים השיטות והחברים בהיקף המקבלComposeUiTest
, שהם זהים לאלו שלComposeContentTestRule
.interface AndroidComposeUiTest
ו-fun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
הספציפיים ל-Android הם נוספו כדי להעניק גישה לפעילות הבסיסית, בדומה ל-AndroidComposeTestRule
. כדי לקבל שליטה רבה יותר, אפשר ליצורclass AndroidComposeUiTestEnvironment
בעצמך.ההטמעה למחשב היא
class DesktopComposeUiTest
, אבל לא פונקציות הרצה ספציפיות למחשבים זמינות כרגע.אפשר להעביר בדיקה מ
ComposeTestRule
לComposeUiTest
כמו זה (דוגמה ל-Android). מאת:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
אל:
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
בשלב זה,
ComposeContentTestRule
ו-ComposeTestRule
לא פועלים בטווחComposeUiTest
. לכן, לא ניתן עדיין לקרוא לפונקציות של תוספים ב-ComposeUiTest
בממשק שלTestRule
. לאחר השדרוג שלComposeUiTest
ל-API יציב, הערך שלComposeContentTestRule
ו-ComposeTestRule
ישתנה מ-ComposeUiTest
. (Ib4e90)השם של
LineHeightBehavior
השתנה ל-LineHeightStyle
השם של
LineVerticalAlignment
השתנה ל-LineHeightStyle.Alignment
משנה את השם של
LineHeightTrim
ל-LineHeightStyle.Trim
ערכי ברירת המחדל של בנאי מ-
LineHeightStyle
הוסרו (I582bf, b/181155707)הוספנו את
Brush
אל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)הפונקציות
PlatformParagraphStyle.lerp
ו-PlatformSpanStyle.lerp
השתנו לרמה העליונה פונקציות (I9a268)
תיקוני באגים
- במסמכים של
PointerInputChange::copy
מצוין עכשיו שמדובר בעותק רדוד. (I182f5) - תמיכה בשלוש נקודות כשהגובה מוגבל ולא מתאים לכל שורות הטקסט (Ie528c, b/168720622)
- ברירת המחדל של
includeFontPadding
הופעלה. אפשר להשבית אתincludeFontPadding
באמצעות המאפייןTextStyle.platformTextStyle
. בעתיד הקרוב נשנה את התנהגות ברירת המחדל, אבל עד אז, השינוי הזה יאפשר לנו לשלב טוב יותר שיפורים בגובה השורה (aosp/2058653) ולפתור בעיות שקשורות לחיתוך שלTextField
. (I01423, b/171394808)
תרומה חיצונית
- אם גוללים אנכיים ב-Android, הערך של
MouseInjectionScope.scroll(delta = someDelta)
משתנה עכשיו (אם הערך של מדד מסוים הוא חיובי, הוא יגלול למטה) (Ifb697, b/224992993)
גרסה 1.2.0-alpha08
20 באפריל 2022
androidx.compose.ui:ui-*:1.2.0-alpha08
משוחרר. גרסה 1.2.0-alpha08 מכילה את התחייבויות אלה.
שינויים ב-API
- הפונקציות
pluralStringResource
סומנו כניסיוניות כדי לאפשר אבולוציה לתמוך טוב יותר בבינלאומי בעתיד. (If24e4) - פיסקה ו-MultiParagraph מקבלים עכשיו את הפרמטר Constraints. העברת
Constraints.maxHeight
היא פעולה חסרת תקדים כרגע, אבל היא תאפשר לבצע חישובים מסוימים בעתיד, כמו אליפסה על סמך הגובה. (I6afee, b/168720622) SubcomposeSlotReusePolicy.getSlotsToRetain()
מקבל עכשיו מחלקה מותאמת אישית כמו MutableSet, שלא מאפשרת להוסיף בה פריטים חדשים. (Icd314)- PointerIcon הוא עכשיו ממשק
@Stable
(I9dafe) - האפשרות 'צריכה חלקית (מיקום למטה' או 'מיקום נמוך') הוצאה משימוש ב-
PointerInputChange
. אפשר להשתמש ב-consume()
כדי לקבל את השינוי באופן מלא. אפשר להשתמש ב-isConsumed
כדי לבדוק אם מישהו אחר ביצע את השינוי בעבר. - מעכשיו,
PointerInputChange::copy()
תמיד יוצר עותק שטחי שימוש. פירוש הדבר הוא שעותקים שלPointerInputChange
ייצרוך לאחר מימוש אחד מהעותקים. כדי ליצורPointerInputChange
ללא גבולות, צריך להשתמש ב-constructor. (Ie6be4, b/225669674) - הפעלת האפשרות 'גלילה הדדית' בין 'כתיבה' לבין 'הצגה' בכיוון 'כתיבה' > צפייה. פירוש הדבר הוא שהורה של הכתיבה יוכל לקבל דלתא של גלילה בתוך תצוגת גלילה בתוך תצוגת גלילה. (If7949, b/174348612)
SemanticsProperty testTagsAsResourceId
חדש, שניתן להשתמש בו כדי להפוך את 'פיתוח נייטיב' לתאימות לבדיקות UIAutomator שמיועדים למערכת התצוגה המפורטת. (I39c20)- הצגת כל המשקלים הזמינים לגופנים במערכות ב-Android כשמשתמשים ב-
FontFamily.SansSerif
. הפעולה הזו תשתמש בשמות של גופנים חלופיים כמו Sans Serif-medium באופן פנימי ב-API 21-28. זהו שינוי בהתנהגות, מכיוון שבעבר משקללים 400 ו-700 נתמכים ב-API 21-28 בלבד. (I380fe, b/156048036, b/226441992) - מורים לפי פסקאות ומספר פסקאות סידרו מחדש ארגומנטים תלויי מיקום לפני הארגומנטים האופציונליים. (אידפאה)
AndroidFont
משתמש עכשיו ב-typefaceLoader כפרמטר של constructor. (I2c971)
גרסה 1.2.0-alpha07
6 באפריל 2022
androidx.compose.ui:ui-*:1.2.0-alpha07
משוחרר. גרסה 1.2.0-alpha07 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה הפונקציה החדשה
Snapshot.withoutReadObservation { ... }
. היא מאפשרת למשתמשים להריץ את lambda שמועברת בלי להירשם לשינויים בערכי המדינה שנקראים במהלך החסימה. הוא יכול להיות שימושי במקרים שבהם אתם רוצים להפיק תועלת מכתיבה/קריאה בטוחה של שרשורים על סמך תמונת המצב, אבל אתם רוצים לקרוא את הערך בלי לגרום להתחשבות או למדידה מחדש ללא צורך. (I9f365, b/214054486) - מאפיין התוסף
consumeWindowInsets
שלComposeView
מאפשר למפתחים להשבית את השימוש ב-AndroidWindowInsets
. כך אפשר להפריד ביןComposeViews
בהיררכיה לכל אפליקציה שלWindowInsets
, בלי להפריע זה לזה. (I0ef08, b/220943142) - נוספה
KeyboardType.Decimal
כחלופה ל-Keyboard.Number
כדי לכלול באופן ספציפי מפריד עשרוני ב-IME. (Iec4c8, b/209835363) PointerEventType.Scroll
ו-PointerEvent.scrollDelta
הם ממשקי API יציבים עכשיו (I574c5, b/225669674)- הפעלת Nested Scroll בין 'תצוגה' ו'כתיבה' לשיתוף פעולה במחלקות View. המשמעות היא שכלי הכתיבה יכול עכשיו לשלוח שינויי גלילה לתבנית הורה (שיתוף פעולה) של תצוגה. (I5d1ac, b/174348612)
FontFamily.Resolver
עודכן כדי לשלב את הגדרת הנגישות של טקסט מודגש במערכת כולו (I6c1e7)- השדה
Font(AssetManager, String, ...)
הוצא משימוש והוחלף ב-Font(String, AssetManager, ...)
. זהו API ניסיוני. (I1c7a4) - הוספת מתאר גופן חדש
Font(DeviceFontFamilyName)
כדי לחפש גופנים שהותקנו על ידי המערכת במהלך שרשראות של גופנים חלופיים. (I30468, b/219754572) - נוספה הגדרת תאימות זמנית עבור
includeFontPadding
ב-TextStyle/ParagraphStyle. ניתן לשנות אתincludeFontPadding
דרךTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
. זוהי אפשרות בהגדרה זמנית כדי להפעיל את ההעברה, והיא תוסר. (If47be, b/171394808) - הוספת התוסף
GoogleFont.Provider.isAvailableOnDevice
לעזרה בניפוי באגים. (I64e31) - הוספת בנאי של
GoogleFont.Provider
לשימוש עם@ArrayRes
(Ic5ee1, b/225984280) Compose GoogleFont
נקרא עכשיוFont(GoogleFont)
, אחרת ה-API יישאר יציב. (I125f2)
תיקוני באגים
- נוספה בדיקת מוך לחומר/גג כדי לוודא שנעשה שימוש במרווח הפנימי הפנימי (Ifb111)
גרסה 1.2.0-alpha06
23 במרץ, 2022
androidx.compose.ui:ui-*:1.2.0-alpha06
משוחרר. גרסה 1.2.0-alpha06 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה פעולה סמנטיקה של
RequestFocus
כדי לבקש התמקדות ביעד שניתן להתמקד בו. (I17b71) - ניתוח מעודכן של פריטים וקטוריים שניתנים להזזה כדי לתמוך בשיקוף אוטומטי כדי להפוך את התוכן של
VectorPainter
אם הפריסה הנוכחית הכיוון הוא RTL. (I79cd9, b/185760237) צבעי הצללית/הסביבה עודכנו לפרמטרים האחרונים של
Modifier.graphicsLayer
לצורך תאימות API (I3f864, b/160665122)נוספו הטמעות ברירת מחדל לצלליות או לצבע הסביבה ב-
GraphicsLayerScope
כדי להבטיח שינויים ב-API שלא יגרמו לשיבושיםנוסף זמן האירוע לאירועי RSB (Ief8ae)
התבצע מיזוג של
FocusOrder
אלFocusProperties
, ועכשיו יש לשירותfocusProperties()
את כל היכולות שלfocusOrder()
. הוצאנו משימוש אתFocusOrder
ואתfocusOrder()
. צריך להחליף את השדהfocusOrder()
שמקבל את הערךfocusRequester
במשתנהfocusRequester()
בשילוב עםfocusProperties()
. כך אפשר להפריד בצורה ברורה יותר בין החששות. (I601b7)עכשיו, שדרוג של
RecyclerView
ושלCompose
יוביל לביצועי גלילה טובים יותר ב-RecyclerViews אם מדובר בתצוגות של רעיונות לילדים.הוספת
ViewCompositionStrategy.Default
כאמצעי לאחזור אסטרטגיית ברירת המחדל המובניתמוסיפים את
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
, שהיא אסטרטגיית ברירת המחדל החדשה, ומטפלת כראוי בקונטיינרים במאגר כמו RecyclerView. (If7282)נוספה תמיכה בהוספת הערות למחלקות של הערות באמצעות @Preview כשלב ראשון להוספת התכונה 'תצוגה מקדימה'. ניתן להשתמש בהערות כאלה כדי להוסיף הערות לשיטות קומפוזביליות או לסוגי הערות אחרים, שניתן להתייחס אליהן כאל הערות באופן עקיף ב- @Preview הנתון. (I12eff)
הפניות למכשירים שנוספו לרשימת המכשירים ב- @Preview (I071c9)
תיקוני באגים
- עדכנו את ממשקי ה-API של גרפיקה של Vector לשימוש בהערות הקומפוזביליות המתאימות @VectorComposable במקום ב- @UiComposable (I942bc)
- יש להסיר את השורה הראשונה מ-
AnnotatedString.Builder.withStyle
(If84d5)
תרומה חיצונית
- Write-ui: הוספת מאפייני
ambientShadowColor
ו-spotShadowColor
ל-GraphicsLayerScope
(I1ba1a, b/160665122) - משאבים רבים נתמכים עכשיו באמצעות הפונקציות
pluralStringResource
. (Ib2f23, b/191375123)
גרסה 1.2.0-alpha05
9 במרץ 2022
androidx.compose.ui:ui-*:1.2.0-alpha05
משוחרר. גרסה 1.2.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- עכשיו הפונקציה
TextToolbar
משתמשת בארגומנטים מסוג lambda במקוםActionCallback
. (Ib2eb9, b/197950089) - תכונת ה-null עודכנה בליבת ותאימות האפליקציה כדי להתאים ל-Tiramisu DP2 (I0cbb7)
- הממשק המדידה חושף עכשיו את נכס הורה (I3313f)
Modifier.onPlaced
והממשקOnPlacedModifier
הם יציבות. (Ib5482)- הידד! האפשרות 'כתיבה' תומכת עכשיו באנימציה 'סולם משך אנימטור' בהגדרה 'אפשרויות למפתחים'. (I5a4fc, b/161675988)
- נוסף מגביל
BeyondBoundsLayout
מקומי (If8b51, b/184670295) - טקסט: האפשרות IncludeFontPating (כולל גופנים) מושבתת עכשיו כברירת מחדל.
בעיות בחיתוך כתוצאה מ-
includeFontPadding=false
מטופלות ושום חיתוך לא אמור להתרחש בסקריפטים ארוכים. (I31c84, b/171394808)
תיקוני באגים
ComposeContentTestRule.setContent
יקפיץ/ה עכשיוIllegalStateException
אם ניסית להגדיר תוכן כשכבר יש תוכן. (I888a5, b/199631334)- תיקון הקריסה שנגרמה בגלל תוכן שבלוח העריכה במהלך קריאה מ לוח העריכה ב-Android. (I06020, b/197769306)
- שיפור דוגמאות הגלילה של RSB. (I6a596)
תרומה חיצונית
- עודכן לשימוש ב-Kotlinx coroutines 1.6.0 (I3366d)
גרסה 1.2.0-alpha04
23 בפברואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha04
משוחרר. גרסה 1.2.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
נוספו
ComposableTarget
,ComposableTargetMarker
וגםComposableOpenTarget
שמאפשר לקבל דיווח על זמן שבו פונקציה קומפוזבילית נקראת טירגוט לאפליקציה שהיא לא שמיועד לשימוש.ברוב המקרים, רכיב הכתיבה יכול להסיק את ההערות של המהדר (compiler), כך שהשימוש באנוטציות האלה ישירות צריך להיות נדיר . המקרים שלא ניתן להסיק כוללים יצירה ו באמצעות פונקציות קומפוזביליות מופשטות בהתאמה אישית (כמו שיטות ממשק), שדות או משתנים גלובליים lambdas קומפוזביליים (מסיקים משתנים ופרמטרים מקומיים), או כשמשתמשים ב-
ComposeNode
או בפונקציות קומפוזביליות קשורות.לאפליקציות קומפוזביליות בהתאמה אישית, פונקציה זו מפעילה את הפונקציות הקומפוזביליות
ComposeNode
אוReusableComposeNode
צריכים להוסיף הערתComposableTarget
לפונקציה ולכל הערה אחרת סוגי פרמטרים קומפוזביליים של lambda. עם זאת, מומלץ כדי ליצור הערה שנוספהComposableTargetMarker
ולאחר מכן ייעשה שימוש בהערה המסומנת במקוםComposableTarget
ישירות. הערה קומפוזבילית שמסומן ב-ComposableTargetMarker
שווה ערך ל-ComposbleTarget
בשם המוגדר במלואו של המאפיין class בתור הפרמטר applier. לדוגמה לשימושComposableTargetMarker
:anroidx.compose.ui.UiComposable
. (I38f11)Font(resId, ...)
משתמש עכשיו ב-LoadStrategy ב-API יציב. (Ief3d2)FontLoadingStrategy
הוא עכשיו API יציב. (I1ee35, b/174162090)תמיכה בטעינת גופנים אסינכרוניים ב-Text (I77057, b/214587005)
הוספת ברידג' API כדי להמיר
Font.ResourceLoader
בהתאמה אישית ל-FontFamily.Resolver
. (Ia0060)
תיקוני באגים
FontFamily.Resolver
שסופקו מועברות להרכבות משנה כמו 'חלון קופץ'.Font.ResourceLoader
שסופקו מועברות להרכבות משנה כמו 'חלון קופץ'. (I48fa5)
גרסה 1.2.0-alpha03
9 בפברואר 2022
androidx.compose.ui:ui-*:1.2.0-alpha03
משוחרר. גרסה 1.2.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
notifyFocusedRect
methods ב-TextInputSession
ו-TextInputService
הוצאו משימוש ולא ייקראו אליהם. כדאי להשתמש יש גם אפשרותBringIntoViewRequester
. (Ia4302, b/192043120, b/216842427, b/178211874)- תאריך השקה:
destroyDisplayListData
method ב-RenderNode
class stub (I1e659, b/216660268) - נוסף API חדש שמאפשר למדוד מראש ילדים של
SubcomposeLayout
שיצרת מראש. (I857ea) נוספה
movableContentOf
שממירה תוכן קומפוזבילי lambda ל-lambda שמעבירה את המצב, ואת הצמתים התואמים, לכל מיקום חדש ששמו נקרא. מתי השיחה הקודמת עוזבת ההרכב, המצב נשמר באופן זמני ואם מתבצעת קריאה חדשה ללמבדה נכנס ליצירה ואז למדינה, צמתים יועברו למיקום של הקריאה החדשה. אם לא התקבלה שיחה חדשה שהמדינה תוסר באופן סופי, וחשוב לזכור שהצופים נשלחה הודעה.אם lambda מסוג
movableContentOf
נקרא כמה פעמים במצב אחד, נוצרים מצב חדש וצמתים חדשים לכל קריאה, וכמו כן, כשהשיחות מתחילות את היצירה, והשיחות החדשות נכנסות, המצב מועבר מהשיחות הראשונות ועד לשיחות שנכנסות, לפי הסדר נקראים. כל המדינות שלא נתבעו עליהן בעלות על ידי שיחות חדשות יוסרו באופן קבוע. (Ib4850)השירות
FontFamilyResolver
זמין עכשיו דרךLocalFontFamilyResolver.current
הוספת את
createFontFamilyResolver(context)
ואתcreateFontFamilyResolver(context, coroutineScope)
כדי ליצור חדש מקודדי FontFamily מחוץ לשימוש בכתיבה.הפסקאות והסעיפים הקודמים יהיו עכשיו
FontFamily.Resolver
TextLayoutResult.layoutInput.fontFamilyResolver
מכיל עכשיו המקודד שמשמש לפריסה הזו, הוצא משימושTextLayoutResult.layoutInput.resourceLoader
כי כבר לא נעשה בו שימוש. (Id5a45, b/174162090)תמיכה בטעינת גופנים אסינכרונית ואופציונלית, עם גיבוי או התנהגות המשתמשים. הנתיב הזה משמש ב-Text ו-TextField, והוא גלוי דרך FontFamilyresolver
תמיכה בטעינה מראש של גופנים דרך
FontFamilyResolver.preload
ב-
FontFamilyResolver.setAsyncLoadContext
אפשר להגדיר הקשר קורוטין גלובלי שמשמש לטעינת גופנים אסינכרוניים. (I87fe8, b/174162090)נוסף
AndroidFont
, ממשק API חדש ברמה נמוכה לאספקת סוגים חדשים של מתארי משאבי הגופנים ב-Android. לדוגמה, טעינת גופנים מ- קצה עורפי ספציפי לאפליקציה, עם אפשרות לאתר גופנים שהותקנו מראש במכשיר, או טעינת גופן ממשאב שלא סופק על ידי ההגדרה הנוכחית מפעלים לגופנים.API של
Font.ResourceLoaded
הורחב כדי לתמוך בתמיכה אופציונלית ובאסינכרונית טעינת הגופן מתבצעת. לא מומלץ שמפתחי אפליקציות ישתמשו ישירות בממשק API. כדי להוסיף סוגי גופנים חדשים, ראוAndroidFont
.פונקציית התוסף
Font.AndroidResourceLoader
מאפשרת שלFont.ResourceLoader
כשהוא לא בקומפוזיציה.הפרמטר
loadingStrategy
נוסף לגופנים מבוססי משאבים, כדי לאפשר טעינה אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים שניתן להוריד. (Ie5aea, b/174162090)ה-constructor של
Typeface(FontFamily)
הוצא משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. עם גופנים שניתנים להורדה, השיחה הזו יכולה להיות מוגבלת ל-10 אנשים שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload
.האפשרות
fontResource(FontFamily): Typeface
הוצאה משימוש. זה היה שימש בעבר לטעינה מראש של גופנים. הפעולה עשויה להימשך עד 10 שניות גופנים שניתנים להורדה. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload
(If8e7c, b/174162090)ה-constructor של
SubcomposeLayoutState
שמקבל אתmaxSlotsToRetainForReuse
הוצא משימוש. במקום זאת, יש constructor חדש שמקבל אתSubcomposeSlotReusePolicy
– ממשק חדש שמאפשר שליטה מפורטת יותר על המקומות שיש לשמור לשימוש חוזר בעתיד. (I52c4d)חושפת את פונקציית HSV ו-HSL ב-
Color
כנתונים לא ניסיוניים API. מרחב הצבעים של Oklab הוא עכשיו API ציבורי. (I08fb6, b/180731008)הוצא משימוש
AndroidComposeTestRule.AndroidComposeStatement
, שלא אמור להיות ב-API ציבורי ולא עשה שום דבר בשבילך בכל מקרה. (Ibc46b)שינוי שם של מחלקה ב-Kt שנוצר באופן פנימי (Ia0b9e, b/174162090)
הוסר
FontLoadingStrategy.values
(I42a9d, b/174162090)הכלי לטעינת גופנים גלובלי נקרא עכשיו
FontFamilyResolver
. (I4f773, b/174162090)שימוש במערכת החדשה לטעינת גופנים במחשב שולחני. (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
מחזירהState<Any>
(I4406c, b/174162090)
תיקוני באגים
- עכשיו, שדות TextFields יופיעו מעל המקלדת
והמקלדת מוצגת, כשמצב הקלט הרך
ADJUST_PAN
(I8eaeb, b/190539358, b/192043120) - במחשב נעשה שימוש בהרכבה מקומי ל-
FontFamily.Resolver
- הוצאה משימוש של
FontLoader
למחשב - מפעל חדש של
createFontFamilyResolver
במחשב (I6bbb, b/174162090) - סוג הקלט במקלדת הרכה לא מהבהב יותר כשמחליפים להתמקד בין שדות טקסט. (I1bf50, b/187746439)
גרסה 1.2.0-alpha02
26 בינואר, 2022
androidx.compose.ui:ui-*:1.2.0-alpha02
משוחרר. גרסה 1.2.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספו
Modifier.onRotaryScrollEvent()
ו-Modifier.onPreRotaryScrollEvent()
למכשירי Wear עם לחצן צד מסתובב (I18bf5, b/210748686) - הוספת גרסה ניסיונית של
View.createLifecycleAwareRecomposer
תוסף (I0cde6)
תרומה חיצונית
- הפונקציה
PointerEvent.scrollDelta.y
הופכת עכשיו ב-Android (עכשיו היא מחזירה 1 במקום -1 אם מטים את גלגל העכבר ימינה) (Ia9811)
גרסה 1.2.0-alpha01
12 בינואר, 2022
androidx.compose.ui:ui-*:1.2.0-alpha01
משוחרר. גרסה 1.2.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
- הוצא משימוש
FontFamily.canLoadSynchronously
. לנכס הזה יש שאין להם משמעות סמנטית. (Ica5ef) - שדה הזהות נוסף אל
CompositionData
ליצירה מזהים לא משתנים בבודק הפריסה. (Ic116e) - מזהים של מכשירי Wear OS נוספו לרשימת המכשירים בתצוגה מקדימה (I93232)
עדכונים בנושא תלות
- עכשיו תלוי ב-Kotlin
1.6.10
.
גרסה 1.1
גרסה 1.1.1
23 בפברואר 2022
androidx.compose.ui:ui-*: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.ui:ui-*: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.ui:ui-*:1.1.0-rc03
משוחרר. גרסה 1.1.0-rc03 מכילה את ההתחייבויות האלה.
תיקוני באגים
- עודכנה לתמיכה בחומר 'כתיבה' 1.1.0-rc03
גרסה 1.1.0-rc01
15 בדצמבר 2021
androidx.compose.ui:ui-*:1.1.0-rc01
משוחרר. גרסה 1.1.0-rc01 מכילה את שמירות האלה.
תיקוני באגים
- תוקן באג שגרם לפעולות חסרות של גלילה לנגישות (I7cbfb)
SemanticsNodeInteraction.captureToImage()
יפעל עכשיו גם אםHardwareRenderer.isDrawingEnabled()
הואfalse
, על ידי הפעלתו במהלך השיחה (Idf3d0)
גרסה 1.1.0-beta04
1 בדצמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta04
משוחרר. גרסה 1.1.0-beta04 כוללת את ההתחייבויות האלה.
תכונות חדשות
- עודכן להתאמה ל-Kotlin
1.6.0
שינויים ב-API
- בוצע ניקוי של יכולת ה-null ב-
androidx.core.view
(I7078a, b/204917439) - נוספו ממשקי API ניסיוניים שמאפשרים למשתמשים לצרוך את PointerInputchange או לבדוק אם נעשה בהם שימוש. (I2e59d)
- הוספת תמיכה באירועים של גלגל גלילה של העכבר בשכבת ממשק המשתמש. (Ia14eb, b/198214718)
- הוספת עומסי יתר ניסיוניים של
Modifier.composed
שמקבלים למפתחות להשוואה לשוויון ולאפשרות לדלג על אופטימיזציות. (Ice799, b/205851704) ComposeNotIdleException
מתחיל עכשיו מ-Exception
במקום זאת ישירות מ-Throwable
. שימו לב שהמשמעות היא שסעיפי חסימה שתפסו אתException
, יוכלו עכשיו לתפוסComposeNotIdleException
, במקומות שבהם הם לא היו עושים זאת בעבר. (I9c217)
תיקוני באגים
- תיקון כינויים של טקסט שלא זזים כאשר החשיפה של IME משתנה. (I25f2e)
גרסה 1.1.0-beta03
17 בנובמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta03
משוחרר. גרסה 1.1.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף צירוף חדש של Modifier.onPlaced כדי לאפשר את השינוי במיקום הרצוי. שינויים נוספים ב- לכן ניתן לקבוע את קיזוז הצאצא על סמך את השינוי שנצפה במיקום. (I558fd)
- בוצעה הסרה של
InjectionScope.flush()
וגםInjectionScope.dispose()
. השמטת כל האירועים והשלכה של ההיקף מתרחש עכשיו בסוף השיטה שנקראה Performance*Input() , כמו לפני. (I2bed8) - בוצעה הסרה של
MultiModalInjectionScope.Touch
וגםMultiModalInjectionScope.Mouse
. כדי להכניס מגע ועכבר אירועים לתנועות מרובות מודלים, עכשיו תוכלו להשתמשMultiModalInjectionScope.touch()
והקבוצהMultiModalInjectionScope.mouse()
, ושניהם מקבלים lambda מוגדר היקף המקלט של המודל הזה. (Idde18)
תיקוני באגים
- ערך ברירת המחדל של
durationMillis
אינץ' הפרמטרTouchInjectionScope.swipeWithVelocity
מחושב עכשיו כך ש- היא אפשרית. (I19deb)
גרסה 1.1.0-beta02
3 בנובמבר 2021
androidx.compose.ui:ui-*:1.1.0-beta02
משוחרר. גרסה 1.1.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף ממשק API ניסיוני של BringIntoView, שמאפשר לשלוח בקשה להורים כדי שהם יגלולו כדי להציג פריט (Ib918d , b/195353459)
- ממשקי API חדשים של אנימציה לתמיכה בכלים. באופן ספציפי, שמאפשרים לבדוק את האנימציות את ההגדרות שלהם מעברים. (I4116e)
תרומה חיצונית
- נוסף Modifier.pointerHoverIcon (I95f01)
גרסה 1.1.0-beta01
27 באוקטובר 2021
androidx.compose.ui:ui-*:1.1.0-beta01
משוחרר. גרסה 1.1.0-beta01 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף API ניסיוני של
BringIntoView
שמאפשר לשלוח בקשה להורים כדי שהם יגלולו כדי להציג פריט (Ib918d, b/195353459) - ממשקי API חדשים של אנימציה לתמיכה בכלים. באופן ספציפי, שמאפשרים לבדוק את האנימציות את ההגדרות שלהם מעברים. (I4116e)
גרסה 1.1.0-alpha06
13 באוקטובר 2021
androidx.compose.ui:ui-*:1.1.0-alpha06
משוחרר. גרסה 1.1.0-alpha06 מכילה את התחייבויות אלה.
שינויים ב-API
- הסרת
ExperimentalComposeUiApi
מהחשבוןViewRootForInspector
ו-LayoutInfo.ownerViewId
(I5c2e3) - נוסף עומס יתר של פריסה בלי ילדים, עם יעילות משופרת (Ib0d9a)
- הוסרו
InternalCompilerApi
משיטות Composer חייב להיקרא חוצה-מודולים (I1aa0b) - השירות
SemanticsNodeInteraction.performSemanticsAction
חוזר ה-SemanticsNodeInteraction
שבו הופעלה הפונקציה. (I9e5db) - נוספה LocalInputModeManager CompositionLocal כדי לזהות TouchMode/NonTouchMode. (I6a83c, b/175899786)
- הוספת את
viewConfiguration: ViewConfiguration
אלLayoutInfo
כדי לאפשר לצרכנים לקבל את הערך הנכון לפעולות כמו לחיצה ארוכה הזמן הקצוב לתפוגה. (I76ca6)- הוספת את
viewConfiguration: ViewConfiguration
אלInjectionScope
כדי לאפשר לבדיקות לכוונן את החדרת קלט על סמך למשל, לחיצה ארוכה על זמן קצוב לתפוגה או לדילוג במגע. - משך ברירת המחדל של לחיצה ארוכה והקשה כפולה השתנה בשניהם
קלט מגע ועכבר כך שיתבסס על הערכים
InjectionScope.viewConfiguration
- הוספת את
- הטמעה של תפריט נפתח חשופים שמבוסס על תפריט נפתח של תיבת חשיפה למודעות עם TextField ותפריט נפתח בפנים (If60b2)
- השדה substituteOnOutsideClick נוסף ל-PopupProperties ומחליף אתclosureOnClickOutsideשיצא משימוש. המאפיין החדש מקבל את מיקום הקליק ואת גבולות העוגן, וכך מאפשר שליטה מדויקת יותר אם צריך להפעיל את onDismissRequest או לא. לדוגמה, האפשרות הזו יכולה להיות שימושית כדי למנוע את סגירת העוגן במקרה של נגיעות בעוגן.
- updateAndroidWindowManagerflags נוסף ל-PopupProperties, ומציע שליטה ברמה נמוכה על הדגלים שמועברים על ידי החלון הקופץ אל windowManager של Android. הפרמטר של lambda יהיה הדגלים המחושבים מהערכים של PopupProperties שיוצרות את הדגלים של windowManager: למשל. שניתן להתמקד בו. התוצאה של lambda תהיה הדגלים הסופיים שיועברו אל Android windowManager. כברירת מחדל, הדגלים שמחושבים מהפרמטרים לא ישתנו, updateAndroidWindowManagerדגs יש להשתמש ב-API הזה בזהירות, רק במקרים שבהם לחלון הקופץ יש דרישות התנהגות ספציפיות מאוד. (I6e9f9)
Recomposer.state
הוצא משימוש והוחלף ב-Recomposer.currentState
כדי לשנות את הסוג שלו ל-StateFlow (Ic2ab3, b/197773820)- הוספת את
flush()
ואתdispose()
אל "InjectionScope
". שימוש בהן כשרוצים לסיים באופן מיידי את כל האירועים שממתינים בתור שרוצים להשליך את ההיקף, בהתאמה. (Ifb73a) - בוצעה הוספה של
performScrollToNode(matcher: SemanticsMatcher)
גולל מאגר שניתן לגלול אל התוכן שתואם ניתנה לו התאמה. (Ic1cb8) InjectionScope
מיישמת עכשיו אתDensity
, מה שמאפשר לך להמיר בקלות בין px ו-dp ב-performTouchInput
או אצל חברים. (I8fe1f)
תיקוני באגים
- AndroidView מפיץ עכשיו את LocalLifecycleOwner וגם LocalSavedStateRegistryOwner לתצוגה דרך ViewTreeLifecycleOwner ו-ViewTreeSavedStateRegistryOwner. (I38f96, b/179708470)
- פתרון בעיות שקשורות ל-WearOS TapToDismissBox שלפעמים לא מטפלת בהחלקות. (I9387e)
- זמן ברירת המחדל בין אירועי קלט שהוחדרו היה השתנה מ-10 אלפיות השנייה ל-16 אלפיות שנייה. זה עשוי לשנות את תוצאות הבדיקות שמבצעות תנועות קלט, כמו החלקה ספציפית. (I829fd)
גרסה 1.1.0-alpha05
29 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha05
משוחרר. גרסה 1.1.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה תמיכה בתקשורת בין מגבילים (Id5467, b/198826874)
- מצביעים היסטוריים ניסיוניים נוספו ל-PointerEventChange. (Ic1fd8, b/197553056, b/199921305)
- הוספת את
density: Density
ואתlayoutDirection: LayoutDirection
אל "LayoutInfo
". הפעולה הזו מאפשרת לצרכנים שלLayoutInfo
כדי לפרש את המאפיינים ואת המיקום שנחשפים ב-LayoutInfo
כראוי. (I002f1) - נוספה תמיכה ניסיונית בהחדרת אירועים של עכבר. כדאי להשתמש
performMouseInput
כדי להתחיל לשלוח אירועים לגבי העכבר או לשלוח אירועים לגבי העכבר דרך המאפייןMouse
שלMultiModalInjectionScope
במהלך תנועת קלט מרובת מודלים באמצעותperformMultiModalInput
. צפייהMouseInjectionScope
למסמכי התיעוד של ה-API הזמין. (Iaa4a8, b/190493367)
תיקוני באגים
- תמיכת נגישות מתוקנת עבור דפים מתקפלים (גם ללא עצמאות) בנוגע לגלילה (I6cdb0)
- שיפרנו את
TouchInjectionScope.swipeWithVelocity
. זה עכשיו מקבל מגוון רחב יותר של משתני קלט ויציע שינויים קלט אם לא ניתן ליצור החלקה (I40fbe, b/182477143)
גרסה 1.1.0-alpha04
15 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha04
משוחרר. גרסה 1.1.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
- ל-
PointerEvent
יש עכשיוPointerEventType
כדי לתמוך באירועי העברת העכבר. (I091fa) - הילדים יכולים לקבל קלט של מצביע מחוץ ל- גבולות הקלט של המצביע של ההורה. ההורים יכולים ליירט אותן קריאות עם נכס PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
- הוצאו משימוש
performGesture
ו-GestureScope
, שכוללים הוחלף על ידיperformTouchInput
ו-TouchInjectionScope
. (Ia5f3f, b/190493367) - בוצעה הוספה של
touchBoundsInRoot
אלSemanticsNode
, כולל את הגודל המינימלי של משטח המגע, כדי שמפתחים יכול להבטיח שמשטחי מגע עומדים בדרישות המינימום בנושא נגישות. (I2e14b, b/197751214) - ביצוע מחדש של הטמעה של inspectable (I927bc, b/191017532)
- שם הפרמטר של המאפיין הזמני השתנה כך שיתאים לרכיב המורכב (I3a482, b/191017532)
הצגה של
performTouchInput
ושלTouchInjectionScope
בתור החלפה שלperformTouchInput
ו-TouchInjectionScope
, סלילת ובצורות אחרות (כמו עכבר).ל-
TouchInjectionScope
יש את אותן methods כמוGestureScope
, עם חריגים ל-movePointerTo
ול-movePointerBy
, שבהם השם החדש הואupdatePointerTo
ו-updatePointerBy
. כל שאר השיטות זהים.ההתנהגות של
TouchInjectionScope
כמעט זהה ל-GestureScope
, עם שני פרטים קטנים:- כששולחים אירוע למטה בזמן שהסמנים הועברו בלי
שולח אירוע העברה (במילים אחרות,
updatePointerTo()
כבר בשימוש, אבל לאmove()
, ואזdown()
נקרא), יקדם את זמן האירוע וישלח אירוע העברה לפני ששולחים את אירוע ההשבתה. ההטמעה החדשה עדיין שולחת את קובץ ה-CSV האירוע הועבר, אבל הוא לא מקדם את מועד האירוע במקרה הספציפי הזה במקרה הזה. - כששולחים אירוע למעלה בזמן שהסמנים הועברו בלי שליחת אירוע העברה (בדומה למעלה), ההטמעה הקודמת המודעה תקדם את זמן האירוע ותשלח אירוע העברה לפני שליחת אירוע חדש. היישום החדש לא כולל: המיקומים החדשים של המצביעים יבואו לידי ביטוי רק דרך האירוע למעלה.
לסיום,
TouchInjectionScope
מציג שיטה חדשהcurrentPosition(pointerId: Int)
כדי לקבל את המיקום הנוכחי של מצביע נתון. (If1191, b/190493367)- כששולחים אירוע למטה בזמן שהסמנים הועברו בלי
שולח אירוע העברה (במילים אחרות,
תיקוני באגים
- הקליפ יכול להרחיב את גבולות משטחי המגע אל מעבר אזור הקליפ למטרות משטח מגע מינימלי. (I43e10, b/171509422)
- במכשירי Android 12 נוספה תמיכה בגלילת יתר במתיחה. (Iccf3c, b/171682480)
גרסה 1.1.0-alpha03
1 בספטמבר 2021
androidx.compose.ui:ui-*:1.1.0-alpha03
משוחרר. גרסה 1.1.0-alpha03 מכילה את התחייבויות אלה.
תכונות חדשות
- הכתיבה
1.1.0-alpha03
עודכנה בהתאם ל-Kotlin1.5.30
. (I74545)
שינויים ב-API
- נוסף
Modifier.inspectable
כדי לעטוף את מקשי הצירוף האחרים. (I1909b, b/191017532) - נוסף API של
BlurredEdgeTreatment
כדי לטשטש תרחישים לדוגמה בצורה פשוטה יותר שילובים נפוצים של דגלים בקליפס ו-SlotModes. רוב התרחישים לדוגמה כוללים לאפשר רינדור של תוכן מטושטש מחוץ לגבולות התוכן המקורי ולטשטש אזורים מחוץ לגבולות האלה עם תוכן שחור שקוף אל גבולות התוכן דוגמים את הקצה הקרוב ביותר כדי לטשטש את הליבה שמעבר לתוכן גבולות. (I6b4b7, b/166927547) - נוספה תמיכה ב-Recommenderאיך בשולחן העבודה של הכתיבה. השיקו את OffsetOff וגם את מקש הטשטוש הוא דרך פשוטה הוספת אפקטים חזותיים לטשטוש בחלק של היררכיית ההרכב. (I0f6aa, b/166927547)
- שימוש ב-Render Effects API
שאפשר להגדיר
Modifier.graphicsLayer
לשינוי של השכבה עצמה. הזה יכול לשמש לטשטוש תוכן של תוכן קומפוזבילי וחומרים קומפוזביליים צאצאים בתוך יצירה מוזיקלית ההיררכיה. (I47c4d, b/166927547) - AwaitPointerEventScope כולל עכשיו withTimeout() ו-withTimeoutOrNull() (I507f0, b/179239764, b/182397793)
- גודל משטח המגע המינימלי נוסף ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע כדי להבטיח נגישות. (Ie861c)
- הוספת תמיכה ב-TIFFMode.Decal וזה שימושי להגדרת קצה להתנהגות של אפקט רינדור שמבוסס על טשטוש. (I7e8ed, b/166927547)
performScrollToIndex
,performScrollToKey
hasScrollToIndexAction
ו-hasScrollToKeyAction
הם עכשיו API יציב (I142ae, b/178483889)- נוספה שיטת בדיקה כדי לקבל גבולות חתוכים. (I6b28e)
תיקוני באגים
- השיטה 'הוסרה' הוסרה מ-BluredEdgeTreatment (טיפול בטשטוש) לטובת של בדיקה מפורשת אם הצורה ריק. (I85d68)
גרסה 1.1.0-alpha02
18 באוגוסט 2021
androidx.compose.ui:ui-*:1.1.0-alpha02
משוחרר. גרסה 1.1.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- ב-PointerEvent יש עכשיו תמיכה בקריאה מצב לחצן העכבר ומצב הצירוף של המקלדת. (I6310c, b/180075467)
- התנועות המוחדרות משתמשות כעת בזמן של MainTestClock
מקור האמת לזמן. השעה הנוכחית של אירועים שהוחדרו ב:
performGesture
יופעל לשעה הנוכחית MainTestClock. (Ifb364, b/192064452) - נוסף constructor של
DpRect(DpOffset, DpSize)
(I2cf16, b/194219828) - נוספה מחלקה DpSize (I7abb1, b/194219828)
תיקוני באגים
- קובץ XML מעודכן של Vector Graphics לניתוח לתמיכה ב-ColorStateLists בתור מאפייני גוון השורש ב-VectorDrawables. (I86915, b/195668138)
גרסה 1.1.0-alpha01
4 באוגוסט 2021
androidx.compose.ui:ui-*:1.1.0-alpha01
משוחרר. גרסה 1.1.0-alpha01 מכילה את התחייבויות אלה.
שינויים ב-API
RelocationRequester.bringIntoView
מקבל עכשיו מלבן כפרמטר שמאפשר לנו להציג חלק מתוכן קומפוזבילי לצפייה (Ice2c5, b/194330245)AnimatedImageVector
וממשקי ה-API הקשורים נמצאים עכשיו בממשק החדש מודולandroidx.compose.animation:animation-graphics
. I60873- נוסף מקש צירוף ניסיוני שמטפל בבקשות לשינוי מיקום. (I65a97, b/178211874)
שימוש ב-BrushPainter API לתמיכה בשרטוט של מברשת שרירותית בתוך צבע, בדומה ל-ColorPainter
עדכנו את Brush API לגודל פנימי פרמטר שנכלל בשאילתה ב-BrushPainter (Ia2752, b/189466433)
שיטת DrawScope#drawImage עודכנה שימוש בתשובות של מקור ויעד כדי לצרוך מסנן איכות אופציונלי הפרמטר. זה שימושי לפיקסלים אומנות שמיועדת להיות מפוקסלת כשהוא מותאם לגרפיקה מבוססת-פיקסלים. עודכן ב-BitmapPainter + תמונה קומפוזבילית כדי לצרוך גם מסנן איכות אופציונלי פרמטר (Ie4fb0, b/180311607)
השיטה
GestureScope.advanceEventTime
נוספה כדי לתת עוד שליטה בתזמון של אירועים בתנועה (Ibf3e2)
תיקוני באגים
- כדי לספק תמיכה טובה יותר בשרשור של
מגבילי שרטוט, יש לוודא שההטמעה של Modifier.Paint
שיחות pullsContent.
בעבר היה ציפייה מ-Modifier.Paint לצומת עלה ב-
עם זאת, שרשרת המגבילים
להגדיר אותו בקונטיינר קומפוזבילי (לדוגמה)
או להוסיף קישוטים מעל התמונה, כמו
Modifier.paint().border()
באמצעות Modifier.Paint קריאה ל-drawContent אחרי ציור התוכן של שלנו, יש לנו מודל עקביות התנהגותי טוב יותר עם תבנית הצירוף. (Ibb2a7, b/178201337, b/186213275) - מעכשיו תיבות דו-שיח עוקבות אחרי ההתנהגות של שינוי הגודל של הפלטפורמה. יש להגדיר את
usePlatformDefaultWidth
כ-False כדי לשנות את ההתנהגות הזו. (Iffaed, b/192682388) - הקובץ
InfiniteAnimationPolicy
הועבר אל :compose:ui (I5eb09, b/160602714) - אנימציה של גלילה באמצעות פעולות סמנטיקה ברשימות עצלות וברכיבי גלילה רגילה (Id9066, b/190742024)
גירסה 1.0
גרסה 1.0.5
3 בנובמבר 2021
androidx.compose.ui:ui-*:1.0.5
משוחרר. גרסה 1.0.5 כוללת את ההתחייבויות האלה.
תיקוני באגים
- תוקן מכונות של conversionStateOf למעקב אחרי קריסה. (aosp/1792247)
גרסה 1.0.4
13 באוקטובר 2021
androidx.compose.ui:ui-*:1.0.4
משוחרר. גרסה 1.0.4 כוללת את ההתחייבויות האלה.
עדכונים בנושא תלות
- עודכן לתלוי ב-Kotlin
1.5.31
גרסה 1.0.3
29 בספטמבר 2021
androidx.compose.ui:ui-*:1.0.3
משוחרר. גרסה 1.0.3 מכילה את ההתחייבויות האלה.
עדכונים בנושא תלות
- עודכן לתלוי ב-Kotlin
1.5.30
גרסה 1.0.2
1 בספטמבר 2021
androidx.compose.ui:ui-*:1.0.2
משוחרר. גרסה 1.0.2 כוללת את ההתחייבויות האלה.
עודכנה לתמיכה בגרסה 'כתיבה' 1.0.2
. הכתיבה 1.0.2
עדיין תואמת ל-Kotlin 1.5.21
.
גרסה 1.0.1
4 באוגוסט 2021
androidx.compose.ui:ui-*:1.0.1
משוחרר. גרסה 1.0.1 כוללת את ההתחייבויות האלה.
עדכונים בנושא תלות
- עודכן ל-Kotlin
1.5.21
גרסה 1.0.0
28 ביולי 2021
androidx.compose.ui:ui-*: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.ui:ui-*:1.0.0-rc02
משוחרר. גרסה 1.0.0-rc02 מכילה את ההתחייבויות האלה.
תיקוני באגים
- מעכשיו תיבות דו-שיח עוקבות אחרי ההתנהגות של שינוי הגודל של הפלטפורמה. יש להגדיר את
usePlatformDefaultWidth
כ-False כדי לשנות את ההתנהגות הזו. (Iffaed, b/192682388)
גרסה 1.0.0-rc01
1 ביולי 2021
androidx.compose.ui:ui-*:1.0.0-rc01
משוחרר. גרסה 1.0.0-rc01 מכילה את ההתחייבויות האלה.
תכונות חדשות
- פיצול מודול הכלים של ממשק המשתמש ל-
ui-tooling
ול-ui-tooling-preview
(Iefa28, b/190649014)
שינויים ב-API
- הוסרו
FocusManager#moveFocusIn
ו-FocusManager#moveFocusOut
ניסיוניים שהוצאו משימוש (I227d7, b/170154986, b/186567354, b/168510304) - לוח הציור תומך עכשיו בפרמטר contentDescription עבור נגישות. (Ib547c)
- השם של
useDefaultMaxWidth
ב-PopupProperties
שונה ל-usePlatformDefaultWidth
. (I05710) - מעכשיו אפשר להציג תיבות דו-שיח לכל רוחב המסך. (I83929, b/190810877)
- נוספה תמיכה ניסיונית עבור צבע HSV ו-HSL של משפטים יחידים, (Id7cf8, b/180731008)
שינויים בהתנהגות
- כתיבת
@Preview
מספקת עכשיוLocalActivityResultRegistryOwner
שמאפשר לך כדי לראות תצוגה מקדימה של תכנים קומפוזביליים שמשתמשים בממשקי API כמוrememberLauncherForActivityResult()
שתלויות של הבעלים הקיימים. (Ib13d1, b/185693006) - כתיבת
@Preview
מספקת עכשיוLocalOnBackPressedDispatcherOwner
שמאפשר לך כדי לראות תצוגה מקדימה של תכנים קומפוזביליים שמשתמשים בממשקי API כמוBackHandler
שתלויות בבעלים הקיים. (Ia1c05, b/185693006)
תיקוני באגים
- הטווח
InfiniteAnimationPolicy
הועבר אלandroidx.compose.ui:ui
(I5eb09, b/160602714) - MoviesImageVector הוסר באופן זמני כדי לשנות את מבנה המודול. (I41906, b/160602714)
גרסה 1.0.0-beta09
16 ביוני 2021
androidx.compose.ui:ui-*:1.0.0-beta09
משוחרר. גרסה 1.0.0-beta09 מכילה את התחייבויות אלה.
שינויים ב-API
- שינוי התפקיד 'טיפוסים בני מנייה (enum)' ו-LiveRegionMode למחלקות מוטבעות עם Private constructor (Id1890)
- שימוש באותיות רישיות מומר למחלקה בתוך השורה. (Id5a1c)
- משנים את HapticFeedbackType למחלקה בתוך השורה. (I255ec)
- Modifier.pointerInteropFilter הוא @trialComposeUiApi. (Iede6c)
- Textיישור, FontSynthesis ו-TextDirection גם בתוך השורה הסוגים. (I212fe)
- TextOverflow משתנה למחלקה מוטבעת. (I433af)
- עכשיו FontStyle הוא מחלקה מוטבעת. (I9e48b)
תיקוני באגים
- קבועי מפתח הם @trialComposeUiApi בשלב זה. צריכה קוד יכול להצהיר על קבועים פרטיים לפני ייצוב. (Ia5d48)
- עכשיו אפשר להריץ בדיקות פיתוח ב-Robolectric. הבאים
עד כה זוהו מגבלות:
- אין מפת סיביות מקורית, לכן
ImageBitmap()
מוביל NullPointer וכל החריגים. - אין שרטוט, לכן האפליקציה
captureToImage()
תמתין ללא הגבלת זמן מעבר המשיכה הבא (כלומר הוא ננעל במנעול). - לא נטען גופן, כך שטקסט כלשהו יימדד בצורה שגויה. הכול לתווים יש גובה קבוע של כ-20 פיקסלים וברוחב של 1 פיקסלים.
- ה-thread הראשי לא מופעל על ידי
ComposeTestRule.waitUntil {}
בזמן ההמתנה, ולכן הוא זהה לזה שלComposeTestRule.mainClock.advanceTimeUntil {}
אנחנו צפויים לזהות מגבלות נוספות בעתיד. (I284fa)
- אין מפת סיביות מקורית, לכן
הוספת כללים לפרופילים
הגרסה הזו מוסיפה כללי פרופיל למודולים הבאים של כתיבה (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.ui:ui-*:1.0.0-beta08
משוחרר. גרסה 1.0.0-beta08 כוללת את ההתחייבויות האלה.
שינויים ב-API
NestedScrollSource
enum מוחלף במחלקה מוטבעת. (Ie321b, b/187055290)- השם של
FocusManager.clearFocus(forcedClear = true)
השתנה ל-FocusManager.clearFocus(force = true)
(Ia0c41) - ארגון מחדש של השימושים ב-enum במחלקות מוטבעות כדי להימנע עם הצהרות ממצות נוספו ערכי enum חדשים. (I2b5eb)
- הסרה של
@ExperimentalComposeUiApi
מהחשבוןPopupProperties
. (I01fa6) - הערך
PointerType
השתנה מ-enum למחלקה בתוך השורה (If5058) - מאפייני ContentDescription ו-Text סמנטיקה כבר לא זמינים ערכים בודדים, אלא רשימות. כך אפשר למזג אותם כפי שהם במקום זאת של שרשורי מחרוזות. סופקו גם ממשקי API טובים יותר לבדיקה כדי להשתמש שינויים (Ica6bf, b/184825850)
- השדה
Modifier.focusModifier()
הוצא משימוש והוחלף ב-Modifier.focusTarget()
(I6c860) Modifier.onSizeChanged()
ו-Modifier.onGloballyPositioned()
כבר לא בתוך פונקציות בתוך השורה (I727f6, b/186109675)KeyboardType
enum מוחלף במחלקה מוטבעת. (I73045, b/187055290)FocusState
enum הוחלף בממשק עםFocusState
(Iccc1a, b/187055290)- ImeAction enum מוחלף במחלקה מוטבעת. (I18be5, b/187055290)
- המערכת ממירה את
PlaceholderVerticalAlign
למחלקה בתוך השורה. (If6290) - TextUnitType היא עכשיו מחלקה בתוך השורה. (I4cba9)
- הפונקציות של
AnnotatedString.withAnnotation
הן עכשיו trialTextApi במקום trialComposeApi. (I0cd0a)- constructor של TextUnit עם TextUnitType נקרא עכשיו trialTextApi במקום trialComposeApi.
תיקוני באגים
- תוקן הבאג שנוסף בגרסת בטא 07, שבו פריטים ב-LazyColumn/Row הוצגו באופן חלקי אחרי הגלילה (I8c9ac, b/188566058)
- עכשיו
detectDragGesures
,detectVerticalGestures
ו-detectHorizontalGestures
ישתמשו בשינוי המיקום באופן אוטומטי, ללא צורך בקריאה לשנות.consumePositionChange בקריאות החוזרות של onDrag (I42fc4, b/185096350, b/187320697) - תוקנו LayoutModififiers שמאפשרים קווי יישור. תיקנו באג שגרם לא למדידה מחדש של ההורה כשקווי היישור של הילדים השתנו. (I4401f, b/174315652)
- הערך
Modifier.onGloballyPositioned()
השתנה כדי לדווח על הקואורדינטות של הצירוף הזה בשרשרת הצירוף, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המשנים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591)
גרסה 1.0.0-beta07
18 במאי 2021
androidx.compose.ui:ui-*:1.0.0-beta07
משוחרר. גרסה 1.0.0-beta07 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף ממשק
ViewRootForInspector
לשימוש בכלי הבדיקה (Ib70df) - ב-
SubcomposeLayoutState
יש עכשיו תמיכה בהגדרה של מספר המשבצות לשימוש חוזר. הפריסה תשמור עד לספירה הזו של משבצות הפרסום במצב פעיל, במקום להשליך אותן כדי לעשות שימוש חוזר במשבצת הזאת בפעם הבאה שנזדקק למשבצת חדשה (Ieb981) - KeyEventType enum מוחלף במחלקה מוטבעת. (Id670a, b/187055290)
FocusDirection
enum מוחלף במחלקה מוטבעת. (Ib6d03, b/187055290, b/184086802)- מאפשרת להעלות את מצב SubcomposeLayout (פריסת משנה) כך שיאפשר לכם להכין מראש את התוכן לפרמטר מחייב slotId, שיקרה את המעבר של המדד הבא מהר יותר, כי בפעם הבאה שננסה להכניע את ערך ה-lotId הנתון, לא יהיה צורך ליצור הרכבה. (I42580, b/184940225)
- נוספה נקודת אחיזה לבחירת קליפ (Iff80d, b/183408447)
- הוסרו ממשקי API שלא נמצאים בשימוש שקשורים לתמיכה של LayoutInspector. (I2ac78)
תיקוני באגים
- בשלב הזה, עד 2 פריטים שהיו פעילים בעבר יופיעו ב-LazyColumn/Line, גם אם הם נגללו כלפי מטה. כך הרכיב יכול לעשות שימוש חוזר בהרכבות המשנה הפעילות במקרה שנצטרך להרכיב פריט חדש, וכך תשפר את ביצועי הגלילה. Ie5555
TextGeomerticTransform
ו-TextDecoration
ב-AnnotatedString
ייושם באופן הנתון. (I61900, b/184760917)
גרסה 1.0.0-beta06
5 במאי 2021
androidx.compose.ui:ui-*:1.0.0-beta06
משוחרר. גרסה 1.0.0-בטא06 מכילה את ההתחייבויות האלה.
שינויים ב-API
- פתרון התנגשות עם תנועת ניווט (I1145e)
@ComposeCompilerApi
כבר לא@RequiresOptIn
(Iab690)- נוספו ממשקי API לנגישות ב-CollectionInfo וב-CollectionItemInfo, שמאפשרים לסמן את האוסף והפריטים שלו לשירותי נגישות (Id54ef, b/180479017)
- הוספת את
SemanticsActions.ScrollToIndex
כדי לגלול רשימה עם של פריטים שנוספו לאינדקס לפריט עם אינדקס מסוים, וגםSemanticsProperties.IndexForKey
כדי לקבל את האינדקס של פריט ברשימה עם פריטים שמקודדים לפי הקוד. שתי הפעולות מוטמעות על ידי LazyList.- בוצעה הוספה של
SemanticsNodeInteraction.performScrollToIndex
גולל רשימה לאינדקס הנתון,SemanticsNodeInteraction.performScrollToKey
שגולל רשימה אל עם המפתח הנתון. (I4fe63, b/178483889, b/161584524)
- בוצעה הוספה של
- נוסף ownerViewId אל GraphicLayerInfo (I19f62)
- נוספו עומסי יתר של Font() כדי לטעון גופנים מנכסים, מ-File ומ-FileDescriptor (I5d382)
- נוסף ממשק API לנגישות
error
שמאפשר לסמן צומת שמכיל קלט לא חוקי (I12997, b/180584804, b/182142737) - נוספו
Font()
עומסי יתר לטעינת גופנים מנכסים, מקובץ ומ-FileDescriptor (I43007) - התמיכה בשמירת הערות ב-AnnotatedString
TextFieldValue.Saver
הכתובתaddTtsAnnotation
התווספה והפונקציות של כלי העזר ל-AnnotationAnnotatedString.Builder
(I8cbdc, b/178446304) - נוספה פונקציה constructor של TextUnit
TextUnit(value: Float, type: TextUnitType)
(I7ecce, b/178446304)
גרסה 1.0.0-beta05
21 באפריל 2021
androidx.compose.ui:ui-*:1.0.0-beta05
משוחרר. גרסה 1.0.0-beta05 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספו
FocusManager.moveFocus(In)
ו-FocusManager.moveFocus(Out)
ניסיוניים (Ic5534, b/183746743) - נוסף ממשק API ניסיוני של
performTextInputSelection
(I2dcbb, b/178510628) - הממשק
InputEventCallback
הוצא משימוש. לא הייתה אפשרות להשתמש בממשק ממשק API ציבורי; ולא היה שימוש בו (I34a02, b/184003208) - הוצא משימוש
TextLayoutResult/createTextLayoutResult
מותאמת אישית. זהו פונקציה ציבורית שלא בשימוש שנוסף לבדיקה. הפונקציה לא עושה שום דבר שאפשר להשתמש בו כתיבת ממשקי API של טקסט. הפונקציה הוצאה משימוש עכשיו יוסר מאוחר יותר. I80413
תיקוני באגים
- תוקן
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.ui:ui-*:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 מכילה את התחייבויות אלה.
שינויים ב-API
- שינוי השם של
hideSoftwareKeyboard
ושלshowSoftwareKeyboard
בתאריךSoftwareKeyboardController
עדhide()
ו-show()
בהתאמה.- יש לספק את הממשק המלא של CompositionLocal עבור Local SoftwareKeyboardController, שמאפשר להגדיר אותו (במיוחד שימושי בבדיקות) (I579a6)
- ממשק ה-API לנגישות של אזור LiveRegion נוסף. אם הצומת מסומן כאזור פעיל, שירותי הנגישות יודיע למשתמש באופן אוטומטי על השינויים (Idcf6f, b/172590946)
- הטקסט של TextOverflow.visible מוצג. (Ic8f89)
תיקוני באגים
- תוקנה הבעיה כשפריטים של
LazyColumn
/LazyRow
ממוקמים בקצוות באופן שגוי אחרי הנפילה מהירה (Ie4d13, b/183877420) AndroidViewBinding
מסירה עכשיו כראוי ניפוח של מקטעים דרךFragmentContainerView
כאשרAndroidViewBinding
יוסר מרשימת הכתיבה ההיררכיה. (Ib0248, b/179915946)- עכשיו
AndroidViewBinding
מקונן כמו שצריך ניפוח של מקטעים דרךFragmentContainerView
כאשר הComposeView
שלך נמצא בטווח שלFragment
, תיקון לבעיות בשמירה ושחזור של המצבים האלה של קטעים שונים. (I70eb0, b/179915946) - מעכשיו, יצירת קישור ViewBinding תלויה
מקטע
1.3.2
ועכשיו מציג באופן עקבי מקטעים שהונפחו דרךFragmentContainerView
לאחר השינויים בהגדרות האישיות. (I0743d, b/179915946)
גרסה 1.0.0-beta03
24 במרץ 2021
androidx.compose.ui:ui-*:1.0.0-beta03
משוחרר. גרסה 1.0.0-beta03 מכילה את התחייבויות אלה.
שינויים ב-API
- בדיקה דחופה של יחסי תלות של ViewTree ב-ComposeView (I8dbbf, b/182466548)
- נוספו פרמטרים אופציונליים
startX
/endX
ו-startY
/endY
לפונקציותswipeUp
/swipeDown
/swipeLeft
/swipeRight
ב-GestureScope
. (I49e2d, b/182063305)
גרסה 1.0.0-beta02
10 במרץ 2021
androidx.compose.ui:ui-*:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את התחייבויות אלה.
שינויים ב-API
- נוספה יצירה מקומית חדשה של
LocalSoftwareKeyboardController
צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I5951e, b/168778053) - נוספה יצירה מקומית חדשה של
LocalSoftwareKeyboardController
צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I84472, b/168778053) - הסרת את ה
SemanticsMatcher
הבאים:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- סומן
SemanticsMatchers
הבא בתור @trialTestApi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600c)
- הוספת את ה
SemanticsMatcher
הבאות:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2f502)
תיקוני באגים
- לאכוף הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, b/174531520)
- הפונקציה
androidx.compose.ui:ui
לא תלויה יותר ב-AppCompat או ב-Fragment. אם אתם משתמשים ב-ComposeView באפליקציה ואתם משתמשים ב-Fragment ו/או ב-AppCompat, צריך לוודא שאתם משתמשים ב-AppCompat 1.3+ / Fragment 1.3 ואילך – הגרסאות האלה נדרשות כדי להגדיר בצורה נכונה מחזור חיים ובעלים של מצבים שמורים שנדרשים ל-ComposeView. (I1d6fa, b/161814404) - יש לתקן בעיות של
rememberSaveable { mutableStateOf(0) }
כשנעשה שימוש ביעד של כתיבת ניווט. (I1312b, b/180042685, b/180701630) - נוספה יצירה מקומית חדשה של
LocalSoftwareKeyboardController
צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I658b6, b/168778053) - תוקנו חריגות NoSuchElement חריגות נדירות ב-
ComposeRootRegistry
tearDownRegistry()
(Iddce1)
גרסה 1.0.0-beta01
24 בפברואר 2021
androidx.compose.ui:ui-*:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 מכילה את התחייבויות אלה.
זוהי הגרסה הראשונה של גרסת הבטא של 'פיתוח נייטיב' 1.0.0.
שינויים ב-API
- onStart callback נוסף אל
detectDragGestures
(I67269, b/179995594) - מגבילי התאמה של הגודל לפי גורמים פנימיים כבר לא ניסיוניים. (I15744)
- השם של 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)
- הוספת ממשק של AccessibilityMananger LocalAccessibilityMananger in CompositionLocals (I53520)
- הוסרו שיטות LayoutCoordinates שהוצאו משימוש, יש להשתמש בפונקציה במקום במאפיין עבור positionInParent ו-boundsInParent (I580ed, b/169874631, b/175142755)
- טיפוסים שהוחלפו בסוגים בסיסיים:
-
ColorStop
נקרא עכשיוPair<Float, Color>
SpanStyleRange
הוא עכשיו 'AnnotatedString.Range-
ParagraphStyleRange
נקרא עכשיוAnnotatedString.Range<ParagraphStyle>
-
StringAnnotation
נקרא עכשיוAnnotatedString.Range<String>
- (I8dd1a)
-
- נוצרה TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה כמו CoreTextField. (I8817f, b/177662148)
- עכשיו ניתן לראות את הערך של המדד 'מודד', שמייצג את הגודל שאליו נמדדה פריסת הצאצא. יכול להיות שהגודל הזה לא יתאים למגבלות המדידה. (Ib2729, b/172560206, b/172338608)
- הוספת מגביל SelectGroup שמאפשר לסמן איסוף של כרטיסיות או לחצני רדיו למטרות נגישות (Ie5c29)
defaultFactory
שלcompositionLocalOf
וגם השדהstaticCompositionLocalOf
נדרש עכשיו במקום אופציונלי.בעקבות השינוי הזה, תהיה שגיאה מסוג 'סוג אפשרי' במקרה של ערך שאינו null סוגים שלא צוין בהם הגדרות יצרן בברירת מחדל. הפריט הקודם תספק הפניה null עבור סוג שאינו ערך null.
עבור סוגים שאינם יכולים להיות בעלי ערך null, מומלץ לציין את
{ null }
כברירת המחדל במפעל.אנחנו לא ממליצים להשתמש בתושבים מקומיים עם סוגים שאינם ערכי null, אלא אם אפשר לספק ברירת מחדל הגיונית. אם לא קיימת ברירת מחדל הגיונית, ה-lambda של
defaultFactory
אמור לגרום לחריגה. אבל גורם חריג פירושו שהצרכנים המקומיים תלות מרומזת בהינתן שלא נאכפת. לפי מערכת הסוגים. (Ifbd2a)הוסרו שיטות שהוצאו משימוש ממודולים של ממשק משתמש (I646f6)
השמות של ערכי הצירוף של הגודל השתנו. השם של Modifier.width/height/size שונה ל-requiredwidth/requiredHeight/requiredSize. השם של Modifier.Preferredwidth/PreferredHeight/PreferredSize השתנה ל-'width/height/size'. (I5b414)
Modifier.tapGestureFilter
הוסר. במקומה צריך להשתמש במדיניותModifier.pointerInput { detectTapGestures(...) }
. (I266ed, b/175294473)הוסרה צריכה חלקית ממערכת הקלט של המצביע. הדרך המומלצת לתיאום צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)
הכיוון הועבר לחבילת הבסיס. VelocirtTracker עבר מ-ui.gesture ל-ui.input.pointer. (Iff4a8, b/175294473)
imageResource ו-VectorResource הם עכשיו פונקציות תוסף ב-ImageBitmap ו-ImageVector במודעות נלוות, בהתאמה.
load{Image,Vector,Font}Resource
פונקציות נמחקו. (I89130)AnimationClockObservable וכיתות המשנה כבר הוסר. האנימציה הוסרה. (Icde52, b/177457083)
השם 'ספקים' השתנה ל-CompositionLocalProvider
- ה-Composition constructor לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
- השדה currentCompositeKeyHash הפך לנכס קומפוזבילי ברמה העליונה במקום לפונקציה קומפוזבילית ברמה העליונה.
- CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- ComposableLambda נוצרה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הגרסה ComposableLambdaN הפכה לממשק במקום למחלקה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה SnapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של snapshotMutationPolicy כבר לא ניסיונית
- הפונקציה @TestOnly ברמה העליונה clearRoots הוסרה. אין בו יותר צורך.
- הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. הם כבר לא נחוצים.
- השדה Composer.collectKeySourceInformation הוסר. אין בו יותר צורך.
- השיטות isjoinedKey, {1}joinKeyLeft ו-joinKeyRight הוסרו. הם כבר לא נחוצים.
- ממשקי API שונים ברמה העליונה הועברו וארגנו מחדש בקבצים שונים. בגלל הסמנטיקה של מחלקות הקבצים של Kotlin, זה פוגע בתאימות בינארית אבל לא בתאימות מקורות, ולכן לא אמורה להיות בעיה עבור רוב המשתמשים.
- (I99b7d, b/177245490)
בוצעה הסרה של
ComponentActivity.setContent()
מ-Compose:ui. יש להשתמש בשובר שלandroidx.activity:activity-compose:1.3.0-alpha01
.viewModel()
ו-LocalViewModelStoreOwner
הוסרו מ-Compose:ui. יש להשתמש באלה שלandroidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b)הפעולה של Modifier.scrollable בוצעה מחדש. עכשיו הוא משתמש בממשק שניתן לגלול במקום במחלקה ScrollableController (I4f5a5, b/174485541, b/175294473)
התמיכה של CustomEvens מ-PointerInputModifier הוסרה (I02707, b/175294473)
snapshotStateObserver כבר לא ניסיוני (Id2e6a)
נמחקו כמה ממשקי API שהוצאו בעבר משימוש (Ice5da, b/178633932)
: longClickmotionFilter ו-doubleClickGestureFilter הוסרו. אפשר להשתמש ב-Modifier.pointerInput עם פונקציות מסייעות, למשל,DetecttapGestures (I2ifiedf, b/175294473)
ממשק ה-API של String.format הוסר סיווגים מחדש של שימושים שיטות toString שאינו ממנף String.format באופן פנימי. (Id1290)
טענות נכוֹנוּת (assertions) של dp הוסרו (I798d2)
הוסר androidx.compose.runtime:runtime-dispatch (I55feb)
פעולות טקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, b/179648629)
הוסר
runBlockingWithManualClock
(I15cdc, b/179664814)המיקום של הגלילה ב-Modifier.verticalScroll()/verticalScroll() מיוצג באמצעות Ints עכשיו (I81298)
השם של FlingConfig השתנה ל-FliingBehavior, שמאפשר עכשיו להתאים אישית אנימציית השעיה במקום להגדיר מראש 'דעיכה'. (I02b86, b/175294473)
נוספה פונקציית עזר שמועילה להגדיר את אותה הפעולה לכל הקריאות החוזרות של ImeAction (I63447, b/179226323)
הוסרה קריאה חוזרת (callback) של Software KeyboardController מכל הטקסט השדות האלה יוחלפו בקרוב ב-API חדש. (Iae869, b/168778053)
השימוש ב-FontSpan וב-FontWeigthStyleSpan הופסק. (Ie5b56, b/177423444)
בוצעו השינויים הבאים ב-Material API:
- נוסף פרמטר contentPuter ל-Top/BottomAppBar כדי לאפשר התאמה אישית של המרווח הפנימי שמוגדר כברירת מחדל.
- סדר הפרמטרים של BackdropScaffold תואם להנחיות ה-API כאשר הפרמטרים הנדרשים מופיעים לפני פרמטרים אופציונליים.
- הפרמטר
icon
הועבר ב-BottomNavigationItem אל אחריselected
ו-onClick
. - השם של הפרמטר
alwaysShowLabels
השתנה ב-BottomNavigationItem ל-alwaysShowLabel
. - שינית את השם של הפרמטרים
bodyContent
בכמה רכיבים ל-content
בלבד. - הפרמטרים הוסדרו מחדש ב-
ButtonDefaults.buttonColors()
. לתשומת ליבכם: מכיוון שסוג הפרמטרים לא השתנה, לא תהיה שגיאה בקוד. עליכם לוודא שאתם משתמשים בפרמטרים בעלי שם או לעדכן את הסדר באופן ידני, אחרת הקוד לא יפעל כמו קודם. - הפרמטר
secondaryVariant
נוסף אלdarkColors()
. הצבע הזה בדרך כלל זהה ל-secondary
בעיצוב כהה, אבל הוא מתווסף לעקביות ולהתאמה אישית נוספת. - הוסרו הקיצורים HeightionDefaults ו-animate יוצגו() מפלטפורמת ה-API הציבורית כי הם לא היו שימושיים או נפוצים.
- השם של
onValueChangeEnd
שונה ב-Slider
ל-onValueChangeFinished
ולכן השם הוא null. - השם של הפרמטר
text
השתנה בתאSnackbar
ל-content
לצורך עקביות. - הפרמטר
contentPadding
נוסף אלDropdownMenuItem
כדי לאפשר התאמה אישית של המרווח הפנימי שמוגדר כברירת מחדל ויצר אתcontent
כתוסף ב-RowScope
. - השם של
ModalDrawerLayout
השתנה. השם החדש הואModalDrawer
. - השם של
BottomDrawerLayout
השתנה. השם החדש הואBottomDrawer
. - (I1cc66)
תיקוני באגים
- נוסף API כדי להשתמש במשאבים של מונפש VectorDrawable בכתיבה. כדאי להשתמש
animatedVectorResource כדי לטעון קובץ XML מסוג
<animated-vector>
כ-][=ImageVector ולהוסיף לו אנימציה with PainterFor (I8ea91) - נוספה יצירה מקומית חדשה של Local SoftwareKeyboardController צריך להפעיל את ה-API כדי להחליף את הממשק הקודם של SoftwareCategoryController TextField (שדה טקסט). (I658b6, b/168778053)
גרסה 1.0.0-alpha12
10 בפברואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha12
משוחרר. גרסה 1.0.0-alpha12 מכילה את התחייבויות אלה.
שינויים ב-API
- התמיכה ב-ViewGroups הוסרה מ-UiApplier. התכנים הקומפוזביליים של emitView שהוצאו משימוש הוסרו. (Ifb214)
- מעכשיו, Modifier.pointerInput דורש שימוש במקשי זיכרון כדי לציין כשהקורוטין של זיהוי קלט הסמן צריך להתחיל מחדש של יחסי התלות. (I849cd)
- השם של CompositionReference השתנה ל-CompositionContext (I53fcb)
- שם הגבולות השתנה ל-DpRect (I4b32a)
- עדכון בדיקה: hasText() יבדוק גם טקסט של קלט וגם טקסט של תווית/הרמז/placeholder בשדה הטקסט (Iab803)
- הפריטים הקומפוזביליים של viewModel() ו-LocalViewModelStoreOwner הועברו אל androidx.lifecycle.viewmodel.compose. עכשיו צריך להוסיף תלות נפרדת של androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 כדי להשתמש בה. (I7a374)
- הרשאה לביצוע פעולה null ב-AccessibilityAction, שינוי הפעולה התווית ב-AccessibilityAction וב-CustomAccessibilityAction, ב- CharSequence to String (I0dc82)
- כדי שהשמות יהיו זהים יותר מוסכמות עם ImageBitmap ו-ImageVector, השם של ImagePainter השתנה ל-BitmapPainter מקביל ל-VectorPainter. (Iba381, b/174565889)
- ממשקי API טובים יותר לבדיקה של מחרוזות משנה עם מחרוזת משנה עכשיו כארגומנט (Icbe78)
- נוסף
Modifier.focusOrder()
מקבל FocusRequester בלי לציין lambda בהתאמה אישית. זה מועיל כשצריך רק לציין אבל לא סדר מיקוד מותאם אישית לתוכן קומפוזבילי (I4f52a, b/179180978) - ElementActivity.setContent עבר אל androidx.activity.compose.setContent androidx.activity:activity-composition. (Icf416)
- שיטות השמדה ו-Copy() הוסרו מ- מחלקות שבהן נעשה שימוש רק לעיתים רחוקות. (I26702, b/178659281)
- החלון הקופץ הועבר כך שיהיה ספציפי לפלטפורמה. השם של AndroidPopupProperties השתנה ל-PopupProperties, והפרמטר
isFocusable
הועבר לפרמטרfocusable
ב-PopupProperties
(Ieeea5) - תיבת הדו-שיח הועברה להיות ספציפית לפלטפורמה. השם של AndroidDialogProperties השתנה ל-DialogProperties. (I4ef69, b/179138130)
- Made LayoutNode פנימי (I8a7b1, b/175103944)
- הפונקציה Constraints.enforce הוחלפה ב-Constraints.constrain (I8b8ea)
- הפרמטר loadFontResource הוצא משימוש. במקומו צריך להשתמש ב-fontResource. imageResource , loadImageResource , vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב- PainterResource. (I6b809)
- מטעמי ביצועים, הסמנטיקה של ScrollAxisRange לוקחת עכשיו lambdas מחזירה Floats במקום ערכי Float ישירים. (If4a35, b/178657186)
- נוספה סמנטיקה של EditableText כדי לסמן את הטקסט שהוזן בשדה הטקסט כקלט שניתן לעריכה, לבדיקת נגישות ושיטות בדיקה תואמות (I8e07a)
- Made ownerLayer/OwnerScope/OwnerSnapshotObserver פנימי (I4ffaf, b/175103944)
- השם של toIntPx() השתנה ל-roundToPx(). (I9b7e4, b/173502290)
- השם של IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
- תמונת המצב של ה-API עודכנה כדי להיות עקבית יותר עם הנחיות ל-API וגם הסתרת סיווגי הטמעה פנימיים מה-API הציבורי. (Id9e32)
- נוספו פעולות הרחבה וכיווץ של סמנטיקה. תאריך ההוספה הרחב וHalfExpand in ModalBottomSheetState (Ib5064)
- ה-Modifier.dragmotionFilter הוצא משימוש. במקומה צריך להשתמש במדיניות
Modifier.pointerInput { detectDragGestures (...)}
. לחלופין, אפשר להשתמש ב-Modifier.draggable לגרירה בציר אחד (I0ba93, b/175294473) - שינית את השם של 'סביבה' כך שיתאים לאווירה -> שינוי שם של CompositionLocal. לסביבה (I2d55d)
- BaseTextField, שהוצא משימוש, הוסר עכשיו. במקומו צריך להשתמש ב-BasicTextField. (I71368)
- הבחירה הועברה לבסיס. (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)
- השירותים
emptyContent()
ו-(@Composable () -> Unit).orEmpty()
הוצאו משימוש כי אין להם יותר השפעה חיובית על הביצועים (I0484d) snapshotFlow
ו-withMutableSnapshot
כבר לא ניסיוני (I6a45f)- עכשיו אפשר לסגור את היוצרים מחדש. אחרי שיוצרים מקבצים סגורים להמשיך את ההרכבה מחדש עד להשלמת קורוטין צאצאים. השם של Recomposer.shutDown השתנה כדי לבטל, כדי ליצור ניגודיות ביחס לסגירה. (Ib6d76)
- השם של UiSavedStateRegistry השתנה ל-SaveableStateRegistry, השם של AmbientUiSavedStateRegistry השתנה ל-AmbientSaveableStateRegistry ושניהם הועברו לחבילה androidx.compose.runtime.saveable. (I30224)
- השם של 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)
- Outline.* כבר לא סיווגי נתונים (I4879e, b/178001427)
- בוצעה הסרה של
view.captureToImage()
ללא החלפה. (I7fcd2) - שימוש ב-ColorMatrix API כדי לשנות את ערכי RGB של תוכן המקור Refactored ColorFilter API להיות ולהתאים להטמעה של PathImpact. Ica1e8
- מוסיפים את הפרמטרDeployDirection אל Form CreateOutline (יצירה של Outline). כך ניתן ליצור צורות בפריסה עם התייחסות לכיוון. (I57c20, b/152756983)
- onImeActionPerformed הוצא משימוש. להשתמש ב- KeyboardActions במקום זאת (If0bbd, b/179071523)
- הוספת הקשר קורוטין ל
InfiniteAnimationPolicy
רכיב שהוחל באנימציות אינסופיות. כברירת מחדל לא מותקנת, מלבד כאשר מריצים בדיקות באמצעותComposeTestRule
. (I50ec4, b/151940543) - CanDrag הוסר מה-Modifier.scrollable. (Id66e7, b/175294473)
- השם של LayoutLayouts.parentCoordinates שונה ל- Layouts.parentLayoutCoordinates לאפשר יצירה של הורה Coordinates. הנכס הורה Coordinates מציע עכשיו את LayoutCoordintes של מגביל ההורה. הפעולה הזו תגרור ליצור תרחישים מלאים יותר של onSizeChanged() onGloballyPositioned() (Idfbfd, b/177926591)
- הוצאנו משימוש את הפרמטר TapתנועותFilter, doubleמקישיםGestureFilter, long, ClicktionFilter ו-pressIndicaitonGestureFilter. במקום זאת, אפשר להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה generateמקישים TalkBack. (I6baf9, b/175294473)
- ה-unregisterProvider של SaveableStateRegistry הוסר. במקום SubscribeProvider() מחזיר אובייקט של SaveableStateRegistry.Entry, שאפשר להשתמש בו כדי לבטל את הרישום (Ic4274, b/178583739)
- השם של ReSavedInstanceState() השתנה ל-GeminiSaveable() והועבר אל החבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)
- הוסרו CoreText ו-CoreTextField מ-API ציבורי
- הוסר עומס יתר של SelectionContainer שהוצאה משימוש
- (I99c19)
- בדיקות שבהן 'כתיבה' משמש בהיררכיות שנוספו/הוסרו ישירות אל windowManager יותר יציבות. (Ie81ed, b/175765614)
- הוסרה Recomposer.current(). [Abstract]ComposeView עכשיו כברירת מחדל של Recomposers שנוצרו באופן עצלני, ברמת החלון, המבוססים על ViewTreeLifecycleOwner לחלון. הרכב מחדש ו סימוני האנימציה המבוססים על withFrameNanos מושהים במהלך מחזור החיים של המארח הופסק. (I38e11)
- ב-Recomposer.runningRecomposers יש עכשיו גרסה גלובלית של StateFlow של RecomposerInfo לקריאה בלבד לצורך צפייה במצב הרכב מתמשך את התהליך. יש לתת עדיפות ל-API הזה על פני Recomposer.current(), שעכשיו הוצא משימוש. (If8ebe)
- בוצעה שמירה, listSaver(), mapSaver(), autoSaver הועבר מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)
- פקודות EditCommands משתמשות ב-AnnotatedString. אבל זאת שינוי בממשק API בלבד ועריכה של טקסט במגוון סגנונות לא עדיין לא הוטמעו. (I4c3ea)
- זמן הפעולה התקינה ומשך הזמן הוסרו. (Ib9bf4, b/177420019)
- CompositionData.asTree() וממשקי API קשורים הועברו להפרדת מודול הנתונים ui-tooling-data ומסומן כניסיוני (Ic95b8)
- השמות של פרמטרים ב- RounderCornerForm , CutCornerForm ו-Corner להביעצורה השתנו משמאל/ימין להתחלה/לסיום, כדי לתמוך בשיקוף האוטומטי של הצורה בכיוון rtl. התחלנו להשתמש ב-AbsoluteRounderCornersha וב-AbsoluteCutCornerForm במקרים שבהם אין צורך בשיקוף אוטומטי. (I61040, b/152756983)
ה-API שאליו מיועד הפלאגין של המהדר לכתיבה עבר ארגון מחדש לשימוש בממשק וגם סיווג קונקרטי. הממשק גם כבר לא משתמש פרמטר של סוג.
זהו שינוי פנימי שלא אמור להשפיע על המקור תאימות לקוד, אבל היא שינוי בינארי שעלול לגרום לכשל. (I3b922, b/169406779)
הסרה של פונקציית StringBuilder.deleteAt ציבורית בטעות (Id6ed9)
תיקוני באגים
- תצוגות מורכבות שמוצבות בהיררכיות תצוגה שהן צאצאים של ביצירה אחרת מתארחת עכשיו יצירות צאצא של אבות האב (I92883)
- קובץ ה-imageFromResource של הכתיבה עודכן API לשימוש חוזר במטמון של המשאב כשטוענים אובייקטים של ImageBitmap. (If3627, b/178751994)
גרסה 1.0.0-alpha11
28 בינואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha11
משוחרר. גרסה 1.0.0-alpha11 מכילה את התחייבויות אלה.
שינויים ב-API
- בוצע יישום מחדש של withConstraints בתור BoxWithConstraints, ולהשאיר את base.layout. (I9420b, b/173387208)
- הלחצן Key.DPadUp הוצא משימוש. במקומו צריך להשתמש ב-Key.DirectionUp. (Iab335, b/177954892)
- מעכשיו ממשק פנימי. (If8e35)
- נוסף ממשק ה-API של FocusManager.moveFocus() כדי להעביר את המיקוד באופן פרוגרמטי. (I045cb, b/177681839)
- משנה את PopupPositionProvider כדי להשתמש בקואורדינטות יחסיות לחלון, ולא בקואורדינטות גלובליות. משנה את השם של הורהGlobalBounds ל-עוגן, ומשנה את windowGlobalBounds ל-windowSize: IntSize (I2994a)
- משך הזמן וזמן הפעולה התקינה יוחלפו באלפיות שנייה ארוכות, והשלב הזה מסיר את התלות בקלט של מצביע העכבר הסוגים. (Ia33b2, b/175142755, b/177420019)
- השדה AmbientSavedStateRegistryOwner נוסף באופן דומה ל-AmbientLifecycleOwner ול-AmbientViewModelStoreOwner (I9a3e8, b/176756365)
- גרפיקה וקטורית מעודכנת API לתמיכה בניתוח גוון מיושם ברמה הבסיסית (root) של גרפיקה וקטורית. (Id9d53, b/177210509)
- נוסף ToolType ל-PointerInputChange כדי להבדיל בין מכשירים (Iac787, b/175142755)
- השם של AmbientWindowManager השתנה ל-AmbientWindowInfo (I2686a, b/177084714, b/177084983)
- שיטות קואורדינטות גלובליות שהוצאו משימוש ונוצרו שיטות חדשות לקואורדינטות מבוססות-חלון. (Iee284)
- נוספה האפשרות Modifier.toolingGraphicsLayer שמוסיף תכונת שינוי של שכבת הגרפיקה כשהבדיקה מופעלת. (I315df)
- הפוקוסRequester.createRefs מסומן עכשיו כניסיוני, ועשוי להשתנות. (I2d898, b/177000821)
- השם של SemanticsPropertyReceiver.סתר השתנה ל-invisibleToUser ומסומן כ- @trialComposeUiApi. השם של AccessibilityRangeInfo השתנה ל-ProgressBarRangeInfo. השם של stateDescriptionRange השתנה ל-ProgressBarRangeInfo. השם של AccessibilityScrollState השתנה ל- ScrollAxisRange. השם של EuropeanAccessibilityScrollState השתנה ל-EuropeanScrollAxisRange. השם האנכי של AccessibilityScrollState השתנה ל-verticalScrollAxisRange. (Id3148)
- בוצעה הסרה של PointerInputData ובוצעה שינוי ב-PointerInputChange כדי לתת לו את כל השדות של PointerInputData. האירוע PointerInputEvent ו-PointerInputEventData פנימיים כי לא נעשה בהם שימוש ב- כל ממשק API ציבורי. (Ifff97, b/175142755)
- הטמעה מעודכנת של GraphicsLayerScope בצפיפות שתתמוך בהמרות של dp פיקסלים גולמיים. (Ied528, b/176819695)
- ה-API של Matrix עודכן כך שיתווסף לשורה הבאה סדר עיקרי ומספק קבועי אינדקס להשגת המרות בין ייצוגים של מטריצות להתאמה ל-framework לוגיקת ההמרה בין SkMatrix לבין Matrix4 באופן פנימי. (I432e6)
- הוסרה שיטות מונוtonicFrameAnimationClockOf (Ib753f, b/170708374)
- העברת String.fintPrecedingBreak ו-String.fingFollowBreak אל InternalTextApi. (I657c4)
- בוצעה הסרה של androidx.compose.ui.util.isSurrogatePair מ-API ציבורי. (Ia9494)
- השם של TransformedText.transTransformText השתנה ל-TransformedText.text
- TransformedText כבר לא סיווג נתונים (Ie672a)
- הסרת את
data class
מהכיתות הבאות:- InlineTextContent
- LocaleList (I605c7)
- המחלקות הבאות הן כבר לא מחלקות נתונים:
- מחרוזת עם הערות
- סגנון פסקה
- סגנון סקין
- סגנון טקסט
- משקל הגופן
- עיטור טקסט
- טקסט גיאומטרי טרנספורמציה
- אינדקס טקסט
- תוצאת TextLayoutresult
- TextLayoutInput (Iaff99)
- טרנספורמציה חזותית שונתה כממשק פונקציונלי (I3bba4)
- נוסף סוג פרמטר של הפניה לפונקציה (I5e1bd)
- הוספת גבולות שעברו טרנספורמציה ל-InspectorNode (Ice42f)
תיקוני באגים
- onCommit , onDispose ו-onActive הוצאו משימוש לטובת ממשקי API של Side Effects ו-Sdisposable Effects (If760e).
שינויים בפונקציות המקוריות של הגופן/גופנים/משפחתית
- נוספו פונקציות יצרן שמתחילות באות גדולה
- פונקציות קודמות שהוצאו משימוש עם אותיות קטנות האות הראשונה
- פונקציות חדשות במפעל מחזירות את ה-FontFamily במקום מחלקות משנה
- הסתירו בנאים של מחלקות המשנה, כדי שיוכלו יש לבנות אותן רק באמצעות תכונות של היצרן.
- השם של Font.asFontFamily השתנה ל-Font.toFontFamily (I42aa7)
הצגה של
ComposeContentTestRule
, עם הרחבהComposeTestRule
ומגדיר אתsetContent
, שהוסר מ:ComposeTestRule
. נוספה שיטה להגדרות המקוריותcreateEmptyComposeRule()
שמחזירהComposeTestRule
ולא מפעילה פעילות עבור את/ה. השתמשו בפלח הזה כשתרצו להפעיל את הפעילות שלכם במהלך הבדיקה. לדוגמה באמצעותActivityScenario.launch
(I9d782, b/174472899)animateAsState נקרא עכשיו animateFooAsState, שבו Foo הוא סוג המשתנה שמונפש. לדוגמה ציפה, Dp, סטייה וכו' (Ie7e25)
הפרמטר של תיאור התוכן נוסף לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
יש להסיר את גודל התצוגה (displaySize) כי יש להימנע מכך. בדרך כלל זה עדיף להשתמש בגודל onRoot() או בגודל החלון לפחות. (I62db4)
OnSizeChanged דיווח על גודל הפריסה תוכן. כעת הוא מדווח את הגודל במיקום שלו בתוך או שרשרת משנה. (I36b78, b/177562900)
ה-API של emit() וכל עומסי-היתר הוצאו משימוש והשם שלהם השתנה ל-ComposeNode. ממשקי ה-API זהים, רק שם שונה, כדי לפעול בהתאם למוסכמות מתן השמות של 'ניסוח אוטומטי' (I4137b)
TextFieldValue מקבל את AnnotatedString. אבל זאת שינוי בממשק API בלבד ועריכה של טקסט במגוון סגנונות לא עדיין לא הוטמעו.
- הסרת את
initial
מהפרמטרים של constructor ב-EditBuffer. (I326d5)
- הסרת את
inverify ו-CompositionReference() הוצאו משימוש לטובת currentRecomposeScope ו-MemoryCompositionReference בהתאמה. (I583a8)
AnnotatedString השתנה כדי להרחיב מ-kotlin.CharSequence. לכן האורך ורצף המשנה הם עכשיו פונקציות של מכונה, והפונקציות של התוספים יוסרו. (Iaf429)
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)פעולות אריתמטיות שהוצאו משימוש בין 2 יחידות טקסט או יותר. הפונקציות TextUnit.Sp ו-TextUnit.Em שהוצאו משימוש יקבלו עדיפות על פני פונקציות התוסף, כמו Int.sp ו-Int.em. I48369
משאבים בספריות ללא משאבים ציבוריים שהוצהרו במפורש (לדוגמה, דרך public.xml) הם פרטיים עכשיו כברירת מחדל. (Ia1dcc, b/170882230)
התכונות 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)
הן עכשיו פונקציות של תוספים, לכן צריך לייבא אותן באופן ידני כשמשתמשים בהן. עומס יתר של תוסף חדש עבור מערכים:items(items: Array)
ו-itemsIndexed(Array)
(I803fc, b/175562574)יש להשתמש ב-ImeAction.None במקום ב-ImeAction.NoAction
- יש להשתמש ב-ImeAction.Default במקום ב-ImeAction.Unspecified (Ie1bcc)
להיעזר ב-TestCoroutineDispatcher בבדיקות (I532b6)
השם של TextInputService.onStateUpdated כ-updateState (Id4853)
המעבר מבוסס על העברות שכבר הוצא משימוש (I0ac57)
TextUnitType.Inherit הוסר. במקומו צריך להשתמש ב-TextUnitType.Unspecified. (I9ff64)
גרסה 1.0.0-alpha10
13 בינואר 2021
androidx.compose.ui:ui-*:1.0.0-alpha10
משוחרר. גרסה 1.0.0-alpha10 מכילה את התחייבויות אלה.
שינוי משמעותי בשיבושים
שינוי המבנה של המהדר הפנימי ה-API מאפשר לקבץ שינויים באצווה בצמתים שנוצרו כתוצאה מההרכבה בתיבת 'החלת השינויים' שלב ההרכבה, אחרי כל הפונקציות של
@Composable
הושלמו.זוהי פגיעה התנהגותית שעשוי להשפיע על קוד האפליקציה, צמתים כבר לא זמינים מתוך בממשקי API ניסיוניים עד שהשינויים ייכנסו לתוקף הוחלו. בדרך כלל ניתן לפתור את הבעיה עם יחסי תלות כאלה תוכן קומפוזבילי:
SideEffect
כדי לדחות את הביצוע של עד שהצמתים נוצרו אותחל. (I018da)
שינויים ב-API
- נוסף Modifier.focusOrder() שניתן להשתמש בו כדי לציין סדר מעבר מיקוד מותאם אישית (I90cf5, b/175899543, b/170155556, b/170155429)
- הוסרו במקום זאת השימוש ב-FocusObserver שהוצא משימוש ב-FocusChanged או ב-onFocusEvent (I3ecb9, b/175156387)
- עריכת השינויים ב-API של פעולות
- שם הפעולה השתנה כ-EditCommand
- נוספה סיומת של Command להטמעות בטון של EditOperation
- פקודות EditCommand הן כבר לא מחלקות נתונים
- השם של פונקציית EditOperation.Process שונה ל-ApplyTo
- השם של קלטEventListener שונה ל-inputEventCallback
- (I0a366)
- הוסרו PxSquared, PxCubed, PxInverse שלא נעשה בהם שימוש. size.center() השתנה ועכשיו הוא נכס. (I973f7)
- עכשיו המודול ui-test יוכל להגדיר יצירה של יוצרים מחדשים לממשקי משתמש בבדיקה (Ibebd8)
- מהירות ששונתה כך שתכלול חלקים של רכיבים ונתונים מתמטיים ב-AI. (Ib0447)
- שינינו את השם של
@ExperimentalTesting
ועכשיו הוא@ExperimentalTestApi
תואם להערות דומות של ה-API הניסיוני (Ia4502, b/171464963) - השם של Color.useOrElse() השתנה ל-Color.takeOrElse() (Ifdcf5)
- הוסרו המחלקות DpInverse, DpSquared ו-DpCubed שלא נמצאות בשימוש. (I4d62b)
- השם של Constraints#satisfiedBy השתנה ל-isSatisfiedBy. I9cf5c
- הוספת קריאה חוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (I72fd1)
- נוסף isSpecified, isUnspecified, ו-useOrElse עבור מחלקות מוטבעות עם קבוע לא מוגדר. (I93f7b, b/174310811)
הרחבת ממשקי ה-API של [Abstract]ComposeView כדי לאפשר מיחזור תצוגות שמבוססות על הרכבה, תוך השמטת ההרכב שלהן כדי ליצור מחדש מאוחר יותר. הוספת ממשקי API להתקנה וגילוי של יוצרים מחדש ברמת החלון ו-CompositionReferences ליצירת יצירות צאצא.
הוספה של אסטרטגיית תצוגה-הרכבה להגדרת סילוק של הרכבה האסטרטגיה של [Abstract]ComposeViews; התנהגות ברירת מחדל מושלכת ניתוק חלון. (I860ab)
ה-API הציבורי של Any.identityHashCode() הוסר (I025d7)
הוסר toStringAsFixed API לטובת השימוש ב-String.format במקום זאת ישירות. (Iaba6b)
הוספת לחצן החלפת מצב למחרוזת Strings.kt (I4a5b7, b/172366489)
ה-NativeClass הועבר אל של ממשק המשתמש והפך אותו לשימוש פנימי. שימושים מעודכנים ב-NativeClass ב- זהה להטמעות שבהן צריך להשתמש 'is MyClass' במקום זאת. (I4f734)
ה-Modifier.focus() ו-Modifier.focusRequester() הוצאו משימוש. במקומו צריך להשתמש ב-Modifier.focusModifier() ו-Modifier.focusReference() . (I75a48, b/175160751, b/175160532, b/175077829)
בוצעה הצגה של SelectionRegistrar.notifySelectableChange כדי לשלוח הודעה אל SelectionManager על עדכונים שניתן לבחור. (I6ff30, b/173215242)
אנחנו שמחים להציג את Outline.bounds כדי לקבל את המלבן התוחם להטמעות שונות ב-Outline. (I16e74, b/175093504)
TestUiDispatcher הוצא משימוש. במקום זאת, צריך להשתמש ב-Dispatchers.Main (Ic171f, b/175385255)
ImeOptions ו- KeyboardOptions כבר לא סוג נתונים (I3c898, b/168684531)
שינויים ב-VisualTransformation API
- השם של OffsetMap שונה ל-OffsetMapping
- השם של OffsetMapping.identityOffsetMap ל-OffsetMapping.Identity השתנה
- טרנספורמציה של סיסמה היא כבר לא סיווג נתונים
- בוצעה העברה של OffsetMapping לקובץ נפרד
- (I0bdf3)
המיקום השתנה ל-DpOffset והסרת את getDestination() (Ib2dfd)
שינית את Dp.isFinite() ל-val Dp.isFinite (I50e00)
תיקוני באגים
- עכשיו יוצר מחדש חושף את הזרימה במצב הנוכחי שלו, ומאפשר לעקוב אחרי הפעילות שלו ואחר הפעילות של ההשפעות הקשורות אליו. (Ifb2b9)
- עכשיו ניתן לגשת ל-keyEvent המקורי דרך keyEvent.nativeKeyEvent (I87c57, b/173086397)
animate()
מוחלף עכשיו ב-animateAsState()
, שתחזירState<T>
במקוםT
. כך אפשר לשפר של הביצועים, כי אפשר לצמצם את היקף הפסילה שבו נקרא ערך State (מדינה). (Ib179e)- הוספת ה-API של תפקיד סמנטי ומוסיפים את התפקיד 'תפקיד' כפרמטר אל SemanticsModifier ניתן ללחיצה, לבחירה ולהחלפת מצב. בוצע שינוי Modifier.progressSemantics כדי שגם Slider יוכל להשתמש בו. (I216cd)
- API חדש מבוסס קורוטין
Animatable
שמבטיח בלעדיות הדדית בין האנימציות שבו.- מפרט חדש של DecayAnimationSpec לתמיכה באנימציה רב-מימדית של דעיכה
- (I820f2, b/168014930)
גרסה 1.0.0-alpha09
16 בדצמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha09
משוחרר. גרסה 1.0.0-alpha09 מכילה את התחייבויות אלה.
שינויים ב-API
- KeyEvent.Alt הוצא משימוש הוסר. במקומו צריך להשתמש ב-KeyEvent.isAltpressed. (Idd695)
- Modifier.keyInputFilter ו-Modifier.previewKeyInputFilter הוצאו משימוש משתמשים ב-Modifier.onKeyEvent וב-Modifier.onPreviewKeyEvent במקום זאת (Idbf1b, b/175156384)
- Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
- השעיית ממשקי API לקלט של מצביע העכבר השתנה HandlePointerInputScope אל AwaitPointerEventScope וגם headPointerInput() ל-awaitPointerEventScope(). (Idf0a1, b/175142755)
- הכלי למילוי אוטומטי הוא עכשיו API ניסיוני ומחייב הסכמה (I0a1ec)
- הוספת הצהרות הרסניות ליצירת מכונות FocuSRequester (I35d84, b/174817008)
- השם של AccessibilityLabel השתנה ל-contentDescription. השם של AccessibilityValue השתנה ל-stateDescription. (I250f2)
- אירועים מותאמים אישית הוסרו מה-API של קלט מצביע מושעה (Ia54d5, b/175142755)
- הוספת מספר פונקציות חדשות ב- SelectionRegistrar, ושינוי השם של onPositionChange ל-NotifyPositionChange. (Ifbaf7)
- יותר חברים ב-LayoutNode סימנו כפנימי (I443c6)
- LayoutInfo נוסף לשימוש בכלים ובבדיקות (I9b190)
- AndroidOwner שנוצר לשימוש פנימי (Ibcad0, b/170296980)
- הוסרה הערה ניסיונית PointerInput (Ia7a24)
- נוספה מערכת גלילה מקוננת. פרטים נוספים זמינים ב-Modifier.nestedScroll (I36e15, b/162408885)
- subcomposeInto(LayoutNode) בוצע פנימי (Id724a)
הממשק של
Applier
השתנה כדי לפשט את הממשק עצים מלמטה למעלה במקום מלמעלה למטה.השם של ה-method
insert()
השתנה ל-insertTopDown()
.נוספה שיטה חדשה,
insertBottomUp()
.המיישם מוסיף צמתים לעץ שהוא עורך באמצעות
insertTopDown()
אוinsertBottomUp()
, בהתאם עם ביצועים טובים יותר.יש עצים, כמו
LayoutNode
ו-View
, בגובה רב יותר יעיל לבנות מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, נדרשה ערימה של תוספות כדי להטמיע היה צורך להעתיק לכל אפליקציה שבה נדרש מלמטה למעלה לשיפור הביצועים. לאחר השינוי הזה,Applier
מבטל אתinsertBottomUp()
כדי לבנות עץ מלמטה למעלהinsertTopDown()
כדי לבנות את העץ מלמעלה-למטה. (Icbdc2)נוספו המאפיינים CloseOnBackClick ו-CloseOnClickOutside ל-AndroidDialogProperties. ההגדרות האלה מאפשרות להגדיר מתי תופעל onDismissRequest lambda בתיבת הדו-שיח. (If5e17)
נוסף PainterResource API כדי לטפל באובייקטים של צבע עם טעינה אטומה מכל אחד מהפורמטים של נכסים דיגיטליים שעברו רסטר (כמו קובצי PNG) או VectorDrawables. לצרכנים כבר אין כדי לקבוע מראש את סוג הנכס והם יכולים לקרוא לשיטה הזו כדי לקבל אובייקט Painter. לשימוש בתכנים קומפוזביליים של תמונות או בכלים לשינוי צבעים. (I2c703, b/173818471)
נוסף Modifier.clearAndSetSemantics כדי למחוק צאצאים סמנטיקה ונקבעות חדשות. (I277ca)
התוכן של ContentDrawScope הועבר ל-ui-graphics את המודול כדי להיות עם DrawScope. (Iee043, b/173832789)
שימוש בממשק ה-API של גרפיקה מסוג Path Effects כדי לספק דפוסים שונים לצורות עם קווי רצף. שימוש ב-NativePathPath שהוצא משימוש לטובתך של תחזית/יישום בפועל של Path Effects. (I5e976, b/171072166)
נוספו ממשקי IdlingResource לכתיבה, בתור Compose (כתיבה) שנתמכת במשאבי Espresso של Espresso. אפשר לרשום אותם ללא רישום דרך ComposeTestRule (I433f3)
הוסרה רישום גלובלי (un) של ComposeIdlingResource וגם ערך גלובלי (un)רישום של שעונים ל-ComposeIdlingResource (I32660)
תיקוני באגים
- רכיבי 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)
להוציא משימוש את LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, משתמשים ב-LazyColumn וב-LazyRow (I5b48c)
BuildCompat.isAtLeastR (Idb37e) הוצא משימוש)
נוספה פונקציה במפעל של buildAnnotatedString לפי הסדר כדי ליצור מחרוזת AnnotatedString. NotedString (מחרוזת הערות) שהוצא משימוש ב-builder. (Idfe0b)
שיטות שהוסרו של תוספים ב-'Float' וב-'DoubleClick' כדי להמיר ערכים לרדיאנים. הועבר לפונקציה פרטית בהטמעה PathParser וזה היה המקום היחיד שבו השתמשו בו (I25f52)
גרסה 1.0.0-alpha08
2 בדצמבר, 2020
androidx.compose.ui:ui-*:1.0.0-alpha08
משוחרר. גרסה 1.0.0-alpha08 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת פעולה מסוג semantics Dismiss (I2b706)
- ממשקי ה-API של DrawModifier הועברו מ חבילת androidx.compose.ui חבילת androidx.compose.ui.draw. נוצר קובץ DrawModifierexcept.kt של כולל טיפוסים או שיטות עזרה שעוזרות את המיגרציה מההוצאה משימוש לגרסה הנוכחית ממשקי API. (Id6044, b/173834241)
- השם של Modifier.drawLayer השתנה ל-Modifier.graphicsLayer עודכנו גם מחלקות קשורות ל- GraphicsLayer בהתאם משוב מה-API. (I0bd29, b/173834241)
- נוספו שיטות חדשות Placeable.placeWithLayer() ו-placeable.placeגלויWithLayer() , שמאפשרות לפריסות בהתאמה אישית ולמגבילי פריסה להציב צאצא עם שכבת גרפיקה לשרטוט. מכיוון שאנחנו יכולים קודם לבצע אופטימיזציה של שרטוטים, כך כשאנחנו צריכים להעביר ילד אנחנו לא צריכים לשכתב את התוכן שלו, אנחנו יכולים להחיל טרנספורמציות שרטוט על הילד או הילדה (Ibd8f6, b/170296989, b/171493718, b/173030831)
- בוצעה הסרה של
<T>
מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8) - נוסף Modifier.scale//
ממשקי API שמשמשים כנוחות ל-DrawLayer.
- השם החדש של
Modifier.drawOpacity
הואModifier.alpha
- השם של
Modifier.drawShadow
שונה ל-Modifier.shadow
(I264ca, b/173208140)
- השם החדש של
- ביצעו את זמן הפעולה התקינה של PointerInputData שדות המיקום אינם בני null. (Id468a)
- העיצוב MaterialTheme מגדיר עכשיו את הצבעים הנכונים עבור נקודות אחיזה שנבחרו ורקע בחירה. אפליקציות שהן לא מהותיות יכולות להשתמש באופן ידני ב-AmbientTextSelectionColors כדי להתאים אישית את הצבעים שנבחרו. (I1e6f4, b/139320372, b/139320907)
- נוסף windowManager.isWindowFocused כדי לבדוק אם חלון המארח בפוקוס, ו-WindowFocusObserver שמספק קריאה חוזרת onWindowFocusChanged. (I53b2a, b/170932874)
- API מעודכן של TransformOrigin API
שיש לו תחביר הרסני ומחזיר
pivotFractionX
ו-pivotFractionY
בתורcomponent1
ו-component2
(If43c4, b/173586560) - נוספה בדיקת איתור שגיאות בקוד (lint) בשביל שמות ומיקום של פרמטרים קומפוזביליים של lambda, כדי לבדוק אם יש עקביות להנחיות לכתיבה.
בנוסף, חלק מממשקי ה-API הועברו בעזרת
children
כשם של lambda בסוף, ל-content
, בהתאם לבדיקת השגיאות בקוד ולהנחיות. (Iec48e) - נוסף API כדי לבדוק אם בוצעה לחיצה על מקשי הצירוף Alt, Ctrl, Meta או Shift בזמן שנשלח אירוע מרכזי. (I50ed9)
- נוסף עומס יתר חדש של
Modifier.drawLayer()
. היא לוקחת בלוק lambda ב- GraphicsLayerScope חדש שבו אתם מגדירים את הפרמטרים של השכבה באופן שמאפשר לדלג על הרכבה מחדש ועל שרת ממסר כשמתרחש שינוי מצב. DrawLayerModifier הוא עכשיו פתרון פנימי כחלק מההכנה להעברת הלוגיקה שלו אל שיטת Placeable.placeWithLayer() של LayoutModifier (I15e9f, b/173030831) - אלמנטים של אווירה שהוצאו משימוש, שהשם שלהם הוא
Ambient
, והוחלפו במאפיינים חדשים עם קידומת Ambient, שעומדים בהנחיות נוספות של Ambients ו-Compose API. (I33440) - הטווח
androidx.compose.ui.text.Typeface
הועבר אלandroidx.compose.ui.text.font.Typeface
(Ic2b81) - השם של הארגומנטים הסמנטיים מ-MergeAllDescendants השתנה ל- MergeDescendants. (Ib6250)
- מצביע השעיה חדש של מזהה תנועת גרירה API לקלט, כולל נעילת כיוון. (Icef25)
- השם של VectorAsset השתנה ל-ImageVector התפקיד VectorAsset הועבר ונקרא עכשיו Builder to Builder אל להיות מחלקה פנימית של ImageVector, הנחיות ל-API. נוספו גופנים של VectorAssetBuilder אל קישור אל ImageVector.Builder לצורך תאימות. (Icfdc8)
- השם של ImageAsset השתנה וגם שיטות שקשורות ל-ImageBitmap. (Ia2d99)
- צריך להוסיף את הפרמטר zIndex ל-placeScope (של מיקום) כדי ש-Modifier.zIndex() יפעל עכשיו בתור LayoutModifier, וכל פריסה מותאמת אישית תוכל להגדיר zIndexes לילדים ישירות מתוך גוש מיקומי המודעות (I711f7, b/171493718)
- מאפייני סמנטיקה של יסודות הועברו ל-ui (I6f05c)
- יש להוציא משימוש את המקום(היסט) והמקום היחסי(קיזוז). במקום זאת, משתמשים בעומסי יתר עם היסט פנימי (I4c5e7)
- הוסרו ממשקי API שהוצאו משימוש בעבר: Modifier.onPositioned הוסר. צריך להשתמש ב-Modifier.onGloballyPositioned. Modifier.onDraw הוסר. צריך להשתמש ב-Modifier.onDrawBehind. Modifier.plus הוסר. צריך להשתמש ב-Modifier. then. Color.Unset (צבע) הוסר. יש להשתמש ב-Color.Unspecified. מחלקת PxBounds הוסרה. במקום זאת, יש להשתמש ב-Rect. (Ie9d02, b/172562222)
- הממשק 'יישור' עודכן ופועל כראוי. (I46a07, b/172311734)
- זיהוי תנועות להקשה, הקשה כפולה, לחיצה ארוכה, הוספנו אינדיקציה לעיתונות באמצעות מצביע ההשעיה החדש מהקלט. נוספו גם מספר כלים, כך שזה היה פשוט יותר למפתחים לכתוב מזהי תנועות משלהם. (I00807)
- השם של
id
השתנה ל-layoutId
עבורLayoutIdParentData
. השם שלMeasurable.id
שונה ל-Measurable.layoutId
. (Iadbcb, b/172449643) - מזהה חדש של תנועות מולטימדיה, כולל עוזרים לזיהוי סיבוב, שינוי מרחק תצוגה והזזה. (Ic459d)
- הצגה של SweepGradientShader ו-SweepGradientBrush API. (Ia22c1)
- בקרת הזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיוני (I6ef86, b/171378521)
הוספת ממשקי API לגלילה המבוססים על קורוטין:
הוספה של LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וכן ברמה נמוכה יותר ממשקי API לבקרת גלילה. ממשקי ה-API האלה מספקים ממשק השעיה לשליטה בגלילה שמחכה עד שהגלילה תסתיים לפני שחוזרת. (Ie5642)
יש צורך ביסודות של Modifier.focusable. אפשר להשתמש באפשרות הזו כדי להוסיף לרכיב התנהגות שניתן להתמקד בה, עם סמנטיקה נכונה ונגישות נכונה. (I41eb9, b/152525426, b/162865824)
לספק הטמעות ברירת מחדל של שיטות ומאפיינים ב- AnimationClockTestRule שניתן להקצות ל-
clock
שלו (I7ea3d, b/173399709)עכשיו אפשר לאשר את הפעילות בהתאמה אישית ב-AndroidComposeTestRule מרכזי אפליקציות (Ib8288, b/153623653, b/154135019)
TextLayout בטעינה.getLineViewEnd הוצא משימוש. כתחליף TextLayoutתוצאה.getLineEnd להחלפה, יש עכשיו פרמטר visibleEnd חדש. (I73282)
ממשק API של TextFieldValue מעודכן
- הוגדר לקריאה בלבד של TextFieldValue.composition
- גורם חריג שהוסר עבור טווח בחירה לא חוקי (I4a675, b/172239032)
תמיכה ב-TtsAnnotation למנוע טקסט לדיבור. (I54cc6)
ממשקי API חדשים להרצת אנימציות בקורוטינים (Ied662)
תיקוני באגים
- השם של פרמטר היישור של Box השתנה ל-contentrement. (I2c957)
- שמות המשנים של offsetPx השתנו כדי לקזז. עכשיו הם מקבלים פרמטרים מסוג lambda במקום State. (Ic3021, b/173594846)
- נוסף הפרמטר resetInput ל-TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- נוספה בדיקת שגיאות בקוד לפרמטרים של מגביל בפונקציות קומפוזביליות. במהלך בדיקת השגיאות בקוד, המערכת בודקת את השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר כדי לוודא שהוא עומד בהנחיות לכתיבה. (If493b)
- האפשרות נוספה באופן זמני כדי לאפשר את TestAnimationClock מונע על ידי MonotonicFrameClock (I1403b, b/173402197)
- נוסף wrapper של Android ב-Android. אפשר לטעון מכשיר Android
משפחת גופנים באמצעות הפונקציה
typeface
, כלומרtypeface(Typeface.DEFAULT)
. גם השםtypefaceFromFontFamily()
השתנה ל-typeface()
(I52ab7) - נוספה בדיקת שגיאות בקוד כדי לבדוק שהפונקציות של יצרן הצירוף מוגדרות כתוספים ב-Modifier, כדי שניתן יהיה לשרשר אותן בצורה שוטפת. (I07981)
- מסירים את המודול הישן של בדיקת ה-ui-test ואת התוספת שלו (I3a7cb)
- Recomposer כבר לא מקבל EmbeddingContext; חובה יחסי תלות של תזמון מתקבלים מה-ImpactCoroutineContext. FrameManager הוצא משימוש; שילובי הפלטפורמה צריכים לאתחל איך להתמודד עם תמונת מצב גלובלית. (I02369)
- העברת פרטי סגנון לצומת הנגישות. (If5e8d)
- השם של TextUnit.Inherit השתנה ל-TextUnit.לא צוינה עקביות עם יחידות אחרות. (Ifce19)
כתיבת גרסה 1.0.0-alpha07 של ממשק המשתמש
11 בנובמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha07
משוחרר. גרסה 1.0.0-alpha07 מכילה את התחייבויות אלה.
שינויים ב-API
- הצגה של ScaleFactor
מחלקה מוטבעת, לייצוג קנה מידה
גורמים אופקיים ואנכיים
צירים שאינם תלויים זה בזה לפי הסדר
כדי לתמוך בתרחישים לא אחידים של התאמה לעומס (scaling).
- נוספה שיטת computeScaleFactor אל קנה מידה של תוכן
- נוסף ContentScale.FillBounds כדי לבצע קנה מידה לא אחיד כדי למתוח את הקטע גבולות לתפוס את היעד במלואו.
- נוספו שיטות של אופרטורים למחשוב פרמטרים של ScaleFactor עם פרמטרים של גודל.
- (Ic96a6, b/172291582)
- נוספו מפעלי Biasיישור ו-BisAbsoluteutement לצורך יצירת יישורים. (Iac836, b/169406772)
- צריך לאפשר למפתח לנקות את המיקוד בכוח. I90372
- תוקן באג שגרם לשרטוט של גובה מעל לתצוגות בתוך 'כתיבה'. (If7782)
- נוצר onDrawBehind API בתוך ContentDrawScope כדי להתאים למוסכמות מתן השמות עם Modifier.drawBehind. (I4fc3a, b/171955269)
- הוספת תמיכה במרחק המצלמה כדי להשלים טרנספורמציות בתלת-ממד rotationX/rotationY בממשקי API של שכבות. (I40213, b/171492100)
- נוסף SelectionContainer ללא הקריאה החוזרת (Ibfadb)
- הוסרה הערה ניסיונית SubcomposeLayoutApi עכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
- FirstBaseline ו-LastBaseline הועברו לחבילת androidx.compose.ui.layout (Ied2e7)
- הוסרה מידת האטימות ממגביל ה- DreatShadow() כפי שהיא מבלבל. (I82c62, b/171624638)
- הכלי Measurement result הוסר מ-MeasureScope. (Ibf96d, b/171184002)
- כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui ל-androidx.compose.layout.ui. (I0fa98, b/170475424)
- הוסר FocusState2 שהוצא משימוש (I686cb, b/168686446)
- ZIndexModifier הוא פנימי עכשיו (I1808b, b/171493718)
- עודכן סוג ההחזרה של lerp שיטה להחזרת פרמטרים של מידה גודל שאינו null כדי להימנע באגרוף. (Ib0044)
- נוספה TestMonotonicFrameClock לבדיקת קוד המסתמך על הרכב MonotonicFrameClock להמתנה לאירועי מסגרת יצירה באמצעות runblockTest של kotlinx-coroutines-test (I4402f)
- הוסר PathScope.localToGlobal (I15299, b/171462785)
- נוסף מאתר
onAllNodesWithSubstring
(I81dd7, b/171462889) - מודול androidx.ui.test הוצא משימוש. מעבר אל androidx.compose.ui.test and androidx.compose.ui.test.junit4 (I452e8)
תיקוני באגים
- collectedToBitmap הועבר ל- captureToImage. (I86385)
- Foundation.Text הוצא משימוש והוחלף ב-material.Text. בכתובת androidx.compose.foundation.BasicText. (If64cb)
- צריך לעדכן את TextFields כדי לקבל את השימוש ב- KeyboardOptions (Ida7f3)
- שינוי השם של KeyboardOptions ל-ImeOptions (I82f36)
- KeyType ו-ImeAction הועברו אל KeyboardOptions (I910ce)
- הפרמטר ProvideDefault נוסף כחלופה ליצירת אווירה, ואפשר להשתמש בו כדי לציין ערכי אווירה שיוגדרו רק כשלא סופקו כבר ערך סביבתי. (Id6635, b/171024925)
- BaseTextField הוצא משימוש. במקומו צריך להשתמש ב-BasicTextField. (I896eb)
- הצגה של מודול ui-test-junit4 (Ib91f8)
- השם של
relativePaddingFrom
שונה ל-paddingFrom
. הוספנו את מקש הצירוףpaddingFromBaseline
כדי שיהיה נוח יותר לציין מרחקים מגבולות הפריסה לקווי טקסט בסיסיים. (I0440a, b/170633813) - השם של LaunchedTask השתנה ל-LaunchedImpact כדי לשמור על עקביות בשילוב עם ממשקי ה-API של Side Effects ו-Seposable Effects. הופעל ללא אין להשתמש בפרמטרים של נושא כדי לעודד שיטות מומלצות. (Ifd3d4)
- הוכנסו משאבים קומפוזביליים שמרכיבים מחדש את התוכן שלהם כשהתצורה מתעדכנת. (I6387c, b/167352819)
- Recomposer עכשיו דורש CoroutineContext בזמן הבנייה (Ic4610)
- סיכום של
zIndex
ערכים כאשר מוחלים מספר ערכים שלModifier.zIndex()
. בעבר המשחק הראשון ניצח. (Ic514c, b/170623936) - שינויים בהטמעה הפנימית של OAuthTable לא אמורה להשפיע על ה-API הציבורי. (If9828)
- נוספה אפשרות IME לתיקון אוטומטי במקלדת (I57b8d)
- androidx.ui.test שהועברו אל androidx.compose.ui.test (I9ffdb)
- בוצעה הסרה של KeyboardOptions.toImeOptions מ-API הציבורי. (Ic2e45)
תרומה חיצונית
- הפרסום של פריט המידע הפנימי של ארטיפקט androidx.compose.ui:ui-text-android (Ib93fa)
גרסה 1.0.0-alpha06
28 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha06
משוחרר. גרסה 1.0.0-alpha06 מכילה את התחייבויות אלה.
שינויים ב-API
- הכלי Recomposer הוא כעת CompositionReference ו הורה מסוג קומפוזיציה. עכשיו, פחות מקומות נדרשים להשתמש בכלי המרה מפורש. (I4036f)
- הוצאה משימוש של VectorPainter ב- מעדיפים להיזכר ב-VectorPainter לציין שה-API הקומפוזבילי באופן פנימי משתמשת ב'זכור' לשמירת נתונים לאורך של יצירות. (Ifda43)
- ממשק API מעודכן של Modifier.drawWithCache כדי לחשוף את ContentDrawScope כהיקף של מקלט במקום DrawScope כדי לספק של יכולת לסדר מחדש פקודות של שרטוט. זה שימושי למיזוג או של צביעת תרחישים לדוגמה שבהם פיקסלים של תוכן חייבים חייב להיות מוצג ראשון כדי שיהיה כדי ליישם נכון את האלגוריתם של מצב השילוב. (Ie7ec8)
- העברת SimpleContainer אל PopupTestUtils.kt (I78c57)
- ConsumedData הוא כבר לא סיווג נתונים. פרטים נוספים זמינים בכתובת https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
- תיקון המיקום של נקודת אחיזה Rtl. I6e1e0
- ארגון מחדש של היקף השרטוט,
ContentDrawScope לשימוש בממשקים
במקום בשיעורים מופשטים
- נוצרה הטמעת CanvasDrawScope של DrawScope
- הטמעות מחדש של DrawScope כדי להשתמש במקום זאת ב-CanvasScope
- נוצר DrawContext כדי לכווץ יחסי תלות עבור DrawScope
- הוסרו שיטות שהוצאו משימוש ב-DrawScope (I56f5e)
- שינוי חמור: הסרת הערך המוחזר מ-
PointerInputFilter.onPointerEvent(...)
כי הערך היחיד שאפשר לשנות באירועי מצביע הוא נתוני צריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...)
, עכשיו אפשר פשוט לשנות את נתוני הצריכה של ה-PointerEvents שהועברו. (I6acd0) - יצרנו את הממשקים MeasureScope ו-IntrinsicMeasureScope. (I1a087, b/170461665)
- פונקציית המיזוג של ApplyLine הוסתרה. (I9da1a, b/170612900, b/170611568)
- הוספת אפשרות לציין את פרטי המפקח בתכונת צירוף כתב (Idee08, b/163494569)
- האפשרות SelectAll נוספה לתפריט הבחירה (Ief02b)
- עודכן ב-DawTransform.רוט כדי לקחת
פרמטר ברירת מחדל של ציר מרכזי להתאמה
את התיעוד.
- עודכן ב-DawScope.roundRad לצרכת היסט עבור נקודת ציר כדי להתאים שיטות טרנספורמציה אחרות.
- עומס יתר ב-DrawScope.routeRad שהוצא משימוש צף עבור הקואורדינטה x ו-y של הציר.
- (Iffcbb, b/170434992)
תיקוני באגים
- בדיקת איתור השגיאות בקוד של API עבור missingGetterMatchingBuilder מופעלת ב-androidx (I4bbea, b/138602561)
- הוספת בדיקה. (I6b8ae)
- הפעלת מעברים ב-ComposeTestRule; הסרת האפשרות כדי להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
- נוספה אפשרות IME של אותיות רישיות (I8ac38)
- נוספה אפשרות של מקלדת בשורה אחת ל-CoreTextField (I72e6d)
- העברת SimpleContainer אל PopupTestUtils.kt (I65c3e)
- השם של ה-API של רדיוס שונה לשם פינתי כדי להביע טוב יותר האופן שבו נעשה בו שימוש במהלך הכתיבה. התיעוד עודכן כדי לציין שרדיוס הפינות השלילי מוצמד לאפס. (I130c7, b/168762961)
- שיפור יכולת הפעולה ההדדית ב-Android על ידי המשך שליחת MotionEvents לתצוגות Android ברמת צאצא שמחזירות את הערך FALSE עבור onTouchEvent לכל הפעולות מלבד
ACTION_DOWN
(I94c5a, b/170320973) - התיבה הפכה לפונקציה מוטבעת. (Ibce0c, b/155056091)
תרומה חיצונית
- תמיכה בלוקאלים שונים של
AnnotatedString.capitalize
ושלAnnotatedString.decapitalize
(I4aa7f)
גרסה 1.0.0-alpha05
14 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha05
משוחרר. גרסה 1.0.0-alpha05 מכילה את התחייבויות אלה.
שינויים ב-API
- הוספת DSL לציון פרטי המפקח (Ic9a22)
- מעבירים לחיצה ארוכה לטקסט. (Iff2bc)
- מגביל קלט מושהה ניסיוני Modifier.pointerInput (Ia77d2)
- נוספו פעולות העתקה/הדבקה/חיתוך (I6db4f)
- הוסר ה-constructor הציבורי של AndroidOwner (Iacaef)
- מעכשיו, חלונות קופצים ותיבות דו-שיח יורשים את FLAG_SECURE מחלון ההורה. נוספה גם אפשרות להגדיר את זה באופן מפורש (I64966, b/143778148, b/143778149)
עכשיו אפשר לשנות את נתוני הצריכה. וגם קריאות לפונקציות של תוספים שצורכות לא יחזיר עוד PointerInputChange חדש, אבל במקום זאת לשנות את PointerInputChange שמסופק.
זהו השלב הראשון בתהליך בן שני שלבים להפוך נתוני PointerEvent כך שיהיו ניתנים לשינוי אין אפשרות לערוך נתוני מצביע באמצעות קוד משתמש. השלב השני הוא להסיר את סוג החזרה
List<PointerInputChange>
מ:PointerInputFilter.onPointerEvent(...)
. (Id067e)השבתת הבחירה בטקסט והדגמה. (Ie7e97)
נוצרה ב-GloballyPositioned פונקציה מוטבעת (I15830)
השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier ו-onPositioned() השתנה ל-onGloballyPositioned(). (I587e8, b/169083903)
המאפיין hasPendingmeasureOrLayout נוסף לערך 'בעלים' כדי לציין אם לבעלים יש פעולות פריסה בהמתנה. (I3d9f8, b/169038599)
נוסף API למיקוד ניקוי פרוגרמטי (Ie1dc2, b/161487952)
בוצעה הסרה של
PointerInputFilter.onPointerInput(...)
. יש להשתמש ב-PointerInputFilter.onPointerEvent(...)
במקומו. (I6f04a)שינויים בגודל
- הוסרה המידות.getFlipped
- בוצעה הסרה של size.rem
- הוסר size.truncDiv (Ief44d, b/169790720)
כחלק מתקן של ערכי סנטינל למחלקות מוטבעות, שינוי השם של Color.Unset ל-Color.Unspecified לעקביות עם מחלקות אחרות בתוך שורה (I97611, b/169797763)
TextOverflow.None. כאשר האפשרויות הנוספות הן 'ללא', הטקסט לא יטפל יותר בגלישה וידווח על הגודל שלו בפועל ל-LayoutNode. (I175c9, b/158830170)
השם של פרמטר ההיקף ב-AnnotatedString.Builder.addStringAnnotation השתנה ל'תג' כדי לשמור על עקביות של API. (I7c8cb)
תיקוני באגים
- ביצועי הגלילה של LazyColumn/Line משופרים על ידי צמצום העבודה בשיטת המשנה בכל גלילה. ה-method החדש has Invalidations() נוספה למחלקה Composition. השם של המתודה hasPendingChanges() מ-Recomposer השתנה ל-hasUndoations() (Ib2f32, b/168293643, b/167972292, b/165028371)
- גודל מעודכן.לא צוין ל-Float.NaN במקום מספר ממשי (Float).POSITIVE_INFINITY. יישומים של 'צייר' עודכנו ל- בידקו ביחס ל'גודל'. גם לא צוין כגדלים לא סופיים. (I95a7e)
- הסדר של הקריאות Place() בפריסות בהתאמה אישית מגדיר עכשיו את סדר השרטוט של הצאצאים (Ibc9f6)
- תמיכה בהמרה של AnnotatedString ל-SpannableString לצורך נגישות. (Ief907)
- נוספו stubs לכיתות Android שמופעלות בפלטפורמות ישנות יותר, כדי להימנע משימוש בהתאוששות כשאפשר. (Ia1790)
- באג שתוקן: אם הצגת המקלדת של התוכנה גרמה את האפליקציה לתרגום, הקואורדינטות של קלט הסמן יהפכו שגוי. (Ic4cec, b/163077821)
גרסה 1.0.0-alpha04
1 באוקטובר 2020
androidx.compose.ui:ui-*:1.0.0-alpha04
משוחרר. גרסה 1.0.0-alpha04 מכילה את התחייבויות אלה.
שינויים ב-API
- נוסף היקף הרשאות של בעלים כדי לאפשר איסוף של ולצייר היקפי תצפית ברגע שהם כבר לא בתוקף. (Ic4cf8)
- נוספו OnRemeasuredModifier ו-onSizeChanged() ל- לקבל התקשרות חזרה כשפריסת התוכן נמדדה מחדש הגודל השתנה, בהתאמה. (I657cf, b/154108792)
- הוספת פעולת סמנטיקה של לחיצה ארוכה (I6281b, b/156468846)
- ה-FocusManager הפך לפרטי. (I7872f)
ההטמעה עודכנה כדי ליצור יישום ייעודי של DrawCacheModifier במקום להוסיף מאפיינים אופציונליים ב-DrawModifier.
תיעוד מעודכן לשיטות שונות (Ibd166)
כדי למנוע יצירת אובייקטים, צריך להפוך את TextRange למצב מוטבע. (Id034b)
לא ניתן יותר לקרוא אתLocationScope#parentwidth ו-PositionScope#parentLayoutDirection של הבלוק של מיקומי המודעות של הפריסה המותאמת אישית. (Icc1ae, b/168295623)
להוסיף את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
הצגה של Modifier.drawWithcache כדי לתמוך ביצירת אובייקט שרטוט שיוצרת מחדש יחסי תלות באופן מותנה שתלויים בפרטי גודל/מצב (I376dc)
ה-PagraphConstraints הוסרו. הרוחב מועבר עכשיו ישירות לפיסקה. (Ica712)
תיקוני באגים
- עודכנו ממשקי 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)
- Foundation.Box הוצא משימוש. במקומם צריך להשתמש ב- הטעינה הקמפיין base.layout.Box. (Ie5950, b/167680279)
- שם המקבץ השתנה ל-Box. התיבה החדשה (Box) הקודמת תוצא משימוש ותחליפ את Box החדש ב-Compose.foundation.layout. המבנה החדש של Box הוא מקבצים ילדים אחד על גבי השני, כאשר יש לו כמה בנים. ההבדל הזה שונה מאופן הפעולה של התיבה הקודמת, שהתנהגה כמו עמודה מסוג 'עמודה'. (I94893, b/167680279)
- הפרמטרים לקישוט התיבות הוצאו משימוש. אם רוצים להוסיף קישוטים או מרווח פנימי לתיבה, אפשר להשתמש במקום זאת במגבילי התאמה (Modifier.background, Modifier.border, Modifier.שטח ) (Ibae92, b/167680279)
- עודכנו ממשקי 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)
- RootAnimationClockworks, מעבריםEnabled, blinkingCursorEnabled ו-textInputService פעולה עם @visibilityForTesting, הופכים אותם ל-API פנימי ומסתירים את ה-kdoc שלהם (I554eb, b/168308412)
- יש להסיר את SelectionContainer מהחלק העליון כדי להשבית את בחירת ברירת המחדל ולהימנע מהתנהגות לא צפויה. אפשר להשתמש באופן ספציפי ב-SelectContainer כדי לארוז את התוכן שצריך לבחור במקום זאת. (I8dfe0, b/158459594)
גרסה 1.0.0-alpha03
16 בספטמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha03
משוחרר. גרסה 1.0.0-alpha03 מכילה את התחייבויות אלה.
שינויים ב-API
- הסרת פעולות של גלילה קדימה או אחורה. שלבים שנוספו ב-AccessibilityRangeInfo. (Ia47b0)
- המשתמש
onInvalidate()
הוסר מהמרחב המשותף 'Owner
' –OwnedLayer
המטפל בביטול תוקף. (Ica72b, b/162061312) הוסרו שיטות של אופרטורים לגבי 'גודל' ממשקי API שצורכים פרמטרים של Offset. לא ברורה תוצאה של הפעולות האלה וסוג התוצאה לא צפוי בנושא הזה. דוגמה: גודל צריך - קיזוז חזרה קיזוז או תוצאת גודל עם ההפרש?
הוסרו גם שיטות שהוצאו משימוש ב'סיווג מידה'. (Iec902, b/166514214)
תיקוני באגים
- תיקון עבור פריטים ב-LazyColumn ששורטטו לפעמים בצורה שגויה. המצב הזה גרם גם לקריסות בתנאים מסוימים. (Ibcf17, b/163066980, b/165921895)
- הוצאנו משימוש את DpConstraints וממשקי ה-API שמשתמשים בהם. (I90cdb, b/167389835)
createAndroidComposeRule
ו-AndroidInputDispatcher
הועברו מ-androidx.ui.test.android
עדandroidx.ui.test
(Idef08, b/164060572)- שמות השימושים בכוח הכבידה שונו באופן עקבי כדי ליישר קו או ליישר קו בממשקי ה-API לפריסה. (I2421a, b/164077038)
- נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule בתור הן הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
גרסה 1.0.0-alpha02
2 בספטמבר 2020
androidx.compose.ui:ui-*:1.0.0-alpha02
משוחרר. גרסה 1.0.0-alpha02 מכילה את התחייבויות אלה.
שינויים ב-API
- להסיר את הקריאה החוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (If654e, b/166106882)
- נוספה תמיכה ב-filltype פרמטרים בנתיבים של גרפיקה וקטורית כדי לתמוך בגזירי צורות בהתאם בכללי מילוי נתיבים אפילו Odd או NonZero. (I43dd2)
- Uptime ו-Velocity הם עכשיו מחלקות מוטבעות (I48f4a)
- משך הזמן הוא עכשיו מחלקה בתוך השורה (I565eb)
- הוספת קריאה חוזרת (callback) כדי להודיע לבעלים כשגבולות הפריסה משתנים. (Ic40b3)
תוקנה הבעיה ב-constructor של פונקציית Rect עם ההיסט והרדיוס, תיצור את המלבן סדר משמאל, ימין, למעלה, למטה במקום שמאל, למעלה, ימין, למטה.
שיטות נלוות שהוצאו משימוש ב-Rect הוסרו לטובת בוני פונקציות.
נוספו בדיקות לאימות שיטות ב-Rect.kt (I08460, b/165822356)
תיקוני באגים
- נוסף MutableRect, מלבן שניתן לשנות. (I71bd2, b/160140398)
- המטריצה 4 הוחלפה ב-'מטריצה'. כל שאר החלקים הוסרו מחבילת הווקטורים. (Ibd665, b/160140398)
לפי המוסכמה של הקריאות לפונקציות קומפוזביליות השתנה. זהו שינוי תוכנה בינארית. כל הספריות חייבות להיות עברה הידור מחדש כדי לעבוד עם הגרסה הזו של הפלאגין מהדר (compiler) לכתיבה.
השינוי הזה לא יוצר שינוי תוכנה שעלול לגרום לכשל ברמת המקור רק ממשקי API שהשתנו הם ממשקי API של מהדר שיש להם להפעיל אותו. (I7afd2, b/158123185)
תוקנה קריסה שעלולה להתרחש שליחה ל-PointerInputFilter עלולה לגרום את PointerInputFilter שיישלח באופן סינכרוני. (I58f25)
גרסה 1.0.0-alpha01
26 באוגוסט 2020
androidx.compose.ui:ui-*:1.0.0-alpha01
משוחרר. גרסה 1.0.0-alpha01 מכילה את התחייבויות אלה.
גרסה 0.1.0-dev
גרסה 0.1.0-dev17
19 באוגוסט 2020
androidx.compose.ui:ui-*:0.1.0-dev17
משוחרר. גרסה 0.1.0-dev17 מכילה את ההתחייבויות האלה.
שינויים ב-API
- האפשרות
emitView
הוצאה משימוש. אם אפשר, כדאי להשתמש ב-AndroidView
כדי לפטור תצוגות בתוך 'כתיבה'. הערה: בעתיד לא תהיה תמיכה בכתיבה ישירה של תצוגות (Views) ו-ViewGroups, אלא אם הן נשארות בעץ ההרכבה. במקרה כזה, אפשר יהיה לעשות זאת באמצעות AndroidView. (I29b1e, b/163871221) FocusState2
הוצא משימוש והוחלף ב-FocusState
(Ia8b79, b/160822876, b/160923332)- עומסי-היתר של AndroidView שהוצאו משימוש הוסרו. (I946b9, b/163802393)
- עכשיו אנחנו יכולים להצהיר כי אחד או יותר מהקובעים של פליטת אנרגיה בהתאמה אישית אפשר לדלג על השלב הזה ולהרכיב אותו מחדש בנפרד מהפליטות. (Ibbd13)
מחלקות וקטורים שונו כך שלא יהיו יותר להיות סיווגי נתונים כמו אותו מופע אובייקט שמשמש ליצירה.
נוסף סימון mutableStateOf עבור VectorPainter לצייר מחדש באופן מותנה אם התוכן שינוי וקטורי.
ארגון מחדש של מכונת VectorComponent חלק מ-VectorPainter מכיוון שנעשה בו שימוש חוזר ביצירות מוזיקליות שונות.
בוצע עדכון של GroupComponent ו-PathComponent כדי ששדות השמות שלהם יהיו ניתנים לשינוי (Ieae45, b/151378808)
בוצעה הסרה של
onChildPositioned
ושלOnChildPositionedModifier
. מפתחים צריכים להשתמש ב-onPositioned
וב-OnPositionedModifier
בפריסת הצאצא. (I4522e, b/162109766)ההיסט הפך למחלקה מוטבעת (Iaec70)
נוסף פרמטר מגביל ל-SelectContainer (I4aada, b/161487952)
הוסר FocusModifier (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
נוספה lambda של
mergePolicy
אלSemanticsPropertyKey
. סוג הפריט יכול להיות משמש להגדרת מדיניות מותאמת אישית לסמנטיקה של מיזוגAllDescendants מיזוג. מדיניות ברירת המחדל היא להשתמש בערך ההורה אם כבר קיים, אחרת ערך הצאצא. (Iaf6c4, b/161979921)האילוצים הם עכשיו מחלקה מוטבעת (I88736)
נוסף FocusManager שמעביר לוגיקת מיקוד נפוצה מ-AndroidComposeView (I528ef, b/161487952, b/162206799)
שמות PointerEventPass עודכנו לגרסת אלפא. (Ifda6f)
IntOffset הוא עכשיו מחלקה מוטבעת (Iac0bf)
IntSize היא עכשיו מחלקה מוטבעת (I2bf42)
השם של
PlacementScope.placeAbsolute()
השתנה ל-PlacementScope.place()
, והשם הקודם שלPlacementScope.place()
השתנה ל-PlacementScope.placeRelative()
. כתוצאה מכך, השיטהPlacementScope.place()
לא תשקף יותר את המיקום באופן אוטומטי בהקשרים של מימין לשמאל. אם רוצים, משתמשים במקום זאת ב-PlacementScope.placeRelative()
. (I873ac, b/162916675)התכונה AlertDialog משתמשת עכשיו ב-FflowRow עבור לחצנים (I00ec1, b/161809319, b/143682374)
חלק מכלי הבדיקה לא הוגדרו כי הם לא נמצאים במקום שבו הם נמצאים שייכים. הסרטון יהיה גלוי לכולם בעתיד. (I32ab1)
ארגון מחדש של קלט הסמן (Ie3f45)
גבולות PxBound שהוצאו משימוש ב- לטובת Rect. עודכנו כל השימושים של PxBounds עם rect הוצאה משימוש/החלפה עם הערות שעוזרות מיגרציה. (I37038, b/162627058)
הוסר KeyEvent2 שהוצא משימוש. במקום זאת, יש להשתמש ב-KeyEvent. (Ied2d0, b/162097587)
ל-KeyEvent יש מאפיין unicode שניתן להשתמש בו כדי לקבל את תו ה-Unicode שנוצר על ידי השילוב של מצב המפתח ומצב המטא-מפתח שצוינו (If3afc)
ביצע את האירוע המותאם אישית DelayUp ובמחלקות קשורות, ל-API להצטרפות, ישתנו מאוד. (I56d6f)
הוסרו 2 PointerEventPass שכבר לא זמינים הדרושים. (I3dd9d)
הוספת צבע פרמטר, צללית ו-TextDecoration ל-Paragraph. Paint. הפונקציה הזו שימושית למניעת שחזור מיותר של הפסקה. (I81689)
תיקוני באגים
- הוסרו קריאות חוזרות של onFocusChanged מ-TextField. במקומו צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- הממשק Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. סיווג נתוני הגבול הוחלף ב-BorderStroke (I4257d, b/158160576)
הוסרו קריאות ל-frameManager שהוצאו משימוש.
ממשקי ה-API הפנימיים לכתיבה השתנו כדי לצמצם את כמות במבט-על כדי לעקוב אחרי אובייקטים במצב כמו
mutableStateof()
(I80ba6)VerticalScroller ו-HorizontalScroller הוסרו. במקום זאת, אפשר להשתמש ב- ScrollableColumn/Row. בוצעה הסרה של Modifier.drawBackground. משתמשים ב-Modifier.background (I73b0d, b/163019183)
קריסה כאשר משהו ששומר את המצב היה בשימוש בתוך לולאת <for> תוקנה. עכשיו מותר להשתמש באותו מפתח ב-SavedInstanceState() , ולכן ה-API של UiSavedStateRegistry מותאם עכשיו לדרישה החדשה הזו (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
התוכן הקומפוזבילי
state { ... }
הוצא משימוש לטובת קריאות מפורשות אלremember { mutableStateOf(...) }
לשם הבהרה. כך יצטמצמו פלטפורמת ה-API ואת מספר המושגים ברמת המדינה ניהול, שתואם לדפוסby mutableStateOf()
של הכיתה להעניק גישה לנכסים. (Ia5727)השם של RRect השתנה ל-RroundRect כך שיתאימו טוב יותר לדפוסי השמות של הכתיבה יצרתם בנאים של פונקציות דומות לפונקציית RRect שהוצאה משימוש constructors (I5d325)
גרסה 0.1.0-dev16
5 באוגוסט 2020
androidx.compose.ui:ui-*:0.1.0-dev16
משוחרר. גרסה 0.1.0-dev16 מכילה את ההתחייבויות האלה.
שינויים ב-API
- ה-OnChildPositioned הוצא משימוש. שימוש ב-OnPositioned על הילד או הילדה. (I87f95, b/162109766)
- ההגדרה setViewContent הוצאה משימוש. במקום זאת, צריך להשתמש ב-setContent. (I7e497, b/160335130)
- הוספנו את AndroidViewBinding API לניפוח ולכתיבה של משאבי פריסה, על סמך ViewBinding. (I081c6)
- KeyEvent2 הוחלף על ידי KeyEvent (I2d770, b/162097585)
- נוספה תמיכה במפתח חומרה חלופי (I9036b)
- ה-FocusManager הוצא משימוש. במקומו צריך להשתמש ב-Modifier.focus(), Modifier.focusObserver() ו-Modifier.focusRequester() . (I74ae4, b/162211322)
- loadVectorResource תומך במאפייני trimPath (I808fe)
- העברת תיבת דו-שיח ל-ui (I47fa6)
- הוסרו 2 PointerEventPass שכבר לא זמינים הדרושים. (I33ca7)
- PointerInteropModifier מוטמע שמספק היכולת לקבל אירועים של MotionEvents ולבצע פעולות שקשורות לכתיבה כאילו אתם הטמעה של Android View. (Ieb08c)
- הסרת את מגביל התג שהוצא משימוש. במקומם צריך להשתמש ב-LayoutId. (Idaa05, b/162023919)
- ממשקי ה-API לתמיכה מימין לשמאל עודכנו. נוספה ההגדרה LayoutDirectionAmbient תוכל להשתמש בה כדי לקרוא ולשנות את כיוון הפריסה. Modifier.rtl ו-Modifier.ltr הוסרו. (I080b3)
- תמיכה בחיתוך נתיב בגרפיקה וקטורית (Ie16c9, b/158188351)
- נוסף Modifier.layout() שמאפשר ליצור שינוי פריסה מותאם אישית בצורה נוחה (I73b69, b/161355194)
- הוספנו ממשק AndroidView חדש והוצאנו משימוש את הרכיבים הקיימים. (I5bcfd)
- השירות Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. 'אז' מקבלים אות חזק יותר של הזמנה, וגם אוסר על הקלדת
Modifier.padding().background() + anotherModifier
, דבר ששובר את השרשרת וקשה יותר לקרוא (Iedd58, b/161529964) - הוספת כיתות משנה של [Abstract]ComposeView View לאירוח 'כתיבה' תוכן בהיררכיית תצוגה. (I46357)
Row
ו-Column
הם עכשיו פונקציות מוטבעות באופן משמעותי ולהפחית את התקורה כתוצאה מהשימוש בהם. (I75c10)- נוספה פריסת משנה. זהו פרימיטיבי ברמה נמוכה שמאפשר להרכיב את הצאצאים במהלך המדידה אם אנחנו רוצים להשתמש בערכים מסוימים שזמינים רק מאוחר יותר במהלך המדידה של הרכב עץ המשנה. לדוגמה, withConstraints לא מוטמע באמצעות SubcomposeLayout. (I25cc8)
- הוספת את
SemanticsNode.positionInRoot
כדי לקבל את המיקום של SemanticsNode ביחס לרמה הבסיסית (root) של היררכיית הכתיבה (Icdf26, b/161336532) - MotionEvents עברו את כל הדרך מ-Android, לכתיבה, בחזרה ל-Android. (I14be8, b/158034713)
- החלון הנפתח הוסר. (I00430)
- מיקום קבוע של חלון קופץ במסכים נחתכים. (Idd7dd)
- צריך להוסיף פעולת נגישות כדי לקבל TextLayout בטעינה (I9d6e6)
- RemeasurementModifier נוסף. הוא מאפשר למדוד מחדש את הפריסה באופן סינכרוני. בדרך כלל אין צורך בכך כי המדידה מחדש/ההעברה מתרחשת באופן אוטומטי, אבל אנחנו משתמשים בהן בתוך LazyColumnItems במהלך הגלילה. (I5f331, b/160791058)
- מסירים את getLineEllipsisOffset/getLineEllipsisCount. כדאי להשתמש במקום זאת, getLine ארה"ב/getLineEnd/isLineEllipSize. (I85aa2)
- מומלץ להוסיף כמה סימנים או הערות מסיבות שקשורות לשיטות המומלצות. (I66b20)
- חשיפה של ממשקי API נוספים של שורות ב-TextLayoutresults. (I79bd2)
- ממירי וקטורים מובנים להמרה ניתן לגשת ליחידות עכשיו דרך Foo.VectorConverter. לדוגמה Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter, וכו' (I3e273)
תיקוני באגים
- כתובות לתיקונים רחבים ב-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 להרוס, שינוי השם לא צויןגודל לערך לא צוין והוסרו שיטות שלא בשימוש
- עודכנה צריכה של ממשק API לכתיבה של BlendMode כדי למפות כראוי בין framework BlendModes של Android ומצבי PorterDuff בהתאם לרמת ה-API. הושקה ממשק ה-API של BlendMode#isSupported API לצורך פעולה בתור שאילתת יכולת כדי לקבוע אם BlendMode נתמך במכשיר לפני השימוש בו. (I0ef42)
- LazyItemScope נוסף לפרמטר itemContent של רשימות Lazy. היא מספקת ערכים לשינוי הגודל המקסימלי של ההורה, וכך פותרת את הבעיה לדוגמה שבה הפריט צריך למלא את אזור התצוגה, וה-Modifier.fillMaxSize() הרגיל לא פועל כי הפריט נמדד עם מגבלות אינסוף. (Ibd3b2, b/162248854)
- בוצעה הסרה של
SemanticsNodeInteraction.performPartialGesture
. כדאי להשתמש יש גם אפשרותSemanticsNodeInteraction.performGesture
. (Id9b62) - השם של
LazyColumnItems
שונה ל-LazyColumnFor
. השם שלLazyRowItems
השתנה ל-LazyRowFor
(I84f84) - החבילה של
foundation.shape.corner
פוצלה ל-foundation.share
(I46491, b/161887429) - השם של
AndroidComposeTestRule
השתנה. השם החדש הואcreateAndroidComposeRule
. (I70aaf) - נוספו עוד ממשקי API ל-
TextLayoutResult
. (Id7e04) - השם של חומר הלימוד
FilledTextField
השתנה ל-TextField
. השם הבסיסי שלTextField
שונה ל-BaseTextField
כדי שיהיה קל לגלות את ה-API הרצוי ולהשתמש בו (Ia6242, b/155482676) - השם של Modifier.drawBackground השתנה ל-Modifier.background (I13677)
גרסה 0.1.0-dev15
22 ביולי 2020
androidx.compose.ui:ui-*:0.1.0-dev15
משוחרר. גרסה 0.1.0-dev15 מכילה את ההתחייבויות האלה.
עדכון של יחסי התלות
- כדי להשתמש בגרסה
0.1.0-dev15
של 'כתיבה', צריך לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרה על יחסי תלות.
שינויים ב-API
- ה-FocusModifier הוצא משימוש והוחלף ב-Modifier.focus, Modifier.focusRequester, Modifier.focusObserver. ה-FocusState ו-FocusDetailedState הוצא משימוש לטובת FocusState2 (I46919, b/160822875, b/160922136)
- נוסף מקש צירוף כדי להבחין בשינוי במצב המיקוד. (I05866, b/160924455, b/160923326)
- נוסף מגביל כדי לבקש שינויים במיקוד (I8dd73, b/161182057, b/160924778)
- עליך להתאים את תפריט סרגל הכלים כדי להציג העתקה, גזירה והדבקה כראוי. (Id3955)
- במאפיינים של סמנטיקה של ערך יחיד נעשה עכשיו שימוש בסגנון קריאה.
לדוגמה, 'semantics { paused = true }' כתוב עכשיו כך:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - נוסף Modifier.focus שמחליף את FocusModifier. (Ib852a, b/160924778)
- מוסיפים סרגל כלים צף לבחירת TextField. (Ie8b07)
- נוספה הערת API ניסיונית ל-API שקשור לקלט מפתח (I53c0a)
- נוספה הערת API ניסיונית לכל ממשקי ה-API שקשורים לפוקוס (I53b24, b/160903352)
- נוסף FocusState2 שיחליף את FocusDetailedState (I0a3ba, b/160822595)
- נוספה trialFocus, שהוא הערת @OptIn עבור Focus API. (I1544b, b/160820961)
- נוספה קטגוריית יחידה מסוג IntBounds, שמייצגת תחומי פיקסלים של מספרים שלמים מהפריסה. ה-API של PopupPositionProvider עודכן ועכשיו אפשר להשתמש בו. (I0d8d0, b/159596546)
- ל-Applier נדרשת עכשיו שיטת clear() כדי להשליך יצירות (Ibe697)
- KeyEvent הוצא משימוש והוחלף ב-KeyEvent2 (I68730)
- סימון אופציונלי חדש לשימוש ב-UnMergedTree נוסף למציאת הבדיקות. (I2ce48)
- ממשק API ניסיוני של LayoutNode (I4f2e9)
נוספו שיטות העתקה למגוון סוגי המחלקות המוטבעות, כולל:
- היסט
- גודל
- רדיוס
- תנועה
מקור טרנספורמציה
שיטת של אובייקט נלווה מסוג size.copy שהוצאה משימוש לטובת שיטת ההעתקה של המכונה (Ife290, b/159905651)
חלונות קופצים, תיבות דו-שיח ותפריטים יורשים את עיצוב התוכן ההקשרי ההקשרי (Ia3665, b/156527485)
השם של TextDirection השתנה ל-resolvedTextDirection (I3ff38)
הפרמטר של כיוון הפריסה הוסר מבלוק המדידה של הפונקציה Layout() . עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)
ידיות בחירה מחדש לשימוש חוזר. (I420e0)
הוסר קליק. משתמשים ב-Modifier.clickable (I84bdf)
TestTag והסמנטיקה נמחקו. במקומו צריך להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0, b/158841414)
לפני השינוי הזה, הפלאגין של המהדר לכתיבה היה לא מיירט קריאות למבנים בתוך פונקציה מסוג @Composable אם הייתה לו (I5205a, b/158123804)
השם של Modifier.tag שונה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)
מיקומי היישור הפנימיים שהוחזרו מה-Placeable#get(יישורLine) אינם אפס. אם חסר קו היישור שנוצר בשאילתה, המערכת תחזיר את הכנסות ה-יישור.לא צוין. (I896c5, b/158134875)
התוכן הקומפוזבילי של AndroidView נוסף פרמטר מגביל. (I48a88, b/158746303)
Semantics() הוצאה משימוש. במקומו צריך להשתמש ב-Modifier.semantics() . (I72407, b/158841414)
הוספה של תוכן קומפוזבילי ל-viewModel() שמאפשר ליצור או ליצור כבר ViewModel באופן דומה לאופן שבו הוא פועל ב'פעילות' או ב-Fragment (I5fdd1)
השימוש ב-IntPx הוחלף ב-Int. מיקום IntPxPosition הוחלף עם IntOffset. הערך של IntPxSize הוחלף ב-IntSize. (Ib7b44)
כדי לאחד את את מספר המחלקות לייצוג התאמת גודל, סטנדרטיזציה על השימוש במחלקת גודל של PxSize. זה היתרונות של בכיתה מוטבעת כדי להשתמש לארוז 2 ערכים צפים לייצוג רוחב וגובה מיוצגים כצפים. (Ic0191)
כדי לאחד את את מספר המחלקות לייצוג פרטי מיקום, ליצור סטנדרטיזציה על השימוש במחלקה Offset של PxPosition. זה היתרונות של בכיתה מוטבעת כדי להשתמש לארוז 2 ערכים צפים כדי לייצג x ו-y קיזוזים מיוצגים כצפים. (I3ad98)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים. כיתה Px נמחקה במלואה (I3ff33)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I086f4)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Id3434)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I97a5a)
הכלי TestTag הוצא משימוש. במקומו צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)
הטמעת ברירת המחדל, ללא תפעול, של ParentDataModifier#modifyParentData הוסרה, שהיא שוות ערך לאי-הטמעה של הממשק מלכתחילה. (I0deaa)
ScaleFit שהוצא משימוש בעבר בתור הוסר. במקומו צריך להשתמש ב-ContentScale. (Ifbc5b)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I19d02)
נוסף הרכיב 'תפריט נפתח' ב-ui-material, הטמעת תפריט של Material Design. (I9bb3d)
הוסרה LayoutTag() שהוצא משימוש. במקומו צריך להשתמש ב-Modifier.tag() . הוסר Modifier.matchParent() . במקומו צריך להשתמש ב-Modifier.matchParentSize() . (If8044)
השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (I57bff)
Modifier.semantics הוצא משימוש כדי לאפשר שימושים ברכיבים ברמה גבוהה. (I4cfdc)
הטמעות מאוחדות של CanvasScope עכשיו יש רק את DrawScope היקף התוכן השם של CanvasScope השתנה ל-DawScope. בוצע עדכון של DrawScope להטמעת צפיפות ולספק LayoutDirection מחלקה משנית של DrawScope נמחקה ב-ContentDrawScope צבעים ו- PainterModifier עודכנו כדי להפסיק לתחזק נכס RTL בעצמם, ככל ש-DawScope כבר מספקת זאת בלי לספק אותו באופן ידני (I1798e)
דאבל תנועות-סינון עכשיו הבהרה לאורך העץ. (If92b1)
עדכנו את ה-API של היישור והוספנו תמיכה בהתאמה מוחלטת (שלא משקפת באופן אוטומטי בהקשר Rtl) (I38cd3)
ממשק ה-API של ה-API של DrawLayer השתנה: השם של outlineForm (צורה) השתנה לצורה, והוא מכיל את ערך ברירת המחדל RectangleForm ועכשיו לא ניתן לשנות את הערך שלו; השם שלClipToOutline שונה לקליפ. הוסרו גבולות הקליפ כי הם זהים לקליפ == true עם RectangleForm (I7ef11, b/155075735)
עודכנה רמה גבוהה יותר כתיבת ממשקי API שחושפים בד ציור במקום זאת, לחשוף את CanvasScope. הפעולה הזו תסיר הצורך של הצרכנים לשמור על אובייקטים של 'צייר'. למשתמשים עדיין נדרשת גישה ללוח הציור הוא יכול להשתמש בתוסף PaintCanvas שמאפשרת קריאה חוזרת (callback) לבעיה שרטוט של פקודות באמצעות קנבס. (I80afd)
ממשק ה-API של lambda בסוף, withConstraints, השתנה. עכשיו, במקום שני פרמטרים, יש לו היקף מקלט, שבנוסף למגבלות ו-DeployDirection, מספק את המאפיינים minwidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
השם של LayoutModifier2 שונה ל-LayoutModifier. (Id29f3)
הוסר ממשק LayoutModifier שהוצא משימוש. (I2a9d6)
לפונקציות מדידות פנימיות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק עכשיו API של שאילתות מהותיות עם כיוון פריסה מופץ במרומז. (Id9945)
אפשר למדוד את הצאצאים של Layout ו-LayoutModifier, בכיוון פריסה שונה. (Ibd731)
הוספנו את Modifier.zIndex() כדי לשלוט בסדר השרטוט של צאצאים באותה פריסת הורה. השם של מאפיין הגובה ב-DrawLayerModifier השתנה ל-shadowHeightion והוא לא שולט יותר בסדר השרטוט. סדר הפרמטרים ב-DrawShadow השתנה: הגובה הוא עכשיו הראשון והצורה היא השנייה עם ברירת מחדל של RectangleForm. (I20150, b/152417501)
הוסרו onSizeChange ו-onPositionChange in 'בעלים'. (I5c718)
נוסף Constraints2, עותק של מגבלות תומכת רק בערכי מגבלות IntPx ולא ב-IntPx. IntPx יוסרו וכל האילוצים של מספרים שלמים יתייחסו להיות פיקסלים כמו Android.
- הוספנו גם את IntSize, שבסופו של דבר תחליף את IntPxSize. (I4b43a)
ניתן ליצור יישור באופן מיידי עם ערכים שרירותיים. נוספו יישורים בתלת-ממד. (Ia0c05)
עכשיו הפרמטר OptimizeToSiblings מקבל מודל 'מדידה' במקום 'placeholder'. (I5788d)
-
- השם של 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
תמיכת Rtl למגבילי משיכה. (I0aaf9)
API שהופץ לניפוח תצוגות של Android מ-XML. לפרטים נוספים, ראו הדגמה של ViewInCompose. (I42916)
שיפור של DrawModifier API:
- יצרת את היקף המקבל עבור pull() ContentDrawScope
- הוסרו כל הפרמטרים מ-Daw()
- הממשק של DrawScope זהה לממשק הקודם של CanvasScope
- ContentDrawScope כולל שיטת pullContent() (Ibaced, b/152919067)
נוספו positionInParent ו-boundsInParent לקואורדינטות ב-Layout9s. (Icacdd, b/152735784)
DrawLayerModifier ו-trainLayer() משמש עכשיו כברירת המחדל ל-ClipToBounds ו-ClipToOutline ל-FALSE. (I0eb8b, b/152810850)
השם של Layout result השתנה ל-MeasureAmount. (Id8c68)
נוסף LayoutModifier2, ממשק API חדש להגדרת מגבילי פריסה; LayoutModifier שהוצא משימוש (If32ac)
אופרטור הצירוף הוחלפה בפונקציות של תוספי היצרן (I225e4)
נוספו נכסי TranslateX/Y לתמיכה לקזז את רשימת פקודות השרטוט עבור של שכבה נתונה. האפשרות הזו שימושית להעברת תוכן בתגובה לאנימציות או לאירועי מגע. (I8641c)
נוספו פרמטרים מסוג pivotX ו-pivotY. ל-Layer APIs של השכבות לתמיכה ברוטציה ובהתאמה לעומס (scaling) סביב נקודה מסוימת בשכבה (Icf7c3)
הוספת OnPositionedModifier ו-OnChildPositionedModifier כדי להחליף תכנים קומפוזביליים מסוג OnPositioned ו-OnChildPositioned למשימות ספציפיות. (I2ec8f)
נוסף LayerModifier, מקש צירוף שמאפשר הוספת RenderNode לפריסה. היא מאפשרת להגדיר חיתוך, אטימוּת, סיבוב, התאמה לעומס (scaling) וצלליות. הפעולה הזו תחליף את Re PaintBoundary. (I7100d, b/150774014)
כיוון הפריסה יופץ מצומת פריסת ההורה לצאצאים. נוסף ערך לשינוי כיוון הפריסה. (I3d955)
רכיב מקבץ תומך בכיווניות מימין לשמאל (Ic9e00)
תמיכה ראשונית ב-Rtl בפריסת פיתוח נייטיב (Ia5519)
השדות Density ו-DensityScope מוזגו לממשק אחד. במקום TimeDensity() אפשר להשתמש ב-DensityAmbient.current. במקום withDensity(צפיפות) רק עם(צפיפות) (I11cb1)
שינית את Layouts כדי לבצע חלוקה ליישור קו קבוצה במקום מפה, ו-Layouts (פריסות) מיישמים את במקום זאת, כדי לאחזר ערך, באמצעות האופרטור get() . כך יהיה לך קל יותר עבור משתנים לשינוי ערך אחד או יותר של הקבוצה יוצר אוסף חדש לכל מגביל. (I0245a)
לקואורדינטות כבר אין מאפיין מיקום. אינו הגיוני כאשר מביאים בחשבון את LayoutModififiers, סיבוב או התאמה לעומס (scaling). במקום זאת, על המפתחים להשתמש ב-Parent_Coordinates ו-ChildToLocal() כדי לחשב את הטרנספורמציה ניהול צוותים לפריסה אחרת.
הקואורדינטות ב-Layouts משתמשות ב-IntPxSize עבור מאפיין הגודל במקום ב- גודל PxSize. פריסות משתמשות בגדלים של פיקסלים שלמים לפריסות, כך שכל גדלי הפריסה צריך להשתמש במספרים שלמים ולא בערכי נקודה צפה (floating-point). (I9367b)
שיפורים בפלטפורמת ה-API של המגבלות (I0fd15)
יצרתם ממשק API של CanvasScope שמכסה אובייקט בד ציור כדי לחשוף אובייקט ללא שמירת מצב, וממשק API לשרטוט. הטרנספורמציות נכללות בתוך היקף המקבל וגודל מידע הוא גם כולל גבולות פנימיים תואמים. הצרכן לא נדרש לשמור על מצב צבע משלו. להגדרת פעולות שרטוט.
- נוספה גם CanvasScopeSample וגם עדכנת את אפליקציית ההדגמה ועכשיו היא כוללת גרפיקה מוצהרת הדגמה (Ifd86d)
הוסר MaskFilter API שאינו בשימוש כי השימוש בו מוגבל ולא עבר אופטימיזציה לשיפור המהירות באמצעות חומרה ברוב המקרים (I54f76)
RectangleForm הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
כל השימושים בצבע nullable ב-API הוחלפו ב- non-null ולהשתמש ב-Color.Unset במקום ב-null (Iabaa7)
הצגה של מלבן אופציונלי נוסף ל-ImagePainter כדי לתמוך שרטוט קטע משנה של ImageAsset (I0ea9e)
נוסף צבע לא מוגדר כדי לייצג ערך לא מוגדר בלי צבעי אגרוף. (If901a)
נוספו אפשרויות Canvas. {5/} ו- שיטות תוסף של Canvas.scale ל- לצרוך קואורדינטות צירים אופציונליות עבור וטרנספורמציות. ברירת המחדל בפינה הימנית העליונה של תרגום הקנבס הנוכחי.
גם Canvas.אוספיםRad הועבר להיות שיטת תוסף לשמירה על עקביות (Ibaca6)
יצרתי PixelMap API לתמיכה לשלוח שאילתות על פרטי פיקסלים מ-ImageAsset. (I69ad6)
השם השתנה ל-FrameworkRect/toFrameworkRectF ל- toAndroidRect/toAndroidRectF כדי להתאים למוסכמות מתן השמות להמרות אובייקטים בין הרכבה ו-Android שהם מבוססים על ממשקי ה-API של framework. עודכנו גם כן מסמכים בממשקי ה-API האלה (I86337)
נוסף VectorPainter API אל להחליף את Subcomposition API קיים בשביל בגרפיקה וקטורית. תוצאה של הרכב משנה הוא אובייקט VectorPainter במקום DrawModifier. DrawVector הקודם הוצא משימוש לתכנים קומפוזביליים לטובת VectorPainter.
שם ה-API של Image(Painter) השתנה ל- PaintBox(Painter) יצרתם קומפוזבילי וקטורי שפועל כמו אפשר ליצור תמונה קומפוזבילית, אבל לא באמצעות VectorAsset במקום זאת של ImageAsset (I9af9a, b/149030271)
השם של התמונה השתנה ל-ImageAsset כדי ליצור הבחנה טובה יותר בין נתוני התמונה לבין התוכן הקומפוזבילי של תמונה שמיועדת לפרסום עתידי. _Body:נוצרה שיטת התוסף ב-android.graphics.Bitmap, Bitmap.asImageAsset(), כדי ליצור מכונה של ImageAsset שימושי לשילוב במכשירי Android מסורתיים פיתוח אפליקציות באמצעות מסגרת הכתיבה (Id5bbd)
נוסף TextDirection.Content (I48f36)
נוסף אופרטור TextDecoration.plus (I0ad1a)
Force
הוסר מערכי TextDirectionAlgorithm (Icc944)השם של TextDirectionAlgorithm נקרא TextDirection (I75ce8)
מיישמת את LongClickAndDrag לבחירת TextField. (I17919)
נוספה AnnotatedString.getStringDescription שמחזיר את כל ההערות בטווח. (I1fa00)
שם החבילה של הלוקאלים והלוקאלים השתנה מ- androidx.ui.text to androidx.ui.intl (I8132c)
הסמן של TextField מציג אנימציה מהבהבת (Id10a7)
שינוי ב-API: השם של AnnotatedString(builder: Builder) השתנה ל-NotedString(builder: Builder). (Ia6377)
שינוי ב-API: השם של AnnotatedString.Item השתנה ל-AnnotatedString.Range. (I2d44d)
שינוי השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)
כעת ניתן להסתיר/להציג את מקלדת התוכנה באמצעות Softwareמקלדתבקר שמסופקת על ידי onTextInputStarted callback (I8dc44, b/151860051)
נוסף אופרטור פלוס לסגנון (טקסט/פסקה/מרווח) נציגים לפונקציה merge() . (Ia1add)
לא מתבצע יותר הצמדה של Fontweight.lerp. זה עדיין סיווג נתונים. (I521c2)
Fontweight constructor הוא ציבורי עכשיו, הוא כבר לא סיווג נתונים. (Id6b1f)
הוספה של getLineStart, getLineEnd, getEllipsisOffset ו-getEllipsisCount ל-TextLayoutresults (Ibc801)
השם של מודול ui-text השתנה ל-ui-text-core (I57dec)
הוסרה סיווג גודל שלא נמצא בשימוש מכיוון שיש כפילות, במודול הווי-גיאומטריה צריכה. (I1b602)
נוסף AdjustList, רכיב של רשימת גלילה שרק מלחין ופורס את הפריטים הגלויים. בעיות מוכרות כרגע מציין שמדובר בפורמט אנכי בלבד והוא לא מטפל במלואו במקרים של שינויים הצאצאים שלו. (Ib351b)
הוספת מרווחים פנימיים, גבולות, צורה ופרמטר רקע ל-Box (I05027, b/148147281)
תיקוני באגים
- קריאה חוזרת של onFocusChange בשדות טקסט ששמם השתנה ל-onFocusChanged (Ida4a1)
- העמודות VerticalScroller ו-HoriziontalScroller הוצאו משימוש. ניתן להשתמש ב- ScrollableColumn וב-SllableRow כדי להתנסות באופן מובנה בהתנהגות ובפרמטרים של עמודות/שורה, או ב-Modifier.verticalScroll ו-Modifier.verticalScroll לרכיב משלך. באופן דומה, ScrollerPosition הוצא משימוש לטובת ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
- השם של
runOnIdleCompose
השתנה ל-runOnIdle
(I83607) - השמות של חלק מממשקי ה-API לבדיקה השתנו ועכשיו הם יותר אינטואיטיביים. הכול השמות של ממשקי ה-API של findXYZ השתנו ל-ב-NodeXYZ. השמות של כל ממשקי ה-API של DoXYZ השתנו ל- לבצעXYZ. (I7f164)
- עכשיו אפשר להרכיב ממשק משתמש ב-ViewGroups בלי הרכבה חדשה. אפשר לראות דוגמה ב-ViewInteropDemo. (I9ab0b, b/160455080)
- נוספו המיון עם ו-removeRange ל-MutableVector (Icccf7)
- צריך להטמיע נקודות אחיזה לבחירת גרירה כדי לשנות את הבחירה ב-TextField. (I27032)
- הוסרה מחלקה מוטבעת של Shader עטוף NativeShader מצפה למחלקה השם של NativeShader השתנה ל-Sshader. הפעילות של הכיתה הארוזה של Shader לא להוסיף שום דבר חשוב לפלטפורמת ה-API והוא היה מחלקה מוטבעת, לכן צריך להשתמש ב-NativeShader ישירות בכיתה. (I25e4d)
צבעי יסוד משודרגים כדי לספק התאמה לעומס (scaling) את המגבלות הנתונים ואת קנה המידה של התוכן הפרמטר. שימושים של צבעים הם יכולים להתאים את תוכן הציור שלהם על סמך הגודל הנתון של את ה-DawScope שבה הם שרטטו.
תוקנה בעיה שבה המטמון של VectorPainter גודל מפת הסיביות הוגדר לגודל ברירת המחדל שלו במקום לגודל הנתון שאליו יש לצייר.
ImagePainter עודכן בהתאם לקנה המידה שלו במקום להסתמך על PainterModifier כדי לעשות את זה בשמו. (I6ba90)
הוספת הפונקציה withFrameNanos ברמה העליונה לתזמון האנימציה (Ie34c5)
הוצאנו משימוש את ההערה @ללא מעקב. מחליפים ב- @ComposableContract(tracked=false) (Id211e)
androidx.ui.foundation.TextFieldValue וגם הפונקציה androidx.ui.input.EditorValue הוצאה משימוש. TextField, תכנים קומפוזביליים של FilledTextField ו-CoreTextField שנעשה בהם שימוש גם סוג זה הוצא משימוש. צריך להשתמש ב- במקום זאת androidx.ui.input.TextFieldValue (I4066d, b/155211005)
תוקנה בעיה שבה קלט הסמן השירות יגרום לקריסה PointerInputFilters הוסרו דרך בתת-הרכב במהלך הפרידה. בעיה זו כבר נפתרה. (I1f48b, b/157998762)
תוקנה בעיה שגרמה לשליחת קלט של מצביע תגרום לקריסה אם PointerInputFilters הוסרו דרך בתת-הרכב במהלך הפרידה. בעיה זו כבר נפתרה. (Iab398, b/157998762)
סיווג רדיוס מחדש להגדרה כיתה מוטבעת. היצירה הנלווית הוסרה במקום ב-constructor של פונקציות עם פרמטר ברירת המחדל כדי שהרדיוס תואם לציר ה-Y פרמטר של רדיוס בציר ה-X.
עודכן ב-DawScope.drawRoundRect לצריכה פרמטר רדיוס יחיד במקום שני פרמטרים נפרדים ערכים צפים של הרדיוס לאורך x ו-y ציר (I46d1b)
התוכן הקומפוזבילי הוא כבר לא הפשטה מועילה. רוב ההרכבה מחדש אמורה להתרחש כתוצאה מהקצאות MutableState. מעבר לזה, מומלץ להשתמש בפונקציה
invalidate
כדי להפעיל הרכבה מחדש של ההיקף הנוכחי. (Ifc992)השימוש במחלקה Px הוחלף במספר הם חלק ארגון מחדש (Refactoring) כך שיסתמך רק על Dp וסוגים פרימיטיביים של פרמטרים של פיקסלים (Iede0b)
שינוי אסטרטגיית יצירת הקוד של המהדר (compiler) ב-Composer. לפני השינוי, המהדר (compiler) לכתיבה היה הופך קריאות לפונקציות קומפוזביליות. בעקבות השינוי הזה אנחנו ממירים עכשיו את הגוף של פונקציה קומפוזבילית ומשאירים את האתר קריאה ללא שינוי (לרוב).
כלומר, רוב הלוגיקה של התקשורת עם סביבת זמן הריצה של הרכבה מתרחשת בתחילת גוף הפונקציה ולא בתחילת ה-callsite.
צריך לבצע את השינוי הזה בהתאם למקור בכל שימוש בכתיבה. רוב המשתמשים בכתיבה לא יצטרכו לעדכן קוד כלשהו כתוצאה מהשינוי הזה.
כדי לתמוך בפעולה הזו, חתימת ה-JVM של כל הפונקציות הקומפוזביליות השתנתה. פונקציה קומפוזבילית שמקבלת פרמטר יחיד הופכת לפונקציה שמקבלת 3 פרמטרים, והפרמטרים הנוספים הם Composer, שהוא מספר שלם 'מפתח'. מספר שלם ב-bitmask שמשמש להפצת מטא-נתונים באמצעות קריאות.
עכשיו גם התכונה 'כתיבה' ממירה ארגומנטים שמוגדרים כברירת מחדל לפונקציה קומפוזבילית. היא עושה זאת בלי להוסיף עומס יתר סינתטי נוסף כברירת מחדל על הפונקציה עצמה, ולכן השינוי הזה יגרום לפחות הגדרה של פונקציות.
שינויים התנהגותיים ידועים הנובעים מכך:
- חלק מהשיחות ידלגו על מקומות שלא היו מגיעים אליהם בעבר
- ביטויים קומפוזביליים בביטויי ארגומנטים שמוגדרים כברירת מחדל נרשמים עכשיו בצורה נכונה ומטופלים
העבודה הזו כללה כמה אופטימיזציות: 1. התוצאה של השוואות של פרמטרים מופצת דרך תרשים הקריאה לפונקציות קומפוזביליות אחרות. התוצאה תהיה פחות השוואות בזמן הריצה, תקטין את גודל הטבלה של מיקומי המשבצות וכן יותר דילוג על פונקציות קומפוזביליות שלא דילגת עליהן בעבר 2. פרמטרים שנקבעים שהם "סטטיים" בזמן הקומפילציה כבר לא מושווים ולא מאוחסנים בזמן הריצה. הפעולה הזו גורמת לצמצום של מספר ההשוואות ולהקטנת טבלת המיקומים. 3. מבנה הזרימה של בקרה בגוף הפונקציות משמש לצמצום מספר הקבוצות שנוצרות. כך גודל הטבלה של מיקומי המשבצות מצטמצם ויש פחות עבודה בסביבת זמן הריצה 4. פרמטרים של שולח ומקלט שאינם בשימוש לפונקציות לא נכללים בקביעת יכולת הדילוג של הפונקציה אם לא נעשה בהם שימוש בתוך גוף הפונקציה.
רוב שינויי התוכנה היו שעלולים לגרום לכשל בממשקי API שהמהדר מטרגט אליהם ישירות, והשימוש האופייני בכתיבה לא יושפע: 1. Composer::startExpr הוסר 2. Composer::endExpr הוסר 3. הממשק Composer::call הוצא משימוש 4. עומסי-החריגים שאינם משתנים של
key
הוסרו. מעכשיו צריך להשתמש בגרסהvararg
. 5. ההערה הזו הוצאה משימוש. אפשר להשתמש ב-key
כתחליף. 6. ScopeUpdateScope::updateScope השתנה כדי לצפות לפונקציה3 במקום פונקציה1 7. הפונקציה startableFunction ו-redeviceableFunctionN עודכנו ועכשיו הם כוללים פרמטרים נוספים של זמן הידור (compile). (I60756, b/143464846)הוסרו מגבילי יישור שהוצאו משימוש. (I10877)
הוסר Re PaintBoundary לטובת DrawLayerModifier (I00aa4)
ללחצן, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabled
נפרד. השמות של חלק מהפרמטרים ב'לחצן' שונו או שהסדר שלהם השתנה. (I54b5a)סגנון הלחצנים הוחלף בפונקציות ייחודיות ועומס יתר של טקסט (מחרוזת). דוגמאות מעודכנות של פרטי שימוש. (If63ab, b/146478620, b/146482131)
שינויי תוכנה ב-Ambis API פרטים נוספים זמינים במסמכי היומן ובמסמכי
Ambient<T>
(I4c7ee, b/143769776)ההתנהגות של ברירת המחדל של TextDirection שונתה כדי לקבוע של LayoutDirection. כלומר, אם LayoutDirection היא בפורמט RTL, ברירת המחדל TextDirection תהיה RTL. בעבר זה היה TextDirection.ContentOrLtr/Rtl (I4e803)
תיקון באגים: כשמשקל הגופן וסגנון הגופן מוצבים במחרוזת AnnotatedString, הטקסט לא מעובד כראוי. (I77a9d)
מוסיפה פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי שיעביר חלק קטן מהפרמטרים האלה, כמו Text(style = TextStyle(text השבתה = Text השבתה.Center)), עכשיו אתם יכולים לספק רק את הפרמטרים ישירות: Text(text קשורה = Text השבתה.Center) (I82768)
השם של מודול ui-android-text השתנה ל-ui-text-android (I68cbe)