יצירת חומר לימוד

אפשר ליצור ממשקי משתמש של Jetpack פיתוח נייטיב באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫2 ביולי 2025 1.8.3 - 1.9.0-beta02 -

מבנה

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

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

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

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

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

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

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.8.3"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.8.3")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

משוב

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

יצירת בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.

גרסה 1.9

גרסה 1.9.0-beta02

‫2 ביולי 2025

androidx.compose.material:material-*:1.9.0-beta02 משוחרר. גרסה 1.9.0-beta02 מכילה את הקומטים האלה.

גרסה 1.9.0-beta01

‫18 ביוני 2025

androidx.compose.material:material-*:1.9.0-beta01 משוחרר. גרסה 1.9.0-beta01 מכילה את הקומטים האלה.

תיקוני באגים

  • היפר-קישורים ב-Text(AnnotatedString) מקבלים עכשיו עיצוב Material כברירת מחדל. (I0e8ed, b/339843816)

גרסה 1.9.0-alpha04

‫4 ביוני 2025

androidx.compose.material:material-*:1.9.0-alpha04 משוחרר. גרסה 1.9.0-alpha04 מכילה את ההעברות האלה.

גרסה 1.9.0-alpha03

‫20 במאי 2025

androidx.compose.material:material-*:1.9.0-alpha03 משוחרר. גרסה 1.9.0-alpha03 מכילה את הקומטים האלה.

גרסה 1.9.0-alpha02

‫7 במאי 2025

androidx.compose.material:material-*:1.9.0-alpha02 משוחרר. גרסה 1.9.0-alpha02 מכילה את הקומטים האלה.

גרסה 1.9.0-alpha01

‫23 באפריל 2025

androidx.compose.material:material-*:1.9.0-alpha01 משוחרר. גרסה 1.9.0-alpha01 מכילה את הקומטים האלה.

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

  • בדיקות Lint שנשלחות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אתם לא מצליחים לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות android.experimental.lint.version=8.8.2 (או גרסה חדשה יותר) ב-gradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת, נדרשת גרסה Ladybug של Android Studio או גרסה חדשה יותר.

שינויים ב-API

  • כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (Idb6b5)
  • ממשקי ה-API של תיבת העיטור של שדה הטקסט כבר לא ניסיוניים (I7480f, b/269651160)
  • הוצאנו משימוש את runWithTimingDisabled לטובת runWithMeasurementDisabled, שמתאר בצורה ברורה יותר את ההתנהגות – כל המדדים מושהים. בנוסף, צריך לחשוף את מחלקת העל MicrobenchmarkScope כי אי אפשר להצהיר מחדש על הפונקציה runWithMeasurementDisabled כדי לפתוח גישה, כי היא מוטמעת. (I9e23b, ‏ b/389149423, ‏ b/149979716)

תיקוני באגים

  • ExposedDropdownMenu תואם בינארית לגרסאות ישנות יותר. (I133f7)
  • תוקנה קריסה באינדיקטורים של ההתקדמות והטעינה במקרה של העברת Float.NaN כהתקדמות. ‫(I4fa96, ‏ b/352364576)

גרסה 1.8

גרסה 1.8.3

‫18 ביוני 2025

androidx.compose.material:material-*:1.8.3 משוחרר. גרסה 1.8.3 מכילה את ההתחייבויות האלה.

גרסה 1.8.2

‫20 במאי 2025

androidx.compose.material:material-*:1.8.2 משוחרר. גרסה 1.8.2 מכילה את ההתחייבויות האלה.

גרסה 1.8.1

‫7 במאי 2025

androidx.compose.material:material-*:1.8.1 משוחרר. גרסה 1.8.1 מכילה את הקומטים האלה.

גרסה 1.8.0

‫23 באפריל 2025

androidx.compose.material:material-*:1.8.0 משוחרר. גרסה 1.8.0 מכילה את הקומטים האלה.

גרסה 1.8.0-rc03

‫9 באפריל 2025

androidx.compose.material:material-*:1.8.0-rc03 משוחרר. גרסה 1.8.0-rc03 מכילה את הקומטים האלה.

גרסה 1.8.0-rc02

‫26 במרץ 2025

androidx.compose.material:material-*:1.8.0-rc02 משוחרר. גרסה 1.8.0-rc02 מכילה את הקומטים האלה.

גרסה 1.8.0-rc01

‫12 במרץ 2025

androidx.compose.material:material-*:1.8.0-rc01 משוחרר. גרסה 1.8.0-rc01 מכילה את הקומטים האלה.

גרסה 1.8.0-beta03

‫26 בפברואר 2025

androidx.compose.material:material-*:1.8.0-beta03 משוחרר. גרסה 1.8.0-beta03 מכילה את ההתחייבויות האלה.

גרסה 1.8.0-beta02

‫12 בפברואר 2025

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

גרסה 1.8.0-beta01

‫29 בינואר 2025

androidx.compose.material:material-*:1.8.0-beta01 משוחרר. גרסה 1.8.0-beta01 מכילה את הקומטים האלה.

גרסה 1.8.0-alpha08

‫15 בינואר 2025

androidx.compose.material:material-*:1.8.0-alpha08 משוחרר. גרסה 1.8.0-alpha08 מכילה את הקומטים האלה.

תיקוני באגים

  • הוספת displayCutout לקבוצת השוליים הפנימיים שרכיבי Material לוקחים בחשבון כברירת מחדל, כדי למנוע חפיפה בין התוכן לבין החלק החסר במסך.
    • זהו שינוי בהתנהגות שישפיע על האופן שבו רכיבים שמודעים לשינוי גודל חלון התצוגה מתנהגים סביב חיתוך המסך. זה כולל את ערך ברירת המחדל של הפרמטר WindowInsets לרכיבי Material 3 עם מודעות למיקום, ואת הערכים של WindowInsets שסופקו ברכיב.
    • אובייקטים שמוגדרים כברירת מחדל גם ב-Material 2 וגם ב-Material 3. אם השינוי הזה גורם להתנהגות לא רצויה, צריך לציין באופן ידני את הפרמטר WindowInsets לכל רכיב. ‫(I43ee9, ‏ b/362508045)
  • הפעילות שמשמשת כמארח לרכיב הניתן להרכבה שנבדק כשמשתמשים ב-ComposeContentTestRule.setContent, משתמשת עכשיו בערכת הנושא Theme.Material.Light.NoActionBar, כדי למנוע חפיפה בין ActionBar לבין תוכן הבדיקה כשמטרגטים SDK בגרסה 35. כדי להפסיק את ההתנהגות הזו, אפשר להסיר את התלות ב-ui-test-manifest ולהוסיף רשומה של פעילות ב-AndroidManifest.xml של אפליקציית הבדיקה בשביל ComponentActivity עם העיצוב הרצוי. (I7ae1b, ‏ b/383368165)

External Contribution

גרסה 1.8.0-alpha07

‫11 בדצמבר 2024

androidx.compose.material:material-*:1.8.0-alpha07 משוחרר. גרסה 1.8.0-alpha07 מכילה את הקומטים האלה.

תיקוני באגים

  • תיקון של באגים שגורמים לכך שלפעמים לא מתבצעות התאמות של גודל שדות הטקסט. ‫(I90d4c, ‏ b/356905963)

גרסה 1.8.0-alpha06

‫13 בנובמבר 2024

androidx.compose.material:material-*:1.8.0-alpha06 משוחרר. גרסה 1.8.0-alpha06 מכילה את הקומטים האלה.

גרסה 1.8.0-alpha05

‫30 באוקטובר 2024

androidx.compose.material:material-*:1.8.0-alpha05 משוחרר. גרסה 1.8.0-alpha05 מכילה את הקומטים האלה.

תיקוני באגים

  • אופטימיזציה של ההתנהגות של Scaffold contentPadding כדי להימנע מהרכבה מחדש של תוכן הגוף בכל פעם ש-contentPadding משתנה. (I8c8e2, b/373904168)
  • גורמים למחוון של Material לשנות את הערך שלו כשלוחצים על מקשי בקרה. (I1c442)

גרסה 1.8.0-alpha04

‫16 באוקטובר 2024

androidx.compose.material:material-*:1.8.0-alpha04 משוחרר. גרסה 1.8.0-alpha04 מכילה את הקומטים האלה.

שינויים ב-API

  • מסירים את readOnly מ-TextFields' כדי להצמיד לגרסה יציבה של Foundation. (I3aaba)

תיקוני באגים

  • נוספה תמיכה באפקט אדווה בהרחבת רכיבים ב-Android S+, כמו כרטיס שמתרחב בלחיצה. בעבר, האפקט לא היה מתרחב לגודל החדש, אבל עכשיו הוא יתרחב לגבולות החדשים. (If509a, b/183019123)

גרסה 1.8.0-alpha02

‫18 בספטמבר 2024

androidx.compose.material:material-*:1.8.0-alpha02 משוחרר. גרסה 1.8.0-alpha02 מכילה את הקומטים האלה.

גרסה 1.8.0-alpha01

‫4 בספטמבר 2024

androidx.compose.material:material-*:1.8.0-alpha01 משוחרר. גרסה 1.8.0-alpha01 מכילה את הקומטים האלה.

שינויים ב-API

  • נוסף בונה חדש של NavGraphBuilder.bottomSheet ליצירת bottomSheet עם safe args ((I28589, I777db, b/351858980))
  • נוספו עומסים חדשים של TextField ו-OutlinedTextField שמקבלים TextFieldState (I3b74c)

גרסה 1.7

גרסה 1.7.8

‫12 בפברואר 2025

androidx.compose.material:material-*:1.7.8 משוחרר. גרסה 1.7.8 מכילה את הקומטים האלה.

גרסה 1.7.7

‫29 בינואר 2025

androidx.compose.material:material-*:1.7.7 משוחרר. אין שינויים מגרסה 1.7.6.

גרסה 1.7.6

‫11 בדצמבר 2024

androidx.compose.material:material-*:1.7.6 משוחרר. גרסה 1.7.6 מכילה את הקומטים האלה.

גרסה 1.7.5

‫30 באוקטובר 2024

androidx.compose.material:material-*:1.7.5 משוחרר. גרסה 1.7.5 מכילה את ההתחייבויות האלה.

גרסה 1.7.4

‫16 באוקטובר 2024

androidx.compose.material:material-*:1.7.4 משוחרר. גרסה 1.7.4 מכילה את הקומטים האלה.

גרסה 1.7.2

‫18 בספטמבר 2024

androidx.compose.material:material-*:1.7.2 משוחרר. גרסה 1.7.2 מכילה את הקומטים האלה.

גרסה 1.7.1

‫10 בספטמבר 2024

  • לא חלו שינויים בארטיפקטים של Android. -desktop ארטיפקטים הוסרו ו--jvmStubs ו--linuxx64Stubs ארטיפקטים נוספו. היעדים האלה לא מיועדים לשימוש, אלא הם משמשים כ-placeholder כדי לתמוך במאמצים של Jetbrains Compose.

גרסה 1.7.0

‫4 בספטמבר 2024

androidx.compose.material:material-*:1.7.0 משוחרר. גרסה 1.7.0 מכילה את הקומטים האלה.

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

  • רכיבי Material הועברו לשימוש בממשקי ה-API החדשים של אפקט האדווה, והם כבר לא מבצעים שאילתות לגבי RippleTheme.
  • רכיבי Material שבעבר קיבלו MutableInteractionSource והוגדרו כברירת מחדל ל-remember { MutableInteractionSource() }, מקבלים עכשיו MutableInteractionSource שניתן להגדיר כ-null, והוגדרו כברירת מחדל ל-null במקום זאת. אם אתם לא משתמשים ב-MutableInteractionSource, אתם צריכים להעביר null. כך חלק מהרכיבים יכולים ליצור מופע רק כשצריך, מה שמשפר את הביצועים. מומלץ גם לבצע שינויים דומים ברכיבים שלכם.
  • BottomDrawer, ‏ ModalBottomSheet, ‏ BackdropScaffold ו-BottomSheet רגיל הועברו ל-API יציב.

גרסה 1.7.0-rc01

‫21 באוגוסט 2024

androidx.compose.material:material-*:1.7.0-rc01 משוחרר. גרסה 1.7.0-rc01 מכילה את הקומטים האלה.

גרסה 1.7.0-beta07

‫7 באוגוסט 2024

androidx.compose.material:material-*:1.7.0-beta07 משוחרר. גרסה 1.7.0-beta07 מכילה את הקומטים האלה.

גרסה 1.7.0-beta06

‫24 ביולי 2024

androidx.compose.material:material-*:1.7.0-beta06 משוחרר. גרסה 1.7.0-beta06 מכילה את הקומטים האלה.

גרסה 1.7.0-beta05

‫10 ביולי 2024

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

גרסה 1.7.0-beta04

‫26 ביוני 2024

androidx.compose.material:material-*:1.7.0-beta04 משוחרר. גרסה 1.7.0-beta04 מכילה את הקומטים האלה.

גרסה 1.7.0-beta03

‫12 ביוני 2024

androidx.compose.material:material-*:1.7.0-beta03 משוחרר. גרסה 1.7.0-beta03 מכילה את הקומטים האלה.

גרסה 1.7.0-beta02

‫29 במאי 2024

androidx.compose.material:material-*:1.7.0-beta02 משוחרר. גרסה 1.7.0-beta02 מכילה את הקומטים האלה.

שינויים ב-API

  • עדכון API לעיצוב הקישורים: הועבר TextLinkStyles אל TextStyle והוסר TextDefaults מ-Material‏ (I5477b)

גרסה 1.7.0-beta01

‫14 במאי 2024

androidx.compose.material:material-*:1.7.0-beta01 משוחרר. גרסה 1.7.0-beta01 מכילה את הקומטים האלה.

שינויים ב-API

  • עדכנו את ה-API לקבלת קישורים עם עיצוב Material בטקסט. הסרנו את השיטות מה-TextDefaults ליצירת LinkAnnotations עם נושאים ולניתוח HTML עם קישורים שמותאמים לנושאים. במקום זאת, הוספנו מחלקה TextLinkStyles שמאפשרת לעצב את הקישורים כפרמטר ל-Text composable. (I31b93)

גרסה 1.7.0-alpha08

‫1 במאי 2024

androidx.compose.material:material-*:1.7.0-alpha08 משוחרר. גרסה 1.7.0-alpha08 מכילה את הקומטים האלה.

שינויים ב-API

  • תיקון של backgroundColor שלא חל על TextFieldDecorationBox ועל OutlinedTextFieldDecorationBox. קופסאות דקורטיביות מקבלות עכשיו פרמטר shape. (I371c2, b/307694651)
  • השדה RippleConfiguration#isEnabled הוסר, והשדה LocalRippleConfiguration הפך לשדה שאפשר להשאיר ריק. כדי להשבית את האפקט, במקום לספק RippleConfiguration עם isEnabled = false, מספקים null ל-LocalRippleConfiguration. (I22725)
  • לקישורי טקסט יש אפשרות עיצוב של מצב לחיצה, בנוסף לעיצוב רגיל, עיצוב של מצב ריחוף ועיצוב של מצב מיקוד. TextDefaults לכל אחת מהשיטות יש ארגומנט pressedStyle שתומך בכך. (Ic473f, ‏ b/139312671)

תיקוני באגים

  • הריווח הפנימי העליון של התווית מחושב עכשיו לפי גודל הגופן של המערכת.OutlinedTextField (Idc781)

גרסה 1.7.0-alpha07

‫17 באפריל 2024

androidx.compose.material:material-*:1.7.0-alpha07 משוחרר. גרסה 1.7.0-alpha07 מכילה את הקומטים האלה.

שינויים ב-API

  • נוספה אפשרות לעיצוב של מצב לחיצה בקישורי טקסט, בנוסף לעיצוב רגיל, לעיצוב של מצב ריחוף ולעיצוב של מצב מיקוד. (I5f864, ‏ b/139312671)
  • נוסף אובייקט TextDefaults שמכיל שיטות ליצירת LinkAnnotation ולניתוח מחרוזת עם תגי HTML שמחילות MaterialTheme על הקישורים. (I98532, ‏ b/139312671)

גרסה 1.7.0-alpha06

‫3 באפריל 2024

androidx.compose.material:material-*:1.7.0-alpha06 משוחרר. גרסה 1.7.0-alpha06 מכילה את הקומטים האלה.

הודעה

  • androidx.compose.material כבר לא נדרש להשתמש באותה גרסה של כל ארטיפקט בקבוצת ה-Maven הזו. המשתמשים יכולים לשלב בין גרסאות שונות של ספריות הבסיס של Compose (Ie5fba)

שינויים ב-API

  • העברנו עוד ברירות מחדל של ModalDrawer ושל BottomDrawer לאובייקט DrawerDefaults. (Ib5b2e)

גרסה 1.7.0-alpha05

‫20 במרץ 2024

androidx.compose.material:material-*:1.7.0-alpha05 משוחרר. גרסה 1.7.0-alpha05 מכילה את הקודים האלה.

שינויים ב-API

  • הסימון ScaffoldSubcomposeInMeasureFix הוסר. (I67363)

גרסה 1.7.0-alpha04

‫6 במרץ 2024

androidx.compose.material:material-*:1.7.0-alpha04 משוחרר. גרסה 1.7.0-alpha04 מכילה את הקומטים האלה.

תכונות חדשות

גרסה 1.7.0-alpha03

‫21 בפברואר 2024

androidx.compose.material:material-*:1.7.0-alpha03 משוחרר. גרסה 1.7.0-alpha03 מכילה את הקומיטים האלה.

שינויים ב-API

  • הגרסה BottomDrawer עברה מניסיונית ליציבה. ‫BottomDrawerState חושף עכשיו את ההתקדמות כפונקציה, ומאפשר לשלוח שאילתות לגבי ההתקדמות בין יעדים ספציפיים. מעכשיו אפשר להתאים אישית את מפרט האנימציה של BottomDrawerState, ו-confirmStateChange כבר לא מוגדר כ-trailing lambda. ‫(I9c029, ‏ b/261423850)
  • הגרסה BackdropScaffold עברה מניסיונית ליציבה. מפרט האנימציה הוא עכשיו מפרט tween בהתאם להנחיות. הפרמטר snackbarHost של BackdropScaffold כבר לא הפרמטר האחרון, כדי למנוע בלבול עם פונקציות למבדה מסוג trailing. ‫BackdropScaffoldState חושף API של progress(from, to) כדי לשאול על ההתקדמות בין עוגנים. (I73f48, ‏ b/261423218)
  • הקידום של גיליונות תחתונים רגילים מניסיוני ליציב הושלם. הוסרו קונסטרוקטורים שהוצאו משימוש. מפרט האנימציה הוא עכשיו מפרט של אנימציית ביניים בהתאם להנחיות. (I3c1a8, ‏ b/278692145, ‏ b/261409034)
  • העברנו את הגיליונות התחתונים המודאליים מסטטוס ניסיוני לסטטוס יציב. הוסרו קונסטרוקטורים שהוצאו משימוש. מפרט האנימציה הוא עכשיו מפרט tween בהתאם להנחיות. ‪(Ic53f4, b/278692145, b/266780235, b/261409034)

תיקוני באגים

  • תוקנה בעיה שגרמה לקריסה של BackdropScaffold בתרחישים ספציפיים בשילוב עם LookaheadScope. (I51396)
  • הוסרה קומפוזיציה משנית בתוך BottomSheetScaffold כדי לשפר את הביצועים. תוקנה בעיה שגרמה לקריסה של BottomSheetScaffold בתרחישים ספציפיים בשילוב עם LookaheadScope. (I2f90c)
  • הוסר קומפוזיציה משנית בתוך ModalBottomSheetLayout, לשיפור הביצועים. (I7a025)

גרסה 1.7.0-alpha02

‫7 בפברואר 2024

androidx.compose.material:material-*:1.7.0-alpha02 משוחרר. גרסה 1.7.0-alpha02 מכילה את הקומיטים האלה.

גרסה 1.7.0-alpha01

‫24 בינואר 2024

androidx.compose.material:material-*:1.7.0-alpha01 משוחרר. גרסה 1.7.0-alpha01 מכילה את הקומיטים האלה.

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

  • רכיבי Material הועברו לשימוש בממשקי ה-API החדשים של אפקט האדווה, והם כבר לא מבצעים שאילתות לגבי RippleTheme.

שינויים ב-API

  • המאפיינים rememberRipple ו-RippleTheme הוצאו משימוש ב-material-ripple, ובמקומם נוספו ממשקי API חדשים של אפקט הגלים ו-RippleConfiguration ל-material ולספריות אחרות של מערכת העיצוב.

  • רכיבי Material שבעבר קיבלו MutableInteractionSource והוגדרו כברירת מחדל לזכור { MutableInteractionSource() }, מקבלים עכשיו MutableInteractionSource שניתן להגדיר כ-null, והוגדרו כברירת מחדל ל-null במקום זאת. אם אתם לא משתמשים ב-MutableInteractionSource, אתם צריכים להעביר null. כך חלק מהרכיבים יכולים ליצור מופע רק כשצריך, מה שמשפר את הביצועים. מומלץ גם לבצע שינויים דומים ברכיבים שלכם.

גרסה 1.6

גרסה 1.6.8

‫12 ביוני 2024

androidx.compose.material:material-*:1.6.8 משוחרר. גרסה 1.6.8 מכילה את הקומטים האלה.

גרסה 1.6.7

‫1 במאי 2024

androidx.compose.material:material-*:1.6.7 משוחרר. גרסה 1.6.7 מכילה את הקומטים האלה.

גרסה 1.6.6

‫17 באפריל 2024

