Compose Foundation

כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם של מערכת עיצוב.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
13 בנובמבר 2024 1.7.5 - - 1.8.0-alpha06

מבנה

Compose הוא שילוב של 7 מזהי קבוצות Maven ב-androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, עם הערות משלה לגבי הגרסה.

בטבלה הזו מוסבר על הקבוצות ומוצגים קישורים לכל קבוצה של הערות המוצר.

קיבוץתיאור
compose.animationפיתוח אנימציות באפליקציות שלהם ב-Jetpack Compose כדי להעשיר את חוויית המשתמש.
compose.compilerשינוי פונקציות עם @Composable והפעלת אופטימיזציות באמצעות פלאגין של קומפילר Kotlin.
compose.foundationכתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם של מערכת עיצוב.
compose.materialפיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה יותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io.
compose.material3פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הגרסה הבאה של Material Design. Material 3 כולל רכיבים ועיצוב נושאים מעודכנים ותכונות של התאמה אישית של Material You, כמו צבעים דינמיים. הוא תוכנן כך שיהיה עקבי עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת.
compose.runtimeאבני בניין בסיסיות של מודל התכנות ושל ניהול המצב ב-Compose, וזמן ריצה ליבה שאליו פונה הפלאגין של Compose Compiler.
compose.uiרכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים כדי לקיים אינטראקציה עם המכשיר, כולל פריסה, ציור והזנה.

הצהרת יחסי תלות

כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Google Maven לפרויקט. למידע נוסף, אפשר לקרוא את המאמר מאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
    implementation "androidx.compose.foundation:foundation:1.7.5"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:1.7.5")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.8

גרסה 1.8.0-alpha06

13 בנובמבר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha06 משוחרר. גרסת 1.8.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • הוספת המשתנה stylusHoverIcon. (Iff20a, ‏ b/331289114)
  • confirmValueChange של AnchoredDraggableState הוצא משימוש. במקום לדחות שינויים במצב, לא צריך לכלול עוגנים אסורים בקבוצת העוגנים הפעילה, וצריך להשתמש ב-OverscrollEffect כדי לציין את חוסר הזמינות של הפעולה המבוקשת. (Ia717f)
  • שינוי מנהל המילוי האוטומטי לממשק. (I84914, ‏ b/376080755)
  • הוספת ממשקי ה-API OverscrollEffect#withoutDrawing ו-OverscrollEffect#withoutEventHandling – ממשקי ה-API האלה יוצרים מופע עטוף של אפקט הגלילה החורגת שסופק, שלא מצייר או מטפל באירועים, בהתאמה. כך אפשר ליצור עיבוד גרפי של גלילה חורגת ברכיב נפרד מהרכיב שמפנה אירועים. לדוגמה, השבתת הציור של גלילה מעבר למטה בתוך רשימה עצלה, ולאחר מכן ציור של גלילה מעבר למטה בנפרד בחלק העליון או במקום אחר. (Idbb3d, ‏ b/266550551, ‏ b/204650733, ‏ b/255554340, ‏ b/229537244)
  • הוספת תמיכה במילוי אוטומטי בסרגל הכלים של הטקסט. (Ie6a4c)
  • הוצאה משימוש של OverscrollConfiguration ו-LocalOverscrollConfiguration, והוספה של rememberPlatformOverscrollFactory כדי ליצור מופע של פרמטרים של הטמעת ברירת המחדל של גלילה מעבר לקצה המסך או להתאים אישית את הפרמטרים. כדי להשבית את האפשרות לגלילה מעבר לקצה המסך, במקום LocalOverscrollConfiguration provides null צריך להשתמש ב-LocalOverscrollFactory provides null. כדי לשנות את צבע ההילה או את המילוי, במקום LocalOverscrollConfiguration provides OverscrollConfiguration(myColor, myPadding), משתמשים ב-LocalOverscrollFactory provides rememberPlatformOverscrollFactory(myColor, myPadding). (Ie71f9, ‏ b/255554340, ‏ b/234451516)
  • שינינו את המאפיין effectModifier ב-OverscrollEffect ל-node: DelegatableNode, בהתאם לממשקי API אחרים. (Ic0b46, ‏ b/255554340)
  • ה-API הניסיוני GlobalAssertions הוסר. השימוש המיועד בו היה להריץ בדיקות נגישות. לצורך זה, מומלץ להשתמש ב-enableAccessibilityChecks() במקום זאת. (I59322)

גרסה 1.8.0-alpha05

30 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha05 משוחרר. גרסת 1.8.0-alpha05 כוללת את ההוספות האלה.

תכונות חדשות

  • תמיכה בגודל טקסט אוטומטי. מעבירים מופע של AutoSize (למשל AutoSize.StepBased) ל-composable הטקסט המועדף עליכם (כמו BasicText) ורואים שגודל הטקסט משתנה בהתאם למרחב הזמין. (Ice7e0, ‏ b/139320827)
  • הוספת ממשקי ה-API OverscrollFactory ו-LocalOverscrollFactory כדי לאפשר הגדרת גלילה מעבר לקצה בתוך היררכיה. הערך שסופק דרך LocalOverscrollFactory ישמש כברירת מחדל ליצירת OverscrollEffect. כדי ליצור אפקט ולשמור אותו מהמפעל הנוכחי שסופק, משתמשים ב-rememberOverscrollEffect(). (I51ca4, ‏ b/255554340)

שינויים ב-API

  • הוספת CompositionLocal שאפשר להשתמש בו כדי לשנות את הגוון של ההדגשה של המילוי המוצלח של המילוי האוטומטי. (I32092)
  • הוסר ScrollableDefaults.overscrollEffect – במקום זאת, צריך להשתמש ב-rememberOverscrollEffect. הפעולה הזו תיצור מופע של ההטמעה הנוכחית של גלילה מעבר לקצה המסך שסופקה עם LocalOverscrollFactory. (I1651a, b/255554340),(b/234451516)
  • אנחנו משיקים ממשק AutofillManager חדש שאפשר להשתמש בו כדי לשפר את חוויית המילוי האוטומטי של המשתמשים, ודגל isSemanticAutofillEnabled להפעלת הגרסה החדשה הזו של המילוי האוטומטי. (I9d484)
  • הסרה של CombinedClickableNode. ממשק ה-API הניסיוני הזה נחשף באופן זמני כדי לבטל את החסימה של עבודות בנושא ביצועים, אבל הוא כבר לא נדרש. במקום זאת, צריך להשתמש ישירות ב-Modifier.combinedClickable כמו בממשקי API אחרים של מודификаторים. (I4b658)
  • הוספת עומסי יתר ל-horizontalScroll,‏ verticalScroll,‏ LazyColumn,‏ LazyRow,‏ LazyHorizontalGrid,‏ LazyVerticalGrid,‏ LazyHorizontalStaggeredGrid,‏ LazyVerticalStaggeredGrid,‏ HorizontalPager ו-VerticalPager עם תמיכה בקביעה של OverscrollEffect בהתאמה אישית. ה-OverscrollEffect שסיפקתם יקבל אירועים ויומר בתוך גבולות הרכיבים האלה. לתשומת ליבכם: אי אפשר לצייר את אותו OverscrollEffect פעמיים – לכן אי אפשר לצייר את אותו OverscrollEffect שסופק לאחד מהרכיבים האלה בנפרד באמצעות Modifier.overscroll. בעתיד נטפל בנפרד בתרחיש לדוגמה של ציור גלילה מעבר למסגרת של הרכיבים האלה. (I2dc42, ‏ b/266550551, ‏ b/234274772, ‏ b/224572538, ‏ b/353805117)

גרסה 1.8.0-alpha04

16 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha04 משוחרר. גרסת 1.8.0-alpha04 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספת קריאות חזרה (callbacks) של DelegatableNode#onDensityChange ו-DelegatableNode#onLayoutDirectionChange כדי לאפשר עדכון של מצב הצומת כשהשינויים האלה מתרחשים. (I04f3e, ‏ b/340662451)
  • עכשיו, האפשרויות Paragraph ו-ParagraphIntrinsics מקבלות רשימה של כל ההערות שהוחלו על ה-AnnotatedString. בעבר, האפשרויות האלה קיבלו רק רשימה של SpanStyles. (I12f80)
  • הוספנו את PointerInputModifierNode#touchBoundsExpansion, שאפשר להשתמש בו כדי להגדיל את גבולות המגע של שינוי קלט של מצבית אצבע אחת. (Iccf02, ‏ b/335339283)

תיקוני באגים

  • תוקן באג שבו ערכי הסף למיקום שהועברו אל AnchoredDraggableDefaults.flingBehavior לא נלקחו בחשבון בצורה נכונה בתרחישים מסוימים. (Ifdf0d, ‏ b/367660226)
  • תיקון לרכיבים נגללים בתצוגת עץ של צמתים, שמוסרים מהעץ במהלך תנועה רציפה. עכשיו הצמתים האלה יבטל את התנועה המהירה וישלחו בצורה נכונה את האירוע onPostFling עם המהירות שנותרה. אנחנו גם משיקים את הדגל NewNestedScrollFlingDispatchingEnabled כדי לשלוט בהתנהגות במקרה של נסיגה (regression). הדגל יוסר לפני גרסת הבטא. (I05c37, ‏ b/371168883)
  • תוקן באג שבו OverscrollEffects שהועברו ל-Modifier.anchoredDraggable קיבלו דלתאות 2D במקום 1D. (Ie52c0)

גרסה 1.8.0-alpha03

2 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha03 משוחרר. גרסת 1.8.0-alpha03 כוללת את ההוספות האלה.

שינויים ב-API

  • עדכון הגרסה של Kotlin ל-1.9 (I1a14c)
  • הוסף הדגל DraggableAddDownEventFixEnabled (I848d5)
  • הוספנו תפקיד סמנטי חדש בשם Carousel (קרוסלה) כדי לדמות את התנהגות הרשימה ב-Pagers לשירותי נגישות. (Id354b, ‏ b/354109776, ‏ b/239672673)
  • הוסר המשתנה המשתנה graphicsLayer מ-BasicText composable. הוספנו את הדגל הניסיוני ComposeFoundationFlags.RemoveBasicTextGraphicsLayerEnabled כדי שתוכלו לחזור להתנהגות הישנה. (Ie478d)
  • הוספנו את Modifier.recalculateWindowInsets() כדי לאפשר לצאצאים בהיררכיה להשתמש ב-insetsPadding גם כשההורים יישרקו אותם בלי consumeWindowInsets(). (I7f9e4)

תיקוני באגים

  • הטמעת איסוף תנועות ב-detectDragGestures, ברכיבים שניתן לגרור וברכיבים שניתן לגלול בהם. עכשיו, אם ילד או ילדה לא מצליחים לגרור אובייקט, ההורה יכול להרים אותו. כך אפשר לטפל בתנועות בצורה רציפה ומשולבת יותר. (Ic88fe)
  • עדכון התנהגות הביטול של תנועת ה-fling ברכיבים שניתן לגלול בהם. עכשיו, אם תוכן שאפשר לגלול בו יזוז במהירות גבוהה ויגיע לגבולות, הוא יעביר את מהירות ההזזה בצורה נכונה לתוכן הבא שאפשר לגלול בו בשרשרת, במקום להמשיך להניע את ההזזה. (I9326a)

גרסה 1.8.0-alpha02

18 בספטמבר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha02 משוחרר. גרסת 1.8.0-alpha02 כוללת את ההוספות האלה.

שינויים ב-API

  • עכשיו אפשר להשתמש ב-TextOverflow.StartEllipsis וב-TextOverflow.MiddleEllipsis כדי להציב נקודה-שלושה-נקודות בתחילת השורה או באמצע השורה של הטקסט בשורה אחת (I38913, ‏ b/185418980)

גרסה 1.8.0-alpha01

4 בספטמבר 2024

androidx.compose.foundation:foundation-*:1.8.0-alpha01 משוחרר. הגרסה 1.8.0-alpha01 כוללת את ההוספות האלה.

גרסה 1.7

גרסה 1.7.5

30 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.7.5 משוחרר. גרסה 1.7.5 כוללת את ההוספות האלה.

תיקוני באגים

  • חשוב לוודא שפריטים מוצמדים לא מופיעים פעמיים באזור של הפס העליון של התוכן. (Ic6224)

גרסה 1.7.4

16 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.7.4 משוחרר. גרסה 1.7.4 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקן באג שגרם לקריסה נדירה בשדות טקסט. (I475c6, ‏ b/313010266)
  • הוסר ReusableContentHost ברמה הבסיסית של פריטים בפריסה עצלה. זו הייתה סיבה אפשרית לקריסות מסוג 'מדידה נקראת בצומת מושבת'. (Id6e60)

גרסה 1.7.3

2 באוקטובר 2024

androidx.compose.foundation:foundation-*:1.7.3 משוחרר. גרסה 1.7.3 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה דליפת זיכרון ב-BasicText כשהערך של minLines מוגדר לערך שאינו ערך ברירת המחדל.

גרסה 1.7.2

18 בספטמבר 2024

androidx.compose.foundation:foundation-*:1.7.2 משוחרר. גרסה 1.7.2 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקנה בעיה ברכיבים שניתן לגרור, שבהם חסרים אירועים של תנועה למטה, מה שגרם לתנועות מהירות להיראות איטיות מהרגיל.

גרסה 1.7.1

10 בספטמבר 2024

  • אין שינויים בפריטי המידע שנוצרו בתהליך פיתוח (artifacts) של Android. הוסרו ארטיפקטים מסוג -desktop והתווספו ארטיפקטים מסוג -jvmStubs ו--linuxx64Stubs. אין להשתמש באף אחד מהיעדים האלה. הם משמשים כסמנים לעזרה במאמצים של Jetbrains Compose.

גרסה 1.7.0

4 בספטמבר 2024

androidx.compose.foundation:foundation-*:1.7.0 משוחרר. גרסת 1.7.0 כוללת את ההוספות האלה.

שינויים חשובים מאז גרסה 1.6.0

  • הביצועים של Modifier.clickable, ‏ Modifier.focusable, ‏ Modifier.indication, ‏ Modifier.scrollable ו-Modifier.draggable השתפרו באופן משמעותי. כחלק מהמאמצים האלה, בנוסף לשינויים פנימיים, בוצעו השינויים הבאים ב-API:
    • נוספה אינדיקציה חדשה ל-API, IndicationNodeFactory. כך אפשר ליישם אינדיקציות בצורה יעילה יותר בהשוואה לממשק ה-API הקודם (שעבר הוצאה משימוש) ‏rememberUpdatedInstance. מידע נוסף על העברה זמין בכתובת developer.android.com.
    • עכשיו אפשר להעביר פרמטר MutableInteractionSource שיכול להיות null ל-clickable / combinedClickable / selectable / toggleable. אם הערך הוא null והאינדיקציה שצוינה היא IndicationNodeFactory, אפשר ליצור את האינדיקציה באופן עצל רק כשצריך, וכך לשפר את הביצועים. אם לא מעלים את MutableInteractionSource ומשתמשים בו, מומלץ להעביר null במקום להעביר remember { MutableInteractionSource() }.
    • האפשרות Indication#rememberUpdatedInstance הוצאה משימוש. יש לו פגיעה גבוהה ואי-אפשרת בביצועים, והוא מונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactory API החדש.
  • BasicTextField באמצעות TextFieldState יציב עכשיו, ואנחנו ממליצים לכל אתרי הקריאה להתחיל את ההעברה מ-BasicTextField(value, onValueChange) ל-BasicTextField(TextFieldState).
  • האפשרות ClickableText הוצאה משימוש. כדי להוסיף לטקסט קישורים שניתן ללחוץ עליהם, משתמשים ב-BasicText עם ההערה החדשה LinkAnnotation ב-AnnotatedString. LinkAnnotation מאפשרת להגדיר עיצוב מותאם אישית על סמך מצב הקישור (למשל, ממוקד, מרחף).
  • חדש: ContextualFlowRow ו-Enhanced FlowRow/Column עם MaxLines ו-Overflow. אנחנו שמחים לבשר על שיפורים ב-FlowRow וב-FlowColumn הניסיוניים, שכוללים עכשיו תמיכה ב-maxLines וב-overflow, לצד ההשקה של ContextualFlowRow ו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים עם ביצועים אופטימליים. הרכיב ContextualFlow* מתאים למספר גדול של פריטים, תוך שימוש בהגדרה קטנה של maxLines ובלחצנים דינמיים מסוג 'עוד N'. הרכיבים FlowRow ו-FlowColumn מתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRow או ב-FlowColumn, שבה כל הפריטים מורכבים ללא קשר להתאמה שלהם למגבלה המקסימלית של הציר הרוחבי, צריך להגדיר את ה-overflow ל-FlowRowOverflow.Visible או ל-FlowColumnOverflow.Visible במהלך האינטליקציה. ב-ContextualFlowRowSample וב-FlowRowSample אפשר למצוא דוגמאות לתכונות החדשות האלה בפעולה. (Ib9135, ‏ b/293577082)
  • נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-LazyColumn וב-LazyRow. בעבר אפשר היה להוסיף את המאפיין Modifier.animateItemPlacement() כדי לתמוך באנימציות של מיקומי מודעות (שינוי סדר). הוצאנו משימוש את המשתנה הזה והוספנו משתנה חדש שאינו ניסיוני בשם Modifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הבהרה), היעלמות (הכהה) ושינוי סדר. (I2d7f7, ‏ b/150812265)
  • הוספנו תמיכה ניסיונית בצילום מסך ארוך בקונטיינרים לגלילה ב-Compose באמצעות Android API הרשמי (ScrollCaptureCallback).
  • המקורות NestedScroll של 'גרירה' ו'השלכה' מוחלפים ב-UserInput וב-SideEffect כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו אנימציות (Side Effect) וגלגלת העכבר ומקלדת (UserInput).
  • עכשיו אפשר לסמן בקשות LazyLayout של אחסון מראש כחשובות. המשמעות היא שאנחנו צופים שהפריט הזה יהיה נדרש בפריים הבא, ואנחנו רוצים להתעלם מתקציב הפריימים כדי לוודא שנבצע יותר עבודה מראש (Id513f)
  • תמיכה בתכונה 'כתיבה בסטיילוס' במכשירים עם Android מגרסה U ואילך. (I002e4)
  • ממשקי API שונים הועברו לסטטוס יציב
    • מכשירי קריאה, הצמדה, חלונות מוטמעים

גרסה 1.7.0-rc01

21 באוגוסט 2024

androidx.compose.foundation:foundation-*:1.7.0-rc01 משוחרר. גרסת 1.7.0-rc01 כוללת את ההוספות האלה.

תיקוני באגים

  • תוקנה נסיגה (regression) שבה קריסה התרחשה כשמיקוד הועבר לאלמנט כלשהו בתוך רכיב הורה שאפשר להעביר אליו את המיקוד (או ללחוץ עליו) והוא מושבת. (b/317561689)

גרסה 1.7.0-beta07

7 באוגוסט 2024

androidx.compose.foundation:foundation-*:1.7.0-beta07 משוחרר. גרסת 1.7.0-beta07 כוללת את ההוספות האלה.

תיקוני באגים

  • פונקציות SemanticsNodeInteraction שקשורות לקלט טקסט, performTextReplacement,‏ performTextInput ו-performTextClearance, יגרמו עכשיו לשגיאות טענת נכוֹנוּת (assertion) כשהן יישלחו ל-TextFields לקריאה בלבד. (I4ae8f)
  • תוקנה בעיה חזותית בהיפר-קישורים. (I23311)
  • תוקן באג שבו המקש המשנה contentReceiver לא עבד עם חלק מ-IME.
  • יצירת מהירות: מניעת התפשטות של ערכים NaN בממשק המשתמש וב-Foundation של Compose.

גרסה 1.7.0-beta06

24 ביולי 2024

androidx.compose.foundation:foundation-*:1.7.0-beta06 משוחרר. גרסת 1.7.0-beta06 מכילה את ההוספות האלה.

גרסה 1.7.0-beta05

10 ביולי 2024

androidx.compose.foundation:foundation-*:1.7.0-beta05 משוחרר. גרסת 1.7.0-beta05 כוללת את ההוספות האלה.

תיקוני באגים

  • תיקון לטיפול בערכים של Nan ב-SnapFlingBehavior וב-Pager.

גרסה 1.7.0-beta04

26 ביוני 2024

androidx.compose.foundation:foundation-*:1.7.0-beta04 משוחרר. גרסת 1.7.0-beta04 כוללת את ההוספות האלה.

תיקוני באגים

  • תיקון שגיאה שגרמה לקריסות בזמן מדידת שורות טקסט ארוכות מאוד (למשל, 10,000 תווים) (8157ab)
  • תיקון למדידת טקסט גדול מאוד שגורם לקריסה ב-BasicTextField החדש (6b7575)
  • החזרה למצב הקודם של שינוי התנהגות במדידת שורה/עמודה שגורם לשיבושים בשימוש בטקסט בתרחישים מסוימים (69e8ba)

גרסה 1.7.0-beta03

‫12 ביוני 2024

androidx.compose.foundation:foundation-*:1.7.0-beta03 משוחרר. גרסת 1.7.0-beta03 מכילה את ההוספות האלה.

גרסה 1.7.0-beta02

29 במאי 2024

androidx.compose.foundation:foundation-*:1.7.0-beta02 משוחרר. גרסת 1.7.0-beta02 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספת ממשק API ניסיוני להגדרת התנהגות של LazyGrids לטעינת נתונים מראש, בדומה לממשק ה-API הניסיוני הקיים ל-LazyLists. התמיכה הזו כוללת גם טעינה מראש של פריטים ב-LazyGrids בתצוגת עץ. בדומה ל-LazyListPrefetchStrategy, כברירת מחדל בהטמעה מתבצע אחסון מראש של 2 הפריטים הראשונים בתצוגת העץ של כל רשת, אבל אפשר להגדיר זאת באמצעות ממשקי ה-API החדשים LazyGridPrefetchStrategy(nestedPrefetchItemCount) ו-LazyListPrefetchStrategy#onNestedPrefetch. (I591c4)
  • השם של SemanticsProperties.Editable השתנה ל-IsEditable ו-SemanticsPropertyReceiver.editable השתנה לערך isEditable. המאפיין הוא עכשיו בוליאני ותמיד מצוין באמצעות שדות טקסט. (I8acd8)
  • ערכי ברירת המחדל של basicMarquee הועברו לאובייקט MarqueeDefaults. (I12ff6)
  • השם של הפרמטר basicMarquee delayMillis השתנה ל-repeatDelayMillis. (I12ff6)
  • עדכון ה-API לעיצוב הקישורים: העברת ה-TextLinkStyles אל ה-TextStyle והסרת ה-TextDefaults מהחומר (I5477b)

תיקוני באגים

  • השם של LayoutCoordinates.introducesFrameOfReference שונה ל-LayoutCoordinates.introducesMotionFrameOfReference כדי לשקף טוב יותר את המטרה שלו. שינוי השם של פונקציה קשורה כדי לחשב קואורדינטות על סמך הדגל הזה. (I3a330)
  • הוסר 'ברירת מחדל' מהנכסים MarqueeDefaults. (I1d8a0)
  • הוסרו 'מודעות Marquee' מהנכסים MarqueeDefaults. (Iad4f4)
  • TextLinkStyles הוסר מהכיתה TextStyle. במקום זאת, TextLinkStyles הוא חלק מהמגדיר (constructor) של LinkAnntation ומהשיטה AnnotatedString.fromHtml (I90b2b)
  • תוקן באג שגרם לכך ש-Pager יקפוץ כשמחליקים לגבול מסוים בזמן שהוא כבר נמצא בגבול הזה. (I9f373, ‏ b/339171222)
  • עכשיו יש ב-BTF2 תנועות בחירה תקינות בעכבר. (Ibe8c6)

תרומה חיצונית

  • שליחת מחדש של 'שינוי סוג התוכן של חישוב הזמן ליצירה/מדידה על סמך אחסון מקדים כדי לשפר את הדיוק' (Iea622)
  • שינוי החישוב של זמן הכתיבה/המדידה לפי סוג התוכן שמבוסס על אחסון מקדים (prefetch) כדי לשפר את הדיוק (Ibccb1)
  • איך מגדירים את המשתנים WindowInsetsPadding כזמינים מקבוצת מקורות משותפת (I070b2)

גרסה 1.7.0-beta01

14 במאי 2024

androidx.compose.foundation:foundation-*:1.7.0-beta01 משוחרר. גרסת 1.7.0-beta01 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספנו מחדש את המאפיין KeyboardOptions.shouldShowKeyboardOnFocus כמאפיין מוסתר שהוצא משימוש לצורך תאימות לפורמט בינארי. (I15cfe)
  • Modifier.anchoredDraggable הופך עכשיו את ההפרשים בגרירה כברירת מחדל לרכיבים עם כיוון אופקי כשמשתמשים בפריסה ב-RTL. (I3c6d9)
  • AnnotatedString.hasEqualsAnnotations הוא עכשיו hasEqualAnnotations. (I685c0)
  • עדכנו את ה-API לקבלת קישורים בעיצוב Material בטקסט. באופן ספציפי, הוסרו מה-TextDefaults השיטות ליצירת LinkAnnotations מעוצב ולניתוח HTML עם קישורים מעוצבים. במקום זאת, הוספנו את הכיתה TextLinkStyles שמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93)
  • החלפתם את onDragStarted ו-onDragStopped בקריאות חזרה ללא השהיה. (I59de8)

תיקוני באגים

  • תוקן באג שגרם ל-Pager לקרוס כשהערך של contentPadding היה גדול מהאילוצים הנכנסים. מעכשיו, Pager מאלץ ערכים שליליים שמוחזרים מ-PageSize להיות 0. (Iba5d8, ‏ b/314008560)

גרסה 1.7.0-alpha08

1 במאי 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha08 משוחרר. גרסת 1.7.0-alpha08 כוללת את ההוספות האלה.

תכונות חדשות

  • הוספנו תפריט הקשר של לחיצה ימנית ל-BasicTextField ול-SelectionContainer עם פעולות של חיתוך, העתקה, הדבקה ובחירת הכול. (If8c93, ‏ Ia2b49, ‏ I6f268)

שינויים ב-API

  • עכשיו אפשר לסמן בקשות LazyLayout של אחסון מראש כחשובות. המשמעות היא שאנחנו צופים שהפריט הזה יהיה נדרש בפריים הבא, ואנחנו רוצים להתעלם מתקציב הפריימים כדי לוודא שנבצע יותר עבודה מראש (Id513f)
  • השם של isPositionedByParentWithDirectManipulation השתנה ל-introducesFrameOfReference. הערה: עכשיו יש לו את ההשפעה ההפוכה, כלומר כברירת מחדל, רוב ה-LayoutCoordinates מציבים מסגרת הפניה, ורק כשהם נתונים לטיפול ישיר, הערך של המאפיין יהיה שקר. כדי לשלוח שאילתה לגבי מיקום עם פריטים שמציגים רק מסגרת הפניה, משתמשים ב-positionInLocalFrameOfReference(...). או positionInLocalLookaheadFrameOfReference מ-LookaheadScope. (Ifc5f7)
  • השם של onClicked השתנה ל-onClick בתוך LinkInteractionListener (Iaa35c)
  • שינוי הפונקציה lambda של הפעולה עבור getScrollViewportLength בהתאם למשוב של ועדת ה-API. (Ibc74a)
  • שינוי השם של ממשקי ה-API להענקת גישה לכתיבה ידנית בסטיילוס. (Ica45f, ‏ b/327271923)
  • משנים את השם של TextInclusionStrategy.isInside ל-isIncluded. צריך להגדיר את סוג ההחזרה של Paragraph/MultiParagraph#getRangeForRect() כבלתי ניתן לאפס. (I51f26)

תיקוני באגים

  • הוספנו את האפשרות 'בחירת הכול' לכל התפריטים לפי הקשר של הטקסט ב-SelectionContainer. (Ib750e, ‏ b/240143283)
  • תוקנה בעיה בצילום מסך ארוך של קונטיינרים שגלול בהם באמצעות reverseScrolling=true. (I7c59c)
  • תוקנה בעיה שבה הערך של currentValue ב-AnchoredDraggableState השתנה כשהתקרבתם לגבולות המדינה. (Iea30b, ‏ b/333846848)

תרומה חיצונית

  • השם השתנה מ-PrefetchExecutor ל-PrefetchScheduler כדי לשקף טוב יותר את האחריות שלו. (Ib9154)
  • הוספנו תמיכה בהטמעה מראש של פריטים ב-LazyLists בתצוגת עץ (למשל, LazyColumn שמרינדר LazyRows בתצוגת עץ). השינוי הזה צפוי לצמצם את ירידות הפריימים במהלך גלילה ב-LazyLists האלה. כברירת מחדל, ההטמעה כוללת אחסון מראש של 2 הפריטים הראשונים בתצוגת העץ, אבל אפשר לשלוט בהתנהגות הזו באמצעות ממשקי ה-API החדשים LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) ו-LazyListPrefetchStrategy#onNestedPrefetch. (I51952)

גרסה 1.7.0-alpha07

17 באפריל 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha07 משוחרר. גרסת 1.7.0-alpha07 כוללת את ההוספות האלה.

תכונות חדשות

  • נוספו אובייקט TextDefaults שמכיל שיטות ליצירת LinkAnnotation ולניתוח מחרוזת עם תג HTML, שמחילה את MaterialTheme על הקישורים. (I98532, ‏ b/139312671)
  • נוספה תמיכה באנימציות של הופעה והיעלמות של פריטים ב-LazyVerticalGrid וב-LazyHorizontalGrid. בעבר אפשר היה להוסיף את המאפיין Modifier.animateItemPlacement() כדי לתמוך באנימציות של מיקומי מודעות (שינוי סדר). הוצאנו משימוש את המשתנה הזה והוספנו משתנה חדש שאינו ניסיוני בשם Modifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הבהרה), היעלמות (הכהה) ושינוי סדר. (Ib7d12, ‏ b/330510929)
  • נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-LazyVerticalStaggeredGrid וב-LazyHorizontalStaggeredGrid. בעבר אפשר היה להוסיף את המאפיין Modifier.animateItemPlacement() כדי לתמוך באנימציות של מיקומי מודעות (שינוי סדר). הוצאנו משימוש את המשתנה הזה והוספנו משתנה חדש שאינו ניסיוני בשם Modifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הבהרה), היעלמות (הכהה) ושינוי סדר. (I69bc9, ‏ b/330511290)

שינויים ב-API

  • הוספת ContextMenuColors ו-LocalContextMenuTheme ProvidableCompositionLocal המשויך. אפשר לשנות את הצבעים של תפריט ההקשר בשדות טקסט ובטקסט שניתן לבחירה על ידי ציון ה-composition local. (Ifa154)
  • קישורי טקסט קיבלו אפשרות סגנון למצב לחיצה, בנוסף לסגנון הרגיל, למצב העברה עם העכבר ולמצב התמקדות. (I5f864, ‏ b/139312671)
  • להציג את ViewConfiguration.HandwritingGestureLineMargin לתנועות כתב יד. תמיכה בתנועת כתיבה ידנית עבור BasicTextField. (Ie6e13, ‏ b/325660505)
  • הוסר DelegatableNode.scrollIntoView במהדורה 1.7 כי לא היה לנו זמן לסיים את תהליך היציבות של שאר רכיבי ה-API הקשורים. הפונקציה הזו תושק מחדש בגרסה 1.8 (I6cf61, ‏ b/333421581, ‏ b/332900232)
  • כששולחים שאילתה לגבי קואורדינטות של פריסה, עכשיו אפשר להשתמש בארגומנט excludeDirectManipulationOffset כדי להחריג את ההיסט שהוגדר על ידי פריסות הורה שהציבו את הצאצאים שלהן באמצעות Placeable.PlacementScope.withDirectManipulationPlacement. באופן דומה, עיצוב שמשנה את המיקום של צאצאיו לעיתים קרובות יכול עכשיו למקם אותם באמצעות withDirectManipulationPlacement (למשל 'גלילה', שמוטמע כברירת מחדל). כך אפשר ליצור אנימציות מבוססות-approachLayout באופן אינטואיטיבי יותר, כי עכשיו יש לכם אפשרות להבדיל בין ההיסט שרוצים להנפיש לבין מה שרוצים להחיל ישירות כשמחליטים להנפיש את הגישה שלכם. (I60ec7)
  • הצגת requestScrollToItem עבור LazyStaggeredGrid. עכשיו, בכל סבב מדידה, הלקוח יכול לבטל את ההסכמה לניהול האינדקס על סמך המפתח באמצעות קריאה ל-requestScrollToItem. הפעולה הזו לא משנה את ההתנהגות הקיימת בשום צורה, אלא אם requestScrollToItem נקרא. (I63983)
  • הצגת requestScrollToPage ב-Pager. עכשיו, בכל סבב מדידה, הלקוח יכול לבטל את ההסכמה לניהול האינדקס על סמך המפתח באמצעות קריאה ל-requestScrollToPage. הפעולה הזו לא משנה את ההתנהגות הקיימת בשום צורה, אלא אם requestScrollToPage נקרא. (Ic4213)
  • הוצגה requestScrollToItem עבור LazyGrids. עכשיו, בכל סבב מדידה, הלקוח יכול לבטל את ההסכמה לניהול האינדקס על סמך המפתח באמצעות קריאה ל-requestScrollToItem. הפעולה הזו לא משנה את ההתנהגות הקיימת בשום צורה, אלא אם requestScrollToItem נקרא. (I0a7a0)
  • האפשרות ClickableText סומנה כמיושנת. כדי להוסיף קישורים לטקסט, יוצרים AnnotatedString עם LinkAnnotation שתואם לקישור ומעבירים את ה-AnnotatedString הזה ל-composable של Text (I34d4b, ‏ b/323346994)
  • UrlAnnotation הוצא משימוש. יש להשתמש ב-LinkAnnotation.Url במקום זאת. אם אתם משתמשים בנושאים של Material Design, צריך להשתמש באובייקט TextDefaults כדי ליצור את ההערה עם נושאים של Material Design שיוחלו עליה (I8d180, ‏ b/323346545)
  • השם של String.parseAsHtml השתנה ל-AnnotatedString.Companion.fromHtml (I43dcd)
  • נוספו ארגומנטים של עיצוב (linkStyle, focusedLinkStyle, hoveredLinkStyle) ומאזין לאינטראקציה עם קישורים לשיטה parseAsHtml. כשמנתחים את המחרוזת המתויגת ב-HTML באמצעות תגי <a>, השיטה יוצרת LinkAnnotation.Url לכל תג כזה ומעבירה את אובייקטי הסטיילינג ואת הקשיב לאינטראקציה עם הקישור לכל הערה. (I7c977)
  • LinkAnnotation מקבל עכשיו את הארגומנטים של עיצוב המבוסס על המצב ואת LinkInteractionListener. מוסיפים את ההערה הזו ל-AnnotatedString כדי ליצור היפר-קישור. העברת הערכים focusedState ו/או hoveredState מאפשרת להגדיר את ההגדרה החזותית של הקישורים כשהם במוקד או כשעובר מעליהם העכבר. (I81ce4, ‏ b/139312671)
  • ה-feature flag של צילומי מסך ארוכים הוסר. (I28648, ‏ b/329128246)
  • LazyColumn ידפיס עכשיו כותרות מוצמדות בצורה נכונה בצילומי מסך ארוכים. (I8d239, ‏ b/329296635)
  • רוב ממשקי ה-API הניסיוניים שנותרו, שהוצגו עם BasicTextField החדש, התייצבו. (I714e2)
  • נוספו הפרמטרים textObfuscationCharacter ו-BasicSecureTextField, שמאפשרים לקבוע את התווים שבהם יש להשתמש במהלך ערפול התוכן. (I0588b)
  • המקורות NestedScroll 'גרירה' ו'השלכה' מוחלפים במקורות UserInput ו-SideEffect כדי להתאים להגדרה המורחבת של המקורות האלה, שכוללת עכשיו גם אנימציות (Side Effect) וגלגל עכבר ומקלדת (UserInput). (I40579)
  • הצגת LocalBringIntoViewSpec, התנהגות גלילה של המיקוד שתלויה בפלטפורמה שחלה בשכבת המשתנה הניתנת לגלילה. (I27aa5, ‏ b/317453911)
  • בוצעה הסרה של TextFieldCharSequence. השדה TextFieldBuffer.originalValues מוחלף בשדות TextFieldBuffer.originalText ו-TextFieldBuffer.originalSelection. (I2c7d6)
  • השדה ImeOptions.hintLocales לא יכול יותר להכיל ערך null. אם רוצים להעביר רשימת Locale ריקה, צריך להשתמש ב-LocaleList.Empty. (Ic5bc4)
  • השם של getOffsetFractionForPage השתנה ל-getOffsetDistanceInPages. (Ia05e2)

תיקוני באגים

  • כשInputTransformations מצטרפים ל-next, עכשיו ה-KeyboardOptions שלהם מתמזגים כראוי לפי אפשרויות ספציפיות באמצעות השיטה החדשה KeyboardOptions.merge. (Ie5304, ‏ b/295951492)
  • עכשיו targetValue של AnchoredDraggableState לא מתייחס יותר לסף מיקומים. עכשיו יש לו ערך סף משתמע של 50%, כלומר הערך של targetValue משתנה בנקודת האמצע בין שני עוגנים. (I82c2c)

תרומה חיצונית

  • שינינו את השם של 2 ממשקי API לגלילה (I56a75)

גרסה 1.7.0-alpha06

3 באפריל 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha06 משוחרר. גרסת 1.7.0-alpha06 מכילה את ההוספות האלה.

