הרכבת חומרים
androidx.compose.material
androidx.compose.material.icons
(לעיון בכל חבילות ה-Compose, אפשר לעיין במסמכי ההפניה של ה-API)
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 9 בספטמבר 2026 | 1.12.1 | - | - | 1.13.0-alpha03 |
מבנה
Compose הוא שילוב של 7 מזהי קבוצה ב-Maven בתוך androidx. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, ולכל אחת מהן יש קבוצה משלה של הערות לגבי הגרסה.
בטבלה הזו מוסבר על הקבוצות ויש קישורים לכל קבוצה של הערות מוצר.
| קבוצה | תיאור |
|---|---|
| compose.animation | ליצור אנימציות באפליקציות Jetpack Compose כדי לשפר את חוויית המשתמש. |
| compose.compiler | להשתמש בפלאגין של Kotlin Compiler כדי לשנות פונקציות @Composable ולהפעיל אופטימיזציות. |
| compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם למערכת העיצוב. |
| compose.material | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
| compose.material3 | אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הדור הבא של Material Design. Material 3 כולל רכיבים ועיצובים מעודכנים, ותכונות התאמה אישית של Material You כמו צבע דינמי. הוא מתוכנן להיות עקבי עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת. |
| compose.runtime | אבני בניין בסיסיות של מודל התכנות וניהול המצב של Compose, וזמן ריצה מרכזי לטירגוט של פלאגין מהדר Compose. |
| compose.ui | רכיבים בסיסיים בממשק המשתמש של Compose שנדרשים לאינטראקציה עם המכשיר, כולל פריסה, ציור וקלט. |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.material:material:1.12.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.12.0") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.
גרסה 1.13
גרסה 1.13.0-alpha03
9 בספטמבר 2026
androidx.compose.material:material-*:1.13.0-alpha03 מופץ. גרסה 1.13.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- הוצאו משימוש עומסי יתר של שדות טקסט ב-Material 2 שמקבלים פרמטרים של
value, onValueChange. צריך לעבור לשימוש בעומס יתר שמשתמש ב-TextFieldStateכדי להעביר את המצב שלו. (I6b841, b/556234973)
תיקוני באגים
-
compileSdkCompose libraries updated to 37.1. כדי לעשות את זה, צריך לעדכן אתcompileSdkבאופן טרנזיטיבי בכל האפליקציות והספריות שמשתמשות ב-Compose. (I05b0f) - עדכנו את הרכיבים
SecureTextFieldו-OutlinedSecureTextField(וגם את העומסים העודפים שלBasicSecureTextFieldשהוצאו משימוש) כך שישתמשו ב-TextObfuscationMode.Systemכברירת המחדל של מצב ההסתרה במקום ב-TextObfuscationMode.RevealLastTyped. (I76c7e)
גרסה 1.13.0-alpha02
26 באוגוסט 2026
androidx.compose.material:material-*:1.13.0-alpha02 מופץ. גרסה 1.13.0-alpha02 מכילה את השמירות האלה.
גרסה 1.13.0-alpha01
12 באוגוסט 2026
androidx.compose.material:material-*:1.13.0-alpha01 מופץ. גרסה 1.13.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- הציון של
androidx.benchmarkהוא עכשיוminSdkמתוך 24. (Ic2a85)
תיקוני באגים
- אופטימיזציה של אתחול ברמת הקובץ של
materialמאפיינים של מחלקת ערכים ברמה העליונה באמצעות פונקציות getter דינמיות. (Iae591) - אופטימיזציה של אתחול אובייקט נלווה של מחלקות ערכים
material(FabPositionו-Strings) באמצעות שימוש בשיטות גישה דינמיות. (I0c7c0) - הסרת הדרישה ל
compileSdk 37(If78b4)
גרסה 1.12
גרסה 1.12.1
9 בספטמבר 2026
androidx.compose.material:material-*:1.12.1 מופץ. גרסה 1.12.1 מכילה את השמירות האלה.
גרסה 1.12.0
12 באוגוסט 2026
androidx.compose.material:material-*:1.12.0 מופץ. גרסה 1.12.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.11.0:
גרסה 1.12.0-rc01
29 ביולי 2026
androidx.compose.material:material-*:1.12.0-rc01 מופץ. גרסה 1.12.0-rc01 מכילה את השמירות האלה.
גרסה 1.12.0-beta02
1 ביולי 2026
androidx.compose.material:material-*:1.12.0-beta02 מופץ. גרסה 1.12.0-beta02 מכילה את השמירות האלה.
גרסה 1.12.0-beta01
17 ביוני 2026
androidx.compose.material:material-*:1.12.0-beta01 מופץ. גרסה 1.12.0-beta01 מכילה את השמירות האלה.
גרסה 1.12.0-alpha03
19 במאי 2026
androidx.compose.material:material-*:1.12.0-alpha03 מופץ. גרסה 1.12.0-alpha03 מכילה את השמירות האלה.
גרסה 1.12.0-alpha02
6 במאי 2026
androidx.compose.material:material-*:1.12.0-alpha02 מופץ. גרסה 1.12.0-alpha02 מכילה את השמירות האלה.
גרסה 1.12.0-alpha01
22 באפריל 2026
androidx.compose.material:material-*:1.12.0-alpha01 מופץ. גרסה 1.12.0-alpha01 מכילה את השמירות האלה.
שינויים ב-API
- השתנה
VelocityTrackerכך שישתמש בהטמעה שסופקה על ידי Android Framework (ניתן להגדרה באמצעותAndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, b/359962905)
תיקוני באגים
- עדכון של Compose
compileSdkל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743)
גרסה 1.11
גרסה 1.11.4
1 ביולי 2026
androidx.compose.material:material-*:1.11.4 מופץ. גרסה 1.11.4 מכילה את השמירות האלה.
גרסה 1.11.3
17 ביוני 2026
androidx.compose.material:material-*:1.11.3 מופץ. גרסה 1.11.3 מכילה את השמירות האלה.
גרסה 1.11.2
19 במאי 2026
androidx.compose.material:material-*:1.11.2 מופץ. גרסה 1.11.2 מכילה את השמירות האלה.
גרסה 1.11.1
6 במאי 2026
androidx.compose.material:material-*:1.11.1 מופץ. גרסה 1.11.1 מכילה את השמירות האלה.
גרסה 1.11.0
22 באפריל 2026
androidx.compose.material:material-*:1.11.0 מופץ. גרסה 1.11.0 מכילה את השמירות האלה.
גרסה 1.11.0-rc01
8 באפריל 2026
androidx.compose.material:material-*:1.11.0-rc01 מופץ. גרסה 1.11.0-rc01 מכילה את השמירות האלה.
גרסה 1.11.0-beta02
25 במרץ 2026
androidx.compose.material:material-*:1.11.0-beta02 מופץ. גרסה 1.11.0-beta02 מכילה את השמירות האלה.
גרסה 1.11.0-beta01
11 במרץ 2026
androidx.compose.material:material-*:1.11.0-beta01 מופץ. גרסה 1.11.0-beta01 מכילה את השמירות האלה.
גרסה 1.11.0-alpha06
25 בפברואר 2026
androidx.compose.material:material-*:1.11.0-alpha06 מופץ. גרסה 1.11.0-alpha06 מכילה את השמירות האלה.
גרסה 1.11.0-alpha05
11 בפברואר 2026
androidx.compose.material:material-*:1.11.0-alpha05 מופץ. גרסה 1.11.0-alpha05 מכילה את השמירות האלה.
גרסה 1.11.0-alpha04
28 בינואר 2026
androidx.compose.material:material-*:1.11.0-alpha04 מופץ. גרסה 1.11.0-alpha04 מכילה את השמירות האלה.
גרסה 1.11.0-alpha03
14 בינואר 2026
androidx.compose.material:material-*:1.11.0-alpha03 מופץ. גרסה 1.11.0-alpha03 מכילה את השמירות האלה.
גרסה 1.11.0-alpha02
17 בדצמבר 2025
androidx.compose.material:material-*:1.11.0-alpha02 מופץ. גרסה 1.11.0-alpha02 מכילה את השמירות האלה.
גרסה 1.11.0-alpha01
3 בדצמבר 2025
androidx.compose.material:material-*:1.11.0-alpha01 מופץ. גרסה 1.11.0-alpha01 מכילה את השמירות האלה.
גרסה 1.10
גרסה 1.10.6
25 במרץ 2026
androidx.compose.material:material-*:1.10.6 מופץ. גרסה 1.10.6 מכילה את השמירות האלה.
גרסה 1.10.5
11 במרץ 2026
androidx.compose.material:material-*:1.10.5 מופץ. גרסה 1.10.5 מכילה את השמירות האלה.
גרסה 1.10.4
25 בפברואר 2026
androidx.compose.material:material-*:1.10.4 מופץ. גרסה 1.10.4 מכילה את השמירות האלה.
גרסה 1.10.3
11 בפברואר 2026
androidx.compose.material:material-*:1.10.3 מופץ. גרסה 1.10.3 מכילה את השמירות האלה.
גרסה 1.10.2
28 בינואר 2026
androidx.compose.material:material-*:1.10.2 מופץ. גרסה 1.10.2 מכילה את השמירות האלה.
גרסה 1.10.1
14 בינואר 2026
androidx.compose.material:material-*:1.10.1 מופץ. גרסה 1.10.1 מכילה את השמירות האלה.
גרסה 1.10.0
3 בדצמבר 2025
androidx.compose.material:material-*:1.10.0 מופץ. גרסה 1.10.0 מכילה את השמירות האלה.
גרסה 1.10.0-rc01
19 בנובמבר 2025
androidx.compose.material:material-*:1.10.0-rc01 מופץ. גרסה 1.10.0-rc01 מכילה את השמירות האלה.
גרסה 1.10.0-beta02
5 בנובמבר 2025
androidx.compose.material:material-*:1.10.0-beta02 מופץ. גרסה 1.10.0-beta02 מכילה את השמירות האלה.
גרסה 1.10.0-beta01
22 באוקטובר 2025
androidx.compose.material:material-*:1.10.0-beta01 מופץ. גרסה 1.10.0-beta01 מכילה את השמירות האלה.
גרסה 1.10.0-alpha05
8 באוקטובר 2025
androidx.compose.material:material-*:1.10.0-alpha05 מופץ. גרסה 1.10.0-alpha05 מכילה את השמירות האלה.
גרסה 1.10.0-alpha04
24 בספטמבר 2025
androidx.compose.material:material-*:1.10.0-alpha04 מופץ. גרסה 1.10.0-alpha04 מכילה את השמירות האלה.
גרסה 1.10.0-alpha03
10 בספטמבר 2025
androidx.compose.material:material-*:1.10.0-alpha03 מופץ. גרסה 1.10.0-alpha03 מכילה את השמירות האלה.
גרסה 1.10.0-alpha02
27 באוגוסט 2025
androidx.compose.material:material-*:1.10.0-alpha02 מופץ. גרסה 1.10.0-alpha02 מכילה את השמירות האלה.
גרסה 1.10.0-alpha01
13 באוגוסט 2025
androidx.compose.material:material-*:1.10.0-alpha01 מופץ. גרסה 1.10.0-alpha01 מכילה את השמירות האלה.
תיקוני באגים
- העברת ברירת המחדל של
minSdkמ-API 21 ל-API 23. (Ibdfca, b/380448311, b/435705964, b/435705223)
גרסה 1.9
גרסה 1.9.5
19 בנובמבר 2025
androidx.compose.material:material-*:1.9.5 מופץ. גרסה 1.9.5 מכילה את השמירות האלה.
גרסה 1.9.4
22 באוקטובר 2025
androidx.compose.material:material-*:1.9.4 מופץ. גרסה 1.9.4 מכילה את השמירות האלה.
גרסה 1.9.3
8 באוקטובר 2025
androidx.compose.material:material-*:1.9.3 מופץ. גרסה 1.9.3 מכילה את השמירות האלה.
גרסה 1.9.2
24 בספטמבר 2025
androidx.compose.material:material-*:1.9.2 מופץ. גרסה 1.9.2 מכילה את השמירות האלה.
גרסה 1.9.1
10 בספטמבר 2025
androidx.compose.material:material-*:1.9.1 מופץ. גרסה 1.9.1 מכילה את השמירות האלה.
גרסה 1.9.0
13 באוגוסט 2025
androidx.compose.material:material-*:1.9.0 מופץ. גרסה 1.9.0 מכילה את השמירות האלה.
שינויים חשובים מאז גרסה 1.8.0
שינויים בהתנהגות
- בדיקות ה-Lint שמגיעות עם Compose דורשות עכשיו גרסת AGP מינימלית של 8.8.2. אם אין לכם אפשרות לשדרג את AGP, אתם יכולים לשדרג את Lint בנפרד באמצעות
android.experimental.lint.version=8.8.2(או גרסה חדשה יותר) בקובץ gradle.properties. כדי להריץ בדיקות lint של Compose בתוך סביבת הפיתוח המשולבת (IDE), צריך להשתמש ב-Android Studio Ladybug או בגרסה חדשה יותר.
שינויים ב-API
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (Idb6b5)
- ממשקי ה-API של תיבות עיטור לשדות טקסט הם כבר לא ניסיוניים. (I7480f)
תיקוני באגים
-
ExposedDropdownMenuתואמת בינארית לגרסאות ישנות יותר. (I133f7)
גרסה 1.9.0-rc01
30 ביולי 2025
androidx.compose.material:material-*:1.9.0-rc01 מופץ. גרסה 1.9.0-rc01 מכילה את השמירות האלה.
גרסה 1.9.0-beta03
16 ביולי 2025
androidx.compose.material:material-*:1.9.0-beta03 מופץ. גרסה 1.9.0-beta03 מכילה את השמירות האלה.
גרסה 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 בתוך סביבת הפיתוח המשולבת (IDE), צריך להשתמש ב-Android Studio Ladybug או בגרסה חדשה יותר.
שינויים ב-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לקבוצת ה-insets שרכיבי Material לוקחים בחשבון כברירת מחדל, כדי למנוע חפיפה בין התוכן לבין מגרעת במסך.- זהו שינוי בהתנהגות שישפיע על האופן שבו רכיבים שמודעים ל-inset מוצגים סביב מגרעת במסך. הערך הזה כולל את ערך ברירת המחדל של הפרמטר
WindowInsetsלרכיבי Material 3 עם מודעות ל-inset, ואת הערכים שלWindowInsetsשמופיעים ברכיב. - אובייקטים שמוגדרים כברירת מחדל גם ל-Material 2 וגם ל-Material 3. אם השינוי הזה גורם להתנהגות לא רצויה, צריך לציין ידנית את הפרמטר
WindowInsetsלכל רכיב בנפרד. (I43ee9, b/362508045)
- זהו שינוי בהתנהגות שישפיע על האופן שבו רכיבים שמודעים ל-inset מוצגים סביב מגרעת במסך. הערך הזה כולל את ערך ברירת המחדל של הפרמטר
- הפעילות שמשמשת כמארח לרכיב הניתן להרכבה שנבדק כשמשתמשים ב-
ComposeContentTestRule.setContent, משתמשת עכשיו בערכת הנושאTheme.Material.Light.NoActionBar, כדי למנוע חפיפה ביןActionBarלבין תוכן הבדיקה כשמטרגטים SDK בגרסה 35. כדי להשבית את ההתנהגות הזו, אפשר להסיר את התלות ב-ui-test-manifestולהוסיף רשומה של פעילות ב-AndroidManifest.xmlשל אפליקציית הבדיקה בשבילComponentActivityעם העיצוב הרצוי. (I7ae1b, b/383368165)
חישוב צריכת הנתונים
- הצגת
sheetGesturesEnabledב-ModalBottomSheetLayout. (I3f032, b/329543529)
גרסה 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) - גורמים למחוון של חומר לשנות את הערך שלו כשמקשי הבקרה נלחצים. (I1c442)
גרסה 1.8.0-alpha04
16 באוקטובר 2024
androidx.compose.material:material-*:1.8.0-alpha04 מופץ. גרסה 1.8.0-alpha04 מכילה את השמירות האלה.
שינויים ב-API
- מסירים את
readOnlyמ-TextFields' כדי להצמיד לגרסת בסיס יציבה. (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. אם אתם לא משתמשים ב-hoisting וב-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הוגדר כ-nullable. כדי להשבית את האפקט, במקום להזין את הערך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 מכילה את השמירות האלה.
תכונות חדשות
- נוסף ארטיפקט
androidx.compose.material:material-navigationחדש שמוסיף תמיכה בגיליונות תחתונים כיעדים כשמשתמשים ב-Navigation Compose. הספרייה הזו מחליפה את ספריית חומרי הניווט של הליווי. (d65d57, b/180247978)
גרסה 1.7.0-alpha03
21 בפברואר 2024
androidx.compose.material:material-*:1.7.0-alpha03 מופץ. גרסה 1.7.0-alpha03 מכילה את השמירות האלה.
שינויים ב-API
- התכונה
BottomDrawerעברה משלב הניסוי לשלב היציבות. BottomDrawerStateחושף עכשיו את ההתקדמות כפונקציה, ומאפשר לשאול על ההתקדמות בין יעדים ספציפיים.BottomDrawerStateמאפשר עכשיו להתאים אישית את מפרט האנימציה, ו-confirmStateChangeכבר לא משמש כ-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שניתן להגדרה כ-nullable, והוגדרו כברירת מחדל ל-null במקום זאת. אם אתם לא משתמשים ב-hoisting וב-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) - הערות נוספות לציון קלט מותר לפונקציות composable (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 של FoundationAnchoredDraggableשעברו אופטימיזציה לתרחישי שימוש פשוטים ומורכבים. (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, וההיסט שנחשף הוא עכשיו nullable. אפשר להשתמש בrequireOffsetכדי לדרוש את ההיסט. (Ia2e79) - הוספת הערה
@JvmDefaultWithCompatibility (I8f206) - שילבנו שינויים בממשקי ה-API של Swipeable ב-
ModalDrawer. DrawerState. הפונקציהanimateToהוחלפה בשיטות open ו-close, וההיסט עכשיו ניתן לאיפוס. אפשר להשתמש בrequireOffsetכדי לדרוש את ההיסט. (I3de9e) - עדכנו את מגירות הצד ואת הגיליונות כדי להשהות לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
- נוסף הפרמטר
minLinesלטקסט של Material ו-Material3, TextFieldו-OutlinedTextFieldשמאפשר להגדיר את הגובה המינימלי של הרכיב במונחים של מספר שורות (I4af1d)
תיקוני באגים
- תוקנה בעיה שבה לא נעשה שימוש במהירות הגלילה ב-
pullRefresh, ולכן הוצגה גלילה מעבר לקצה. בנוסף, שונה חתימת ה-API של lambdaonReleaseב-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, ל-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) - תוקן באג שקשור ליירוט קליקים או אירועים של מצביע
PullRefreshIndicator(2494256, b/271777421)
גרסה 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הוחלף ב-methods open ו-close, ועכשיו אפשר להגדיר את ההיסט כ-nullable. אפשר להשתמש בrequireOffsetכדי לדרוש את ההיסט. (I3de9e) - נוסף הפרמטר
minLinesלטקסט של 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 של lambdaonReleaseב-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) - מאפיין המציין אם ערך יכול להיות ריק (nullability) של סוגי החזרה נוספים של פונקציות שהוצאו משימוש ומוסתרות (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. כאן דווחה הבעיה במקור. תיקון נשלח, והוא יהיה זמין בעדכון הבא של כתיבה. כפתרון עקיף, אפשר לעדכן את הספריות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הוחלף ב-methodsopenו-close, ועכשיו אפשר להגדיר את ההיסט כ-nullable. אפשר להשתמש בrequireOffsetכדי לדרוש את ההיסט. (I3de9e) - נוסף Modifier API לשליחת שאילתות לגבי פרטי גלילה של רכיבי צאצא. (I2ba9d, b/203141462)
- המאפיין הזה משמש ב-
Clickableכדי להשהות אינטראקציות של לחיצה בצורה נכונה, במקרים שבהם תנועות יכולות להפוך לאירועי גלילה. - תוקנה הבעיה שבה
Clickablesלא עיכב את האדוות בצורה נכונה, כשנעשה בו שימוש בתוךScrollable ViewGroup. - עדכנו את מגירות הצד ואת הגיליונות כדי להשהות לחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
תיקוני באגים
- תוקנה בעיה שגרמה לכך ש-
PullRefreshIndicatorנתקע אחרי ש-onRefreshנקרא, אם מצב הרענון לא השתנה ל-true. (Ie2416, b/248274004)
עדכונים של תלות
- ממשק המשתמש של Compose ו-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לטקסט של 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. השינוי הזה משפיע גם על דיאלוגים וחלונות קופצים של Material וגם על דיאלוגים וחלונות קופצים של ממשק משתמש בהתאמה אישית. השינוי הזה נעשה כדי לצמצם את ההשפעה של באג נגישות בגרסאות Android שלפני S, וכדי לוודא ששירותי הנגישות בחלונות האלה יוכלו ליצור אינטראקציה עם התוכן בתיבת הדו-שיח או בחלון הקופץ.
השינוי הזה ישפיע עליכם רק אם אתם יוצרים הטמעה של תיבת דו-שיח או חלון קופץ מותאמים אישית עם גובה שמוגדר לרמות גבוהות מ-8dp. כדאי להנמיך את הגובה של תיבת הדו-שיח או החלון הקופץ. אם אתם רוצים לבטל את ההצטרפות להתנהגות החדשה הזו, אתם יכולים ליצור פיצול (fork) של תיבת הדו-שיח או החלון הקופץ שלכם עם הגדרת ההרשאה הרצויה. השימוש בשיטה הזו לא מומלץ, כי היא עלולה לפגוע בנגישות. המפתח צריך לוודא שחלקו התחתון של תיבת הדו-שיח או החלון הקופץ אינטראקטיבי וקריא לשירותי הנגישות.
גרסה 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 מכילה את השמירות האלה.
חישוב צריכת הנתונים
- תיקון בעיה ב-
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לא מאוגד, צריך להשתמש ב-constructor. (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) - הוספנו
LazyVerticalGridAPI חדש להגדרת גדלים של צירים חוצים (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 מכילה את השמירות האלה.
תיקוני באגים
- דוגמה לקבוצת צ'יפים שנוספה (I97080, b/192585545)
גרסה 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.
חישוב צריכת הנתונים
- לערוץ
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 מכילה את השמירות האלה.
תיקוני באגים
- תיקון רדיוס הפינות שמוחל על
Checkboxes (I38b03, b/175198975, b/202309440)
גרסה 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כדי להשבית את ההתנהגות הזו בהיררכיה, אבל הכוונה היא להשתמש בה רק כפתרון זמני בזמן עדכון ממשקי משתמש קיימים כדי להתאים אותם לגודל המינימלי החדש. (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)
- בוצע עדכון של
Dividercomposable כדי להתייחס ל-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כך שיהיה תלוי ב-Kotlin1.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 מכילה את השמירות האלה.
חישוב צריכת הנתונים
- תוקן אופן הפעולה של 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)
תיקוני באגים
- נוספה דוגמה של NavigationRail עם יישור לתחתית והדגמה של אפליקציית קטלוג. (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 וב-AGP7.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 כדי להימנע מעלות הטעינה של הכיתה.
איך זה עובד?
- ספריות יכולות להגדיר את הכללים האלה, שייארזו בפריטי מידע שנוצרו בתהליך של פיתוח (Artifact) מסוג AAR. כשיוצרים קובץ APK שכולל את הארטיפקטים האלה, הכללים האלה משולבים יחד, והכללים המשולבים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לקובץ ה-APK. לאחר מכן, סביבת זמן הריצה ל-Android (ART) יכולה להשתמש בפרופיל הזה כשה-APK מותקן במכשירים, כדי לבצע קימפול מראש (AOT) של קבוצת משנה ספציפית של האפליקציה, וכך לשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. שימו לב: הפעולה הזו לא תשפיע על אפליקציות שאפשר לבצע בהן ניפוי באגים.
גרסה 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כי הכרטיס לא יחתוך את האדווה במקרים האלה.
- נוספה גרסה חדשה של Card overload שמטפלת בקליקים וגם בפונקציות אחרות שאפשר ללחוץ עליהן: אינדיקציה, interactionSource, מופעל/מושבת. לא ניתן להשתמש בכרטיס רגיל שלא ניתן ללחוץ עליו עם
- שינוי שמשפיע על התנהגות: הרכיב Surface צורך עכשיו קליקים, ולכן קליקים שנוספו באמצעות
Surface(Modifier.clickable)לא יפעלו. מומלץ להשתמש בעומס היתר הניסיוני החדש של Surface שמקבל onClick. (I73e6c, b/183775620)- נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שאפשר ללחוץ עליה: אינדיקציה, interactionSource, מופעל/מושבת. אי אפשר להשתמש במשטח רגיל שלא ניתן ללחוץ עליו עם
Modifier.clickableכי המשטח לא יחתוך את סימן האדווה במקרים האלה.
- נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שאפשר ללחוץ עליה: אינדיקציה, interactionSource, מופעל/מושבת. אי אפשר להשתמש במשטח רגיל שלא ניתן ללחוץ עליו עם
שינויים ב-API
FabPositionהומר לכיתה מוטבעת מתוך enum כדי לתמוך בהרחבה פוטנציאלית בעתיד (I030fb)- בוצע רפקטורינג של השימוש בסוגי enum כדי להשתמש במחלקות מוטבעות, כדי למנוע בעיות בשימוש במשפטי when מקיפים כשמוסיפים ערכים חדשים של enum. (I2b5eb)
- נוסף פסק זמן להקשה על רכיבים שאפשר ללחוץ עליהם או להפעיל/להשבית אותם, כדי למנוע הצגת אפקט אדווה במהלך גלילה או גרירה (Ia2704, b/168524931)
- המאפיינים ContentDescription ו-Text semantics הם כבר לא ערכים יחידים אלא רשימות. כך אפשר למזג אותם כמו שהם במקום לשרשר אותם. בנוסף, סיפקנו ממשקי API טובים יותר לבדיקה כדי להשתמש בשינויים האלה (Ica6bf, b/184825850)
- המאפיין
Modifier.focusModifier()הוצא משימוש והוחלף במאפייןModifier.focusTarget()(I6c860) - החלפנו את סוג הנתונים
FocusStateבממשקFocusState(Iccc1a, b/187055290) - הוסר
LocalRippleNativeRenderingעכשיו שההטמעה של האפקט הגלי על בסיס התצוגה יציבה (I7fab3, b/188569367)
תיקוני באגים
-
Modifier.onGloballyPositioned()השתנה כך שידווח על הקואורדינטות של המשנה הזה בשרשרת המשנים, ולא על קואורדינטות הפריסה אחרי החלת כל המשנים. המשמעות היא שעכשיו סדר המאפיינים משפיע על הקואורדינטות שידווחו. (Ieb67d, b/177926591) - הוספנו קובץ README לקטלוג הקיים של Compose Material. (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 נמצא בעומס, למשל כשעוברים בין מסכים. השינוי הזה לא משפיע על ממשק ה-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)
תיקוני באגים
- עדכון ההטמעה של חומרים להלחנה ב-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 ספציפיות יותר של תפריטים לקטלוג החומרים הקיים של כלי ההלחנה. (I9b58e)
גרסה 1.0.0-beta04
7 באפריל 2021
androidx.compose.material:material-*:1.0.0-beta04 מופץ. גרסה 1.0.0-beta04 מכילה את השמירות האלה.
שינויים ב-API
- שינוי ב-API:
DrawerStateהמצב כבר לא מרחיב את SwipeableState הניסיוני.- שינוי ב-API: הרכיב
BottomDrawerStateמסומן עכשיו כניסיוני, בהתאם לרכיב BottomDrawer שכבר מסומן כניסיוני (I81114, b/181656094)
- שינוי ב-API: הרכיב
- שינוי השם של
hideSoftwareKeyboardו-showSoftwareKeyboardב-SoftwareKeyboardControllerל-hide()ו-show()בהתאמה.- הוספנו את הממשק המלא של CompositionLocal ל-LocalSoftwareKeyboardController, כדי לאפשר הגדרה שלו (שימושי במיוחד בבדיקות) (I579a6)
- נוסף ממשק API לנגישות של LiveRegion. אם הצומת מסומן כאזור פעיל, שירותי הנגישות יודיעו אוטומטית למשתמש על השינויים בו (Idcf6f, b/172590946)
תיקוני באגים
- הוספנו הטמעה של קטלוג Compose Material למודול קיים. מה שחסר כרגע: תמונות של רכיבי משבצות, בורר עיצובים (יוספו בשינויים הבאים). (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)
חישוב צריכת הנתונים
- [by Jossi Wolf]
BottomDrawerעכשיו עוטף את התוכן של משבצת המגירה. BottomDrawerלא יוצרIllegalStateExceptionכשהגובה של רכיב האב הוא אינסופי. חלונית ההזזה התחתונה תיפתח עכשיו למצב מורחב אם היא קטנה מ-50% מהרכיב שמעליה. מסמכי Docs בנושא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 חדש של
LocalSoftwareKeyboardControllercomposition 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)
- הפונקציות למבדא (lambda) של פעולות 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.
- שינוי השם של הפרמטר isErrorValue בתוך TextField ו-OutlinedTextField ל-isError. (I831f9, b/171305338, b/168004067)
- הוספת משנה 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)
ההדרכה הועברה לחבילת Foundation. VelocirtTracker הועבר מ-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 כבר לא ניסיונית
- הפונקציה
@TestOnlytop 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 כדי לציין מתי שגרת המשך (coroutine) הזיהוי של קלט מצביע צריכה להתחיל מחדש עבור תלות חדשות. (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)
- הוסרו ה-methods של פירוק והעתקה (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בהתאמה. התפריט הנפתח DropdownMenu מתנהג עכשיו באופן עקבי עםPopup, שבו פריסת אם משמשת למיקום התפריט. ברוב המקרים אפשר להעביר אתtoggleכך שיהיה באותה רמה כמוDropdownMenu, ולעטוף את שניהם בתגBox. מידע נוסף על השימוש ב-API הזה מופיע בדוגמה המעודכנת במסמכי התיעוד. (I884fb) - הפונקציה toIntPx() שונה ל-roundToPx(). (I9b7e4, b/173502290)
- השם IntBounds שונה ל-IntRect וה-API שופר. (I1f6ff)
- נוספו פעולות סמנטיות להרחבה ולכיווץ. נוספו expand ו-halfExpand ב-ModalBottomSheetState (Ib5064)
- המאפיין Modifier.dragGestureFilter הוצא משימוש. במקומה, צריך להשתמש ב-method
Modifier.pointerInput { detectDragGestures (...)}. אפשר גם להשתמש ב-Modifier.draggable לגרירה בציר אחד (I0ba93, b/175294473) - שונה השם של Ambients כדי להתאים לשינוי השם של Ambient -> CompositionLocal. בעבר, השם של Ambients היה AmbientFoo, ועכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
- הבחירה הועברה לבסיס. (I7892b)
- בדומה להסרה הקודמת של
state { 0 }composable, ועכשיו אנחנו מעודדים שימוש ב-remember { mutableStateOf(0) }, אנחנו עומדים להסיר אתsavedInstanceState { 0 }composable. במקום זאת, צריך להשתמש ב-rememberSaveable { mutableStateOf(0) }, והמערכת תשמור ותשחזר באופן אוטומטי אם אפשר לאחסן את הסוג שמשמש בתוך MutableState ב-Bundle. אם בעבר העברתם אובייקט מותאם אישית של שמירה, עכשיו אתם צריכים להשתמש בעומס יתר חדש של rememberSaveable עם פרמטרstateSaver. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - נוסף 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)
הוספה של 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 לתוסף suspend ב-Animatable. (If613c) - Snackbar, SnackbarHost, SnackbarHostState הם לא
@ExperimentalMaterialAPIיותר (Id1fb5) - השינויים Typography, Shapes ו-TabPosition כבר לא מסווגים כסוגי נתונים. הוספת פונקציית העתקה לטיפוגרפיה ולצורות כדי להחליף את אלה שנוצרו. (I40037)
- נמחקו כמה ממשקי Material API שהוצאו משימוש בעבר (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. נוספה שיטת factorycreateEmptyComposeRule()שמחזירהComposeTestRuleולא מפעילה Activity בשבילכם. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעותActivityScenario.launch(I9d782, b/174472899)אי אפשר יותר להתאים אישית את אפקט האדווה שמופיע בלחצן וב-FloatingActionButton באמצעות אספקת Indication חדש דרך AmbientIndication – אף פעם לא הייתה כוונה להשתמש בדרך הזו כדי להתאים אישית את הרכיבים האלה, ועכשיו הרכיבים האלה עקביים עם רכיבי Material אחרים. כדי להתאים אישית את אפקט האדווה באפליקציה, אפשר לעיין במאמר בנושא RippleTheme. (I546c5)
הפונקציה animateAsState נקראת עכשיו animateFooAsState, כאשר Foo הוא סוג המשתנה שמונפש. למשל: Float, Dp, Offset וכו' (Ie7e25)
הפרמטר החדש שנוסף ל-BasicTextField נקרא
decorationBox. הוא מאפשר להוסיף קישוטים כמו סמלים, 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)הערכים של Duration ו-Uptime יוחלפו בערכים של Long milliseconds, ובשלב הזה תוסר התלות של קלט מצביע במחלקות האלה. (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 במקומם. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות של טעינה עצלה ולהשתמש ישירות במאפיינים כמו בדוגמה הבאה: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
factory method חדש
items(count: Int)להיקף של 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)
- הוספת מתג ל-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 כשמידע על גודל סביבת הציור זמין. הפונקציה הזו שימושית להגדרת מעברי צבעים שממלאים את כל גבולות הציור של קומפוזבילי בזמן הקומפוזיציה, בלי שתצטרכו להטמיע הטמעות מותאמות אישית של DrawModifier.
הוצאנו משימוש ממשקי API של בנאי פונקציות של מעברי צבעים, ועברנו לשימוש בשיטות factory באובייקט 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)
התנהגות המיקום של DropdownMenus השתנתה מעט בהתאם למפרט 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 ושל ה-methods שקשורים אליו ל-ImageBitmap. (Ia2d99)
- העברנו את מאפייני הסמנטיקה של הרכיבים הבסיסיים לממשק המשתמש (I6f05c)
- הפונקציה
fun RippleIndication()הוצאה משימוש והוחלפה בפונקציהrememberRippleIndication()כדי לשמור על עקביות עם ממשקי API אחרים. (Id8e2c) - נוסף פרמטר singeLine ל-BasicTextField, TextField ו-OutlinedTextField. מגדירים את הפרמטר הזה לערך true כדי להפוך את שדה הטקסט לשורה אחת שאפשר לגלול בה אופקית. (I57004, b/168187755)
תיקוני באגים
- הוספת פעולה סמנטית לביטול (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)
- השם של
- הפרמטר alignment של Box נקרא עכשיו contentAlignment. (I2c957)
- השם של משני offsetPx שונה ל-offset. הם מקבלים עכשיו פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- הוספנו את ממשקי ה-API SweepGradientShader ו-SweepGradientBrush. (Ia22c1)
- הוספנו בדיקת lint לפרמטרים של 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) - המאפיינים הישנים של Ambients ששמותיהם מסתיימים ב-
Ambientהוצאו משימוש והוחלפו במאפיינים חדשים ששמותיהם מתחילים ב-Ambient, בהתאם להנחיות לגבי מאפייני Ambients אחרים ולגבי Compose API. (I33440) - נוסף אימות של lint כדי לוודא שמפעלים של משני הגדרות משתמשים ב-
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 כרכיב טקסט ברמה גבוהה עם אפשרות להגדרת ערכת נושא. כדי להשתמש ברכיב טקסט בסיסי שלא משתמש בצבע או בסגנון טקסט מהעיצוב, צריך להשתמש ב-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 נמצאים במצבים שונים. הטמעת ברירת המחדל מופיעה ב-FloatingActionButtonConstants.defaultElevation() (I2d4f5)
- הוספת ממשק 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)
- הפונקציה Box הפכה לפונקציה מוטמעת. (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)
- הוסר סוג שניתן לאיפוס מפרמטרים של 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 מוטבעת, אלא צריך ליצור מופעים של אובייקטים של 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
- שינוי השם של הפרמטר
onSelectשלBottomNavigationItemל-onClick(I91925, b/161809324) - נוסף פרמטר 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) - נוספה תמיכה בהנפשה של מצב עם שמירת נתונים עבור Button ו-FloatingActionButton. הגובה משתנה עכשיו באנימציה בין מצב ברירת המחדל לבין המצב הלחוץ. כדי להתאים אישית את הגובה בין המצבים, צריך להשתמש ב-
ButtonConstants.defaultAnimatedElevation()וב-FloatingActionButtonConstants.defaultAnimatedElevation()במקום להגדיר ערך שטוח של Dp בכל המקרים. (I37925) - הפרמטר Label הפך לאופציונלי בתוך 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 ב-layout 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)
- נוספה תמיכה בסרגל אינטראקטיבי עם מיקום ותור מתאים. אפשר לגשת אליו באמצעות פונקציית ההשעיה של
SnackbarHostState.showSnackbar. בנוסף:- נוספו רכיבי SnackbarHost. הוא מארח את ה-Snackbar בהתאם למצב, ואחראי למעבר בין ה-Snackbar.
- נוסף 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) - נוספה למדה 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 מסומן כ-Experimental (ניסיוני) (Ic5fa0, b/161784800)
- השם של Material FilledTextField שונה ל-TextField, והשם של TextField הבסיסי שונה ל-BaseTextField, כדי שיהיה קל יותר למצוא את ה-API הרצוי הפשוט ביותר ולהשתמש בו (Ia6242, b/155482676)
תיקוני באגים
- המאפיין OnChildPositioned יצא משימוש. במקום זאת, צריך להשתמש ב-OnPositioned בצאצא. (I87f95, b/162109766)
- טיפלנו בבעיות נרחבות ב-API (I077bc)
- הסרה של הממשק OffsetBase שלא נמצא בשימוש
- התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
- שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי ליצור עקביות עם Offset API
- העברנו את השיטה nativeCanvas מממשק Canvas כדי לתמוך בצרכנים שיוצרים מופעי Canvas משלהם
- נוצר קטע קוד חלופי (stub) בשם EmptyCanvas כדי לבצע ארגון הקוד מחדש (Refactoring) של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח את מאפיין המציין אם ערך יכול להיות ריק (nullability) של השדה
- שינוי השם של סוגי ה-enum ClipOp ל-Pascal Case
- השמות של הערכים המנויים (enum) של FilterQuality שונו ל-Pascal Case
- השמות של ערכי ה-enum של StrokeJoin שונו ל-Pascal Case
- שמות הערכים של PointMode שונו ל-Pascal Case
- שינוי השם של סוגי ה-enum PaintingStyle ל-Pascal Case
- שינוי השם של סוגי ה-enum PathFillType ל-Pascal Case
- השמות של הערכים של StrokeCap שונו ל-Pascal Case
- היישום של DrawCache עודכן כך שהוא לא משתמש יותר בפרמטרים של lateinit
- העדכון של DrawScope לא מאפשר יותר שימוש בהעברת הרשאה עצלה לפרמטרים הפנימיים fillPaint ו-strokePaint
- בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
- עדכון המחלקה Outline כך שתכלול הערות @Immutable
- עדכנו את PathNode כך שיכלול הערות @Immutable לכל הוראת נתיב
- עדכנו את רכיב המשנה Vector כדי להסיר בדיקות מיותרות של שוויון, כי הפונקציה compose כבר מטפלת בהן
- הוצאנו משימוש את שיטות ה-constructor של Rect companion לטובת פונקציות constructor
- עדכנו את המחלקות של Brush ואת בנאי הפונקציות באמצעות ממשקי API @Immutable ו-@Stable
- העדכון של ספירת VertexMode ל-PascalCase
- השיטה selectPaint של DrawScope עודכנה כדי להחליף באופן מותנה את פרמטרים של קו המכחול בציור אם הם השתנו
- עדכון של 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 ובנציגי מאפיינים
הגישה הזו פשוטה יותר בזכות נציגי המאפיינים של Kotlin ו-
mutableStateOfAPI, שמאפשרים ליצור מופעים של 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 Outlined Textfield (I1a518)
השימוש ב-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. השימוש בשיטה הזו מאפשר ליהנות מהיתרונות של מחלקה מוטמעת כדי להשתמש בערך מסוג long לאריזת 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)
הוספנו תמיכה ב-IME action, בשינוי ויזואלי ובסוג המקלדת ל-FilledTextField (I1f9cf, b/155075201)
הוספת הפרמטר strokeWidth לרכיב CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במגדיר גודל אחר. (Icea16, b/154919081)
הוספת הפרמטר strokeWidth לרכיב CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במגדיר גודל אחר. (Icea16, b/154919081)
הוספנו slot API לסמלים מובילים וסמלים נגררים ב-FilledTextField וטיפול במצב השגיאה (Ic12e0)
צבע ברירת המחדל של לחצני פעולה צפים (FAB) ושל לחצני פעולה צפים מורחבים (Extended FAB) השתנה ל-MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
החלפנו את כל השימושים ב-Color שניתן להגדיר כ-nullable ב-API בשימושים ב-non-nullable, והשתמשנו ב-Color.Unset במקום ב-null (Iabaa7)
השם של EdgeInsets השתנה ל-InnerPadding. הפרמטר innerPadding של Material Buttons שונה ל-padding. (I66165)
פס ההזזה הוא עכשיו חסר מצב. המשתמשים יצטרכו להעביר ולעדכן את המצב בעצמם, בדיוק כמו בכל אמצעי בקרה אחר. (Ia00aa)
הוסר StaticDrawer. אם אתם צריכים את זה, השתמשו ב-Box עם רוחב שצוין בחומר (I244a7)
הוספנו הטמעה של Material Design לשדה טקסט עם מילוי (Ic75cd)
נוסף פרמטר של משנה ל-ListItem והפרמטרים סודרו מחדש כדי לקדם את גוף ה-lambda האחורי (I66e21)
הוספנו פרמטר של בנאי defaultFontFamily ל-Typography, כדי לאפשר הגדרה של משפחת הגופנים שמוגדרת כברירת מחדל שתשמש לכל TextStyles שאין להם הגדרה של משפחה. (I89d07)
הסרנו באופן זמני את Material Data Tables (טבלאות נתוני חומרים) מ-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 והכרטיס הועברו מ-androidx.ui.material.surface אל androidx.ui.material (I88a6d, b/150863888)
לרכיבים Button, FloatingActionButton ו-Clickable יש עכשיו פרמטר
enabledנפרד. חלק מהפרמטרים בלחצן קיבלו שם חדש או שונה הסדר שלהם. (I54b5a)שינינו את השם Image ל-ImageAsset כדי להבדיל טוב יותר בין נתוני התמונה לבין רכיב ה-Image שניתן להרכבה, שייעשה בו שימוש בעתיד כדי להשתתף בפריסה ובציור התוכן. _Body:Created extension method on android.graphics.Bitmap, Bitmap.asImageAsset(), to create an instance of an ImageAsset useful for combining traditional Android application development with the compose framework (Id5bbd)
הוסר Snackbar API עם פרמטרים של מחרוזת לטובת שימוש בעומס יתר שמקבל ביטויי למדה שניתנים להרכבה. דוגמאות מעודכנות למידע על השימוש (I55f80)
בוצע שינוי מבנה (refactoring) של ממשקי 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. המאפיין position לא הגיוני כשמביאים בחשבון LayoutModifiers, rotation או scaling. במקום זאת, מפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מ-LayoutCoordinate אחד ל-LayoutCoordinate אחר.
ב-LayoutCoordinates נעשה שימוש ב-IntPxSize במאפיין size במקום ב-PxSize. בפריסות משתמשים בגדלים של מספרים שלמים בפיקסלים, ולכן כל הגדלים של הפריסות צריכים להיות מספרים שלמים ולא ערכים של נקודות צפות. (I9367b)
שינויים ב-API של מצב אווירה שעלולים לגרום לכשלים. פרטים נוספים מופיעים ביומן ובמסמכי התיעוד של
Ambient<T>(I4c7ee, b/143769776)נוסף רכיב של חומר פיגום. ציוד לפיגומים (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)
- בוצעו שינויים ב-APIs 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)
- המיקומים של קו היישור (Alignment line) שמוחזרים מ-Placeable#get(AlignmentLine) הם עכשיו לא null. אם קו היישור שנשלח לגביו שאילתה חסר, יוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
בוצע רפקטורינג של מחלקת Radius כדי שתהיה מחלקה מוטמעת. הוסרו שיטות ליצירת רכיבים נלווים לטובת בנאי פונקציות עם פרמטר ברירת מחדל, כדי שהרדיוס לאורך ציר ה-y יתאים לזה של פרמטר הרדיוס החובה לאורך ציר ה-x.
הפונקציה DrawScope.drawRoundRect עודכנה כך שהיא מקבלת פרמטר רדיוס יחיד במקום 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 לא הופעלה עבור DropdownMenuItems. (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)
ה-API של DrawLayer modifiers השתנה: השם של outlineShape שונה ל-shape, ערך ברירת המחדל שלו הוא RectangleShape והוא כבר לא ניתן לאיפוס. השם של clipToOutline שונה ל-clip. האפשרות clipToBounds הוסרה כי היא זהה ל-clip == true עם RectangleShape (I7ef11, b/155075735)
ממשקי API ברמה גבוהה יותר של Compose עודכנו כך שהם חושפים CanvasScope במקום Canvas. כך הצרכנים לא צריכים לשמור אובייקטים של Paint. צרכנים שעדיין צריכים גישה ל-Canvas יכולים להשתמש בשיטה drawCanvas של התוסף, שמספקת קריאה חוזרת להנפקת פקודות ציור עם ה-Canvas הבסיסי. (I80afd)
הקומפוזיציה AlignmentLineOffset הוצאה משימוש. במקומה צריך להשתמש במעצב relativePaddingFrom(). הקומפוזיציה CenterAlignmentLine הוסרה. (I60107)
בוצע שינוי ב-API של WithConstraints trailing lambda. עכשיו, במקום שני פרמטרים, יש לו היקף של מקבל, שבנוסף למגבלות ול-layoutDirection מספק את המאפיינים minWidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
נוסף משנה פריסה defaultMinSizeConstraints, שמגדיר אילוצי גודל לפריסה העוטפת רק כשהאילוצים התואמים הנכנסים לא מוגדרים (0 לאילוצי מינימום ואינסוף לאילוצי מקסימום). (I311ea, b/150460257)
הוסר 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 – מיזוג של הקריאות החוזרות 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 מכיל עכשיו את רכיבי ה-Composable CoreText ו-CoreTextField (Ib7d47)
המודול ui-text משנה את השם ל-ui-text-core (I57dec)
העברנו את הקומפוזיציות 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)[ניתן לשינוי]אופרטורים של נציגי מאפיינים של מצב הועברו לתוספים כדי לתמוך באופטימיזציות של נציגי מאפיינים ב-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)
הוחלף Modifier plus operator בפונקציות של תוסף factory (I225e4)
המאפיין Draggable הועבר ל-modifier (Id9b16, b/151959544)
הקומפוזיציה ParentData הוצאה משימוש. אפשר ליצור משנה שמטמיע את הממשק ParentDataModifier, או להשתמש במשנה LayoutTag אם רוצים רק לתייג רכיבי צאצא של פריסה כדי לזהות אותם בתוך בלוק המדידה. (I51368, b/150953183)
הוצא משימוש Center composable. צריך להחליף אותו ב-LayoutSize.Fill + LayoutAlign.Center modifier, או באחד מהתכנים הקומפוזביליים Box או Stack עם modifiers מתאימים (Idf5e0)
הוספנו את VectorPainter API כדי להחליף את subcomposition API הקיים לגרפיקה וקטורית. התוצאה של subcomposition היא אובייקט VectorPainter ולא DrawModifier. הוצאנו משימוש את רכיבי ה-DrawVector הקודמים לטובת VectorPainter.
שינינו את השם של Image(Painter) API ל-PaintBox(Painter) יצרנו Vector composable שמתנהג כמו Image composable, אבל עם VectorAsset במקום ImageAsset (I9af9a, b/149030271)
השם של LayoutFlexible שונה ל-LayoutWeight. השם של הפרמטר tight שונה ל-fill. (If4738)
הוסר RepaintBoundary לטובת DrawLayerModifier (I00aa4)
הפונקציה DrawVector השתנתה מפונקציה קומפוזבילית רגילה, לפונקציה שמחזירה Modifier drawVector() שתצייר את הווקטור כרקע לפריסה. (I7b8e0)
הפונקציה הקומפוזבילית Opacity הוחלפה במאפיין drawOpacity. (I5fb62)
מחליפים את הפונקציה Clip שניתנת להרכבה במקש הצירוף drawClip(). DrawClipToBounds הוא מקש צירוף נוח לשימוש כשרוצים לחתוך רק את הגבולות של השכבה בצורת מלבן. (If28eb)
הפונקציה הקומפוזבילית DrawShadow הוחלפה ב-drawShadow() modifier. הצללות מצוירות עכשיו כחלק מ-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)נוצר קומפוזיציה של תמונה כדי לטפל בגודל או בפריסה, בנוסף לציור של נכס תמונה נתון במסך. רכיב ה-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, והוא מיישם את האופרטור get() במקום לאחזר ערך. כך קל יותר לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משנה. (I0245a)
הגלילה מתבצעת עכשיו כמו במכשיר Android רגיל. (I922af, b/147493715)
שיפורים בפלטפורמת ה-API של Constraints (I0fd15)