androidx.compose.material:material-*:1.6.6 משוחרר. לא בוצעו שינויים מאז הגרסה האחרונה.

גרסה 1.6.5

‫3 באפריל 2024

androidx.compose.material:material-*:1.6.5 משוחרר. גרסה 1.6.5 מכילה את הקומטים האלה.

גרסה 1.6.4

‫20 במרץ 2024

androidx.compose.material:material-*:1.6.4 משוחרר. גרסה 1.6.4 מכילה את הקומטים האלה.

גרסה 1.6.3

‫6 במרץ 2024

androidx.compose.material:material-*:1.6.3 משוחרר. גרסה 1.6.3 מכילה את הקומטים האלה.

תיקוני באגים

  • צריך לתקן את הרגרסיה ב-ExposedDropdownMenu כדי שיהיה אפשר להתמקד בה שוב. (c0e0ed, b/323694447)

גרסה 1.6.2

‫21 בפברואר 2024

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

גרסה 1.6.1

‫7 בפברואר 2024

androidx.compose.material:material-*:1.6.1 משוחרר. גרסה 1.6.1 מכילה את הקומיטים האלה.

גרסה 1.6.0

‫24 בינואר 2024

androidx.compose.material:material-*:1.6.0 משוחרר. גרסה 1.6.0 כוללת את הקומיטים האלה.

גרסה 1.6.0-rc01

‫10 בינואר 2024

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

גרסה 1.6.0-beta03

‫13 בדצמבר 2023

androidx.compose.material:material-*:1.6.0-beta03 משוחרר. גרסה 1.6.0-beta03 מכילה את הקומיטים האלה.

גרסה 1.6.0-beta02

‫29 בנובמבר 2023

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

גרסה 1.6.0-beta01

‫15 בנובמבר 2023

androidx.compose.material:material-*:1.6.0-beta01 משוחרר. גרסה 1.6.0-beta01 מכילה את הקומיטים האלה.

גרסה 1.6.0-alpha08

‫18 באוקטובר 2023

androidx.compose.material:material-*:1.6.0-alpha08 משוחרר. גרסה 1.6.0-alpha08 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוצאה משימוש של הפונקציה materialIcon לטובת העומס שלה שמקבל פרמטר autoMirror. (Ia338d)

תיקוני באגים - הגדלה אוטומטית של הגובה של פריט הניווט עבור תוכן גדול. (0c4ecc, b/272336962)

גרסה 1.6.0-alpha07

‫4 באוקטובר 2023

androidx.compose.material:material-*:1.6.0-alpha07 משוחרר. גרסה 1.6.0-alpha07 מכילה את הקומיטים האלה.

  • עדכונים של יחסי תלות

גרסה 1.6.0-alpha06

‫20 בספטמבר 2023

androidx.compose.material:material-*:1.6.0-alpha06 משוחרר. גרסה 1.6.0-alpha06 מכילה את הקומיטים האלה.

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

  • הוסרה פונקציונליות שקשורה למגירה מ-BottomSheetScaffold. כדי להשיג את הפונקציונליות הקודמת, צריך להוסיף את BottomSheetScaffold לרכיב Drawer שאפשר להרכיב. BottomSheetScaffoldWithDrawerSample דוגמה (I1dcc8)

שינויים ב-API

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

גרסה 1.6.0-alpha05

‫6 בספטמבר 2023

androidx.compose.material:material-*:1.6.0-alpha05 משוחרר. גרסה 1.6.0-alpha05 מכילה את הקומיטים האלה.

תכונות חדשות

  • נוספה תמיכה בסמלים שמשתקפים אוטומטית כשהם מוצגים בפריסות מימין לשמאל. הסמלים במודולים material-icons-core ו-material-icons-extended מספקים עכשיו ערכות סמלים נוספות לתמיכה בשיקוף אוטומטי, אם הסמל מאפשר זאת. הקבוצות החדשות מתחילות בקידומת Icons.AutoMirrored.Filled... וכו', והן מכילות סמלים שישקפו את עצמם אוטומטית בפריסות מימין לשמאל. כאן מפורטת רשימת הסמלים של Material שאפשר (וכדאי) להפוך באופן אוטומטי.

שינויים ב-API

  • נוספה תמיכה בסמלים שמשתקפים אוטומטית כשהם מוצגים בפריסות מימין לשמאל. הסמלים במודולים material-icons-core ו-material-icons-extended מספקים עכשיו ערכות סמלים נוספות לתמיכה בשיקוף אוטומטי, אם הסמל מאפשר זאת. הקבוצות החדשות מתחילות בקידומת Icons.AutoMirrored.Filled... וכו', והן מכילות סמלים שישקפו את עצמם אוטומטית בפריסות מימין לשמאל. כאן מפורטת רשימת הסמלים של Material שאפשר (וכדאי) להפוך באופן אוטומטי. מאפייני הסמלים שסופקו בעבר מסומנים עכשיו כמאפיינים שיצאו משימוש, ומוצע בלוק חלופי שיעזור בהעברה. אם אין לכם טיפול מיוחד להצגת סמלים בשיקוף ב-RTL, מומלץ לעבור לסט הסמלים החדש. לדוגמה, צריך לשנות את Icons.Filled.ArrowBack ל-Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

גרסה 1.6.0-alpha04

‫23 באוגוסט 2023

androidx.compose.material:material-*:1.6.0-alpha04 משוחרר. גרסה 1.6.0-alpha04 מכילה את הקומיטים האלה.

תיקוני באגים

  • תוקנה בעיה שבה חלק מהרכיבים שמשתמשים ב-Subcomposition (למשל BottomSheetScaffold) בתוך Scaffold בתוך LookaheadScope ניסו לקרוא את הגודל שלהם מוקדם מדי. (If2c5d)
  • תוקן החישוב של DropdownMenuoffset כך שהיסטים של x תלויים רק בכיוון הפריסה המקומי, והיסטים של y לא יתהפכו יותר כשהתפריט קרוב לחלק התחתון של המסך. (Iccc74, ‏ b/294103942)
  • בוצעה אופטימיזציה של הפריסה הפנימית של BottomSheetScaffold ותוקנה בעיה פוטנציאלית שקשורה ל-BottomSheetScaffold בתוך LookaheadLayout. (Ic0afa)

גרסה 1.6.0-alpha03

‫9 באוגוסט 2023

androidx.compose.material:material-*:1.6.0-alpha03 משוחרר. גרסה 1.6.0-alpha03 מכילה את הקומיטים האלה.

שינויים ב-API

  • לרכיבי Material2 יש עכשיו API נפרד להעברת windowInsets כדי לתמוך בפונקציונליות מקצה לקצה ב-Android. בניגוד לרכיבי Material3, רכיבי Material2 לא תומכים בתוספות כברירת מחדל, ולכן צריך להעביר את הערך באופן ידני. כדאי לעיין בדוגמאות המתאימות כדי לקבל הנחיות. (I655e8)

גרסה 1.6.0-alpha02

‫26 ביולי 2023

androidx.compose.material:material-*:1.6.0-alpha02 משוחרר. גרסה 1.6.0-alpha02 מכילה את הקומיטים האלה.

שינויים ב-API

  • אנחנו מעבירים את התלות בצפיפות לרמת הרכיב. ההמלצה הזו רלוונטית לרכיבים הבאים: SwipeToDismiss ורכיבים שמבוססים על גיליון. צריך להשתמש בעומס החדש שצוין, שבו הצפיפות היא פרמטר. ‫(I1846e)
  • הערות נוספות לציון קלט מותר לרכיבים הניתנים להרכבה (I51109)
  • קובצי API עודכנו כדי להוסיף הערות על השבתת תאימות (I8e87a, ‏ b/287516207)
  • נוספה אפשרות חדשה ליישור התחלתי עבור FabPosition (Ib7aea, ‏ b/170592777)
  • המאפיין TextFieldColorsWithIcons ב-Material 2 הוצא משימוש והוחלף במאפיין TextFieldColors. כשמבטלים את ההגדרה של leadingIconColor או trailingIconColor, צריך לבטל גם את ההגדרה של העומס באמצעות interactionSource. (Id57ed, ‏ b/199377790)

גרסה 1.6.0-alpha01

‫21 ביוני 2023

androidx.compose.material:material-*:1.6.0-alpha01 משוחרר. גרסה 1.6.0-alpha01 מכילה את הקומיטים האלה.

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

  • הגופן includeFontPadding הוא עכשיו false כברירת מחדל בטיפוגרפיה של Material 2. גם סגנון גובה השורה שמוגדר כברירת מחדל השתנה ל-Trim.None ו-Alignment.Center, והערך lineHeight (ב-sp) נוסף ל-TextStyle של Typography. אם רוצים להתאים אישית את הערכים האלה, אפשר לעיין במסמכי ה-API. בפוסט הזה בבלוג מוסבר לעומק על השינויים האלה. (Icabc3, ‏ I3f801, ‏ I04c03)

שינויים ב-API

  • ממשקי ה-API של Swipeable הוצאו משימוש. מומלץ לעיין בממשקי ה-API של Foundation, שעברו אופטימיזציה לתרחישי שימוש פשוטים ומורכבים.AnchoredDraggable (I732e0)

תיקוני באגים

  • BottomSheetState, ‏ ModalBottomSheetState ו-BottomDrawerState חושפים עכשיו מאפיין התקדמות שמציין את ההתקדמות בין נקודת העיגון הנוכחית (שנקבעה) לבין נקודת העיגון הקרובה ביותר בכיוון ההחלקה. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

גירסה 1.5

גרסה 1.5.4

‫18 באוקטובר 2023

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

גרסה 1.5.3

‫4 באוקטובר 2023

androidx.compose.material:material-*:1.5.3 משוחרר. בגרסה הזו לא בוצעו שינויים

גרסה 1.5.2

‫27 בספטמבר 2023

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

גירסה 1.5.1

‫6 בספטמבר 2023

הגרסה androidx.compose.material:material-*:1.5.1 יוצאת ללא שינויים. גרסה 1.5.1 מכילה את הקומיטים האלה.

גרסה 1.5.0

‫9 באוגוסט 2023

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

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

שינויים ב-API

  • שילבנו שינויים בממשקי ה-API של Swipeable1 ב-BottomSheetScaffold. הפרמטר confirmStateChange של BottomSheetState שונה ל-confirmValueChange. הערך של progress מוצג עכשיו כערך מסוג נקודה צפה. animateTo ו-snapTo הם פנימיים. במקומה צריך להשתמש ב-expand() וב-collapse(). הוסרו direction וoverflow. השם offset הוחלף בשם requireOffset(). I323b4
  • סימון הפונקציה snapTo ב-Drawer כ-API לא ניסיוני. (Ib9c18, ‏ b/261425368)
  • נוסף פרמטר של צבע הרקע לאינדיקטורים של התקדמות מעגלית, ופרמטר של קצה הקו לאינדיקטורים של התקדמות מעגלית וליניארית. ‫(Ie668c, ‏ b/216325962, ‏ b/222964817)
  • שינית את השם של confirmStateChange של ModalBottomSheetState, ModalBottomSheetState.Saver ו-rememberModalBottomSheetState ל-confirmValueChange. (Ib48d1)
  • מוסיפים Modifier.minimumInteractiveComponentSize. אפשר להשתמש בו כדי להזמין מקום בגודל של לפחות 48dp כדי להבחין בין אינטראקציות של מגע, אם גודל הרכיב קטן יותר. (I33f58, ‏ b/258495559)
  • שילבנו שינויים בממשקי ה-API של Swipeable ב-ModalBottomSheetLayout. הפונקציה animateTo של ModalBottomSheetState לא מקבלת יותר פרמטר animationSpec, וההיסט שנחשף עכשיו יכול להיות null. אפשר להשתמש בrequireOffset כדי לדרוש את ההזחה. (Ia2e79)
  • הוספת הערה @JvmDefaultWithCompatibility ‏ (I8f206)
  • שילבנו שינויים בממשקי ה-API של Swipeable ב-ModalDrawer. DrawerState. המחלקה animateTo הוחלפה בשיטות open ו-close, וההיסט (offset) הוא עכשיו nullable. אפשר להשתמש בrequireOffset כדי לדרוש את ההזחה. (I3de9e)
  • עדכנו את מגירות האפליקציות ואת Sheets כדי לעכב לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
  • נוסף הפרמטר minLines לרכיבי Text של Material ו-Material3, ‏ TextField ו-OutlinedTextField שמאפשר להגדיר את הגובה המינימלי של הרכיב במונחים של מספר שורות (I4af1d)

תיקוני באגים

  • תוקנה בעיה שבה המהירות לא נלקחה בחשבון ב-pullRefresh, ולכן הוצג גלילה מעבר לקצה. בנוסף, שונה חתימת ה-API של lambda‏ onRelease ב-Modifier.pullRefresh כדי להחזיר ערך Float למהירות הצריכה (I7db65, b/266874741)
  • BottomSheetState, ‏ ModalBottomSheetState ו-BottomDrawerState חושפים עכשיו מאפיין התקדמות שמציין את ההתקדמות בין נקודת העיגון הנוכחית (שנקבעה) לבין נקודת העיגון הקרובה ביותר בכיוון ההחלקה. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • תוקנה AlertDialog פעולת הסגירה כך שתופיע מתחת לפעולת האישור כשהפעולות מוערמות זו על גבי זו כדי להתאים לרוחב של תיבת הדו-שיח. התיקון הזה מתאים את ההטמעה למפרט של Material Design. ‏(I029de, ‏ b/235454277)
  • BottomSheetScaffold לא ישתתף יותר בגלילה מקוננת אם gesturesEnabled מוגדר כ-false. (I634f3, b/215403277)
  • תוקן באג שגרם לקריסה של BottomSheetScaffold כשסופק תוכן ריק למשבצות. (Ib24a5, b/235588730)
  • תוקן באג שגרם ל-PullRefreshIndicator ליירט קליקים או אירועים של מצביע. ‫(2494256, ‏ b/271777421)
  • תוקנה בעיה שגרמה לקריסה של ModalBottomSheetLayout במקרה קצה בשינוי הכיוון. אנימציות של פריסות (למשל Modifier.animateContentSize) בתוכן הגיליון או עליו פועלות עכשיו בצורה חלקה. (I2f981, ‏ b/266780234)

גרסה 1.5.0-rc01

‫26 ביולי 2023

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

גרסה 1.5.0-beta03

‫28 ביוני 2023

androidx.compose.material:material-*:1.5.0-beta03 משוחרר. גרסה 1.5.0-beta03 מכילה את הקומיטים האלה.

תיקוני באגים

  • BottomSheetState, ‏ ModalBottomSheetState ו-BottomDrawerState חושפים עכשיו מאפיין התקדמות שמציין את ההתקדמות בין נקודת העיגון הנוכחית (שנקבעה) לבין נקודת העיגון הקרובה ביותר בכיוון ההחלקה. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

גרסה 1.5.0-beta02

‫7 ביוני 2023

androidx.compose.material:material-*:1.5.0-beta02 משוחרר. גרסה 1.5.0-beta02 מכילה את הקומיטים האלה.

גרסה 1.5.0-beta01

‫24 במאי 2023

androidx.compose.material:material-*:1.5.0-beta01 משוחרר. גרסה 1.5.0-beta01 מכילה את הקומיטים האלה.

שינויים ב-API

  • ההיסט של DrawerState ושל BottomDrawerState כבר לא יכול להיות null. במקום זאת, הן מחזירות Float.NaN כדי לציין שאין קיזוז. (Ie9855)
  • נוספה אפשרות להעביר ScrollState כשיוצרים DropdownMenu או ExposedDropdownMenu כדי לשלוט במצב הגלילה האנכית של הפריטים שמוצגים בתפריט. (Idb009, ‏ b/185304441)
  • הוספת תמיכה בהפעלה או בהשבתה של תנועת ModalBottomSheetLayout, כדי שהמשתמש יוכל להגדיר אותה לגיליון תחתון עם יותר תכונות (I40af0)
  • נוסף פרמטר צבע ל-BasicText כדי לאפשר אנימציה יעילה או הגדרת צבע טקסט. (Iffd88, ‏ b/246961787)
  • שינוי השם של מאפיין הסמנטיקה isContainer ל-isTraversalGroup (I121f6)

תיקוני באגים

  • תוקנה AlertDialog פעולת הסגירה כך שתופיע מתחת לפעולת האישור כשהפעולות מוערמות זו על גבי זו כדי להתאים לרוחב של תיבת הדו-שיח. התיקון הזה מיישר קו בין ההטמעה לבין המפרט של Material Design. ‏(I029de, ‏ b/235454277)

גרסה 1.5.0-alpha04

‫10 במאי 2023

androidx.compose.material:material-*:1.5.0-alpha04 משוחרר. גרסה 1.5.0-alpha04 מכילה את הקומיטים האלה.

שינויים ב-API

  • אנחנו מעבירים את התלות בצפיפות לרמת הרכיב. הדבר תקף לרכיבים הבאים: BottomDrawer, ‏ ModalBottomSheetLayout, ‏ BottomSheetScaffold, ‏ Switch, ‏ ModalDrawer. צריך להשתמש בעומס החדש שצוין, שבו הצפיפות היא פרמטר. (I8fbd8)

גרסה 1.5.0-alpha03

‫19 באפריל 2023

androidx.compose.material:material-*:1.5.0-alpha03 משוחרר. גרסה 1.5.0-alpha03 מכילה את הקומיטים האלה.

שינויים ב-API

  • צריך לעדכן את הפנימיות של BottomDrawer כדי להשתמש בממשקי ה-API החדשים של SwipeableV2. לכן, החל מגרסה BottomDrawerState, ל-API יהיו רק הגדרות ברמת המחלקה, והוא לא יקבל בירושה שיטות או מאפיינים מ-SwipeableState. אנחנו משתמשים בקומפוזיציה עם SwipeableV2State פנימי. ההיסט הוא עכשיו מאפיין נקודה צפה שניתן להגדיר לו ערך null. עדיין אפשר לגשת לערך הנוכחי ולערך היעד של ההחלקה דרך המאפיינים currentValue ו-targetValue. השיטות הקודמות ברמת הכיתה, כמו open/expand/close והמאפיינים כמו isOpen/isClosed, ממשיכות להיות נתמכות. ‫(Iad40c, ‏ b/178529942, ‏ b/220676296)

תיקוני באגים

  • עדכנו את הרכיבים הפנימיים של המתג. כשגוררים את המתג, מוצגת תצוגה מקדימה של המצב הכי קרוב (מצב היעד). (Id90d4)
  • בוצעה אופטימיזציה של תוכן גיליון אלקטרוני עם אנימציה (למשל Modifier.animateContentSize בתוכן גיליון אלקטרוני) ב-BottomSheetScaffold, ועכשיו הוא פועל בצורה חלקה. (Ia913c, ‏ b/270518202, ‏ b/254446195)
  • BottomSheetScaffold לא ישתתף יותר בגלילה מקוננת אם הערך של gesturesEnabled מוגדר כ-false. (I634f3, b/215403277)

גרסה 1.5.0-alpha02

‫5 באפריל 2023

androidx.compose.material:material-*:1.5.0-alpha02 משוחרר. גרסה 1.5.0-alpha02 מכילה את הקומיטים האלה.

תיקוני באגים

  • תוקן באג שגרם לקריסה של BottomSheetScaffold כשסופק תוכן ריק למשבצות. (Ib24a5, b/235588730)
  • בוצעו תיקונים שקשורים ליירוט קליקים או אירועים של מצביע (2494256, b/271777421)PullRefreshIndicator

גרסה 1.5.0-alpha01

‫22 במרץ 2023

androidx.compose.material:material-*:1.5.0-alpha01 משוחרר. גרסה 1.5.0-alpha01 מכילה את הקומיטים האלה.

תיקוני באגים

  • הוספת דוגמה לשינוי פריסה של chipgroup. עדכון הריווח האופקי בין צ'יפים צאצאים בדוגמה של קבוצת צ'יפים בשורה אחת, כך שיתאים למפרט. (I3b155)
  • תוקנה בעיה שגרמה לקריסה של ModalBottomSheetLayout במקרה קצה בשינוי הכיוון. אנימציות של פריסות (למשל Modifier.animateContentSize) בתוכן הגיליון או עליו פועלות עכשיו בצורה חלקה. (I2f981, ‏ b/266780234)

גרסה 1.4

גרסה 1.4.3

‫3 במאי 2023

הגרסה של androidx.compose.material:material-*:1.4.3 יוצאת ללא שינויים (רק עם עדכון גרסה).

גרסה 1.4.2

‫19 באפריל 2023

androidx.compose.material:material-*:1.4.2 משוחרר. גרסה 1.4.2 מכילה את הקומיטים האלה.

גרסה 1.4.1

‫5 באפריל 2023

androidx.compose.material:material-*:1.4.1 משוחרר. גרסה 1.4.1 מכילה את הקומיטים האלה.

גרסה 1.4.0

‫22 במרץ 2023

androidx.compose.material:material-*:1.4.0 משוחרר. גרסה 1.4.0 מכילה את הקומיטים האלה.

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

שינויים ב-API

  • מוסיפים Modifier.minimumInteractiveComponentSize. אפשר להשתמש בו כדי להזמין מקום בגודל של לפחות 48dp כדי להבחין בין אינטראקציות של מגע, אם גודל הרכיב קטן יותר. (I33f58, ‏ b/258495559)
  • שילבנו שינויים בממשקי ה-API של Swipeable ב-ModalDrawer. המאפיין DrawerState של animateTo הוחלף בשיטות open ו-close, ועכשיו אפשר להגדיר את ההיסט כ-nullable. אפשר להשתמש בrequireOffset כדי לדרוש את ההזחה. (I3de9e)
  • נוסף הפרמטר minLines לרכיבי Text של Material ו-Material3, ‏ TextField ו-OutlinedTextField שמאפשר להגדיר את הגובה המינימלי של הרכיב במונחים של מספר שורות (I4af1d)
  • נוסף הפרמטר minLines ל-BasicText ול-BasicTextField. הוא מאפשר להגדיר את הגובה המינימלי של רכיבי ה-Composable האלה במונחים של מספר שורות (I24294, ‏ b/122476634)