תכונות חדשות

  • נוספה תמיכה באנימציה של הופעה והיעלמות של פריטים ב-LazyColumn וב-LazyRow. בעבר אפשר היה להוסיף את המאפיין Modifier.animateItemPlacement() כדי לתמוך באנימציות של מיקומי מודעות (שינוי סדר). הוצאנו משימוש את המשתנה הזה והוספנו משתנה חדש שאינו ניסיוני בשם Modifier.animateItem(), שמאפשר לכם לתמוך בכל שלושת סוגי האנימציה: הופעה (הבהרה), היעלמות (הכהה) ושינוי סדר. (I2d7f7, ‏ b/150812265)
  • לקוחות של LazyColumn/LazyRow יכולים עכשיו לבטל את ההסכמה לניהול אינדקס על סמך המפתח של ה-measure-pass הקרוב, על ידי קריאה ל-LazyListState.requestToScroll ללא השהיה. (I98036, ‏ b/209652366)
  • הוספנו את השיטה parseAsHtml למחרוזות עם סגנון: היא מאפשרת להמיר מחרוזת שמסומנת בתגי HTML ל-AnnotatedString. לתשומת ליבכם, לא כל התגים נתמכים. לדוגמה, עדיין לא תוכלו להציג רשימות של נקודות. (I84d3d)
  • הוספנו תמיכה ניסיונית בצילומי מסך ארוכים בקונטיינרים לגלילה ב-Compose באמצעות Android API הרשמי (ScrollCaptureCallback). התכונה הזו היא ניסיונית, ויכול להיות שהיא לא מטפלת כרגע בכל המקרים בצורה נכונה. לכן, התכונה מושבתת כרגע כברירת מחדל. כדי להביע הסכמה, מגדירים את הדגל ComposeFeatureFlag_LongScreenshotsEnabled לערך true. הדגל הזה יוסר לפני גרסת הבטא 1.7. (I2b055, ‏ b/329296471)
  • הצגת GraphicsLayer API חדש כדי לספק גמישות רבה יותר במיקום ובעיבוד של מכונות GraphicsLayer, ולתמוך בתכונות עיבוד פנימיות בלי צורך בתיאום עם הטמעות של Composable כדי לציין מכונות GraphicsLayer של מודификаторים.

שינויים ב-API

  • עכשיו, לכל הפרמטרים של KeyboardOptions יש ערך לא מוגדר כברירת מחדל. הוספנו את השיטה KeyboardOptions.merge.
  • שינינו את השם של KeyboardOptions.autoCorrect ל-autoCorrectEnabled והפכנו אותו לאפשרות nullable, כאשר null מציין שלא צוין ערך. (Ia8ba0, ‏ b/295951492)
  • השם של outOfBoundsPageCount השתנה ל-beyondViewportPageCount. (I129c6)
  • הערך של fun ClipEntry.getMetadata() משתנה ל-val ClipEntry.clipMetadata. (I50155)
  • בוצעה הסרה של TextFieldState.valueAsFlow(). עדיף להשתמש ב-snapshotFlow { state.text } או ב-snapshotFlow { TextFieldCharSequence(state.text, state.selection) } (I7d629)
  • הפרמטרים של InputTransformation.transformInput אורגנו מחדש. הוסר originalValue: TextFieldCharSequence. במקום זאת, הערך הזה מופיע עכשיו ב-TextFieldBuffer עם אותו שם. הוסר גם הפרמטר valueWithChanges: TextFieldBuffer. TextFieldBuffer הוא עכשיו היקף הנמען בפונקציה. (I919cc)
  • בגרסה BasicTextField(state) ובגרסה BasicSecureTextField, עכשיו נעשה שימוש ב-KeyboardActionHandler במקום ב-KeyboardActions כדי לעבד פעולות שבוצעו על ידי מקלדת התוכנה. (I58dda)
  • ממשקי API להענקת גישה לכתיבה ידנית בסטיילוס, כדי לתמוך בכתיבה ידנית בסטיילוס בשדות טקסט 'מזויפים' להזנה. (I9c09c, ‏ b/327271923)
  • השם של KeyboardOptions.shouldShowKeyboardOnFocus השתנה ל-showKeyboardOnFocus. (Ib4b7a, ‏ b/295951492)
  • הפרמטר hintMediaTypes הוסר מ-Modifier.contentReceiver. כבר המלצנו למפתחים לבדוק את סוג המדיה של TransferableContent שהתקבל, כי יכול להיות שהוא לא תואם ל-hintMediaTypes שהוגדר. (I82f99)
  • הפרמטרים של BasicSecureTextField שונו בסדר. הפרמטרים keyboardType ו-imeAction הוסרו לטובת הכיתה המלאה KeyboardOptions, תוך שמירה על אותם הגדרות ברירת המחדל שמתאימות ל-BasicSecureTextField. הוסר גם הפרמטר scrollState. (Ibbfa9)
  • הסוג של TextFieldState.text השתנה מ-TextFieldCharSequence ל-CharSequence בלבד. לכן הוספנו את TextFieldState.selection: TextRange ו-TextFieldState.composition: TextRange? כדי לקרוא את ערכי הבחירה וההרכב הנוכחיים ישירות מאובייקט המצב.
  • בוצעה הסרה של TextFieldState.forEachTextValue. (Idb2a2)
  • הוסרו הפונקציות ClipboardManager.getClipMetadata ו-ClipboardManager.hasClip. יש להשתמש ב-clipEntry.getMetadata() כדי לקרוא את המטא-נתונים של הקליפ הנוכחי. צריך גם לבדוק אם התוצאה של ClipboardManager.getClip היא null או לא, כדי להבין אם יש קליפ נוכחי בלוח העריכה. (I50498)
  • עכשיו אפשר להעביר ל-ClipboardManager.setClip ערך null כדי לנקות את הלוח. (I7d2e9)
  • ReceiveContentListener מומר לממשק פונקציה. בנוסף, הוסר עומס יתר של Modifier.receiveContent שמקבל פונקציית lambda, כי ReceiveContentListener הוא עכשיו ממשק פונקציה.
  • השם של Modifier.receiveContent השתנה ל-Modifier.contentReceiver. (I1e6af)
  • השם של TransferableContent.consumeEach השתנה ל-TransferableContent.consume. (I1e462)
  • rememberTextFieldState עבר לממשק API יציב. (I37999)

תיקוני באגים

  • תוקן באג שבו הווריאנט BasicTextField(state) לא עבד עם מקלדות CJK(מבוססות-הרכבה). (I54425)
  • תוקן באג שבו Modifier.dragAndDropTarget() יכול להפנות לנתונים לא עדכניים בתרחישים מסוימים עם שימוש חוזר ב-Modifier.Node. (I05bb1)
  • החזרה לשינוי חוזה שהתבצע לאחרונה, שבו קריאות AnchoredDraggableState#anchoredDrag היו מסתיימות בסוף פעולת anchoredDrag. (I95715)

גרסה 1.7.0-alpha05

‫20 במרץ 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha05 משוחרר. גרסת 1.7.0-alpha05 כוללת את ההוספות האלה.

שינויים ב-API

  • הוסר הניסוי של LocalTextLinkStyle composition local להוספת סגנון לקישורים היפר. (Iebfa7)
  • הוסר שינוי ניסיוני מברירת המחדל של BasicText באמצעות הארגומנט onLinkClicked. בעתיד נוסיף ממשק API חלופי לתמיכה בהיפר-קישורים. (I107d5)
  • הוסרו שיטות ונכסים שקשורים לקודקודים בקטע TextFieldState ו-TextFieldBuffer. כמו כן, הוסרו הסיומת inChars משאר ממשקי ה-API שקשורים לבחירה ולעריכה. (Ief7ce)
  • עכשיו, הערך של currentValue ב-AnchoredDraggable יתעדכן כשהמשתמשים יעברו דרך נקודת עגינה. משתמשים ב-settledValue כדי לקבל את הסמנטיקה הקודמת של currentValue, ומעדכנים רק כשמגיעים לאובייקט עוגן. ההתקדמות מוצגת עכשיו כפונקציה (שדורשת נקודת התחלה ונקודת סיום) במקום כמאפיין. (Ibe6e8, ‏ b/318707189, ‏ b/298271489, ‏ b/294991954)
  • הגרסאות BasicTextField(state),‏ TextFieldState,‏ InputTransformation,‏ OutputTransformation,‏ TextFieldLineLimits ו-TextFieldDecorator הועברו למצב יציב. (I9582b)
  • הוספנו את InterceptPlatformTextInput כדי לעזור לכתוב בדיקות ברמה נמוכה שקשורות ל-IME ותרחישי שימוש אחרים ברמה נמוכה של IME. האפשרות PlatformTextInputTestOverride הוצאה משימוש. (I862ed, ‏ b/322680547)
  • פיצול restrictedConstraints() לשתי שיטות: fitPrioritizingWidth() ו-fitPrioritizingHeight() (I6d7fd)

תרומה חיצונית

  • נוספו 2 ממשקי API חדשים isLastScrollForward/isLastScrollBackward כדי לבדוק את כיוון הגלילה של פעולת הגלילה האחרונה, והם מחזירים את הערך false אם עדיין לא בוצעה פעולת גלילה. (I63a0e)

גרסה 1.7.0-alpha04

6 במרץ 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha04 משוחרר. הגרסה 1.7.0-alpha04 כוללת את ההוספות האלה.

שינויים ב-API

  • תמיכה בתכונה 'כתיבה בסטיילוס' במכשירים עם Android מגרסה U ואילך. (I002e4)
  • הוספנו את hintLocales ל-KeyboardOptions כדי לספק ל-TextFields את היכולת להציע למערכות IME עם אזורים ספציפיים להגדיר מראש שפה מועדפת. (Id18c2)
  • הוסר עומס יתר ניסיוני של BasicTextField2 ו-BasicSecureTextField שקיבל פרמטרים של value: String ו-onValueChange: () -> String. (I568b4)
  • מוסיפים פונקציית applySemantics אופציונלית ל-InputTransformation כדי להשפיע על הסמנטיקה של ה-BasicTextField2 שאליו היא חלה. (I74a2f, ‏ b/170648072)
  • ב-CL הזה אנחנו מוסיפים את הפעולה הסמנטית GetScrollViewportLength כדי שנוכל להעביר למערכת הנגישות מידע על הרכיבים שגללו ב-Compose. ב-CL הזה חל גם שימוש בנכס הזה ברשימות גליליות של Foundation. (Ic5fa2)
  • השם של BasicTextField2 השתנה ל-BasicTextField. (Ie5713)
  • FocusRequester.createRefs יציבה עכשיו (I4d92c, ‏ b/261436820)
  • הוספנו את DelegatableNode.scrollIntoView() כדי לאפשר לצמתים של מודификаторים לשלוח בקשות scrollIntoView ישירות. (I2b3b7, ‏ b/299939840)
  • הוספנו את DelegatableNode.requireView() כדי לאפשר לצמתים של משתני ערך לקבל את View הנוכחי של Android בלי לקרוא קומפוזיציה מקומית. (I40768)
  • אנחנו משיקים מידע על פריסה לפי הקשר ברמת השורה וברמת העמודה של התכונה 'זרימה לפי הקשר', כולל מדד שורה, מיקום ומגבלות על רוחב וגובה מקסימליים כדי להישאר במיקום שצוין. פריטים שחורגים מהרוחב או מהגובה המקסימליים עשויים לעבור לשורה הבאה או להימחק על סמך הגדרות של זליגת נתונים. (Id13f8, ‏ b/292114798)

תיקוני באגים

  • תוקן באג שגרם לקריסה בתנאים מסוימים, כאשר משנים את המאפיינים enabled או readOnly של TextField. (Iae17b)

גרסה 1.7.0-alpha03

21 בפברואר 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha03 משוחרר. גרסה 1.7.0-alpha03 כוללת את ההצהרות האלה.

שינויים ב-API

  • הוספנו את DelegatableNode.requireLayoutCoordinates() כדרך לקבל את LayoutCoordinates הנוכחי של Modifier.Node בלי שתצטרכו לשנות את onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Ia8657)
  • הוספנו את DelegatableNode.currentLayoutCoordinates כדרך לקבל את LayoutCoordinates הנוכחי של Modifier.Node בלי שתצטרכו לשנות את onPlaced ולאחסן את הקואורדינטות בנכס בעצמכם. (Iaebaa)
  • אופטימיזציות של הביצועים ב-DraggableAnchors ש-AnchoredDraggable משתמש בהן. (I89cff)
  • BasicTextField2 וממשקי ה-API הקשורים בחבילה androidx.compose.foundation.text2 מועברים אל androidx.compose.foundation.text. (I9f635)
  • הפרמטר BasicTextField2 לא מקבל יותר פרמטר CodepointTransformation. משתמשים ב-BasicSecureTextField או ב-OutputTransformation. (Id34ff)
  • הוספנו שיטה להשוואה של ההערות של שני AnnotatedStrings בלבד. (I32659)
  • חדש: ContextualFlowRow ו-FlowRow/Column משופר עם MaxLines ו-Overflow. אנחנו שמחים לבשר על שיפורים ב-FlowRow וב-FlowColumn הניסיוניים, שכוללים עכשיו תמיכה ב-maxLines וב-overflow, לצד ההשקה של ContextualFlowRow ו-ContextualFlowColumn. העדכון הזה נועד לספק רכיבים עם ביצועים מיטביים. ContextualFlow* מתאים למספר גדול של פריטים, עם הגדרה קטנה של maxLines ולחצני 'עוד' דינמיים עם הסימן +N. FlowRow ו-FlowColumn מתאימים למספר קטן של פריטים, פחות מ-100 פריטים. חשוב: כדי לשמור על ההתנהגות הקיימת ב-FlowRow או ב-FlowColumn, שבה כל הפריטים מורכבים ללא קשר להתאמה שלהם למגבלה המקסימלית של הציר הרוחבי, צריך להגדיר את overflow ל-FlowRowOverflow.Visible או ל-FlowColumnOverflow.Visible במהלך האינטליקציה. ב-ContextualFlowRowSample וב-FlowRowSample אפשר למצוא דוגמאות לתכונות החדשות האלה בפעולה. (Ib9135, ‏ b/293577082)

תיקוני באגים

  • אנימציית הסמן לא שולחת יותר בקשות לפריימים בין המצבים 'מופעל' ו'מושבת'. (Ia2253)
  • KeyboardOptions' יצירת קונסטרוקטור להעתקה שהוצאה משימוש תעתיק עכשיו בצורה נכונה את כל המאפיינים. (If12de)

גרסה 1.7.0-alpha02

7 בפברואר 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha02 משוחרר. גרסה 1.7.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • HorizontalPager, ‏ VerticalPager וגם PagerState עוברים לגרסת 'יציבה'. (I67660, ‏ b/316966909)
  • הוספנו את הרכיב המקומי LocalTextLinkStyle שמאפשר לשנות את הסגנון של הקישורים בטקסט בכל האפליקציה. אם אתם משתמשים בנושא משלכם באפליקציה, עליכם להגדיר את הרכיב המקומי הזה בהתאם לנושא. כשמשתמשים בעיצוב Material, צבע הקישור יוגדר כברירת מחדל כצבע הראשי של Material. (I7eb10)
  • הוספנו את המשתנה receiveContent שמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose.
  • receiveContent משתלב עם BasicTextField2 כדי לקבל תוכן עשיר שמסופק על ידי מקלדת התוכנה, או באמצעות פעולת הדבקה מהלוח. (I81b72)
  • במסגרת השינוי הזה, אנחנו מחליפים את SnapFlingBehavior ב-TargetedFlingBehavior ב-pager כדי לאפשר תרחישים לדוגמה אחרים ולספק גמישות רבה יותר. (I762ea)
  • במסגרת השינוי הזה, אנחנו הופכים את ממשקי ה-API של Snapping למצב יציב. אנחנו גם מנקים חלק מקוד הבדיקה ומוסיפים עוד דוגמאות ל-Snapping. (Id8da9)
  • הצגת TargetedFlingBehavior, FlingBehavior שמאפשר להפיץ מידע על המצב של האנימציה המתמשכת ועל ההיסט של גלילה היעד שלה. (I6a207)

תיקוני באגים

  • BasicTextField2 מעכשיו שומר את הסמן בטווח הראייה בזמן ההקלדה, גם אם הוא גלול מחוץ לתצוגה או אם הוא עומד לזוז מחוץ לתצוגה בגלל קלט. (Ieb856, ‏ b/237190748)

תרומה חיצונית

  • הוספה של ממשק API ניסיוני להגדרת התנהגות של אחסון מראש ב-LazyLists. (I022a4)

גרסה 1.7.0-alpha01

24 בינואר 2024

androidx.compose.foundation:foundation-*:1.7.0-alpha01 משוחרר. גרסה 1.7.0-alpha01 כוללת את ההוספות האלה.

תכונות חדשות

  • נוסף Indication API חדש, IndicationNodeFactory. כך אפשר להשיג ביצועים טובים יותר בהטמעות של Indication בהשוואה לממשק ה-API הקודם (שעבר עכשיו הוצאה משימוש) של rememberUpdatedInstance. מידע נוסף על העברה זמין בכתובת developer.android.com.
  • עכשיו אפשר להשתמש בפרמטר MutableInteractionSource עם אפשרות לאפס (nullable) ב-clickable / combinedClickable / selectable / toggleable. אם הערך הוא null, ו-Indication שסופק הוא IndicationNodeFactory, אפשר ליצור את Indication באופן עצלני רק כשיש צורך בכך, וכך לשפר את הביצועים. אם לא מעלים את MutableInteractionSource ומשתמשים בו, מומלץ להעביר ערך null.

שינויים ב-API

  • הוספת DecayAnimation ל-AnchoredDraggable. השינוי הזה מוסיף פרמטר decayAnimationSpec ל-AnchoredDraggable ומאפשר להשתמש באנימציית דעיכה כשמגיעים לאחת מנקודות העגינה. השינוי כולל גם שינוי השם של animationSpec הקיים ל-snapAnimationSpec, כדי לעזור לכם להבין את תרחיש השימוש של כל מפרט.
  • BasicTextField2 זמין לשימוש ניסיוני. הוא אמור להיות דומה ל-BasicTextField מבחינת התכונות, וההתנהגות שלו אמורה להיות מוכנה לייצור. עם זאת, ה-API עדיין נמצא בשלב ניסיוני. לפני שהגרסה תהיה יציבה, השם שלה ישתנה ל-BasicTextField והיא תועבר לאותה חבילה.
  • השקנו את הטיוטה הראשונה של ה-API של OutputTransformation עבור BasicTextField2. ה-API הזה מחליף את רוב תרחישי השימוש של VisualTransformation ב-BasicTextField הישן. עם זאת, הוא עדיין לא הושלם וחלק מהדברים לא יפעלו כמו שצריך. נשמח לקבל מכם משוב על נוחות השימוש ב-API בתרחישי לדוגמה. (aosp/2708848)
  • הוספנו את התג LinkAnnotation שמאפשר להוסיף קישורים ורכיבים שאפשר ללחוץ עליהם לטקסט. התכונה 'קישורים' עדיין לא הושלמה, ועוד שינויים ב-API יבואו בקרוב.
  • הוספנו את המשתנה receiveContent שמאפשר למפתחים לקבל תוכן עשיר ב-Jetpack Compose.
  • receiveContent משתלב עם BasicTextField2 כדי לקבל תוכן עשיר שמסופק על ידי מקלדת התוכנה, או באמצעות הדבקה מהלוח.
  • KeyboardOptions.shouldShowKeyboardOnFocus מאפשרת להשבית את התנהגות ברירת המחדל של BasicTextField, שמבקשת מקלדת תוכנה כשהיא מקבלת את המיקוד.
  • התכונות TextInputService וגם LocalTextInputService הוצאו משימוש. במקום זאת, אפשר להשתמש ב-PlatformTextInputModifierNode כדי לשלב ישירות עם ממשקי ה-API של IME בפלטפורמה. (aosp/2862698)
  • האפשרות Indication#rememberUpdatedInstance הוצאה משימוש. יש לו פגיעה גבוהה ואי-אפשרת בביצועים, והוא מונע אופטימיזציות אחרות. במקום זאת, צריך להשתמש ב-IndicationNodeFactory API החדש.

תיקוני באגים

  • BasicTextField יאמת מראש מבחר קטן של מיפויים של אופסים כשהערך VisualTransformation יועבר. כך אפשר לזהות שגיאות נפוצות בקידוד שגורמות לחריגות שלא ניתן לשחזר במעברים מאוחרים יותר של מדידה או ציור. אם תשלחו את ההודעה במהלך היצירה, יש סיכוי גבוה יותר שהמפתחים יראו את השגיאות האלה במהלך הפיתוח, וכך תוכלו למנוע קריסות בסביבת הייצור. (I0fd42)
  • VisualTransformation לא תגרום להשלכת שגיאה אם תחזירו אינדקס לא חוקי לאינדקס לא חוקי (b/316401857 )

גרסה 1.6

גרסה 1.6.8

‫12 ביוני 2024

androidx.compose.foundation:foundation-*:1.6.8 משוחרר. גרסת 1.6.8 כוללת את ההוספות האלה.

גרסה 1.6.7

1 במאי 2024

androidx.compose.foundation:foundation-*:1.6.7 משוחרר. גרסה 1.6.7 מכילה את ההוספות האלה.

גרסה 1.6.6

17 באפריל 2024

androidx.compose.foundation:foundation-*:1.6.6 משוחרר. גרסת 1.6.6 מכילה את ההוספות האלה.

תיקוני באגים

  • תוקן באג שגרם לקריסה בתנאים מסוימים, כאשר משנים את המאפיינים enabled או readOnly של TextField. (Iae17b)

גרסה 1.6.5

3 באפריל 2024

androidx.compose.foundation:foundation-*:1.6.5 משוחרר. גרסת 1.6.5 כוללת את ההוספות האלה.

תיקוני באגים

  • הוספת יומני ניפוי באגים לבאגים שקשה לשחזר בשורה/בעמודה: (b/300280216 ו-b/297974033)

גרסה 1.6.4

‫20 במרץ 2024

androidx.compose.foundation:foundation-*:1.6.4 משוחרר. גרסת 1.6.4 מכילה את ההוספות האלה.

תיקוני באגים

  • תנועת בחירה של לחיצה ארוכה ואז גרירה, שמזיזה את הבחירה מחוץ לגבולות הפריסה של הטקסט בפריים הראשון של הגרירה, לא גורמת יותר לקריסה. (Icdf90, ‏ b/325307463)

גרסה 1.6.3

6 במרץ 2024

androidx.compose.foundation:foundation-*:1.6.3 משוחרר. גרסת 1.6.3 כוללת את ההוספות האלה.

גרסה 1.6.2

21 בפברואר 2024

androidx.compose.foundation:foundation-*:1.6.2 משוחרר. גרסה 1.6.2 כוללת את השמירות האלה.

תיקוני באגים

  • פתרון בעיה שבה AnimateContentSize לא מתאפס כראוי. (I07051)
  • תיקון בעיה שבה intrinsicHeight של טקסט נשמרים במטמון יותר מדי במקרים מסוימים. (3cd398, ‏ b/217910352)

גרסה 1.6.1

7 בפברואר 2024

androidx.compose.foundation:foundation-*:1.6.1 משוחרר. גרסה 1.6.1 כוללת את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תיקון של המדידה של רשתות מרושתות כשגוללים מעבר למגבלה. (bffc39)
  • מוסיפים בדיקה לפריסה עם מאפיינים גדולים. (e74af5)
  • תיקון המיקום של פריטים בגודל 0 בתחילת הרשת המדורגת. (785f94)
  • קוראים ל-onRelease באותו סדר שבו קוראים ל-onForgotten. (31ce3b)

גרסה 1.6.0

24 בינואר 2024

androidx.compose.foundation:foundation-*:1.6.0 משוחרר. גרסה 1.6.0 כוללת את ההצהרות האלה.

שינויים חשובים מאז גרסה 1.5.0

  • מקש שינוי חדש Modifier.anchoredDraggable שמאפשר לגרור וליישם אנימציה בין קבוצות מוגדרות מראש של עוגנים. המאפיין הזה מיועד להחליף את Modifier.swipeable. במדריך להעברה מוסבר איך להשתמש ב-Google Analytics 4 ולהעביר נתונים מ-Modifier.swipeable.
  • נוספה פונקציונליות של גרירה ושחרור בין אפליקציות ורכיבים. כדי להתחיל, אפשר לעיין ב-DragAndDropTarget, ב-Modifier.dragAndDropSource ובממשקי API אחרים.
  • Modifier.draggable2D הוא המשתנה המשנה החדש שמאפשר תמיכה בקלות בגרירה דו-מימדית. דוגמה
  • הוספנו את AndroidExternalSurface ואת AndroidEmbeddedExternalSurface כדי שיהיה קל יותר להוסיף רכיבים מבוססי-משטח ב-Compose
  • שינויים ושיפורים שונים ב-API ב-Pager וב-snapFlingBehaviour
  • ממשקי API שונים של התמקדות, טקסט ופריימים מוטמעים הועלו לממשקי API יציבים

גרסה 1.6.0-rc01

10 בינואר 2024

androidx.compose.foundation:foundation-*:1.6.0-rc01 משוחרר. גרסה 1.6.0-rc01 כוללת את השמירות האלה.

שינויים ב-API

  • ה-constructor של התוסף DragAndDropTarget() הוסר. יוצרים מכונה חדשה באמצעות object: DragAndDropTarget {}. (I32318)

גרסה 1.6.0-beta03

13 בדצמבר 2023

androidx.compose.foundation:foundation-*:1.6.0-beta03 משוחרר. גרסה 1.6.0-beta03 מכילה את ההצהרות האלה.

תיקוני באגים

  • תיקון קריסה שפגעה בטקסט גדול מאוד שנמדד באמצעות אילוצים אינסופיים. (I1a7df, ‏ b/312294386)
  • PlatformImeOptions היא עכשיו כיתה ספציפית במקום ממשק. (If40a4)

גרסה 1.6.0-beta02

29 בנובמבר 2023

androidx.compose.foundation:foundation-*:1.6.0-beta02 משוחרר. גרסה 1.6.0-beta02 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון לבעיה שבה canScroll לא מתעדכן אחרי גלילה לצורך עיצוב מחדש בלבד. (I60a86)
  • תיקון ל-Modifier.animateItemPlacement() ול-LookaheadScope אחרי גלילות קצרות. (I3a2b7)

גרסה 1.6.0-beta01

15 בנובמבר 2023