גרסה 1.4.0-rc01

‫8 במרץ 2023

הגרסה androidx.compose.material:material-*:1.4.0-rc01 יוצאת ללא שינויים. גרסה 1.4.0-rc01 כוללת את הקומיטים האלה.

גרסה 1.4.0-beta02

‫22 בפברואר 2023

androidx.compose.material:material-*:1.4.0-beta02 משוחרר. גרסה 1.4.0-beta02 מכילה את הקומיטים האלה.

שינויים ב-API

  • שילבנו שינויים בממשקי ה-API של Swipeable ב-BottomSheetScaffold. הפרמטר confirmStateChange של BottomSheetState שונה ל-confirmValueChange. הערך של progress מוצג עכשיו כערך מסוג נקודה צפה. animateTo ו-snapTo הם פנימיים. במקומה צריך להשתמש ב-expand() וב-collapse(). הוסרו direction וoverflow. השם offset הוחלף בשם requireOffset(). (I323b4)

תיקוני באגים

  • הוסרו תפקידים סמנטיים ממשטחים שאפשר ללחוץ עליהם ולבחור אותם, ורכיבים שעשו בהם שימוש עודכנו כדי להגדיר תפקידים באמצעות modifier.semantics ‏ (Ibb4ba)
  • עדכון קל לסמלי Material המורחבים, שבו בוצעו שינויים בסמלים המלאים desktop_mac, directions ו-kitchen. (I65f5e)

גרסה 1.4.0-beta01

‫8 בפברואר 2023

androidx.compose.material:material-*:1.4.0-beta01 משוחרר. גרסה 1.4.0-beta01 מכילה את הקומיטים האלה.

שינויים ב-API

  • תוקנה בעיה שבה המהירות לא נלקחה בחשבון ב-pullRefresh, ולכן הוצג גלילה מעבר לקצה. בנוסף, שונה חתימת ה-API של lambda‏ onRelease ב-Modifier.pullRefresh כדי להחזיר ערך Float למהירות הצריכה (I7db65, b/266874741)
  • שחזור של getter של מאפיין LocalMinimuTouchTargetEnforcement וסימון שלו כמאפיין שהוצא משימוש, והפניה אוטומטית אל LocalMinimumInteractiveComponentEnforcement. (I60dd5)

גרסה 1.4.0-alpha05

‫25 בינואר 2023

androidx.compose.material:material-*:1.4.0-alpha05 משוחרר. גרסה 1.4.0-alpha05 מכילה את הקומיטים האלה.

תיקוני באגים

  • תוקנה בעיה שבה מצב ModalBottomSheetLayout's HalfExpanded חושב בצורה שגויה והגיליון נראה כאילו הוא צף. (I8c615, ‏ b/265610459)
  • תוקן באג ב-ModalBottomSheetLayout שגרם לקריסה של הגיליון כשעברו ממצב מוסתר למצב גלוי בנסיבות מסוימות. ‫(Ia9265, ‏ b/265444789)

גרסה 1.4.0-alpha04

‫11 בינואר 2023

androidx.compose.material:material-*:1.4.0-alpha04 משוחרר. גרסה 1.4.0-alpha04 מכילה את הקומיטים האלה.

שינויים ב-API

  • נוספה תכונת IsContainer סמנטיקה בפלטפורמות השונות של Google. הנכס הזה ישמש בשינוי מאוחר יותר שקובע את סדר המעבר על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379)
  • סימון הפונקציה snapTo ב-Drawer כ-API לא ניסיוני. (Ib9c18, ‏ b/261425368)
  • נוסף פרמטר של צבע הרקע לאינדיקטורים של התקדמות מעגלית, ופרמטר של קצה הקו לאינדיקטורים של התקדמות מעגלית וליניארית. ‫(Ie668c, ‏ b/216325962, ‏ b/222964817)
  • שינית את השם של confirmStateChange של ModalBottomSheetState, ModalBottomSheetState.Saver ו-rememberModalBottomSheetState ל-confirmValueChange. (Ib48d1)
  • הוספת אפשרות להחזרת ערך null לסוגים נוספים של פונקציות שהוצאו משימוש ומוסתרות (Ibf7b0)
  • מוסיפים Modifier.minimumInteractiveComponentSize. אפשר להשתמש בו כדי להזמין מקום בגודל של לפחות 48dp כדי להבחין בין אינטראקציות של מגע, אם גודל הרכיב קטן יותר. (I33f58, ‏ b/258495559)
  • שילבנו שינויים בממשקי ה-API של Swipeable ב-ModalBottomSheetLayout. הפונקציה animateTo של ModalBottomSheetState לא מקבלת יותר פרמטר animationSpec, והערך offset שמוצג עכשיו יכול להיות null. משתמשים ב-requireOffset כדי לדרוש את offset. (Ia2e79)

תיקוני באגים

  • הרוחב המקסימלי של גיליון ModalBottomSheetLayout הוא עכשיו 640dp. ‫(I71a4f, ‏ b/234927577)
  • תוקנה בעיה שגרמה לכך ש-rememberPullRefreshState לא עדכן את refreshThreshold ואת refreshingOffset לאורך זמן. (Ifed10, b/263159832)
  • ההתקדמות באינדיקטורים של ההתקדמות מוגבלת עכשיו לטווח הצפוי. (I8a7eb, b/262262727)
  • אם ModalBottomSheetState עדיין לא קיבל עוגנים, הוא יעודכן ב-currentValue ללא אנימציה כשקוראים ל-snapTo או ל-animateTo במקום להפעיל חריגה. (I2c91b)
  • תוקן המצב המופעל בהטמעה של Material 2 FilterChip. (Id326a, b/261329817)
  • תוקן באג שגרם לקריסה של ModalBottomSheetLayout אם הוא היה HalfExpanded כשמסובבים את המסך מתצוגה לאורך לתצוגה לרוחב. חשוב לוודא שמעבירים את initialValue הנכון, למשל על ידי בדיקת ההגדרה. ‫(Ie8df7, b/182882364)
  • תוקנה בעיה שגרמה לקריסת ModalBottomSheetLayout אם התוכן של הגיליון היה ריק. ‫ModalBottomSheetLayout מאפשר עכשיו תוכן ריק בגיליון. אם התוכן בגיליון ריק, יהיה לו רק מצב Hidden (מוסתר). (Ic2288, ‏ b/200980998, ‏ b/216693030)

בעיה ידועה

  • כשמעדכנים מ-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.material:material-*:1.4.0-alpha03 משוחרר. גרסה 1.4.0-alpha03 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספת הערה @JvmDefaultWithCompatibility ‏ (I8f206)
  • שילבנו שינויים בממשקי ה-API של Swipeable ב-ModalDrawer. השיטה animateTo של DrawerState הוחלפה בשיטות open ו-close, וההיסט עכשיו יכול להיות null. אפשר להשתמש בrequireOffset כדי לדרוש את ההזחה. (I3de9e)
  • נוסף Modifier API כדי לשלוח שאילתות לגבי פרטי גלילה של רכיבי צאצא. (I2ba9d, ‏ b/203141462)
  • משמש ב-Clickable כדי להשהות נכון אינטראקציות של לחיצה, כשמחוות יכולות להפוך לאירועי גלילה.
  • תוקנה הבעיה שבה לא היה עיכוב נכון באפקט האדוות כשנעשה שימוש ב-Clickables בתוך Scrollable ViewGroup.
  • עדכנו את מגירות האפליקציות ואת Sheets כדי לעכב לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.

תיקוני באגים

  • תוקנה בעיה שגרמה לכך ש-PullRefreshIndicator נתקע אחרי הקריאה ל-onRefresh, אם מצב הרענון לא השתנה ל-true. (Ie2416, b/248274004)

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

  • ‫Compose UI ו-Compose Material תלויים עכשיו ב-Lifecycle 2.5.1. (I05ab0, b/258038814)

גרסה 1.4.0-alpha02

9 בנובמבר 2022

androidx.compose.material:material-*:1.4.0-alpha02 משוחרר. גרסה 1.4.0-alpha02 מכילה את הקומיטים האלה.

שינויים ב-API

  • הפונקציות awaitFirstDown ו-waitForUpOrCancellation מקבלות עכשיו PointerEventPass כדי לאפשר גמישות רבה יותר. (I7579a, ‏ b/212091796)
  • נוסף הפרמטר minLines לרכיבי Text של Material ו-Material3, ‏ TextField ו-OutlinedTextField שמאפשר להגדיר את הגובה המינימלי של הרכיב במונחים של מספר שורות (I4af1d)
  • נוסף הפרמטר minLines ל-BasicTex ול-BasicTextField. הוא מאפשר להגדיר את הגובה המינימלי של רכיבי ה-Composable האלה במונחים של מספר שורות (I24294, b/122476634)

גרסה 1.4.0-alpha01

24 באוקטובר 2022

androidx.compose.material:material-*:1.4.0-alpha01 משוחרר. גרסה 1.4.0-alpha01 מכילה את הקומיטים האלה.

שינויים ב-API

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

גרסה 1.3

גרסה 1.3.1

9 בנובמבר 2022

androidx.compose.material:material-*:1.3.1 משוחרר. גרסה 1.3.1 מכילה את הקומיטים האלה.

גרסה 1.3.0

24 באוקטובר 2022

androidx.compose.material:material-*:1.3.0 משוחרר. גרסה 1.3.0 מכילה את הקומיטים האלה.

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

שינוי התנהגות שעלול לגרום לכשל

  • הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים הופחת ל-8dp.

שינויים ב-API

  • הוספת רכיב Pull-To-Refresh ל-Compose‏ (I29168).
  • שינוי שם הפרמטר מ-values ל-value ב-RangeSlider ‏ (I3b79a).

גרסה 1.3.0-rc01

5 באוקטובר 2022

androidx.compose.material:material-*:1.3.0-rc01 משוחרר. גרסה 1.3.0-rc01 כוללת את הקומיטים האלה.

גרסה 1.3.0-beta03

‫21 בספטמבר 2022

androidx.compose.material:material-*:1.3.0-beta03 משוחרר. גרסה 1.3.0-beta03 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספת רכיב 'משיכה לרענון' ל-Compose (I29168)

גרסה 1.3.0-beta02

‫7 בספטמבר 2022

androidx.compose.material:material-*:1.3.0-beta02 משוחרר. גרסה 1.3.0-beta02 מכילה את הקומיטים האלה.

לא בוצעו שינויים מאז גרסה 1.3.0-beta01

גרסה 1.3.0-beta01

‫24 באוגוסט 2022

androidx.compose.material:material-*:1.3.0-beta01 משוחרר. גרסה 1.3.0-beta01 מכילה את הקומיטים האלה.

שינוי התנהגות שעלול לגרום לכשל

הגובה המקסימלי שנתמך בתיבות דו-שיח ובחלונות קופצים הופחת ל-8dp.

הגובה המקסימלי שנתמך לתיבות דו-שיח ולחלונות קופצים של כתיבה הופחת מ-30dp ל-8dp. השינוי הזה משפיע גם על חלונות קופצים ודיאלוגים בהתאמה אישית של ממשק המשתמש וגם על חלונות קופצים ודיאלוגים בהתאמה אישית של חומרים. השינוי הזה נעשה כדי לצמצם את ההשפעה של באג נגישות בגרסאות Android שמתחת לגרסה S, וכדי לוודא ששירותי הנגישות בחלונות האלה יוכלו ליצור אינטראקציה עם התוכן בתוך תיבת הדו-שיח או החלון הקופץ.

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

גרסה 1.3.0-alpha03

‫10 באוגוסט 2022

androidx.compose.material:material-*:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את הקומיטים האלה.

גרסה 1.3.0-alpha02

‫27 ביולי 2022

androidx.compose.material:material-*:1.3.0-alpha02 משוחרר. גרסה 1.3.0-alpha02 מכילה את הקומיטים האלה.

External Contribution

  • תיקון בעיה ב-AnimatedVisibility באמצעות FloatingActionButton ב-Scaffold ‏ (I3a0ae, ‏ b/224005027)

גרסה 1.3.0-alpha01

29 ביוני 2022

androidx.compose.material:material-*:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 מכילה את הקומיטים האלה.

שינויים ב-API

  • שינוי שם הפרמטר מ-values ל-value ב-RangeSlider (I3b79a)

תיקוני באגים

  • עדכון דוגמת התג כדי לספק תיאור משמעותי יותר של התוכן. (I10b9d)

גרסה 1.2

גרסה 1.2.1

‫10 באוגוסט 2022

androidx.compose.material:material-*:1.2.1 משוחרר. גרסה 1.2.1 מכילה את הקומיטים האלה.

גרסה 1.2.0

‫27 ביולי 2022

androidx.compose.material:material-*:1.2.0 משוחרר. גרסה 1.2.0 מכילה את הקומיטים האלה.

גרסה 1.2.0-rc03

29 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc03 משוחרר. גרסה 1.2.0-rc03 מכילה את הקומיטים האלה.

  • לא בוצעו שינויים מאז גרסה 1.2.0-rc02.

גרסה 1.2.0-rc02

‫22 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc02 משוחרר. גרסה 1.2.0-rc02 מכילה את הקומיטים האלה.

גרסה 1.2.0-rc01

‫15 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc01 משוחרר. גרסה 1.2.0-rc01 כוללת את הקומיטים האלה.

שינויים ב-API

  • ממשקים בספריות של Compose נוצרים עכשיו באמצעות שיטות ממשק שמוגדרות כברירת מחדל ב-jdk8 ‏ (I5bcf1)

תיקוני באגים

  • העדכון של התג כולל כרטיסיית סמל מוביל כדי להצמיד את התג לתווית במקום לסמל. (I90993)

גרסה 1.2.0-beta03

‫1 ביוני 2022

androidx.compose.material:material-*:1.2.0-beta03 משוחרר. גרסה 1.2.0-beta03 מכילה את הקומיטים האלה.

תיקוני באגים

  • תוקן באג שגרם לכך שהסמל BottomSheetScaffold הוצג מעל הצל של סרגל האפליקציות העליון. ‫BottomSheetScaffold גם לוקח עכשיו בחשבון את המצב של הגיליון כשמציבים חטיפי מידע: במצב המכווץ, חטיפי המידע מוצבים מעל הגיליון ו-FAB; במצב המורחב, חטיפי המידע מעוגנים לתחתית הגיליון. ‫(Ia80b5, ‏ b/187771422)

גרסה 1.2.0-beta02

18 במאי 2022

androidx.compose.material:material-*:1.2.0-beta02 משוחרר. גרסה 1.2.0-beta02 מכילה את הקומיטים האלה.

גרסה 1.2.0-beta01

11 במאי 2022

androidx.compose.material:material-*:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.

תכונות חדשות

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

שינויים ב-API

  • השם של רכיב ה-Composable‏ TextFieldDefaults.BorderStroke שיוצר קו גבול ב-OutlinedTextField שונה ל-TextFieldDefaults.BorderBox. (I5f295)

גרסה 1.2.0-alpha08

‫20 באפריל 2022

androidx.compose.material:material-*:1.2.0-alpha08 משוחרר. גרסה 1.2.0-alpha08 מכילה את הקומיטים האלה.

שינויים ב-API

  • השימוש החלקי (הורדה או מיקום) הוצא משימוש ב-PointerInputChange. אפשר להשתמש ב-consume() כדי להחיל את השינוי באופן מלא. אפשר להשתמש ב-isConsumed כדי לקבוע אם מישהו אחר כבר השתמש בשינוי.
  • הפונקציה PointerInputChange::copy() יוצרת עכשיו תמיד עותק שטחי. המשמעות היא שעותקים של PointerInputChange ינוצלו ברגע שאחד מהעותקים ינוצל. אם רוצים ליצור PointerInputChange לא מאוגד, צריך להשתמש בבונה במקום זאת. ‫(Ie6be4, b/225669674)

גרסה 1.2.0-alpha07

‫6 באפריל 2022

androidx.compose.material:material-*:1.2.0-alpha07 משוחרר. גרסה 1.2.0-alpha07 מכילה את הקומיטים האלה.

גרסה 1.2.0-alpha06

23 במרץ 2022

androidx.compose.material:material-*:1.2.0-alpha06 משוחרר. גרסה 1.2.0-alpha06 מכילה את הקומיטים האלה.

שינויים ב-API

  • עדכונים ב-Card API שאפשר ללחוץ עליו כדי להתאים לשינויים ב-Surface API ‏ (I56bcb)
  • עדכונים ל-Material 2 Surface API שמוסיפים פונקציות עמוסות מדי נוספות למשטחים שאפשר לבחור ולהחליף ביניהם. (Ifcca5)

גרסה 1.2.0-alpha05

9 במרץ 2022

androidx.compose.material:material-*:1.2.0-alpha05 משוחרר. גרסה 1.2.0-alpha05 מכילה את הקומיטים האלה.

שינויים ב-API

  • התכונות LazyVerticalGrid וLazyHorizontalGrid יציבות עכשיו. (I307c0)
  • LazyVerticalGrid/LazyHorizontalGrid וכל ממשקי ה-API שקשורים אליו הועברו לחבילת המשנה ‎ .grid. צריך לעדכן את הייבוא מ-androidx.compose.foundation.lazy ל-androidx.compose.foundation.lazy.grid. ‫(I2d446, ‏ b/219942574)
  • בוטל שינוי קודם שהסתמך רק על View עבור WindowInsetsControllerCompat, ועכשיו נדרש שוב Window, שנדרש לניהול של חלק מהדגלים של חלונות. הוצא משימוש ‫ViewCompat.getWindowInsetsController לטובת WindowCompat.getInsetsController כדי לוודא שנעשה שימוש בחלון הנכון (למשל אם התצוגה היא בתיבת דו-שיח). ‫(I660ae, ‏ b/219572936)
  • האפשרות 'טקסט:includeFontPadding' מושבתת עכשיו כברירת מחדל. בעיות החיתוך כתוצאה משימוש ב-includeFontPadding=false מטופלות, ולא אמור להתרחש חיתוך של סקריפטים ארוכים. ‫(I31c84, ‏ b/171394808)
  • הוספנו LazyVerticalGrid API חדש להגדרת גדלים של צירים חוצים (I17723)

גרסה 1.2.0-alpha04

23 בפברואר 2022

androidx.compose.material:material-*:1.2.0-alpha04 משוחרר. גרסה 1.2.0-alpha04 מכילה את הקומיטים האלה.

שינויים ב-API

  • Add support for filter chips (I39a6e, b/192585545)
  • הוספת את TextFieldDecorationBox ואת OutlinedTextFieldDecorationBox. השימוש בהם יחד עם BasicTextField יעזור לכם ליצור שדה טקסט בהתאמה אישית שמבוסס על שדות טקסט של Material Design, אבל עם יותר אפשרויות להתאמה אישית.
  • נוספה אפשרות להתאים את המרווחים האופקיים והאנכיים בשדות טקסט. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
  • נוספו הפונקציות ComposableTarget, ComposableTargetMarker ו-ComposableOpenTarget שמאפשרות דיווח בזמן קומפילציה על מצבים שבהם מתבצעת קריאה לפונקציה הניתנת להרכבה שמטרגטת כלי להחלת שינויים שלא נועד להשתמש בה.

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

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

גרסה 1.2.0-alpha03

‫9 בפברואר 2022

androidx.compose.material:material-*:1.2.0-alpha03 משוחרר. גרסה 1.2.0-alpha03 מכילה את הקומיטים האלה.

תיקוני באגים

גרסה 1.2.0-alpha02

‫26 בינואר 2022

androidx.compose.material:material-*:1.2.0-alpha02 משוחרר. גרסה 1.2.0-alpha02 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספנו את NonRestartableComposable לשיטות שהן עומס יתר של שיטות קיימות ללא לוגיקה מורכבת. הפעולה הזו מצמצמת את הבדיקות של הממויזציה (equals) שנוצרות על ידי הקומפיילר לכל הפרמטרים שחוזרים על עצמם בפונקציה הפנימית שמופעלת. (I90490)
  • הוספת תמיכה בצ'יפ פעולה (I07100, b/192585545)

גרסה 1.2.0-alpha01

12 בינואר 2022

androidx.compose.material:material-*:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 מכילה את הקומיטים האלה.

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

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

External Contribution

  • מעכשיו יש לModalBottomSheetState דגל isSkipHalfExpanded. אפשר להגדיר את המאפיין באמצעות ה-constructor או לעדכן אותו בשלב מאוחר יותר על ידי הגדרת המאפיין isSkipHalfExpanded של ModalBottomSheetState לערך true. עדכון הערך של isSkipHalfExpanded גורם להרכבה מחדש של הגיליון. (I18b86, ‏ b/186669820)

גרסה 1.1

גרסה 1.1.1

23 בפברואר 2022

androidx.compose.material:material-*:1.1.1 משוחרר. גרסה 1.1.1 מכילה את הקומיטים האלה.

תיקוני באגים

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

גרסה 1.1.0

‫9 בפברואר 2022

androidx.compose.material:material-*:1.1.0 משוחרר. גרסה 1.1.0 מכילה את הקומיטים האלה.

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

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

גרסה 1.1.0-rc03

‫26 בינואר 2022

androidx.compose.material:material-*:1.1.0-rc03 משוחרר. גרסה 1.1.0-rc03 מכילה את הקומיטים האלה.

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

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

תיקוני באגים

  • הוספנו מידע טוב יותר לניפוי באגים בכלי לבדיקת פריסות כשבודקים משנים של אזורי מגע מינימליים. (aosp/1955036)

גרסה 1.1.0-rc01

15 בדצמבר 2021

androidx.compose.material:material-*:1.1.0-rc01 משוחרר. גרסה 1.1.0-rc01 כוללת את הקומיטים האלה.

תיקוני באגים

גרסה 1.1.0-beta04

1 בדצמבר 2021

androidx.compose.material:material-*:1.1.0-beta04 משוחרר. גרסה 1.1.0-beta04 מכילה את הקומיטים האלה.

תכונות חדשות

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

גרסה 1.1.0-beta03

‫17 בנובמבר 2021

androidx.compose.material:material-*:1.1.0-beta03 משוחרר. גרסה 1.1.0-beta03 מכילה את הקומיטים האלה.

גרסה 1.1.0-beta02

‫3 בנובמבר 2021

androidx.compose.material:material-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 מכילה את הקומיטים האלה.

תיקוני באגים

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

גרסה 1.1.0-beta01

‫27 באוקטובר 2021

androidx.compose.material:material-*:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 מכילה את הקומיטים האלה.

תכונות חדשות

  • הספרייה Ripples תומכת עכשיו במצבי ריחוף ומיקוד, כך שריחוף מעל רכיב כמו Button או מיקוד בו יציג עכשיו את שכבת-העל הנכונה של המצב.

גרסה 1.1.0-alpha06

‫13 באוקטובר 2021

androidx.compose.material:material-*:1.1.0-alpha06 משוחרר. גרסה 1.1.0-alpha06 מכילה את הקומיטים האלה.

שינויים ב-API

  • נוספה פונקציית עומס יתר ללא ילדים עבור Layout, עם יעילות משופרת (Ib0d9a)
  • הטמעה של ExposedDropdownMenu על סמך ExposedDropdownMenuBox עם TextField ו-DropdownMenu בפנים (If60b2)
  • השדה dismissOnOutsideClick נוסף אל PopupProperties והחליף את dismissOnClickOutside שהוצא משימוש. הנכס החדש מקבל את מיקום הקליק ואת גבולות העוגן, וכך מאפשר שליטה מדויקת יותר בשאלה אם צריך להפעיל את onDismissRequest או לא. לדוגמה, זה יכול להיות שימושי כדי למנוע סגירה של העוגן במקרה של מגע בעוגן.
    • האפליקציה updateAndroidWindowManagerFlags נוספה ל-PopupProperties, ומאפשרת שליטה ברמת המערכת בדגלים שמועברים מהחלון הקופץ אל Android WindowManager. הפרמטר של ה-lambda יהיה הדגלים שמחושבים מהערכים של PopupProperties שיוצרים דגלים של WindowManager: למשל focusable. התוצאה של ה-lambda תהיה הדגלים הסופיים שיועברו אל Android WindowManager. כברירת מחדל, הפונקציה updateAndroidWindowManagerFlags לא משנה את הערכים של הדגלים שחושבו מהפרמטרים. צריך להשתמש ב-API הזה בזהירות, רק במקרים שבהם יש דרישות מאוד ספציפיות לגבי אופן הפעולה של החלון הקופץ. (I6e9f9)

גרסה 1.1.0-alpha05

‫29 בספטמבר 2021

androidx.compose.material:material-*:1.1.0-alpha05 משוחרר. גרסה 1.1.0-alpha05 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספת גודל מינימלי של משטח מגע לרכיבי Material שאין להם משטח מגע נגיש. ההגדרה הזו מוסיפה רווחים מסביב לרכיבים כדי לוודא שיש להם אזור מגע גדול מספיק, ולכן היא עשויה לשנות ממשקי משתמש קיימים שמניחים שהגודל של הרכיבים האלה הוא הגודל החזותי שלהם, ולא לוקחת בחשבון את הגודל של אזור המגע. אפשר להשתמש בקומפוזיציה הניסיונית LocalMinimumTouchTargetEnforcement local כדי להשבית את ההתנהגות הזו בהיררכיה, אבל הכוונה היא להשתמש בה רק כפתרון זמני בזמן שמעדכנים ממשקי משתמש קיימים כדי להתאים אותם לגודל המינימלי החדש. (I9b966, b/149691127, b/171509422)
  • נוסף ממשק ניסיוני בשם TextFieldColorsWithIcons, שמרחיב את TextFieldColors כדי לספק InteractionSource ל-leadingColor ול-trailingColor. ההגדרה הזו מאפשרת לשנות את המראה של TextField בהתאם למצב המיקוד. (I66923, b/198402662)

גרסה 1.1.0-alpha04

‫15 בספטמבר 2021

androidx.compose.material:material-*:1.1.0-alpha04 משוחרר. גרסה 1.1.0-alpha04 מכילה את הקומיטים האלה.

שינויים ב-API

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

תיקוני באגים

  • מאפשרים לקליפ להרחיב את גבולות יעד המגע מעבר לאזור הקליפ למטרות של יעד מגע מינימלי. (I43e10, ‏ b/171509422)
  • בוצע עדכון של Divider composable כדי להתייחס ל-Dp.Hairline עבור פרמטר העובי, כדי לתמוך בציור של קווי הפרדה בעובי פיקסל אחד, ללא קשר לצפיפות המסך. (I16ffb, ‏ b/196840810)

גרסה 1.1.0-alpha03

‫1 בספטמבר 2021

androidx.compose.material:material-*:1.1.0-alpha03 משוחרר. גרסה 1.1.0-alpha03 מכילה את הקומיטים האלה.

תכונות חדשות

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

שינויים ב-API

  • נוספה שיטת בדיקה לקבלת הגבולות של החיתוך. (I6b28e)
  • הוספנו גודל מינימלי של משטח המגע ל-ViewConfiguration לשימוש בסמנטיקה ובקלט של מצביע, כדי להבטיח נגישות. (Ie861c)

גרסה 1.1.0-alpha02

‫18 באוגוסט 2021

androidx.compose.material:material-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את הקומיטים האלה.

External Contribution

  • תוקן אופן הפעולה של SwipeableState במקרה שבו ההיסט של ההחלקה נמצא בטווח של שגיאת עיגול של עוגן. (I03d39, b/191993377)

גרסה 1.1.0-alpha01

4 באוגוסט 2021

androidx.compose.material:material-*:1.1.0-alpha01 משוחרר. גרסה 1.1.0-alpha01 מכילה את הקומיטים האלה.

שינויים ב-API

  • עדכון של שיטת DrawScope#drawImage שצורכת מקור ומלבנים של יעד כדי לצרוך פרמטר FilterQuality אופציונלי. האפשרות הזו שימושית לפיקסל ארט שנועד להיות מפוקסל כשמגדילים אותו, כדי ליצור אמנות שמבוססת על פיקסלים. בוצע עדכון של BitmapPainter + Image composable כדי שיכללו גם פרמטר אופציונלי של FilterQuality (Ie4fb0, ‏ b/180311607)
  • שם הקומפוזיציה BadgeBox שונה ל-BadgedBox, והפרמטרים שונו כך שיתקבלו קומפוזיציות Badge. נוסף רכיב Badge שהוא תוכן התג האופייני ל-BadgedBox. (I639c6)
  • נוסף הרכיב NavigationRail. מידע על השימוש זמין במסמכי התיעוד ובדוגמאות (I8de77)

תיקוני באגים

  • נוספו דוגמה של פס ניווט שמוצמד לתחתית וסרטון הדגמה של אפליקציית הקטלוג. (I3cffc)
  • תיבות הדו-שיח פועלות עכשיו בהתאם להתנהגות של שינוי הגודל בפלטפורמה. כדי לשנות את ההתנהגות הזו, צריך להגדיר את הערך של usePlatformDefaultWidth ל-false. (Iffaed, b/192682388)
  • נוספה הדגמה של פס ניווט לאפליקציית הקטלוג. (I04960)
  • הוספנו הדגמה של תג לאפליקציית הקטלוג. (If285d)

גירסה 1.0

גרסה 1.0.5

‫3 בנובמבר 2021

androidx.compose.material:material-*:1.0.5 משוחרר. גרסה 1.0.5 מכילה את הקומיטים האלה.

תיקוני באגים

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

גרסה 1.0.4

‫13 באוקטובר 2021

androidx.compose.material:material-*:1.0.4 משוחרר. גרסה 1.0.4 מכילה את הקומיטים האלה.

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

  • העדכון כולל תלות ב-Kotlin 1.5.31

גרסה 1.0.3

‫29 בספטמבר 2021

androidx.compose.material:material-*:1.0.3 משוחרר. גרסה 1.0.3 מכילה את הקומיטים האלה.

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

  • העדכון כולל תלות ב-Kotlin 1.5.30

גרסה 1.0.2

‫1 בספטמבר 2021

androidx.compose.material:material-*:1.0.2 משוחרר. גרסה 1.0.2 מכילה את הקומיטים האלה.

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

גרסה 1.0.1

4 באוגוסט 2021

androidx.compose.material:material-*:1.0.1 משוחרר. גרסה 1.0.1 מכילה את הקומיטים האלה.

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

  • העדכון כולל תלות ב-Kotlin 1.5.21.

גרסה 1.0.0

‫28 ביולי 2021

androidx.compose.material:material-*:1.0.0 משוחרר. גרסה 1.0.0 מכילה את הקומיטים האלה.

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

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

בעיות מוכרות

  • אם אתם משתמשים ב-Android Studio Bumblebee Canary 4 או ב-AGP‏ 7.1.0-alpha04/7.1.0-alpha05, יכול להיות שתיתקלו בקריסה הבאה:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    כדי לפתור את הבעיה, צריך להגדיל באופן זמני את minSdkVersion ל-24 ומעלה בקובץ build.gradle. נפתור את הבעיה הזו בגרסה הבאה של Android Studio Bumblebee וב-AGP 7.1. (b/194289155)

גרסה 1.0.0-rc02

‫14 ביולי 2021

androidx.compose.material:material-*:1.0.0-rc02 משוחרר. גרסה 1.0.0-rc02 מכילה את הקומיטים האלה.

תיקוני באגים

  • תיבות הדו-שיח פועלות עכשיו בהתאם להתנהגות של שינוי הגודל בפלטפורמה. כדי לשנות את אופן הפעולה הזה, צריך להגדיר את הארגומנט usePlatformDefaultWidth לערך false. (Iffaed, b/192682388)

גרסה 1.0.0-rc01

1 ביולי 2021

androidx.compose.material:material-*:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 כוללת את הקומיטים האלה.

שינויים ב-API

  • נוסף רכיב BadgeBox. מידע על השימוש זמין במסמכים ובדוגמאות (I5e284)
  • השם של useDefaultMaxWidth ב-PopupProperties שונה ל-usePlatformDefaultWidth. (I05710)
  • עכשיו אפשר להשתמש ברוחב המסך המלא בתיבות דו-שיח. (I83929, ‏ b/190810877)
  • נוספה הטמעה של פס הזזה לטווח ניסויי (I2f4b3)

תיקוני באגים

  • כדי להתאים למפרטים של Material Design, הרכיב OutlinedTextField עם קלט לא תקין הפסיק להשתמש בצבע שגיאה לתווית כשהתווית משמשת כplaceholder. האפשרות השנייה נכונה כשאין טקסט בשדה הטקסט ושדה הטקסט לא מודגש. בעקבות השינוי הזה, גם המשמעות של הפרמטר error:Boolean בפונקציה TextFieldColors.labelColor() השתנתה: עכשיו הפונקציה תחזיר false גם אם הקלט לא תקין, אם התווית משמשת כplaceholder. (I45f78)

גרסה 1.0.0-beta09

‫16 ביוני 2021

androidx.compose.material:material-*:1.0.0-beta09 משוחרר. גרסה 1.0.0-beta09 מכילה את הקומיטים האלה.

שינויים ב-API

  • נוסף פרמטר Shape ל-OutlinedTextField כדי לאפשר התאמה אישית של צורת הגבול (I8f39e, ‏ b/181322957)
  • המאפיין TextOverflow משתנה למחלקה מוטבעת. (I433af)

תיקוני באגים

  • המסך החצי שקוף ב-BottomDrawer, ‏ BackdropScaffold ו-ModalBottomSheetLayout ייעלם אם יועבר Color.Unspecified (I2d899, ‏ b/182063309)

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

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

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

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

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

  • כלל של method ייראה כך:

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

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

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

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

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

מה עושים הכללים?

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

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

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

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

איך זה עובד?

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

גרסה 1.0.0-beta08

‫2 ביוני 2021

androidx.compose.material:material-*:1.0.0-beta08 משוחרר. גרסה 1.0.0-beta08 מכילה את הקומיטים האלה.

תכונות חדשות

שינוי ב-API שמשפיע על ההתנהגות

  • שינוי שמשפיע על התנהגות: עכשיו הכרטיס צורך קליקים, כך שקליקים שנוספו דרך Card(Modifier.clickable) לא יפעלו. מומלץ להשתמש בעומס יתר ניסיוני חדש של כרטיס שמקבל onClick. (Ia8744, b/183775620)
    • נוספה פונקציית Card overload חדשה שמטפלת בקליקים וגם בפונקציות אחרות שאפשר ללחוץ עליהן: אינדיקציה, interactionSource, מופעל/מושבת. לא ניתן להשתמש בכרטיס רגיל שאי אפשר ללחוץ עליו עם Modifier.clickable כי הכרטיס לא יחתוך את האדווה במקרים האלה.
  • שינוי שמשפיע על התנהגות: עכשיו הרכיב Surface צורך קליקים, כך שקליקים שנוספו באמצעות Surface(Modifier.clickable) לא יפעלו. מומלץ להשתמש בעומס החדש של הרכיב Surface שמקבל onClick. (I73e6c, b/183775620)
    • נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שאפשר ללחוץ עליה: אינדיקציה, interactionSource, מופעל/מושבת. אי אפשר להשתמש במשטח רגיל שלא ניתן ללחוץ עליו עם Modifier.clickable כי המשטח לא יחתוך את סימן האדווה במקרים האלה.

שינויים ב-API

  • FabPosition בוצעה המרה של enum לכיתה מוטבעת כדי לתמוך בהרחבה פוטנציאלית בעתיד (I030fb)
  • בוצע רפקטורינג של השימוש בסוגי enum כדי להשתמש במחלקות מוטבעות, כדי למנוע בעיות בשימוש במשפטי when מקיפים כשמוסיפים ערכי enum חדשים. (I2b5eb)
  • נוסף פסק זמן להקשה על רכיבים שאפשר ללחוץ עליהם או להפעיל/להשבית אותם, כדי למנוע הצגת אפקט אדווה במהלך גלילה או גרירה (Ia2704, b/168524931)
  • המאפיינים הסמנטיים ContentDescription ו-Text הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API משופרים לבדיקה כדי להשתמש בשינויים האלה (Ica6bf,‏ b/184825850)
  • הפרמטר Modifier.focusModifier() הוצא משימוש והוחלף בפרמטר Modifier.focusTarget() (I6c860)
  • החלפנו את ה-enum‏ FocusState בממשק FocusState (Iccc1a, ‏ b/187055290)
  • הוסר LocalRippleNativeRendering עכשיו שההטמעה של האפקט החזותי של לחיצה על מסך עם תמיכה בתצוגה יציבה (I7fab3, b/188569367)

תיקוני באגים

  • Modifier.onGloballyPositioned() השתנה כך שהוא מדווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591)
  • נוסף קובץ README לקטלוג הקיים של חומרים ל-Compose. (If9191)

גרסה 1.0.0-beta07

‫18 במאי 2021

androidx.compose.material:material-*:1.0.0-beta07 משוחרר. גרסה 1.0.0-beta07 מכילה את הקומיטים האלה.

שינויים ב-API

  • כבר לא צריך להשתמש בשיטות הרחבה לתמיכה במסלולים ב-Navigation Compose. (I22beb, ‏ b/172823546)

גרסה 1.0.0-beta06

‫5 במאי 2021

androidx.compose.material:material-*:1.0.0-beta06 משוחרר. גרסה 1.0.0-beta06 כוללת את הקומיטים האלה.

שינויים ב-API

  • העברנו את Ripple לשימוש פנימי ב-RippleDrawable במכשירי Android. המשמעות היא שאנימציות של גלים יתרחשו ב-RenderThread, ולכן הן יהיו חלקות גם כשה-UI thread נמצא בעומס, למשל כשמנווטים בין מסכים. השינוי הזה לא משפיע על ממשק ה-API של ripple, אבל יכול להיות שיהיו שינויים בהתנהגות כתוצאה מהשינוי הזה. כדי לעזור בהעברה, נוסף LocalRippleNativeRendering. צריך לציין ערך של false ל-CompositionLocal הזה כדי לחזור להטמעה הקודמת של האפקט הגלי בתוך CompositionLocalProvider. ה-API הזה הוא זמני ויוסר בעתיד. אם נתקלתם בבעיות שגרמו לכם להשתמש ב-API הזה, אתם מוזמנים לדווח על באג. (I902f8, b/168777351, b/183019123)
  • נוספו ממשקי API של נגישות CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן אוסף ופריטים בו לשירותי נגישות (Id54ef, ‏ b/180479017)
  • נוסף API לנגישות error שמאפשר לסמן צומת שמכיל קלט לא תקין (I12997, ‏ b/180584804, ‏ b/182142737)

תיקוני באגים

  • עדכנו את הטמעת ה-insets של קטלוג Material של Compose מהכתובת: https://github.com/google/accompanist/pull/365. (I25dc3)
  • רכיבי צאצא מסוג Row ו-Column עם משקל(fill = false) כבר לא גורמים לרכיב האב למלא את כל השטח הזמין של הציר הראשי. (Ied94d, b/186012444, b/184355105)

גרסה 1.0.0-beta05

21 באפריל 2021

androidx.compose.material:material-*:1.0.0-beta05 משוחרר. גרסה 1.0.0-beta05 מכילה את הקומיטים האלה.

תיקוני באגים

  • הוספנו תמונות של רכיבים, כלי לבחירת ערכת נושא וכתובות URL ספציפיות יותר לתפריט לקטלוג הקיים של Compose Material. (I9b58e)

גרסה 1.0.0-beta04

7 באפריל 2021

androidx.compose.material:material-*:1.0.0-beta04 משוחרר. גרסה 1.0.0-beta04 כוללת את הקומיטים האלה.

שינויים ב-API

  • שינוי ב-API: DrawerState state לא מרחיב יותר את experimental SwipeableState.
    • שינוי ב-API: הרכיב BottomDrawerState מסומן עכשיו כניסיוני, כדי להתאים לרכיב BottomDrawer שכבר מסומן כניסיוני (I81114, ‏ b/181656094)
  • שינוי השם של hideSoftwareKeyboard ושל showSoftwareKeyboard ב-SoftwareKeyboardController ל-hide() ול-show() בהתאמה.
    • סיפקנו את הממשק המלא של CompositionLocal עבור LocalSoftwareKeyboardController, כדי לאפשר את ההגדרה שלו (שימושי במיוחד בבדיקות) (I579a6)
  • הוספנו API לנגישות של LiveRegion. אם הצומת מסומן כאזור פעיל, שירותי הנגישות יודיעו למשתמש באופן אוטומטי על השינויים בו (Idcf6f, ‏ b/172590946)

תיקוני באגים

  • הוספנו הטמעה של קטלוג חומרים של Compose למודול קיים. חסרים כרגע: תמונות של רכיבי ה-tile, בורר העיצוב (יוספו בשינויים הבאים). (Ie7a94)

גרסה 1.0.0-beta03

‫24 במרץ 2021

androidx.compose.material:material-*:1.0.0-beta03 משוחרר. גרסה 1.0.0-beta03 מכילה את הקומיטים האלה.

שינויים ב-API

  • האפשרות DefaultMonotonicFrameClock הוצאה משימוש. התקשרות אל withFrameNanos או אל Recomposer.runRecomposeAndApplyChanges ללא MonotonicFrameClock תגרום עכשיו לשגיאה IllegalStateException. (I4eb0d)
  • נוסף API חדש LeadingIconTab לתמיכה בהצגת סמל וטקסט מוטבע בכרטיסייה. (I23267)

External Contribution

  • ‫[by Jossi Wolf] BottomDrawer עוטף עכשיו את התוכן של משבצת המגירה. ‫BottomDrawer לא יוצר IllegalStateException כשהגובה של רכיב האב הוא אינסופי. אם המגירה התחתונה קטנה מ-50% מהמגירה שמעליה, היא תיפתח למצב מורחב. המסמכים שקשורים ל-BottomDrawerState ול-ModalBottomSheetLayoutState עודכנו. הפונקציה BottomDrawerState#isOpen מחזירה עכשיו את הערך true אם הכרטיס פתוח או מורחב. (I87241)

גרסה 1.0.0-beta02

‫10 במרץ 2021

androidx.compose.material:material-*:1.0.0-beta02 משוחרר. גרסה 1.0.0-beta02 מכילה את הקומיטים האלה.

שינויים ב-API

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