androidx.compose.foundation:foundation-*:1.6.0-beta01 משוחרר. גרסה 1.6.0-beta01 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • המשתנה המשנה DragAndDropTarget מקבל עכשיו את DragAndDropTarget המקבל באופן מפורש, ויש לו פונקציית lambda כדי להביע הסכמה לסשן גרירה ושחרור. עכשיו יש שתי פונקציות ברירת מחדל ל-DragAndDropModifierNode. אחת לקבלת העברות ואחת להעברת נתונים (I69481)
  • maximumFlingVelocity עודכן כך שיוצג כ-Float. עדכנו את המסמכים כדי להבהיר את האחדות של maximumFlingVelocity. (I8adc7)
  • השם של onDragAndDropStart במפעל DragAndDropModifierNode השתנה ל-acceptDragAndDropTransfer.

    איש/אשת הקשר acceptsDragAndDropTransfer נוסף/ה ל-dragAndDropTarget Modifier לצורך אישור מתוך סשן גרירה ושחרור. פונקציית הלוגריתם מחזירה DragAndDropTarget תקינה אם רוצים סשן גרירה ושחרור. פונקציות lambda אחרות לעיבוד אירועי גרירה הוחלפו בפונקציה הזו.

    נוספה פונקציית DragAndDropTarget מברירת המחדל כדי לקבל מפגשים של גרירה ושחרור (Iebf3a)

  • חשיפת startDragImmediately ב-AnchoredDraggable מאפשרת לשלוט בזיהוי תנועות גרירה בזמן השימוש בו. כדאי להגדיר אותו כשהווידג'ט נע באנימציה אל עוגן יעד. דוגמה (Ie6d13, ‏ b/285139987)

  • ממשקי ה-API של הסבר קצר ב-Foundation הם עכשיו @ExperimentalFoundationApi (I30b0b)

  • הוסרו DragAndDropInfo כסוג. עכשיו DragAndDropModifierNode.drag מקבל פרמטרים עבור transferData, גודל הקישוט ופונקציית הלמה DrawScope של קישוט הגרירה

    ל-DragAndDropTarget יש שיטות לאירועים ספציפיים של גרירה ושחרור, במקום להיות שיטה מופשטת אחת

    השם של onDragAndDropEvent בפונקציית המפעל של DragAndDropModifierNode השתנה ל-onDragAndDropStart כדי להבהיר שה-DragAndDropTarget שסופק תקף רק לסשן גרירה ושחרור נתון.

    ה-DragAndDropEventType הוסר (I645b1)

  • השם של PlatformTextInputModifierNode.runTextInputSession השתנה ל-establishTextInputSession. (I03cd0)

  • מחליפים את OriginalText ב-TextSubstitution. (Ifa5a8)

  • השם של PlatformTextInputModifierNode.textInputSession השתנה ל-runTextInputSession. (Ie9c6b)

  • הצאצאים של SubcomposeLayout (ותבניות כמו LazyColumn שמבוססות עליה) שנשמרים לשימוש חוזר בעתיד נחשבים כלא פעילים. הוספנו ממשק API חדש לבדיקה של assertIsDeactivated() כדי לבדוק צמתים כאלה. שאר ממשקי ה-API לבדיקה יסננו צמתים מושבתים כברירת מחדל. (I2ef84, ‏ b/187188981)

  • השם של הפרמטר clippingEnabled של Modifier.magnifier השתנה ל-clip.

  • הפרמטר magnifierCenter של Modifier.magnifier הופך לאפשרי ל-null, תוך שמירה על אותה התנהגות ברירת המחדל. (I6aa66)

  • ממשקי ה-API של SwipeToReveal ב-Material (לכרטיסים ולצ'יפים) מסתמכים עכשיו על ממשק API שמבוסס על חריצים (כמו שמומלץ על ידי Compose) במקום על מופעים שמבוססים על סיווג נתונים, כדי ליצור את החריצים האלה. זהו שינוי משמעותי. כדאי לעיין בדמו ובקוד לדוגמה כדי לראות דוגמאות לשימוש ב-API החדש. (Ia8943)

תיקוני באגים

  • מטמיעים את equals ואת hashcode עבור PageSize.Fixed. (Ie3ede, ‏ b/300134276)
  • תוקן באג שגרם לכך שהפריסה של BasicText לא הצטמצמה כשהערך של minWidth השתנה ו-minWidth היה קטן ממגבלות המידה הראשוניות maxWidth (Idb19c)
  • הוספת תמיכה במעבד גרפיקה ל-Sweep Gradient ב-ArcLine. (I4d5bb)
  • תיקון בעיית תאימות בינארית בעקבות שינוי ב-Window Inset (Iee695)
  • כדאי להסיר את שכבת הליבה של Material3 עבור צ'יפ/לחצן של Material3, כי לפי בדיקות המיקרו-ביצועים הביצועים טובים יותר בלי שכבה זו. (I55555)

גרסה 1.6.0-alpha08

18 באוקטובר 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha08 משוחרר. גרסה 1.6.0-alpha08 מכילה את ההצהרות האלה.

תכונות חדשות

  • Modifier.draggable2D הוא המשתנה המשנה החדש שמאפשר תמיכה בקלות בגרירה דו-מימדית. דוגמה (Id95f5, ‏ b/214412658)

שינויים ב-API

  • השם של פונקציית ה-lambda onDrawDragShadow ב-Modifier.dragAndDrawSource השתנה ל-drawDragDecoration, והשם של פרמטר הגודל ב-DragAndDropInfo השתנה ל-dragDecorationSize. (Id0e30, ‏ b/303904810)
  • השם של הפרמטר decorationBox של BasicTextField2 משתנה ל-decorator. גם הסוג שלו ישתנה לממשק 'ממשק משעשע' מקביל TextFieldDecorator. (I23c1c)

תיקוני באגים

  • שיפור במסמכים של BasicTextField לגבי הדרישות של onValueChange. (I90fc9, ‏ b/160257648)

גרסה 1.6.0-alpha07

4 באוקטובר 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha07 משוחרר. גרסה 1.6.0-alpha07 מכילה את ההוספות האלה.

שינויים ב-API

  • הוספנו את PlatformTextInputMethodTestOverride לכתיבה של בדיקות עבור עורכי טקסט מותאמים אישית. (Id159b)
  • השם של GraphicsSurface השתנה ל-AndroidExternalSurface (I11680)
  • נוספה הדגל הזמני DisableNonLinearFontScalingInCompose כדי להשבית שינוי גודל גופני לא לינארי. אם אתם צריכים זמן כדי לנקות את הבדיקות, תוכלו להגדיר את הערך DisableNonLinearFontScalingInCompose = true בהן. הדגל הזה יוסר ב-Compose 1.6.0-beta01. (Ic9486)
  • נוספו קולקציות ColorList ו-ColorSet שמאפשרות להימנע מהקצאות. (I744bd)
  • השינוי הזה מסיר את shortSnapVelocityThreshold, שהפך לפרט הטמעה של ההטמעות של SnapLayoutInfoProvider. (I65f6d)
  • הוספת המשתנה המשנה dragAndDropSource להתחלת סשנים של גרירה ושחרור, והוספת המשתנה המשנה dragAndDropTarget לקבלה מסשנים של גרירה ושחרור (Ib7828, ‏ b/286038936)
  • מעדכנים את המסמכים של SnapPositionInLayout ואת שיטת המיקום. מוסיפים מרווחים לתוכן לשיטת המיקום ב-SnapPositionInLayout. (Id7938, ‏ b/300116110)
  • הוספנו את UndoState ל-TextFieldState כדי לספק אפשרות לבטל או לבצע מחדש את השינויים שהמשתמש ביצע. (Icc024)

תיקוני באגים

  • תוקנה בעיה שבה לא הייתה אנימציה של basicMarquee אחרי שינוי המהירות. (Id2e77, ‏ b/297974036)

גרסה 1.6.0-alpha06

20 בספטמבר 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha06 משוחרר. גרסה 1.6.0-alpha06 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • חבילות חדשות של Composable ל-SurfaceView ול-TextureView: GraphicsSurface() ול-EmbeddedGraphicsSurface(). זהו ממשק API ניסיוני שעשוי להשתנות ולהשתפר. (I9ddb2)
  • Modifier.magnifier() הוא עכשיו ממשק API יציב. ההבדלים כוללים את ההסרה של MagnifierStyle לטובת פרמטרים בתוך שורה בתוך המשנה עצמו. (I83bec, ‏ b/298381260, ‏ b/262367109, ‏ b/261438887)

שינויים ב-API

  • השתמשנו ב-updateCurrentPage וב-updateTargetPage ב-ScrollScope, והם הרכיבים האחרונים הנדרשים כדי לאפשר התאמה אישית של גלילה עם אנימציה דרך PagerState.scroll. (I9cad5, ‏ b/267744105, ‏ b/243786897)
  • מסירים את הצפיפות מ-SnapFlingBehavior. לכל הטמעות של SnapLayoutInfoProvider כבר יש דרך לגשת לצפיפות, אפשר להסיר את היקף המקלט, וכך להוביל להטמעה פחות מורכבת של SnapFlingBehavior וגם של SnapLayoutInfoProviders. (I153c3)
  • עוד משתני אופן פעולה סומנו כיציבים. (I56af1, ‏ b/298046462)
  • SnapStepSize הוסר מהרשימה SnapLayoutInfoProvider. יש לבצע את החישוב באמצעות פרטי הפריסה, ולספק אותו באמצעות שיטת הגישה או ההזזות של הצמדה. (If320c)

שינויים בהתנהגות

  • עכשיו, בחלונית הכתיבה נעשה שימוש בשינוי גודל גופן לא לינארי כדי לשפר את הקריאוּת והנגישות. כשהגדרת גודל הגופן היא יותר מ-100% בהגדרות המערכת, טקסט קטן יגדל באופן רגיל, אבל טקסט שכבר גדול יגדל רק מעט. בנוסף, גובה השורות שהוגדרו ב-SP יותאמו באופן אוטומטי כדי לשמור על פרופורציה לגובה המיועד של התמונה בקנה המידה 100%. מידע נוסף זמין במאמר שיטות מומלצות לשינוי גודל הגופן. (I11518)

תיקוני באגים

  • להפסיק להשתמש ב-rememberSaveable להצגת הסברים קצרים. (Icc131, ‏ b/299500338)

גרסה 1.6.0-alpha05

6 בספטמבר 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha05 משוחרר. גרסה 1.6.0-alpha05 מכילה את ההצהרות האלה.

שינויים ב-API

  • מוסיפים עומסי יתר ל-BasicSecureTextField שמקבלים ערך לא ניתן לשינוי ופונקציית קריאה חוזרת (callback) לשינוי הערך הזה, בדיוק כמו ב-API הנוכחי של BasicTextField. (Ia4882)
  • מוסיפים את הערך Modifier.preferKeepClear() כדי לסמן את הרכיב כרכיב שאפשר לשלב, מכיוון שעדיף להימנע מחלונות צפים ב-API 33 ואילך. (Ib51d5, ‏ b/297260115)
  • מהירות ההזזה ברכיבי תצוגה כמו ScrollView ו-RecyclerView מוגבלת ל-ViewConfiguration.ScaledMaximumFlingVelocity. ל-Compose יש עכשיו גרסה משלו של maximumFlingVelocity שחלה עכשיו על Draggable. (Ibf974)
  • הוסר עומס יתר של Pager ו-PagerState שהוצא משימוש. (Iea07e)
  • הוספנו את BasicTooltipBox ל-compose.foundation ועדכנו את PlainTooltipBox ו-RichTooltipBox כך שישתמשו ב-TooltipBox עם רכיבי PlainTooltip ו-RichTooltip חדשים. (I79e1d)

גרסה 1.6.0-alpha04

23 באוגוסט 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha04 משוחרר. גרסה 1.6.0-alpha04 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספת ממשק ReusableComposition לניהול מחזור החיים ולשימוש חוזר ברכיבי משנה. (I812d1, ‏ b/252846775)
  • Modifier.focusGroup הועברו לממשקי API יציבים. (I7ffa3)
  • מוסיפים עומסי יתר ל-BasicTextField2 שמקבלים ערך לא ניתן לשינוי ופונקציית קריאה חוזרת (callback) לשינוי הערך הזה, בדיוק כמו ב-API הנוכחי של BasicTextField. (I3f2b8)
  • GridItemSpan::currentLineSpan הוא עכשיו ממשק API יציב. (Icc29c)
  • Canvas שתומך ב-contentDescription הוא עכשיו ממשק API יציב. (Ib3d29)
  • viewportSize הוצג ב-ScrollState כדרך לדעת את הגודל viewPort של הרכיב שמשתמש ב-ScrollState אחרי שהמדידה מתבצעת. (I8b85a, ‏ b/283102682)
  • תוקנה בעיה שבה האחזור מראש ב-Pager לא תאם להתנהגות ב-Views. (I93352, ‏ b/289088847)
  • Modifier.consumeWindowInsets(PaddingValues) יציב עכשיו.
    • ממשק ה-API ‏Deprecated Modifier.consumedWindowInsets הוסרה. במקום זאת, אתם צריכים להשתמש ב-Modifier.consumeWindowInsets. (Id72bb)

גרסה 1.6.0-alpha03

9 באוגוסט 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha03 משוחרר. גרסה 1.6.0-alpha03 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספה של עומס יתר של LazyLayout, הוא מקבל פונקציית lambda של LazyLayoutItemProvider, ולא אובייקט רגיל כמו שהיה קודם. עומס יתר הקודם הוצא משימוש. (I42a5a)
  • נוספה תמיכה בהגדרה של privateImeOptions (Idb772)

תיקוני באגים

  • תוקנו שדות טקסט שמוצגת בהם מקלדת ואפשר לערוך אותם כשהערך של readOnly הוא true. תוקנה גם בעיה שבה המקלדת לא מוצגת כשהערך של readOnly משתנה מ-true ל-false בזמן המיקוד. (I34a19, ‏ b/246909589)

גרסה 1.6.0-alpha02

26 ביולי 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha02 משוחרר. גרסה 1.6.0-alpha02 מכילה את ההוספות האלה.

שינויים ב-API

  • הוצג PagerLayoutInfo עם מידע שנאסף אחרי שהמדד עבר ב-Pager. הוספנו גם את PageInfo, המידע על דף אחד שנמדד ב-Pager. (Iad003, ‏ b/283098900)
  • הערות נוספות לציון הקלטות המותרות לרכיבים הניתנים לשילוב (I51109)
  • הוספנו את SemanticsNodeInteraction.requestFocus כדרך נוחה יותר לגלות ולבקש התמקדות במבחנים. (Ie8722)
  • ממשק API של PlatformTextInput* שעוצב מחדש לחלוטין. (I6c93a, ‏ b/274661182, ‏ b/267235947, ‏ b/277380808)
  • האפשרויות SoftwareKeyboardController ו-LocalSoftwareKeyboardController כבר לא ניסיוניות. LocalSoftwareKeyboardController הוא עכשיו גם CompositionLocal תקין. (I4c364)
  • Modifier.transformable מספק עכשיו את תנועת ההזזה (delta) בפרמטר canPan כדי לקבוע את כיוון ההזזה ולאפשר או לאסור אותה. (I692aa, ‏ b/266829800)
  • מעדכן את המשתנה consumeWindowInsets כדי להרחיב את הסוג ההורה AbstractComposeView (Iacd74, ‏ b/269479941)

גרסה 1.6.0-alpha01

21 ביוני 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha01 משוחרר. גרסה 1.6.0-alpha01 מכילה את ההוספות האלה.

תכונות חדשות

  • הוספנו ממשק API חדש של AnchoredDraggable ב-Foundation. אפשר להשתמש בו כדי ליצור רכיבים שאפשר לגרור בין מצבים נפרדים, כמו גיליונות תחתונים מודליים. ה-API הזה מחליף את ה-API ‏Swipeable של Material. (I4a2ed)

שינויים ב-API

  • תמיכה InputConnection#requestCursorUpdates (I0c69b)
  • הוספנו את scrollAnimationSpec כדי לאפשר הגדרת מפרטי אנימציה בהתאמה אישית. עודכנה ההגדרה BringIntoViewCalculator ועכשיו היא BringIntoViewScroller. (Idb741)
  • הוספת סוג ResourceResolutionException כדי לעטוף את ה-throwables שנזרקים כשמנסים לטעון נכסי bitmap עם תיאור של נתיב הנכס שלא הצליח להיטען. (I19f44, ‏ b/230166331, ‏ b/278424788)
  • נוספו מאפיינים ופעולות סמנטיים כדי לתמוך בתרגום טקסט. (I4a6bc)
  • השקנו את BringIntoViewCalculator API, שאפשר להשתמש בו כדי להתאים אישית את האופן שבו רכיבים כמו Scrollable מגיבים לבקשות bringIntoView. שינינו את עומס יתר של scrollable כך שיאפשר לקבל אופציונלית מופע של BringIntoViewCalculator. (Iaf5af)

תיקוני באגים

  • הוספנו בדיקת איתור שגיאות בקוד כדי להזהיר אם יוצרים MutableInteractionSource בהרכבה בלי לשמור אותו, בדומה לבדיקות האיתור שגיאות בקוד ליצירת מצב שאפשר לשנות / Animatable. (I5daae)
  • נוספה תמיכה בבחירה בעזרת העכבר. אם תבחרו בטקסט באמצעות מגע, הבחירה תתרחב במילה ותתכווץ בתו. (Ic0c6c, b/180639271)
  • נוספה ממשק FocusTargetModifierNode שאפשר להשתמש בו כדי ליצור FocusTarget בהתאמה אישית. (I9790e)

גירסה 1.5

גרסה 1.5.4

18 באוקטובר 2023

androidx.compose.foundation:foundation-*:1.5.4 משוחרר. גרסה 1.5.4 מכילה את השמירות האלה.

גרסה 1.5.3

4 באוקטובר 2023

androidx.compose.foundation:foundation-*:1.5.3 משוחרר. אין שינויים בגרסה הזו.

גרסה 1.5.2

27 בספטמבר 2023

androidx.compose.foundation:foundation-*:1.5.2 משוחרר. גרסה 1.5.2 מכילה את השמירות האלה.

תיקוני באגים

  • תוקן באג בטקסט שגרם לקריסות בתנאים מסוימים כשהסמנטיקה לא הייתה תקפה.

גירסה 1.5.1

6 בספטמבר 2023

androidx.compose.foundation:foundation-*:1.5.1 משוחרר. גרסה 1.5.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנו שדות טקסט שמוצגת בהם מקלדת ואפשר לערוך אותם כשהערך של readOnly הוא true. תוקנה גם בעיה שבה המקלדת לא מוצגת כשהערך של readOnly משתנה מ-true ל-false בזמן המיקוד. (I34a19, ‏ b/246909589)

גרסה 1.5.0

9 באוגוסט 2023

androidx.compose.foundation:foundation-*:1.5.0 משוחרר. גרסה 1.5.0 כוללת את השמירות האלה.

שינויים חשובים מאז גרסה 1.4.0

  • נעשה העברה של רבים מהמודיפיקטורים הבסיסיים, כולל Modifier.clickable,‏ Modifier.draggable,‏ Modifier.scrollable,‏ מודификатор הפריסה ועוד, אל Modifier.Node API, כדי לצמצם את התקורה של הקומפוזיציה הראשונית.
  • שיפורים ביציבות של Pagers. טופלו הרבה באגים.
  • הפרמטרים של pageCount נמצאים עכשיו ב-PagerState במקום ב-Pager עצמו

גרסה 1.5.0-rc01

26 ביולי 2023

androidx.compose.foundation:foundation-*:1.5.0-rc01 משוחרר. גרסה 1.5.0-rc01 כוללת את השמירות האלה.

תיקוני באגים

  • יש בדיקה אופציונלית שממליצה להעביר קריאות mutableStateOf() לסוגי פרימיטיבים מתאימים. מזהה האיתור של השגיאות בקוד הוא AutoboxingStateCreation. בעבר, הבדיקה הזו הייתה מופעלת כברירת מחדל בכל הפרויקטים. כדי לראות את האזהרה הזו בעורך של Android Studio ובפלט של איתור השגיאות בקוד (lint) של הפרויקט, צריך לשנות את רמת החומרה שלה מ'מידע' ל'אזהרה' (או לרמה גבוהה יותר) על ידי הצהרה על warning "AutoboxingStateCreation" בתוך ההגדרה build.gradle או build.gradle.kts של המודול, כפי שמוצג (I34f7e):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

גרסה 1.5.0-beta03

28 ביוני 2023

androidx.compose.foundation:foundation-*:1.5.0-beta03 משוחרר. גרסה 1.5.0-beta03 מכילה את ההצהרות האלה.

גרסה 1.5.0-beta02

7 ביוני 2023

androidx.compose.foundation:foundation-*:1.5.0-beta02 משוחרר. גרסה 1.5.0-beta02 כוללת את ההצהרות האלה.

גרסה 1.5.0-beta01

24 במאי 2023

androidx.compose.foundation:foundation-*:1.5.0-beta01 משוחרר. גרסה 1.5.0-beta01 כוללת את ההצהרות האלה.

שינויים ב-API

  • מטמיעים את PlatformDataProvider כדי לספק נתוני דופק וצעדים יומיים. ממשק SensorGateway יוסר מה-API הציבורי. (I55b84)

תיקוני באגים

  • הפחתת ההקצאות במהלך מדידות של רשימות/מרשימות/וכו' בזמן האטה (Iaf9e2)
  • הפחתת ההקצאות כשמחילים קובצי snapshot (I65c09)
  • הוסרו הקצאות מאנימציות קפיץ (Ie9431)
  • הקצאה שהוסרה מ-TextLayout (I0fd11)
  • הסרה של מספר הקצאות במעקב אחר מהירות הסמן (I26bae)

גרסה 1.5.0-alpha04

10 במאי 2023

androidx.compose.foundation:foundation:1.5.0-alpha04 ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha04 משוחררים. גרסה 1.5.0-alpha04 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספנו TextStyle.merge(...) מותאם עם רשימת פרמטרים מלאה. (Iad234, ‏ b/246961787)
  • הצגת SnapLayoutInfoProvider שאפשר להשתמש בו עם LazyGridState. (I92134, ‏ b/269237141, ‏ b/260914964)
  • הוספנו את הערך הניסיוני Modifier.animateItemPlacement() להיקף הפריט של רשתות פסאודודינמיות מדורגות. אפשר להחיל אותו על הפריטים כדי ליצור אנימציות של שינוי מיקום או שינוי סדר אוטומטיים. (I4b62d, ‏ b/257034719)
  • קידום GridCells.FixedSize לגרסה היציבה. FixedSize מגדיר LazyGrid שבו כל תא תופס את הגודל המדויק שלו בציר החוצה, והשטח שנותר מחולק לפי סידור בציר החוצה. (I8542f)
  • הוספנו את היקף הנמען PagerScope ל-Pager ופונקציית שירות לחישוב היסט נתון בדף. (If2577)
  • מוסיפים את snapPositionalThreshold כשיוצרים התנהגות של משיכה מהירה. אפשר להשתמש בפרמטר הזה כדי לציין סף מיקום לקיצור הזמן של הצמדה ב-Pager. (If8f7f)
  • SnapLayoutInfoProvider.calculateSnappingOffsetBounds הוחלף בטקסט calculateSnappingOffset. בשיטה החדשה הזו, אנחנו פשוט מבקשים את ההיסט הבא להתחבר אליו. החישוב של הגבולות צריך להתבצע ברמת ההטמעה, כי הוא עשוי להשתנות בהתאם לאופן שבו רוצים שההצמדה תתבצע. (I923a4)
  • ממשקי ה-API של LazyStaggeredGrid הועלו לגרסה יציבה. (I633a5)
  • הסרת pageCount מהחשבון Horizontal/VerticalPager. צריך לספק את הפרטים האלה בזמן יצירת המצב. עודכנו ההגדרות PagerState ו-rememberPagerState כדי לאשר את pageCount. (Ieb52d, ‏ b/266965072)
  • הסרת pageCount מהחשבון Horizontal/VerticalPager. צריך לספק את הפרטים האלה בזמן יצירת המצב. עודכנו ההגדרות PagerState ו-rememberPagerState כדי לאשר את pageCount. (Ifa3cb, ‏ b/266965072)
  • הצגת shortSnapVelocityThreshold ב-SnapFlingBehavior של Pager. (I7379e, b/275579012)
  • הוספת FlowRowScope ו-FlowColumnScope. (I54fe2)

תיקוני באגים

  • קריאות לקבלת סמנטיקה בטקסט כשהאילוצים כוללים את הערכים minWidth ו-minHeight לא גורמות יותר לקריסה. (Ibd072)
  • תוקנה נסיגה (regression) שבה המקלדת לא הוצגה בשדות טקסט בתוך תיבות דו-שיח שלא נוצרו על ידי הרכיב הניתן לקישור Dialog. (I82551, ‏ b/262140644)

גרסה 1.5.0-alpha03

19 באפריל 2023

androidx.compose.foundation:foundation:1.5.0-alpha03 ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha03 משוחררים. גרסה 1.5.0-alpha03 מכילה את ההצהרות האלה.

בגרסה הזו מופעל סטאק חדש לעיבוד טקסט ב-Compose. הסטאק החדש עבר אופטימיזציה לביצועים, ולא אמורים להיות שינויים גלויים.

אם כן רואים שינויים בטקסט שעבר רינדור, אפשר לנפות באגים על ידי הגדרת NewTextRendering1_5 = false כדי לאשר את ההבדל בהתנהגות. הגדרה כזו תגרום לאילוץ של יצירת קומפוזיציה מחדש. יש לדווח על הבדלים בהתנהגות כבאגים.

הדגל לניפוי באגים יוסר לפני השקת גרסת 1.5 beta01.‏ (Iada23, ‏ b/246960758)

שינויים ב-API

  • הופכים את FlowColumn/FlowRow לתוך השורה. (Idab37)

גרסה 1.5.0-alpha02

5 באפריל 2023

androidx.compose.foundation:foundation:1.5.0-alpha02 ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha02 משוחררים. גרסה 1.5.0-alpha02 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספנו תמיכה בתאים בגודל קבוע ב-LazyGrid וסידור שלהם עם סידור ציר חוצה. (I83ed9, ‏ b/235121277, ‏ b/267942510)
  • נוספה תמיכה בנתיבים בגודל קבוע ב-LazyStaggeredGrid וסידור שלהם עם סידור ציר חוצה. (I7d519)
  • עכשיו אפשר לפתוח UrlAnnotation ב-AnnotatedString באמצעות שירותי נגישות כמו TalkBack. (If4d82, ‏ b/253292081)
  • נוספה הפעולה InsertTextAtCursor semantics לשדות טקסט. (I11ed5)
  • פעולות בדיקה שקשורות לטקסט (למשל performTextInput) יבקשו עכשיו להתמקד ישירות, באמצעות פעולת הסמנטיקה, במקום ללחוץ על השדה. (I6ed05)
  • הוספת תמיכה במרווחים/סידורים של צירים חוצים באמצעות verticalArrangement ב-FlowRow ו-horizontalArrangement ב-FlowColumn. אנחנו מסירים גם את verticalAlignment ו-horizontalAlignment ברמה העליונה ב-FlowRow/FlowColumn. מפתחים יכולים להשתמש ב-Modifier.align במקום זאת. כך מפחיתים את הבלבול בין מוסכמות השמות של verticalAlignment ושל verticalArrangement. (I87b60, ‏ b/268365538)

גרסה 1.5.0-alpha01

22 במרץ 2023

androidx.compose.foundation:foundation:1.5.0-alpha01 ו-androidx.compose.foundation:foundation-layout:1.5.0-alpha01 משוחררים. גרסה 1.5.0-alpha01 כוללת את ההצהרות האלה.

שינויים ב-API

  • הטקסט ו-BasicText עוברים עיבוד מחדש כדי להשתמש במערכת המשתנים החדשה. במקרים רבים, הפעולה הזו מובילה לשיפורים משמעותיים בביצועים. לא אמורים להיות שינויים גלויים. (If1d17, b/246961435)
  • נוספה הפעולה הסמנטית PerformImeAction כדי להפעיל את הפעולה של IME בצמתים של עורכי טקסט. (Ic606f, ‏ b/269633506)

תיקוני באגים

  • עדכון הרכיבים הפנימיים של Modifier.hoverable. המשתנה המשנה hoverable יופיע בבודק רק אם הוא מופעל. (I82103)

גרסה 1.4

גרסה 1.4.3

3 במאי 2023

הגרסאות androidx.compose.foundation:foundation:1.4.3 ו-androidx.compose.foundation:foundation-layout:1.4.3 פורסמו ללא שינויים (רק שדרוג גרסה).

גרסה 1.4.2

19 באפריל 2023

androidx.compose.foundation:foundation:1.4.2 ו-androidx.compose.foundation:foundation-layout:1.4.2 משוחררים. גרסה 1.4.2 כוללת את השמירות האלה.

גרסה 1.4.1

5 באפריל 2023

androidx.compose.foundation:foundation:1.4.1 ו-androidx.compose.foundation:foundation-layout:1.4.1 משוחררים. גרסה 1.4.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

גרסה 1.4.0

22 במרץ 2023

androidx.compose.foundation:foundation:1.4.0 ו-androidx.compose.foundation:foundation-layout:1.4.0 משוחררים. גרסה 1.4.0 כוללת את ההצהרות האלה.

שינויים חשובים מאז גרסה 1.3.0

  • הוספנו שילוב של תאימות לסמלי אמוג'י ל-Text ול-TextField, וגם לרכיב ברמה הנמוכה יותר Paragraph (פסקה). הוא מופעל כברירת מחדל כשמגדירים את emojicompat.
  • אפשר להגדיר את EmojiCompat בטקסט ספציפי באמצעות PlatformParagraphStyle.
  • נוספה תמיכה בהיקף שורה מלא ל-LazyStaggeredGrid(I28252)
  • הוספת onHover הניסיוני אל ClickableText (I6938f)
  • הוספנו עומסי יתר ניסיוניים חדשים לפונקציה runComposeUiTest ולפונקציות create*ComposeRule שמקבלות פרמטרים מסוג CoroutineContext. ההקשר ישמש להרכבת הבדיקה לכל קריאה ל-LaunchedEffect ול-rememberCoroutineScope() בהרכבה. (I10614, ‏ b/265177763)
  • FlowRow ו-FlowColumn זמינים עכשיו בתור @ExperimentalFoundationApi, שמאפשרים פריסה גמישה יותר של רכיבים על סמך שורות ועמודות, שיעברו לשורה חדשה אם לא יהיה מספיק מקום בציר הראשי. (I3a7b2)
  • Modifier.basicMarquee() זמין כתכונה ניסיונית להצגת תוכן עם אפקט של מודעה נעה. (I2df44, ‏ b/139321650)

גרסה 1.4.0-rc01

8 במרץ 2023

androidx.compose.foundation:foundation:1.4.0-rc01 ו-androidx.compose.foundation:foundation-layout:1.4.0-rc01 משוחררים. גרסה 1.4.0-rc01 כוללת את השמירות האלה.

שינויים ב-API

  • השקנו ממשק API חדש ברמה נמוכה של PlatformTextInputAdapter ליצירת הטמעות בהתאמה אישית של קלט טקסט, שמתקשרות ישירות לממשקי ה-API של הפלטפורמה. (I58df4)
  • הוספת תמיכה בפריסה הפוכה ל-LazyStaggeredGrid. (I3ef4a)

תיקוני באגים

  • הפעולה SetText של סמנטיקה של BasicTextField תעדכן עכשיו את מאגר הטקסט באמצעות אותו נתיב קוד שבו מתבצעים עדכוני ה-IME ופונקציות הבדיקה (למשל performTextReplacement).
  • פונקציות בדיקת הטקסט performTextClearance,‏ performTextReplacement ו-performTextSelection משתמשות עכשיו ב-SemanticsActions. (I0807d, ‏ b/269633168, ‏ b/269624358)

גרסה 1.4.0-beta02

22 בפברואר 2023

androidx.compose.foundation:foundation:1.4.0-beta02 ו-androidx.compose.foundation:foundation-layout:1.4.0-beta02 משוחררים. גרסה 1.4.0-beta02 כוללת את ההצהרות האלה.

שינויים ב-API

  • נוספה קריאה חוזרת חדשה מסוג Modifier.Node.onReset() שמאפשרת לאפס חלק מהמצב המקומי כדי לטפל כראוי במקרה שבו Layout ישמש לשימוש חוזר (למשל, כפריט של LazyColumn). תוקנה FocusTargetModifierNode כדי לאפס כראוי את המצב הממוקד. (I65495, ‏ b/265201972)
  • נוסף הפרמטר BlendMode לשיטות DrawScope.drawText,‏ Paragraph.paint ו-MultiParagraph.paint כדי לתמוך באלגוריתמים שונים של מיזוג כשמציירים טקסט ב-Canvas. (I57508)
  • הסרנו את ה-API של modifierElementOf(). במקום זאת, יש להרחיב ישירות מ-ModifierNodeElement. (Ie6d21)

תיקוני באגים

  • לא ניתן יותר לבחור תו חלקי על ידי שינוי ידני של ידני הבחירה. (Idedd1)
  • תיקון קריסה כשמקישים על Ctrl+Backspace ב-TextField ריק (I0427f, ‏ b/244185537)

גרסה 1.4.0-beta01

8 בפברואר 2023

androidx.compose.foundation:foundation:1.4.0-beta01 ו-androidx.compose.foundation:foundation-layout:1.4.0-beta01 משוחררים. גרסה 1.4.0-beta01 מכילה את ההוספות האלה.

תכונות חדשות

  • מאז גרסה 1.3, הוספנו תמיכה באמוג'י ל-Text ול-TextField, וגם לרמה הנמוכה יותר Paragraph. הוא מופעל כברירת מחדל כשמגדירים את emojicompat.
  • אפשר להגדיר את EmojiCompat בטקסט ספציפי באמצעות PlatformParagraphStyle.

שינויים ב-API

  • הוספנו הטמעה משותפת של PinnableContainer API שמשמש בכל LazyLayouts כדי לשמור פריטים שיוצאים מההרכב, אבל עדיין צריכים להיות פעילים. (If45a4)
  • השם של PinnableContainer.PinnedHandle.unpin() השתנה ל-release() (I4667a)

תרומה חיצונית

  • הנכס mainAxisItemSpacing נוסף ל-LazyListLayoutInfo, ל-LazyGridLayoutInfo ול-LazyStaggeredGridItemInfo (I52fad)

גרסה 1.4.0-alpha05

25 בינואר 2023

androidx.compose.foundation:foundation:1.4.0-alpha05 ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha05 משוחררים. גרסה 1.4.0-alpha05 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • נוספה תמיכה במרחק מלא בין שורות ב-LazyStaggeredGrid (I28252)
  • הוספת onHover הניסיוני ל-ClickableText (I6938f)
  • הוספנו עומסי יתר ניסיוניים חדשים לפונקציה runComposeUiTest ולפונקציות create*ComposeRule שמקבלות פרמטרים מסוג CoroutineContext. ההקשר ישמש להרכבת הבדיקה לכל קריאה ל-LaunchedEffect ול-rememberCoroutineScope() בהרכבה. (I10614, ‏ b/265177763)

שינויים ב-API

  • מיזוג ממשקי ה-API לפני/אחרי של OverscrollEffect לפונקציות applyToScroll ו-applyToFling המשולבות של 'decorator'. בדוגמאות המעודכנות במסמך התיעוד מפורטות דוגמאות להטמעת אפקט של גלילה מעבר לקצה המסך באמצעות צורת ה-API החדשה. (I8a9c4, ‏ b/255554340)
  • עוד סוגים/אפשרויות של פונקציות מוסתרות בקוד או פונקציות מוסתרות שהוצאו משימוש (I24f91)
  • ממשקי ה-API של LineBreak ו-Hyphens ב-TextStyle עוברים לשלב היציב. (Ic1e1d)

תיקוני באגים

  • הסמן בשדות טקסט ימשיך להבהב גם כשהאנימציות מושבתות. (I95e70, ‏ b/265177763)
  • עכשיו יש אנימציה ב-Modifier.basicMarquee גם כשהאנימציות מושבתות בהגדרות המערכת. (I23389, ‏ b/262298306, ‏ b/265177763)

תרומה חיצונית

  • שיטות notifyFocusedRect ב-TextInputSession וב-TextInputService לא יוצאו שוב משימוש. (I23a04, ‏ b/262648050)

גרסה 1.4.0-alpha04

11 בינואר 2023

androidx.compose.foundation:foundation:1.4.0-alpha04 ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha04 משוחררים. גרסה 1.4.0-alpha04 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • FlowRow ו-FlowColumn זמינים עכשיו בתור @ExperimentalFoundationApi, שמאפשרים פריסה גמישה יותר של רכיבים על סמך שורות ועמודות, שיעברו לשורה חדשה אם לא יהיה מספיק מקום בציר הראשי. (I3a7b2)
  • Modifier.basicMarquee()זמין כתכונה ניסיונית להצגת תוכן עם אפקט של מודעה נעה. (I2df44, ‏ b/139321650)

שינויים ב-API

  • השדה FocusRequesterModifier הוצא משימוש לטובת FocusRequesterNode (I7f4d7, ‏ b/247708726, ‏ b/255352203, ‏ b/253043481, ‏ b/247716483, ‏ b/254529934, ‏ b/251840112, ‏ b/251859987, ‏ b/257141589)
  • ה-constructor של AndroidFont עם variationSettings הוא עכשיו ממשק API יציב, וניתן להשתמש בו כדי ליצור סוגים חדשים של מתארי גופנים. (I5adcc, ‏ b/261565807)
  • הוספנו את ה-API של PinnableContainer שמופץ על ידי רשימות עצלניות באמצעות רכיב מקומי שמאפשר להצמיד את הפריט הנוכחי. המשמעות היא שהפריט לא יוסר כשגוללים ממנו מהתצוגה. לדוגמה, Modifier.focusable() יקביע את הפריט הנוכחי שממוקד באמצעות המנגנון הזה. (Ib8881, ‏ b/259274257, ‏ b/195049010)
  • שינינו את האופן שבו רכיבים שניתנים לגלילה מגיבים ל-bringIntoViewRequesters ולרכיבים שניתן להתמקד בהם, כדי ליצור מודל טוב יותר של המורכבות של הפעולות האלה ולטפל במקרים קיצוניים נוספים. (I2e5fe, ‏ b/241591211, ‏ b/192043120, ‏ b/237190748, ‏ b/230756508, ‏ b/239451114)
  • אפשרות נוספת לאפשרות האפס של טיפוס ההחזרה של פונקציות מוסתרות שהוצאו משימוש (Ibf7b0)
  • הוספנו את TextMotion הניסיוני ל-TextStyle כדי להגדיר טקסט כ-Static(default) או כאנימציה. משתמשים ב-TextMotion.Animated אם רוצים לשנות את הגודל, התרגום או הסיבוב של הטקסט באמצעות אנימציה. (I24dd7)
  • הוספת TextFieldFocusModifier כדי לתקן את התנהגות הניווט במצב התמקדות בפלטפורמת Android (I00303)
  • הארגומנט maxSize: IntSize בפונקציה drawText הוחלף ב-size: Size כדי להתאים לפונקציות אחרות של DrawScope. כברירת מחדל, size מוגדר כ-Size.Unspecified, והוא לא אמור לשנות את התנהגות ברירת המחדל הקודמת. (Icd27d)

תיקוני באגים

  • שינויים בפיזיקה של הצמדה ב-SnapFlingBehaviour כדי ליצור תחושה טבעית יותר.

בעיה ידועה

  • כשמעדכנים מ-androidx.compose.foundation:1.4.0-alpha03 ל-androidx.compose.foundation:1.4.0-alpha04, יכול להיות שתופיע השגיאה java.lang.NoSuchFieldError. כאן דווחה הבעיה במקור. שלחנו תיקון והוא יהיה זמין בעדכון הבא של Compose. כפתרון זמני, אפשר לעדכן את הספריות androidx.compose.material ו-androidx.compose.material3 לגרסה האחרונה(1.1.0-alpha04) או לשדרג לאחור את androidx.compose.foundation לגרסה 1.4.0-alpha03.

גרסה 1.4.0-alpha03

7 בדצמבר 2022

androidx.compose.foundation:foundation:1.4.0-alpha03 ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha03 משוחררים. גרסה 1.4.0-alpha03 כוללת את ההצהרות האלה.

שינויים ב-API

  • בבדיקות ממשק משתמש שמשתמשות בכלל Compose, ההמשכות שהתחדשו במהלך קריאות חזרה (callbacks) של withFrameNanos לא יישלחו עד שכל הקריאות החוזרות של המסגרות יסתיימו. זה תואם להתנהגות של compose כשהוא פועל באופן רגיל. עם זאת, בדיקות שמסתמכות על ההתנהגות הישנה עשויות להיכשל. השינוי הזה אמור להשפיע רק על קוד שמפעיל את withFrameNanos או את withFrameMillis ישירות, ויש לו לוגיקה מחוץ לפונקציית הקריאה החוזרת שמועברת לפונקציות האלה, וייתכן שיהיה צורך להעביר אותה לתוך הפונקציות האלה. בדוגמאות האלה אפשר לראות את השינויים בבדיקת האנימציה.
  • נוספה פרמטר onPerformTraversals: (Long) -> Unit אופציונלי ל-constructor ולפונקציית ה-factory של TestMonotonicFrameClock כדי להריץ קוד אחרי קריאות חוזרות (callbacks) של withFrameNanos, אבל לפני שממשיכים את רצפי הפעולות החוזרות (coroutines) של מבצעי הקריאה החוזרת. (Idb413, ‏ b/254115946, ‏ b/222093277, ‏ b/255802670)
  • הצגת פעולות של נגישות בדף: PageUp, PageDown, PageLeft, PageRight. לתשומת ליבכם, האפשרויות האלה זמינות רק מ-API 29. (Ida4ab)
  • הצגת HorizontalPager ו-VerticalPager, דרך להציג רכיבים מורכבים בפורמט של Pager. הוספנו את PagerState כדי לשלוט במכשירי ה-Pager, וגם כדי לשלוח שאילתות לגבי המצב הנוכחי של ה-Pager. הוספנו את PageSize, דרך לשלוט בגודל הדף של Pager. אפשר להשתמש בזה כדי ליצור קרוסלה כמו Pagers. הוספנו את PagerSnapDistance, דרך לשלוט באופן שבו הצמדה תפעל בהתנהגות ה-fling של Pager. (I01120)
  • הוספנו עומס יתר ב-SnapFlingBehavior.performFling כדי לעזור לכם להבין איפה ה-fling יתייצב. (I569f6)
  • בוצעה הסרה של OverscrollEffect#isEnabled. במקום לזכור את הדגל הזה ולהגדיר אותו, פשוט לא שולחים אירועים לאפקט הגלילה החוצה במקרים שבהם לא רוצים שהגלילה החוצה תוצג (לדוגמה, אם שני הפונקציות ScrollableState#canScrollForward/backward מחזירות את הערך false). (I1a4b0, ‏ b/255554340, ‏ b/255557085)
  • הוספנו את ScrollableState#canScrollForward ו-ScrollableState#canScrollBackward לשאילתה כדי לבדוק אם יש ל-ScrollableState מקום לגלילה בכל כיוון (אם הוא בטווח המינימלי או המקסימלי שלו). ברירת המחדל היא True, כדי לשמור על תאימות לאחור עם הטמעות קיימות של ScrollableState. הצרכנים יכולים להשתמש בנתונים האלה כדי להציג למשתמש אינדיקציה לכך שעדיין יש מקום לגלילה. אפשר גם להשתמש בנתונים האלה כדי להימנע משליחת דלתא ל-ScrollableStates שאין להם מקום לגלילה בכיוון נתון, כדי לצמצם את העבודה המיותרת. (Idf1a0, ‏ b/255557085)
  • הוספנו Modifier API לשליחת שאילתות לגבי פרטי גלילה של ישויות אב. (I2ba9d, ‏ b/203141462)
  • משמש ב-Clickable כדי לעכב בצורה נכונה אינטראקציות של הקשה, כשתנועות עלולות להפוך לאירועי גלילה.
  • תוקנה בעיה שבה Clickables לא עכב את הרטט בצורה נכונה כשמשתמשים בו בתוך Scrollable ViewGroup.
  • עדכנו את התכונות 'תיבות הצירים' ו'גיליונות' כדי לעכב בצורה נכונה את הלחיצות במקרה שהתנועות עלולות להפוך לאירועי גלילה.
  • מעדכנים את השמות של snapStepSize כך שיתאימו לשמות של שיטות אחרות ב-SnapLayoutInfoProvider. (Ife67c)
  • הוספת EmojiCompat אל Compose (Ibf6f9, ‏ b/139326806)
  • שינינו את השם של consumedWindowInsets() ל-consumeWindowInsets() ואת השם של withConsumedWindowInsets() ל-onConsumedWindowInsetsChanged(), והפכנו את המודификаторים לציבוריים. (Ie44e1)

תיקוני באגים

  • תוקנה הקריסה שקשורה ל-Modifier.animateItemPlacement() ולרשימות רשת 'עיכוב טעינה'. הבעיה התרחשה בתנאים מסוימים כשמספר הפריטים החדשים קטן ממספר הפריטים הקודם. (I0bcac, ‏ b/253195989)

גרסה 1.4.0-alpha02

9 בנובמבר 2022

androidx.compose.foundation:foundation:1.4.0-alpha02 ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha02 משוחררים. גרסה 1.4.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • עכשיו אפשר להשתמש ב-PointerEventPass ב-awaitFirstDown וב-waitForUpOrCancellation כדי לקבל גמישות רבה יותר. (I7579a, ‏ b/212091796)
  • החזרת ה-API של beyondBoundCount מ-Lazy* APIs (I12197)
  • הוספנו פרמטר לממשקי API עם טעינה איטית כדי ליצור ולמקם פריטים מחוץ למסך (I69e89, ‏ b/172029355)
  • הפרמטר minLines נוסף ל-BasicText ול-BasicTextField. הוא מאפשר להגדיר את הגובה המינימלי של הרכיבים האלה במונחים של מספר שורות (I24294, ‏ b/122476634)

גרסה 1.4.0-alpha01

24 באוקטובר 2022

androidx.compose.foundation:foundation:1.4.0-alpha01 ו-androidx.compose.foundation:foundation-layout:1.4.0-alpha01 משוחררים. גרסה 1.4.0-alpha01 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • נוספה שיטה חדשה, awaitEachGesture(), לזיהוי תנועות. הפונקציה פועלת באופן דומה ל-forEachGesture(), אבל הלולאה על התנועות פועלת לגמרי בתוך AwaitPointerEventScope, כך שאי אפשר לאבד אירועים בין איטרציות.
  • האפשרות forEachGesture() הוצאה משימוש לטובת awaitEachGesture() כי היא עלולה לגרום לאיבוד אירועים בין תנועות. (Iffc3f, ‏ b/251260206)
  • נוספו WindowInsets.imeAnimationSource ו-WindowInsets.imeAnimationTarget כדי לקבוע את התקדמות האנימציה ולדעת איפה IME יהיה אחרי שהאנימציה תושלם. (I356f1, ‏ b/217770337)

גרסה 1.3

גרסה 1.3.1

9 בנובמבר 2022

androidx.compose.foundation:foundation:1.3.1 ו-androidx.compose.foundation:foundation-layout:1.3.1 משוחררים. גרסה 1.3.1 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון בעיית ביצועים ב-BeyondBoundsLayout (aosp/2255266)
  • ContentInViewModifier לא יקרא את קואורדינטות הפריסה אלא אם הן מצורפות (aosp/2241316)

גרסה 1.3.0

24 באוקטובר 2022

androidx.compose.foundation:foundation:1.3.0 ו-androidx.compose.foundation:foundation-layout:1.3.0 משוחררים. גרסה 1.3.0 כוללת את ההצהרות האלה.

שינויים חשובים מאז גרסה 1.2.0

  • הושקנו גרסאות ניסיוניות של LazyVerticalStaggeredGrid ושל LazyHorizontalStaggeredGrid.
  • ממשקי ה-API SnapFlingBehavior ו-rememberSnapFlingBehavior וממשקי API תואמים נוספים נוספו כניסיוניים.
  • כשלוחצים על Modifier.clickable, Modifier.toggleable ו-Modifier.selectable במקלדת או בלחצן ה-D במכשיר השליטה מרחוק, מופיעות עכשיו תנודות.

גרסה 1.3.0-rc01

5 באוקטובר 2022

androidx.compose.foundation:foundation:1.3.0-rc01 ו-androidx.compose.foundation:foundation-layout:1.3.0-rc01 משוחררים. גרסה 1.3.0-rc01 כוללת את ההצהרות האלה.

שינויים ב-API

  • הוספנו את הערך lowVelocityAnimationSpec שמשמש את שלב הגישה כשאין מספיק מהירות זריקה כדי לגרום לתנועה לדעוך. (Iaeb27)
  • נוספו מקפים ניסיוניים חדשים ל-API כדי לתמוך בהוספת מקפים אוטומטית בטקסט (Iaa869)

גרסה 1.3.0-beta03

21 בספטמבר 2022

androidx.compose.foundation:foundation:1.3.0-beta03 ו-androidx.compose.foundation:foundation-layout:1.3.0-beta03 משוחררים. גרסה 1.3.0-beta03 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • הוספת אפשרויות להתאמה אישית של חלוקת הטקסט לשורות. (I86907)
  • עכשיו BringIntoViewResponder יכולים לקבל את הגבולות העדכניים ביותר של בקשה בזמן העיבוד שלה. (If86a5, ‏ b/241591211)
  • הוספת תמיכה במרווחים בין פריטים לגרסה הניסיונית של Staggered Grid (I10b82)
  • הוספת מילוי תוכן לגרסה הניסיונית Staggered Grid (I342ea)
  • שינינו את הארגומנט size:IntSize ל-constraints: Constraints בשיטה TextMeasurer.measure כדי לתמוך באילוצים של רוחב מינימלי. (I37530, ‏ b/242707525)
  • נוספה Modifier.withConsumedWindowInsets() לצורך שימוש ב-WindowInsets מחוץ ל-windowInsetsPadding.
  • הוספנו את MutableWindowInsets כדי לאפשר שינוי קל של WindowInsets בלי צורך בהרכבה מחדש. (I7fd28, ‏ b/237019262, ‏ b/243119659)

גרסה 1.3.0-beta02

7 בספטמבר 2022

androidx.compose.foundation:foundation:1.3.0-beta02 ו-androidx.compose.foundation:foundation-layout:1.3.0-beta02 משוחררים. גרסה 1.3.0-beta02 מכילה את ההצהרות האלה.

שינויים ב-API

  • הגרסה הראשונית של StaggeredGrid הניסיוני (Ia48be)
  • השמות של FocusDirection.In ו-FocusDirection.Out שונו ל-FocusDirection.Enter ו-FocusDirection.Exit (Ia4262, ‏ b/183746982)
  • הוספנו עומס יתר על rememberSnapFlingBehavior שמאפשר להפעיל הצמדה ב-LazyLists במהירות. (Ifb48a)
  • החלפתם את המפעל snapFlingBehavior בכיתה ספציפית של SnapFlingBehavior. הרחבנו את ההיקף של השיטות SnapLayoutInfoProvider ל-Density כדי להקל על משתמשי ה-API לבצע המרות מסוג Dp<->Px. (I54a11)
  • מעדכנים את LazyLayoutMeasureScope.measure כך שתחזיר רשימה של נכסי Placeable, ומדגישים את אי-האפשרות לשינוי של הערך המוחזר. (I48b7c)
  • הוספנו את SnapLayoutInfoProvider, שמקבלת LazyListState כדי ליצור מכונה של SnapLayoutInfoProvider שאפשר להשתמש בה כדי להפעיל snap FlingBehavior ל-LazyLists. (I2dd10)

תיקוני באגים

  • שינוי AwaitPointerEventScope#awaitLongPressOrCancellation כך שיתאים לפונקציות אחרות של await (I646e6)

גרסה 1.3.0-beta01

24 באוגוסט 2022

androidx.compose.foundation:foundation:1.3.0-beta01 ו-androidx.compose.foundation:foundation-layout:1.3.0-beta01 משוחררים. גרסה 1.3.0-beta01 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוסר pointerPosition מ-OverscrollEffect – אפקטים שחשוב להם המיקום של הסמן יכולים להשתמש ב-Modifier.pointerInput { } ב-effectModifier כדי לקבל את המיקום הנוכחי של הסמן במקום זאת. (I9f606, ‏ b/241239306)
  • חשיפה של AwaitPointerEventScope#awaitLongPressOrCancellation כאבן בניין נוספת לזיהוי תנועות מורכב יותר (I04374, ‏ b/181577176)
  • הוספנו את lazyListSnapLayoutInfoProvider כדי לאפשר הצמדה ברשימות 'הוספה אוטומטית'. (I3ecdf)
  • הוספנו את SnapFlingBehavior, התנהגות של תנועה מהירה שמאפשרת הצמדה של רשימות. מספקים מופע של SnapLayoutInfoProvider עם מידע על פריסת הצמדה. (Ie754c)

גרסה 1.3.0-alpha03

10 באוגוסט 2022

androidx.compose.foundation:foundation:1.3.0-alpha03 ו-androidx.compose.foundation:foundation-layout:1.3.0-alpha03 משוחררים. גרסה 1.3.0-alpha03 מכילה את ההצהרות האלה.

שינויים ב-API

  • הגדרות הגופן של משאבי הגופנים תומכות עכשיו בהגדרת הגדרות של וריאציות גופן (API מגרסה 26 ואילך). (I900dd, ‏ b/143703328)
  • תמיכה בגופנים משתנים ב-DeviceFontFamilyNameFont (Ic1279, ‏ b/143703328)
  • ההערה הניסיונית הוסרה מ-PlatformTextStyle ומ-LineHeightStyle. (I64bef)
  • שדות טקסט יגרמו עכשיו להפעלת חריגות מפורטות יותר כשה-OffsetMapping שסופק על ידי VisualTransformation מחזיר אינדקסים לא חוקיים. (Ie73f9, ‏ b/229378536)
  • הצגת ממשקי API ניסיוניים לשיתוף הלוגיקה של ספק הפריטים בין פריסות 'איטום'. (Ic891c)
  • ScrollableDefaults.reverseDirection() כבר לא ניסיוני. (Iba646)
  • הוצאנו משימוש את SemanticsModifier.id והעברנו את מזהה הסמנטיקה ל-LayoutInfo.semanticsId במקום זאת. (Iac808, ‏ b/203559524)
  • checkScrollableContainerConstraints() כבר לא ניסיוני. (I2c290)
  • Modifier.clipScrollableContainer() כבר לא ניסיוני. (Ia2b44)
  • הוצאה משימוש של TextInputService.show|hideSoftwareKeyboard. במקום זאת, צריך להשתמש ב-SoftwareKeyboardController בקוד האפליקציה וב-TextInputSession בקוד לניהול IME. (I14e4c, ‏ b/183448615)

גרסה 1.3.0-alpha02

27 ביולי 2022

androidx.compose.foundation:foundation:1.3.0-alpha02 ו-androidx.compose.foundation:foundation-layout:1.3.0-alpha02 משוחררים. גרסה 1.3.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספנו את פונקציית התוסף drawText ל-DrawScope כדי לספק דרך לצייר טקסט עם כמה סגנונות ברכיבים מורכבים ובמודיפיירים שפועלים על DrawScope, כמו Canvas ו-drawBehind. (I16a62, b/190787898)

תיקוני באגים

  • מעכשיו, המקלדת במסך תוסתר כששדה טקסט מושבת בזמן שהוא ממוקד. (I6e3e4, ‏ b/237308379)
  • כשמוסיפים אירועי InputEventChange למעקב אחר המהירות, מעכשיו נביא בחשבון דלתא במקום מיקומים. כך נבטיח שהמהירות מחושבת בצורה נכונה בכל המקרים, גם אם רכיב היעד זז (Icea9d,‏ b/216582726,‏ b/223440806,‏ b/227709803)
  • כשיש רכיב שניתן לגלילה עם רכיב צאצא שממוקד, הגלילה תתבצע עכשיו בצורה נכונה כדי שהרכיב הממוקד יישאר בטווח הראייה כשהגודל שלו קטן, גם אם הגודל משתנה באמצעות אנימציה. (I80867, ‏ b/230756508, ‏ b/220119990)
  • תוקנה קריסה שבה השדה TextField נמחק ונמלא מחדש בזמן שהבחירה פעילה. (I1235b, ‏ b/208655565, ‏ b/214253689)

גרסה 1.3.0-alpha01

29 ביוני 2022

androidx.compose.foundation:foundation:1.3.0-alpha01 ו-androidx.compose.foundation:foundation-layout:1.3.0-alpha01 משוחררים. גרסה 1.3.0-alpha01 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספנו את סוג ההערה UrlAnnotation ואת השיטות המשויכות כדי לתמוך בתמיכה בקישור TalkBack ב-AnnotatedString. (I1c754, ‏ b/231495122)

תיקוני באגים

  • עכשיו אפשר להוסיף אנימציה ל-BasicTextField cursorBrush בלי להפעיל מחדש את הטיימר של הסמן. (I812e6, ‏ b/236383522)

גרסה 1.2

גרסה 1.2.1

10 באוגוסט 2022

androidx.compose.foundation:foundation:1.2.1 ו-androidx.compose.foundation:foundation-layout:1.2.1 משוחררים. גרסה 1.2.1 מכילה את השמירות האלה.

גרסה 1.2.0

27 ביולי 2022

androidx.compose.foundation:foundation:1.2.0 ו-androidx.compose.foundation:foundation-layout:1.2.0 משוחררים. גרסה 1.2.0 מכילה את ההוספות האלה.

שינויים חשובים מאז גרסה 1.1.0

  • LazyVerticalGrid וגם LazyHorizontalGrid יציבות עכשיו.
  • עכשיו אפשר לציין סוג תוכן לפריטים ברשימות ובתצוגות רשת של Lazy. כך הרכיבים יוכלו לעשות שימוש חוזר ברכיבים בצורה יעילה יותר.
  • לרשימות ולמרתפים בטעינה איטית יש עכשיו הפרמטר userScrollEnabled שמאפשר להשבית את הגלילה באמצעות תנועות המשתמש.
  • נוספה ממשק API ניסיוני חדש בשם LazyLayout. זהו ממשק ה-API שאנחנו משתמשים בו באופן פנימי כדי להפעיל רשימות וריבועים 'לא פעילים'.
  • ממשק ה-API ‏OverscrollEffect הושק כגרסה ניסיונית. אפשר להגדיר אפקטים מותאמים אישית של גלילה מעבר לקצה המסך, וגם להוסיף אפקט סטנדרטי של פלטפורמה לקונטיינרים מותאמים אישית שניתנים לגלילה.
  • הוספנו ממשקי API ליכולת פעולה הדדית בגלילה בתצוגה עץ כדי לאפשר יכולת פעולה הדדית בין תצוגות לבין רכיבי גלילה מורכבים.
  • הוספנו גלילה בעכבר ובמשטח מגע לכל מאגרי התגים שאפשר לגלול בהם.

גרסה 1.2.0-rc03

29 ביוני 2022

androidx.compose.foundation:foundation:1.2.0-rc03 ו-androidx.compose.foundation:foundation-layout:1.2.0-rc03 משוחררים. גרסה 1.2.0-rc03 כוללת את ההצהרות האלה.

  • אין שינויים מאז 1.2.0-rc02.

גרסה 1.2.0-rc02

22 ביוני 2022

androidx.compose.foundation:foundation:1.2.0-rc02 ו-androidx.compose.foundation:foundation-layout:1.2.0-rc02 משוחררים. גרסה 1.2.0-rc02 כוללת את ההוספות האלה.

גרסה 1.2.0-rc01

15 ביוני 2022

androidx.compose.foundation:foundation:1.2.0-rc01 ו-androidx.compose.foundation:foundation-layout:1.2.0-rc01 משוחררים. גרסה 1.2.0-rc01 כוללת את ההוספות האלה.

שינויים ב-API

  • הוספנו OverscrollEffect ניסיוני כדי לאפשר אפקטים מותאמים אישית של גלילה מעבר לקצה המסך, לצד עומסי יתר של Modifier.scrollable שמקבלים אותו.
  • הגרסה הניסיונית LocalOverScrollConfiguration הועברה מחבילה foundation.gesture לחבילת הבסיס, ושמה שונה ל-LocalOverscrollConfiguration (If19fb,‏ b/204650733)
  • ממשקים בספריות של compose נוצרים עכשיו באמצעות שיטות ברירת המחדל של ממשק jdk8‏ (I5bcf1)
  • הוספנו ממשק API ניסיוני checkScrollableContainerConstraints() שמאפשר לבדוק שלא מוטמעים בתוך קונטיינרים שניתן לגלול. אפשר להשתמש בו כשיוצרים פריסות 'עיכוב טעינה' שניתנות לגלילה באמצעות LazyLayout. (Id6fab, ‏ b/233352497)
  • הוסר LazyVerticalGrid שהוצא משימוש מחבילת androidx.compose.foundation.lazy. ה-API היציב החדש נמצא ב-androidx.compose.foundation.lazy.grid (I73c76, ‏ b/225192009)

גרסה 1.2.0-beta03

1 ביוני 2022

androidx.compose.foundation:foundation:1.2.0-beta03 ו-androidx.compose.foundation:foundation-layout:1.2.0-beta03 משוחררים. גרסה 1.2.0-beta03 מכילה את ההצהרות האלה על ביצוע שינויים.

שינויים ב-API

  • נוספו IntervalList ו-MutableIntervalList ניסיוניים חדשים. הוא מאפשר לייצג רשימה של ערכים באמצעות כמה מרווחים. האפשרות הזו שימושית כשרוצים להגדיר dsl משלכם, בדומה ל-DSL שבו נעשה שימוש ב-LazyColumn, שבו אפשר להגדיר את הפריטים ברשימה באמצעות מספר קריאות ל-item/items. (I2d05e, ‏ b/228580728)

תיקוני באגים

  • הבהרנו במסמכי העזרה של WindowInsets.ime שדיווח על תצוגות מפורטות של ime מתבצע כבר מגרסה 23 של ה-API, אבל רק תצוגות מפורטות אנימציה מתבצע מגרסה 30 ואילך. (Ia7fc0, ‏ b/230756508)
  • לחיצה על מקש המחיקה קדימה כשהסמן נמצא בסוף שדה טקסט לא תגרום יותר לקריסה.
  • עכשיו, הארגומנטים של ה-constructor של DeleteSurroundingTextCommand ו-DeleteSurroundingTextInCodePointsCommand חייבים להיות לא שליליים. (Ica8e6, b/199919707)

גרסה 1.2.0-beta02

18 במאי 2022

androidx.compose.foundation:foundation:1.2.0-beta02 ו-androidx.compose.foundation:foundation-layout:1.2.0-beta02 משוחררים. גרסה 1.2.0-beta02 מכילה את ההצהרות האלה.

  • רזולוציית גופן שניתן להורדה שלא משתנה בהתאם לגודל הפריסה של טקסט או TextField, לא הייתה מתבצעת ציור מחדש, וכתוצאה מכך התצוגה של הגופן הייתה מיושנת. תיקון הבאג הזה מבטיח שתמיד תתבצע ציור מחדש של פריסת הטקסט (b/229727404). (I1d49e, ‏ b/229727404)

גרסה 1.2.0-beta01

11 במאי 2022

androidx.compose.foundation:foundation:1.2.0-beta01 ו-androidx.compose.foundation:foundation-layout:1.2.0-beta01 משוחררים. גרסה 1.2.0-beta01 כוללת את ההצהרות האלה.

תכונות חדשות

  • זוהי גרסת הבטא הראשונה של 1.2!

שינויים ב-API

  • הוספנו את BeyondBoundsInterval הניסיוני, שאפשר להשתמש בו בהטמעות בהתאמה אישית של LazyList כשהן מתכננות את הפריסה של פריטים מעבר לגבולות הגלוי (Ifabfb,‏ b/184670295)
  • השם של LineHeightBehavior השתנה ל-LineHeightStyle
  • השם של LineVerticalAlignment השתנה ל-LineHeightStyle.Alignment
  • שינוי שם השם של LineHeightTrim שונה ל-LineHeightStyle.Trim
  • הערכים של מגדיר המבנה (constructor) שמוגדר כברירת מחדל ב-LineHeightStyle הוסרו (I582bf, ‏ b/181155707)
  • נוספו ערכי ברירת מחדל למאפיינים האופציונליים של ממשק LazyLayoutItemProvider. (Iba8a0)
  • ב-LazyLayoutItemProvider API, במקום מפעל שמחזיר את הפונקציה הניתנת לקיפול לפי אינדקס, יש עכשיו פריט פשוט יותר של פונקציה ניתנת לקיפול שמקבל את האינדקס. (Id2196)
  • השם של LazyLayoutItemsProvider השתנה ל-LazyLayoutItemProvider (I0638c)
  • השם של LazyLayoutItemsProvider.itemsCount משתנה ל-itemCount (Id409c)
  • הוספנו את האפשרות 'מכחול' ל-TextStyle ול-SpanStyle כדי לספק דרך לצייר טקסט עם צבע פסטל. (I53869, ‏ b/187839528)
  • המאפיינים trimFirstLineTop ו-trimLastLineBottom של LineHeightBehavior השתנו למאפיין enum יחיד: LineHeightTrim. ל-LineHeightTrim יש 4 מצבים מוגדרים על ידי שני ערכים בוליאנים: FirstLineTop, LastLineBottom, Both ו-None (Ifc6a5, b/181155707)
  • הוספנו את LineHeightBehavior ל-TextStyle ול-ParagraphStyle. LineHeightBehavior כדי לקבוע אם גובה השורה יחול על החלק העליון של השורה הראשונה ועל החלק התחתון של השורה האחרונה. הוא גם מגדיר את היישור של השורה במרחב שסופק על ידי TextStyle(lineHeight).

    לדוגמה, אפשר לקבל התנהגות דומה לזו שמוגדרת ב-CSS באמצעות LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).

  • ההגדרות של trimFirstLineTop ו-trimLastLineBottom פועלות בצורה תקינה רק כש-includeFontPadding שווה ל-false. (I97332, b/181155707)

  • הוספנו את המשתנה הניסיוני imeNestedScroll() כדי שמפתחים יוכלו לשלוט ב-IME באמצעות גלילה. (I60759)