תיקוני באגים

  • החלת הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, ‏ b/174531520)
  • השתנה יישור ברירת המחדל של TopAppBar ו-BottomAppBar ליישור להתחלה, בהתאם ל-Row (Ib2dc7)
  • נוסף מודול חדש וממשק משתמש של placeholder לקטלוג של Compose Material, שמוטמע כרגע בהדגמות קיימות של בדיקות שילוב. (Idfcb3)
  • androidx.compose.ui:ui כבר לא תלוי ב-AppCompat או ב-Fragment. אם אתם משתמשים ב-ComposeView באפליקציה שלכם, ואתם משתמשים ב-Fragment או ב-AppCompat, ודאו שאתם משתמשים ב-AppCompat 1.3+ או ב-Fragment 1.3+‎ – הגרסאות האלה נדרשות כדי להגדיר בצורה נכונה את הבעלים של מחזור החיים והמצב השמור שנדרשים ל-ComposeView. (I1d6fa, b/161814404)

גרסה 1.0.0-beta01

24 בפברואר 2021

androidx.compose.material:material-*:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.

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

שינויים ב-API

  • השם של מגבילי המידות השתנה. השמות של modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)
  • הפונקציות imageResource ו-vectorResource הן עכשיו פונקציות הרחבה במחלקות ImageBitmap ו-ImageVector בהתאמה. הפונקציות load{Image,Vector,Font}Resource נמחקו. (I89130)
  • המשנים של גודל המאפיינים הפנימיים כבר לא ניסיוניים. (I15744)
  • הוסרו טענות dp ‏ (I798d2)
  • הסרנו את הקריאה החוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
  • הפונקציות של Switch, ‏ Checkbox ו-RadioButton הן עכשיו nullable. דוגמאות של תיבות סימון בשורות שאפשר ללחוץ עליהן עודכנו כדי להשתמש בתכונה הזו. ‫(If601b, ‏ b/171819073)
  • הטקסט 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)
  • הוספת הממשק AccessibilityMananger ו-LocalAccessibilityMananger ב-CompositionLocals (I53520)
  • הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed,‏ b/169874631,‏ b/175142755)
  • פס ההזזה תומך עכשיו במצב מופעל/מושבת (I6d56b, b/179793072)
  • נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. ‫(I8817f, ‏ b/177662148)
  • ההגדרה AnimationEndReason.Interrupted הוסרה. אם האנימציה מופסקת, המערכת תפעיל את CancellationException. ‫(I2cbbc, ‏ b/179695417)
  • הוסר @ExperimentalRippleApi והוחלף RippleAlpha בכיתה עם מאפיינים במקום בממשק. (I6df7c)
  • נוסף הממשק TextFieldColors כדי לייצג צבעים שונים שמשמשים ב-TextField וב-OutlinedTextField במצבים שונים. למידע על הטמעה כברירת מחדל, אפשר לעיין ב-TextFieldDefaults.textFieldColors וב-TextFieldDefaults.outlinedTextFieldColors.
  • הוספת משנה selectionGroup שמאפשר לסמן אוסף של רכיבי Tabs או RadioButtons למטרות נגישות (Ie5c29)
  • הוספת LazyListState.animateScrollToItem

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

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

  • כל הפונקציות הניתנות להרכבה שמסומנות ב-@ReadOnlyComposable עוברות עכשיו אימות בזמן ההידור כדי לוודא שהן מבצעות רק קריאות לפונקציות אחרות שניתנות להרכבה ומסומנות ב-@ReadOnlyComposables (I58961)

  • הוסר TargetAnimation API. (If47d1, b/177457083)

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

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

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

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

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

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

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

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

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

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

  • הפונקציות ZoomableController.smoothScaleBy ו-ZoomableController.stopAnimation הן עכשיו פונקציות השהיה. (I7f970, b/177457083)

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

  • בוצעו השינויים הבאים ב-Material API:

    • נוסף הפרמטר contentPadding לרכיב Top/BottomAppBar כדי לאפשר התאמה אישית של הריווח שמוגדר כברירת מחדל.
    • הפרמטרים ב-BackdropScaffold סודרו מחדש כך שהפרמטרים הנדרשים יופיעו לפני הפרמטרים האופציונליים, בהתאם להנחיות ה-API.
    • הפרמטר icon ב-BottomNavigationItem הועבר כך שהוא מופיע אחרי selected ו-onClick.
    • השם של הפרמטר alwaysShowLabels ב-BottomNavigationItem השתנה ל-alwaysShowLabel.
    • השם של הפרמטרים bodyContent בכמה רכיבים השתנה ל-content.
    • הפרמטרים ב-ButtonDefaults.buttonColors() סודרו מחדש. חשוב לשים לב: מכיוון שסוג הפרמטרים לא השתנה, לא תהיה שגיאה בקוד. עם זאת, כדי שהקוד יפעל כמו קודם, צריך לוודא שאתם משתמשים בפרמטרים עם שמות או לעדכן את הסדר באופן ידני.
    • הפרמטר secondaryVariant נוסף אל darkColors(). הצבע הזה בדרך כלל זהה לצבע secondary בעיצוב כהה, אבל אנחנו מוסיפים אותו כדי לשמור על עקביות ולאפשר התאמה אישית נוספת.
    • הוסרו ElevationDefaults ו-animateElevation() מ-API ציבורי כי לא היה בהם שימוש נפוץ או שהם לא היו שימושיים.
    • השם של onValueChangeEnd ב-Slider שונה ל-onValueChangeFinished והוגדר כ-nullable.
    • כדי לשמור על עקביות, שינינו את השם של הפרמטר text ב-Snackbar ל-content.
    • נוסף פרמטר contentPadding ל-DropdownMenuItem כדי לאפשר התאמה אישית של שולי ברירת המחדל, ו-content הפך לתוסף ב-RowScope.
    • השם של ModalDrawerLayout שונה ל-ModalDrawer.
    • השם של BottomDrawerLayout שונה ל-BottomDrawer.
    • (I1cc66)
  • הקומפוננטה BasicTextField מקבלת עכשיו Brush במקום Color כדי לאפשר התאמה אישית טובה יותר (I83a36)

  • הפונקציות imageResource ו-vectorResource הן עכשיו פונקציות הרחבה במחלקות ImageBitmap ו-ImageVector בהתאמה. הפונקציות load{Image,Vector,Font}Resource נמחקו. (I89130)

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

תיקוני באגים

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

גרסה 1.0.0-alpha12

10 בפברואר 2021

androidx.compose.material:material-*:1.0.0-alpha12 משוחרר. גרסה 1.0.0-alpha12 מכילה את הקומיטים האלה.

שינויים ב-API

  • הפונקציה Modifier.pointerInput מחייבת עכשיו שימוש במפתחות remember כדי לציין מתי קורוטינת הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (I849cd)
  • הערכים BottomDrawerLayout ו-ListItem סומנו כ-‎ @ExperimentalMaterialApi (Id766e)
  • נוסף PaddingValues.Absolute שאפשר להשתמש בו בממשקי API שמקבלים PaddingValues. (Ia5f30)
  • השיטה onImeActionPerformed הוצאה משימוש. במקומה צריך להשתמש ב-KeyboardActions (If0bbd, ‏ b/179071523)
  • כדי להתאים טוב יותר את מוסכמות מתן השמות ל-ImageBitmap ול-ImageVector, השם ImagePainter שונה ל-BitmapPainter כדי ליצור הקבלה ל-VectorPainter. ‫(Iba381, ‏ b/174565889)
  • הפונקציות Animatable.snapTo ו-Animatable.stop הן עכשיו פונקציות השהיה (If4288)
  • הפונקציה ComponentActivity.setContent הועברה אל androidx.activity.compose.setContent במודול androidx.activity:activity-compose. (Icf416)
  • הוסרו שיטות של פירוק מבנה והעתקה (copy()) מכמה מחלקות שבהן השימוש בהן היה נדיר. ‫(I26702, ‏ b/178659281)
  • הפיכת הפונקציות halfExpand()‎ ו-expand()‎ ב-ModalBottomSheetState לפנימיות (Ic914e)
  • הפונקציה Indication#createInstance השתנתה ל-@Composable, והפונקציה LocalIndication השתנתה כך שתכיל Indication ולא () -> Indication. (I5eeea, ‏ b/157150564)
  • העברנו את AlertDialog ו-DropdownMenu כך שיהיו זמינים רק ב-Android בשלב הזה. נוסף פרמטר PopupProperties ל-DropdownMenu כדי לאפשר הגדרה נוספת של ה-Popup הבסיסי. (I9c443)
  • הפונקציה loadFontResource הוצאה משימוש. צריך להשתמש ב-fontResource במקום זאת. הפונקציות imageResource,‏ loadImageResource,‏ vectorResource ו-loadVectorResource הוצאו משימוש. במקומו צריך להשתמש ב-painterResource. (I6b809)
  • הוסרו הפרמטרים toggle ו-toggleModifier מהרכיב DropdownMenu, והשמות של dropdownModifier, dropdownOffset ו-dropdownContent שונו ל-modifier, offset ו-content בהתאמה. התפריט הנפתח מתנהג עכשיו באופן עקבי עם Popup, שבו פריסת ההורה משמשת למיקום התפריט. ברוב המקרים אפשר להעביר את toggle כך שיהיה באותה רמה כמו DropdownMenu, ולעטוף את שניהם בתג Box. מידע נוסף על השימוש ב-API הזה מופיע בדוגמה המעודכנת במסמכי התיעוד. (I884fb)
  • הפונקציה toIntPx()‎ שונה ל-roundToPx()‎. (I9b7e4, b/173502290)
  • השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
  • נוספו פעולות סמנטיות להרחבה ולכיווץ. נוספו expand ו-halfExpand ב-ModalBottomSheetState ‏ (Ib5064)
  • המאפיין Modifier.dragGestureFilter הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-Modifier.pointerInput { detectDragGestures (...)}. אפשרות נוספת היא להשתמש ב-Modifier.draggable לגרירות בציר אחד (I0ba93,‏ b/175294473)
  • שונה השם של Ambients כדי להתאים לשינוי השם של Ambient -> CompositionLocal. בעבר, השם של Ambients היה AmbientFoo, ועכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
  • הבחירה הועברה לבסיס. (I7892b)
  • בדומה להסרה הקודמת של state { 0 } composable, ועכשיו אנחנו מעודדים שימוש ב-remember { mutableStateOf(0) }, אנחנו עומדים להסיר את savedInstanceState { 0 } composable. במקום זאת, כדאי להשתמש ב-rememberSaveable { mutableStateOf(0) }, והוא ישמור וישחזר אוטומטית אם אפשר לאחסן את הסוג שמשמש בתוך MutableState ב-Bundle. אם בעבר העברתם אובייקט מותאם אישית של saver, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable עם פרמטר stateSaver. השימוש ייראה כך: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • נוסף ProgressBarRangeInfo.Indeterminate כדי לסמן סרגלי התקדמות לא מוגדרים לצורך נגישות (I6fe05)
  • ההערה @ComposableContract הוצאה משימוש, ועכשיו יש שלוש הערות ספציפיות יותר במקומה.

    • התפקיד של @ComposableContract(restartable = false) השתנה. התפקיד החדש הוא @NonRestartableComposable
    • התפקיד של @ComposableContract(readonly = true) השתנה. התפקיד החדש הוא @ReadOnlyComposable
    • התפקיד של @ComposableContract(preventCapture = true) השתנה. התפקיד החדש הוא @DisallowComposableCalls
    • @ComposableContract(tracked = true) הוסר.
    • (I60a9d)
  • הוצאנו משימוש את כלי השירות emptyContent() ו-(@Composable () -> Unit).orEmpty() כי הם כבר לא משפיעים לטובה על הביצועים או על הערך (I0484d)

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

  • ‫Saver, ‏ listSaver(), ‏ mapSaver(), ‏ autoSaver הועברו מ-androidx.compose.runtime.savedinstancestate אל androidx.compose.runtime.saveable (I77fe6)

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

  • הפרמטרים text ו-icon של Tab והפרמטר label של BottomNavigationItem שונו כך שניתן להגדיר אותם כ-nullable, כדי להעביר בצורה טובה יותר את אופן הפעולה של הרכיב כשמספקים את הפרמטרים האלה או לא, כי הם משפיעים על הגודל והפריסה של הרכיב. אם אתם מעבירים כרגע את הערך emptyContent() כדי לציין שאין טקסט, סמל או תווית, אתם צריכים להשתמש במקום זאת בערך null. (I57ed4)

  • שינוי השם של פרמטר הצבע contentColorFor ל-backgroundColor (I5bb67)

  • הוצאנו משימוש את TabDefaults והחלפנו אותו ב-TabRowDefaults. (I0f189)

  • השקנו את ColorMatrix API שמשמש לשינוי ערכי RGB של תוכן המקור. ביצענו שינוי בקוד של ColorFilter API כך שיהיה ממשק ויתאים להטמעה של PathEffect. (Ica1e8)

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

  • ‫Add SemanticsProperties.PaneTitle API. (I20d5a)

  • הוספנו פרמטרים מופעלים ל-Tab ול-BottomNavigationItem, כדי למנוע את האפשרות ללחוץ עליהם. השינוי שבוצע הוא ב-BottomNavigationItem, שהוגדר כ-RowScope.BottomNavigationItem, כדי להבהיר טוב יותר את דרישות הפריסה שלו ב-API. (Id683d)

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

  • הוספת הפרמטר layoutDirection ל-createOutline של Shape. כך אפשר ליצור צורות שמתאימות לכיוון הפריסה. (I57c20, ‏ b/152756983)

  • בוצעה הסרה של Recomposer.current(). ‫[Abstract]‏ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. ההרכבה מחדש והטיקים של האנימציה שמבוססים על withFrameNanos מושהים בזמן שמחזור החיים של המארח מושהה. (I38e11)

תיקוני באגים

  • הסמל יוגדל בהתאם לגודל שלו, תוך התחשבות במגבילי הגודל שחלים עליו. לדוגמה, Icon(.., modifier = Modifier.size(50.dp) יוצג עכשיו במרחב בגודל 50x50dp. (Ib2ba9, b/178796190)

גרסה 1.0.0-alpha11

‫28 בינואר 2021

androidx.compose.material:material-*:1.0.0-alpha11 משוחרר. גרסה 1.0.0-alpha11 מכילה את הקומיטים האלה.

שינויים ב-API

  • קידום של חלק מממשקי Material API כך שהם לא יהיו יותר @Experimental (I5d20e)
  • נוסף פרמטר של תיאור תוכן לתמונה ולסמל. הוא משמש כדי לספק תיאור לשירותי הנגישות (I2ac4c)
  • שינוי הממשקים של פרמטרים עם מצב ב-Material כך שיכללו פונקציות @Composable שמחזירות State<T>. הוספנו את Animatable.asState() כדי להקל על ההמרה של רכיב Animatable לרכיב State. בנוסף, הפונקציה animateElevation משתנה להיות תוסף השעיה ב-Animatable. (If613c)
  • ‫Snackbar, ‏ SnackbarHost, ‏ SnackbarHostState לא @ExperimentalMaterialAPI יותר (Id1fb5)
  • השינויים Typography,‏ Shapes ו-TabPosition כבר לא מסווגים כסוגי נתונים. הוספת פונקציית העתקה לטיפוגרפיה ולצורות כדי להחליף את אלה שנוצרו. (I40037)
  • נמחקו כמה ממשקי API של Material שהוצאו משימוש בעבר (Ifaa25)

תיקוני באגים

  • הפונקציות onCommit,‏ onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API‏ SideEffect ו-DisposableEffect ‏ (If760e)
  • הוצא משימוש מעבר שמבוסס על TransitionDefinition ‏ (I0ac57)
  • יש עכשיו תמיכה במצב התחלתי ב-updateTransition ‏ (Ifd51d)
  • הקומפוזיציה WithConstraints עברה שינוי משמעותי, שמה שונה ל-BoxWithConstraints והיא הועברה ל-foundation.layout. (I9420b, ‏ b/173387208)
  • הוצאה משימוש של scrollBy ללא השהיה, הסרה של scrollTo ללא השהיה

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

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

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

  • אי אפשר יותר להתאים אישית את אפקט האדווה שמופיע בלחצן וב-FloatingActionButton באמצעות אספקת Indication חדש דרך AmbientIndication – אף פעם לא הייתה כוונה להשתמש בדרך הזו כדי להתאים אישית את הרכיבים האלה, ועכשיו הרכיבים האלה עקביים עם רכיבי Material אחרים. כדי להתאים אישית את אפקט האדווה באפליקציה, אפשר לעיין במאמר בנושא RippleTheme. (I546c5)

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

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

  • תוקן באג שגרם לכך שלא הייתה אפשרות להגדיר את הרוחב של שדה הטקסט של Material כך שיהיה קטן מ-280dp (I78373)

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

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

  • עכשיו אפשר להוסיף כמה רכיבי פריסה צאצאים לרכיב Surface. ‫(I66a92, ‏ b/144488459)

  • הפונקציות invalidate ו-compositionReference() הוצאו משימוש, ועכשיו משתמשים בפונקציות currentRecomposeScope ו-rememberCompositionReference בהתאמה. (I583a8)

  • השינוי PopupPositionProvider לשימוש בקואורדינטות יחסיות לחלון, ולא בקואורדינטות גלובליות. השם של parentGlobalBounds שונה ל-anchorBounds, והערך של windowGlobalBounds שונה ל-windowSize: IntSize (I2994a)

  • הערכים של משך הזמן וזמן הפעולה יוחלפו בערכים של אלפיות שנייה ארוכות, ובשלב הזה תוסר התלות של קלט מצביע במחלקות האלה. ‫(Ia33b2, ‏ b/175142755, ‏ b/177420019)

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

  • אפשר ליצור עכשיו רכיבים מסוג clickable, ‏ toggleable ו-selectable מחוץ לרכיב Composition‏ (I0a130, ‏ b/172938345, ‏ b/175294473)

  • הפונקציה Easing השתנתה לממשק פונקציונלי (Ib14e5)

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

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

  • הוסרו שיטות ניסיוניות של monotonicFrameAnimationClockOf ‏ (Ib753f, ‏ b/170708374)

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

  • נוסף Modifier.toolingGraphicsLayer שמוסיף משנה של שכבת גרפיקה כשמפעילים בדיקה. (I315df)

  • הפונקציה FocusRequester.createRefs מסומנת עכשיו כניסיונית כי היא עשויה להשתנות. (I2d898, b/177000821)

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

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

  • ממשק ה-API של גרפיקה וקטורית עודכן כדי לתמוך בניתוח של גוון שהוחל על השורש של הגרפיקה הווקטורית. (Id9d53, b/177210509)

גרסה 1.0.0-alpha10

‫13 בינואר 2021

androidx.compose.material:material-*:1.0.0-alpha10 משוחרר. גרסה 1.0.0-alpha10 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוספנו לרכיב Velocity חלקים ופעולות מתמטיות. (Ib0447)
  • שינינו את השם של @ExperimentalTesting ל-@ExperimentalTestApi כדי לשמור על עקביות עם הערות דומות של ממשקי API ניסיוניים (Ia4502, ‏ b/171464963)
  • שינוי השם של Position ל-DpOffset והסרה של getDistance()‎ (Ib2dfd)
  • שם הפונקציה Color.useOrElse() שונה ל-Color.takeOrElse() (Ifdcf5)
  • הוספת Toggle ל-foundation Strings.kt (I4a5b7, ‏ b/172366489)
  • הרכיבים FlowRow ו-FlowColumn הוצאו משימוש. במקומו, צריך להשתמש בפריסה בהתאמה אישית. (I09027)
  • הפונקציות Modifier.focus()‎ ו-Modifier.focusRequester()‎ הוצאו משימוש. במקום זאת, צריך להשתמש ב-Modifier.focusModifier()‎ וב-Modifier.focusReference()‎. (I75a48, ‏ b/175160751, ‏ b/175160532, ‏ b/175077829)
  • העברנו את nativeClass למודול ui והגדרנו אותו כפנימי. השימוש ב-nativeClass עודכן בהטמעות של equals כך שישתמשו ב-'is MyClass' במקום זאת. (I4f734)

תיקוני באגים

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

גרסה 1.0.0-alpha09

‫16 בדצמבר 2020

androidx.compose.material:material-*:1.0.0-alpha09 משוחרר. גרסה 1.0.0-alpha09 מכילה את הקומיטים האלה.

שינויים ב-API

  • נוסף API להפעלת אנימציה של סגירה באופן ידני ולגרירה ב-Modifier.swipeable (Iaa17a, ‏ b/162408885)
  • שונה השם של אובייקטים מסוג *Constants, כמו ButtonConstants, כך שיסתיימו ב-Defaults, כמו ButtonDefaults. בנוסף, המערכת מסירה קידומות default מיותרות ממאפיינים באובייקטים החדשים האלה. (Ibb915, b/159982740)
  • ‫Compose תומך בשיטות getter של מאפיינים שיכולות ליצור קריאות שניתנות להרכבה. התמיכה בזה לא תבוטל, אבל התחביר להצהרה על מאפיין getter כ-@Composable ישתנה.

    התחביר שהוצא משימוש לביצוע הפעולה הזו היה באמצעות הוספת הערה לנכס עצמו:

        @Composable val someProperty: Int get() = ...
    

    התחביר הנכון לביצוע הפעולה הזו הוא באמצעות הערה של שיטת ה-getter של המאפיין:

       val someProperty: Int @Composable get() = ...
    

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

  • נוספה ספריית androidx.compose.material:material-ripple שמכילה ממשקי API של אפקט הגל כדי לאפשר בניית רכיבים אינטראקטיביים בלי להשתמש בשאר הספרייה של Material. הפונקציה rememberRippleIndication הוצאה משימוש והוחלפה בפונקציה rememberRipple. (Ibdf11)

תיקוני באגים

  • פונקציות למדא במגדירי היסט מחזירות עכשיו IntOffset ולא Float. (Ic9ee5, ‏ b/174137212, ‏ b/174146755)
  • בוצע רפקטורינג ב-ShaderBrush כדי ליצור באופן עצלן מופע של Shader כשמידע על גודל סביבת הציור זמין. השימוש ב-Brush مفيد להגדרת מעברי צבע שממלאים את כל גבולות הציור של רכיב שאפשר להוסיף לו רכיבים אחרים בזמן ההוספה, בלי להטמיע הטמעות מותאמות אישית של DrawModifier.

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

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

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

  • העברנו את Dp.VectorConverter,‏ Position.VectorConverter וכו' אל animation-core, והוצאנו משימוש את VectorConveters הישנים (If0c4b)

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

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

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

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

  • התנהגות המיקום של רכיבי DropdownMenu השתנתה מעט בהתאם למפרט Material. ‏(I34c72, ‏ b/168594123)

  • הוספנו תמיכה ב-InteractionState עבור TextFields. (I61d91)

  • נוספה הפונקציה Modifier.clearAndSetSemantics כדי לנקות את הסמנטיקה של צאצאים ולהגדיר סמנטיקה חדשה. (I277ca)

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

גרסה 1.0.0-alpha08

2 בדצמבר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha08 יוצאות. גרסה 1.0.0-alpha08 מכילה את הקומיטים האלה.

שינויים ב-API

  • ‫MaterialTheme מגדיר עכשיו את הצבעים הנכונים של נקודות האחיזה לבחירה ושל הרקע של הבחירה. באפליקציות שאינן Material, אפשר להשתמש ב-AmbientTextSelectionColors באופן ידני כדי להתאים אישית את הצבעים שמשמשים לבחירה. (I1e6f4, b/139320372, b/139320907)
  • נוספה בדיקת Lint לשמות ולמיקום של פרמטרים של lambda שניתנים להרכבה, כדי לבדוק את העקביות עם ההנחיות של Compose. בנוסף, העברנו חלק מממשקי ה-API באמצעות children כשם של פונקציית ה-lambda האחרונה שלהם אל content, בהתאם לבדיקת ה-lint ולהנחיות. (Iec48e)
  • שם המחלקה VectorAsset שונה ל-ImageVector הועברה ושם המחלקה VectorAsset שונה ל-Builder כדי להיות מחלקה פנימית של ImageVector בהתאם להנחיות של מועצת ה-API. הוספנו typealias של VectorAssetBuilder כדי לקשר אל ImageVector.Builder לצורך תאימות. (Icfdc8)
  • שינינו את השם של ImageAsset ושל שיטות קשורות ל-ImageBitmap. (Ia2d99)
  • העברנו את מאפייני הסמנטיקה של הרכיבים הבסיסיים אל ui (I6f05c)
  • הפונקציה fun RippleIndication() הוצאה משימוש והוחלפה בפונקציה rememberRippleIndication() כדי לשמור על עקביות עם ממשקי API אחרים. (Id8e2c)
  • נוסף פרמטר singeLine ל-BasicTextField, ל-TextField ול-OutlinedTextField. מגדירים את הפרמטר הזה לערך true כדי להפוך את שדה הטקסט לשורה אחת שאפשר לגלול בה אופקית. (I57004, ‏ b/168187755)

תיקוני באגים

  • הוספת פעולה סמנטית Dismiss (ביטול) (I2b706)
  • העברנו את ממשקי DrawModifier API מהחבילה androidx.compose.ui לחבילה androidx.compose.ui.draw. נוצר הקובץ DrawModifierDeprecated.kt כדי לכלול כינויי טיפוסים ושיטות עזר שיעזרו במעבר מ-API שיצא משימוש ל-API הנוכחי. (Id6044, ‏ b/173834241)
  • השם של Modifier.drawLayer שונה ל-Modifier.graphicsLayer. בנוסף, עודכנו מחלקות קשורות ל-GraphicsLayer בהתאם למשוב על ה-API. (I0bd29, b/173834241)
  • הוסר <T> מההצהרה של SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8)
  • הוספנו את ממשקי ה-API של Modifier.scale/rotate כאמצעי נוחות ל-drawLayer.
    • השם של Modifier.drawOpacity שונה ל-Modifier.alpha
    • שינית את השם של Modifier.drawShadow לModifier.shadow (I264ca, b/173208140)
  • השם של פרמטר היישור של Box שונה ל-contentAlignment. (I2c957)
  • השם של משני offsetPx שונה ל-offset. עכשיו הם מקבלים פרמטרים של lambda במקום State. (Ic3021, ‏ b/173594846)
  • הוספנו את ממשקי ה-API‏ SweepGradientShader ו-SweepGradientBrush. (Ia22c1)
  • הוספנו בדיקת לינט לפרמטרים של Modifier בפונקציות Composable. בדיקת ה-lint הזו בודקת את השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר כדי לוודא שהם עקביים עם ההנחיות של Compose. (If493b)
  • ‫TextFieldValue API עודכן
    • made TextFieldValue.composition readonly
    • הוסרה חריגה שמופעלת בטווח בחירה לא תקין (I4a675, b/172239032)
  • נוספה שיטת Modifier.drawLayer() חדשה עם עומס יתר. הוא מקבל בלוק lambda ב-GraphicsLayerScope חדש שבו מגדירים את פרמטרים השכבה באופן שמאפשר לדלג על קומפוזיציה מחדש ועל פריסה מחדש כשמתרחש שינוי במצב. ה-DrawLayerModifier הוא עכשיו פנימי, כהכנה להעברת הלוגיקה שלו לשיטת placeable.placeWithLayer() של LayoutModifier ‏ (I15e9f,‏ b/173030831)
  • הוצאנו משימוש את הסביבות המקיפות ששמן מסתיים ב-Ambient והחלפנו אותן במאפיינים חדשים שמתחילים ב-Ambient, בהתאם להנחיות של סביבות מקיפות אחרות ושל Compose API. (I33440)
  • נוסף אימות של lint כדי לוודא שמפעלים של Modifier משתמשים ב-androidx.compose.ui.composed {} באופן פנימי, במקום להיות מסומנים כ-@Composable. (I3c4bc)
  • הארגומנט mergeAllDescendants של הסמנטיקה נקרא עכשיו mergeDescendants. (Ib6250)
  • השליטה בזמן בבדיקות (TestAnimationClock והשימושים בה) היא עכשיו ניסיונית (I6ef86, b/171378521)
  • הסרת המודול הישן ui-test וה-stubs שלו (I3a7cb)
  • השם של TextUnit.Inherit שונה ל-TextUnit.Unspecified כדי לשמור על עקביות עם יחידות אחרות. (Ifce19)
  • הממשק של ההתאמה עודכן והפך לפונקציונלי. (I46a07, b/172311734)
  • השם של המזהה שונה ל-layoutId ב-LayoutIdParentData. השם של Measurable.id השתנה ל-Measurable.layoutId. (Iadbcb, b/172449643)

גרסה 1.0.0-alpha07

‫11 בנובמבר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha07 יוצאות. גרסה 1.0.0-alpha07 מכילה את הקומיטים האלה.

שינויים ב-API

  • התכונה Emphasis הוצאה משימוש והוחלפה בתכונה AmbientContentAlpha. ‫AmbientContentAlpha הוא הפשטה פשוטה יותר שמייצגת את אלפא התוכן המועדף לחלק מההיררכיה, בדומה לאופן שבו AmbientContentColor מייצג את צבע התוכן המועדף. הטקסט והסמל צורכים עכשיו את הערך הנוכחי מ-AmbientContentAlpha כברירת מחדל, ואפשר לבצע את הפעולה הבאה באופן ידני: color.copy(alpha = AmbientContentAlpha.current) כדי לקבל את אותו אפקט ברכיבים. במקום להשתמש ב-ProvideEmphasis, אפשר פשוט לספק ערך ישירות דרך AmbientContentAlpha ולהשתמש ברמות ברירת המחדל החדשות ב-ContentAlpha כדי להחליף את EmphasisLevels הישן. (Idf03e, ‏ b/159017896)
  • נוסף androidx.compose.material.AmbientContentColor כדי להחליף את androidx.compose.foundation.AmbientContentColor (I84f7b, ‏ b/172067770)
  • הוספת androidx.compose.material.Text כדי להחליף את androidx.compose.foundation.Text כרכיב Text ברמה גבוהה שניתן להחיל עליו ערכת נושא. כדי להשתמש ברכיב טקסט בסיסי שלא משתמש בצבע או בסגנון טקסט מהעיצוב, צריך להשתמש ב-BasicText. (Ie6ae0)
  • נוספה התכונה maxLines לרכיבי TextFields‏ (Ib2a5b)
  • עדכון של TextFields כדי לקבל KeyboardOptions ‏ (Ida7f3)
  • כשמחשבים שכבות-על של גובה, Surface משתמש עכשיו בגובה האבסולוטי (הכולל), כך שאם Surface מוטמע בתוך Surface אחר, המערכת תשתמש בגובה המשולב כדי לצייר את שכבת-העל. (I7bd2b, ‏ b/171031040)

תיקוני באגים

  • captureToBitmap הועברו אל captureToImage. (I86385)
  • המאפיינים AmbientTextStyle,‏ ProvideTextStyle ו-AmbientContentColor הוצאו משימוש. במקום זאת, צריך להשתמש בגרסאות החדשות שזמינות בספריית Material. באפליקציות שאינן אפליקציות Material, במקום זאת צריך ליצור מערכת עיצוב משלכם עם סביבות נושא ספציפיות שאפשר להשתמש בהן ברכיבים שלכם. (I74acc, b/172067770)
  • המאפיין foundation.Text הוצא משימוש והוחלף במאפיין material.Text. ל-API בסיסי של טקסט שלא צורך ערכים מעיצוב, אפשר לעיין ב-androidx.compose.foundation.BasicText. (If64cb)
  • שינוי השם של KeyboardOptions ל-ImeOptions ‏ (I82f36)
  • העברנו את KeyboardType ו-ImeAction אל KeyboardOptions (I910ce)
  • ה-BaseTextField הוצא משימוש. במקום זאת, משתמשים ב-BasicTextField. (I896eb)
  • ההערה ExperimentalSubcomposeLayoutApi הוסרה. מעכשיו אפשר להשתמש ב-SubcomposeLayout בלי להוסיף @OptIn (I708ad)
  • הפונקציות FirstBaseline ו-LastBaseline הועברו לחבילה androidx.compose.ui.layout ‏ (Ied2e7)
  • ה-API של הסמלים עודכן כך שיקבל Color.Unspecified כצבע גוון אפשרי, שיצייר את הנכס או את הכלי שסופקו ללא ColorFilter. בעבר, ניסיונות להתעלם מהגוון באמצעות Color.Unspecified היו גורמים להוספת גוון עם צבע שקוף, ובסופו של דבר לא היה מוצג כלום. (I049e2, ‏ b/171624632)
  • השם של המאפיין relativePaddingFrom שונה ל-paddingFrom. נוסף משנה המאפיין paddingFromBaseline כדי שיהיה נוח יותר לציין מרחקים מגבולות הפריסה לקווי הבסיס של הטקסט. (I0440a, ‏ b/170633813)
  • השם של LaunchedTask שונה ל-LaunchedEffect כדי לשמור על עקביות עם ממשקי ה-API של SideEffect ו-DisposableEffect. כדי לעודד שימוש בשיטות מומלצות, אסור להשתמש ב-LaunchedEffect ללא פרמטרים של נושא. (Ifd3d4)
  • האובייקט MeasureResult הועבר מחוץ ל-MeasureScope. (Ibf96d, ‏ b/171184002)
  • כמה סמלים שקשורים לפריסה הועברו מ-androidx.compose.ui אל androidx.compose.layout.ui. ‫(I0fa98, b/170475424)

גרסה 1.0.0-alpha06

28 באוקטובר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha06, androidx.compose.material:material-icons-core:1.0.0-alpha06 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha06 יוצאות. גרסה 1.0.0-alpha06 מכילה את הקומיטים האלה.

שינויים ב-API

  • ‫androidx.compose.foundation.Icon הועבר אל androidx.compose.material.Icon. אפשר גם להשתמש ברכיב Image / Modifier.paint() עם Painter אם לא רוצים להשתמש בספריית Material. (I9f622)
  • המאפיין FloatingActionButtonElevation נוסף כדי לייצג את הגובה מעל פני השטח שבו לחצני FAB נמצאים במצבים שונים. מידע על ההטמעה שמוגדרת כברירת מחדל (I2d4f5) זמין במאמר FloatingActionButtonConstants.defaultElevation()
  • הוספת ממשק SwitchColors לייצוג צבעים שמשמשים מתג במצבים שונים. כדי להתאים אישית את הצבעים האלה, אפשר לעיין ב-SwitchConstants.defaultColors. (I93805)
  • הוספת ממשקי ButtonElevation ו-ButtonColors כדי לייצג את הגובה והצבעים שמשמשים את הלחצנים במצבים שונים. כדי להתאים אישית את הפרמטרים האלה, אפשר לעיין בפונקציות שמוגדרות כברירת מחדל ב-ButtonConstants. (Ic5b7b)
  • נוסף הממשק RadioButtonColors שמייצג את הצבעים שמשמשים את RadioButton במצבים שונים. אפשר להשתמש ב-RadioButtonConstants.defaultColors() כדי להתאים אישית את הצבעים שמשמשים במצבים שונים. (I74130)
  • נוסף הממשק CheckboxColors כדי לייצג את הצבעים שמשמשים לתיבת סימון במצבים שונים. אפשר להיעזר ב-CheckboxConstants.defaultColors() כדי להתאים אישית את הצבעים שמשמשים במצבים שונים. (I7dbdb)

תיקוני באגים

  • רכיבי Material לא מגדירים יותר את הגובה כ-zIndex. כלומר, בתוך אותו הורה, הילד עם גודל הצל הגדול יותר לא יצויר מעל הילד עם הצל הקטן יותר באופן אוטומטי. אם עדיין נדרשת התנהגות כזו, צריך להגדיר את Modifier.zIndex() באופן ידני במקומות הרלוונטיים (I70417,‏ b/170623932)
  • הוצאנו משימוש את VectorPainter לטובת rememberVectorPainter כדי לציין בצורה טובה יותר שה-API הניתן להרכבה משתמש באופן פנימי ב-remember כדי לשמור נתונים לאורך זמן בהרכבות. (Ifda43)
  • מפעילים מעברים ב-ComposeTestRule ומסירים את האפשרות להפעיל את הסמן המהבהב מ-ComposeTestRule. (If0de3)
  • נוספה אפשרות למקלדת עם שורה אחת ל-CoreTextField (I72e6d)
  • שינינו את השם של Radius API ל-CornerRadius כדי להבהיר טוב יותר את אופן השימוש בו ב-Compose. עדכנו את התיעוד כדי לציין שרדיוסים שליליים של פינות מוצמדים לאפס. (I130c7, b/168762961)
  • בוצע רפקטורינג של DrawScope ו-ContentDrawScope כך שיהיו ממשקים במקום מחלקות אבסטרקטיות
    • נוצרה הטמעה של CanvasDrawScope של DrawScope
    • בוצע רפקטורינג בהטמעות של DrawScope כדי להשתמש ב-CanvasScope במקום זאת
    • נוצר DrawContext כדי לעטוף תלויות עבור DrawScope
    • הוסרו שיטות שיצאו משימוש ב-DrawScope ‏ (I56f5e)
  • התיבה הפכה לפונקציה מוטמעת. (Ibce0c, ‏ b/155056091)

גרסה 1.0.0-alpha05

‫14 באוקטובר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha05 יוצאות. גרסה 1.0.0-alpha05 מכילה את הקומיטים האלה.

שינויים ב-API

  • חלונות קופצים ותיבות דו-שיח יורשים עכשיו את FLAG_SECURE מהחלון הראשי. נוספה גם אפשרות להגדיר את זה באופן מפורש (I64966, ‏ b/143778148, ‏ b/143778149)
  • הערך שמוגדר כברירת מחדל לסף של מצבים ב-Modifier.swipeable הוא עכשיו 56.dp (Iab825, ‏ b/168610267)
  • כל מצבי ה-scaffold מסומנים כ-‎ @Stable. ‏ drawerGesturesEnabled ב-ScaffoldState הועבר ל-Scaffold עצמו. (I36645, ‏ b/168297016)
  • הוסר סוג שניתן להגדרה כ-nullable מפרמטרים של Scaffold lambda. אפשר להשתמש ב-emptyContent() כדי לייצג מצב שבו אין תוכן לפרמטר נתון. (I2b318, ‏ b/157633857, ‏ b/158551084)
  • הוצאה משימוש של ממשקי ה-API‏ contentColor()‎ ו-currentTextStyle()‎, והחלפתם בממשקי ה-API‏ AmbientContentColor ו-AmbientTextStyle בהתאמה. אפשר לגשת לערך הנוכחי באמצעות .current במאפיין הסביבה, כמו בכל סביבה אחרת. השינוי הזה בוצע כדי לשמור על עקביות ולמנוע מצב שבו יש כמה דרכים להשיג את אותה המטרה. בנוסף, שמות של כמה מאפייני סביבה שונו כדי לתאר טוב יותר את המטרה שלהם, באופן הבא:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • נוסף AmbientElevationOverlay, שמאפשר להתאים אישית או להשבית את שכבת העל של הגובה שמוחלת כברירת מחדל על Surfaces בעיצוב כהה. (I5b74d)

תיקוני באגים

  • במסגרת התהליך של סטנדרטיזציה של ערכי sentinel עבור מחלקות מוטבעות, שם המחלקה Color.Unset שונה ל-Color.Unspecified כדי לשמור על עקביות עם מחלקות מוטבעות אחרות (I97611, b/169797763).
  • הוצג TextOverflow.None. כשהערך של overflow הוא None, הרכיב Text לא יטפל יותר בגלישה, וידווח על הגודל בפועל שלו לרכיב LayoutNode. (I175c9, ‏ b/158830170)
  • השם של launchInComposition שונה ל-LaunchedTask כדי להתאים להנחיות של Compose API (I99a8e)
  • השם של OnPositionedModifier שונה ל-OnGloballyPositionedModifier, והשם של onPositioned()‎ שונה ל-onGloballyPositioned(). ‏(I587e8,‏ b/169083903)

גרסה 1.0.0-alpha04

‫1 באוקטובר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha04 יוצאות. גרסה 1.0.0-alpha04 מכילה את הקומיטים האלה.

שינויים ב-API

  • חושף פרמטרים של InteractionState ברכיבי Material עם מצב, כדי לאפשר העברה של המצב וקריאה או שליטה במצב. (Iaca5f, ‏ b/168025711, ‏ b/167164434)
  • שינוי הפרמטרים *color ב-RadioButton וב-TriStateCheckbox כדי לאפשר התאמה אישית מלאה של הצבעים שמשמשים בכל מצב, וגם שינוי האופן שבו הצבעים עוברים בין מצבים, אם רוצים. מידע נוסף זמין בפונקציות הצבע החדשות animateDefault* ב-CheckboxConstants וב-RadioButtonConstants. (I1c532)
  • שם הפונקציה rememberBackdropState שונה ל-rememberBackdropScaffoldState והוסף פרמטר נוסף לשעון האנימציה. שונה השם של הפרמטר backdropScaffoldState של BackdropScaffold ל-scaffoldState. השם שונה מ-BackdropConstants ל-BackdropScaffoldConstants. (Ib644d)
  • נוסף רכיב ניסיוני BottomSheetScaffold. (Ie02f0, b/148996320)
  • נוסף רכיב ניסיוני ModalBottomSheetLayout. (Ic209e, ‏ b/148996320)
  • השם של ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation שונה ל-defaultElevation, ועכשיו מוחזר ערך Dp במקום AnimatedValue. (I5f3ed)