תיקוני באגים

  • תוקנה נסיגה (regression) שבה שדות טקסט לא הסתירו את המקלדת כשהוסרו מהקומפוזיציה בזמן שהם היו במוקד. (I7a410, ‏ b/230536793, ‏ b/225541817)
  • תמיכה בשלוש נקודות כשהגובה מוגבל ולא מתאים לכל שורות הטקסט (Ie528c, ‏ b/168720622)
  • מעכשיו, BringIntoViewRequester.bringIntoView תמיד יושעה עד שהבקשה תושלם או תופרע על ידי בקשה חדשה יותר שלא חופפת לה. בקשות חופפות ייכנסו לתור. (I43e7f, ‏ b/216790855)
  • קריאות BringIntoViewRequester.bringIntoView בו-זמניות למלבנים חופפים לחלוטין יטפלו עכשיו רק בבקשה של המלבן הגדול יותר. (I34be7, ‏ b/216790855, ‏ b/184760918)
  • הפעלת ברירת המחדל includeFontPadding. אפשר להשבית את includeFontPadding באמצעות המאפיין TextStyle.platformTextStyle. בעתיד הקרוב נשנה את התנהגות ברירת המחדל, אבל עד אז זה יאפשר לנו לשלב בצורה טובה יותר שיפורים לגובה השורה (aosp/2058653) ולפתור בעיות של חיתוך TextField. (I01423, ‏ b/171394808)
  • Modifier.bringIntoViewRequester כבר לא משתמש ב-onGloballyPositioned. (I630f5)

תרומה חיצונית

  • עכשיו, MouseInjectionScope.scroll(delta = someDelta) הפוך ב-Android אם גוללים אנכית (אם someDelta חיובי, הגלילה תהיה כלפי מטה) (Ifb697,‏ b/224992993)

גרסה 1.2.0-alpha08

20 באפריל 2022

androidx.compose.foundation:foundation:1.2.0-alpha08 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha08 משוחררים. גרסה 1.2.0-alpha08 מכילה את ההוספות האלה.

שינויים ב-API

  • הצגת כל העיצובים הזמינים של גופנים מערכת ב-Android באמצעות FontFamily.SansSerif. ב-API 21-28, המערכת תשתמש בשמות גופנים חלופיים כמו sans-serif-medium באופן פנימי. זהו שינוי בהתנהגות, כי בעבר הייתה תמיכה רק במשקלים 400 ו-700 ב-API 21-28. (I380fe, ‏ b/156048036, ‏ b/226441992)
  • עכשיו אפשר להשתמש בפרמטר Constraints ב-Paragraph וב-MultiParagraph. העברת Constraints.maxHeight היא פעולה ללא תוצאה כרגע, אבל היא תאפשר לבצע חישובים מסוימים בעתיד, כמו חיתוך אליפטי על סמך הגובה. (I6afee, ‏ b/168720622)
  • עכשיו אפשר להשתמש ב-SubcomposeSlotReusePolicy.getSlotsToRetain() עם סוג של MutableSet בהתאמה אישית, שלא מאפשר להוסיף אליו פריטים חדשים. (Icd314)
  • האפשרות 'צריכה חלקית (מצב מושבת או מיקום)' הוצאה משימוש ב-PointerInputChange. אפשר להשתמש ב-consume() כדי לצרוך את השינוי באופן מלא. אפשר להשתמש ב-isConsumed כדי לקבוע אם מישהו אחר כבר נצל את השינוי.
  • PointerInputChange::copy() יוצרת עכשיו תמיד עותק שטחי. המשמעות היא שעותקים של PointerInputChange ייצרכו ברגע שאחד מהעותקים ינוצל. אם רוצים ליצור PointerInputChange ללא קישור, משתמשים במקום זאת ב-constructor. (Ie6be4, ‏ b/225669674)
  • השקנו ממשק API ניסיוני חדש של LazyLayout. כך תוכלו ליצור רכיבים משלכם, כמו LazyColumn של LazyVerticalGrid. חשוב לזכור שממשק ה-API נמצא בשלבים מוקדמים, ויכול להיות שיחולו בו שינויים בגרסאות עתידיות. (Iba2bc, ‏ b/166591700)
  • עכשיו AndroidFont מקבל את typefaceLoader כפרמטר של ה-constructor. (I2c971)
  • WindowInsets companion חושף עכשיו את החשיפה (אם הם מופיעים במסך, ללא קשר אם הם חופפים לחלון) ואת הגודל שהם יכולים להיות אם הם זמינים במכשיר אבל לא פעילים כרגע. (I65182, ‏ b/217770337)

גרסה 1.2.0-alpha07

6 באפריל 2022

androidx.compose.foundation:foundation:1.2.0-alpha07 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha07 משוחררים. גרסה 1.2.0-alpha07 מכילה את ההצהרות האלה.

שינויים ב-API

  • נוספה ממשק API מסוג PinnableParent שמאפשר לצאצאים של פריסות מושבתות למנוע את השלכת הפריטים שנוצרו כרגע (Ibbdd0, ‏ b/184670295)
  • השדות LazyListLayoutInfo ו-LazyGridLayoutInfo כוללים עכשיו את השדות beforeContentPadding ו-afterContentPadding (I3b628, ‏ b/200920410)
  • הוספנו את KeyboardType.Decimal כחלופה ל-Keyboard.Number כדי לכלול באופן ספציפי את המפריד העשרוני ב-IME. (Iec4c8, ‏ b/209835363)
  • הוספת מתאר גופן חדש Font(DeviceFontFamilyName) כדי לחפש גופנים שמותקנים במערכת במהלך רשתות גיבוי של גופנים. (I30468, ‏ b/219754572)
  • PointerEventType.Scroll ו-PointerEvent.scrollDelta הם עכשיו ממשקי API יציבים (I574c5, ‏ b/225669674)
  • אפשר לשנות את ההגדרות הזמניות של התאימות שנוספו ל-includeFontPadding ב-TextStyle/ParagraphStyle. includeFontPadding באמצעות TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). זוהי אפשרות תצורה זמנית להפעלת ההעברה, והיא תוסר. (If47be, ‏ b/171394808)
  • עדכנו את FontFamily.Resolver כדי לשלב הגדרת נגישות של טקסט מודגש ברמת המערכת (I6c1e7)
  • מאפיין התוסף consumeWindowInsets של ComposeView מאפשר למפתחים להשבית את השימוש ב-Android WindowInsets. כך אפשר להחיל WindowInsets בנפרד על כל ComposeViews בהיררכיה, בלי שהם יפריעו זה לזה. (I0ef08, b/220943142)

גרסה 1.2.0-alpha06

23 במרץ 2022

androidx.compose.foundation:foundation:1.2.0-alpha06 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha06 משוחררים. גרסה 1.2.0-alpha06 מכילה את ההצהרות האלה.

שינויים ב-API

  • נוספה פעולת סמנטיקה RequestFocus לבקשת מיקוד ביעד שניתן להתמקד בו. (I17b71)
  • FocusOrder מוזג עכשיו ל-FocusProperties, ו-focusProperties() כולל עכשיו את כל היכולות של focusOrder(). התכונות FocusOrder ו-focusOrder() הוצאו משימוש. צריך להחליף את focusOrder() שמקבל focusRequester במשתנה focusRequester() בשילוב עם focusProperties(). כך אפשר להפריד בצורה טובה יותר בין הבעיות של המשתנים המשתנים. (I601b7)
  • WindowInsets.asPaddingValues(Density) נוסף כדי לאפשר למפתחים לבצע את ההמרה בלי צורך להיות במצב composition. (I94c35)
  • עדכון הניתוח של רכיבי drawable וקטוריים כדי לתמוך בהשתקפות אוטומטית של התוכן של VectorPainter אם כיוון הפריסה הנוכחי הוא RTL. (I79cd9, ‏ b/185760237)

תיקוני באגים

  • מעכשיו, אם תשנו את גודל אזור הגלילה והרכיב הממוקד היה גלוי קודם, תוכלו להשתמש ב-Modifier.verticalScroll(), ב-Modifier.horizontalScroll() וב-Modifier.scrollable() כדי לגלול ולשמור על הרכיב הממוקד גלוי.
  • שדות טקסט יישארו עכשיו מעל המקלדת כשהם מודגשים והמקלדת מוצגת, כשהם נמצאים בתוך רכיב שאפשר לגלול בו ללא עיכוב ומצב הקלט הרך הוא ADJUST_RESIZE. (I4a485, ‏ b/190539358, ‏ b/192043120, ‏ b/216842427)

גרסה 1.2.0-alpha05

9 במרץ 2022

androidx.compose.foundation:foundation:1.2.0-alpha05 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha05 משוחררים. גרסה 1.2.0-alpha05 מכילה את ההוספות האלה.

שינויים ב-API

  • LazyVerticalGrid וגם LazyHorizontalGrid יציבות עכשיו. (I307c0)
  • השדה LazyGridItemInfo.Unknown הוחלף בשדות נפרדים LazyGridItemInfo.UnknownRow ו-LazyGridItemInfo.UnknownColumn (I56d51)
  • LazyVerticalGrid/LazyHorizontalGrid וכל ממשקי ה-API הקשורים הועברו לחבילת המשנה .grid. יש לעדכן את הייבוא מ-androidx.compose.foundation.lazy ל-androidx.compose.foundation.lazy.grid. (I2d446, ‏ b/219942574)
  • טקסט: includeFontPadding מושבת עכשיו כברירת מחדל. המערכת מטפלת בבעיות החיתוך שנובעות מ-includeFontPadding=false, ולא אמורה להתרחש בעיית חיתוך בסקריפטים ארוכים. (I31c84, ‏ b/171394808)
  • הממשק למדידת ביצועים חושף עכשיו את המאפיין parentData‏ (I3313f)
  • הוספנו את האפשרות הניסיונית Modifier.onFocusedBoundsChanged כדי לאפשר לצפות בגבולות של רכיבי focusable צאצאים. (I14283, ‏ b/220030968, ‏ b/190539358, ‏ b/192043120, ‏ b/216842427)
  • נוספה האפשרות LazyHorizontalGrid. (I61ae7, ‏ b/191238807)
  • הוספנו ממשק API חדש של LazyVerticalGrid כדי להגדיר גדלים של צירים חופפים (I17723)
  • נוספ המשתנה FocusGroup (I64bc0, ‏ b/213508274, ‏ b/184670295)

תיקוני באגים

  • עכשיו יוצגו ב-WindowInsets.toString() הערכים הנכונים. (I1585d)

תרומה חיצונית

  • העדכון כולל שימוש ב-Kotlinx coroutines 1.6.0 (I3366d)

גרסה 1.2.0-alpha04

23 בפברואר 2022

androidx.compose.foundation:foundation:1.2.0-alpha04 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha04 משוחררים. גרסה 1.2.0-alpha04 מכילה את ההוספות האלה.

שינויים ב-API

  • BringIntoViewResponders כבר לא נדרשים להעביר בקשות באופן ידני אל הגורמים המגיבים ברמה ההורה, אלא צריכים להחזיר מיד את המלבן שהם רוצים שההורה יציג. (I8e66a)
  • תמיכה בטעינת גופן אסינכרוני בטקסט (I77057, ‏ b/214587005)
  • LazyVerticalGrid תומך עכשיו ב-line breaking לפני פריטים עם רוחב שאינם נכנסים לשורה הנוכחית. (I05c40, ‏ b/207462103)
  • השם של excludeFromSystemGestures השתנה ל-systemGesturesExclusion (I19526)
  • LazyVerticalGrid תומך עכשיו ב-reverseLayout. (I6d7d7, ‏ b/215572963, ‏ b/211753558)
  • הוספת השיטה WindowInsets.only() כדי לאפשר למפתחים לכלול רק מאפיינים מ-WindowInsets. (I14c94, ‏ b/217768486)
  • נוספו ComposableTarget, ‏ ComposableTargetMarker ו-ComposableOpenTarget שמאפשרים לדווח בזמן הידור על קריאה של פונקציה הניתנת להגדרה שמטרגטת מחולל שמטרגט אחר לא תוכנן להשתמש בו.

    ברוב המקרים, התוסף של ה-compiler של compose יכול להסיק את ההערות, ולכן השימוש בהערות האלה באופן ישיר צריך להיות נדיר . במקרים שבהם אי אפשר להסיק את הערך, המערכת יוצרת ומשתמשת ב-applier בהתאמה אישית, בפונקציות קומפוזביליות מופשטים (כמו שיטות ממשק), בשדות או במשתנים גלובליים שהם פונקציות lambda קומפוזביליות (משתנים מקומיים ופרמטרים מוסקים), או כשמשתמשים ב-ComposeNode או בפונקציות קומפוזביליות קשורות.

    למפעילים מותאמים אישית, הפונקציות הניתנות לקיפול שמפעילות את ComposeNode או את ReusableComposeNode צריכות להוסיף הערה CompoableTarget לפונקציה ולסוגי הפרמטרים של lambda שניתן לקיפול. עם זאת, מומלץ ליצור הערה עם הערה ComposableTargetMarker, ואז להשתמש בהערה המסומנת במקום ב-ComposableTarget ישירות. הערה שניתנת ליצירה ולשימוש מחדש שמסומנת ב-ComposableTargetMarker זהה ל-ComposbleTarget עם השם המלא של סיווג המאפיין כפרמטר של הגורם המפעיל. דוגמה לשימוש ב-ComposableTargetMarker מופיעה במאמר anroidx.compose.ui.UiComposable. (I38f11)

תיקוני באגים

  • עכשיו מותר להעביר ערכי אופסט של גלילה שליליים אל LazyGridState.scrollToItem() ו-LazyGridState.animateScrollToItem(). (I025c6, ‏ b/211753558)
  • תמיכה בטעינת גופנים אסינכרונית ל-TextField. (Icc4bf, ‏ b/214587005)

גרסה 1.2.0-alpha03

9 בפברואר 2022

androidx.compose.foundation:foundation:1.2.0-alpha03 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha03 משוחררים. גרסה 1.2.0-alpha03 כוללת את ההוספות האלה.

שינויים ב-API

  • השיטות של notifyFocusedRect ב-TextInputSession וב-TextInputService הוצאו משימוש ולא יתבצעו קריאות אליהן. במקום זאת, אתם צריכים להשתמש ב-BringIntoViewRequester. (Ia4302, ‏ b/192043120, ‏ b/216842427, ‏ b/178211874)
  • הופעלו אנימציות לפריטים של רשתות 'עיכוב טעינה' באמצעות Modifier.animateItemPlacement().‏ (Ib6621, ‏ b/211753218)
  • BringIntoViewRequester מעביר עכשיו בקשות לתצוגת Android המארחת. (Ia7a51)
  • FontFamilyResolver זמין עכשיו דרך LocalFontFamilyResolver.current
    • הוספנו את createFontFamilyResolver(context) ו-createFontFamilyResolver(context, coroutineScope) כדי ליצור פותרי FontFamily חדשים מחוץ לשימוש ב-Compose.
    • הרכיבים Paragraph ו-MultiParagraph מקבלים עכשיו את הערך FontFamily.Resolver
    • TextLayoutResult.layoutInput.fontFamilyResolver מכיל עכשיו את המפַתח שמשמש לפריסה הזו, והוא מחליף את TextLayoutResult.layoutInput.resourceLoader שכבר לא בשימוש. (Id5a45, ‏ b/174162090)
  • הוספנו את AndroidFont, ממשק API חדש ברמה נמוכה שמאפשר לספק סוגים חדשים של מתארי משאבי גופנים ב-Android. לדוגמה, טעינת גופנים מקצוות עורפיים ספציפיים לאפליקציה, איתור אופציונלי של גופנים שהותקנו מראש במכשיר או טעינת גופן ממשאב שלא מסופק על ידי מפעלי הגופנים הנוכחיים.
    • הרחבנו את ה-API של Font.ResourceLoaded כדי לתמוך בחיוב אופציונלי ואסינכרוני של גופנים. לא מומלץ למפתחי אפליקציות להשתמש ב-API הזה ישירות. כדי להוסיף סוגים חדשים של גופנים, אפשר לעיין במאמר AndroidFont.
    • פונקציית ההרחבה Font.AndroidResourceLoader מאפשרת ליצור Font.ResourceLoader מחוץ להרכבה.
    • הוספה של הפרמטר loadingStrategy לגופנים שמבוססים על משאבים, כדי לאפשר טעינת נתונים אסינכרונית כשגופן המשאב מפנה ל-XML של גופנים שניתן להורדה. (Ie5aea, ‏ b/174162090)
  • ה-constructor של Typeface(FontFamily) הוצא משימוש. בעבר השתמשו ב-data: כדי לטעון מראש גופנים. הטעינה מראש של גופנים שניתן להוריד עשויה להימשך עד 10 שניות. כשמשתמשים בגופנים שניתן להורדה, הקריאה הזו עשויה לחסום את האתר למשך 10 שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload
    • האפשרות fontResource(FontFamily): Typeface הוצאה משימוש. בעבר השתמשו ב-data: כדי לטעון מראש גופנים. הטעינה מראש של גופנים שניתן להוריד עשויה להימשך עד 10 שניות. במקום זאת, צריך להשתמש ב-FontFamilyResolver.preload (If8e7c,‏ b/174162090)
  • עכשיו אפשר לציין את סוג התוכן של הפריטים ב-LazyVerticalGrid – הפונקציות item/items ב-LazyGridScope מקבלות עכשיו פרמטר כזה. הצגת מידע כזה עוזרת לשימוש חוזר בלוגיקה של רכיבי הפריטים, כדי לשפר את היעילות שלהם ולהשתמש שוב בתוכן רק בין פריטים מסוג דומה. (I7b355, ‏ b/215372836)
  • עכשיו יש למאפיינים LazyListLayoutInfo ו-LazyGridLayoutInfo מאפיינים חדשים: viewportSize, ‏ orientation, ‏ reverseLayout (Ifc8ed, ‏ b/200920410)
  • עכשיו אפשר לציין את סוג התוכן של הפריטים ב-LazyColumn/LazyRow – הפונקציות item/items ברמת LazyListScope מקבלות עכשיו פרמטר כזה. הצגת מידע כזה עוזרת לשימוש חוזר בלוגיקה של רכיבי הפריטים, כדי לשפר את היעילות שלהם ולהשתמש שוב בתוכן רק בין פריטים מסוג דומה. (I26506)
  • ה-constructor של SubcomposeLayoutState שמקבל את maxSlotsToRetainForReuse הוצא משימוש. במקום זאת, יש קונסטרוקטור חדש שמקבל את SubcomposeSlotReusePolicy – ממשק חדש שמאפשר שליטה פרטנית יותר על החריצים שצריך לשמור לשימוש חוזר בעתיד. (I52c4d)
  • הוספת מודיפיקרים ל-WindowInsets, גם למרווחים וגם לגודל. כך תוכלו להציג תוכן מסוים באזור הקטן, ועדיין להציג את התוכן הראשי מחוץ לאזור הקטן. לדוגמה, אפשר להשתמש ב-windowInsetsPadding כדי להוסיף מרווח לאזור התוכן כדי למנוע אזורים שעשויים להיות מכוסים באופן מלא או חלקי. (Id0395, ‏ b/213942085)

תיקוני באגים

  • שדות טקסט יישארו מעל המקלדת כשהם יהיו מוקדשים והמקלדת תוצג, אם מצב הקלט הרך הוא ADJUST_PAN. (I8eaeb, ‏ b/190539358, ‏ b/192043120)
  • במחשב נעשה שימוש בהרכבה מקומית עבור FontFamily.Resolver
    • FontLoader למחשב הוצא משימוש
    • מפעל createFontFamilyResolver חדש במחשב (I6bbbb, ‏ b/174162090)
  • סוג הקלט של המקלדת הווירטואלית לא מהבהב יותר כשמשנים את המיקוד בין שדות הטקסט. (I1bf50, ‏ b/187746439)
  • בשדות טקסט, כבר לא צריך ללחוץ שוב על לחצן החזרה אחורה כשידית הסמן מוצגת. (Ideb4b, ‏ b/205726883)
  • שיפרנו את ההתנהגות של זכוכית המגדלת לבחירת טקסט כך שתתאים לזכוכית המגדלת בפלטפורמה. (Idd918, ‏ b/206833278)

גרסה 1.2.0-alpha02

26 בינואר 2022

androidx.compose.foundation:foundation:1.2.0-alpha02 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha02 משוחררים. גרסה 1.2.0-alpha02 מכילה את ההוספות האלה.

שינויים ב-API

  • הוספנו את NonRestartableComposable לשיטות שהן עומס יתר של שיטות קיימות ללא לוגיקה מורכבת. כך מפחיתים את מספר הבדיקות לזיכרון (equals) שנוצרות על ידי המהדר עבור כל הפרמטרים שחוזרים על עצמם בפונקציה הפנימית שנקראת. (I90490)
  • נוספו גורמי שינוי מסוג excludeFromSystemGesture לגישה נוחה ל-setSystemGestureExclusionRects של Android‏ (I46f07)

תיקוני באגים

  • שיפרנו את ההתנהגות של זכוכית המגדלת לבחירת טקסט כך שתתאים לזכוכית המגדלת בפלטפורמה. (Idd918, ‏ b/206833278)
  • LazyColumn, ‏ LazyRow, ‏ Modifier.verticalScroll ומארזים אחרים שמשתמשים ב-Modifier.scrollable תומכים עכשיו בגלילה באמצעות גלגל העכבר. (I2b5e1, ‏ b/198214718)

גרסה 1.2.0-alpha01

12 בינואר 2022

androidx.compose.foundation:foundation:1.2.0-alpha01 ו-androidx.compose.foundation:foundation-layout:1.2.0-alpha01 משוחררים. גרסה 1.2.0-alpha01 כוללת את ההוספות האלה.

שינויים ב-API

  • הפרמטר החדש userScrollEnabled נוסף ל-LazyColumn, ל-LazyRow ול-LazyVerticalGrid כדי לאפשר למשתמשים להשבית באופן זמני או קבוע את הגלילה שהמשתמש יזם באמצעות תנועות מגע או פעולות נגישות. עדיין יהיה מותר לגלול באופן פרוגרמטי באמצעות השיטות במצב. (I7eae9, ‏ b/201150093)
  • מוסיפים קריאה חוזרת (callback) מסוג onSizeChanged למעבד של הגדלת המסך. (I6879f)
  • ווידג'ט המגדיל מוצג עכשיו כשגוררים את פקדי הבחירה ב-SelectionContainer. (I30b38, ‏ b/139320979)