תיקוני באגים

  • עודכנו הרבה ממשקי API של גרפיקה
    • ממשקי ה-API של שינוי קנה מידה וסיבוב עודכנו כך שישתמשו בפרמטר Offset יחיד כדי לייצג את קואורדינטת נקודת המשען, במקום בפרמטרים נפרדים של מספרים ממשיים לקואורדינטות x/y ב-DrawScope וב-DrawTransform
    • הוסרו השיטות Rect.expandToInclude ו-Rect.join
    • עודכן התיעוד של הרדיוס כך שיכלול גם צורה אובלית בנוסף לצורה אליפטית
    • הוספנו תיעוד שמציין שאסור לקרוא ישירות לבנאי הציבורי של מחלקת Radius מוטבעת, אלא ליצור מופעים של אובייקטים של Radius באמצעות בנאי הפונקציות שלהם
    • הוסרו ממשקי RoundRect API לשאילתות topRight, bottomRight, bottomCenter וכו'.
    • הוצא משימוש Rect.shift לטובת Rect.translate
    • הוסרו ממשקי ה-API‏ RoundRect.grow ו-Rect.shrink
    • השם של RoundRect.outerRect שונה ל-Rect.boundingRect
    • הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
    • השם של RoundRect.longestSide שונה ל-RoundRect.maxDimension
    • השם של RoundRect.shortestSide שונה ל-RoundRect.minDimension
    • הפונקציה RoundRect.center שונתה והפכה למאפיין במקום לפונקציה
    • העדכון של ה-constructor של RoundRect מאפשר להשתמש במאפייני Radius במקום בפרמטרים נפרדים של ערכי הרדיוס x/y
    • הוסרו ממשקי API של גודל שהניחו שמדובר במלבן עם מקור ב-0,0
    • הוספנו API להשמדה ל-Radius
    • העברנו פונקציות שונות של התוסף RoundRect להיות מאפיינים במקום
    • ‫(I8f5c7, ‏ b/168762961)
  • הוצא משימוש foundation.Box. במקומה צריך להשתמש ב-foundation.layout.Box. (Ie5950, ‏ b/167680279)
  • השם של Stack שונה ל-Box. ה-Box הקיים יוצא משימוש לטובת ה-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את רכיבי הצאצא אחד מעל השני כשיש לו כמה רכיבי צאצא – זה שונה מ-Box הקודם, שהתנהג בצורה דומה ל-Column. (I94893, ‏ b/167680279)
  • הפרמטרים של קישוט התיבה הוצאו משימוש. אם רוצים להוסיף קישוטים או ריווח לתיבה, צריך להשתמש במקום זאת בשינויים (Modifier.background, ‏ Modifier.border, ‏ Modifier.padding) (Ibae92, ‏ b/167680279)
  • עודכנו הרבה ממשקי API של גרפיקה
    • עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה בהיקף מוגבל כדי לציין שהטרנספורמציה חלה רק בתוך הקריאה החוזרת (callback) ומוסרת אחרי שהקריאה החוזרת מופעלת.
    • עדכון במסמכי התיעוד של clipPath כדי להפנות אל Path במקום אל מלבן מעוגל
    • תוקן הרווח במסמכי התיעוד של הפרמטר right ב-clipPath
    • השם של DrawScope.drawCanvas שונה ל-drawIntoCanvas והוסר פרמטר הגודל
    • שמות הפרמטרים dx/dy בשיטת inset שונו ל-horizontal ו-vertical
    • נוספה עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
    • הסרנו את התיעוד בנושא שיטת ההזחה, שצוין בו שההזחה תחול על כל 4 הצדדים
    • עדכון התיעוד של המחלקה Rect
    • עדכון ההערות על פרמטרים של Rect כדי להתאים לסגנון kdoc
    • הוסרו Rect.join ו-Rect.expandToInclude
    • נוצר עומס יתר עבור Rect.translate(offset) ו-Rect.shift הוצא משימוש
    • ‫(If086a, ‏ b/167737376)
  • מנענו ייבוא סטטי של תוכן בהיקפי פריסה (לדוגמה, alignWithSiblings ב-RowScope). במקום זאת, צריך להשתמש בחלופה של היקף מפורש: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. ‫(I216be, ‏ b/166760797)

גרסה 1.0.0-alpha03

‫16 בספטמבר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha03 יוצאות. גרסה 1.0.0-alpha03 מכילה את הקומיטים האלה.

שינויים ב-API

  • שינוי השם של הפרמטר BottomNavigationItem ל-onClick (I91925, ‏ b/161809324)onSelect
  • נוסף פרמטר InteractionState לרכיבים BottomNavigationItem ו-Tab, שמאפשר להעביר את הסטטוס הזה ולהתאים את האופן שבו הרכיב מוצג בסטטוסים שונים. (Ia3e9e, b/168025711)
  • הסרת הפרמטרים disabledBackgroundColor ו-disabledContentColor מהלחצנים. במקום זאת, צריך להשתמש בפונקציות ברירת המחדל החדשות של הצבעים בתוך ButtonConstants. אם כבר הגדרתם במפורש את contentColor או backgroundColor, במקום זאת כדאי להשתמש בפונקציות ברירת המחדל האלה ולהתאים אישית חלק מהפרמטרים או את כולם כדי למנוע דריסת הצבע בשני המצבים (מופעל או מושבת). (If9b52)
  • צבע הרקע של שדה הטקסט לא כולל יותר שקיפות אלפא באופן מרומז. במקום זאת, כל צבע שמוגדר באמצעות הפרמטר backgroundColor יוחל ישירות. (Iecee9, ‏ b/167951441)
  • השם של InnerPadding שונה ל-PaddingValues. ‫(I195f1, ‏ b/167389171)
  • הפרמטרים resistanceFactorAtMin ו-resistanceFactorAtMax ב-Modifier.swipeable הוחלפו בפרמטר התנגדות יחיד. נוספה שיטה חדשה defaultResistanceConfig ב-SwipeableConstants. (I54238)
  • הוספת תמיכה בהגבהה מונפשת עם מצב ללחצן וללחצן פעולה צף. הגובה משתנה עכשיו באנימציה בין מצב ברירת המחדל לבין מצב לחוץ. כדי להתאים אישית את הגובה בין המצבים, צריך להשתמש בערכים ButtonConstants.defaultAnimatedElevation() ו-FloatingActionButtonConstants.defaultAnimatedElevation() במקום להגדיר ערך שטוח של Dp בכל המקרים. (I37925)
  • התווית הפכה לפרמטר אופציונלי בתוך TextField ו-OutlinedTextField (I267f6, ‏ b/162234081)

תיקוני באגים

  • פונקציות בדיקה גלובליות כמו onNode או waitForIdle הוצאו משימוש. צריך להעביר את השימוש בהן למקבילות החדשות שלהן שמוגדרות ב-ComposeTestRule ‏ (I7f45a)
  • הוצאנו משימוש את DpConstraints ואת ממשקי ה-API שמשתמשים בו. (I90cdb, ‏ b/167389835)
  • הפרמטרים minWidth ו-maxWidth של widthIn שונו ל-min ול-max. שינוי דומה בוצע גם בפרמטרים preferredWidthIn,‏ heightIn ו-preferredHeightIn. (I0e5e1, ‏ b/167389544)
  • הסרת פעולות סמנטיות של גלילה קדימה או אחורה. נוספו שלבים ב-AccessibilityRangeInfo. (Ia47b0)
  • השימוש ב-gravity שונה באופן עקבי ל-align או ל-alignment ב-APIs של פריסות. ‫(I2421a, b/164077038)
  • נוספו onNode ושיטות גלובליות אחרות ב-ComposeTestRule כי השיטות הגלובליות הנוכחיות יוצאו משימוש. (Ieae36)
  • הועברו createAndroidComposeRule וAndroidInputDispatcher מandroidx.ui.test.android אל androidx.ui.test (Idef08, ‏ b/164060572)

גרסה 1.0.0-alpha02

‫2 בספטמבר 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha02, androidx.compose.material:material-icons-core:1.0.0-alpha02 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha02 יוצאות. גרסה 1.0.0-alpha02 מכילה את הקומיטים האלה.

שינויים ב-API

  • נוסף רכיב BackdropScaffold ניסיוני. (Iad908)

תיקוני באגים

  • ‫Matrix4 הוחלף ב-Matrix. כל החלקים האחרים בחבילת vectormath הוסרו. (Ibd665, ‏ b/160140398)

גרסה 1.0.0-alpha01

‫26 באוגוסט 2020

הגרסאות androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 ו-androidx.compose.material:material-icons-extended:1.0.0-alpha01 יוצאות. גרסה 1.0.0-alpha01 מכילה את הקומיטים האלה.

בעיה ידועה

‫= אי אפשר להסיר את התו הראשון בחומר TextField באמצעות מקש Backspace (b/165956313)

גרסה 0.1.0-dev

גרסה 0.1.0-dev17

‫19 באוגוסט 2020

הגרסאות androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 ו-androidx.compose.material:material-icons-extended:0.1.0-dev17 יוצאות. גרסה 0.1.0-dev17 מכילה את הקומיטים האלה.

שינויים ב-API

  • הוסרו הרכיבים RadioGroup ו-RadioGroupItems שהוצאו משימוש בעבר. שימוש ב-Row וב-RadioBotton במקום זאת (I381b7, ‏ b/163806637)
  • הוסרו קריאות חוזרות (callback) של onFocusChanged מ-TextField. במקומו, צריך להשתמש ב-Modifier.focusObserver. (I51089, ‏ b/161297615)
  • המאפיין Modifier.drawBorder הוצא משימוש. במקומו צריך להשתמש ב-Modifier.border. הוחלף סוג הנתונים Border ב-BorderStroke ‏ (I4257d, ‏ b/158160576)
  • שמות של כמה מאפיינים ב-SwipeableState שונו: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. נוספה פונקציה rememberSwipeableState ליצירת SwipeableStates. (I2fc9c, ‏ b/163129614, ‏ b/163132293)
  • נוספה תמיכה ב-Snackbar עם מיקום ותור מתאים. אפשר לגשת אליו באמצעות פונקציית ההשעיה של SnackbarHostState.showSnackbar. בנוסף:
    • נוספו רכיבי SnackbarHost. הוא מכיל חטיפי מידע על סמך המצב, ואחראי למעבר בין חטיפי מידע.
    • הוספנו את SnackbarHostState כדי לאפשר שליטה בהודעות סנאקבר ובמארחי סנאקבר, וכדי להפריד אותו מ-ScaffoldState. אפשר לגשת למצב הזה גם דרך scaffoldState.snackbarHostState.
    • נוסף Snackbar overload כדי לתמוך בממשק משותף בין snackbarHostState לבין snackbars עצמם. (I79aaa)
  • נוסף פרמטר enabled ל-IconButton, והפרמטרים ב-IconToggleButton סודרו מחדש (I0a941, b/161809385, b/161807956)
  • הוסרה הגרסה של ListItem עם API מבוסס-מחרוזת. אפשר להשתמש במקום זאת בגרסת משבצת. (Ib8f57, ‏ b/161804681)
  • הוסר הרכיב FilledTextField שיצא משימוש. במקומו צריך להשתמש ב-TextField כדי לקבל את ההטמעה של Material Design של שדה טקסט מלא. (I5e889)
  • ‫AlertDialog משתמש עכשיו ב-FlowRow ללחצנים (I00ec1, ‏ b/161809319, ‏ b/143682374)
  • נוספו פרמטרים ב-Modifier.swipeable לשינוי רמת ההתנגדות כשמבצעים החלקה מעבר לגבולות. הוסרו פרמטרים של [min/max]Value. (I93d98)
  • נוסף הפרמטר backgroundColor לרכיב LinearProgressIndicator והוסר הריווח הפנימי מהרכיב CircularProgressIndicator. נוסף ProgressIndicatorConstants.DefaultProgressAnimationSpec חדש שאפשר להשתמש בו כ-AnimationSpec כברירת מחדל כשמנפישים התקדמות בין ערכים (If38b5, ‏ b/161809914, ‏ b/161804677)
  • הפרמטר האופציונלי velocityThreshold נוסף ל-Modifier.swipeable. (I698ba)
  • bottomBarSize,‏ fabSize ואחרים, והם כבר לא זמינים ב-ScaffoldState. במקום זאת, צריך להשתמש ב-Modifier.onPosition ברכיב שרוצים לדעת את הגודל שלו. נוספו הפרמטרים contentColor ו-Modifier ל-Scaffold ‏ (Ic6f7b,‏ b/161811485,‏ b/157174382).
  • שינוי השם והסדר של חלק מהפרמטרים בכרטיסייה כדי ליצור עקביות עם ממשקי API אחרים (Ia2d12, ‏ b/161807532)
  • מפצלים את TabRow ל-TabRow ול-ScrollableTabRow, ומסירים את isScrollable מ-TabRow. בנוסף, נחשף edgePadding ב-ScrollableTabRow, שמאפשר שליטה ברווח הפנוי לפני הכרטיסיות או אחריהן. ‫(I583e8, ‏ b/161809544)
  • האובייקט TabRow הוסר והוחלף ב-TabConstants. המאפיין TabRow.TabPosition הועבר לרמה העליונה (TabPosition), והשם של indicatorContainer שונה ל-indicator. במסמכי התיעוד ובדוגמאות מוסבר איך להשתמש ב-API המעודכן ובערכי ברירת המחדל. (I54d45, ‏ b/161809544)
  • הפרמטר thresholds ב-Modifier.swipeable עבר שינוי קל. עכשיו הוא מקבל זוג מצבים (מסוג T) ומחזיר את ערך הסף ביניהם בצורה של ThresholdConfig. הפרמטר dismissThresholds נוסף ל-SwipeToDismiss, שהוא lambda‏ (DismissDirection) -> ThresholdConfig. (Ie1080)
  • בסליידר יש יותר צבעים להתאמה אישית מדויקת (I73e64, b/161810475)
  • הפרמטר של צבע הכרטיס שונה ל-backgroundColor (I01fc1, ‏ b/161809546)
  • עכשיו אפשר להתאים אישית את צבע הרקע והתוכן של בר החטיפים (I238f2, b/161804381)
  • נוספו פרמטרים להתאמה אישית של modifier, ‏ backgroundColor, ‏ contentColor ו-scrimColor לרכיב Drawers (I23655, ‏ b/161804378)
  • הקומפוזיציה state { ... } הוצאה משימוש, ועכשיו מומלץ להשתמש בקריאות מפורשות ל-remember { mutableStateOf(...) } כדי לשמור על בהירות. השינוי הזה מצמצם את כלל ממשקי ה-API ואת מספר המושגים לניהול מצב, והוא תואם לתבנית by mutableStateOf() להעברת מאפייני מחלקה. (Ia5727)
  • הפרמטר padding של הכפתור שונה ל-contentPadding (Id252e, b/161809394)
  • הוספת רכיב ניסיוני של Material‏ SwipeToDismiss. (I129e5)

תיקוני באגים

  • הוסרו onChildPositioned ו-OnChildPositionedModifier. המפתחים צריכים להשתמש ב-onPositioned וב-OnPositionedModifier בפריסת הצאצא במקום זאת. ‫(I4522e, ‏ b/162109766)
  • נוספה פונקציית lambda‏ mergePolicy ל-SemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג סמנטי של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך של ההורה אם הוא כבר קיים, אחרת בערך של הצאצא. (Iaf6c4, b/161979921)
  • ‫IntSize היא עכשיו מחלקה מוטבעת (I2bf42)
  • השם של PlacementScope.placeAbsolute() שונה ל-PlacementScope.place(), והשם הקודם PlacementScope.place() שונה ל-PlacementScope.placeRelative(). כתוצאה מכך, השיטה PlacementScope.place() לא תשקף יותר אוטומטית את המיקום בהקשרים של כתיבה מימין לשמאל. אם רוצים להשתמש במדיניות הזו, צריך להשתמש במדיניות PlacementScope.placeRelative() במקום זאת. ‫(I873ac, ‏ b/162916675)
  • הוצאה משימוש של PxBounds לטובת Rect. עדכנו את כל השימושים ב-PxBounds ל-rect והוספנו הערות מתאימות של deprecate/replace with כדי לעזור במיגרציה. (I37038, ‏ b/162627058)
  • השם RRect שונה ל-RoundRect כדי להתאים יותר לדפוסי השמות של Compose. נוצרו בנאים דומים של פונקציות ל-RRect, והוצאו משימוש בנאים של פונקציות RRect ‏ (I5d325).

גרסה 0.1.0-dev16

‫5 באוגוסט 2020

הגרסאות androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16 ו-androidx.compose.material:material-icons-extended:0.1.0-dev16 יוצאות. גרסה 0.1.0-dev16 מכילה את הקומיטים האלה.

שינויים ב-API

  • המחלקות Colors הן עכשיו מחלקות סופיות ולא ממשקים. במקום להרחיב ולספק הטמעה מותאמת אישית, כדאי ליצור סביבה חדשה לאובייקט של ערכת הנושא המותאמת אישית, ולגשת לאובייקט של ערכת הנושא דרך הסביבה החדשה ברכיבים, בדומה לאופן שבו MaterialTheme פועל באופן פנימי. (Ibae84)
  • שינינו את השם ColorPalette ל-Colors, כדי שיהיה מיפוי טוב יותר למערכת הצבעים של Material, וכדי למנוע בלבול לגבי ColorPalette כאובייקט עיצוב 'כללי', ולא כיישום ספציפי של מערכת הצבעים של Material. בנוסף, שמות המשתנים lightColorPalette ו-darkColorPalette משתנים ל-lightColors ו-darkColors בהתאמה. (I9e976, b/161812111)
  • משנה את השם של הפרמטר text של BottomNavigationItem ל-label, של onSelected ל-onSelect, של activeColor ל-selectedContentColor, של inactiveColor ל-unselectedContentColor ומעדכן את סדר הפרמטרים בהתאם להנחיות. ‫(Icb605, ‏ b/161809324)
  • Modifier.stateDraggable עבר שינוי מוחלט ושמו שונה ל-Modifier.swipeable. נוסף מחלקה חדשה בשם SwipeableState, והמחלקה DrawerState והמחלקה BottomDrawerState עברו רפקטורינג כדי לרשת ממנה. ‫[Modal/Bottom]DrawerLayout לא מקבל יותר פרמטר onStateChange. (I72332, ‏ b/148023068)
  • חבילת foundation.shape.corner שוטחה ל-foundation.share (I46491, ‏ b/161887429)
  • נוספה ההערה ExperimentalMaterialApi. הנושא RippleTheme סומן כניסיוני (Ic5fa0, ‏ b/161784800)
  • השם של Material FilledTextField שונה ל-TextField, והשם של TextField הבסיסי שונה ל-BaseTextField, כדי שיהיה קל יותר למצוא את ה-API הרצוי והפשוט ביותר ולהשתמש בו (Ia6242,‏ b/155482676)

תיקוני באגים

  • המאפיין OnChildPositioned הוצא משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, ‏ b/162109766)
  • טיפלנו בבעיות נרחבות ב-API‏ (I077bc)
    1. הסרה של ממשק OffsetBase שלא בשימוש
    2. התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
    3. שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
    4. העברנו את השיטה nativeCanvas מממשק Canvas כדי לתמוך בצרכנים שרוצים ליצור מופעי Canvas משלהם
    5. נוצר מחלקה של stub EmptyCanvas כדי לבצע refactoring של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null
    6. שינינו את השם של סוגי ה-enum‏ ClipOp ל-Pascal Case
    7. השמות של הערכים המנויים (enum) של FilterQuality שונו ל-Pascal Case
    8. שינינו את השם של סוגי ה-enum של StrokeJoin ל-Pascal Case
    9. שמות הערכים של PointMode שונו ל-Pascal Case
    10. שינוי השם של סוגי ה-enum‏ PaintingStyle ל-Pascal Case
    11. שמות ה-enum של PathFillType שונו ל-Pascal Case
    12. השמות של סוגי ה-enum של StrokeCap שונו ל-Pascal Case
    13. היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
    14. העדכון של DrawScope לא מאפשר יותר שימוש בהעברת הרשאות עצלה לפרמטרים הפנימיים fillPaint ו-strokePaint
    15. בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
    16. עדכון של המחלקה Outline כך שתכלול הערות מסוג @Immutable
    17. העדכון של PathNode כולל הערות @Immutable לכל הוראת נתיב
    18. בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי compose כבר מטפל בהן
    19. הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
    20. עדכנו את מחלקות המברשות ואת בנאי הפונקציות באמצעות ממשקי API של ‎@Immutable ו-‎ @Stable
    21. העדכון של ספירת VertexMode ל-PascalCase
    22. השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה את פרמטרים של קו המכחול בציור אם הם השתנו
    23. העדכון של Size כולל הוספה של API לפירוק מבנה, שינוי השם של UnspecifiedSize ל-Unspecified והסרה של שיטות שלא נמצאות בשימוש
  • העברת תיבת דו-שיח לממשק המשתמש (I47fa6)
  • בוצעה הסרה של SemanticsNodeInteraction.performPartialGesture. במקום זאת, אתם צריכים להשתמש ב-SemanticsNodeInteraction.performGesture. (Id9b62)
  • שינית את השם של SemanticsNodeInteraction.getBoundsInRoot() ל-SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • ממשקי ה-API לתמיכה בכתיבה מימין לשמאל עודכנו. נוסף LayoutDirectionAmbient, שאפשר להשתמש בו כדי לקרוא ולשנות את כיוון הפריסה. המאפיינים Modifier.rtl ו-Modifier.ltr הוסרו. (I080b3)
  • השם של Modifier.deternimateProgress השתנה ל-Modifier.progressSemantics ‏ (I9c0b4)
  • עדכון של material-icons-extended עם הסמלים האחרונים שנוספו ל-Material.io/icons‏ (I4b1d3)
  • צריך לציין במפורש את סוג T ב-transitionDefinition. (I1aded)
  • ה-API‏ Modifier.plus הוצא משימוש. במקומו צריך להשתמש ב-Modifier.then. השימוש במילה 'אז' מעביר מסר חזק יותר של סדר, וגם אוסר על הקלדת Modifier.padding().background() + anotherModifier, מה ששובר את הרצף ומקשה על הקריאה (Iedd58, ‏ b/161529964)
  • השם של AndroidComposeTestRule שונה ל-createAndroidComposeRule. (I70aaf)
  • הוספת isFocused() ו-isNotFocused() SemanticsMatcher. (I0b760)
  • הוסר BaseGestureScope.globalBounds, שאסור להשתמש בו בבדיקות. במקום זאת, אפשר להשתמש בקואורדינטות מקומיות לצומת שאיתו מתבצעת האינטראקציה. (Ie9b08)
  • מיקום קבוע של חלונות קופצים במסכים עם מגרעת. (Idd7dd)
  • השם של Modifier.drawBackground שונה ל-Modifier.background (I13677)

גרסה 0.1.0-dev15

22 ביולי 2020

הגרסאות androidx.compose.material:material:0.1.0-dev15, androidx.compose.material:material-icons-core:0.1.0-dev15 ו-androidx.compose.material:material-icons-extended:0.1.0-dev15 יוצאות. גרסה 0.1.0-dev15 מכילה את הקומיטים האלה.

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

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