תיקוני באגים

  • תוקנה בעיה שבה ידית הסמן TextField לא נסתרת כשגוללים מחוץ לתצוגה. (I14552, ‏ b/208883748)

עדכוני יחסי תלות

  • עכשיו תלוי ב-Kotlin 1.6.10.

גרסה 1.1

גרסה 1.1.1

23 בפברואר 2022

androidx.compose.foundation:foundation:1.1.1 ו-androidx.compose.foundation:foundation-layout:1.1.1 משוחררים. גרסה 1.1.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תיקון NullPointerException ב-androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, ‏ b/206677462)
  • תיקון קריסה שנגרמה על ידי תוכן הלוח בזמן קריאה מהלוח ב-Android. (I06020, ‏ b/197769306)
  • תוקנה בעיית RTL ב-LazyVerticalGrid (aosp/1931080, ‏ b/207510535)

גרסה 1.1.0

9 בפברואר 2022

androidx.compose.foundation:foundation:1.1.0 ו-androidx.compose.foundation:foundation-layout:1.1.0 משוחררים. גרסה 1.1.0 כוללת את השמירות האלה.

שינויים חשובים מאז גרסה 1.0.0

  • תמיכה יציבה באפקט גלילה מעבר למסגרת ב-Android 12
  • שיפורים בגודל של משטח המגע
  • שימו לב שבגרסה 1.0 של Compose, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material לגבי גודל יעד המגע. לדוגמה, יעד המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם תגדירו את הגודל של הלחצן לגודל קטן יותר. כך Compose Material תואם לאותו התנהגות של רכיבי Material Design, ומספק התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי Material של Compose, מתקיימים הדרישות המינימליות לנגישות של יעדי מגע.
  • תמיכה יציבה בפס ניווט
  • מספר ממשקי API שהיו בעבר ניסיוניים מקבלים סטטוס יציב
  • תמיכה בגרסאות חדשות יותר של Kotlin

גרסה 1.1.0-rc03

26 בינואר 2022

androidx.compose.foundation:foundation:1.1.0-rc03 ו-androidx.compose.foundation:foundation-layout:1.1.0-rc03 משוחררים. גרסה 1.1.0-rc03 כוללת את ההוספות האלה.

תיקוני באגים

  • העדכון תומך ב-Compose Material 1.1.0-rc03

גרסה 1.1.0-rc01

15 בדצמבר 2021

androidx.compose.foundation:foundation:1.1.0-rc01 ו-androidx.compose.foundation:foundation-layout:1.1.0-rc01 משוחררים. גרסה 1.1.0-rc01 כוללת את השמירות האלה.

תיקוני באגים

  • עכשיו מותר להעביר ערכי אופסט של גלילה שליליים אל LazyListState.scrollToItem() ו-LazyListState.animateScrollToItem(). (Iceb90, ‏ b/184252837)
  • תוקן באג שגרם לפעולות גלילה של נגישות חסרות (I7cbfb)

גרסה 1.1.0-beta04

1 בדצמבר 2021

androidx.compose.foundation:foundation:1.1.0-beta04 ו-androidx.compose.foundation:foundation-layout:1.1.0-beta04 משוחררים. גרסה 1.1.0-beta04 כוללת את ההצהרות האלה.

תכונות חדשות

  • עודכן כך שיהיה תואם ל-Kotlin 1.6.0

שינויים ב-API

  • ניקוי של nullability ב-androidx.core.view‏(I7078a, ‏ b/204917439)
  • נוספו ממשקי API ניסיוניים שמאפשרים לצרוך את PointerInputchange באופן מלא או לבדוק אם הוא נצרך או לא. (I2e59d)
  • הצגת ווידג'ט של זכוכית מגדלת כשגוררים את הסמן או את פקדי הבחירה בתוך שדות טקסט. (I5391e, ‏ b/203781358)

תיקוני באגים

  • תוקנה בעיה שבה קטעי הטקסט לא זזו כשהשינויים בחשיפה של IME. (I25f2e)

גרסה 1.1.0-beta03

17 בנובמבר 2021

androidx.compose.foundation:foundation:1.1.0-beta03 ו-androidx.compose.foundation:foundation-layout:1.1.0-beta03 משוחררים. גרסה 1.1.0-beta03 כוללת את ההצהרות האלה.

שינויים ב-API

  • נוספה תמיכה בפריסת רכיבים אופקית ל-LazyVerticalGrid. (I7e2fa, ‏ b/176758183)
  • נוספה יכולת ניסיונית להוסיף אנימציה למיקומי הפריטים ברשימות עם טעינת פריטים בזמן אמת. יש משתנה חדש שזמין ב-LazyItemScope שנקרא Modifier.animateItemPlacement(). דוגמה לשימוש:

      var list by remember { mutableStateOf(listOf("A", "B", "C")) }
      LazyColumn {
          item {
              Button(onClick = { list = list.shuffled() }) {
                  Text("Shuffle")
              }
          }
          items(list, key = { it }) {
              Text("Item $it", Modifier.animateItemPlacement())
          }
      }
    
    • כשמציינים מפתח דרך LazyListScope.item או LazyListScope.items, המאפיין הזה מפעיל אנימציות של שינוי סדר הפריטים. בנוסף לסדר מחדש של פריטים, כל שינויי המיקום האחרים שנגרמים על ידי אירועים כמו שינויים בסידור או בהתאמה יתבצעו גם הם עם אנימציה. (I59e7b, ‏ b/150812265)

גרסה 1.1.0-beta02

3 בנובמבר 2021

androidx.compose.foundation:foundation:1.1.0-beta02 ו-androidx.compose.foundation:foundation-layout:1.1.0-beta02 משוחררים. גרסה 1.1.0-beta02 כוללת את השמירות האלה.

תיקוני באגים

  • עכשיו, תנודות (ripples) ואינדיקציות אחרות יושהו רק אם הן נמצאות בתוך מאגר Modifier.scrollable(), במקום להשהות אותן תמיד בגלל אירוע 'לא פעיל'. (Ibefe0, ‏ b/203141462)
  • הוספנו את BringIntoView API הניסיוני, שמאפשר לשלוח בקשה להורים כדי שהם יגללו כדי להציג פריט (Ib918d, b/195353459)

תרומה חיצונית

  • נוספה Modifier.pointerHoverIcon (I95f01)

גרסה 1.1.0-beta01

27 באוקטובר 2021

androidx.compose.foundation:foundation:1.1.0-beta01 ו-androidx.compose.foundation:foundation-layout:1.1.0-beta01 משוחררים. גרסה 1.1.0-beta01 כוללת את ההצהרות האלה.

תיקוני באגים

  • הוספנו את BringIntoView API הניסיוני, שמאפשר לשלוח בקשה להורים כדי שהם יגללו כדי להציג פריט (Ib918d, b/195353459)

גרסה 1.1.0-alpha06

13 באוקטובר 2021

androidx.compose.foundation:foundation:1.1.0-alpha06 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha06 משוחררים. גרסה 1.1.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • נוספה עומס יתר ללא צאצאים ל-Layout, עם יעילות משופרת (Ib0d9a)
  • עכשיו הפונקציה SemanticsNodeInteraction.performSemanticsAction מחזירה את SemanticsNodeInteraction שאליו הופעלה הפונקציה. (I9e5db)
  • נוספה הפונקציה performScrollToNode(matcher: SemanticsMatcher) שמגלגלת מאגר שניתן לגלילה אל התוכן שמתאים למתאמת הנתון. (Ic1cb8)

גרסה 1.1.0-alpha05

29 בספטמבר 2021

androidx.compose.foundation:foundation:1.1.0-alpha05 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha05 משוחררים. גרסה 1.1.0-alpha05 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספנו למאפיין PointerEventChange נקודות היסטוריות ניסיוניות. (Ic1fd8, ‏ b/197553056, ‏ b/199921305)

תיקוני באגים

  • תיקון בתמיכת הנגישות לגבי גלילה ברכיבים שניתן לגלול בהם (גם רכיבים עם טעינה איטית וגם רכיבים ללא טעינה איטית) (I6cdb0)

גרסה 1.1.0-alpha04

15 בספטמבר 2021

androidx.compose.foundation:foundation:1.1.0-alpha04 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha04 משוחררים. גרסה 1.1.0-alpha04 מכילה את ההוספות האלה.

שינויים ב-API

  • performGesture ו-GestureScope שהוצאו משימוש, והוחלפו ב-performTouchInput וב-TouchInjectionScope. (Ia5f3f, ‏ b/190493367)
  • הוספנו את touchBoundsInRoot ל-SemanticsNode, שמכיל את הגודל המינימלי של יעד המגע, כדי שמפתחים יוכלו לוודא יעדים של מגע עומדים בדרישות המינימליות של נגישות. (I2e14b, ‏ b/197751214)

תיקוני באגים

  • נוספה תמיכה בגלילה מורחבת במכשירי Android 12. (Iccf3c, ‏ b/171682480)

גרסה 1.1.0-alpha03

1 בספטמבר 2021

androidx.compose.foundation:foundation:1.1.0-alpha03 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha03 משוחררים. גרסה 1.1.0-alpha03 כוללת את ההוספות האלה.

תכונות חדשות

  • עדכנו את Compose 1.1.0-alpha03 כך שיהיה תלוי ב-Kotlin 1.5.30. (I74545)

שינויים ב-API

  • נוספה אפקט זוהר לגלילה. נוספה גרסה ניסיונית של OverScrollConfiguration API שמאפשרת להגדיר את האפקט החזותי של גלילה מעבר לקצה המסך. כדי להשבית את אפקט הגלילה החוזרת, צריך לספק ערך null. (I0c304, ‏ b/171682480)
  • ל-AwaitPointerEventScope יש עכשיו את השיטות withTimeout()‏ ו-withTimeoutOrNull()‏ (I507f0, ‏ b/179239764, ‏ b/182397793)
  • נוספה שיטת בדיקה כדי לקבל את גבולות החיתוך. (I6b28e)
  • הוספנו גודל מינימלי של יעד מגע ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של סמן כדי להבטיח נגישות. (Ie861c)

גרסה 1.1.0-alpha02

18 באוגוסט 2021

androidx.compose.foundation:foundation:1.1.0-alpha02 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha02 משוחררים. גרסה 1.1.0-alpha02 מכילה את ההוספות האלה.

שינויים ב-API

  • נוספו גרסאות DpSize עבור Modifier.size ו-requiredSize (I3fc7e, ‏ b/194219828)

גרסה 1.1.0-alpha01

4 באוגוסט 2021

androidx.compose.foundation:foundation:1.1.0-alpha01 ו-androidx.compose.foundation:foundation-layout:1.1.0-alpha01 משוחררים. גרסה 1.1.0-alpha01 כוללת את ההוספות האלה.

שינויים ב-API

  • עדכון של השיטה DrawScope#drawImage, שמשתמשת ב-rects של המקור והיעד כדי להשתמש בפרמטר אופציונלי של FilterQuality. האפשרות הזו שימושית לגרפיקה שמורכבת מפיקסלים, שנועדה להיראות מפורטת יותר כשהיא מוגדלת. עודכנו הרכיבים BitmapPainter ו-Image composable כך שיכללו גם את הפרמטר האופציונלי FilterQuality (Ie4fb0, ‏ b/180311607)
  • עכשיו, כשמקישים על לחצן החזרה לאחור ב-TextField, הבחירה נמחקת, בדומה להתנהגות של EditText ב-Android. (I3ca16, ‏ b/174173645)
  • מוסיפים את הכינוי של הסמן. (I07a82, ‏ b/173016579)

תיקוני באגים

  • גלילה באמצעות פעולות סמנטיות ברשימות עם טעינה איטית וברכיבי גלילה רגילים כוללת עכשיו אנימציה (Id9066, ‏ b/190742024)

תרומה חיצונית

  • עכשיו אפשר להשתמש ב-LazyVerticalGrid גם עם פרמטרים של סידור אופקי וגם עם פרמטרים של סידור אנכי. (If9c92)

גירסה 1.0

גרסה 1.0.5

3 בנובמבר 2021

androidx.compose.foundation:foundation:1.0.5 ו-androidx.compose.foundation:foundation-layout:1.0.5 משוחררים. גרסה 1.0.5 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תוקנה קריסה במעקב אחר מכונות של derivedStateOf. (aosp/1792247)

גרסה 1.0.4

13 באוקטובר 2021

androidx.compose.foundation:foundation:1.0.4 ו-androidx.compose.foundation:foundation-layout:1.0.4 משוחררים. גרסה 1.0.4 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

עדכוני יחסי תלות

  • העדכון נעשה כך שיהיה תלוי ב-Kotlin 1.5.31

גרסה 1.0.3

29 בספטמבר 2021

androidx.compose.foundation:foundation:1.0.3 ו-androidx.compose.foundation:foundation-layout:1.0.3 משוחררים. גרסה 1.0.3 מכילה את ההוספות האלה.

עדכוני יחסי תלות

  • העדכון נעשה כך שיהיה תלוי ב-Kotlin 1.5.30

גרסה 1.0.2

1 בספטמבר 2021

androidx.compose.foundation:foundation:1.0.2 ו-androidx.compose.foundation:foundation-layout:1.0.2 משוחררים. גרסה 1.0.2 כוללת את השמירות האלה.

עודכן כדי לתמוך במהדורה 1.0.2 של Compose. Compose 1.0.2 עדיין תואם ל-Kotlin 1.5.21.

גרסה 1.0.1

4 באוגוסט 2021

androidx.compose.foundation:foundation:1.0.1 ו-androidx.compose.foundation:foundation-layout:1.0.1 משוחררים. גרסה 1.0.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

עדכוני יחסי תלות

  • העדכון נעשה כך שיהיה תלוי ב-Kotlin 1.5.21.

גרסה 1.0.0

28 ביולי 2021

androidx.compose.foundation:foundation:1.0.0 ו-androidx.compose.foundation:foundation-layout:1.0.0 משוחררים. גרסה 1.0.0 כוללת את ההצהרות האלה.

תכונות עיקריות בגרסה 1.0.0

זוהי הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose Release.

בעיות מוכרות

  • אם אתם משתמשים ב-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 ו-AGP 7.1. (b/194289155)

גרסה 1.0.0-rc02

14 ביולי 2021

androidx.compose.foundation:foundation:1.0.0-rc02 ו-androidx.compose.foundation:foundation-layout:1.0.0-rc02 משוחררים. גרסה 1.0.0-rc02 כוללת את ההצהרות האלה.

  • עדכנו את העיבוד של שוליים בצורות כלליות כדי לטפל בבעיות שקשורות לנתיבים שמוגדרים במימדים קבועים. (aosp/1748871, ‏ b/191817116)

גרסה 1.0.0-rc01

1 ביולי 2021

androidx.compose.foundation:foundation:1.0.0-rc01 ו-androidx.compose.foundation:foundation-layout:1.0.0-rc01 משוחררים. גרסה 1.0.0-rc01 כוללת את השמירות האלה.

שינויים ב-API

  • התכונה Canvas תומכת עכשיו בפרמטר contentDescription לשיפור הנגישות. (Ib547c)

תיקוני באגים

  • אם האפשרויות 'לחצן', 'כרטיס', 'תיבות סימון' ו-Modifier.clickable(enabled=false) מושבתות, הקליקים לא יועברו אל הרכיב ההורה. (Ic2c3b, ‏ b/183908811)

גרסה 1.0.0-beta09

16 ביוני 2021

androidx.compose.foundation:foundation:1.0.0-beta09 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta09 משוחררים. גרסה 1.0.0-beta09 מכילה את ההתחייבויות האלה.

שינויים ב-API

  • בוצעה הסרה של ManualFrameClock. אם אתם צריכים לשלוט באנימציות, השתמשו ב-composeTestRule.mainClock במקום זאת. (I3c3e8, ‏ b/189951065)
  • שינוי המאפיינים Role ו-LiveRegionMode של enum לכיתות מוטמעות עם קונסטרוקטור פרטי (Id1890)
  • האפשרות KeyboardCapitalization מועברת לכיתה בתוך שורה. (Id5a1c)
  • TextOverflow הופך לכיתה בתוך שורה. (I433af)

תיקוני באגים

  • עכשיו, כשמציינים את המפתחות הייחודיים לפריטים של LazyColumn/Row, מיקום הגלילה נשמר על סמך המפתח. כלומר, אם מוסיפים או מסירים פריטים לפני הפריט הגלוי הנוכחי, הפריט עם המפתח הנתון יישאר כפריט הגלוי הראשון. (Id263f, ‏ b/184257857)
  • ערכי הקבועים של המפתחות הם ‎ @ExperimentalComposeUiApi בשלב הזה. אפשר להצהיר על קבועים פרטיים בקוד שמשתמש ב-API לפני שהם מגיעים למצב יציב. (Ia5d48)
  • הוספנו את IdlingStrategy ל-AndroidComposeTestRule, שאפשר להשתמש בו במסגרות בדיקה כדי להתקין מנגנון חלופי להמתנה או להשגת מצב רגיעה. לפני שמתחילים את הבדיקה, משתמשים ב-AndroidComposeTestRule.setIdlingStrategyFactory() כדי להתקין את האסטרטגיה שלכם. (I608fa)

נוספו כללי פרופיל

בגרסה הזו נוספו כללי פרופיל למודול ה-Compose הבאים (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

מהם כללי הפרופיל?

  • כללי הפרופיל של ספרייה מצוינים בקובץ טקסט baseline-prof.txt שנמצא בתיקייה src/main או בתיקייה המקבילה. בקובץ מצוין כלל לכל שורה, כאשר כלל במקרה הזה הוא דפוס להתאמה לשיטות או לכיתות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לבני אדם, שבו נעשה שימוש כשמשתמשים ב-adb shell profman --dump-classes-and-methods .... הכללים האלה יכולים להיות באחת משתי צורות כדי לטרגט שיטות או כיתות.

  • כלל method יהיה בעל התבנית הבאה:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • וכלל כיתה יהיה בעל התבנית הבאה:

    <CLASS_DESCRIPTOR>
    
  • כאן, <FLAGS> הוא אחד או יותר מהתווים H, ‏ S ו-P, שמציינים אם צריך לסמן את השיטה הזו בתווית 'חמה', 'הפעלה' או 'לאחר ההפעלה'.

  • השדה <CLASS_DESCRIPTOR> הוא התיאור של המחלקה שאליה שייך ה-method המטורגט. לדוגמה, למחלקה androidx.compose.runtime.SlotTable יהיה מתאר של Landroidx/compose/runtime/SlotTable;.

  • <METHOD_SIGNATURE> הוא החתימה של השיטה, והוא כולל את השם, סוגי הפרמטרים וסוג המידע המוחזר של השיטה. לדוגמה, לשיטה fun isPlaced(): Boolean ב-LayoutNode יש את החתימה isPlaced()Z.

  • התבניות האלה יכולות לכלול תווים כלליים (**,‏ * ו-?) כדי שכלל אחד יכלול כמה שיטות או כיתות.

מה המטרה של הכללים?

  • שיטה עם הדגל H מציינת שזו שיטה 'חמה', וצריך לקמפל אותה מראש.

  • שיטה עם הדגל S מציינת שזו שיטה שנקראת בזמן ההפעלה, וצריכה להיות מתורגמת מראש כדי למנוע את העלות של הידור והפרשנות של השיטה בזמן ההפעלה.

  • שיטה עם הדגל P מציינת שזו שיטה שנקראת אחרי ההפעלה.

  • כיתה שמופיעה בקובץ הזה מציינת שהיא נמצאת בשימוש במהלך ההפעלה, וצריכה להיות מוקצית מראש בערימה כדי למנוע את העלות של טעינת הכיתה.

איך זה עובד?

  • בספריות אפשר להגדיר את הכללים האלה, שיארזו בארטיפקטים של AAR. כשמפתחים אפליקציה שכוללת את הארטיפקטים האלה, הכללים האלה מתמזגים יחד והכללים הממוזגים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לאפליקציה. לאחר מכן, כשהאפליקציה מותקנת במכשירים, מערכת ART יכולה להשתמש בפרופיל הזה כדי לקמפל מראש קבוצת משנה ספציפית של האפליקציה, כדי לשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. לתשומת ליבכם: לא תהיה לכך השפעה על אפליקציות שניתן לנפות באגים בהן.

גרסה 1.0.0-beta08

2 ביוני 2021

androidx.compose.foundation:foundation:1.0.0-beta08 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta08 משוחררים. גרסה 1.0.0-beta08 כוללת את ההצהרות האלה.

שינויים ב-API

  • המאפיין NestedScrollSource הוחלף בכיתה בתוך שורה. (Ie321b, ‏ b/187055290)
  • שינינו את השימוש ב-enum לכיתות מוטמעות כדי למנוע בעיות עם הצהרות exhaustive when כשמוסיפים ערכים חדשים ל-enum. (I2b5eb)
  • הוספת זמן קצוב לתפוגה של הקשה על רכיבים שניתן ללחוץ עליהם או להחליף את המצב שלהם, כדי למנוע הצגת תנודות במהלך גלילה או גרירה (Ia2704,‏ b/168524931)
  • המאפיינים ContentDescription ו-Text semantics הם עכשיו רשימות ולא ערכים בודדים. כך אפשר למזג אותם כפי שהם, במקום כשרשימות מחוברות. בנוסף, הוספנו ממשקי API טובים יותר לבדיקה כדי לנצל את השינויים האלה (Ica6bf,‏ b/184825850)
  • האפשרות Modifier.focusModifier() הוצאה משימוש והוחלפה באפשרות Modifier.focusTarget() (I6c860)
  • המאפיין KeyboardType enum מוחלף בכיתה מוטמעת. (I73045, ‏ b/187055290)
  • החלפת המאפיין המסווג FocusState בממשק FocusState (Iccc1a, ‏ b/187055290)
  • המאפיין enum של ImeAction הוחלף בכיתה מוטמעת. (I18be5, ‏ b/187055290)
  • הפונקציות של AnnotatedString.withAnnotation הן עכשיו ExperimentalTextApi במקום ExperimentalComposeApi. (I0cd0a)
    • ה-constructor של TextUnit עם TextUnitType הוא עכשיו ExperimentalTextApi במקום ExperimentalComposeApi.
  • הערך של PaddingValues הוא עכשיו @Stable במקום @Immutable (I88c50)

תיקוני באגים

  • תיקון קריסות שנגרמו כתוצאה מלחיצה ארוכה על אזור ריק בטקסט לא ריק. (I33ab5, ‏ b/187437299)
  • הצגת סרגל הכלים אחרי בחירת הכול (I495d9, ‏ b/185919613)
  • תיקון לקונטיינרים שניתן לגלול בהם, שמקצצים את הצאצאים שלהם בציר העובר. אפשר לשחזר את הבעיה בקלות אם יש לכם LazyRow עם פריטים מסוג Card. עכשיו הצל לא ייחתך. (Icb635, ‏ b/186318448)
  • תוקנה בעיה שבה לפעמים תנודות או אינדיקציות אחרות נתקעו בקליק ארוך כשמשתמשים ב-Modifier.combinedClickable‏ (I2298c, ‏ b/186223077)
  • עכשיו detectDragGesures,‏ detectVerticalGestures ו-detectHorizontalGestures יעבדו את שינוי המיקום באופן אוטומטי, ללא צורך לקרוא ל-change.consumePositionChange בקריאות החזרה (callbacks) של onDrag‏ (I42fc4,‏ b/185096350,‏ b/187320697)
  • Modifier.onGloballyPositioned() השתנה כדי לדווח על הקואורדינטות של המשתנה הזה בשרשרת המשתנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשתנים. המשמעות היא שהסדר של המשתנים המשתנים משפיע עכשיו על הקואורדינטות שידווחו. (Ieb67d, b/177926591)

גרסה 1.0.0-beta07

18 במאי 2021

androidx.compose.foundation:foundation:1.0.0-beta07 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta07 משוחררים. גרסה 1.0.0-beta07 מכילה את ההוספות האלה.

שינויים ב-API

  • הלוגיקה של האחזור המקדים של הפריט הבא שגלוי נוספה ל-LazyColumn/Row‏ (I8a4bc, ‏ b/184940225)
  • נוספה ידית לבחירת קליפים (Iff80d, ‏ b/183408447)

תיקוני באגים

  • LazyColumn/Row יישאר פעיל (לא יוסר) עד 2 פריטים שגלויים בעבר, גם אם כבר גוללו החוצה. כך הרכיב יכול לעשות שימוש חוזר ברכיבי המשנה הפעילים כשנצטרך ליצור פריט חדש, וכך לשפר את ביצועי הגלילה. (Ie5555)
  • מסירים את paintBackground. (I38660)
  • ציור הרקע של הבחירה באמצעות DrawScope. (I73c61, ‏ b/186674472)
  • תוקנה רגרסיה בגרסת beta06 שמשפיעה על Row/Column באמצעות סידורים של spacedBy לפריסה של צאצאים עם משקל. (Ifaf8c, ‏ b/187326588)

גרסה 1.0.0-beta06

5 במאי 2021

androidx.compose.foundation:foundation:1.0.0-beta06 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta06 משוחררים. גרסה 1.0.0-beta06 כוללת את ההתחייבויות האלה.

שינויים ב-API

  • פתרון התנגשויות עם תנועת ניווט (I1145e)
  • נוספו ממשקי API לנגישות של CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן את האוסף ואת הפריטים שלו לשירותי נגישות (Id54ef, ‏ b/180479017)
  • נוספה הפונקציה SemanticsActions.ScrollToIndex כדי לגלול ברשימה עם פריטים שנוספו לאינדקס אל הפריט עם אינדקס מסוים, והפונקציה SemanticsProperties.IndexForKey כדי לקבל את האינדקס של פריט ברשימה עם פריטים שמקושרים למפתח. שתי הפעולות מיושמות על ידי LazyList.
    • נוספה הפונקציה SemanticsNodeInteraction.performScrollToIndex שמגלגלת רשימה לאינדקס שצוין, והפונקציה SemanticsNodeInteraction.performScrollToKey שמגלגלת רשימה לפריט עם המפתח שצוין. (I4fe63, ‏ b/178483889, ‏ b/161584524)
  • תמיכה בשמירת AnnotatedString ב-TextFieldValue.Saver. נוספו פונקציות השירות addTtsAnnotation ו-withAnnotation ל-AnnotatedString.Builder‏ (I8cbdc, ‏ b/178446304)
  • ערכי ברירת המחדל של הפרמטר 0.dp נוספו ל-PaddingValues(horizontal, vertical) (I05571, ‏ b/181336792)

תיקוני באגים

  • ילדים של שורה ועמודה עם weight(fill = false) כבר לא גורמים לרכיב ההורה למלא את כל שטח הציר הראשי הזמין. (Ied94d, ‏ b/186012444, ‏ b/184355105)

גרסה 1.0.0-beta05

21 באפריל 2021

androidx.compose.foundation:foundation:1.0.0-beta05 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta05 משוחררים. גרסה 1.0.0-beta05 כוללת את ההתחייבויות האלה.

שינויים ב-API

  • ממשק FlingBehavior מסומן עכשיו בתווית @Stable. כל ההטמעות צריכות לעמוד בדרישות של חוזה @Stable. (I93354, ‏ b/184830577)

תיקוני באגים

  • תוקנו פעולות הגלילה של הנגישות ACTION_SCROLL_FORWARD, ‏ ACTION_SCROLL_BACKWARD,‏ accessibilityActionScrollLeft, ‏ accessibilityActionScrollUp,‏ accessibilityActionScrollRight ו-accessibilityActionScrollDown. במקום לגלול עד סוף התוכן שניתן לגלילה, הוא יגלול עכשיו מסך אחד בכיוון הרצוי. (Ieccb0)
  • קובצי AndroidManifest מ-ui-test-manifest ומ-ui-tooling-data תואמים עכשיו ל-Android 12 (I6f9de, ‏ b/184718994)

גרסה 1.0.0-beta04

7 באפריל 2021

androidx.compose.foundation:foundation:1.0.0-beta04 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta04 משוחררים. גרסה 1.0.0-beta04 מכילה את ההצהרות האלה על ביצוע שינויים.

שינויים ב-API

  • משנים את השם של hideSoftwareKeyboard ושל showSoftwareKeyboard ב-SoftwareKeyboardController ל-hide() ו-show(), בהתאמה.
    • לספק את הממשק המלא של CompositionLocal ל-LocalSoftwareKeyboardController, כדי לאפשר להגדיר אותו (שימושי במיוחד בבדיקות) (I579a6)
  • TextOverflow.Visible מוצג. (Ic8f89)
  • מכונות ציבוריות של RowScope,‏ ColumnScope,‏ BoxScope ו-BoxWithConstraintsScope הוסרו. (I4e83e, ‏ b/181869067)

תיקוני באגים

  • תוקנה הבעיה שבה פריטים של LazyColumn/LazyRow שנמצאים בקצוות ממוקמים באופן שגוי אחרי תנועה מהירה (Ie4d13, ‏ b/183877420)
  • לפני השינוי הזה, אפשר היה לדלג על פונקציות מקומיות שניתנות לקיפול על סמך הפרמטרים שלהן. אחרי השינוי הזה, לא יהיו דילוגים על פונקציות מקומיות שניתנות לקיפול. השינוי הזה נעשה כי מקובל ופועלים לפי ציפייה שפונקציות מקומיות יתעדו פרמטרים מההורה, והחרגה שלהם היא מקור נפוץ לבאגים.

    לסיכום, הנה דוגמה:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    לפני השינוי הזה, הפונקציה הניתנת לקיבוץ ShowCount תמיד דלגה, גם אחרי שהפרמטר count עודכן. המצב הזה השתנה. (I5648a)

גרסה 1.0.0-beta03

24 במרץ 2021

androidx.compose.foundation:foundation:1.0.0-beta03 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta03 משוחררים. גרסה 1.0.0-beta03 מכילה את ההצהרות האלה.

שינויים ב-API

  • האפשרות DefaultMonotonicFrameClock הוצאה משימוש. קריאה ל-withFrameNanos או ל-Recomposer.runRecomposeAndApplyChanges ללא MonotonicFrameClock תגרום להפעלת IllegalStateException. (I4eb0d)

תיקוני באגים

  • הפונקציה FlingBehavior.performFling() נקראת עכשיו גם כשהמהירות היא 0 (I0b6e5, ‏ b/181237123)

גרסה 1.0.0-beta02

10 במרץ 2021

androidx.compose.foundation:foundation:1.0.0-beta02 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta02 משוחררים. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.

שינויים ב-API

  • נוספו כמה אופטימיזציות קטנות בלוגיקה למדידת LazyColumn (Ic6889)
  • נוספה רכיב API מקומי חדש של LocalSoftwareKeyboardController כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I5951e, ‏ b/168778053)
  • נוספה רכיב API מקומי חדש של LocalSoftwareKeyboardController כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I84472, ‏ b/168778053)

תיקוני באגים

  • אכיפה של הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, ‏ b/174531520)

גרסה 1.0.0-beta01

24 בפברואר 2021

androidx.compose.foundation:foundation:1.0.0-beta01 ו-androidx.compose.foundation:foundation-layout:1.0.0-beta01 משוחררים. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.

זוהי הגרסה הראשונה של Compose 1.0.0 Beta.

שינויים ב-API

  • הוספה של קריאה חוזרת מסוג onStart אל detectDragGestures (I67269, ‏ b/179995594)
  • המשתנים המתאימים לשינוי הגודל בהתאם למאפיינים המובנים כבר לא נחשבים לניסיוניים. (I15744)
  • הוסר dp assertions (I798d2)
  • הסרנו את הקריאה החוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
  • השם של MeasureBlocks השתנה ל-MeasurePolicy, והוא הפך לממשק מהנה. ממשקי Layout API עודכנו או פשוטו כדי להשתמש ב-MeasurePolicy. (Icab48, ‏ b/167662468, ‏ b/156751158)
  • הערך InteractionState הוחלף ב-[Mutable]InteractionSource
    • ממשקים אחראים להפעלה או לאיסוף של אירועי אינטראקציה.
    • במקום להעביר את interactionState = remember { InteractionState() } לרכיבים כמו Button ו-Modifier.clickable(), משתמשים ב-interactionSource = remember { MutableInteractionSource() }.
    • במקום: Interaction.Pressed in interactionState צריך להשתמש בפונקציות התוסף ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState().
    • בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם של האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות של InteractionSource.
    • (I85965, ‏ b/152525426, ‏ b/171913923, ‏ b/171710801, ‏ b/174852378)
  • הוסרו השיטות LayoutCoordinates שהוצאו משימוש. יש להשתמש בפונקציה במקום במאפיין עבור positionInParent ו-boundsInParent (I580ed,‏ b/169874631,‏ b/175142755)
  • נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, ‏ b/177662148)
  • עכשיו רכיב ה-Placeable חושף את measuredSize, שמייצג את הגודל שבו הפריסה של הצאצא נמדדה בפועל. יכול להיות שהגודל הזה לא יעמוד באילוצים של המדידה. (Ib2729, ‏ b/172560206, ‏ b/172338608)
  • הוספת המשתנה selectionGroup שמאפשר לסמן אוסף של כרטיסיות או לחצני בחירה למטרות נגישות (Ie5c29)
  • הוספת LazyListState.animateScrollToItem

    השיטה הזו מאפשרת גלילה חלקה לפריט ספציפי ברשימה. (I4bfd7)

  • השם של ScrollableState.smoothScrollBy() השתנה ל-animateScrollBy() השם של LazyListState.snapToItemIndex() השתנה ל-scrollToItem() השם של ScrollState.smoothScrollTo() השתנה ל-animateScrollTo() (I35ded)

  • Modifier.zoomable הוחלף ב-Modifier.transformable. ‏ smoothPanBy ו-smoothRotationBy נוספו כפונקציונליות. (Ifc32b, ‏ b/175294473)

  • השדה defaultFactory עבור compositionLocalOf ו-staticCompositionLocalOf הוא חובה עכשיו במקום אופציונלי.

    השינויים האלה מסירים שגיאת סוג פוטנציאלית עבור סוגים שלא מאפשרים ערך null, שבהם לא סופק מפעל ברירת מחדל. בעבר, הפונקציה הזו הייתה מספקת הפניה ל-null לסוג שאינו יכול להכיל null.

    לסוגי nullable, כדאי לספק את { null } כמפעל ברירת המחדל.

    אנחנו לא ממליצים להשתמש במשתנים מקומיים עם סוגים שלא מאפשרים ערך null, אלא אם אפשר לספק ברירת מחדל הגיונית. אם אין ברירת מחדל הגיונית, הפונקציה הלוגרית defaultFactory צריכה להוציא חריגה. עם זאת, השלכת חריגה תגרום לכך שלצרכנים של המשתנה המקומי תהיה תלות משתמעת בכך שהוא יסופק, ולא תהיה אכיפה של הדרישה הזו על ידי מערכת הסוגים. (Ifbd2a)

  • הערך של Indication#createIndication() השתנה ל-Indication#rememberUpdatedIndication(InteractionState) והפרמטר InteractionState הוסר מ-IndicationInstance#drawIndication(). ה-IndicationInstance צריך להיות אחראי רק על ציור אפקטים חזותיים, ולא על הפעלת אנימציות או כתיבת סטטוס בתגובה לשינויים ב-InteractionState. במקום זאת, האנימציות והכתיבה בסטטוס צריכות להתרחש ב-rememberUpdatedIndication(). גם הפרמטר indication ב-Modifier.indication השתנה לפרמטר חובה. (Ic1764, ‏ b/152525426)

  • פעולות בטקסט בודקות עכשיו את המיקוד באופן אוטומטי (I13777, ‏ b/179648629)

  • הוסר runBlockingWithManualClock (I15cdc, ‏ b/179664814)

  • מיקום הגלילה ב-Modifier.verticalScroll()‎/horizontalScroll()‎ מיוצג עכשיו באמצעות מספרים שלמים (I81298)

  • החבילות של השיטות smoothScrollBy ו-scrollBy השתנו ל-androidx.compose.foundation.gestures.* (I3f7c1, ‏ b/175294473)

  • השם של FlingConfig השתנה ל-FlingBehavior, והוא מאפשר עכשיו להתאים אישית את אנימציית ההשהיה במקום תנודות מותנות מראש. (I02b86, ‏ b/175294473)

  • השם של מגברי הגודל השתנה. השמות של Modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/‏Modifier.preferredHeight/‏Modifier.preferredSize שונו ל-width/‏height/‏size. (I5b414)

  • השם של defaultMinSizeConstraints השתנה ל-defaultMinSize. (I4eaae)

  • ה-Modifier.tapGestureFilter הוסר. במקום זאת, אתם צריכים להשתמש ב-Modifier.pointerInput { detectTapGestures(...) }. (I266ed, ‏ b/175294473)

  • צריכה חלקית הוסרה ממערכת הקלט של הסמן. הדרך המומלצת לתיאום של צריכה חלקית היא Modifier.nestedScroll. (Ie9c9b)

  • ההגדרה 'כיוון' הועברה לחבילת הבסיס. VelocityTracker הועבר מ-ui.gesture אל ui.input.pointer. (Iff4a8, ‏ b/175294473)

  • ה-AnimationClockObservable והתת-כיתות שלו הוסרו. AnimatedFloat הוסר. (Icde52, ‏ b/177457083)

  • drawerState.open() ו-drawerState.close() הן עכשיו פונקציות השהיה. משתמשים ב-rememberCoroutineScope() כדי לקבל את ההיקף של הקומפוזיציה כדי לקרוא להן (I16f60, ‏ b/175294473)

  • השם של Providers השתנה ל-CompositionLocalProvider

    • ה-constructor של Composition לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
    • currentCompositeKeyHash הפך לנכס ברמה העליונה שניתן להגדרה, במקום לפונקציה ברמה העליונה שניתן להגדרה.
    • CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
    • הפונקציה ComposableLambda הפכה לממשק במקום לכיתה ספציפית, והיא כבר לא כוללת פרמטרים של סוגים.
    • הפונקציה ComposableLambdaN הפכה לממשק במקום לכיתה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
    • הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
    • שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
    • הפונקציה clearRoots ברמה העליונה @TestOnly הוסרה. אין צורך יותר.
    • הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. אין יותר צורך בהם.
    • הפונקציה Composer.collectKeySourceInformation הוסרה. אין צורך יותר.
    • השיטות isJoinedKey,‏ joinedKeyLeft ו-joinedKeyRight הוסרו. אין יותר צורך בהם.
    • ממשקי API שונים ברמה העליונה הועברו וסודרו מחדש בקבצים שונים. בגלל הסמנטיקה של סיווג הקבצים ב-Kotlin, הפעולה הזו תפגע בתאימות הבינארית אבל לא בתאימות למקור, כך שלא אמורה להיות בעיה אצל רוב המשתמשים.
    • (I99b7d, ‏ b/177245490)
  • Modifier.scrollable עוצב מחדש. עכשיו הוא משתמש בממשק Scrollable במקום בכיתה ScrollableController (I4f5a5, ‏ b/174485541, ‏ b/175294473)

  • Modifier.draggable מקבל עכשיו DraggableState במקום פונקציית lambda פשוטה. אפשר ליצור מצב באמצעות rememberDraggableState { delta -> } כדי לקבל את אותו התנהגות כמו קודם (Ica70f, b/175294473)

  • הוספנו את המטא-פרמטרים requiredWidth(IntrinsicSize) ו-requiredHeight(IntrinsicSize) כדי להגדיר את הגודל הנדרש לגודלים מובנים. (I0a6b4)

  • הממשק הוצא משימוש emptyContent() הוסר. במקום זאת, אתם צריכים להשתמש ב-{}. (Idb33f, ‏ b/179432510)

  • מחקו ממשקי API שהוצאו משימוש בעבר (Ice5da, ‏ b/178633932)

תיקוני באגים

  • נוספה רכיב API מקומי חדש של LocalSoftwareKeyboardController כדי להחליף את הממשק הקודם של SoftwareKeyboardController ב-TextField. (I658b6, ‏ b/168778053)

גרסה 1.0.0-alpha12

10 בפברואר 2021

androidx.compose.foundation:foundation:1.0.0-alpha12 ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha12 משוחררים. גרסה 1.0.0-alpha12 מכילה את ההוספות האלה.

שינויים ב-API

  • עכשיו נדרש ל-Modifier.pointerInput לזכור מפתחות כדי לציין מתי צריך להפעיל מחדש את פונקציית ה-coroutine לזיהוי קלט של סמן עבור יחסי תלות חדשים. (I849cd)
  • עדכון לבדיקה: הפונקציה hasText() תבדוק גם טקסטים של קלט וגם טקסטים של תוויות/רמזים/סמלי placeholder בשדה הטקסט (Iab803)
  • נוספה PaddingValues.Absolute, וניתן להשתמש בה בממשקי API שמקבלים PaddingValues. (Ia5f30)
  • השימוש ב-onImeActionPerformed הוצא משימוש. במקום זאת, צריך להשתמש ב-KeyboardActions (If0bbd,‏ b/179071523)
  • כדי להתאים את שם השיטה למוסכמות של מתן שמות ל-ImageBitmap ול-ImageVector, השם של ImagePainter השתנה ל-BitmapPainter כדי להתאים ל-VectorPainter. (Iba381, ‏ b/174565889)
  • שיפור בממשקי ה-API לבדיקת מחרוזות משנה, כאשר מחרוזת המשנה משמשת עכשיו כארגומנטים (Icbe78)
  • הוספנו את רכיב ההקשר של קורוטין InfiniteAnimationPolicy, שייושם באנימציות אינסופיות. כברירת מחדל, לא מותקנת מדיניות, אלא אם מריצים בדיקות באמצעות ComposeTestRule. (I50ec4, ‏ b/151940543)
  • הפונקציות Animatable.snapTo ו-Animatable.stop הן עכשיו פונקציות השהיה (If4288)
  • ComponentActivity.setContent הועבר אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
  • שיטות Destructuring ו-copy() הוסרו מכמה כיתות שבהן הן שימשו לעיתים רחוקות. (I26702, ‏ b/178659281)
  • נוספה תמיכה במפתחות מותאמים אישית ל-LazyColumn/LazyRow. כך נוכל לטפל בצורה חכמה יותר בהזמנה מחדש של פריטים. לכן המצב ששמרתם בבלוק remember {} יעבור יחד עם הפריט כשמשנים את סדר הרכיבים או מסירים את הפריט מהאמצע.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • שינינו את Indication#createInstance ל-@Composable, ושינינו את LocalIndication כך שיכיל Indication, ולא () -> Indication. (I5eeea, ‏ b/157150564)

  • Constraints.enforce הוחלף ב-Constraints.constrain. (I8b8ea)

  • loadFontResource הוצא משימוש. צריך להשתמש ב-fontResource במקום זאת. הפונקציות imageResource,‏ loadImageResource,‏ vectorResource ו-loadVectorResource הוצאו משימוש. במקום זאת, צריך להשתמש ב-painterResource. (I6b809)

  • מסיבות ביצועים, סמנטיקה של ScrollAxisRange מקבלת עכשיו פונקציות lambda שמחזירות ערכים מסוג Float במקום ערכים ישירים מסוג Float. (If4a35, ‏ b/178657186)

  • נוספה סמנטיקה של EditableText כדי לסמן טקסט קלט שניתן לעריכה בשדה הטקסט לצורכי נגישות, ושיטות בדיקה תואמות כדי לבדוק את הסמנטיקה (I8e07a)

  • עכשיו אין תמיכה ב-Modifier.clickable בלחיצה כפולה ובלחיצה ארוכה. כדי להשיג את הפונקציונליות הזו, משתמשים ב-Modifier.combinedClickable. (Iafad1)

  • השם של toIntPx() שונה ל-roundToPx().‏ (I9b7e4, ‏ b/173502290)

  • השם של IntBounds השתנה ל-IntRect וה-API השתפר. (I1f6ff)

  • ה-API Modifier.dragGestureFilter הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-Modifier.pointerInput { detectDragGestures (...)}. לחלופין, אפשר להשתמש ב-Modifier.draggable כדי לגרור ציר אחד (I0ba93, ‏ b/175294473)

  • השם של Ambients שונה כך שיתאים לשם של Ambient -> CompositionLocal rename. בעבר, השם של סביבות האווירה היה AmbientFoo, עכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)

  • הבחירה הועברה ל-Foundation. (I7892b)

  • בדומה להסרה הקודמת של state { 0 } composable ועידוד השימוש ב-remember { mutableStateOf(0) }, אנחנו עומדים להסיר את savedInstanceState { 0 } composable. במקום זאת, צריך להשתמש ב-rememberSaveable { mutableStateOf(0) }, והוא ישמור וישחזר באופן אוטומטי אם אפשר לאחסן את הסוג שנעשה בו שימוש ב-MutableState בחבילה. אם בעבר העברתם אובייקט שומר מותאם אישית, עכשיו צריך להשתמש בעומס יתר חדש של rememberSaveable שכולל את הפרמטר stateSaver. השימוש ייראה כך: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)

  • נוספה סמנטיקה של סיסמאות לנגישות (I231ce)

  • נוספה ProgressBarRangeInfo.Indeterminate כדי לסמן סרגי התקדמות לא ידועים לצורכי נגישות (I6fe05)

  • זמן ההפעלה באנימציה לא מוגבל יותר לננו-שניות (If776a)

  • הערה @ComposableContract הוצאה משימוש לטובת שלוש הערות ספציפיות יותר.

    @ComposableContract(restartable = false) הפך ל-@NonRestartableComposable @ComposableContract(readonly = true) הפך ל-@ReadOnlyComposable @ComposableContract(preventCapture = true) הפך ל-@DisallowComposableCalls @ComposableContract(tracked = true) הוסר. (I60a9d)

  • השירותים emptyContent() ו-(@Composable () -> Unit).orEmpty() הוצאו משימוש כי אין להם יותר השפעה חיובית על הביצועים או ערך מוסף (I0484d)

  • עכשיו אפשר לסגור את הכלי ליצירת קומפוזיציות מחדש. מרכיבי קומפוזיציה סגורים ימשיכו את היצירה מחדש עד שה-coroutines של צאצאי הקומפוזיציה יסתיימו. השם של Recomposer.shutDown השתנה ל-cancel כדי להבדיל אותו מ-close. (Ib6d76)

  • ממשקי ה-API שקשורים ל-LazyVerticalGrid מסומנים כניסיוניים (Ia53e3, ‏ b/178519862)

  • השם של rememberSavedInstanceState() השתנה ל-rememberSaveable() והוא הועבר לחבילה androidx.compose.runtime.saveable. (I1366e, b/177338004)

  • השם של RestorableStateHolder השתנה ל-SaveableStateHolder והוא הועבר לחבילה androidx.compose.runtime.saveable. השם של השיטה הפנימית RestorableStateProvider השתנה ל-SaveableStateProvider. הסוג הגנרי הוסר, כך שאפשר פשוט להעביר Any כמפתח. אין יותר צורך בהערות ניסיוניות. (I0902e, ‏ b/174598702)

  • הפונקציות Saver,‏ listSaver(),‏ mapSaver() ו-autoSaver הועברו מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)

  • שמו של הארטיפקט androidx:compose:runtime:runtime-saved-instance-state שונה ל-androidx:compose:runtime:runtime-saveable (I6dcac)

  • הרבה ממשקי API שהוצאו משימוש מזמן בחבילת UI נמחקים. (I2f2dc)

  • פריט המידע (artifact) compose:runtime-dispatch הוצא משימוש. MonotonicFrameClock נמצא עכשיו ב-compose:runtime ו-AndroidUiDispatcher נמצא ב-compose:ui. (Ib5c36)

  • השמות של הפרמטרים ב-RounderCornerShape, ‏ CutCornerShape ו-CornerBasedShape שונו מ-left/right ל-start/end כדי לתמוך בהשתקפות האוטומטית של הצורה בכיוון RTL. הערכים AbsoluteRounderCornerShape ו-AbsoluteCutCornerShape נוספו למקרים שבהם לא רוצים שיבוצע שיקוף אוטומטי. (I61040, ‏ b/152756983)

  • האפשרות canDrag הוסרה מ-Modifier.scrollable. (Id66e7, ‏ b/175294473)

  • ה-API שאליו פונה הפלאגין של המהדר של Compose עבר שינוי מבני כך שישתמש בממשק במקום בכיתה ספציפית. בנוסף, הממשק לא משתמש יותר בפרמטר מסוג.

    זהו שינוי פנימי שאמור לא להשפיע על התאימות של קוד המקור, אבל הוא שינוי שגורם לשבירה של קובץ הבינארי. (I3b922, ‏ b/169406779)

  • ה-Modifier.scaleGestureFilter הוסר. במקום זאת, צריך להשתמש ב-Modifier.zoomable. לחלופין, אפשר להשתמש ב-Modifier.pointerInput { detectMultitouchGestures { ... }} (Id5da1, ‏ b/175294473)

  • הוצאנו משימוש את AnimatedValue/Float. במקום זאת, צריך להשתמש ב-Animatable. (I71345, ‏ b/177457083)

    • CoreText ו-CoreTextField הוסרו מ-API הציבורי
    • הוסרה עומס יתר של SelectionContainer שהוצא משימוש (I99c19)
  • הסרה של פונקציות גלילה ללא השהיה שהוצאו משימוש בהמשך לשינויים מהגרסה הקודמת, פונקציות הגלילה ללא השהיה הוסרו לגמרי. צריך להמיר את הפונקציות להשהיה עם אותם שמות. אפשר לקבל היקף של שגרת המשך באמצעות rememberCoroutineScope().‏ (I3d39c, ‏ b/178169563)

  • הוצאנו משימוש את androidx.compose.foundation.layout.ConstraintLayout והחלפנו אותו ב-androidx.constraintlayout.compose.ConstraintLayout. צריך להוסיף תלות ב-androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01. (I87adc)

  • ה-API tapGestureFilter, ‏ doubleTapGestureFilter, ‏ longPressGestureFilter ו-pressIndicaitonGestureFilter הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, ‏ b/175294473)

  • בוצעה הסרה של Recomposer.current(). [Abstract]ComposeView עכשיו מוגדר כברירת מחדל ל-Recomposers ברמת החלון שנוצרים באופן עצלני ומנוהלים על ידי ViewTreeLifecycleOwner של החלון. הטיקים של האנימציה המבוססת על Recomposition ו-withFrameNanos מושהים בזמן שה-Lifecycle של המארח מושהה. (I38e11)

  • Recomposer.runningRecomposers מציע עכשיו StateFlow גלובלי של RecomposerInfo לקריאה בלבד, כדי לעקוב אחרי מצב ההרכבה המתמשך בתהליך. מומלץ להשתמש ב-API הזה במקום ב-Recomposer.current(), שעבר עכשיו לשימוש מוגבל. (If8ebe)

גרסה 1.0.0-alpha11

28 בינואר 2021

androidx.compose.foundation:foundation:1.0.0-alpha11 ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha11 משוחררים. גרסה 1.0.0-alpha11 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוצאה משימוש של scrollBy ללא השהיה, הסרה של scrollTo ללא השהיה

    עכשיו מומלץ להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולהמתין לסיום הגלילה. כחלק מהמעבר, אנחנו מוציאים משימוש או מסירים את הגרסאות ללא השהיה של הפונקציות האלה. (Ie9ced)

  • הוצאה משימוש של smoothScrollBy ללא השהיה אנחנו ממליצים עכשיו להשתמש בפונקציות השהיה כדי לשלוט בגלילה ולהמתין עד שהגלילה תסתיים. כחלק מהמעבר הזה, אנחנו מוציאים משימוש את הגרסאות ללא השהיה של הפונקציות האלה. (I12880)

  • הפרמטר 'תיאור התוכן' נוסף לתמונה ולסמל. הוא משמש לספק תיאור לשירותי הנגישות (I2ac4c)

  • ל-BasicTextField נוספה פרמטר חדש בשם 'decorationBox'. הוא מאפשר להוסיף קישוטים כמו סמלים, תוספי placeholder, תוויות ופריטים דומים לשדה הטקסט, ולהגדיל את אזור היעד להיטים שלו. (I16996)

  • הפרמטר canDrag הוסר מ-Modifier.draggable‏ (Ic4bec, ‏ b/175294473)

  • הוסרה הפונקציה AnimatedFloat.fling שמקבלת FlingConfig. במקום זאת, צריך להשתמש ב-suspend Animatable.animateDecay. (I4659b, ‏ b/177457083)

  • הוסר data class מהכיתות הבאות:

    • InlineTextContent
    • LocaleList
    • (I605c7)
  • אפשר ליצור עכשיו רכיבים שניתנים ללחיצה, להפעלה/השבתה ולבחירה מחוץ ליצירה (I0a130, ‏ b/172938345, ‏ b/175294473)

  • הרכיבים ScrollableColumn/Row הוצאו משימוש. כשיש תוכן גדול שאפשר לגלול בו, השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn, כי ב-LazyColumn אפשר רק ליצור/למדוד/לצייר רכיבים גלויים. כדי למנוע מהמשתמשים להשתמש בדרך לא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקום זאת. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות העצלה ולהשתמש במודיפיקטורים ישירות, כך: Column(Modifier.verticalScroll(rememberScrollState()))‏ (Ib976b, b/170468083)

  • שיטת ייצור חדשה של items(count: Int) להיקף של LazyColumn/‏LazyRow/‏LazyVerticalGrid. items(items: List) ו-itemsIndexed(items: List) הן עכשיו פונקציות תוסף, כך שצריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסי יתר חדשים של תוספים למערכים: items(items: Array) ו-itemsIndexed(Array)‏ (I803fc, ‏ b/175562574)

  • ה-AbsoluteArrangement שהוצא משימוש הוסר. (Iffa96, ‏ b/177641870)

  • הפרמטר propagateMinConstraints נוסף ל-Box כדי לציין אם יש להעביר את אילוצי המינימום הנכנסים לתוכן של Box או לא. ברירת המחדל היא FALSE. (I0125b, ‏ b/152613457)

תיקוני באגים

  • הפונקציות onCommit,‏ onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API SideEffect ו-DisposableEffect (If760e)
  • הרכיב WithConstraints עוצב מחדש כ-BoxWithConstraints והועבר ל-foundation.layout. (I9420b, b/173387208)
  • שינויים בפונקציות המקוריות של Font/FontFamily/Typeface

    • נוספו פונקציות ברירת מחדל שמתחילות באות רישית
    • פונקציות קודמות של מפעל עם אותיות קטנות בתחילת השם
    • פונקציות המפעל החדשות מחזירות את FontFamily במקום תת-כיתות
    • הוסתר ה-constructor של תתי-המחלקות, כך שאפשר ליצור אותם רק באמצעות פונקציות של מפעל.
    • השם של Font.asFontFamily שונה ל-Font.toFontFamily
    • (I42aa7)
  • הוספנו את ComposeContentTestRule, שמרחיב את ComposeTestRule ומגדיר את setContent, שהוסרה מ-ComposeTestRule. נוספה שיטת מפעל createEmptyComposeRule() שמחזירה ComposeTestRule ולא מפעילה בשבילכם Activity. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעות ActivityScenario.launch (I9d782, ‏ b/174472899)

  • הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא הסוג של המשתנה שמתבצעת לו אנימציה. לדוגמה: Float,‏ Dp,‏ Offset וכו' (Ie7e25)

  • עכשיו אפשר להגדיר את הצפיפות ברמת המכשיר המקבל בממשקי Arrangement. (I18aad)

  • ה-TextFieldValue מקבל AnnotatedString. עם זאת, זהו שינוי ב-API בלבד ועריכת טקסט במספר סגנונות עדיין לא הופעלה.

    • הפרמטר initial הוסר מהפרמטרים של ה-constructor של EditingBuffer. (I326d5)
  • הפונקציות invalidate ו-compositionReference() הוצאו משימוש, והן הוחלפו בפונקציות currentRecomposeScope ו-rememberCompositionReference, בהתאמה. (I583a8)

  • השינוי ב-AnnotatedString הוא הרחבה של kotlin.CharSequence. לכן, הפונקציות length ו-subSequence הן עכשיו פונקציות של מופעים, ופונקציות ההרחבה הוסרו. (Iaf429)

  • משך הזמן וזמן הפעולה התקינה יוחלפו ב-Long milliseconds, והשלב הזה מסיר את התלות של קלט הסמן בקטגוריות האלה. (Ia33b2, ‏ b/175142755, ‏ b/177420019)

  • RememberObserver מחליף את CompositionLifecycleObserver, ו-CompositionLifecycleObserver הוצא משימוש.

    RememberObserver הוא תחליף ל-CompositionLifecycleObserver עם סמנטיקה שונה ושמות ששונו לשיטות. אפשר לבצע את המעבר ל-API החדש באופן מכני לאובייקטים שנשמרים בזיכרון רק פעם אחת. זוהי השיטה המומלצת, ותמשיך להיות כזו. עם זאת, אם הפניה נזכרה יותר מפעם אחת בהרכבה, onRemembered תופעל לכל הפניה, בעוד ש-onEnter תופעל רק פעם אחת. onEnter הופעל כמה פעמים אם האובייקט שימש בתמהילים משניים, כמו WithConstraints ו-Scaffold, וכתוצאה מכך הקריאה היחידה ל-onEnter לא הייתה מהימנה והיא הוסרה ב-RememberObserver.

    RememberObserver מוסיף את onAbandoned, שנקרא אם המופע של RememberObserver מוחזר מהקריאה החוזרת (callback) שהועברה אל remember אבל לא נשמר במצב ההרכבה, ולכן אף פעם לא תתבצע קריאה ל-onRemembered. המצב הזה יכול להתרחש אם חריגה מסתיימת לפני השלמת היצירה, או אם היצירה נמחקת כי המצב שהיא יוצרת כבר לא רלוונטי או מסיבה אחרת. אם המופע של RememberObserver, בהתאם להמלצה שלמעלה לגבי הפניה יחידה, עוקב אחרי משאב חיצוני, הערכים של onForgotten ושל onAbandoned מציינים שהמשאב כבר לא נדרש. אם האובייקט עוקב אחרי עבודה שהתחילה או משאבים שהוקצו ב-onRemembered, אפשר להתעלם מ-onAbandoned כי הוא לא יקרא אם יקראו ל-onRemembered. (I02c36)

  • שינוי השם של TransformedText.transformedText ל-TransformedText.text

    • TransformedText כבר לא מוגדר כסוג נתונים (Ie672a)
  • הכיתות הבאות כבר לא הן כיתות נתונים:

    • AnnotatedString
    • ParagraphStyle
    • SpanStyle
    • TextStyle
    • FontWeight
    • TextDecoration
    • TextGeometricTransform
    • TextIndex
    • TextLayoutResult
    • TextLayoutInput‏ (Iaff99)
  • הוסר השימוש בשיטות הניסיוניות monotonicFrameAnimationClockOf‏ (Ib753f, ‏ b/170708374)

  • הוצאנו משימוש שיטות של קואורדינטות גלובליות והוספנו שיטות חדשות של קואורדינטות שמבוססות על חלון. (Iee284)

  • צריך להשתמש ב-ImeAction.None במקום ב-ImeAction.NoAction

    • יש להשתמש ב-ImeAction.Default במקום ב-ImeAction.Unspecified (Ie1bcc)
  • FocusRequester.createRefs מסומן עכשיו כניסיוני כי הוא עשוי להשתנות. (I2d898, ‏ b/177000821)

  • השם של SemanticsPropertyReceiver.hidden השתנה ל-invisibleToUser והוא סומן בתווית @ExperimentalComposeUiApi. השם של AccessibilityRangeInfo השתנה ל-ProgressBarRangeInfo.‏ השם של stateDescriptionRange השתנה ל-progressBarRangeInfo. השם של AccessibilityScrollState השתנה ל-ScrollAxisRange.‏ השם של horizontalAccessibilityScrollState השתנה ל-horizontalScrollAxisRange.‏ השם של verticalAccessibilityScrollState השתנה ל-verticalScrollAxisRange. (Id3148)

  • שינוי VisualTransformation לממשק פונקציונלי (I3bba4)

  • שימוש ב-TestCoroutineDispatcher בבדיקות (I532b6)

  • הסרנו את PointerInputData ושינינו את PointerInputChange כדי לתת לו את כל השדות של PointerInputData. הפכנו את PointerInputEvent ו-PointerInputEventData לרכיבים פנימיים כי הם לא משמשים באף ממשק API ציבורי. (Ifff97, ‏ b/175142755)

  • שינוי השם של TextInputService.onStateUpdated ל-updateState (Id4853)

  • מסירים את displaySize כי אסור להשתמש בו. בדרך כלל עדיף להשתמש בגודל של onRoot()‎ או לפחות בגודל החלון. (I62db4)

גרסה 1.0.0-alpha10

13 בינואר 2021

androidx.compose.foundation:foundation:1.0.0-alpha10 ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha10 משוחררים. גרסה 1.0.0-alpha10 מכילה את ההצהרות האלה.

שינויים ב-API

  • ImeOptions ו-KeyboardOptions כבר לא סוג נתונים (I3c898, b/168684531)
  • שינויים ב-VisualTransformation API
    • השם של OffsetMap השתנה ל-OffsetMapping
    • השם של OffsetMapping.identityOffsetMap השתנה ל-OffsetMapping.Identity
    • PasswordTransformation כבר לא שייך ל-data-class
    • העברת OffsetMapping לקובץ משלו
    • (I0bdf3)
  • שינויים ב-EditOperations API
    • שינוי השם של EditOperation ל-EditCommand
    • הוספת סיומת פקודות להטמעות ספציפיות של EditOperation
    • EditCommand כבר לא הן כיתות נתונים
    • שינוי השם של הפונקציה EditOperation.process ל-applyTo
    • שינוי השם של InputEventListener ל-InputEventCallback
    • (I0a366)
  • שינוי המהירות כך שתכלול רכיבים ופעולות מתמטיות. (Ib0447)
  • שינינו את השם של @ExperimentalTesting ל-@ExperimentalTestApi כדי לשמור על עקביות עם הערות דומות לממשקי API ניסיוניים (Ia4502, ‏ b/171464963)
  • נוספה שיטה ניסיונית של stickyHeader ל-LazyColumn/LazyRow (I0a81d)
  • שינינו את השם של Color.useOrElse() ל-Color.takeOrElse() (Ifdcf5)
  • הוצא משימוש TestUiDispatcher. במקום זאת, צריך להשתמש ב-Dispatchers.Main‏ (Ic171f,‏ b/175385255)
  • הוספת מתג ל-Strings.kt ב-foundation (I4a5b7, ‏ b/172366489)
  • הועבר nativeClass למודול UI והוגדר כפנימי. עדכנו את השימוש ב-nativeClass בהטמעות של equals, והחליפו אותו ב-'is MyClass'. (I4f734)
  • ה-FlowRow וה-FlowColumn הוצאו משימוש. במקום זאת, יש להשתמש בפריסה מותאמת אישית. (I09027)
  • Modifier.focus() ו-Modifier.focusRequester() הוצאו משימוש. במקום זאת, צריך להשתמש ב-Modifier.focusModifier()‎ וב-Modifier.focusReference()‎. (I75a48, ‏ b/175160751, ‏ b/175160532, ‏ b/175077829)
  • הוספנו את SelectionRegistrar.notifySelectableChange כדי לעדכן את SelectionManager על עדכונים של Selectable. (I6ff30, ‏ b/173215242)
  • fun Dp.isFinite() השתנה ל-val Dp.isFinite (I50e00)
  • השם של Constraints#satisfiedBy השתנה ל-isSatisfiedBy. (I9cf5c)
  • נוספו הפונקציות isSpecified,‏ isUnspecified ו-useOrElse לכיתות בקוד שמוצג בשורה אחת עם קבוע Unspecified. (I93f7b, ‏ b/174310811)

תיקוני באגים

  • ממשק API חדש מבוסס-קורוטינה Animatable שמבטיח שהאנימציות יהיו בלעדיות זו לזו. ‏DecayAnimationSpec חדש לתמיכה באנימציית דהייה בממדים מרובים (I820f2, ‏ b/168014930)
  • נוספה תמיכה בשדות טקסט מושבתים ובשדות טקסט לקריאה בלבד (I35279, ‏ b/171040474, ‏ b/166478534)
  • animate() הוחלף עכשיו ב-animateAsState(), שמחזיר State<T> במקום T. כך אפשר לשפר את הביצועים, כי היקף ביטול התוקף יכול להצטמצם למקום שבו נקרא ערך המצב. (Ib179e)
  • מוסיפים את Semantics role API ומוסיפים את Role כפרמטר ל-SemanticsModifier שניתן ללחוץ עליו, לבחור בו ולהפעיל או להשבית אותו. שינינו את Modifier.progressSemantics כדי שגם Slider יוכל להשתמש בו. (I216cd)
  • עכשיו אפשר לגשת ל-keyEvent המקורי דרך keyEvent.nativeKeyEvent‏ (I87c57, ‏ b/173086397)

גרסה 1.0.0-alpha09

16 בדצמבר 2020

androidx.compose.foundation:foundation:1.0.0-alpha09 ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha09 משוחררים. גרסה 1.0.0-alpha09 מכילה את ההוספות האלה.

שינויים ב-API

  • הוספת ממשק לגלילה

    כך אפשר להתייחס ל-ScrollState ול-LazyListState כאל סוג משותף, וכך אפשר להטמיע גלילה בהתאמה אישית בשני הסוגים.

    הפעולה הזו גם מעבירה את smoothScrollBy לפונקציית תוסף ב-Scrollable, שמאפשרת לנצל את הפונקציונליות הזו. (I2153b)

  • הקוד LazyVerticalGrid נוסף. (I17267, b/162213211)

  • הוצאה משימוש של LazyColumnFor, ‏ LazyRowFor, ‏ LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow (I5b48c)

  • בממשקי ה-API להשהיית קלט של סמן, שינינו את השם של HandlePointerInputScope ל-AwaitPointerEventScope ואת handlePointerInput() ל-awaitPointerEventScope().‏ (Idf0a1, ‏ b/175142755)

  • נוספה LazyListState.layoutInfo, שמציגה את רשימת הגדלים וההיסטים של הפריטים שגלויים כרגע (If8678,‏ b/170472532)

  • הוסר ההערה ExperimentalPointerInput (Ia7a24)

  • הוספנו תמיכה ב-InteractionState בשדות טקסט. (I61d91)

  • הוספת הפרמטר reverseLayout ל-LazyColumn/Row. כשהערך הוא true, הפריטים יתוכננו מלמטה למעלה, והערך LazyListState.firstVisibleItemIndex == 0 יעיד שהפריט הראשון נמצא בתחתית. (I552ae, ‏ b/166589935)

  • הפרמטר verticalArrangement נוסף ל-LazyColumn. הפרמטר horizontalArrangement נוסף ל-LazyRow. בעזרת האפשרות 'סידור' אנחנו יכולים להוסיף רווח בין הפריטים ולציין את הסידור שלהם כשאין מספיק פריטים כדי למלא את כל המידה המינימלית. (Icf79a, ‏ b/170394300)

  • ב-detectMultitouchGestures נעשה עכשיו שימוש בקריאה חוזרת אחת עם פרמטרים משולבים של מרכז כובד, תנועת פאן, שינוי מרחק התצוגה ותנועת סיבוב. (Ie6e1c)

  • הועבר ContentDrawScope למודול ui-graphics כדי שיהיה לצד DrawScope. (Iee043, ‏ b/173832789)

תיקוני באגים

  • פונקציות Lambda במשתני שינוי של אופסט מחזירות עכשיו IntOffset במקום Float. (Ic9ee5, ‏ b/174137212, ‏ b/174146755)
  • הוסרו מה-API הציבורי SlotTable, ‏ SlotReader ו-SlotWriter. בעבר הם סומנו בתור InternalComposeAPI. עכשיו הם פנימיים למודול ה-Compose.

    הוספנו את CompositionData ו-CompositionGroup כתחליף ל-UI-tooling API, כדי להשתמש בהם לחילוץ פרטי קומפוזיציה. הם גלויים לכולם, אבל לא מיועדים לשימוש מחוץ ל-UI-tooling API, כי הם מספקים את המידע הגולמי ש-UI-tooling API מפרש (I31a9c)

  • שיפרנו את ShaderBrush כדי ליצור באופן עצלני מופע של שַדְר (shader) כשמידע על הגודל של סביבת הציור זמין. האפשרות הזו שימושית להגדרת מעברי צבע שממלאים את כל גבולות הציור של רכיב ה-Composable בזמן היצירה, בלי צורך להטמיע הטמעות מותאמות אישית של DrawModifier.

    ממשקי API של פונקציות שיפוע שהוצאו משימוש, לטובת שיטות של מפעלים באובייקט Gradient. (I511fc, ‏ b/173066799)

  • Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17,‏ b/168511863,‏ b/168511484)

  • Autofill API הוא עכשיו ממשק API ניסיוני, ונדרש הסכמה מפורשת לשימוש בו (I0a1ec)

  • הוספת הצהרות לפירוק מבנה כדי ליצור מכונות של FocusRequester (I35d84, ‏ b/174817008)

  • השם של accessibilityLabel השתנה ל-contentDescription.‏ השם של accessibilityValue השתנה ל-stateDescription. (I250f2)

  • הוספנו כמה פונקציות חדשות ל-SelectionRegistrar ושינינו את השם של onPositionChange ל-notifyPositionChange. (Ifbaf7)

  • AndroidOwner הפך את הבעיה לבעיה פנימית (Ibcad0, ‏ b/170296980)

  • פונקציה חדשה מסוג infiniteRepeatable ליצירת InfiniteRepeatableSpec (I668e5)

  • ממשק Applier השתנה כדי לפשט את בניית העצים מלמטה למעלה במקום מלמעלה למטה.

    השם של השיטה insert() השתנה ל-insertTopDown().

    נוספה שיטה חדשה, insertBottomUp().

    הכלי להטמעה יכול להוסיף צמתים לעץ שהוא עורך באמצעות insertTopDown() או insertBottomUp(), בהתאם למה שמניב ביצועים טובים יותר.

    בחלק מהעצים, כמו LayoutNode ו-View, יעיל יותר לבנות מלמטה למעלה מאשר מלמעלה למטה. לפני השינוי הזה, היה צורך בסטאק של תוספים כדי להטמיע מלמטה למעלה, וצריכים היה להעתיק אותו לכל מחבר (applier) שדרושה לו בנייה מלמטה למעלה לשיפור הביצועים. בעקבות השינוי הזה, Applier מבטל את insertBottomUp() כדי ליצור עץ מלמטה למעלה, ו-insertTopDown() כדי ליצור את העץ מלמעלה למטה. (Icbdc2)

  • הוספנו את painterResource API כדי לטפל בחיבור אובייקטים של Painter מפורמטים של נכסים רסטריים (כמו קובצי PNG) או מ-VectorDrawables. הצרכנים כבר לא צריכים לקבוע מראש את סוג הנכס, והם יכולים להפעיל את השיטה הזו כדי לקבל אובייקט Painter לשימוש ב-Image composables או במודיפיקציות של Painter. (I2c703, ‏ b/173818471)

  • נוספה פונקציית המפעל buildAnnotatedString כדי ליצור AnnotatedString. פונקציית ה-builder של annotatedString הוצאה משימוש. (Idfe0b)

גרסה 1.0.0-alpha08

2 בדצמבר 2020

androidx.compose.foundation:foundation:1.0.0-alpha08 ו-androidx.compose.foundation:foundation-layout:1.0.0-alpha08 משוחררים. גרסה 1.0.0-alpha08 מכילה את ההצהרות האלה.

שינויים ב-API

  • הפרמטר maxLines הוסר מה-CoreTextField. אם רוצים להגביל את הגובה של שדה הטקסט לפי מספר השורות, צריך להשתמש במקום זאת ב-BasicTextField. (Iec002)
  • שינינו את השיטות של await*TouchSlop() כך שלא יזהו את הסמן למטה, ושמנו להן את השם *OrCancellation. בנוסף, אין צורך בפרמטר orientationLock. (Ie96e1)
  • הוספנו בדיקת איתור שגיאות בקוד לשמות ולמיקום של פרמטרים של lambda שניתנים ליצירה, כדי לבדוק את העקביות עם ההנחיות של Compose. בנוסף, העברנו חלק מממשקי ה-API שמשתמשים ב-children בתור השם של פונקציית ה-lambda שבסוף ל-content, בהתאם לבדיקת האיתור של שגיאות בקוד ולהנחיות. (Iec48e)
  • ממשקי ה-API של foundation:foundation-text הועברו אל foundation:foundation. מבנה החבילה נשאר ללא שינוי (Id3eb2)
  • גלאי תנועות חדש עם תמיכה במגע רב-משתמש, כולל כלי עזר לזיהוי סיבוב, שינוי מרחק התצוגה ותנועת פנורמה. (Ic459d)
  • גלאי תנועות גרירה חדש להשעיית API של קלט סמן, כולל נעילת כיוון. (Icef25)
  • שינינו את השם של VectorAsset ל-ImageVector, והעברנו את VectorAsset ושינינו את השם שלו ל-Builder כדי שיהיה כיתה פנימית של ImageVector, בהתאם להנחיות של מועצת ה-API. הוספנו סוג חלופי של VectorAssetBuilder כדי לקשר ל-ImageVector.Builder לצורך תאימות. (Icfdc8)
  • השם של ImageAsset והשיטות הקשורות השתנה ל-ImageBitmap. (Ia2d99)
  • העברת מאפייני סמנטיקה בסיסיים ל-UI (I6f05c)
  • הוספת ממשקי API לגלילה שמבוססים על קורוטינים:

    נוספו LazyListState.snapToItem ו-LazyListState.smoothScrollBy, וכן ממשקי API ברמה נמוכה יותר לצורך בקרת גלילה. ממשקי ה-API האלה מספקים ממשק השהיה לצורך בקרה על גלילה, שממתין עד שהגלילה מסתיימת לפני שהוא חוזר. (Ie5642)

  • נוספה פרמטר singeLine ל-BasicTextField, ל-TextField ול-OutlinedTextField. מגדירים את הפרמטר הזה כ-true כדי שהשדה יכיל שורה אחת שניתן לגלול בה אופקית. (I57004, ‏ b/168187755)

  • הוספנו גלאי תנועות להקשה, להקשה כפולה, ללחיצה ארוכה ולחיוויית לחיצה באמצעות הקלט החדש של סמן ההשהיה. הוספנו גם כמה כלי עזר, כדי להקל על המפתחים לכתוב גלאי תנועות משלהם. (I00807)

  • צריך להוסיף את Modifier.focusable ב-Foundation. אפשר להשתמש ב-focusable כדי להוסיף לרכיב התנהגות שניתן להתמקד בה, עם סמנטיקה ונגישות נכונות. (I41eb9, ‏ b/152525426, ‏ b/162865824)

  • ממשקי API שהוצאו משימוש בעבר הוסרו: Border הוצא משימוש, במקום זאת צריך להשתמש ב-BorderStroke. ה-Modifier.drawBorder הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.border. Modifier.gravity הוסרה. במקום זאת, צריך להשתמש ב-Modifier.align. Stack הוסר, יש להשתמש ב-Box במקום זאת (I32c2b, ‏ b/172470874)

  • השם של AbsoluteArrangement השתנה ל-Arrangement.Absolute. (If26f2)