שינויים ב-API

  • ההערה @Model הוצאה משימוש. אפשר להשתמש ב-state וב-mutableStateOf כחלופות. ההחלטה להוציא את התכונה הזו משימוש התקבלה אחרי דיונים מעמיקים.

    הצדקה

    ההסבר כולל, בין היתר:

    • צמצום שטח הפנים של ה-API והמושגים שאנחנו צריכים ללמד
    • התאמה טובה יותר לערכות כלים דומות אחרות (Swift UI, ‏ React, ‏ Flutter)
    • החלטה שניתן לבטל. תמיד אפשר להפעיל את @Model מחדש מאוחר יותר.
    • הסרת מקרים מיוחדים של שימוש ושאלות קשות לגבי הגדרת @Model כדברים שאנחנו צריכים לטפל בהם
    • @Model מחלקות נתונים, equals,‏ hashcode וכו'.
    • איך אפשר להגדיר שחלק מהנכסים יהיו 'במעקב' וחלק לא?
    • איך מציינים אם להשתמש בשוויון מבני או בשוויון של הפניה בתצפית?
    • מפחית את ה'קסם' במערכת. ההנחה של המשתמשים לגבי המערכת תהיה יותר ריאלית (למשל, שהיא לא יודעת להשוות בין רשימות)
    • הופך את רמת הפירוט של התצפית לאינטואיטיבית יותר.
    • משפר את יכולת הרפקטורינג ממשתנה -> מאפיין במחלקה
    • יכול להיות שיהיה אפשר לבצע אופטימיזציות ספציפיות למדינה
    • ההגדרה הזו תואמת יותר לשאר המערכת האקולוגית ומפחיתה את אי הבהירות לגבי מצב בלתי משתנה או לגבי 'אימוץ מצב משתנה'

    הערות לגבי העברה

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

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    חלופה 1: משתמשים בפקודה State<OriginalClass> ויוצרים עותקים.

    הגישה הזו פשוטה יותר בזכות מחלקות הנתונים של Kotlin. בקיצור, צריך להפוך את כל מאפייני var הקודמים למאפייני val של מחלקת נתונים, ואז להשתמש ב-state במקום ב-remember, ולהקצות את ערך המצב לעותקים משוכפלים של המקור באמצעות שיטת הנוחות copy(...) של מחלקת הנתונים.

    חשוב לציין שהגישה הזו פועלת רק אם השינויים שבוצעו במחלקה הזו נעשו באותו היקף שבו נוצר המופע State. אם המחלקה משנה את עצמה באופן פנימי מחוץ להיקף השימוש, ואתם מסתמכים על התצפית הזו, הגישה הבאה היא הגישה שבה תרצו להשתמש.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    אפשרות חלופית 2: שימוש ב-mutableStateOf וב-property delegates

    הגישה הזו פשוטה יותר בזכות נציגי המאפיינים של Kotlin ו-mutableStateOf API, שמאפשרים ליצור מופעים של MutableState מחוץ לקומפוזיציה. בעצם, מחליפים את כל המאפיינים var של המחלקה המקורית במאפיינים var עם mutableStateOf כנציג המאפיין שלהם. היתרון הוא שהשימוש בכיתה לא ישתנה בכלל, רק ההטמעה הפנימית שלה. ההתנהגות לא זהה לחלוטין לדוגמה המקורית, כי כל נכס נצפה או נרשם בנפרד, כך שהקומפוזיציות מחדש שרואים אחרי השינוי הזה יכולות להיות מצומצמות יותר (וזה טוב).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)

  • הקריאה החוזרת (callback) ‏onFocusChange בשדות טקסט שונתה ל-onFocusChanged (‏Ida4a1)

  • נוסף פרמטר של ערכי סף ב-stateDraggable כדי לציין ערכי סף בין נקודות עיגון. השתמשנו בערך הזה כדי להגדיר סף של 56dp במגירה התחתונה. בנוסף, BottomDrawerLayout משתמש עכשיו ב-enum נפרד של BottomDrawerState. (I533fa)

  • הסרה של Modifier.ripple שהוצא משימוש בעבר. עכשיו, Clickable משתמש באפקט אדווה כאינדיקציה שמוצגת כברירת מחדל (אם הגדרתם MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש ב-Clickable ולקבל אינדיקציה של אפקט אדווה בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של האפקט, אתם יכולים ליצור ידנית RippleIndication ולהעביר אותו ל-clickable כפרמטר indication. (I663b2, ‏ b/155375067)

  • הוסרה החלפה של רכיב FilledTextField composable שהוצא משימוש (I7f8f8)

  • שינוי השם של אובייקט הכפתור (שמכיל את ברירות המחדל שמשמשות את פונקציית הכפתור) ל-ButtonConstants ‏ (I7c5f7, ‏ b/159687878)

  • משבצת התוכן של הלחצן מתנהגת עכשיו כמו שורה (שימושי כשרוצים להוסיף סמל עם טקסט, אפשר לראות דוגמאות במאמר בנושא כתיבת לחצנים) (I0ff10, b/158677863)

  • הוצאנו משימוש את RadioGroup ו-RadioGroupItem. שימוש ב-Box עם Modifier.selectable, Row ו-Column כדי ליצור קבוצה מתאימה של אפשרויות radioButton לפי העיצוב (I7f5cf, b/149528535)

  • נוסף שדה טקסט עם קו מתאר של Material (I1a518)

  • ה-API‏ androidx.ui.foundation.TextFieldValue ו-androidx.ui.input.EditorValue הוצא משימוש. גם רכיבי ה-TextField,‏ FilledTextField ו-CoreTextField הניתנים להרכבה שמשתמשים בסוג הזה הוצאו משימוש. במקום זאת, צריך להשתמש ב-androidx.ui.input.TextFieldValue (‏I4066d,‏ b/155211005)

  • ‫TabRow.TabPosition לא מכיל מיקום ב-Dp, לא ב-IntPx (I34a07, ‏ b/158577776)

  • השימוש ב-IntPx הוחלף ב-Int. השימוש ב-IntPxPosition הוחלף ב-IntOffset. המאפיין IntPxSize הוחלף במאפיין IntSize. (Ib7b44)

  • כדי לאחד את מספר הכיתות שמשמשות לייצוג מידע על גודל, צריך להשתמש בכיתת הגודל במקום ב-PxSize. היתרון של שימוש במחלקה מוטבעת הוא שאפשר להשתמש בערך ארוך כדי לארוז 2 ערכים מסוג float שמייצגים רוחב וגובה. (Ic0191)

  • הוצאה משימוש של Modifier.ripple. עכשיו, Clickable משתמש באפקט אדווה כאינדיקציה שמוצגת כברירת מחדל (אם הגדרתם MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש ב-Clickable ולקבל אינדיקציה של אפקט אדווה בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של האפקט, אתם יכולים ליצור ידנית RippleIndication ולהעביר אותו ל-clickable כפרמטר indication. (I101cd, b/155375067)

  • ה-API של Scaffold עבר שינוי: השם של כמה פרמטרים השתנה, והוספנו פרמטרים חדשים כדי לאפשר התאמה אישית טובה יותר. נוסף getter לשאילתת גדלים של Fab, ‏ TopBar ו-BottomBar (I0e7ce)

  • נוסף הרכיב DropdownMenu ב-ui-material, הטמעה של תפריט Material Design. (I9bb3d)

  • אפשר להציג או להסתיר את המקלדת הווירטואלית באופן ידני באמצעות SoftwareKeyboardController (Ifb9d6, ‏ b/155427736)

  • ‫Modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג לחיצה/גרירה/אינדיקציה אחרת ברכיבים אינטראקטיביים מותאמים אישית (I8425f, ‏ b/155287131)

  • איחדנו את ההטמעות של CanvasScope, כך שעכשיו יש רק DrawScope ו-ContentDrawScope. שינינו את השם של CanvasScope ל-DrawScope. בוצע עדכון ב-DrawScope כדי להטמיע את הממשק Density ולספק את LayoutDirection מחלקת המשנה DrawScope נמחקה ב-ContentDrawScope בוצע עדכון ב-Painter וב-PainterModifier כדי שלא יחזיקו יותר במאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)

  • שינוי השם של Emphasis.emphasize()‎ ל-Emphasis.applyEmphasis()‎ (Iceebe)

  • לחצנים מושבתים פועלים עכשיו בהתאם למפרט של Material Design (I47dcb, ‏ b/155076924)

  • הוספנו תמיכה ב-FilledTextField בפעולת IME, בשינוי חזותי ובסוג המקלדת (I1f9cf, ‏ b/155075201)

  • הוספת פרמטר strokeWidth ל-CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במגדיר גודל אחר. ‫(Icea16, ‏ b/154919081)

  • הוספת פרמטר strokeWidth ל-CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במגדיר גודל אחר. ‫(Icea16, ‏ b/154919081)

  • הוספנו API של חריץ לסמלים מובילים וסמלים נגררים ב-FilledTextField וטיפול במצב השגיאה (Ic12e0)

  • צבע ברירת המחדל של לחצני ה-FAB ולחצני ה-FAB המורחבים השתנה ל-MaterialTheme.colors.secondary. (I3b9b9, b/154118816)

  • החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null ‏ (Iabaa7)

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

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

  • הוסר הרכיב StaticDrawer. אם אתם צריכים את זה, השתמשו ב-Box עם רוחב שצוין בחומר (I244a7)

  • הוספנו הטמעה של Material Design של שדה טקסט עם מילוי (Ic75cd)

  • נוסף פרמטר של משנה ל-ListItem והפרמטרים סודרו מחדש כדי לקדם את גוף ה-lambda בסוף (I66e21)

  • הוספנו פרמטר בנאי defaultFontFamily ל-Typography, כדי לאפשר הגדרה של משפחת הגופנים שתוגדר כברירת מחדל ותשמש לכל TextStyles שאין להם הגדרה של משפחת גופנים. (I89d07)

  • הסרנו באופן זמני את טבלאות נתוני החומרים מ-API surface. (Iaea61)

  • שינוי השם של פרמטרים ב-Divider composable ‏ (Ic4373)

  • ילדים (Ia6d19)

  • הוסרה MaterialTheme.emphasisLevels. במקומה צריך להשתמש ב-EmphasisAmbient.current כדי לאחזר את רמות ההדגשה (Ib5e40)

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

  • ממשקי API של MaterialTheme כמו MaterialTheme.colors(), ‏ MaterialTheme.typography() שונו כך שיהיו מאפיינים במקום פונקציות. הסרת הסוגריים מקריאות קיימות, לא צפוי שינוי בהתנהגות. (I3565a)

  • בוצע רפקטורינג בממשקי FloatingActionButton API כדי לקבל ביטויי למדה (lambda) שניתנים להרכבה במקום פרימיטיבים. אפשר לעיין בדוגמאות המעודכנות של פרטי השימוש. (I00622)

  • הוספת הפרמטר enabled לרכיבים Checkbox, ‏ Switch ו-Toggleable (I41c16)

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

  • הפונקציות Surface ו-Card הועברו מ-androidx.ui.material.surface אל androidx.ui.material ‏ (I88a6d, ‏ b/150863888)

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

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

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

  • בוצע רפקטורינג של ממשקי Tab API כדי לקבל ביטויי למדה text ו-icon (Ia057e)

  • נוסף הרכיב BottomNavigation. מידע על השימוש זמין במסמכים ובדוגמאות (I731a0)

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

  • החלפנו את ButtonStyle בפונקציות נפרדות והסרנו את העומס העודף של הטקסט (מחרוזת). אפשר לעיין בדוגמאות המעודכנות של פרטי השימוש. (If63ab, b/146478620, b/146482131)

  • שינוי השם של העיבוד Border ל-DrawBorder (I8ffcc)

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

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

  • שינויי תוכנה שעלולים לגרום לכשל ב-API של מצב אווירה. פרטים נוספים זמינים ביומן ובמסמכי התיעוד (I4c7ee, b/143769776)Ambient<T>

  • נוסף רכיב של חומר לימוד. ציוד לפיגומים (I7731b)

  • הוחלף ב-DrawBorder לטובת Border Modifier ‏ (Id335a)

תיקוני באגים

  • השימוש ב-FocusModifier הוצא משימוש והוחלף ב-Modifier.focus,‏ Modifier.focusRequester ו-Modifier.focusObserver. המאפיינים FocusState ו-FocusDetailedState הוצאו משימוש לטובת FocusState2 (I46919, ‏ b/160822875, ‏ b/160922136)
  • הוצאנו משימוש את הרכיבים VerticalScroller ו-HoriziontalScroller. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליצור חוויה מובנית עם התנהגות ופרמטרים של Column/Row, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב שלכם. באופן דומה, הוצאנו משימוש את ScrollerPosition לטובת ScrollState' (I400ce, ‏ b/157225838, ‏ b/149460415, ‏ b/154105299)
  • בוצעו שינויים בממשקי ה-API‏ Modifier.draggable ו-Modifier.scrollable. המאפיין DragDirection הוסר לטובת Orientation. הדרישה לציין מדינה עבור רכיב שאפשר לגלול בו פשוטה יותר עכשיו. השם של ScrollableState שונה ל-ScrollableController (Iab63c, b/149460415)
  • השם של runOnIdleCompose שונה לrunOnIdle (I83607)
  • מאפיינים סמנטיים של ערך יחיד משתמשים עכשיו בסגנון קריאה. לדוגמה, המחרוזת 'semantics { hidden = true }' נכתבת עכשיו כך: ‎'semantics { hidden() }'. (Ic1afd, ‏ b/145951226, ‏ b/145955412)
  • השמות של כמה ממשקי API לבדיקות השתנו כדי שיהיו אינטואיטיביים יותר. כל ממשקי ה-API מסוג findXYZ קיבלו שם חדש: onNodeXYZ. כל ממשקי ה-API מסוג doXYZ קיבלו שם חדש: performXYZ. ‫(I7f164)
  • ה-API של Transition שונה כך שהוא מחזיר TransitionState במקום להעביר את TransitionState לצאצאים. כך ה-API עקבי יותר עם ממשקי animate() API. (I24e38)
  • נוספה מחלקת יחידות IntBounds שמייצגת גבולות של פיקסלים שלמים מפריסת הדף. ה-API של PopupPositionProvider עודכן כדי להשתמש בו. (I0d8d0, b/159596546)
  • נוסף דגל אופציונלי חדש useUnmergedTree לבדיקת כלי חיפוש. (I2ce48)
  • הוסרו ממשקי API לבדיקת גודל שיצאו משימוש. (Iba0a0)
  • הוסר Shader inline class שעטף את NativeShader expect class. שונה השם של NativeShader ל-Shader. המחלקת Shader המוכללת לא הוסיפה ערך משמעותי לממשק ה-API והיא הייתה מחלקה מוכללת, לכן צריך להשתמש ישירות במחלקה NativeShader. (I25e4d)
  • חלונות קופצים, תיבות דו-שיח ותפריטים מקבלים עכשיו בירושה את MaterialTheme ההקשרי (Ia3665, ‏ b/156527485)
  • עכשיו אפשר לגלול בתפריט הנפתח של Material. (Ide699)
  • הוסר פרמטר כיוון הפריסה מבלוק המידה של הפונקציה Layout(). עם זאת, כיוון הפריסה זמין בתוך הקריאה החוזרת דרך אובייקט היקף המדידה (Ic7d9d)
  • שימוש ב-AnimationSpec במקום ב-AnimationBuilder בממשקי ה-API ברמה העליונה כדי להבהיר את הרעיון של הגדרת אנימציה סטטית. -שיפור ה-DSL של המעבר על ידי הסרת הדרישה ל-lambda ליצירת AnimationSpec כמו tween ו-spring. במקום זאת, הם מקבלים ישירות פרמטרים של בנאי. –שיפור נוחות השימוש הכוללת ב-AnimationSpec על ידי פתיחת בנאים במקום להסתמך על בונים. –שינוי משך הזמן וההשהיה של KeyFrames ו-Tween ל-Int. כך נמנעים מהמרות מיותרות של סוגים ומעומס יתר של שיטות (לתמיכה גם ב-Long וגם ב-Int). (Ica0b4)
  • הלחצן 'מעבר' מושבת אם הערך של enabled הוא false (If4624, ‏ b/155941869, ‏ b/159331694)
  • השם של Modifier.tag שונה ל-Modifier.layoutId כדי למנוע בלבול עם Modifier.testTag. (I995f0)
  • המיקומים של קו היישור שמוחזרים מ-Placeable#get(AlignmentLine) הם עכשיו לא null. אם קו היישור שנשלחה לגביו שאילתה חסר, יוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
  • בוצע רפקטורינג של מחלקת Radius כדי שתהיה מחלקה מוטמעת. הוסרו שיטות ליצירת רכיבים נלווים לטובת בנאי פונקציות עם פרמטר ברירת מחדל, כדי שהרדיוס לאורך ציר ה-y יתאים לפרמטר הרדיוס של ציר ה-x שהוא חובה.

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

  • כדי לצמצם את מספר המחלקות שמשמשות לייצוג נתוני מיקום, מומלץ להשתמש במחלקה Offset במקום ב-PxPosition. השימוש במחלקה מוטבעת מאפשר לנצל את היתרונות של long כדי לארוז 2 ערכי float לייצוג של היסטים x ו-y שמיוצגים כערכי float. (I3ad98)

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

  • הוצאנו משימוש את הרכיב שאפשר להפעיל ולהשבית. מומלץ להשתמש ב-Modifier.toggleable במקום זאת (I35220, ‏ b/157642842)

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

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

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

  • תוקנה הבעיה שבה הפונקציה onClick לא הופעלה עבור DropdonMenuItems. (I3998b, ‏ b/157673259)

  • התג MutuallyExclusiveSetItem הוצא משימוש. במקומו צריך להשתמש ב-Modifier.selectable. (I02b47, b/157642842)

  • התג TestTag הוצא משימוש. במקומו, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)

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

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

  • רכיב VerticalScroller מספק עכשיו Column מחוץ לקופסה. הקומפוננטה HorizontalScroller מספקת עכשיו Row מחוץ לקופסה. (Ieca5d, b/157020670)

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

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

  • בוצעו שינויים ב-DrawLayer modifiers API: השם של outlineShape שונה ל-shape, ערך ברירת המחדל שלו הוא RectangleShape והוא כבר לא יכול להיות null. השם של clipToOutline שונה ל-clip. האפשרות clipToBounds הוסרה כי היא זהה ל-clip == true עם RectangleShape ‏ (I7ef11,‏ b/155075735)

  • בוצע עדכון של ממשקי API ברמה גבוהה יותר של Compose, שחושפים Canvas, כדי לחשוף CanvasScope במקום זאת. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה של התוסף drawCanvas, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)

  • הקומפוזיציה AlignmentLineOffset הוצאה משימוש. במקומה צריך להשתמש במעצב relativePaddingFrom(). הקומפוזיציה CenterAlignmentLine הוסרה. (I60107)

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

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

  • ה-API ‏FocusManagerAmbient הוסר. משתמשים ב-FocusModifier.requestFocus כדי לקבל את המיקוד. (Ic4826)

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

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

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

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

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

  • הוסר הממשק LayoutModifier שיצא משימוש. (I2a9d6)

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

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

  • נוסף Modifier.zIndex()‎ כדי לשלוט בסדר הציור של רכיבי הצאצא בפריסת האב. השם של המאפיין elevation ב-DrawLayerModifier שונה ל-shadowElevation, והוא כבר לא שולט בסדר הציור. הסדר של הפרמטרים של DrawShadow השתנה: elevation הוא עכשיו הראשון והצורה היא השנייה עם ברירת מחדל של RectangleShape. (I20150, ‏ b/152417501)

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

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

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

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

  • יצרנו את PixelMap API כדי לתמוך בשאילתות של מידע על פיקסלים מ-ImageAsset. (I69ad6)

  • הוסרה הפונקציה ProvideContentColor, במקומה אפשר להשתמש ישירות בפונקציה ContentColorAmbient עם Providers (Iee942)

  • המודול ui-text-compose נקרא עכשיו ui-text. המודול ui-text מכיל עכשיו את הקומפוזיציות CoreText ו-CoreTextField ‏ (Ib7d47)

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

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

  • שיפור DrawModifier API:

    • הגדרנו את היקף המקבל של draw()‎ כ-ContentDrawScope
    • הסרה של כל הפרמטרים ב-draw()
    • ל-DrawScope יש את אותו ממשק כמו ל-CanvasScope הקודם
    • ל-ContentDrawScope יש שיטה drawContent()‎ ‏ (Ibaced, ‏ b/152919067)
  • runOnIdleCompose ו-runOnUiThread הן עכשיו פונקציות גלובליות במקום שיטות ב-ComposeTestRule. (Icbe8f)

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

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

  • התכונה ColoredRect הוצאה משימוש. במקומו צריך להשתמש ב-Box(Modifier.preferredSize(width, height).drawBackground(color))‎. (I499fa, ‏ b/152753731)

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

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

  • הוחלף אופרטור עם משנה בפונקציות של תוסף factory ‏ (I225e4)

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

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

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

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

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

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

  • הוסר RepaintBoundary לטובת DrawLayerModifier ‏ (I00aa4)

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

  • הפונקציה Opacity composable הוחלפה במאפיין drawOpacity. (I5fb62)

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

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

  • נוסף LayerModifier, משנה שמאפשר להוסיף RenderNode לפריסה. אפשר להגדיר חיתוך, אטימות, סיבוב, שינוי גודל וצללים. התכונה הזו תחליף את RepaintBoundary. ‫(I7100d, ‏ b/150774014)

  • ‫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)

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

  • הוצא משימוש קומפוזבל Wrap. אפשר להחליף אותו במאפיין LayoutAlign או ברכיב Stack (Ib237f)

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

  • הגדרנו שהכיוון של הפריסה יועבר מצומת הפריסה של הרכיב הראשי לרכיבי הצאצא. נוסף משנה של כיוון הפריסה. (I3d955)

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

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

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

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

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

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

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

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

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

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