תיקוני באגים

  • העברנו את ממשקי ה-API של DrawModifier מחבילת androidx.compose.ui לחבילה androidx.compose.ui.draw. נוצר הקובץ DrawModifierDeprecated.kt כדי לכלול שיטות עזר או כינויים מסוגים (type aliases) שיעזרו בהעברה מ-APIs הקודמים ל-APIs הנוכחיים. (Id6044, ‏ b/173834241)
  • שינינו את השם של Modifier.drawLayer ל-Modifier.graphicsLayer. בנוסף, עדכנו את הכיתות הקשורות ל-GraphicsLayer בהתאם למשוב של ועדת ה-API. (I0bd29, ‏ b/173834241)
  • <T> הוסר מהצהרת SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8)
  • השדות 'זמן פעולה תקינה' ו'מיקום' של PointerInputData לא יכולים להיות ריקים. (Id468a)
  • עכשיו MaterialTheme מגדיר את הצבעים הנכונים לידני הבחירה ולרקע הבחירה. אפליקציות שאינן ב-Material Design יכולות להשתמש באופן ידני ב-AmbientTextSelectionColors כדי להתאים אישית את הצבעים שבהם נעשה שימוש לבחירה. (I1e6f4, ‏ b/139320372, ‏ b/139320907)
  • שם הפרמטר של Box שונה ל-contentAlignment. (I2c957)
  • השם של המשתנים offsetPx השתנה ל-offset. עכשיו הם מקבלים פרמטרים של lambda במקום State. (Ic3021, ‏ b/173594846)
  • נוספה הפונקציה WindowManager.isWindowFocused כדי לבדוק אם חלון המארח נמצא במוקד, ונוסף WindowFocusObserver שמספק קריאה חוזרת (callback) של onWindowFocusChanged. (I53b2a, b/170932874)
  • הוספנו את הפרמטר resetInput ל-TextInputService#onStateUpdated‏ (I3e8f5, ‏ b/172239032, ‏ b/171860947)
  • עדכון של TextFieldValue API
    • הפכנו את TextFieldValue.composition לקריאה בלבד
    • הוסר חריג שהופעל בגלל טווח בחירה לא תקין (I4a675, ‏ b/172239032)
  • הוצאנו משימוש את הסביבות של Ambients עם הסיומת Ambient והחלפנו אותן בנכסים חדשים עם התחילית Ambient, בהתאם להנחיות אחרות לגבי Ambients ו-Compose API. (I33440)
  • נוספה חבילה של Android Typeface. אפשר לטעון גופן Android באמצעות הפונקציה typeface, למשל typeface(Typeface.DEFAULT). השם של typefaceFromFontFamily() השתנה גם ל-typeface() (I52ab7)
  • נוספה בדיקת איתור שגיאות בקוד כדי לבדוק שמפעלי מודיפיקטור משתמשים ב-androidx.compose.ui.composed {} באופן פנימי, במקום להיות מסומנים כ-@Composable. (I3c4bc)
  • הוספנו בדיקת איתור שגיאות בקוד כדי לבדוק שפונקציות של מפעל Modifier מוגדרות כתוספים ל-Modifier, כדי שאפשר יהיה לשרשר אותן יחד בצורה חלקה. (I07981)
  • שם הארגומנט הסמנטי mergeAllDescendants שונה ל-mergeDescendants. (Ib6250)
  • שליטה בזמן בבדיקות (TestAnimationClock והשימושים שלו) היא עכשיו ניסיונית (I6ef86, ‏ b/171378521)
  • הסרת המודול הישן של בדיקת ממשק המשתמש והסטאבים שלו (I3a7cb)
  • השם של TextUnit.Inherit השתנה ל-TextUnit.Unspecified בהתאם ליחידות אחרות. (Ifce19)
  • ממשק ההתאמה עודכן והפך לפונקציונלי. (I46a07, ‏ b/172311734)
  • המודול foundation:foundation-text מוזג ל-foundation:foundation (Idac0f)
  • הוצאה משימוש של place(Offset) ו-placeRelative(Offset). במקום זאת, משתמשים בהעמסת יתר עם אופסים של int (I4c5e7)
  • השם של id שונה ל-layoutId עבור LayoutIdParentData. השם של Measurable.id שונה לשם Measurable.layoutId. (Iadbcb, ‏ b/172449643)

גרסה 1.0.0-alpha07

11 בנובמבר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha07 משוחררות. גרסה 1.0.0-alpha07 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • בדומה ל-Modifier.fillMaxSize[Width|Height], עכשיו יש תמיכה ב-Modifier.fillParentMaxSize[Width|Height] בתחום של LazyColumn/Row (I797e2,‏ b/166586426)
  • הוסר KeyboardOptions.toImeOptions מה-API הציבורי. (Ic2e45)
  • הנכסים הבסיסיים AmbientTextStyle,‏ ProvideTextStyle ו-AmbientContentColor הוצאו משימוש. במקום זאת, השתמשו בגרסאות החדשות שזמינות בספריית Material. באפליקציות שאינן של Material, במקום זאת צריך ליצור סביבות נושא ספציפיות למערכת העיצוב שלכם, שאפשר להשתמש בהן ברכיבים שלכם. (I74acc, ‏ b/172067770)
  • ה-foundation.Text הוצא משימוש והוחלף ב-material.Text. ל-API טקסט בסיסי ללא דעה מוצגת, שלא צורך ערכים מעיצוב, אפשר לעיין ב-androidx.compose.foundation.BasicText. (If64cb)
  • הוספנו את maxLines ל-TextFields (Ib2a5b)
  • עדכון של TextFields כדי לקבל KeyboardOptions (Ida7f3)
  • נוספו אפשרויות מקלדת לשימוש בשדות טקסט (I9ca32)
  • הוספת BasicText כ-API לטקסט ללא דעה מוקדמת לגבי עיצוב, במקביל ל-BasicTextField. (I28268)
  • ההערה ExperimentalLazyDsl הוסרה. עכשיו אפשר להשתמש ב-LazyColumn/LazyRow בלי להוסיף את @OptIn (Idab7a, ‏ b/166584730)
  • ה-BaseTextField הוצא משימוש. במקום זאת, צריך להשתמש ב-BasicTextField. (I896eb)
  • הוספנו את BasicTextField כתחליף ל-CoreTextField ול-BaseTextField (Id4cea)
  • הסרה של LazyColumnItems/LazyRowItems שהוצאו משימוש (I1d8a8)
  • הוסר הרכיב המודולרי הישן לבחירת גודל לפי מדידות מובנות. (I18537, ‏ b/171811496)
  • השם של relativePaddingFrom השתנה ל-paddingFrom. המאפיין paddingFromBaseline נוסף כדי להקל על ציון המרחקים בין גבולות הפריסה לבין קווים בסיסיים של טקסט. (I0440a, ‏ b/170633813)
  • הפרמטר matchHeightConstraintsFirst נוסף למשתנה aspectRatio, שאפשר להשתמש בו כדי לציין את המשתנה לגודל בהתאם לאילוצים לגובה לפני שמנסים את התאמות הרוחב. (Ie7c43, ‏ b/155290593)
  • ה-DpConstraints הוצא משימוש. (I87884, ‏ b/171702471)

תיקוני באגים

  • הוספנו את הכיתה ScaleFactor ברמת השורה, כדי לייצג גורמי שינוי לצייר האנכי והציר האופקי בנפרד, כדי לתמוך בתרחישי שימוש עם שינוי לא אחיד של קנה המידה.
    • נוספה השיטה computeScaleFactor ל-ContentScale
    • הוספנו את ContentScale.FillBounds כדי לבצע שינוי קנה מידה לא אחיד כדי למתוח את גבולות המקור כך שיתפסו את היעד במלואו.
    • נוספו שיטות של אופרטורים לחישוב פרמטרים של ScaleFactor עם פרמטרים של Size.
    • (Ic96a6, ‏ b/172291582)
  • השיטה captureToBitmap הועברה ל-captureToImage. (I86385)
  • סימון CoreText בתור @InternalTextApi. במקום זאת, צריך להשתמש ב-BasicText. (I6aaeb)
  • שינוי השם של KeyboardOptions ל-ImeOptions‏ (I82f36)
  • הועברו KeyboardType ו-ImeAction אל KeyboardOptions‏ (I910ce)
  • CoreTextField סומן כ-@InternalTextApi. במקום זאת, צריך להשתמש ב-BasicTextField (Ie2469)
  • ההערה ExperimentalSubcomposeLayoutApi הוסרה. עכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף את @OptIn (I708ad)
  • הצגת המודול ui-test-junit4 (Ib91f8)
  • עדכנו את Icon API כך שיכלול את Color.Unspecified כצבע גוון אפשרי, שיצייר את הנכס או את הצייר שסופקו ללא ColorFilter. בעבר, ניסיונות להתעלם מהגוון באמצעות Color.Unspecified היו גורמים לגוון שקוף, וכתוצאה מכך לא היה רינדור בכלל. (I049e2, ‏ b/171624632)
  • MeasureResult הועבר מ-MeasureScope. (Ibf96d, ‏ b/171184002)
  • כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui אל androidx.compose.layout.ui. (I0fa98, ‏ b/170475424)
  • androidx.ui.test הועבר ל-androidx.compose.ui.test (I9ffdb)
  • FirstBaseline ו-LastBaseline הועברו לחבילה androidx.compose.ui.layout (Ied2e7)
  • נוספה SelectionContainer ללא קריאה חוזרת (Ibfadb)
  • מוסיפים בדיקות למיקומים של SelectionHandles ב-SelectionContainer. (Ie93db)
  • נוספה אפשרות IME לתיקון אוטומטי במקלדת (I57b8d)

גרסה 1.0.0-alpha06

28 באוקטובר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha06, androidx.compose.foundation:foundation-layout:1.0.0-alpha06 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha06 משוחררות. גרסה 1.0.0-alpha06 מכילה את ההוספות האלה.

שינויים ב-API

  • androidx.compose.foundation.Icon הועבר ל-androidx.compose.material.Icon. אם אתם לא רוצים להשתמש בספריית Material, אתם יכולים גם להשתמש ברכיב Image או ב-Modifier.paint() עם Painter. (I9f622)
  • הוספנו את interactionState ל-Modifier.scrollable, ל-ScrollableColumn ול-LazyColumnFor‏ (I81566, b/169509805)
  • הוספה של alignByBaseline ל-RowScope ושם חדש של alignWithSiblings ל-alignBy (I06503, ‏ b/170628732)
  • Box הפך לפונקציה מוטמעת. (Ibce0c, ‏ b/155056091)
  • הוספנו את maxLines ל-CoreTextField‏ (Ibee58, ‏ b/143687793)
  • נוספה תכונת softwrap ל-CoreTextField. (I21a4b)

תיקוני באגים

  • הוצאנו משימוש את VectorPainter והחלפנו אותו ב-rememberVectorPainter כדי לציין בצורה טובה יותר שה-API הניתן ליצירה משתמש בפנים ב-'remember' כדי לשמור נתונים במהלך קומפוזיציות. (Ifda43)
  • מפעילים את המעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
  • נוספה אפשרות מקלדת לשורה אחת ל-CoreTextField‏ (I72e6d)
  • שינינו את השם של Radius API ל-CornerRadius כדי לשקף טוב יותר את אופן השימוש בו ב-Compose. עדכנו את המסמכים כדי לציין שרדיאנים של פינות שליליים מוגבלים לאפס. (I130c7, ‏ b/168762961)
  • הוספת היכולת לציין פרטי ביקורת במשנה מורכב (Idee08, ‏ b/163494569)
  • נוספה אפשרות IME של האותיות הגדולות במקלדת (I8ac38)
  • תיקון המיקום של נקודת האחיזה ב-RTL. (I6e1e0)
  • שינוי שפוגע בתאימות לאחור: הוסר ערך ההחזרה מ-PointerInputFilter.onPointerEvent(...), מאחר שהערך היחיד שאפשר לשנות באירועי מצביע הוא נתוני צריכה. במקום להחזיר נתונים מ-PointerInputFilter.onPointerEvent(...), עכשיו אפשר פשוט לשנות את נתוני הצריכה של PointerEvents שהועברו. (I6acd0)
  • הוספה של האפשרות 'בחירת הכול' לתפריט הבחירה (Ief02b)

גרסה 1.0.0-alpha05

14 באוקטובר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha05 משוחררות. גרסה 1.0.0-alpha05 מכילה את ההוספות האלה.

שינויים ב-API

  • CoreTextField תומך עכשיו בפונקציונליות של הסמן (Id23aa)
  • הוצאה משימוש של ממשקי ה-API contentColor() ו-currentTextStyle(), והחלפתם ב-AmbientContentColor וב-AmbientTextStyle, בהתאמה. כדי לגשת לערך הנוכחי, משתמשים ב-.current במאפיין הסביבה, כמו בכל מאפיין סביבה אחר. השינוי הזה בוצע כדי לשמור על עקביות וכדי למנוע מצב שבו יש כמה דרכים להשיג את אותו הדבר. בנוסף, השמות של חלק מהמאפיינים הסביבתיים שונו כדי לתאר טוב יותר את המטרה שלהם:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme‏ (I37b6d)

תיקוני באגים

  • כחלק מהסטנדרטיזציה של ערכי סנטינל לכיתות בקוד, שינינו את השם של Color.Unset ל-Color.Unspecified כדי לשמור על עקביות עם כיתות אחרות בקוד (I97611, ‏ b/169797763)
  • נוספו פעולות נגישות של העתקה/הדבקה/חיתוך (I6db4f)
  • האפשרות TextOverflow.None לא מופיעה. כש-overflow הוא None, הרכיב Text לא מטפל יותר בחריגה מעבר לגבולות, והוא מדווח על הגודל בפועל שלו ל-LayoutNode. (I175c9, ‏ b/158830170)
  • העדכנו את הפרמטרים של Size.Unspecified ל-Float.NaN במקום ל-Float.POSITIVE_INFINITY. עדכנו את הטמעות Painter כך שיבדקו את הערך Size.Unspecified וגם ערכים של Sizes לא סופיים. (I95a7e)
  • נוספו מודול 'כתיבה בחלוקה לדפים' ושילוב של חלוקה לדפים (Ib85da)
  • שינוי LazyListScope כדי לקבל ערכים nullable (I1765b)
  • השם של OnPositionedModifier השתנה ל-OnGloballyPositionedModifier, והשם של onPositioned() השתנה ל-onGloballyPositioned().‏ (I587e8,‏ b/169083903)
  • נוספו דוגמאות ל-LazyColumn/Row‏ (Idc16d)
  • תיקון לשיטות items ו-itemsIndexed כדי לאפשר emptyList (I06647)
  • הוספת שפת DSL לציון פרטי המפקח (Ic9a22)
  • מעבירים את 'לחיצה ארוכה' אל 'טקסט'. (Iff2bc)
  • השבתת האפשרות 'בחירה בטקסט' ודגמה. (Ie7e97)
  • תמיכה בהמרה של AnnotatedString ל-SpannableString לצורכי נגישות. (Ief907)
  • בוצעה הסרה של PointerInputFilter.onPointerInput(...). צריך להשתמש ב-PointerInputFilter.onPointerEvent(...) במקומו. (I6f04a)

גרסה 1.0.0-alpha04

1 באוקטובר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha04 משוחררות. גרסה 1.0.0-alpha04 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • השם של Stack השתנה ל-Box. הרכיב הקודם foundation.Box יוסר משימוש לטובת הרכיב החדש Box ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את הצאצאים זה על גבי זה כשיש לו כמה צאצאים – בניגוד ל-Box הקודם, שההתנהגות שלו הייתה דומה לזו של Column. (I94893, ‏ b/167680279)
  • הפרמטרים של עיטור התיבה הוצאו משימוש. אם רוצים להוסיף לקובייה קישוטים או שוליים, צריך להשתמש במקום זאת ב-Modifiers (Modifier.background, ‏ Modifier.border, ‏ Modifier.padding) (Ibae92, ‏ b/167680279)
  • מוסיפים את המחלקה LazyListState. כך אפשר לעקוב אחרי מיקום הגלילה של הרכיבים LazyRow ו-LazyColumn ולשלוט בו. אפשר ליצור מופעים באמצעות rememberLazyListState()‎ ולהעביר אותם לפרמטר המצב של הרכיב. נכון לעכשיו, אפשר לראות את הפריט הראשון וההיסטים הגלויים בגרסה הראשונית הזו. (Ic7cb7, ‏ b/159307669)
  • המיקום של רשימת פריטים שהוגדרה כ'לא פעילה' וההיסט של הגלילה נשמרים עכשיו ומוחזר במהלך יצירת מחדש של פעילות (Ie045f, ‏ b/166589058)
  • הוספת פעולה לפי סמנטיקה של לחיצה ארוכה (I6281b, ‏ b/156468846)
  • נוספה השירות MutatorMutex, שמאפשר לשמור על mutator יחיד של מצב משותף לאורך זמן ולבטל mutators מתנגשים לפי תעדוף (I3f975)
  • הוספת הערה למאפיינים rootAnimationClockFactory, ‏ transitionsEnabled,‏ blinkingCursorEnabled ו-textInputServiceFactory באמצעות @VisibleForTesting, הפיכת המאפיינים ל-API פנימי והסתרת ה-kdoc שלהם (I554eb, ‏ b/168308412)
  • הוסר הפרמטר inlineContent מהקלט של טקסט עם מחרוזת. לא נעשה בו שימוש כי ה-inlineContent חייב לפעול עם AnnotatedString. (Ief403)
  • ממשקי ה-API המותאמים אישית של Arrangement שהוצאו משימוש הוסרו. (Ic576d, ‏ b/168297922, ‏ b/168297923)
  • הפרמטר unbounded נוסף למשתני wrapContentSize, שמאפשרים למדוד את רכיב הפריסה עם מגבלות מקסימום אינסופיות. (I77951, ‏ b/158559319)
  • חסמנו ייבוא סטטי של תוכן של היקפי פריסה (למשל alignWithSiblings ב-RowScope). במקום זאת, צריך להשתמש באפשרות החלופית ברמת ההיקף המפורשת: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be, ‏ b/166760797)

תיקוני באגים

  • עדכנו הרבה ממשקי Graphics API
    • עדכנו את ממשקי ה-API של טרנספורמציות של שינוי קנה מידה וסיבוב כך שישתמשו בפרמטר Offset יחיד שמייצג את קואורדינטת הציר, במקום בפרמטר float נפרד לכל אחת מקואורדינטות ה-x/y ב-DrawScope וב-DrawTransform.
    • הוסר השימוש בשיטות Rect.expandToInclude ו-Rect.join
    • עדכנו את המסמכים של Radius כך שיכללו את המונח 'אליפסה' בנוסף למונח 'אליפסואיד'
    • נוספה תיעוד כדי לציין שאין להפעיל ישירות את המבנה הציבורי של הכיתה Radius שמוטמעת בקוד, אלא ליצור אובייקטים של Radius באמצעות המבנים של הפונקציות שלהם
    • הוסרו ממשקי ה-API של RoundRect לשליחת שאילתות ל-topRight,‏ bottomRight,‏ bottomCenter וכו'.
    • הוצאה משימוש של Rect.shift לטובת Rect.translate
    • הוסרו ממשקי ה-API RoundRect.grow ו-Rect.shrink
    • שינוי השם של RoundRect.outerRect ל-Rect.boundingRect
    • הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
    • השם של RoundRect.longestSide השתנה ל-RoundRect.maxDimension
    • שינוי השם של RoundRect.shortestSide ל-RoundRect.minDimension
    • שינוי RoundRect.center לנכס במקום לפונקציה
    • עדכנו את ה-constructor של RoundRect כך שישתמש במאפייני Radius במקום בפרמטרים נפרדים לערכים של רדיוס x/y
    • הוסרו ממשקי API של גודל שהניחו שמדובר ב-Rectangle עם מקור ב-0,0
    • הוספנו ל-Radius ממשק API להרס עצמי
    • העברנו פונקציות שונות של התוסף RoundRect לנכסים במקום זאת
    • (I8f5c7, ‏ b/168762961)
  • אופטימיזציות ביצועים לגלילה ב-LazyColumnFor/LazyRowFor, על ידי הימנעות מיצירה מחדש מיותרת בכל גלילה (I64f65,‏ b/168293643,‏ b/167972292,‏ b/165028371)
  • תוקן קריסה ב-LazyColumnFor/LazyRowFor אחרי גלילה ואז שינוי פריטים, והוטמעה גלילה אוטומטית למעלה כשהפריט שגלוי קודם הוסר, כדי שלא יוצגו יותר פערים ריקים בסוף (I220ab,‏ b/161480164,‏ b/167855468)
  • אסור יותר להטמיע בתוך קונטיינרים שניתנים לגלילה באותו כיוון, כמו ScrollableContainer ו-LazyColumnFor. הוא אף פעם לא נתמך והוא מפר את ה-fling ואת כל העצלות של הרכבת הפריטים של LazyColumnFor‏ (I6e101)
  • עדכנו הרבה ממשקי Graphics API
    • עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה ברמת ההיקף כדי לציין שהטרנספורמציה חלה רק בתוך פונקציית הקריאה החוזרת, והיא תוסר אחרי ההפעלה של פונקציית הקריאה החוזרת
    • מסמכי העזרה של clipPath עודכנו כך שיתייחסו ל-Path במקום ל-rounded rectangle
    • תוקן המרווח במסמכי התיעוד של הפרמטר הנכון ב-clipPath
    • שינוי השם של DrawScope.drawCanvas ל-drawIntoCanvas והסרת הפרמטר size
    • שינוי השם של הפרמטרים dx/dy בשיטת ההכנסה ל'אופקי' ו'אנכי'
    • הוספנו עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
    • הסרנו את המסמך בנושא שיטת ההכנסה (inset) שמציין שההכנסה תחול על כל 4 הצדדים
    • מסמכי עזר מעודכנים לגבי הכיתה Rect
    • עדכנו את ההערות על הפרמטרים של Rect כך שיתאימו לסגנון של kdoc.
    • הוסר Rect.join ו-Rect.expandToInclude
    • נוצרה עומס יתר ל-Rect.translate(offset) והוצא משימוש Rect.shift
    • (If086a, ‏ b/167737376)
  • מוסיפים את AccessibilityScrollState למאפייני הסמנטיקה. (Ifeda9)
  • כדי למנוע יצירת אובייקט, צריך להגדיר את TextRange בשורה. (Id034b)
  • הרכיב ParagraphConstraints הוסר. עכשיו הרוחב מועבר ישירות ל-Paragraph. (Ica712)

גרסה 1.0.0-alpha03

16 בספטמבר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha03, androidx.compose.foundation:foundation-layout:1.0.0-alpha03 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha03 משוחררות. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.

שינויים ב-API

  • השם של InnerPadding שונה ל-PaddingValues. (I195f1, ‏ b/167389171)
  • השמות של השימושים ב-gravity שונו באופן עקבי ל-align או ל-alignment בממשקי ה-API של הפריסה. (I2421a, ‏ b/164077038)
  • נוספו ל-Stack פרמטרים של יישור, שמאפשרים לציין את יישור ברירת המחדל לכל הצאצאים של Stack. (Ie80ca, ‏ b/164085265)

תיקוני באגים

  • DpConstraints וממשקי ה-API שמשתמשים בהם הוצאו משימוש. (I90cdb, ‏ b/167389835)
  • השם של הפרמטרים minWidth ו-maxWidth של widthIn השתנה ל-min ול-max. באופן דומה, עבור preferredWidthIn,‏ heightIn,‏ preferredHeightIn. (I0e5e1, ‏ b/167389544)
  • הוספנו את onNode ושיטות גלובליות אחרות ל-ComposeTestRule, כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
  • חישובים קבועים של מיקום וגודל ב-GestureScope, שגרמו בין היתר ליצירה של תנועות החלקה לא חוקיות (Iaf358, ‏ b/166589947)
  • createAndroidComposeRule ו-AndroidInputDispatcher הועברו מ-androidx.ui.test.android ל-androidx.ui.test (Idef08, ‏ b/164060572)

גרסה 1.0.0-alpha02

2 בספטמבר 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha02 משוחררות. גרסה 1.0.0-alpha02 מכילה את ההצהרות האלה.

תיקוני באגים

  • TestUiDispatcher מסומן כניסיוני (Iae99d, ‏ b/161247083)
  • נוספו הפונקציות ManualFrameClock.hasAwaiters כדי לבדוק אם יש משהו שממתין לפריים מהשעון הזה, runWithManualClock כתחליף ל-runBlocking כשמריצים בדיקות שצריכות ManualFrameClock, ו-TestUiDispatcher.Main שמספקת גישה קלה למפזר הראשי של ממשק המשתמש בבדיקות.

    לדוגמה:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b, ‏ b/161247083)

גרסה 1.0.0-alpha01

26 באוגוסט 2020

התכונות androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 וגם androidx.compose.foundation:foundation-text:1.0.0-alpha01 משוחררות. גרסה 1.0.0-alpha01 מכילה את ההצהרות האלה.

גרסה 0.1.0-dev

גרסה 0.1.0-dev17

19 באוגוסט 2020

התכונות androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 וגם androidx.compose.foundation:foundation-text:0.1.0-dev17 משוחררות. גרסה 0.1.0-dev17 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

שינויים ב-API

  • הוספה של הפריסת spacedBy עבור שורה ועמודה, כדי לאפשר מיקום של רכיבי פריסה צאצאים עם רווח קבוע. הוספנו גם את האפשרות 'סידור ביישור', כדי לאפשר מיקום של רכיבי פריסה צאצאים זה לצד זה, ויישור שלהם בשורה או בעמודה בהתאם לאפשרות היישור. השיטות הקודמות Arrangement.Vertical#arrange ו-Arrangement.Horizontal#arrange הוצאו משימוש, ובעתיד לא תהיה תמיכה בכתיבת עיצובים מותאמים אישית. (I6733d, ‏ b/161985975)
  • ההיסט הפך לכיתה בתוך שורה (Iaec70)
  • הוסרו קריאות חזרה מסוג onFocusChanged מ-TextField. במקום זאת, צריך להשתמש ב-Modifier.focusObserver. (I51089, ‏ b/161297615)
  • ה-Modifier.drawBorder הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.border. מחלקת הנתונים של גבול הוחלפה ב-BorderStroke‏ (I4257d, ‏ b/158160576)
  • הרכיבים VerticalScroller ו-HorizontalScroller הוסרו. במקום זאת, צריך להשתמש ב-ScrollableColumn/Row. ה-Modifier.drawBackground הוסר. שימוש ב-Modifier.background‏ (I73b0d, ‏ b/163019183)
  • הסרת המשתנים fillMax* שסומנו כמיושנים מ-LazyItemScope, כי הם מקשים על הוספה נכונה של משתנים כאלה לפריטים שאינם צאצאים ישירים של LazyColumnFor‏ (Ifa78d)
  • הוספה של הטמעה של LazyColumn/LazyRow כ-DSL (I93cc6)
  • Constraints הוא עכשיו סוג בקוד (inline) (I88736)
  • הוספנו את היכולת לקבוע את הגודל של פריסה לפי חלק מהמרחב הזמין, באמצעות המשתנים fillMaxWidth, ‏ fillMaxHeight ו-fillMaxSize. (I945bb, ‏ b/161562591)

תיקוני באגים

  • נוספה פרמטר של שינוי ל-SelectionContainer‏ (I4aada, ‏ b/161487952)
  • נוספה פונקציית lambda של mergePolicy ל-SemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג של סמנטיקה של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך ההורה אם הוא כבר קיים, אחרת בערך הצאצא. (Iaf6c4, ‏ b/161979921)
  • השם של PlacementScope.placeAbsolute() שונה ל-PlacementScope.place(), והשם הקודם של PlacementScope.place() שונה ל-PlacementScope.placeRelative(). כתוצאה מכך, השיטה PlacementScope.place() לא תשקף יותר באופן אוטומטי את המיקום בהקשרים מימין לשמאל. אם רוצים לעשות זאת, צריך להשתמש במקום זאת ב-PlacementScope.placeRelative(). (I873ac, ‏ b/162916675)
  • הרכיב FilledTextField הוצא משימוש. במקום זאת, צריך להשתמש ב-TextField כדי לקבל את ההטמעה של שדה הטקסט המלא ב-Material Design. (I5e889)
  • הוספנו את הפרמטר backgroundColor ל-LinearProgressIndicator והסרנו את המילוי הפנימי מ-CircularProgressIndicator. נוספה פונקציית ProgressIndicatorConstants.DefaultProgressAnimationSpec חדשה שאפשר להשתמש בה כברירת המחדל של AnimationSpec כשמפעילים אנימציה של התקדמות בין ערכים (If38b5, ‏ b/161809914, ‏ b/161804677)
  • ה-composable של state { ... } הוצא משימוש, ועכשיו מומלץ להשתמש בקריאות מפורשות ל-remember { mutableStateOf(...) } כדי לשפר את הבהירות. כך מקטינים את שטח ה-API הכולל ואת מספר המושגים לניהול המצב, והשיטה תואמת לדפוס by mutableStateOf() להענקת גישה לנכסי הכיתה. (Ia5727)
  • שינינו את השם של RRect ל-RoundRect כדי להתאים יותר לדפוסי השמות של compose. יצרנו קונסטרוקטורים של פונקציות דומים ל-RRect, וביטולנו את השימוש בקונסטרוקטורים של פונקציות RRect (I5d325)
  • הוסר onChildPositioned ו-OnChildPositionedModifier. במקום זאת, המפתחים צריכים להשתמש ב-onPositioned וב-OnPositionedModifier בפריסה של הצאצא. (I4522e, ‏ b/162109766)
  • IntSize היא עכשיו כיתה מוטמעת (I2bf42)
  • לוחצים לחיצה ארוכה על האזור הריק כדי לערוך אותו. (Ib1e5b)
  • הסתרת סרגל הכלים הצף אחרי הקשה על הטקסט. (If4525)
  • הסתרת FloatingToolbar כשמעדכנים את הבחירה. (I8444c)
  • מבטלים את הבחירה באפשרות 'כשמתבצעת פעולת טשטוש'. (I781a2)

גרסה 0.1.0-dev16

5 באוגוסט 2020

התכונות androidx.compose.foundation:foundation:0.1.0-dev16, androidx.compose.foundation:foundation-layout:0.1.0-dev16 וגם androidx.compose.foundation:foundation-text:0.1.0-dev16 משוחררות. גרסה 0.1.0-dev16 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספה של LazyItemScope לפרמטר itemContent של רשימות Lazy. הוא מספק משתני אופן פעולה (modifiers) למלא את הגודל המקסימלי של ההורה, וכך פותר את התרחיש שבו הפריט צריך למלא את אזור התצוגה, והפונקציה הרגילה Modifier.fillMaxSize() לא פועלת כי המדידה של הפריט מתבצעת באמצעות אילוצים של אינסוף. (Ibd3b2, ‏ b/162248854)
  • העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
  • נוספו LazyColumnForIndexed/LazyRowForIndexed – גרסאות של LazyColumnFor/LazyRowFor שמספקות גם את האינדקס וגם את הפריט ב-itemCallback. האפשרות הזו שימושית כשצריך לדעת אינדקס נוכחי בנוסף לפריט נוכחי. (I65ff3)
  • השם של Modifier.deternimateProgress השתנה ל-Modifier.progressSemantics (I9c0b4)
  • השם של LazyColumnItems השתנה ל-LazyColumnFor. השם של LazyRowItems שונה ל-LazyRowFor‏ (I84f84)
  • מומלץ להוסיף כמה סימנים או הערות. (I66b20)
  • החבילה foundation.shape.corner עברה שטוח ל-foundation.share (I46491, ‏ b/161887429)
  • נוספו פרמטרים של כוח משיכה בציר ל-LazyRowItems/LazyColumnItems. עכשיו יש תמיכה בהתנהגות של תוכן כרוך ב-LazyRowItems/LazyColumnItems. (Ib39fc)
  • השם של ZoomableState השתנה ל-ZoomableController. נוספה תמיכה בעקומות בהתאמה אישית ל-smoothScale. נוספה פונקציונליות של enabled ו-onZoomStarted (If8b8f)
  • שינינו את השם של Material FilledTextField ל-TextField, ואת השם של TextField הבסיסי ל-BaseTextField, כדי שיהיה קל למצוא את ממשק ה-API הרצוי הפשוט ביותר ולהשתמש בו (Ia6242, b/155482676)
  • ה-AdapterList שהוצא משימוש הוסר. במקום זאת, צריך להשתמש ב-LazyColumnItems (I12b9b)
  • השם של Modifier.drawBackground השתנה ל-Modifier.background (I13677)
  • ה-DSL הישן של ConstraintLayout הוסר. השם של ConstraintSet2 השתנה ל-ConstraintSet. (If58d1, ‏ b/162450908)
  • נוספו Modifier.absoluteOffset() ו-Modifier.absoluteOffsetPx(). בניגוד למשתני שינוי של אופסט, משתני שינוי של אופסט מוחלט לא ישתקפו באופן אוטומטי בהקשר מימין לשמאל (I3aa21)
  • Row ו-Column הן עכשיו פונקציות שקופות, שמפחיתות באופן משמעותי את התקורה הכרוכה בשימוש בהן. (I75c10)

תיקוני באגים

  • תיקונים רחבים של ממשקי API (I077bc)
    1. הסרת הממשק OffsetBase שלא בשימוש
    2. התאמה של הכיתות Offset ו-IntOffset כדי ליצור ממשק API עקבי
    3. שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי להתאים ל-Offset API
    4. העברנו את השיטה nativeCanvas מממשק Canvas כדי לאפשר לצרכנים ליצור מכונות Canvas משלהם
    5. נוצרה קלאס טיוטה של EmptyCanvas כדי לשנות את ה-DrawScope למשתנה שאינו null במקום ל-lateinit, וכדי לוודא שהשדה לא יכול להיות null
    6. שינינו את השם של המשתנים המפורטים של ClipOp ל-Pascal Case
    7. שינוי השם של המאפיינים הקבועים של FilterQuality ל-Pascal Case
    8. שינינו את השם של המאפיינים המפורטים של StrokeJoin ל-Pascal Case
    9. שינוי השם של המאפיינים המפורטים של PointMode ל-Pascal Case
    10. שינוי השם של המאפיינים הקבועים מסוג PaintingStyle ל-Pascal Case
    11. שינוי השם של המאפיינים של PathFillType ל-Pascal Case
    12. שינוי השם של המאפיינים המפורטים של StrokeCap ל-Pascal Case
    13. עדכנו את ההטמעה של DrawCache כך שלא תשתמש יותר בפרמטרים של lateinit
    14. עדכנו את DrawScope כך שלא ישתמש יותר בהענקת גישה מושהה (lazy delegation) לפרממטרים הפנימיים של fillPaint ו-strokePaint
    15. עדכון של Image composable כדי להימנע משימוש ב-Box ולצמצם את התקורה
    16. עדכון של הכיתה Outline כך שתכלול את האנוטציות @Immutable
    17. עדכנו את PathNode כך שיכלול הערות מסוג @Immutable לכל הוראה בנתיב
    18. עדכון של רכיב המשנה של Vector כדי להסיר בדיקות מותנות מיותרות של שוויון, כי פונקציית ה-compose כבר מטפלת בהן
    19. שיטות ה-constructor של Rect שהוצאו משימוש לטובת פונקציות constructor
    20. עדכנו את הכיתות של המברשות ואת ה-constructors של הפונקציות באמצעות ממשקי API מסוג @Immutable ו-@Stable
    21. עדכנו את המאפיין המנוהל VertexMode ל-PascalCase
    22. שינוי השיטה selectPaint של DrawScope כדי לשנות באופן מותנה את הפרמטרים של הקו בצביעה אם הם השתנו
    23. עדכנו את Size כדי להוסיף API לניתוח מבנה, שיניתם את השם של UnspecifiedSize ל-Unspecified והסרתם שיטות שלא בשימוש
  • נוספה פונקציית MonotonicFrameAnimationClock שמאפשרת להשתמש ב-MonotonicFrameClock בתור AnimationClockObservable כדי לגשר על הפער בין השעונים החדשים שמבוססים על קורוטינים לבין ממשקי ה-API שעדיין משתמשים בשעונים הישנים שמבוססים על קריאה חוזרת (callback).

    המקבילה של MonotonicFrameClock ל-ManualAnimationClock היא עכשיו ManualFrameClock. (I111c7, ‏ b/161247083)

  • בוצעה הסרה של SemanticsNodeInteraction.performPartialGesture. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture. (Id9b62)

  • שינית את השם של SemanticsNodeInteraction.getBoundsInRoot() ל-SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, ‏ b/161336532)

  • ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוספה התכונה LayoutDirectionAmbient, שאפשר להשתמש בה כדי לקרוא ולשנות את כיוון הפריסה. האפשרויות Modifier.rtl ו-Modifier.ltr הוסרו. (I080b3)

  • ה-Modifier.plus הוצא משימוש. במקום זאת צריך להשתמש ב-Modifier.then. 'אחר כך' מבטא יותר בבירור את סדר הדברים, ומונע גם להקליד Modifier.padding().background() + anotherModifier, שגורם להפסקה בשרשרת וקשה יותר לקרוא אותו (Iedd58, ‏ b/161529964)

  • נוספו isFocused() ו-isNotFocused() SemanticsMatcher. (I0b760)

  • נוספה RemeasurementModifier. היא מאפשרת למשתמשים למדוד מחדש את הפריסה באופן סינכרוני. באופן כללי, אף פעם לא צריך להשתמש בו כי המדידה מחדש או עיצוב מחדש מתבצעים באופן אוטומטי, אבל אנחנו משתמשים בו ב-LazyColumnItems במהלך הגלילה. (I5f331, ‏ b/160791058)

  • הפונקציה isSystemInDarkTheme תמיד מביאה עכשיו בחשבון את ההגדרה של העיצוב הכהה ברמת המערכת, ומתעלם מהסטטוס של חיסכון באנרגיה לפני Q, בהתאם להנחיות העדכניות. (I0c10c)

  • האירוע OnChildPositioned הוצא משימוש. במקום זאת, צריך להשתמש ב-OnPositioned על הצאצא. (I87f95, ‏ b/162109766)

  • שינינו את השם של AndroidComposeTestRule ל-createAndroidComposeRule. (I70aaf)

  • הוספת פעולת נגישות כדי לקבל את TextLayoutResult (I9d6e6)

גרסה 0.1.0-dev15

22 ביולי 2020

התכונות androidx.compose.foundation:foundation:0.1.0-dev15, androidx.compose.foundation:foundation-layout:0.1.0-dev15 וגם androidx.compose.foundation:foundation-text:0.1.0-dev15 משוחררות. גרסה 0.1.0-dev15 מכילה את ההצהרות האלה על ביצוע שינויים.

כדי להשתמש בגרסה 0.1.0-dev15 של Compose, צריך:

עדכון יחסי התלות

  • כדי להשתמש בגרסה 0.1.0-dev15 של Compose, תצטרכו לעדכן את יחסי התלות בהתאם לקטעי הקוד החדשים שמוצגים למעלה בקטע הצהרת יחסי תלות.

שינויים ב-API

  • בדומה לפרמטר החדש ב-ScrollableColumn/ScrollableRow, ל-LazyColumnItems/LazyRowItems יש עכשיו גם את הפרמטר contentPadding שמאפשר להוסיף רווח לתוכן אחרי שהוא נחתך, דבר שלא ניתן לעשות רק באמצעות פרמטר שינוי. אפשר גם להוסיף רווח רק לפני הפריט הראשון או אחרי הפריט האחרון. (Ibc24e)
  • שם הפונקציה הלא סטטית onFocusChange בשדות טקסט שונה ל-onFocusChanged (Ida4a1)
  • ה-API‏ VerticalScroller ו-HorizontalScroller הוצאו משימוש. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליהנות מחוויית שימוש מובנית עם פרמטרים והתנהגות של עמודות/שורות, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב משלכם. באופן דומה, הוחלפה הפונקציה ScrollerPosition בפונקציה ScrollState' (I400ce, ‏ b/157225838, ‏ b/149460415, ‏ b/154105299)
  • ממשקי ה-API Modifier.draggable ו-Modifier.scrollable עברו עריכה מחדש. המאפיין DragDirection הוסר לטובת Orientation. הסטטוס הנדרש לגלילה פשוט יותר. השם של ScrollableState שונה ל-ScrollableController (Iab63c, ‏ b/149460415)
  • בנכסי סמנטיקה עם ערך יחיד נעשה עכשיו שימוש בסגנון קריאה. לדוגמה, 'semantics { hidden = true }' נכתב עכשיו כך: semantics { hidden() }. (Ic1afd, ‏ b/145951226, ‏ b/145955412)
  • עכשיו אפשר להגדיר לגודל הפינות של RoundedCornerShape ו-CutCornerShape ערך גדול מ-50% (Id2340, ‏ b/160400213)
  • שינינו את הפרמטר ברירת המחדל של ContentScale ל-Image composable מ-Inside ל-Fit. המטרה של השינוי הזה היא לגרום ל-Painter הבסיסי להגדיל את עצמו אם גודל הפריסה גדול מהגודל הפנימי של ה-Painter, תוך שמירה על יחס הגובה-רוחב. ההתנהגות הזו תואמת יותר לציפיות של מתן גדלים קבועים ל-Image, בלי להשפיע על התנהגות ברירת המחדל אם נעשה שימוש רק בגודל הפנימי לחישוב הגודל של ה-Composable. (I40ae3, ‏ b/159838006)
  • שימוש ב-AnimationSpec במקום ב-AnimationBuilder ב-API ברמה העליונה כדי להבהיר את המושג של מפרט אנימציה סטטי. שיפור של transition DSL על ידי הסרת הדרישה ל-lambda ליצירת AnimationSpecs כמו tween, ‏ spring. במקום זאת, הם מקבלים את הפרמטרים של ה-constructor ישירות. -שיפור נוחות השימוש הכוללת של AnimationSpec, ופתיחת המשתנים של ה-constructor במקום להסתמך על ה-builders. -שינוי משך הזמן וההשהיה של KeyFrames ו-Tween ל-Int. כך תוכלו להימנע מטרנספורמציות מיותרות של סוגים ומעומסי יתר של שיטות (כדי לתמוך גם ב-Long וגם ב-Int). (Ica0b4)
  • האפשרות לקליק הוסר. שימוש ב-Modifier.clickable‏ (I84bdf)
  • נוספו LazyRowItems – רכיבים מקבילים ל-LazyColumnItems עם גלילה אופקית (Ibbcf7)
  • השקנו ממשקי API ללא מצב (stateless) ליצירת אנימציות ברמה נמוכה. ממשקי ה-API האלה (I63bf7)
  • ה-API‏ androidx.ui.foundation.TextFieldValue ו-androidx.ui.input.EditorValue הוצאו משימוש. גם הרכיבים הניתנים לקישור מסוג TextField‏, FilledTextField ו-CoreTextField שמשתמשים בסוג הזה הוצאו משימוש. במקום זאת, צריך להשתמש ב-androidx.ui.input.TextFieldValue (I4066d,‏ b/155211005)
  • החלפת השימוש ב-IntPx ב-Int. החלפת IntPxPosition ב-IntOffset. הוחלף IntPxSize ב-IntSize. (Ib7b44)
  • ה-androidx.ui.foundation.shape.RectangleShape הוסר. צריך להשתמש ב-androidx.ui.graphics.RectangleShape (I94939, b/154507984)
  • כדי לצמצם את מספר הכיתות שבהן נעשה שימוש לייצוג נתוני גודל, כדאי להשתמש בכיתה Size במקום בכיתה PxSize. כך אפשר ליהנות מהיתרונות של שימוש ב-inline class כדי לארוז 2 ערכים מסוג float שמייצגים את הרוחב והגובה כערכים מסוג float. (Ic0191)
  • כדי לצמצם את מספר הכיתות שבהן נעשה שימוש כדי לייצג את פרטי המיקום, מומלץ להשתמש בכיתה Offset במקום בכיתה PxPosition. כך אפשר ליהנות מהיתרונות של שימוש בכיתה מוטמעת כדי לארוז 2 ערכים מסוג float, שמייצגים את הזזות ה-x וה-y, כערכים מסוג float. (I3ad98)
  • הוספנו את Modifier.zoomable לצורך פונקציונליות של צביטה להגדלת התצוגה (Id5d63)
  • הרכיב שניתן להפעלה/השבתה הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.toggleable (I35220,‏ b/157642842)
  • MutuallyExclusiveSetItem הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.selectable. (I02b47, ‏ b/157642842)
  • הוצאנו משימוש את TestTag. במקום זאת, צריך להשתמש ב-Modifier.testTag. (If5110, ‏ b/157173105)
  • הוספת הפרמטר fontWeight לטקסט, שלא נוסף בטעות בעבר (I56937)
  • החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים לפרמטר של פיקסלים (I19d02)
  • VerticalScroller מספק עכשיו את האפשרות 'עמודה' מתוך האריזה. הרכיב HorizontalScroller מספק עכשיו את Row כברירת מחדל. (Ieca5d, ‏ b/157020670)
  • החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטר של פיקסלים (Iede0b)
  • השדה Modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג אינדיקציה של לחיצה/גרירה/פעולה אחרת על רכיבים מותאמים אישית שאפשר לקיים איתם אינטראקציה (I8425f, ‏ b/155287131)
  • VerticalScroller ו-HorizontalScroller תומכים עכשיו בגלילה הפוכה אם הערך isReversed מוגדר ב-ScrollerPosition (I953bd)
  • תמיכה בהוספת רכיבים מורכבים לפריסת טקסט. (I1373c)
  • איחוד הטמעות של CanvasScope, כך שיש עכשיו רק DrawScope ו-ContentDrawScope.‏ CanvasScope עבר שם חדש: DrawScope. עדכנו את DrawScope כך שיטמיע את ממשק Density ויספק את LayoutDirection. מחקו את תת-הסוג של DrawScope ב-ContentDrawScope. עדכנו את Painter ו-PainterModifier כך שלא יכללו יותר מאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)
  • הוסרה גרסת ה-API הקודמת של DrawBackground, והוחלפו בה ממשקי ה-API של התוסף drawBackground ב-Modifier. שיפרנו את ההטמעות של drawBackground של צבע, מברשת וצבע כדי לצמצם את נתיבי הקוד, וגם כדי להסיר את הדרישה ליצירת Modifier כחלק מההרכב. (I0343a)
  • עדכנו את ממשקי ה-API ברמה גבוהה יותר שמציגים את Canvas, כך שהם מציגים במקום זאת את CanvasScope. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם ב-Paint. לצרכנים שעדיין זקוקים לגישה ל-Canvas, אפשר להשתמש בשיטת התוסף drawCanvas, שמספקת קריאה חוזרת (callback) להנפקת פקודות ציור ב-Canvas הבסיסי. (I80afd)
  • רכיבי HorizontalScroller ו-VerticalScroller לא משחזרים את מיקום הגלילה שלהם באמצעות מצב המכונה השמור. (Ia0fae, ‏ b/155075048)
  • FocusManagerAmbient הוסר. משתמשים ב-FocusModifier.requestFocus כדי לקבל את המיקוד. (Ic4826)
  • פריסת הטבלה הוסרה באופן זמני עד שנציג אותה שוב עם ממשק API מעודכן. (Id88a7)
  • יצירה של CanvasScope API שמקיף אובייקט Canvas כדי לחשוף ממשק API לציור בלי מצב (declarative) ועם סטטוס. הטרנספורמציות נכללות בהיקף של המקלט שלהן, ומידע על הגודל נכלל גם בהיקף של גבולות ההוספה המתאימים. הוא לא מחייב את הצרכן לנהל אובייקט מצב משלו של Paint כדי להגדיר פעולות ציור.

    נוספה הדוגמה CanvasScopeSample, וגם עודכנה אפליקציית ההדגמה כך שתכלול הדגמה של גרפיקה מוצהרנית (Ifd86d)

  • ה-ColoredRect הוסר. User Box עם המשתנה drawBackground במקום זאת (I983c7, ‏ b/152753731)

  • הוספת התאמה אישית של צבע הסמן ל-TextField (I6e33f)

  • עכשיו אפשר להסתיר או להציג את המקלדת הווירטואלית באמצעות SoftwareKeyboardController, שמסופק על ידי הפונקציה החוזרת onTextInputStarted (I8dc44,‏ b/151860051)

  • עכשיו אפשר להשתמש ב-TextFieldValue עם TextField כך שיישמר לאחר יצירת מחדש של פעילות: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • הוספת פרמטרים נפוצים ל-Text(). אם אתם יוצרים כרגע סגנון טקסט מקומי כדי להעביר מספר קטן של הפרמטרים האלה, כמו Text(style = TextStyle(textAlign = TextAlign.Center)), עכשיו אתם יכולים פשוט לספק את הפרמטרים ישירות: Text(textAlign = TextAlign.Center) (I82768)

  • הפרמטר focusIdentifier של CoreTextField/TextField הוחלף ב-FocusNode כדי לשלב עם מערכת המשנה של המיקוד. (I7ea48)

  • עדכון של TextField – במאפיין הרוחב, הוא יאכלס את כל המרחב הזמין שהוקצה לו (Ib08df,‏ b/154638552)

  • הוספנו את InteractionState ואת Interaction, כדי שיהיה קל יותר ליצור רכיבים שתגובתם משתנה בהתאם לשינויים במצב של ממשק המשתמש, כמו לחיצה וגרירה (Icfe25, ‏ b/152525426)

  • RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)

  • החלפת כל השימושים ב-Color ב-API עם nullable ב-non-nullable, והשימוש ב-Color.Unset במקום null (Iabaa7)

  • עדכון API של TextField – מיזוג של פונקציות ה-onFocus ו-onBlur לפונקציית onFocusChange(Boolean) יחידה עם פרמטר (I66cd3)

  • שינינו את השם של ScaleFit ל-ContentScale. עברנו את ContentScale מהמודול ui-graphics למודול ui-core כדי שהוא יהיה באותו מודול כמו Alignment API. שינינו את השם של FillMaxDimension ל-Crop, שינינו את השם של FillMinDimension ל-Fit, שינינו את השם של Fit ל-Inside כדי להתאים טוב יותר למקבילים של ImageView.ScaleType, והוספנו מסמך שמציין שהשילוב של Crop ו-Alignment.Center מניב את אותה תוצאה כמו ImageView.ScaleType.CENTER_CROP, ושהשימוש ב-Fit עם Alignment.Center מניב את אותה תוצאה כמו ImageView.ScaleType.FIT_CENTER, ושהשימוש ב-Inside עם Alignment.Center מניב את אותה תוצאה כמו ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)

  • הוסרה של ProvideContentColor. במקום זאת, צריך להשתמש ב-ContentColorAmbient ישירות עם Providers (Iee942)

  • הוספת פרמטר צבע לטקסט, שמאפשר לשנות את הצבע של סגנון הטקסט בלי צורך למזג אותו באופן ידני עם הסגנון שסופק בעיצוב. (I41a66)

  • שיפור DrawModifier API:

    • שינוי ההיקף של המקבל של draw() ל-ContentDrawScope
    • הסרת כל הפרמטרים ב-draw()
    • לממשק של DrawScope יש את אותן תכונות כמו לממשק הקודם של CanvasScope
    • ל-ContentDrawScope יש את השיטה drawContent()‎ (Ibaced, ‏ b/152919067)
  • ה-ColoredRect הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-Box(Modifier.preferredSize(width, height).drawBackground(color)). (I499fa, ‏ b/152753731)

  • מערכת הנושאים של Shape מתעדכנת בהתאם למפרט של העיצוב החדשני. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות לשימוש ברוב הרכיבים (Ifb4d1)

  • החלפת האופרטור 'פלוס' של המשתנה המשנה בפונקציות הרחבה של היצרן (I225e4)

  • האפשרות 'ניתן לגרירה' הועברה למאפיין שינוי (Id9b16, ‏ b/151959544)

  • הועבר Text לחבילה androidx.ui.foundation, מ-androidx.ui.core. (I87ce5)

  • הוספת הפרמטר enabled לתיבת סימון, למתג ולמתג הפעלה/השבתה (I41c16)

  • 'אדווה' הוא עכשיו 'מפעיל'. בזמן ש-Clickable עדיין לא הומר, השימוש המומלץ הוא Clickable(onClick = { ... }, modifier = ripple()) (Ie5200,‏ b/151331852,‏ b/150060763)

  • הוספנו את VectorPainter API כדי להחליף את ממשק ה-API הקיים של רכיבי משנה לגרפיקה וקטורית. התוצאה של הרכבת המשנה היא אובייקט VectorPainter במקום DrawModifier. הוצאנו משימוש את הרכיבים הקודמים של DrawVector לטובת VectorPainter.

    שינוי השם של Image(Painter) API ל-PaintBox(Painter) יצירת רכיב מורכב מסוג Vector שמתנהג כמו רכיב מורכב מסוג Image, אלא עם VectorAsset במקום ImageAsset (I9af9a, b/149030271)

  • רכיב מורכב של תמונה שנוצר כדי לטפל בגודל או בפריסה, בנוסף לציור של נכס תמונה נתון במסך. הרכיב הניתן ליצירה מחדש תומך גם באיור של כל מופע שרירותי של Painter בהתאם לגודל המובנה שלו, וגם בגודל קבוע או גודל מינימלי נתון (Ibcc8f)

  • ל-Button, ל-FloatingActionButton ול-Clickable יש עכשיו פרמטר enabled נפרד. השמות של חלק מהפרמטרים ב-Button השתנו או שהם שונו בסדר. (I54b5a)

  • שינינו את השם של Image ל-ImageAsset כדי להבדיל טוב יותר בין נתוני Image לבין Image composable שיוצג בקרוב, וישמש לצורך פריסה וציור תוכן.

    יצרתם שיטה מורחבת ב-android.graphics.Bitmap‏, Bitmap.asImageAsset(), כדי ליצור מופע של ImageAsset ששימושי לשילוב של פיתוח אפליקציות Android מסורתי עם מסגרת Compose. (Id5bbd)

  • ה-composable DrawImage הוסר. משתמשים ב-ImagePainter כדי לצייר תמונה בפריסת קיימת, או ב-SimpleImage כדי להציג תמונה שמשתמשת במרחב (I595e1, ‏ b/149827027)

  • רכיב הערימה תומך בכיוון מימין לשמאל (Ic9e00)

  • נוספו Icon, ‏ IconButton ו-IconToggleButton, והוסרו AppBarIcon. אפשר להחליף ישירות את השימושים הקיימים של AppBarIcon ב-IconButton, ועכשיו יהיה להם יעד המגע הנכון. במאמרים לדוגמה מפורט מידע על השימוש בסמלים, ובקטע 'סמלים' מפורט מידע על סמלי Material Icons שאפשר להשתמש בהם ישירות עם הרכיבים האלה. (I96849)

  • הרכיב הניתן לקישור DrawShape הוסר. במקום זאת, צריך להשתמש במשתנה DrawBackground. (I7ceb2)

  • נוספה AdapterList, רכיב של רשימה עם גלילה שמרכיב ומציג רק את הפריטים הגלויים. בין הבעיות הידועות כרגע: האפשרות הזו זמינה רק לקטגוריות ספציפיות, והיא לא מטפלת באופן מלא בכל המקרים של שינויים בקטגוריות הילדים. (Ib351b)

  • נוספו רכיבים שניתן לגלול בהם, שמאפשרים ליצור גלילות או רשימות בהתאמה אישית (I5fd37)

  • שינית את שם הרקע ל-DrawBackground והגדרת אותו לזכירה כברירת מחדל (Ia0bd3)

  • הוספת פרמטרים של שוליים, גבול, צורה ורקע לתיבת Box (I05027, ‏ b/148147281)

  • הוסף רכיב Canvas. הרכיב הניתן לקיבוץ הזה תופס מקום מסוים (המשתמשים מציינים את הגודל) ומאפשר לצייר באמצעות CanvasScope‏ (I0d622)

  • שינוי השם של המשתנה Border למשתנה DrawBorder (I8ffcc)

  • נוספו רכיבי Box שאפשר לשלב בהם את הפונקציונליות המשותפת של פריסה וציור. (I6e2a7)

  • גלילות מוצגות עכשיו עם התנהגות תנועה מקורית של Android. (I922af, ‏ b/147493715)

  • החלפת DrawBorder ב-Border Modifier (Id335a)

  • השם של Modifier.tag השתנה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)

  • השם של הפרמטר percent כשיוצרים הנחיות ל-ConstraintLayout השתנה ל-fraction. (Ida2db)

  • נוספה תמיכה בשוליים של מחסומי ConstraintLayout. (I47ffe)

  • תוקנה התמיכה ב-RTL ב-ConstraintLayout. נוספו ממשקי API שלא תומכים ב-RTL. (I3b1c7)

  • נוספה שפת DSL חדשה ל-ConstraintLayout. פרטים נוספים זמינים בדוגמאות. (Icaa9a)

  • נוספה ההערה ‎ @ExperimentalLayout. ConstraintLayout, ‏ FlowRow ו-FlowColumn מתויגים עכשיו בתווית הזו כדי לסמן שממשקי ה-API שלהם עומדים להשתנות. (I412a8)

  • Modifier.padding(InnerPadding) נוסף (I94985, ‏ b/157133803)

  • הוסר השימוש ב-RowAlign וב-ColumnAlign בשורות ובעמודות. (If60d4, ‏ b/155858731)

  • הוצאנו משימוש את LayoutTag(), צריך להשתמש ב-Modifier.tag() במקום זאת. הוצאנו את Modifier.matchParent()‎ שהוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.matchParentSize()‎. (If8044)

  • הוספנו את המשתנה layout offsetPx, שאפשר להשתמש בו כדי להגדיר סטיות (דינמיות) ב-px. (I5af57)

  • ה-composable AlignmentLineOffset הוצא משימוש. במקום זאת, צריך להשתמש במטא-פרמטר relativePaddingFrom(). הרכיב CenterAlignmentLine הוסרה. (I60107)

  • נוספה פונקציית עיצוב defaultMinSizeConstraints שמגדירה אילוצים של גודל לעיצוב המגובל רק כשהאילוצים התואמים הנכנסים לא צוינו (0 לאילוצים מינימלייים ואין סוף לאילוצים מקסימליים). (I311ea, ‏ b/150460257)

  • הקונטיינר הוסר. במקום זאת, משתמשים ב-Box (Ibbc2b,‏ b/151407926)

  • הוסר המשתנה LayoutWidth/Height/Size שהוצא משימוש. (Ib0bc1)

  • נוספו ערכי ברירת מחדל לפרמטר של המנגנון לשינוי המיקום. (I37f06)

  • נוסף משתנה של ריבועיות סימטרית. (I39840)

  • הוסר המשתנה LayoutAspectRatio שהוצא משימוש. (I65a74)

  • הוסרו המשתנים LayoutAlign שהוצאו משימוש. (I10877)

  • תוקן באג במשתני הרוחב והגובה שגרם למדידה של הפריסה המכוונת ללא אילוצים על ציר הפוך. (I210b8, ‏ b/154797971)

  • נוספו הפרמטרים verticalGravity ו-horizontalGravity ל-Row ול-Column, בהתאמה. (I7dc5a)

  • עודכנו wrapContentWidth ו-wrapContentHeight כך שיצפו ליישור אנכי או אופקי במקום לכל יישור. המשתנה של כוח המשיכה עודכן כך שיאפשר שימוש באישור אנכי או אופקי. התכונות Row (שורה), Column (עמודה) ו-Stack (ערימה) עודכנו כדי לתמוך בהתאמות אישיות רצפות. (Ib0728)

  • אפשר ליצור את Alignment באופן מיידי עם ערכים שרירותיים. נוספו התאמות חד-ממדיות. (Ia0c05)

  • השם של EdgeInsets השתנה ל-InnerPadding. שינוי השם של הפרמטר innerPadding של לחצני Material ל-padding. (I66165)

  • עכשיו אפשר להשתמש ב-alignToSiblings עם Measured במקום עם Placeable. (I5788d)

  • הוספנו משתני שינוי לצורך התאמה למדידות מובנות, והוצאנו משימוש את הרכיבים שמיועדים למטרה הזו. (I8295d)

  • נוספה תמיכה בהתאמה אישית של המאפיינים של צאצאים של ConstraintLayout‏ (Idb1a5)

  • הוסרו הרכיבים הקודמים של Wrap ו-Center. (I29e23)

  • נוספה LayoutModifier2, ממשק API חדש להגדרת מודפי פריסה. הוצא משימוש LayoutModifier‏ (If32ac)

  • עכשיו אפשר לגשת לחברים של RowScope ו-ColumnScope מחוץ ל-Row ול-Column. (I3a641)

  • הקונטיינר יצא משימוש. במקום זאת, משתמשים ב-Box. (I675ce, ‏ b/151407926)

  • נוספה המשתנה LayoutOffset להזזה של מיקום הפריסה (I0b8a3)

  • תמיכה ראשונית ב-RTL בפריסת כתיבת ההודעה (Ia5519)

  • עדכנו את LayoutAlign כך שלא ימלא יותר את כל המרחב הזמין (I2b14f)

  • הוסר הרכיב הניתן לקישור של AspectRatio לטובת שינוי. נמחקו הרכיבים הלא רלוונטיים FlexColumn, ‏ FlexRow ו-Spacing modifier (Iec8a7)

  • הוסר המשתנה LayoutInflexible עבור Row ו-Column (I0d820)

  • הטמעת רכיבי Drag Selection Handles כדי לשנות את הבחירה של TextField. (I27032)

  • הטמעת LongPressAndDrag לבחירה של TextField. (I17919)

תיקוני באגים

  • FocusModifier הוצא משימוש והוחלף על ידי Modifier.focus,‏ Modifier.focusRequester ו-Modifier.focusObserver. הפונקציות FocusState ו-FocusDetailedState הוצאו משימוש לטובת FocusState2 (I46919, ‏ b/160822875, ‏ b/160922136)
  • השם של runOnIdleCompose השתנה ל-runOnIdle (I83607)
  • השמות של כמה ממשקי API לבדיקות השתנו כדי להפוך אותם לאינטואיטיביים יותר. השם של כל ממשקי ה-API מסוג findXYZ השתנה ל-onNodeXYZ. השם של כל ממשקי ה-API מסוג doXYZ השתנה ל-performXYZ. (I7f164)
  • הסרה של Modifier.ripple שהוצא משימוש. ב-Clickable נעשה עכשיו שימוש בתנודות כסימן ברירת המחדל (אם הגדרתם את MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש ב-Clickable ולקבל את התנודות בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של הרטט, אתם יכולים ליצור באופן ידני את RippleIndication ולהעביר אותו ל-clickable כפרמטר ההנחיה. (I663b2, ‏ b/155375067)
  • הוסרו ממשקי API מיושנים לבדיקת גודל. (Iba0a0)
  • הפכנו את LayoutNode ל-API ניסיוני (I4f2e9)
  • גרסה 1 של נעילת כיוון הגלילה מוטמעת בכל Compose. (I1ce7a, ‏ b/150289741)
  • חלונות קופצים, תיבות דו-שיח ומנות יורשים עכשיו את MaterialTheme לפי הקשר (Ia3665, b/156527485)
  • הוסר הפרמטר 'כיוון הפריסה' מבלוק המדידה של פונקציית Layout(). עם זאת, כיוון הפריסה זמין בתוך פונקציית הקריאה החוזרת (callback) דרך האובייקט של היקף המדידה (Ic7d9d).
  • הוספת AbsoluteArrangement – מאפשרת לסדר את הצאצאים בתוך השורה בלי שיקרה שיקוף אוטומטי ב-RTL (I3a1df)
  • ההערה ‎@Untracked הוצאה משימוש. החלפה ב-@ComposableContract(tracked=false)‏ (Id211e)
  • לפני השינוי הזה, פלאגין המהדר של Compose היה מיירט קריאות ל-constructors בתוך פונקציה מסוג @Composable באופן לא פשוט, אם הייתה (I5205a, b/158123804)
  • הוספת רכיב viewModel() composable שמאפשר ליצור ViewModel או לקבל ViewModel שכבר נוצר, בדומה לאופן שבו הוא פועל ב-Activity או ב-Fragment (I5fdd1)
  • שינוי מבנה של הכיתה Radius לכיתה בקוד. הוסרו שיטות יצירת שותפים לטובת מגדיר פונקציה עם פרמטר ברירת מחדל, כדי שהרדיוס בציר y יתאים לפרמטר הרדיוס החובה בציר x.

    עדכנו את DrawScope.drawRoundRect כך שישתמש בפרמטר Radius יחיד במקום בשני ערכים נפרדים מסוג float לרדיוס בציר x ובציר y (I46d1b)

  • החלפת השימוש במחלקת Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים עבור פרמטרים של פיקסלים. מחקת את הכיתה Px במלואה (I3ff33)

  • החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים עבור פרמטרים של פיקסלים (I086f4)

  • החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש (refactoring) כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטרים של פיקסלים (Id3434)

  • החלפת השימוש במחלקת Px במחלקות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש (refactoring) כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטר של פיקסלים (I97a5a)

  • לסמן של TextField יש אנימציה מהבהבת (Id10a7)

  • לא צריך יותר להעביר GestureToken (Id7ae5) כדי לבצע תנועות חלקיות.

  • החלפת השימוש במחלקת Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש (refactoring) כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטרים של פיקסלים (I57bff)

  • הוסרה ההודעה על ההוצאה משימוש של Modifier.semantics כדי לאפשר שימוש ברכיבים ברמה גבוהה. (I4cfdc)

  • משנים את השם של AnnotatedString.Builder.addAnnotationString ל-addStringAnnotation. (I5059e)

  • עדכנו את Alignment API והוסיפה תמיכה ביישור מוחלט (שלא מבצע שיקוף אוטומטי בהקשר RTL) (I38cd3)

  • אפשר למדוד צאצאים של Layout ו-LayoutModifier עם כיוון פריסה שונה. (Ibd731)

  • הוספת פרמטר אופציונלי נוסף מסוג rect ל-ImagePainter כדי לתמוך באיור של קטעים משנה של ImageAsset הבסיסי (I0ea9e)

  • תוקנה קריסה ב-AdapterList בזמן הסרת פריטים (Ic64b0, ‏ b/153195921)

  • שינינו את האופן שבו אנחנו מודדים את הפריסה הראשונה שמוסיפים לתוך הבלוק activity.setContent { }. בעבר היא הייתה צריכה למלא את כל מסך הפעילות, ועכשיו היא פועלת כאילו שמכניסים את הפריסה ל-Stack: היא יכולה להיות קטנה יותר ממסך ותוצג בפינה הימנית העליונה של המסך. אם רוצים את ההתנהגות הישנה, אפשר להחיל את Modifier.fillMaxSize() על הפריסה. (Ie88a7, ‏ b/153453714)

  • שם המודול ui-text-compose השתנה ל-ui-text. המודול ui-text מכיל עכשיו רכיבים של CoreText ו-CoreTextField (Ib7d47)

  • שם המודול ui-text השתנה ל-ui-text-core (I57dec)

  • הרכיבים הניתנים לקישור של ui-framework/CoreText ו-CoreTextField הועברו אל ui-text-compose. כדאי לכלול את ui-text-compose בפרויקט. (I32042)

  • runOnIdleCompose ו-runOnUiThread הן עכשיו פונקציות גלובליות במקום שיטות ב-ComposeTestRule. (Icbe8f)

  • אופרטורים של הענקת גישה למאפייני מצב [לשינוי]הועברו לתוספים כדי לתמוך באופטימיזציות של הענקת גישה למאפיינים ב-Kotlin 1.4. כדי להמשיך להשתמש ב-by state { ... } או ב-by mutableStateOf(...), מבצעי הקריאה החוזרת צריכים להוסיף ייבוא. (I5312c)

  • עכשיו, הערכים שמוגדרים כברירת מחדל לפונקציות DrawLayerModifier ו-drawLayer() הם false עבור clipToBounds ו-clipToOutline. (I0eb8b, ‏ b/152810850)

  • השם של LayoutResult שונה ל-MeasureResult. (Id8c68)

  • רכיב 'מרכז' שהוצא משימוש. צריך להחליף אותו במשתנה LayoutSize.Fill + LayoutAlign.Center או באחד מהרכיבים הקומפוזיציוניים Box או Stack עם משתנים מתאימים (Idf5e0)

  • השם של LayoutFlexible שונה ל-LayoutWeight. שינוי השם של הפרמטר tight ל-fill. (If4738)

  • הפונקציה DrawVector שונתה מפונקציה רגילה שאפשר לשלב, לפונקציה שמחזירה את ה-Modifier drawVector()‏, שידפיס את הווקטור כרקע של פריסה. (I7b8e0)

  • מחליפים את הפונקציה הניתנת לקיבוץ Clip במשתנה drawClip(). ‏ DrawClipToBounds הוא משתנה נוח לשימוש כשצריך רק לחתוך את השכבה לגבולות שלה בצורת מלבן. (If28eb)

  • הפונקציה הניתנת לקיבוץ DrawShadow הוחלפה במנגנון drawShadow().‎ עכשיו הצללים נוצרים כחלק מ-LayerModifier. (I0317a)

  • androidx.compose.ViewComposer הועבר ל-androidx.ui.node.UiComposer androidx.compose.Emittable הוסר. הוא היה יתיר ביחס ל-ComponentNode.‏ androidx.compose.ViewAdapters הוסר. הם כבר לא נתמכים בתרחיש לדוגמה. האפשרות Compose.composeInto הוצאה משימוש. במקום זאת, צריך להשתמש ב-setContent או ב-setViewContent. השיטה Compose.disposeComposition הוצאה משימוש. במקום זאת, צריך להשתמש בשיטה dispose ב-Composition שמוחזר על ידי setContent. androidx.compose.Compose.subcomposeInto הועבר אל androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt עבר לשם ComponentNode#insertAt ComponentNode#emitRemoveAt עבר לשם ComponentNode#removeAt ComponentNode#emitMode עבר לשם ComponentNode#move (Idef00)

  • רכיב Wrap שהוצא משימוש. אפשר להחליף אותו במשתנה LayoutAlign או ב-composable של Stack‏ (Ib237f)

  • שינינו את כיוון הפריסה כך שיופץ מצומת הפריסה של ההורה לצאצאים. הוספנו שינוי לכיוון הפריסה. (I3d955)

  • צריך לשנות את השם של Painter.toModifier ל-Painter.asModifier, כי ל-Modifier החדש שנוצר יש הפניה ל-Painter המקורי שאפשר לשתף בין כמה מכונות של Modifier (I7195b)

  • תמיכה בכיוון מימין לשמאל במשתנה LayoutPadding (I9e8da)

  • Density ו-DensityScope מוזגו לממשק אחד. במקום ambientDensity() אפשר להשתמש עכשיו ב-DensityAmbient.current. במקום withDensity(density), פשוט with(density) (I11cb1)

  • הכיתה ValueHolder הוסרה. שינוי המבנה של הכיתות AnimatedValue ו-AnimatedFloat כדי להפוך את השדה של ערך האנימציה למופשט, כך שסיווגים משנה יוכלו לעקוב אחרי עדכון הערך.

    • נוספו סוגים של מודלים ל-AnimatedValue,‏ AnimatedFloat וכו'.
    • הוספנו קבוצה חדשה של ממשקי API קלים ל-@Composable ליצירת אנימציה בין ערכים.
    • (I79530)
  • שינויים משמעותיים ב-ambients API. פרטים נוספים זמינים ביומן ובמסמכי התיעוד של Ambient<T> (I4c7ee, ‏ b/143769776)

  • מיקומי Int של קוי היישור שמוחזרים מ-Placeable#get(AlignmentLine) הם עכשיו לא null. אם קו היישור שאליו בוצעה השאילתה חסר, תוחזר הערך AlignmentLine.Unspecified. (I896c5, ‏ b/158134875)

  • תוקן באג ב-ConstraintLayout שגרם לקריסה במהלך יצירת קומפוזיציות מחדש. (Ibee5a, ‏ b/158164341)

  • ה-API של lambda עם הערך trailing של WithConstraints השתנה. עכשיו, במקום שני פרמטרים, יש לו היקף מקלט, שבנוסף למגבלות ול-layoutDirection מספק את המאפיינים minWidth,‏ maxWidth,‏ minHeight ו-maxHeight ב-Dp (I91b9a,‏ b/149979702)

  • השם של LayoutModifier2 השתנה ל-LayoutModifier. (Id29f3)

  • לפונקציות של מדידות מובנות ב-Layout וב-LayoutModifier2 יש עכשיו מקלט IntrinsicMeasureScope שמספק ל-API של שאילתות מובנות כיוון פריסה שמופץ באופן משתמע. (Id9945)

  • האפשרות LayoutDirectionAmbient הוצאה משימוש. כדי לקרוא את כיוון הפריסה שמוגדר לפי הלוקאל, משתמשים ב-localeLayoutDirection ב-ConfigurationAmbient‏ (I851b1)

  • נוספו positionInParent ו-boundsInParent ל-LayoutCoordinates. (Icacdd, ‏ b/152735784)

  • הרכיב הניתן לקישור של ParentData הוצא משימוש. אם אתם צריכים רק לתייג צאצאים של פריסה כדי לזהות אותם בתוך בלוק המדידה, עליכם ליצור משתנה שמטמיע את הממשק ParentDataModifier או להשתמש במשתנה LayoutTag. (I51368, ‏ b/150953183)

  • מוסיפים את OnPositionedModifier ואת OnChildPositionedModifier כדי להחליף את הפונקציות הניתנות ל-compose OnPositioned ו-OnChildPositioned. (I2ec8f)

  • איסור על מרווחים שליליים ב-LayoutPadding. במקום זאת, צריך להשתמש ב-LayoutOffset עבור סטיות שליליות במיקום. (Ifb5b1)

  • ל-WithConstraints הוענק הפרמטר LayoutDirection‏ (I6d6f7)

  • עדכנו את הדגל ComposeFlags.COMPOSER_PARAM ל-true, שיגרום לשינוי בשיטת יצירת הקוד של הפלאגין compose. ברמה גבוהה, הפעולה הזו גורמת ליצירת פונקציות @Composable עם פרמטר סינתטי נוסף, שמוענק לקריאות הבאות של @Composable כדי שסביבת זמן הריצה תוכל לנהל את הביצועים בצורה תקינה. זהו שינוי בינארי משמעותי שעלול לשבור את התאימות, אבל הוא אמור לשמור על תאימות ברמת המקור בכל שימוש מורשה ב-compose. (I7971c)

  • שינינו את LayoutCoordinates כך ש-providedAlignmentLines תהיה קבוצה במקום מפה, והוספנו ל-LayoutCoordinates את האופרטור get()‎ כדי לאחזר ערך. כך קל יותר למשתני המשנה לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משתנה. (I0245a)

  • לאובייקט LayoutCoordinates כבר אין מאפיין position. המאפיין position לא רלוונטי כשמשתמשים ב-LayoutModifiers, בכיוון או בשינוי קנה המידה. במקום זאת, המפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מ-LayoutCoordinate אחד למשנהו.

    ב-LayoutCoordinates נעשה שימוש ב-IntPxSize למאפיין הגודל במקום ב-PxSize. בפריסות נעשה שימוש בגדלים שלמים של פיקסלים, לכן כל גדלי הפריסות צריכים לכלול מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)

  • שיפורים בממשק ה-API של Constraints (I0fd15)

  • נוספה TextDirection.Content‏ (I48f36)

  • שינוי התפריט של סרגל הכלים כך שיוצגו בו האפשרויות 'העתקה', 'חיתוך' ו'הדבקה' בצורה תקינה. (Id3955)

  • הוספת FloatingToolbar לבחירת TextField. (Ie8b07)

  • השם של TextDirectionAlgorithm השתנה ל-TextDirection (I75ce8)

  • השם של TextDirection השתנה ל-ResolvedTextDirection‏ (I3ff38)

  • מוסיפים את HapticFeedback לבחירה של TextField. (I58050)

  • הוספת שיטות להעתקה, לגזירה ולהדבקה לבחירת TextField. (Idb70b)

  • TestTag ו-Semantics נמחקו. במקום זאת, צריך להשתמש ב-Modifier.testTag וב-Modifier.semantics (I15ff0,‏ b/158841414)

  • שינינו את שם החבילה של Locale ו-LocaleList מ-androidx.ui.text ל-androidx.ui.intl (I8132c)

  • שינוי ב-API: השם של AnnotatedString(builder: Builder) השתנה ל-annotatedString(builder: Builder). (Ia6377)

  • שינוי ב-API: השם של AnnotatedString.Item השתנה ל-AnnotatedString.Range. (I2d44d)

  • הוספת סרגל כלים לפעולות שקשורות לטקסט. (I49d53)

  • האפשרות החדשה LifecycleOwnerAmbient זמינה עכשיו. עכשיו, פעילות שבה אתם משתמשים עם Compose UI צריכה להרחיב את androidx.activity.ComponentActivity (או AppCompatActivity). השימוש ב-setContent ב-android.app.Activity הוצא משימוש (Idb25a,‏ b/153141084)

  • שם החבילה ui-android-text‏ (androidx.text) הוחלף בשם androidx.ui.text.platform כדי להתאים למדיניות של androidx. (I42711)