יצירת חומר לימוד
androidx.compose.material
androidx.compose.material.icons
(מידע נוסף זמין במסמכי העזרה בנושא API לכל חבילות ה-Compose)
העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסה אלפא |
---|---|---|---|---|
13 בנובמבר 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
מבנה
Compose הוא שילוב של 7 מזהי קבוצות Maven ב-androidx
. כל קבוצה מכילה קבוצת משנה ממוקדת של פונקציונליות, עם הערות משלה לגבי הגרסה.
בטבלה הזו מוסבר על הקבוצות ומוצגים קישורים לכל קבוצה של הערות המוצר.
קיבוץ | תיאור |
---|---|
compose.animation | פיתוח אנימציות באפליקציות שלהם ב-Jetpack Compose כדי להעשיר את חוויית המשתמש. |
compose.compiler | שינוי פונקציות עם @Composable והפעלת אופטימיזציות באמצעות פלאגין של קומפילר Kotlin. |
compose.foundation | כתיבת אפליקציות ב-Jetpack Compose באמצעות אבני בניין מוכנות לשימוש והרחבת הבסיס כדי ליצור רכיבים משלכם של מערכת עיצוב. |
compose.material | פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה יותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io. |
compose.material3 | פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design 3, הגרסה הבאה של Material Design. Material 3 כולל רכיבים ועיצוב נושאים מעודכנים ותכונות של התאמה אישית של Material You, כמו צבעים דינמיים. הוא תוכנן כך שיהיה עקבי עם הסגנון החזותי החדש של Android 12 וממשק המשתמש של המערכת. |
compose.runtime | אבני בניין בסיסיות של מודל התכנות ושל ניהול המצב ב-Compose, וזמן ריצה ליבה שאליו פונה הפלאגין של Compose Compiler. |
compose.ui | רכיבים בסיסיים של ממשק המשתמש של Compose שנדרשים כדי לקיים אינטראקציה עם המכשיר, כולל פריסה, ציור והזנה. |
הצהרת יחסי תלות
כדי להוסיף תלות ב-Compose, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ build.gradle
של האפליקציה או המודול:
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
גרסה 1.8
גרסה 1.8.0-alpha06
13 בנובמבר 2024
androidx.compose.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 כוללת את ההוספות האלה.
תיקוני באגים
- כדאי לבצע אופטימיזציה של ההתנהגות של
contentPadding
ב-Scaffold כדי להימנע מהרכבה מחדש של תוכן הגוף בכל פעם ש-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
- נוספה ה-builder החדש
NavGraphBuilder.bottomSheet
ליצירת bottomSheet עם safe args ((I28589, I777db, b/351858980))
גרסה 1.7
גרסה 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
- אין שינויים בפריטי המידע שנוצרו בתהליך פיתוח (artifacts) של Android. הוסרו ארטיפקטים מסוג
-desktop
והתווספו ארטיפקטים מסוג-jvmStubs
ו--linuxx64Stubs
. אין להשתמש באף אחד מהיעדים האלה. הם משמשים כסמנים לעזרה במאמצים של Jetbrains Compose.
גרסה 1.7.0
4 בספטמבר 2024
androidx.compose.material:material-*:1.7.0
משוחרר. גרסת 1.7.0 כוללת את ההוספות האלה.
שינויים חשובים מאז גרסה 1.6.0
- רכיבי Material הועברו לשימוש בממשקי ה-API החדשים של Ripple, והם כבר לא שולחים שאילתות ל-
RippleTheme
. - רכיבי Material שקודם קיבלו
MutableInteractionSource
והגדרת ברירת המחדל שלהם הייתהremember { MutableInteractionSource() }
, מקבלים עכשיוMutableInteractionSource
שאפשר להגדיר כ-null והגדרת ברירת המחדל שלהם היא null. אם אתם לא מעלים אתMutableInteractionSource
ומשתמשים בו, עליכם להעביר ערך null. כך חלק מהרכיבים יכולים ליצור מכונה באופן עצלני רק כשיש צורך, וכך לשפר את הביצועים. מומלץ גם לבצע שינויים דומים ברכיבים שלכם. BottomDrawer
, ModalBottomSheet
, BackdropScaffold
ו-Bottomsheet רגיל הועלו לממשק API יציב.
גרסה 1.7.0-rc01
21 באוגוסט 2024
androidx.compose.material:material-*:1.7.0-rc01
משוחרר. גרסת 1.7.0-rc01 כוללת את ההוספות האלה.
גרסה 1.7.0-beta07
7 באוגוסט 2024
androidx.compose.material:material-*:1.7.0-beta07
משוחרר. גרסת 1.7.0-beta07 כוללת את ההוספות האלה.
גרסה 1.7.0-beta06
24 ביולי 2024
androidx.compose.material:material-*:1.7.0-beta06
משוחרר. גרסת 1.7.0-beta06 מכילה את ההוספות האלה.
גרסה 1.7.0-beta05
10 ביולי 2024
androidx.compose.material:material-*:1.7.0-beta05
משוחרר. גרסת 1.7.0-beta05 כוללת את ההוספות האלה.
גרסה 1.7.0-beta04
26 ביוני 2024
androidx.compose.material:material-*:1.7.0-beta04
משוחרר. גרסת 1.7.0-beta04 כוללת את ההוספות האלה.
גרסה 1.7.0-beta03
12 ביוני 2024
androidx.compose.material:material-*:1.7.0-beta03
משוחרר. גרסת 1.7.0-beta03 מכילה את ההוספות האלה.
גרסה 1.7.0-beta02
29 במאי 2024
androidx.compose.material:material-*:1.7.0-beta02
משוחרר. גרסת 1.7.0-beta02 כוללת את ההוספות האלה.
שינויים ב-API
- עדכון ה-API לעיצוב הקישורים: העברת ה-
TextLinkStyles
אל ה-TextStyle
והסרת ה-TextDefaults
מהחומר (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
הוא לא הפרמטר האחרון יותר, כדי למנוע בלבול עם פונקציות lambda בסוף.BackdropScaffoldState
חושף ממשק API שלprogress(from, to)
כדי לשלוח שאילתות לגבי ההתקדמות בין עוגנים. (I73f48, b/261423218)- גיליונות תחתונים רגילים הועברו מסטטוס 'ניסיוני' לסטטוס 'יציב'. קונסטרוקטורים שהוצאו משימוש הוסרו. מפרט האנימציה הוא עכשיו מפרט tween בהתאם להנחיות. (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 החדשים של Ripple, והם כבר לא שולחים שאילתות ל-
RippleTheme
.
שינויים ב-API
rememberRipple
ו-RippleTheme
הוצאו משימוש מ-material-ripple, ונוספו ממשקי API חדשים שלRippleConfiguration
ו-ripple ל-Material ולספריות אחרות של מערכת עיצוב.רכיבי Material שהיו מקבלים בעבר
MutableInteractionSource
והגדרת ברירת המחדל שלהם הייתה לשמור את{ MutableInteractionSource() }
, מקבלים עכשיוMutableInteractionSource
שיכול להיות null והגדרת ברירת המחדל שלהם היא null במקום זאת. אם אתם לא מעלים אתMutableInteractionSource
ומשתמשים בו, עליכם להעביר ערך null. כך חלק מהרכיבים יכולים ליצור מכונה באופן עצלני רק כשיש צורך, וכך לשפר את הביצועים. מומלץ גם לבצע שינויים דומים ברכיבים שלכם.
גרסה 1.6
גרסה 1.6.8
12 ביוני 2024
androidx.compose.material:material-*:1.6.8
משוחרר. גרסת 1.6.8 כוללת את ההוספות האלה.
גרסה 1.6.7
1 במאי 2024
androidx.compose.material:material-*:1.6.7
משוחרר. גרסה 1.6.7 מכילה את ההוספות האלה.
גרסה 1.6.6
17 באפריל 2024
androidx.compose.material:material-*:1.6.6
משוחרר. לא בוצעו שינויים מאז הגרסה הקודמת.
גרסה 1.6.5
3 באפריל 2024
androidx.compose.material:material-*:1.6.5
משוחרר. גרסת 1.6.5 כוללת את ההוספות האלה.
גרסה 1.6.4
20 במרץ 2024
androidx.compose.material:material-*:1.6.4
משוחרר. גרסת 1.6.4 מכילה את ההוספות האלה.
גרסה 1.6.3
6 במרץ 2024
androidx.compose.material:material-*:1.6.3
משוחרר. גרסת 1.6.3 כוללת את ההוספות האלה.
תיקוני באגים
- תיקון רגרסיה ב-
ExposedDropdownMenu
כדי שאפשר יהיה להתמקד בו שוב. (c0e0ed, b/323694447)
גרסה 1.6.2
21 בפברואר 2024
androidx.compose.material:material-*:1.6.2
משוחרר. גרסה 1.6.2 כוללת את השמירות האלה.
גרסה 1.6.1
7 בפברואר 2024
androidx.compose.material:material-*:1.6.1
משוחרר. גרסה 1.6.1 כוללת את ההצהרות האלה על ביצוע שינויים (commits).
גרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
גרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינוי התנהגות שעלול לגרום לכשלים
- הוסר מ-
BottomSheetScaffold
פונקציונליות שקשורה למגירה. כדי לקבל את הפונקציונליות הקודמת, צריך לעטוף אתBottomSheetScaffold
ב-Drawer composable. דוגמה מופיעה בקטע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...
וכו', והן מכילות סמלים שיופיעו באופן אוטומטי במראה ראי בפריסות RTL. כאן מפורטת רשימת הסמלים שאפשר (וצריך) לשקף באופן אוטומטי.
שינויים ב-API
- נוספה תמיכה בסמלים שמשתקפים באופן אוטומטי כשהם מוצגים בפריסות מימין לשמאל. סמלים במודולים material-icons-core ו-material-icons-extended מספקים עכשיו קבוצות סמלים נוספות לתמיכה בהשתקפות אוטומטית כשהסמל מאפשר זאת. הקבוצות החדשות מתחילות ב-
Icons.AutoMirrored.Filled...
וכו', והן מכילות סמלים שיופיעו באופן אוטומטי במראה ראי בפריסות 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) - תיקון החישוב של
offset
ב-DropdownMenu
, כך שההיסטים ב-x תלויים אך ורק בכיוון הפריסה המקומי, וההיסטים ב-y לא יהיו עוד הפוכים כשהתפריט נמצא ליד החלק התחתון של המסך. (Iccc74, b/294103942) - ביצענו אופטימיזציה של הרכיבים הפנימיים של הפריסה של
BottomSheetScaffold
ותיקנו בעיה פוטנציאלית ב-BottomSheetScaffold
בתוךLookaheadLayout
. (Ic0afa)
גרסה 1.6.0-alpha03
9 באוגוסט 2023
androidx.compose.material:material-*:1.6.0-alpha03
משוחרר. גרסה 1.6.0-alpha03 מכילה את ההצהרות האלה.
שינויים ב-API
- לרכיבי Material2 יש עכשיו ממשק API נפרד כדי להעביר את הערך
windowInsets
כדי לתמוך בפונקציונליות מקצה לקצה ב-Android. בניגוד לרכיבי material3, רכיבי material2 לא תומכים בהוספת רכיבים פנימיים כברירת מחדל, וצריך להעביר את הערך באופן ידני. לקבלת הנחיות, אפשר לעיין בדוגמאות המתאימות. (I655e8)
גרסה 1.6.0-alpha02
26 ביולי 2023
androidx.compose.material:material-*:1.6.0-alpha02
משוחרר. גרסה 1.6.0-alpha02 מכילה את ההוספות האלה.
שינויים ב-API
- אנחנו מעבירים את התלות בצפיפות לרמת הרכיב. ההנחיה הזו רלוונטית לרכיבים הבאים:
SwipeToDismiss
ורכיבים שמבוססים על גיליונות. צריך להשתמש במטען יתר החדש שסופק, כאשר הצפיפות היא פרמטר. (I1846e) - הערות נוספות לציון הקלטות המותרות לרכיבים הניתנים לשילוב (I51109)
- עדכנו את קובצי ה-API כדי להוסיף הערות לגבי השמטת תאימות (I8e87a, b/287516207)
- נוספה התאמה חדשה ל-Start עבור
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
בחומר 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
של Material הוצאו משימוש. מומלץ לעיין בממשקי ה-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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
גרסה 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 שניתן להחליק ב-
ModalBottomSheetLayout
. הפונקציה animateTo שלModalBottomSheetState
לא מקבלת יותר פרמטרanimationSpec
, וההיסט שמוצג יכול להיות עכשיו null. משתמשים ב-requireOffset
כדי לדרוש את ההיסט. (Ia2e79) - הוספת הערה
@JvmDefaultWithCompatibility
(I8f206) - השינויים ששולבו ב-API להחלפה בתנועת החלקה ב-
animateTo
שלModalDrawer. DrawerState
הוחלפו בשיטות open ו-close, וההיסט יכול להיות עכשיו null. משתמשים ב-requireOffset
כדי לדרוש את ההיסט. (I3de9e) - עדכנו את התכונות 'תיבות הצירים' ו'גיליונות' כדי לעכב בצורה נכונה את הלחיצות במקרה שהתנועות עלולות להפוך לאירועי גלילה.
- נוספו הפרמטרים
minLines
,TextField
ו-OutlinedTextField
לטקסט של material ו-material3, שמאפשרים להגדיר את הגובה המינימלי של הרכיב לפי מספר השורות (I4af1d)
תיקוני באגים
- תוקנה בעיה שבה
pullRefresh
לא צרך מהירות, וכתוצאה מכך הוצגה גלילה מעבר לקצה המסך. בנוסף, שינינו את חתימה ה-API של פונקציית הלמהonRelease
ב-Modifier.pullRefresh
כדי להחזיר ערך מסוג Float עבור מהירות הצריכה (I7db65, b/266874741) - עכשיו, המאפיינים
BottomSheetState
,ModalBottomSheetState
ו-BottomDrawerState
חושפים מאפיין התקדמות שמציין את ההתקדמות בין הצ'אנקור הנוכחי (היציב) לבין הצ'אנקור הקרוב ביותר בכיוון ההחלקה. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861) - תוקנה הפעולה
AlertDialog
לסגירת תיבת הדו-שיח, כך שהיא תופיע מתחת לפעולת האישור כשהפעולות מוערמות זו על גבי זו כדי להתאים לרוחב של תיבת הדו-שיח. התיקון הזה מביא את ההטמעה לקו אחד עם המפרט של Material Design. (I029de, b/235454277) BottomSheetScaffold
לא ישתתף יותר בגלילה בתצוגת עץ כשהערך שלgesturesEnabled
מוגדר כ-false. (I634f3, b/215403277)- תוקן באג שגרם לקריסה של
BottomSheetScaffold
כשמספקים לו תוכן ריק עבור משבצות. (Ib24a5, b/235588730) - תיקון של
PullRefreshIndicator
שחוסם קליקים או אירועי סמן. (2494256, b/271777421) - תוקנה בעיה שבה
ModalBottomSheetLayout
קרס במקרה קיצוני של שינוי כיוון. אנימציות של פריסה (למשלModifier.animateContentSize
) בתוכן הגיליון פועלות עכשיו בצורה חלקה. (I2f981, b/266780234)
גרסה 1.5.0-rc01
26 ביולי 2023
androidx.compose.material:material-*:1.5.0-rc01
משוחרר. גרסה 1.5.0-rc01 כוללת את השמירות האלה.
גרסה 1.5.0-beta03
28 ביוני 2023
androidx.compose.material:material-*:1.5.0-beta03
משוחרר. גרסה 1.5.0-beta03 מכילה את ההצהרות האלה.
תיקוני באגים
- עכשיו, המאפיינים
BottomSheetState
,ModalBottomSheetState
ו-BottomDrawerState
חושפים מאפיין התקדמות שמציין את ההתקדמות בין הצ'אנקור הנוכחי (היציב) לבין הצ'אנקור הקרוב ביותר בכיוון ההחלקה. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
גרסה 1.5.0-beta02
7 ביוני 2023
androidx.compose.material:material-*:1.5.0-beta02
משוחרר. גרסה 1.5.0-beta02 כוללת את ההצהרות האלה.
גרסה 1.5.0-beta01
24 במאי 2023
androidx.compose.material:material-*:1.5.0-beta01
משוחרר. גרסה 1.5.0-beta01 כוללת את ההצהרות האלה.
שינויים ב-API
- כבר אי אפשר להגדיר ערך null להיסט של
DrawerState
ושלBottomDrawerState
. במקום זאת, הן מחזירות את הערךFloat.NaN
כדי לציין את היעדר ההיסט. (Ie9855) - נוספה אפשרות להעביר
ScrollState
בזמן יצירתDropdownMenu
אוExposedDropdownMenu
כדי לשלוט במצב הגלילה האנכית של פריטי התפריט המוצגים. (Idb009, b/185304441) - הוספת תמיכה בהפעלה/השבתה של התנועה
ModalBottomSheetLayout
כדי שהמשתמשים יוכלו להגדיר אותה כדי להציג יותר תכונות בחלונית התחתונה (I40af0) - הוספנו פרמטר צבע ל-
BasicText
כדי לאפשר להוסיף אנימציה יעילה לטקסט או להגדיר את צבע הטקסט. (Iffd88, b/246961787) - שינוי השם של נכס הסמנטיקה
isContainer
ל-isTraversalGroup
(I121f6)
תיקוני באגים
- תוקנה הפעולה
AlertDialog
לסגירת תיבת הדו-שיח, כך שהיא תופיע מתחת לפעולת האישור כשהפעולות מוערמות זו על גבי זו כדי להתאים לרוחב של תיבת הדו-שיח. התיקון הזה מיישר קו בין ההטמעה למפרט של Material Design. (I029de, b/235454277)
גרסה 1.5.0-alpha04
10 במאי 2023
androidx.compose.material:material-*:1.5.0-alpha04
משוחרר. גרסה 1.5.0-alpha04 מכילה את ההצהרות האלה.
שינויים ב-API
- אנחנו מעבירים את התלות בצפיפות לרמת הרכיב. הכלל הזה חל על הרכיבים הבאים:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. צריך להשתמש במטען יתר החדש שסופק, כאשר הצפיפות היא פרמטר. (I8fbd8)
גרסה 1.5.0-alpha03
19 באפריל 2023
androidx.compose.material:material-*:1.5.0-alpha03
משוחרר. גרסה 1.5.0-alpha03 מכילה את ההצהרות האלה.
שינויים ב-API
- מעדכנים את הרכיבים הפנימיים של
BottomDrawer
כך שישתמשו בממשקי ה-API החדשים שלSwipeableV2
. לכן, מעכשיו ב-BottomDrawerState
יהיו רק ממשקי API שהוגדרו ברמת הכיתה, והוא לא יירשה שיטות או מאפיינים מ-SwipeableState
. אנחנו משתמשים בהרכבה עםSwipeableV2State
פנימי. המאפיין Offset הוא עכשיו מאפיין של נקודה צפה שיכול להכיל ערך 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 כוללת את ההצהרות האלה.
תיקוני באגים
- מוסיפים דוגמית של ריפלוא של קבוצת צ'יפים. מעדכנים את הריווח האנכי בין הצ'יפים הצאצאים בדוגמה של קבוצת צ'יפים בשורה אחת כך שיתאים למפרט. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
גרסה 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 שניתן להחליק ב-
ModalDrawer
.animateTo
שלDrawerState
הוחלף בשיטות open ו-close, וההיסט יכול להיות עכשיו null. משתמשים ב-requireOffset
כדי לדרוש את ההיסט. (I3de9e) - נוספו הפרמטרים
minLines
,TextField
ו-OutlinedTextField
לטקסט של material ו-material3, שמאפשרים להגדיר את הגובה המינימלי של הרכיב לפי מספר השורות (I4af1d) - הפרמטר
minLines
נוסף ל-BasicText
ול-BasicTextField
. הוא מאפשר להגדיר את הגובה המינימלי של הרכיבים האלה במונחים של מספר השורות (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 שניתן להחליק ב-
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 של פונקציית הלמהonRelease
ב-Modifier.pullRefresh
כדי להחזיר ערך מסוג Float עבור מהירות הצריכה (I7db65, b/266874741) - משחזרים את פונקציית ה-getter של המאפיין
LocalMinimuTouchTargetEnforcement
, מסמנים אותה כ'הוצאה משימוש' ומעבירים לכתובתLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
גרסה 1.4.0-alpha05
25 בינואר 2023
androidx.compose.material:material-*:1.4.0-alpha05
משוחרר. גרסה 1.4.0-alpha05 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תיקוני באגים
- תוקנה בעיה שבה המצב של
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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-API
- הוספה בנכס הסמנטיקה
IsContainer
בפלטפורמות. המאפיין הזה ישמש בשינוי מאוחר יותר שיקבע את סדר הסריקה על סמך המשמעות הסמנטית של רכיבים כמו משטחים. (I63379) - מסמנים את הפונקציה
snapTo
ב-Drawer כ-API לא ניסיוני. (Ib9c18, b/261425368) - הוספנו פרמטר של צבע הטראק לאינדיקטורים של התקדמות מעגלית, ופרמטר של קצה קו גם לאינדיקטורים של התקדמות מעגלית וגם לאינדיקטורים של התקדמות ליניארית. (Ie668c, b/216325962, b/222964817)
- שינית את השם של
confirmStateChange
שלModalBottomSheetState
, ModalBottomSheetState.Saver
ו-rememberModalBottomSheetState
ל-confirmValueChange
. (Ib48d1) - אפשרות נוספת לאפשרות האפס של טיפוס ההחזרה של פונקציות מוסתרות שהוצאו משימוש (Ibf7b0)
- מוסיפים את
Modifier.minimumInteractiveComponentSize
. אפשר להשתמש בו כדי להקצות שטח בגודל של 48dp לפחות, כדי להבדיל בין אינטראקציות מגע אם הרכיב יהיה קטן יותר. (I33f58, b/258495559) - שינויים בממשקי ה-API שניתן להחליק ב-
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) - תוקן המצב המופעל בהטמעה של
FilterChip
ב-Material 2. (Id326a, b/261329817) - תוקן באג שגרם לקריסה של
ModalBottomSheetLayout
אם הוא היהHalfExpanded
בזמן סיבוב מפריסה לאורך לפריסה לרוחב. חשוב לוודא שאתם מעבירים אתinitialValue
הנכון, למשל על ידי בדיקת ההגדרה. (Ie8df7, b/182882364) - תוקנה בעיה שבה הפונקציה
ModalBottomSheetLayout
קרסה אם תוכן הגיליון היה ריק. עכשיו אפשר להשתמש ב-ModalBottomSheetLayout
גם עם גיליונות ריקים. אם תוכן הגיליון ריק, הוא יהיה במצב 'מוסתר' בלבד. (Ic2288, b/200980998, b/216693030)
בעיה ידועה
- כשמעדכנים מ-
androidx.compose.foundation:1.4.0-alpha03
ל-androidx.compose.foundation:1.4.0-alpha04
, יכול להיות שתופיע השגיאהjava.lang.NoSuchFieldError
. כאן דווחה הבעיה במקור. שלחנו תיקון והוא יהיה זמין בעדכון הבא של Compose. כפתרון זמני, אפשר לעדכן את הספריותandroidx.compose.material
ו-androidx.compose.material3
לגרסה האחרונה(1.1.0-alpha04) או לשדרג לאחור אתandroidx.compose.foundation
לגרסה 1.4.0-alpha03.
גרסה 1.4.0-alpha03
7 בדצמבר 2022
androidx.compose.material:material-*:1.4.0-alpha03
משוחרר. גרסה 1.4.0-alpha03 כוללת את ההצהרות האלה.
שינויים ב-API
- הוספת הערה
@JvmDefaultWithCompatibility
(I8f206) - שינויים שולבו בממשקי ה-API של
Swipeable
ב-ModalDrawer
. השיטהanimateTo
שלDrawerState
הוחלפה בשיטותopen
ו-close
, וההיסט יכול להיות עכשיו null. משתמשים ב-requireOffset
כדי לדרוש את ההיסט. (I3de9e) - הוספנו Modifier API לשליחת שאילתות לגבי פרטי גלילה של ישויות אב. (I2ba9d, b/203141462)
- משמש ב-
Clickable
כדי לעכב בצורה נכונה אינטראקציות של הקשה, כשתנועות עלולות להפוך לאירועי גלילה. - תוקנה בעיה שבה
Clickables
לא עכב את הרטט בצורה נכונה כשמשתמשים בו בתוךScrollable ViewGroup
. - עדכנו את התכונות 'תיבות הצירים' ו'גיליונות' כדי לעכב בצורה נכונה את הלחיצות במקרה שהתנועות עלולות להפוך לאירועי גלילה.
תיקוני באגים
- תוקנה בעיה שבה
PullRefreshIndicator
עלול להיתקע אחרי הקריאה ל-onRefresh
, אם מצב הרענון לא השתנה ל-true. (Ie2416, b/248274004)
עדכוני יחסי תלות
- Compose UI ו-Compose Material תלויים עכשיו ב-Lifecycle 2.5.1. (I05ab0, b/258038814)
גרסה 1.4.0-alpha02
9 בנובמבר 2022
androidx.compose.material:material-*:1.4.0-alpha02
משוחרר. גרסה 1.4.0-alpha02 מכילה את ההצהרות האלה.
שינויים ב-API
- עכשיו אפשר להשתמש ב-
PointerEventPass
ב-awaitFirstDown
וב-waitForUpOrCancellation
כדי לקבל גמישות רבה יותר. (I7579a, b/212091796) - נוספו הפרמטרים
minLines
,TextField
ו-OutlinedTextField
לטקסט של material ו-material3, שמאפשרים להגדיר את הגובה המינימלי של הרכיב לפי מספר השורות (I4af1d) - הפרמטר
minLines
נוסף ל-BasicTex
t ול-BasicTextField
. הוא מאפשר להגדיר את הגובה המינימלי של הרכיבים האלה במונחים של מספר שורות (I24294, b/122476634)
גרסה 1.4.0-alpha01
24 באוקטובר 2022
androidx.compose.material:material-*:1.4.0-alpha01
משוחרר. גרסה 1.4.0-alpha01 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-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
- הוספת רכיב 'משיכה לרענון' ל-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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-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.
גובה ההגבהה המקסימלי שנתמך בתיבת הדו-שיח ובחלונות הקופצים של Compose הופחת מ-30dp ל-8dp. השינוי הזה משפיע גם על חלונות דו-שיח וחלונות קופצים בהתאמה אישית של Material וגם על חלונות דו-שיח וחלונות קופצים בהתאמה אישית של ממשק המשתמש. השינוי הזה נעשה כדי לצמצם באג בנגישות בגרסאות Android שקודמות ל-S, וכדי להבטיח ששירותי הנגישות בחלונות האלה יוכלו לקיים אינטראקציה עם התוכן בתיבת הדו-שיח או בחלון הקופץ.
השינוי הזה ישפיע עליכם רק אם אתם יוצרים תיבות דו-שיח או חלונות קופצים מותאמים אישית עם הגדרת גובה של יותר מ-8dp. כדאי להנמיך את הגובה של תיבת הדו-שיח או החלון הקופץ. אם אתם צריכים לבטל את ההסכמה לשימוש בהתנהגות החדשה הזו, כדאי ליצור תיבת דו-שיח או חלון קופץ משלכם עם הגדרת הגובה הרצויה. לא מומלץ לעשות זאת, כי יכול להיות שהנגישות תיפגע, והמפתח צריך לוודא שאפשר לבצע אינטראקציה עם החלק התחתון של תיבת הדו-שיח או החלון הקופץ, ושהשירותים לנגישות יכולים לקרוא אותו.
גרסה 1.3.0-alpha03
10 באוגוסט 2022
androidx.compose.material:material-*:1.3.0-alpha03
משוחרר. גרסה 1.3.0-alpha03 מכילה את ההצהרות האלה.
גרסה 1.3.0-alpha02
27 ביולי 2022
androidx.compose.material:material-*:1.3.0-alpha02
משוחרר. גרסה 1.3.0-alpha02 מכילה את ההצהרות האלה.
תרומה חיצונית
- תיקון בעיה ב-
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)- הוחזר השינוי הקודם של שימוש רק בתצוגה עבור
WindowInsetsControllerCompat
, ועכשיו נדרש שוב חלון, שנחוץ לניהול של דגלים מסוימים של חלונות. הוחלפהViewCompat.getWindowInsetsController
ב-WindowCompat.getInsetsController
כדי לוודא שנעשה שימוש בחלון הנכון (למשל, אם התצוגה נמצאת בתיבת דו-שיח). (I660ae, b/219572936) - Text:
includeFontPadding
מושבת עכשיו כברירת מחדל. המערכת מטפלת בבעיות החיתוך שנובעות מ-includeFontPadding=false
, ולא אמורה להתרחש בעיית חיתוך בסקריפטים ארוכים. (I31c84, b/171394808) - הוספנו ממשק API חדש של
LazyVerticalGrid
כדי להגדיר גדלים של צירים חופפים (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
שמאפשרים לדווח בזמן הידור על קריאה של פונקציה הניתנת להגדרה שמטרגטת מחולל שמטרגט אחר לא תוכנן להשתמש בו.ברוב המקרים, התוסף של ה-compiler של compose יכול להסיק את ההערות, ולכן השימוש בהערות האלה באופן ישיר צריך להיות נדיר . במקרים שבהם אי אפשר להסיק את הערך, המערכת יוצרת ומשתמשת ב-applier בהתאמה אישית, בפונקציות קומפוזביליות מופשטים (כמו שיטות ממשק), בשדות או במשתנים גלובליים שהם פונקציות lambda קומפוזביליות (משתנים מקומיים ופרמטרים מוסקים), או כשמשתמשים ב-
ComposeNode
או בפונקציות קומפוזביליות קשורות.למפעילים מותאמים אישית, הפונקציות הניתנות לקיפול שמפעילות את
ComposeNode
או אתReusableComposeNode
צריכות להוסיף הערהCompoableTarget
לפונקציה ולסוגי הפרמטרים של lambda שניתן לקיפול. עם זאת, מומלץ ליצור הערה עם הערהComposableTargetMarker
, ואז להשתמש בהערה המסומנת במקום ב-ComposableTarget
ישירות. הערה שניתנת ליצירה ולשימוש מחדש שמסומנת ב-ComposableTargetMarker
זהה ל-ComposbleTarget
עם השם המלא של סיווג המאפיין כפרמטר של הגורם המפעיל. דוגמה לשימוש ב-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)
- תוקנה בעיית RTL ב-
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
- שיפורים בגודל של משטח המגע
- שימו לב שבגרסה 1.0 של Compose, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material לגבי גודל יעד המגע. לדוגמה, יעד המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם תגדירו את הגודל של הלחצן לגודל קטן יותר. כך Compose Material תואם לאותו התנהגות של רכיבי Material Design, ומספק התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי Material של Compose, מתקיימים הדרישות המינימליות לנגישות של יעדי מגע.
- תמיכה יציבה בפס ניווט
- מספר ממשקי API שהיו בעבר ניסיוניים מקבלים סטטוס יציב
- תמיכה בגרסאות חדשות יותר של Kotlin
גרסה 1.1.0-rc03
26 בינואר 2022
androidx.compose.material:material-*:1.1.0-rc03
משוחרר. גרסה 1.1.0-rc03 כוללת את ההוספות האלה.
שינויים בהתנהגות
שימו לב שבגרסה 1.0 של Compose, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material לגבי גודל יעד המגע. לדוגמה, יעד המגע של הלחצן יתרחב לגודל מינימלי של 48x48dp, גם אם תגדירו את הגודל של הלחצן לגודל קטן יותר. כך Compose Material תואם לאותו התנהגות של רכיבי Material Design, ומספק התנהגות עקבית אם משלבים בין Views לבין Compose. השינוי הזה גם מבטיח שכשיוצרים את ממשק המשתמש באמצעות רכיבי Material של Compose, מתקיימים הדרישות המינימליות לנגישות של יעדי מגע.
תיקוני באגים
- נוספו פרטי ניפוי באגים טובים יותר לבדיקת הפריסה כשבודקים את המאפיינים המינימליים של יעדי המגע. (aosp/1955036)
גרסה 1.1.0-rc01
15 בדצמבר 2021
androidx.compose.material:material-*:1.1.0-rc01
משוחרר. גרסה 1.1.0-rc01 כוללת את השמירות האלה.
תיקוני באגים
- תיקון רדיוס הפינה שחלה על
Checkbox
es (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 כוללת את ההצהרות האלה.
תכונות חדשות
- עכשיו אפשר להשתמש בתנודות כדי להציג מצבי מצב של העברת העכבר מעל רכיב או של מיקוד עליו. כך, כשמעבירים את העכבר מעל רכיב כמו לחצן או מתמקדים בו, מוצגת שכבת-העל של המצב הנכון.
גרסה 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
, ומאפשר שליטה ברמה נמוכה על הדגלים שהחלון הקופץ מעביר ל-WindowManager של Android. הפרמטר של פונקציית ה-lambda יהיה הדגלים המחושבים מהערכים של PopupProperties שמובילים לדגלים של WindowManager: לדוגמה, focusable. התוצאה של הפונקציה הלימבית תהיה הדגלים הסופיים שיועברו ל-WindowManager של Android. כברירת מחדל, הפונקציה updateAndroidWindowManagerFlags לא תשנה את הדגלים המחושבים מהפרמטרים. צריך להשתמש ב-API הזה בזהירות, רק במקרים שבהם לחלון הקופץ יש דרישות התנהגות ספציפיות מאוד. (I6e9f9)
גרסה 1.1.0-alpha05
29 בספטמבר 2021
androidx.compose.material:material-*:1.1.0-alpha05
משוחרר. גרסה 1.1.0-alpha05 מכילה את ההצהרות האלה.
שינויים ב-API
- הוספת גודל מינימלי של יעד מגע לרכיבי Material שאין להם יעד מגע נגיש. מכיוון שהפעולה הזו מוסיפה רווח נוסף סביב הרכיבים כדי לוודא שיש להם יעד מגע גדול מספיק, היא עשויה לשנות ממשקי משתמש קיימים שמניחים שהגודל של הרכיבים האלה הוא הגודל החזותי שלהם, ולא מביאים בחשבון את גודל יעד המגע. אפשר להשתמש ב-composition local הניסיוני של
LocalMinimumTouchTargetEnforcement
כדי להשבית את ההתנהגות הזו בהיררכיה, אבל האפשרות הזו מיועדת רק כפתרון זמני בזמן העדכון של ממשקי המשתמש הקיימים כך שיתאימו לגודל המינימלי החדש. (I9b966, b/149691127, b/171509422) - נוספה ממשק ניסיוני בשם TextFieldColorsWithIcons, שמרחיב את TextFieldColors כדי לספק ל-leadingColor ול-trailingColor את InteractionSource. כך אפשר לשנות את המראה של 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)
- עדכנו את ה-composable של
Divider
כך שישתמש ב-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
, שמשתמשת ב-rects של המקור והיעד כדי להשתמש בפרמטר אופציונלי של FilterQuality. האפשרות הזו שימושית לגרפיקה שמורכבת מפיקסלים, שנועדה להיראות מפורטת יותר כשהיא מוגדלת. עודכנו הרכיבים BitmapPainter ו-Image composable כך שיכללו גם את הפרמטר האופציונלי FilterQuality (Ie4fb0, b/180311607) - שינינו את השם של BadgeBox ל-BadgedBox, ושינינו את הפרמטרים כדי לאפשר שימוש ב-Badge composable. הוסף רכיב תג, שהוא תוכן התג הרגיל של תיבה עם תג. (I639c6)
- נוספה רכיב NavigationRail. מידע נוסף על השימוש זמין במסמכים ובדוגמאות (I8de77)
תיקוני באגים
- הוספנו דוגמה לפס ניווט שמוגדר בתחתית המסך ודמו של אפליקציית Catalog. (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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תיקוני באגים
- תוקנה קריסה במעקב אחר מכונות של derivedStateOf. (aosp/1792247)
גרסה 1.0.4
13 באוקטובר 2021
androidx.compose.material:material-*:1.0.4
משוחרר. גרסה 1.0.4 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
עדכוני יחסי תלות
- העדכון נעשה כך שיהיה תלוי ב-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 כוללת את השמירות האלה.
עודכן כדי לתמוך במהדורה 1.0.2
של Compose. Compose 1.0.2
עדיין תואם ל-Kotlin 1.5.21
.
גרסה 1.0.1
4 באוגוסט 2021
androidx.compose.material:material-*:1.0.1
משוחרר. גרסה 1.0.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
עדכוני יחסי תלות
- העדכון נעשה כך שיהיה תלוי ב-Kotlin
1.5.21
.
גרסה 1.0.0
28 ביולי 2021
androidx.compose.material:material-*:1.0.0
משוחרר. גרסה 1.0.0 כוללת את ההצהרות האלה.
תכונות עיקריות בגרסה 1.0.0
זוהי הגרסה היציבה הראשונה של Compose. פרטים נוספים זמינים בבלוג הרשמי של Compose Release.
בעיות מוכרות
אם אתם משתמשים ב-Android Studio Bumblebee Canary 4 או ב-AGP
7.1.0-alpha04
/7.1.0-alpha05
, יכול להיות שתתקלו בקריסה הבאה:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
כדי לפתור את הבעיה, צריך להגדיל באופן זמני את minSdkVersion ל-24 ואילך בקובץ
build.gradle
. הבעיה הזו תיפתר בגרסה הבאה של Android Studio Bumblebee ו-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
גם אם הקלט לא תקין, אם התווית משמשת כתוספית. (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)
נוספו כללי פרופיל
בגרסה הזו נוספו כללי פרופיל למודול ה-Compose הבאים (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
מהם כללי הפרופיל?
כללי הפרופיל של ספרייה מצוינים בקובץ טקסט
baseline-prof.txt
שנמצא בתיקייהsrc/main
או בתיקייה המקבילה. בקובץ מצוין כלל לכל שורה, כאשר כלל במקרה הזה הוא דפוס להתאמה לשיטות או לכיתות בספרייה. התחביר של הכללים האלה הוא קבוצת-על של פורמט הפרופיל של ART שקריא לבני אדם, שבו נעשה שימוש כשמשתמשים ב-adb shell profman --dump-classes-and-methods ...
. הכללים האלה יכולים להיות באחת משתי צורות כדי לטרגט שיטות או כיתות.כלל method יהיה בעל התבנית הבאה:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
וכלל כיתה יהיה בעל התבנית הבאה:
<CLASS_DESCRIPTOR>
כאן,
<FLAGS>
הוא אחד או יותר מהתוויםH
, S
ו-P
, שמציינים אם צריך לסמן את השיטה הזו בתווית 'חמה', 'הפעלה' או 'לאחר ההפעלה'.השדה
<CLASS_DESCRIPTOR>
הוא התיאור של המחלקה שאליה שייך ה-method המטורגט. לדוגמה, למחלקהandroidx.compose.runtime.SlotTable
יהיה מתאר שלLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
הוא החתימה של השיטה, והוא כולל את השם, סוגי הפרמטרים וסוג המידע המוחזר של השיטה. לדוגמה, לשיטהfun isPlaced(): Boolean
ב-LayoutNode
יש את החתימהisPlaced()Z
.התבניות האלה יכולות לכלול תווים כלליים (
**
,*
ו-?
) כדי שכלל אחד יכלול כמה שיטות או כיתות.
מה המטרה של הכללים?
שיטה עם הדגל
H
מציינת שזו שיטה 'חמה', וצריך לקמפל אותה מראש.שיטה עם הדגל
S
מציינת שזו שיטה שנקראת בזמן ההפעלה, וצריכה להיות מתורגמת מראש כדי למנוע את העלות של הידור והפרשנות של השיטה בזמן ההפעלה.שיטה עם הדגל
P
מציינת שזו שיטה שנקראת אחרי ההפעלה.כיתה שמופיעה בקובץ הזה מציינת שהיא נמצאת בשימוש במהלך ההפעלה, וצריכה להיות מוקצית מראש בערימה כדי למנוע את העלות של טעינת הכיתה.
איך זה עובד?
- בספריות אפשר להגדיר את הכללים האלה, שיארזו בארטיפקטים של AAR. לאחר מכן, כשמפתחים קובץ APK שכולל את הארטיפקטים האלה, הכללים האלה ממוזגים יחד והכללים הממוזגים משמשים ליצירת פרופיל ART בינארי קומפקטי שספציפי לקובץ ה-APK. לאחר מכן, כשקובץ ה-APK מותקן במכשירים, ה-ART יכול להשתמש בפרופיל הזה כדי לקמפל מראש קבוצת משנה ספציפית של האפליקציה, כדי לשפר את הביצועים של האפליקציה, במיוחד בהפעלה הראשונה. לתשומת ליבכם: לא תהיה לכך השפעה על אפליקציות שניתן לנפות באגים בהן.
גרסה 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)- הוספנו עומס יתר חדש של כרטיס שמטפל בקליקים וגם בפונקציונליות אחרת שניתן ללחוץ עליה: indication, interactionSource, enabled/disabled. לא ניתן היה להשתמש בכרטיס רגיל שלא ניתן ללחוץ עליו עם
Modifier.clickable
, כי הכרטיס לא חותך את ההודעה על התנודות במקרים כאלה.
- הוספנו עומס יתר חדש של כרטיס שמטפל בקליקים וגם בפונקציונליות אחרת שניתן ללחוץ עליה: indication, interactionSource, enabled/disabled. לא ניתן היה להשתמש בכרטיס רגיל שלא ניתן ללחוץ עליו עם
- שינוי התנהגות: Surface צורך עכשיו קליקים, כך שקליקים שנוספו דרך
Surface(Modifier.clickable)
לא מבוצעים. יש להשתמש בעומס יתר ניסיוני חדש של Surface שמקבל onClick. (I73e6c, b/183775620)- נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שניתן ללחוץ עליה: indication, interactionSource, enabled/disabled. לא ניתן היה להשתמש ב-Surface רגיל שאין בו אפשרות ללחוץ עליו עם
Modifier.clickable
, כי ה-Surface לא יקצץ את ההודעה על התנודות במקרים כאלה.
- נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שניתן ללחוץ עליה: indication, interactionSource, enabled/disabled. לא ניתן היה להשתמש ב-Surface רגיל שאין בו אפשרות ללחוץ עליו עם
שינויים ב-API
FabPosition
הוסב לכיתה מוטמעת מ-enum כדי לתמוך בהרחבה פוטנציאלית בעתיד (I030fb)- שינינו את השימוש ב-enum לכיתות מוטמעות כדי למנוע בעיות עם הצהרות exhaustive when כשמוסיפים ערכים חדשים ל-enum. (I2b5eb)
- הוספת זמן קצוב לתפוגה של הקשה על רכיבים שניתן ללחוץ עליהם או להחליף את המצב שלהם, כדי למנוע הצגת תנודות במהלך גלילה או גרירה (Ia2704, b/168524931)
- המאפיינים ContentDescription ו-Text semantics הם עכשיו רשימות ולא ערכים בודדים. כך אפשר למזג אותם כפי שהם, במקום כשרשימות מחוברות. בנוסף, הוספנו ממשקי API טובים יותר לבדיקה כדי לנצל את השינויים האלה (Ica6bf, b/184825850)
- האפשרות
Modifier.focusModifier()
הוצאה משימוש והוחלפה באפשרותModifier.focusTarget()
(I6c860) - החלפת המאפיין המסווג
FocusState
בממשקFocusState
(Iccc1a, b/187055290) - הוסר
LocalRippleNativeRendering
עכשיו שההטמעה של תנודות גליות (ripple) שמבוססת על תצוגה יציבה (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, ולכן הן יהיו חלקות גם כשחוט ממשק המשתמש נמצא בעומס, למשל כשמנווטים בין מסכים. השינוי הזה לא משנה את ממשק ה-API של Ripple, אבל יכול להיות שיהיו שינויים בהתנהגות כתוצאה מהשינוי הזה. כדי לעזור בהעברה, נוספהLocalRippleNativeRendering
– צריך לספק ערך שלfalse
ל-CompositionLocal הזה כדי לחזור לגרסה הקודמת של ההטמעה של Ripple בתוך CompositionLocalProvider. ה-API הזה הוא זמני ויוסר בעתיד, לכן אם נתקלת בבעיות שגורמות לך להשתמש ב-API הזה, עליך לשלוח דיווח על באג. (I902f8, b/168777351, b/183019123) - נוספו ממשקי API לנגישות של CollectionInfo ו-CollectionItemInfo שמאפשרים לסמן את האוסף ואת הפריטים שלו לשירותי נגישות (Id54ef, b/180479017)
- הוספנו את Accessibility API
error
שמאפשר לסמן צומת שמכיל קלט לא חוקי (I12997, b/180584804, b/182142737)
תיקוני באגים
- עדכנו את ההטמעה של התמונות הממוזערות של קטלוג Material ב-Compose מהכתובת: https://github.com/google/accompanist/pull/365. (I25dc3)
- צאצאים של שורה ועמודה עם weight(fill = false) כבר לא גורמים לרכיב ההורה למלא את כל השטח הזמין של הציר הראשי. (Ied94d, b/186012444, b/184355105)
גרסה 1.0.0-beta05
21 באפריל 2021
androidx.compose.material:material-*:1.0.0-beta05
משוחרר. גרסה 1.0.0-beta05 כוללת את ההתחייבויות האלה.
תיקוני באגים
- הוספנו תמונות של משבצות רכיבים, בורר נושאים וכתובות URL ספציפיות יותר של תפריטים לקטלוג הקיים של Compose Material. (I9b58e)
גרסה 1.0.0-beta04
7 באפריל 2021
androidx.compose.material:material-*:1.0.0-beta04
משוחרר. גרסה 1.0.0-beta04 מכילה את ההצהרות האלה על ביצוע שינויים.
שינויים ב-API
- שינוי ב-API: המצב
DrawerState
לא מאריך יותר את המצב הניסיוני 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)
תרומה חיצונית
- [מאת Jossi Wolf]
BottomDrawer
עכשיו עוטף את התוכן של חריץ המגירה.BottomDrawer
לא גורם להשלכתIllegalStateException
כשלגובה של האב אין גבול. מעכשיו, התיבה התחתונה תיפתח במצב מורחב אם היא קטנה מ-50% מהתיבה של ההורה שלה. המסמכים בנושאBottomDrawerState
ו-ModalBottomSheetLayoutState
עודכנו. הפונקציהBottomDrawerState#isOpen
מחזירה עכשיו את הערך true אם היא במצב פתוח או מורחב. (I87241)
גרסה 1.0.0-beta02
10 במרץ 2021
androidx.compose.material:material-*:1.0.0-beta02
משוחרר. גרסה 1.0.0-beta02 מכילה את ההצהרות האלה.
שינויים ב-API
- נוספה ממשק API מקומי חדש של
LocalSoftwareKeyboardController
כדי להחליף את הממשק הקודם שלSoftwareKeyboardController
ב-TextField. (I5951e, b/168778053)
תיקוני באגים
- אכיפה של הגבלות על שימוש ציבורי בממשקי API ניסיוניים (I6aa29, b/174531520)
- שינינו את הגדרת ברירת המחדל של ההתאמה האופקית של TopAppBar ו-BottomAppBar ל'התחלה', בהתאם ל-Row (Ib2dc7)
- הוספנו מודול חדש וממשק משתמש למעקב אחרי קטלוג של 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/Modifier.preferredHeight/Modifier.preferredSize שונו ל-width/height/size. (I5b414)
- הפונקציות imageResource ו-vectorResource הן עכשיו פונקציות תוסף של התכונות ImageBitmap ו-ImageVector, בהתאמה. הפונקציות load{Image,Vector,Font}Resource נמחקו. (I89130)
- המשתנים המתאימים לשינוי הגודל בהתאם למאפיינים המובנים כבר לא נחשבים לניסיוניים. (I15744)
- הוסר dp assertions (I798d2)
- הסרנו את הקריאה החוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב ב-API חדש. (Iae869, b/168778053)
- פונקציות הלמה של פעולות של מתגים, תיבות סימון ולחצני בחירה יכולות עכשיו להיות 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 שהוצאו משימוש. יש להשתמש בפונקציה במקום במאפיין עבור positionInParent ו-boundsInParent (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 שמאפשר לסמן אוסף של כרטיסיות או לחצני בחירה למטרות נגישות (Ie5c29)
הוספת LazyListState.animateScrollToItem
השיטה הזו מאפשרת גלילה חלקה לפריט ספציפי ברשימה. (I4bfd7)
השם של
ScrollableState.smoothScrollBy()
השתנה ל-animateScrollBy()
השם שלLazyListState.snapToItemIndex()
השתנה ל-scrollToItem()
השם שלScrollState.smoothScrollTo()
השתנה ל-animateScrollTo()
(I35ded)כל רכיבי ה-Composables שמסומנים ב-
@ReadOnlyComposable
מאומתים עכשיו בזמן הידור כדי לוודא שהם מבצעים רק קריאות ל-@ReadOnlyComposables
אחרים (I58961)ממשק ה-API TargetAnimation הוסר. (If47d1, b/177457083)
מיקום הגלילה ב-Modifier.verticalScroll()/horizontalScroll() מיוצג עכשיו באמצעות מספרים שלמים (I81298)
החבילות של השיטות smoothScrollBy ו-scrollBy השתנו ל-
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473)השם של FlingConfig השתנה ל-FlingBehavior, והוא מאפשר עכשיו להתאים אישית את אנימציית ההשהיה במקום תנודות מותנות מראש. (I02b86, b/175294473)
השם של מגברי הגודל השתנה. השמות של Modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של Modifier.preferredWidth/Modifier.preferredHeight/Modifier.preferredSize שונו ל-width/height/size. (I5b414)
השם של defaultMinSizeConstraints השתנה ל-defaultMinSize. (I4eaae)
ההגדרה 'כיוון' הועברה לחבילת הבסיס. VelocityTracker הועבר מ-ui.gesture אל ui.input.pointer. (Iff4a8, b/175294473)
drawerState.open() ו-drawerState.close() הן עכשיו פונקציות השהיה. משתמשים ב-rememberCoroutineScope() כדי לקבל את ההיקף של הקומפוזיציה כדי לקרוא להן (I16f60, b/175294473)
השם של Providers השתנה ל-CompositionLocalProvider
- ה-constructor של Composition לא מקבל יותר פרמטר מפתח, והוא הוצא משימוש.
- currentCompositeKeyHash הפך לנכס ברמה העליונה שניתן להגדרה, במקום לפונקציה ברמה העליונה שניתן להגדרה.
- CompositionData ו-CompositionGroup הועברו למרחב השמות androidx.compose.runtime.tooling
- הפונקציה ComposableLambda הפכה לממשק במקום לכיתה ספציפית, והיא כבר לא כוללת פרמטרים של סוגים.
- הפונקציה ComposableLambdaN הפכה לממשק במקום לכיתה קונקרטית, והיא כבר לא כוללת פרמטרים של סוג.
- הפונקציה snapshotFlow הועברה למרחב השמות androidx.compose.runtime
- שיטת המיזוג של SnapshotMutationPolicy כבר לא ניסיונית
- הפונקציה clearRoots ברמה העליונה
@TestOnly
הוסרה. אין צורך יותר. - הפונקציות keySourceInfoOf ו-resetSourceInfo הוסרו. אין יותר צורך בהם.
- הפונקציה Composer.collectKeySourceInformation הוסרה. אין צורך יותר.
- השיטות isJoinedKey, joinedKeyLeft ו-joinedKeyRight הוסרו. אין יותר צורך בהם.
- ממשקי API שונים ברמה העליונה הועברו וסודרו מחדש בקבצים שונים. בגלל הסמנטיקה של סיווג הקבצים ב-Kotlin, הפעולה הזו תפגע בתאימות הבינארית אבל לא בתאימות למקור, כך שלא אמורה להיות בעיה אצל רוב המשתמשים.
- (I99b7d, b/177245490)
Modifier.scrollable עוצב מחדש. עכשיו הוא משתמש בממשק Scrollable במקום בכיתה ScrollableController (I4f5a5, b/174485541, b/175294473)
Modifier.draggable מקבל עכשיו DraggableState במקום פונקציית lambda פשוטה. אפשר ליצור מצב באמצעות
rememberDraggableState { delta -> }
כדי לקבל את אותו התנהגות כמו קודם (Ica70f, b/175294473)הפונקציות 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() מפני שהן לא היו שימושיות או נפוצות.
- שינית את השם של
onValueChangeEnd
ב-Slider
ל-onValueChangeFinished
והגדרת אותו כאפשרות nullable. - השם של הפרמטר
text
ב-Snackbar
השתנה ל-content
כדי לשמור על עקביות. - הוספנו את הפרמטר
contentPadding
ל-DropdownMenuItem
כדי לאפשר התאמה אישית של ריפוד ברירת המחדל, והפכנו אתcontent
לתוסף שלRowScope
. - השם של
ModalDrawerLayout
השתנה ל-ModalDrawer
. - השם של
BottomDrawerLayout
השתנה ל-BottomDrawer
. - (I1cc66)
עכשיו אפשר להשתמש ב-BasicTextField עם מברשת במקום עם צבע, כדי להתאים אישית את הרכיב בצורה טובה יותר (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 כדי להחליף את הממשק הקודם של 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 לזכור מפתחות כדי לציין מתי צריך להפעיל מחדש את פונקציית ה-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)
- שיטות Destructuring ו-copy() הוסרו מכמה כיתות שבהן הן שימשו לעיתים רחוקות. (I26702, b/178659281)
- הפיכת הפונקציות halfExpand() ו-expand() ב-ModalBottomSheetState לפונקציות פנימיות (Ic914e)
- שינינו את Indication#createInstance ל-@Composable, ושינינו את LocalIndication כך שיכיל Indication, ולא () -> Indication. (I5eeea, b/157150564)
- העתקנו את AlertDialog ו-DropdownMenu ל-Android בלבד בינתיים. נוספו הפרמטרים PopupProperties ו-DropdownMenu כדי להגדיר את החלונית הקופצת הבסיסית. (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)
- ה-API Modifier.dragGestureFilter הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-
Modifier.pointerInput { detectDragGestures (...)}
. לחלופין, אפשר להשתמש ב-Modifier.draggable כדי לגרור ציר אחד (I0ba93, b/175294473) - השם של Ambients שונה כך שיתאים לשם של Ambient -> CompositionLocal rename. בעבר, השם של סביבות האווירה היה AmbientFoo, עכשיו השם של CompositionLocals הוא LocalFoo. (I2d55d)
- הבחירה הועברה ל-Foundation. (I7892b)
- בדומה להסרה הקודמת של
state { 0 }
composable ועידוד השימוש ב-remember { mutableStateOf(0) }
, אנחנו עומדים להסיר אתsavedInstanceState { 0 }
composable. במקום זאת, צריך להשתמש ב-rememberSaveable { mutableStateOf(0) }
, והוא ישמור וישחזר באופן אוטומטי אם אפשר לאחסן את הסוג שנעשה בו שימוש ב-MutableState בחבילה. אם בעבר העברתם אובייקט שומר מותאם אישית, עכשיו צריך להשתמש בעומס יתר חדש של rememberSaveable עם הפרמטרstateSaver
. השימוש ייראה כך:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - נוספה 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 כדי לתמוך בהשתקפות האוטומטית של הצורה בכיוון RTL. הערכים 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)
מוסיפים את ה-API SemanticsProperties.PaneTitle. (I20d5a)
הוספנו פרמטרים מופעלים ל-Tab ול-BottomNavigationItem כדי למנוע אפשרות ללחוץ עליהם. שינינו את BottomNavigationItem ל-RowScope.BottomNavigationItem כדי להביע בצורה טובה יותר את דרישות הפריסה שלו ב-API. (Id683d)
ה-API tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter ו-pressIndicaitonGestureFilter הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.clickable או ב-Modifier.pointerInput עם הפונקציה detectTapGestures. (I6baf9, b/175294473)
מוסיפים את הפרמטר layoutDirection ל-createOutline של Shape. כך אפשר ליצור צורות שמותאמות לכיוון הפריסה. (I57c20, b/152756983)
בוצעה הסרה של
Recomposer.current()
. [Abstract]ComposeView עכשיו מוגדר כברירת מחדל ל-Recomposers ברמת החלון שנוצרים באופן עצלני ומנוהלים על ידי ViewTreeLifecycleOwner של החלון. הטיקים של האנימציה המבוססת על Recomposition ו-withFrameNanos מושהים בזמן שה-Lifecycle של המארח מושהה. (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 (I5d20e)
@Experimental
- הפרמטר 'תיאור התוכן' נוסף לתמונה ולסמל. הוא משמש לספק תיאור לשירותי הנגישות (I2ac4c)
- שינוי ממשקי הפרמטרים של Material עם מצב (stateful) כך שיכללו פונקציות @Composable שמחזירות את הערך
State<T>
. הוספתAnimatable.asState()
כדי שיהיה קל יותר להמיר רכיב Animatable למצב. בנוסף, הקוד משנה את animateElevation לתוסף השהיה ב-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
. נוספה שיטת מפעלcreateEmptyComposeRule()
שמחזירהComposeTestRule
ולא מפעילה בשבילכם Activity. משתמשים באפשרות הזו כשרוצים להפעיל את הפעילות במהלך הבדיקה, למשל באמצעותActivityScenario.launch
(I9d782, b/174472899)אי אפשר יותר להתאים אישית את הרטט שמוצג ב-Button וב-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)משך הזמן וזמן הפעולה התקינה יוחלפו ב-Long milliseconds, והשלב הזה מסיר את התלות של קלט הסמן בקטגוריות האלה. (Ia33b2, b/175142755, b/177420019)
הוסרה הפונקציה AnimatedFloat.fling שמקבלת FlingConfig. במקום זאת, צריך להשתמש ב-suspend Animatable.animateDecay. (I4659b, b/177457083)
אפשר ליצור עכשיו רכיבים שניתנים ללחיצה, להפעלה/השבתה ולבחירה מחוץ ליצירה (I0a130, b/172938345, b/175294473)
השתנה האפשרות 'החלקה' לממשק פונקציונלי (Ib14e5)
הרכיבים ScrollableColumn/Row הוצאו משימוש. כשיש תוכן גדול שאפשר לגלול בו, השימוש ב-ScrollableColumn פחות יעיל בהשוואה ל-LazyColumn, כי ב-LazyColumn אפשר רק ליצור/למדוד/לצייר רכיבים גלויים. כדי למנוע מהמשתמשים להשתמש בדרך לא יעילה, החלטנו להוציא משימוש את ScrollableColumn ו-ScrollableRow ולעודד שימוש ב-LazyColumn וב-LazyRow במקום זאת. המשתמשים עדיין יכולים להחליט שהם לא צריכים את ההתנהגות העצלה ולהשתמש במודיפיקטורים ישירות, כך: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
שיטת ייצור חדשה של
items(count: Int)
להיקף של LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
ו-itemsIndexed(items: List)
הן עכשיו פונקציות תוסף, כך שצריך לייבא אותן באופן ידני כשמשתמשים בהן. עומסי יתר חדשים של תוספים למערכים:items(items: Array)
ו-itemsIndexed(Array)
(I803fc, b/175562574)הוסר השימוש בשיטות הניסיוניות 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
- שינוי המהירות כך שתכלול רכיבים ופעולות מתמטיות. (Ib0447)
- השם של
@ExperimentalTesting
השתנה ל-@ExperimentalTestApi
כדי להתאים להערות דומות של ממשקי API ניסיוניים (Ia4502, b/171464963) - שינינו את השם של Position ל-DpOffset והסרנו את getDistance() (Ib2dfd)
- שינינו את השם של Color.useOrElse() ל-Color.takeOrElse() (Ifdcf5)
- הוספת מתג ל-Strings.kt ב-foundation (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 תומך ב-getters של נכסים שיכולים לבצע קריאות שניתנות ליצירה. התמיכה באפשרות הזו לא תבוטל, אבל התחביר להצהרה על פונקציית getter של מאפיין כ-@Composable ישתנה.
כדי לעשות זאת, השתמשו בעבר בתחביר שכבר לא נתמך, שבו הוסיפו הערה לנכס עצמו:
@Composable val someProperty: Int get() = ...
התחביר הנכון לביצוע הפעולה הזו הוא הוספת הערה ל-getter של המאפיין:
val someProperty: Int @Composable get() = ...
שני תחבירים יפעלו במשך זמן מה, אבל בסופו של דבר התחביר הקודם שהוצא משימוש יהפוך לשגיאת הידור. (Id9197)
נוספה ספריית
androidx.compose.material:material-ripple
שמכילה ממשקי API של תנודות כדי לאפשר ליצור רכיבים אינטראקטיביים בלי להשתמש בשאר ספריית Material. הפונקציה rememberRippleIndication הוצאה משימוש והוחלפה בפונקציה rememberRipple. (Ibdf11)
תיקוני באגים
- פונקציות Lambda במשתני שינוי של אופסט מחזירות עכשיו IntOffset במקום Float. (Ic9ee5, b/174137212, b/174146755)
שיפרנו את ShaderBrush כדי ליצור באופן עצלני מופע של שַדְר (shader) כשמידע על הגודל של סביבת הציור זמין. האפשרות הזו שימושית להגדרת מעברי צבע שממלאים את כל גבולות הציור של רכיב ה-Composable בזמן היצירה, בלי צורך להטמיע הטמעות מותאמות אישית של DrawModifier.
ממשקי API של פונקציות שיפוע שהוצאו משימוש, לטובת שיטות של מפעלים באובייקט Gradient. (I511fc, b/173066799)
Modifier.focusObserver הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.onFocusChanged או ב-Modifier.onFocusEvent (I30f17, b/168511863, b/168511484)
הוצאה משימוש של LazyColumnFor, LazyRowFor, LazyColumnForIndexed ו-LazyRowForIndexed. במקום זאת, צריך להשתמש ב-LazyColumn וב-LazyRow (I5b48c)
העברנו את Dp.VectorConverter, Position.VectorConverter וכו' אל animation-core, והוצאנו משימוש את ה-VectorConveters הישנים (If0c4b)
Autofill API הוא עכשיו ממשק API ניסיוני, ונדרש הסכמה מפורשת לשימוש בו (I0a1ec)
הוספת הצהרות לפירוק מבנה כדי ליצור מכונות של FocusRequester (I35d84, b/174817008)
השם של accessibilityLabel השתנה ל-contentDescription. השם של accessibilityValue השתנה ל-stateDescription. (I250f2)
פונקציה חדשה מסוג infiniteRepeatable ליצירת InfiniteRepeatableSpec (I668e5)
אופן המיקום של תפריטים נפתחים השתנה מעט בהתאם למפרט של Material. (I34c72, b/168594123)
הוספנו תמיכה ב-InteractionState בשדות טקסט. (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 Design יכולות להשתמש באופן ידני ב-AmbientTextSelectionColors כדי להתאים אישית את הצבעים שבהם נעשה שימוש לבחירה. (I1e6f4, b/139320372, b/139320907)
- הוספנו בדיקת איתור שגיאות בקוד לשמות ולמיקום של פרמטרים של lambda שניתנים ליצירה, כדי לבדוק את העקביות עם ההנחיות של Compose.
בנוסף, העברנו חלק מממשקי ה-API שמשתמשים ב-
children
בתור השם של פונקציית ה-lambda שבסוף ל-content
, בהתאם לבדיקת האיתור של שגיאות בקוד ולהנחיות. (Iec48e) - שינינו את השם של VectorAsset ל-ImageVector, והעברנו את VectorAsset ושינינו את השם שלו ל-Builder כדי שיהיה כיתה פנימית של ImageVector, בהתאם להנחיות של מועצת ה-API. הוספנו סוג חלופי של VectorAssetBuilder כדי לקשר ל-ImageVector.Builder לצורך תאימות. (Icfdc8)
- השם של ImageAsset והשיטות הקשורות השתנה ל-ImageBitmap. (Ia2d99)
- העברת מאפייני סמנטיקה בסיסיים ל-UI (I6f05c)
- האפשרות
fun RippleIndication()
הוצאה משימוש והוחלפה ב-rememberRippleIndication()
כדי לשמור על עקביות עם ממשקי API אחרים. (Id8e2c) - נוספה פרמטר singeLine ל-BasicTextField, ל-TextField ול-OutlinedTextField. מגדירים את הפרמטר הזה כ-true כדי שהשדה יכיל שורה אחת שניתן לגלול בה אופקית. (I57004, b/168187755)
תיקוני באגים
- הוספת פעולה סמנטית 'ביטול' (I2b706)
- העברנו את ממשקי ה-API של DrawModifier מחבילת androidx.compose.ui לחבילה androidx.compose.ui.draw. נוצר הקובץ DrawModifierDeprecated.kt כדי לכלול שיטות עזר או כינויים מסוגים (type aliases) שיעזרו בהעברה מ-APIs הקודמים ל-APIs הנוכחיים. (Id6044, b/173834241)
- שינינו את השם של Modifier.drawLayer ל-Modifier.graphicsLayer. בנוסף, עדכנו את הכיתות הקשורות ל-GraphicsLayer בהתאם למשוב על ה-API. (I0bd29, b/173834241)
<T>
הוסר מהצהרת SubcomposeLayout. עכשיו אפשר להשתמש בו בלי לציין סוג. (Ib60c8)- הוספנו ממשקי API של Modifier.scale/rotate לצורך נוחות ב-drawLayer.
- השם של
Modifier.drawOpacity
השתנה ל-Modifier.alpha
- שינית את השם של
Modifier.drawShadow
ל-Modifier.shadow
(I264ca, b/173208140)
- השם של
- שם הפרמטר של Box שונה ל-contentAlignment. (I2c957)
- השם של המשתנים offsetPx השתנה ל-offset. עכשיו הם מקבלים פרמטרים של lambda במקום State. (Ic3021, b/173594846)
- הוספנו את ממשקי ה-API SweepGradientShader ו-SweepGradientBrush. (Ia22c1)
- הוספנו בדיקת איתור שגיאות בקוד (lint) לפרמטרים של מודификаторים בפונקציות מורכבות. בדיקת האיתור של שגיאות בקוד בודקת את השם, סוג ההחזרה, ערך ברירת המחדל והסדר של הפרמטר כדי לוודא שהוא עומד בהנחיות של Compose. (If493b)
- עדכון של TextFieldValue API
- הפכנו את TextFieldValue.composition לקריאה בלבד
- הוסר חריג שהופעל בגלל טווח בחירה לא תקין (I4a675, b/172239032)
- נוספה עומס יתר חדש של
Modifier.drawLayer()
. הוא מקבל בלוק lambda ב-GraphicsLayerScope חדש שבו מגדירים את פרמטרי השכבה באופן שמאפשר לדלג על הרכבת מחדש ועל פריסה מחדש כשמתרחש שינוי המצב. DrawLayerModifier הוא עכשיו פנימי, לקראת העברת הלוגיקה שלו לשיטהplaceable.placeWithLayer()
של LayoutModifier (I15e9f, b/173030831) - הוצאנו משימוש את הסביבות של Ambients עם הסיומת
Ambient
והחלפנו אותן בנכסים חדשים עם התחילית Ambient, בהתאם להנחיות אחרות לגבי Ambients ו-Compose API. (I33440) - נוספה בדיקת איתור שגיאות בקוד כדי לבדוק שמפעלי מודיפיקטור משתמשים ב-
androidx.compose.ui.composed {}
באופן פנימי, במקום להיות מסומנים כ-@Composable
. (I3c4bc) - שם הארגומנט הסמנטי mergeAllDescendants שונה ל-mergeDescendants. (Ib6250)
- שליטה בזמן בבדיקות (TestAnimationClock והשימושים שלו) היא עכשיו ניסיונית (I6ef86, b/171378521)
- הסרת המודול הישן של בדיקת ממשק המשתמש והסטאבים שלו (I3a7cb)
- השם של TextUnit.Inherit השתנה ל-TextUnit.Unspecified כדי לשמור על עקביות עם יחידות אחרות. (Ifce19)
- ממשק ההתאמה עודכן והפך לפונקציונלי. (I46a07, b/172311734)
- השם של id השתנה ל-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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-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)
- עדכנו את Icon 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. אם אתם לא רוצים להשתמש בספריית Material, אתם יכולים גם להשתמש ברכיב Image או ב-Modifier.paint() עם Painter. (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)
- כל מצבי התבנית מסומנים בתווית @Stable. drawerGesturesEnabled ב-ScaffoldState הועבר ל-Scaffold עצמו. (I36645, b/168297016)
- הסרת סוג nullable מפרמטר lambda של Scaffold. אפשר להשתמש ב-emptyContent() כדי לייצג חוסר תוכן לפרמטר נתון. (I2b318, b/157633857, b/158551084)
הוצאה משימוש של ממשקי ה-API contentColor() ו-currentTextStyle(), והחלפתם ב-AmbientContentColor וב-AmbientTextStyle, בהתאמה. כדי לגשת לערך הנוכחי, משתמשים ב-
.current
במאפיין הסביבה, כמו בכל מאפיין סביבה אחר. השינוי הזה בוצע כדי לשמור על עקביות וכדי למנוע מצב שבו יש כמה דרכים להשיג את אותו הדבר. בנוסף, השמות של חלק מהמאפיינים הסביבתיים שונו כדי לתאר טוב יותר את המטרה שלהם:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
נוספה AmbientElevationOverlay, שמאפשרת להתאים אישית או להשבית את שכבת-העל של הגובה שמוגדרת כברירת מחדל ומוחלת על משטחים בעיצוב כהה. (I5b74d)
תיקוני באגים
- כחלק מהסטנדרטיזציה של ערכי סנטינל לכיתות בקוד, שינינו את השם של 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-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)
תיקוני באגים
- עדכנו הרבה ממשקי Graphics API
- עדכנו את ממשקי ה-API של טרנספורמציות של שינוי קנה מידה וסיבוב כך שישתמשו בפרמטר Offset יחיד שמייצג את קואורדינטת הציר, במקום בפרמטר float נפרד לכל אחת מקואורדינטות ה-x/y ב-DrawScope וב-DrawTransform.
- הוסר השימוש בשיטות Rect.expandToInclude ו-Rect.join
- עדכנו את המסמכים של Radius כך שיכללו את המונח 'אליפסה' בנוסף למונח 'אליפסואיד'
- נוספה תיעוד כדי לציין שאין להפעיל ישירות את המבנה הציבורי של הכיתה Radius שמוטמעת בקוד, אלא ליצור אובייקטים של Radius באמצעות המבנים של הפונקציות שלהם
- הוסרו ממשקי ה-API של RoundRect לשליחת שאילתות ל-topRight, bottomRight, bottomCenter וכו'.
- הוצאה משימוש של Rect.shift לטובת Rect.translate
- הוסרו ממשקי ה-API RoundRect.grow ו-Rect.shrink
- שינוי השם של RoundRect.outerRect ל-Rect.boundingRect
- הוסרו השיטות RoundRect.middleRect/tallMiddleRect/wideMiddleRect ו-Rect.isStadium
- השם של RoundRect.longestSide השתנה ל-RoundRect.maxDimension
- שינוי השם של RoundRect.shortestSide ל-RoundRect.minDimension
- שינוי RoundRect.center לנכס במקום לפונקציה
- עדכנו את ה-constructor של RoundRect כך שישתמש במאפייני Radius במקום בפרמטרים נפרדים לערכים של רדיוס x/y
- הוסרו ממשקי API של גודל שהניחו שמדובר ב-Rectangle עם מקור ב-0,0
- הוספנו ל-Radius ממשק API להרס עצמי
- העברנו פונקציות שונות של התוסף RoundRect לנכסים במקום זאת
- (I8f5c7, b/168762961)
- ה-foundation.Box הוצא משימוש. במקום זאת, צריך להשתמש ב-foundation.layout.Box. (Ie5950, b/167680279)
- השם של Stack השתנה ל-Box. תיפסק התמיכה ב-Box הקודם, והוא יוחלף ב-Box החדש ב-compose.foundation.layout. ההתנהגות של Box החדש היא להציב את הצאצאים זה על גבי זה כשיש לו כמה צאצאים – בניגוד ל-Box הקודם, שההתנהגות שלו הייתה דומה לזו של Column. (I94893, b/167680279)
- הפרמטרים של עיטור התיבה הוצאו משימוש. אם רוצים להוסיף לקובייה קישוטים או שוליים, צריך להשתמש במקום זאת ב-Modifiers (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- עדכנו הרבה ממשקי Graphics API
- עדכנו את ממשקי ה-API של DrawScope עם שיטות טרנספורמציה ברמת ההיקף כדי לציין שהטרנספורמציה חלה רק בתוך פונקציית הקריאה החוזרת, והיא תוסר אחרי ההפעלה של פונקציית הקריאה החוזרת
- מסמכי העזרה של clipPath עודכנו כך שיתייחסו ל-Path במקום ל-rounded rectangle
- תוקן המרווח במסמכי התיעוד של הפרמטר הנכון ב-clipPath
- שינוי השם של DrawScope.drawCanvas ל-drawIntoCanvas והסרת הפרמטר size
- שינוי השם של הפרמטרים dx/dy בשיטת ההכנסה ל'אופקי' ו'אנכי'
- הוספנו עומס יתר של inset שמספק את אותו ערך inset לכל 4 הגבולות
- הסרנו את המסמך בנושא שיטת ההכנסה (inset) שמציין שההכנסה תחול על כל 4 הצדדים
- מסמכי עזר מעודכנים לגבי הכיתה Rect
- עדכנו את ההערות על הפרמטרים של Rect כך שיתאימו לסגנון של kdoc.
- הוסר Rect.join ו-Rect.expandToInclude
- נוצרה עומס יתר ל-Rect.translate(offset) והוצא משימוש Rect.shift
- (If086a, b/167737376)
- חסמנו ייבוא סטטי של תוכן של היקפי פריסה (למשל 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 בממשקי ה-API של הפריסה. (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 מכילה את ההצהרות האלה.
בעיה ידועה
= The first character in a material TextField
cannot be removed using a 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
שינויים ב-API
- הוסרו הרכיבים RadioGroup ו-RadioGroupItems שהוצאו משימוש. במקום זאת, צריך להשתמש בשורה ובלחצן רדיו (I381b7, b/163806637)
- הוסרו קריאות חזרה מסוג onFocusChanged מ-TextField. במקום זאת, צריך להשתמש ב-Modifier.focusObserver. (I51089, b/161297615)
- ה-Modifier.drawBorder הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.border. מחלקת הנתונים של גבול הוחלפה ב-BorderStroke (I4257d, b/158160576)
- שינינו את השם של כמה מאפיינים ב-SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. נוספה פונקציית rememberSwipeableState ליצירת SwipeableStates. (I2fc9c, b/163129614, b/163132293)
- נוספה תמיכה בסרגל ההודעות עם מיקום ואפשרות להצגה בתור. אפשר לגשת אליו באמצעות פונקציית ההשעיה
SnackbarHostState.showSnackbar
. בנוסף:- נוספו רכיבים של SnackbarHost. הוא מארח את סרחי הסטטוס בהתאם למצב, והוא אחראי על המעבר בין סרחי הסטטוס.
- הוספת SnackbarHostState מאפשרת לשלוט בחלוניות הסטטוס, במארחים שלהן ולנתק אותן מ-ScaffoldState. אפשר לגשת למצב הזה גם דרך
scaffoldState.snackbarHostState
. - נוספה עומס יתר על סרגל ההודעות כדי לתמוך בממשק משותף בין snackbarHostState לבין סרחי ההודעות עצמם. (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)
- נוספו ל-Drawers פרמטרים של התאמה אישית: modifier, backgroundColor, contentColor ו-scrimColor (I23655, b/161804378)
- ה-composable של
state { ... }
הוצא משימוש, ועכשיו מומלץ להשתמש בקריאות מפורשות ל-remember { mutableStateOf(...) }
כדי לשפר את הבהירות. כך מקטינים את שטח ה-API הכולל ואת מספר המושגים לניהול המצב, והשיטה תואמת לדפוסby mutableStateOf()
להענקת גישה לנכסי הכיתה. (Ia5727) - השם של הפרמטר padding של הלחצן שונה ל-contentPadding (Id252e, b/161809394)
- הוספת רכיב חומר ניסיוני SwipeToDismiss. (I129e5)
תיקוני באגים
onChildPositioned
ו-OnChildPositionedModifier
הוסרו. במקום זאת, המפתחים צריכים להשתמש ב-onPositioned
וב-OnPositionedModifier
בפריסה של הצאצא. (I4522e, b/162109766)- נוספה פונקציית lambda של mergePolicy ל-SemanticsPropertyKey. אפשר להשתמש בזה כדי להגדיר מדיניות מותאמת אישית למיזוג של סמנטיקה של mergeAllDescendants. מדיניות ברירת המחדל היא להשתמש בערך ההורה אם הוא כבר קיים, אחרת בערך הצאצא. (Iaf6c4, b/161979921)
- IntSize היא עכשיו כיתה מוטמעת (I2bf42)
- השם של
PlacementScope.placeAbsolute()
שונה ל-PlacementScope.place()
, והשם הקודם שלPlacementScope.place()
שונה ל-PlacementScope.placeRelative()
. כתוצאה מכך, השיטהPlacementScope.place()
לא תשקף יותר באופן אוטומטי את המיקום בהקשרים מימין לשמאל. אם רוצים לעשות זאת, צריך להשתמש במקום זאת ב-PlacementScope.placeRelative()
. (I873ac, b/162916675) - הוצאה משימוש של PxBounds לטובת Rect. עדכנו את כל השימושים ב-PxBounds באמצעות rect והוספו הערות מתאימות להוצאה משימוש או להחלפה כדי לעזור בהעברה. (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 Design ולהסיר את הבלבול לגבי ColorPalette, שהוא אובייקט 'גנרי' של עיצוב, ולא הטמעה ספציפית של מערכת הצבעים של Material Design. בנוסף, השם של 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 עוברות עיבוד מחדש כדי לרשת ממנה. לא ניתן יותר להעביר פרמטר onStateChange ל-[Modal/Bottom]DrawerLayout. (I72332, b/148023068)- החבילה foundation.shape.corner עברה שטוח ל-foundation.share (I46491, b/161887429)
- נוספה ההערה ExperimentalMaterialApi. RippleTheme מסומן כגרסה ניסיונית (Ic5fa0, b/161784800)
- שינינו את השם של Material FilledTextField ל-TextField, ואת השם של TextField הבסיסי ל-BaseTextField, כדי שיהיה קל למצוא את ממשק ה-API הרצוי הפשוט ביותר ולהשתמש בו (Ia6242, b/155482676)
תיקוני באגים
- האירוע OnChildPositioned הוצא משימוש. במקום זאת, צריך להשתמש ב-OnPositioned על הצאצא. (I87f95, b/162109766)
- תיקונים רחבים של ממשקי API (I077bc)
- הסרת הממשק OffsetBase שלא בשימוש
- התאמה של הכיתות Offset ו-IntOffset כדי ליצור ממשק API עקבי
- שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי להתאים ל-Offset API
- העברנו את השיטה nativeCanvas מממשק Canvas כדי לאפשר לצרכנים ליצור מכונות Canvas משלהם
- נוצרה קלאס טיוטה של EmptyCanvas כדי לשנות את ה-DrawScope למשתנה שאינו null במקום ל-lateinit, וכדי לוודא שהשדה לא יכול להיות null
- שינינו את השם של המשתנים המפורטים של ClipOp ל-Pascal Case
- שינוי השם של המאפיינים הקבועים של FilterQuality ל-Pascal Case
- שינינו את השם של המאפיינים המפורטים של StrokeJoin ל-Pascal Case
- שינוי השם של המאפיינים המפורטים של PointMode ל-Pascal Case
- שינוי השם של המאפיינים הקבועים מסוג PaintingStyle ל-Pascal Case
- שינוי השם של המאפיינים של PathFillType ל-Pascal Case
- שינוי השם של המאפיינים המפורטים של StrokeCap ל-Pascal Case
- עדכנו את ההטמעה של DrawCache כך שלא תשתמש יותר בפרמטרים של lateinit
- עדכנו את DrawScope כך שלא ישתמש יותר בהענקת גישה מושהה (lazy delegation) לפרממטרים הפנימיים של fillPaint ו-strokePaint
- עדכון של Image composable כדי להימנע משימוש ב-Box ולצמצם את התקורה
- עדכון של הכיתה Outline כך שתכלול את האנוטציות @Immutable
- עדכנו את PathNode כך שיכלול הערות מסוג @Immutable לכל הוראה בנתיב
- עדכון של רכיב המשנה של Vector כדי להסיר בדיקות מותנות מיותרות של שוויון, כי פונקציית ה-compose כבר מטפלת בהן
- שיטות ה-constructor של Rect שהוצאו משימוש לטובת פונקציות constructor
- עדכנו את הכיתות של המברשות ואת ה-constructors של הפונקציות באמצעות ממשקי 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)
- ה-Modifier.plus הוצא משימוש. במקום זאת צריך להשתמש ב-Modifier.then. 'אחר כך' מבטא יותר בבירור את סדר הדברים, ומונע גם להקליד
Modifier.padding().background() + anotherModifier
, שגורם להפסקה בשרשרת וקשה יותר לקרוא אותו (Iedd58, b/161529964) - שינינו את השם של AndroidComposeTestRule ל-createAndroidComposeRule. (I70aaf)
- מוסיפים את SemanticsMatcher של isFocused() ו-isNotFocused(). (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
data classes, equals, hashcode וכו'- איך אפשר להגדיר נכסים מסוימים כ'במעקב' ונכסים אחרים לא?
- איך מציינים שוויון מבני לעומת שוויון עקיף לשימוש בתצפית?
- הפחתת ה'קסם' במערכת. תפחית את הסבירות שמישהו יחשוב שהמערכת חכמה יותר ממה שהיא (כלומר, שהיא יודעת איך לבצע השוואה בין שתי רשימות)
- הניתוח המפורט יותר של התצפיות הוא אינטואיטיבי יותר.
- שיפור היכולת לבצע רפרסטורציה ממשתנה לנכס בכיתה
- יכולה לאפשר לבצע אופטימיזציה ידנית ספציפית למדינה
- התאמה טובה יותר לשאר הסביבה העסקית, והפחתת הערפול לגבי נתונים שלא משתנים או לגבי העובדה שאנחנו 'מקבלים את המצב המשתנה'
הערות לגבי העברה
כמעט כל השימושים הקיימים ב-
@Model
ניתנים לשינוי פשוט באחת משתי דרכים. בדוגמה הבאה מוצגת כיתה@Model
עם שני מאפיינים, רק לצורך הדגמה, והיא משמשת ב-composable.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
חלופה 1: משתמשים בפקודה
State<OriginalClass>
ויוצרים עותקים.הגישה הזו קלה יותר עם כיתות הנתונים של Kotlin. בעיקרון, צריך להפוך את כל המאפיינים שהיו בעבר
var
למאפייניםval
של סוג נתונים, ואז להשתמש ב-state
במקום ב-remember
ולהקצות את ערך המצב לעותקים משובטים של המקור באמצעות שיטת הנוחותcopy(...)
של סוג הנתונים.חשוב לציין שהגישה הזו פועלת רק אם המוטציות היחידות לכיתה בוצעו באותו היקף שבו נוצר המופע של
State
. אם הכיתה עוברת מוטציה פנימית מחוץ להיקף השימוש, ואתם מסתמכים על התצפית הזו, הגישה הבאה היא זו שתרצו להשתמש בה.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
חלופה 2: שימוש ב-mutableStateOf וב-property delegates
אפשר להשתמש ב-Kotlin כדי להפוך את הגישה הזו לקלילה יותר, באמצעות מנהלי הנכסים (delegates) של Kotlin ו-
mutableStateOf
API שמאפשר ליצור מכונות של MutableState מחוץ ל-composition. בעיקרון, צריך להחליף את כל נכסי ה-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)
שם הפונקציה הלא סטטית onFocusChange בשדות טקסט שונה ל-onFocusChanged (Ida4a1)
הוספת הפרמטר thresholds ב-stateDraggable כדי לציין ערכי סף בין עוגנים. השתמשו בזה כדי להגדיר ערך סף של 56dp בחלונית התחתונה. בנוסף, ב-BottomDrawerLayout נעשה עכשיו שימוש ב-enum נפרד של BottomDrawerState. (I533fa)
הסרה של Modifier.ripple שהוצא משימוש. ב-Clickable נעשה עכשיו שימוש בתנודות כסימן ברירת המחדל (אם הגדרתם את MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש ב-Clickable ולקבל את התנודות בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של הרטט, אתם יכולים ליצור באופן ידני את RippleIndication ולהעביר אותו ל-clickable כפרמטר ההנחיה. (I663b2, b/155375067)
הוסר שינוי מברירת המחדל שהוצא משימוש של רכיב ה-composable FilledTextField (I7f8f8)
שינוי השם של אובייקט Button (שמכיל את הגדרות ברירת המחדל שבהן משתמשת פונקציית Button) ל-ButtonConstants (I7c5f7, b/159687878)
תא התוכן של הלחצן פועל עכשיו כשורה (שימושי כשרוצים להציג סמל עם טקסט. אפשר לעיין בדוגמאות בלחצן כדי לראות איך לכתוב אותו) (I0ff10, b/158677863)
ה-RadioGroup וה-RadioGroupItem הוצאו משימוש. משתמשים ב-Box עם Modifier.selectable, Row ו-Column כדי ליצור קבוצה מתאימה של אפשרויות ללחצן הבחירה בהתאם לעיצוב (I7f5cf, b/149528535)
נוסף שדה טקסט עם קו מתאר של Material (I1a518)
ה-API androidx.ui.foundation.TextFieldValue ו-androidx.ui.input.EditorValue הוצאו משימוש. גם הרכיבים הניתנים לקישור מסוג TextField, FilledTextField ו-CoreTextField שמשתמשים בסוג הזה הוצאו משימוש. במקום זאת, צריך להשתמש ב-androidx.ui.input.TextFieldValue (I4066d, b/155211005)
TabRow.TabPosition not contains position in Dp, not in IntPx (I34a07, b/158577776)
החלפת השימוש ב-IntPx ב-Int. החלפת IntPxPosition ב-IntOffset. הוחלף IntPxSize ב-IntSize. (Ib7b44)
כדי לצמצם את מספר הכיתות שבהן נעשה שימוש לייצוג נתוני גודל, כדאי להשתמש בכיתה Size במקום בכיתה PxSize. כך אפשר ליהנות מהיתרונות של שימוש ב-inline class כדי לארוז 2 ערכים מסוג float שמייצגים את הרוחב והגובה כערכים מסוג float. (Ic0191)
הוצאה משימוש של Modifier.ripple. ב-Clickable נעשה עכשיו שימוש בתנודות כסימן ברירת המחדל (אם הגדרתם את MaterialTheme {} באפליקציה), כך שברוב המקרים אפשר פשוט להשתמש ב-Clickable ולקבל את התנודות בחינם. אם אתם צריכים להתאים אישית את הצבע, הגודל או הפרמטר המוגבל של הרטט, אתם יכולים ליצור באופן ידני את RippleIndication ולהעביר אותו ל-clickable כפרמטר ההנחיה. (I101cd, b/155375067)
Scaffold API עוצב מחדש: השמות של כמה פרמטרים השתנו, והוספו פרמטרים חדשים לצורך התאמה אישית טובה יותר. נוספה פונקציית getter לשאילתות לגבי הגדלים של Fab, TopBar ו-BottomBar (I0e7ce)
הוספת הרכיב DropdownMenu ב-ui-material, הטמעת תפריט של Material Design. (I9bb3d)
הרשאה להציג או להסתיר את מקלדת התוכנה באופן ידני באמצעות SoftwareKeyboardController (Ifb9d6, b/155427736)
השדה Modifier.indication נוסף לחבילת הבסיס. אפשר להשתמש בו כדי להציג אינדיקציה של לחיצה/גרירה/פעולה אחרת על רכיבים מותאמים אישית שאפשר לקיים איתם אינטראקציה (I8425f, b/155287131)
איחוד הטמעות של CanvasScope, כך שיש עכשיו רק DrawScope ו-ContentDrawScope. CanvasScope עבר שם חדש: DrawScope. עדכנו את DrawScope כך שיטמיע את ממשק Density ויספק את LayoutDirection. מחקו את תת-הסוג של DrawScope ב-ContentDrawScope. עדכנו את Painter ו-PainterModifier כך שלא יכללו יותר מאפיין RTL בעצמם, כי DrawScope כבר מספק את זה בלי לספק אותו באופן ידני (I1798e)
שינוי השם של Emphasis.emphasize() ל-Emphasis.applyEmphasis() (Iceebe)
לחצנים מושבתים עומדים עכשיו בדרישות המראה של מפרט Material Design (I47dcb, b/155076924)
נוסף ל-FilledTextField תמיכה בפעולות של IME, בטרנספורמציה חזותית ובסוגים של מקלדות (I1f9cf, b/155075201)
הוספת הפרמטר strokeWidth ל-CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במודификатор גודל אחר. (Icea16, b/154919081)
הוספת הפרמטר strokeWidth ל-CircularProgressIndicator כדי להתאים אישית את גודל הקו. כדי לשנות את גודל הקו (הגובה) של LinearProgressIndicator, אפשר להשתמש ב-Modifier.preferredHeight() או במודификатор גודל אחר. (Icea16, b/154919081)
הוספנו ממשק API לחריצים לסמלים נלווים בתחילת הטקסט ובסופו ב-FilledTextField, וטיפול במצב השגיאה (Ic12e0)
צבע ברירת המחדל של לחצן ה-FAB ושל לחצן ה-FAB המורחב השתנה ל-MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
החלפת כל השימושים ב-Color ב-API עם nullable ב-non-nullable, והשימוש ב-Color.Unset במקום null (Iabaa7)
השם של EdgeInsets השתנה ל-InnerPadding. שינוי השם של הפרמטר innerPadding של לחצני Material ל-padding. (I66165)
Slider הוא עכשיו ללא מצב. המשתמשים יצטרכו להעביר ולעדכן את המצב בעצמם, בדיוק כמו בכל אמצעי בקרה אחר. (Ia00aa)
StaticDrawer הוסר. אם אתם צריכים את זה, השתמשו במקום זאת ב-Box עם רוחב שצוין במפרט של Material (I244a7)
נוספה הטמעה של Material Design של שדה טקסט מלא (Ic75cd)
הוספנו פרמטר שינוי ל-ListItem וסדרנו מחדש את הפרמטרים כדי לשפר את גוף הלוגריתם העוקב (I66e21)
הוספת הפרמטר defaultFontFamily ל-Typography, שמאפשר לציין את משפחת הגופנים שמוגדרת כברירת מחדל ותהיה בשימוש בכל TextStyles שסופקו ולא הוגדרה להם משפחה. (I89d07)
טבלאות נתוני החומרים הוסרו באופן זמני מ-API. (Iaea61)
שינוי השם של פרמטרים ברכיב ה-Divider (Ic4373)
ילדים (Ia6d19)
הוסרה הפונקציה MaterialTheme.emphasisLevels. במקום זאת, משתמשים בפונקציה EmphasisAmbient.current כדי לאחזר את רמות ההדגשה (Ib5e40)
מערכת הנושאים של Shape מתעדכנת בהתאם למפרט של העיצוב החדשני. עכשיו אפשר לספק צורות קטנות, בינוניות וגדולות לשימוש ברוב הרכיבים (Ifb4d1)
שינינו את ממשקי ה-API של MaterialTheme, כמו MaterialTheme.colors(), MaterialTheme.typography(), למאפיינים במקום לפונקציות. הסרת סוגריים מקריאות קיימות, לא צפוי שינוי בהתנהגות. (I3565a)
שינוי של ממשקי ה-API של FloatingActionButton כדי לאפשר להם לקבל פונקציות lambda שניתנות לקיפול במקום פונקציות פרימיטיביות. בדוגמאות המעודכנות מפורט מידע על השימוש. (I00622)
הוספת הפרמטר
enabled
לתיבת סימון, למתג ולמתג הפעלה/השבתה (I41c16)'אדווה' הוא עכשיו 'מפעיל'. בזמן ש-Clickable עדיין לא הומר, השימוש המומלץ הוא
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)Surface ו-Card הועברו מ-androidx.ui.material.surface אל androidx.ui.material (I88a6d, b/150863888)
ל-Button, ל-FloatingActionButton ול-Clickable יש עכשיו פרמטר
enabled
נפרד. השמות של חלק מהפרמטרים ב-Button השתנו או שהם שונו בסדר. (I54b5a)שינינו את השם של Image ל-ImageAsset כדי להבדיל טוב יותר בין נתוני Image לבין Image composable שיוצג בקרוב, וישמש לצורך עיצוב ותצוגה של תוכן. _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 עם פרמטרים מסוג String, והחלפנו אותו בשימוש בעל עומס יתר שמקבל פונקציות lambda שניתן לשלב. דוגמא מעודכנת למידע על שימוש (I55f80)
שינוי מבני של ממשקי Tab API כדי לקבל פונקציות lambda מסוג
text
ו-icon
, (Ia057e)נוספו רכיבי BottomNavigation. מידע נוסף על השימוש בהם זמין במסמכים ובדוגמאות (I731a0)
נוספו Icon, IconButton ו-IconToggleButton, והוסרו AppBarIcon. אפשר להחליף ישירות את השימושים הקיימים של AppBarIcon ב-IconButton, ועכשיו יהיה להם יעד המגע הנכון. במאמרים לדוגמה מפורט מידע על השימוש בסמלים, ובקטע 'סמלים' מפורט מידע על סמלי Material Icons שאפשר להשתמש בהם ישירות עם הרכיבים האלה. (I96849)
החלפת ButtonStyle בפונקציות נפרדות והסרת עומס יתר של טקסט (מחרוזת). פרטי השימוש מופיעים בדוגמאות המעודכנות. (If63ab, b/146478620, b/146482131)
שינוי השם של המשתנה
Border
למשתנהDrawBorder
(I8ffcc)לאובייקט LayoutCoordinates כבר אין מאפיין position. המאפיין position לא רלוונטי כשמשתמשים ב-LayoutModifiers, בכיוון או בשינוי קנה המידה. במקום זאת, המפתחים צריכים להשתמש ב-parentCoordinates וב-childToLocal() כדי לחשב את הטרנספורמציה מ-LayoutCoordinate אחד למשנהו.
ב-LayoutCoordinates נעשה שימוש ב-IntPxSize למאפיין הגודל במקום ב-PxSize. בפריסות נעשה שימוש בגדלים שלמים של פיקסלים, לכן כל גדלי הפריסות צריכים לכלול מספרים שלמים ולא ערכים של נקודה צפה. (I9367b)
שינויים משמעותיים ב-ambients API. פרטים נוספים זמינים ביומן ובמסמכי התיעוד של
Ambient<T>
(I4c7ee, b/143769776)נוסף רכיב של חומר תומך. כלי Scaffold (I7731b)
החלפת DrawBorder ב-Border Modifier (Id335a)
תיקוני באגים
- FocusModifier הוצא משימוש והוחלף על ידי Modifier.focus, Modifier.focusRequester ו-Modifier.focusObserver. הפונקציות FocusState ו-FocusDetailedState הוצאו משימוש לטובת FocusState2 (I46919, b/160822875, b/160922136)
- ה-API VerticalScroller ו-HorizontalScroller הוצאו משימוש. אפשר להשתמש ב-ScrollableColumn וב-ScrollableRow כדי ליהנות מחוויית שימוש מובנית עם פרמטרים והתנהגות של עמודות/שורות, או ב-Modifier.verticalScroll וב-Modifier.horizontalScroll ברכיב משלכם. באופן דומה, הוחלפה הפונקציה ScrollerPosition בפונקציה ScrollState' (I400ce, b/157225838, b/149460415, b/154105299)
- ממשקי ה-API Modifier.draggable ו-Modifier.scrollable עברו עריכה מחדש. המאפיין DragDirection הוסר לטובת Orientation. הסטטוס הנדרש לגלילה פשוט יותר. השם של ScrollableState שונה ל-ScrollableController (Iab63c, b/149460415)
- השם של
runOnIdleCompose
השתנה ל-runOnIdle
(I83607) - בנכסי סמנטיקה עם ערך יחיד נעשה עכשיו שימוש בסגנון קריאה. לדוגמה, 'semantics { hidden = true }' נכתב עכשיו כך: 'semantics { hidden() }'. (Ic1afd, b/145951226, b/145955412)
- השמות של כמה ממשקי API לבדיקות השתנו כדי להפוך אותם לאינטואיטיביים יותר. השם של כל ממשקי ה-API מסוג findXYZ השתנה ל-onNodeXYZ. השם של כל ממשקי ה-API מסוג doXYZ השתנה ל-performXYZ. (I7f164)
- Transition API השתנה כך שיחזיר TransitionState במקום להעביר את TransitionState לצאצאים. כך ה-API תואם יותר לממשקי ה-API של animate(). (I24e38)
- נוספה יחידת הכיתה IntBounds, שמייצגת גבולות של מספרים שלמים של פיקסלים מהפריסה. ה-API של PopupPositionProvider עודכן כך שישתמש בו. (I0d8d0, b/159596546)
- נוספה הדגל האופציונלי useUnmergedTree לבדיקה של כלי חיפוש. (I2ce48)
- הוסרו ממשקי API מיושנים לבדיקת גודל. (Iba0a0)
- הוסר הכיתה Shader inline שתחמה את הכיתה NativeShader expect. השם של NativeShader שונה ל-Shader. הכיתה המוטמעת של Shader לא הוסיפה שום דבר בעל ערך לממשק ה-API והיא הייתה כיתה מוטמעת, לכן צריך להשתמש בכיתה NativeShader ישירות. (I25e4d)
- חלונות קופצים, תיבות דו-שיח ומנות יורשים עכשיו את MaterialTheme לפי הקשר (Ia3665, b/156527485)
- עכשיו אפשר לגלול בתפריטי הנפתחים של Material. (Ide699)
- הוסר הפרמטר 'כיוון הפריסה' מבלוק המדידה של פונקציית Layout(). עם זאת, כיוון הפריסה זמין בתוך פונקציית הקריאה החוזרת (callback) דרך האובייקט של היקף המדידה (Ic7d9d).
- שימוש ב-AnimationSpec במקום ב-AnimationBuilder ב-API ברמה העליונה כדי להבהיר את המושג של מפרט אנימציה סטטי. שיפור של transition DSL על ידי הסרת הדרישה ל-lambda ליצירת AnimationSpecs כמו tween, spring. במקום זאת, הם מקבלים את הפרמטרים של ה-constructor ישירות. -שיפור נוחות השימוש הכוללת של AnimationSpec, ופתיחת המשתנים של ה-constructor במקום להסתמך על ה-builders. -שינוי משך הזמן וההשהיה של KeyFrames ו-Tween ל-Int. כך תוכלו להימנע מטרנספורמציות מיותרות של סוגים ומעומסי יתר של שיטות (כדי לתמוך גם ב-Long וגם ב-Int). (Ica0b4)
- המתג מופיע במצב מושבת כשהערך של
enabled
מוגדר כ-false (If4624, b/155941869, b/159331694) - השם של Modifier.tag השתנה ל-Modifier.layoutId, כדי למנוע בלבול עם Modifier.testTag. (I995f0)
- מיקומי Int של קוי היישור שמוחזרים מ-Placeable#get(AlignmentLine) הם עכשיו לא null. אם קו היישור שאליו בוצעה השאילתה חסר, תוחזר הערך AlignmentLine.Unspecified. (I896c5, b/158134875)
שינוי מבנה של הכיתה Radius לכיתה בקוד. הוסרו שיטות יצירת שותפים לטובת מגדיר פונקציה עם פרמטר ברירת מחדל, כדי שהרדיוס בציר y יתאים לפרמטר הרדיוס החובה בציר x.
עדכנו את DrawScope.drawRoundRect כך שישתמש בפרמטר Radius יחיד במקום בשני ערכים נפרדים מסוג float לרדיוס בציר x ובציר y (I46d1b)
כדי לצמצם את מספר הכיתות שבהן נעשה שימוש כדי לייצג את פרטי המיקום, מומלץ להשתמש בכיתה Offset במקום בכיתה PxPosition. כך אפשר ליהנות מהיתרונות של שימוש בכיתה מוטמעת כדי לארוז 2 ערכים מסוג float, שמייצגים את הזזות ה-x וה-y, כערכים מסוג float. (I3ad98)
החלפת השימוש במחלקת Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים עבור פרמטרים של פיקסלים. מחקת את הכיתה Px במלואה (I3ff33)
הרכיב שניתן להפעלה/השבתה הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.toggleable (I35220, b/157642842)
החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים עבור פרמטרים של פיקסלים (I086f4)
החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש (refactoring) כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטרים של פיקסלים (Id3434)
החלפת השימוש במחלקת Px במחלקות שונות של compose, כחלק מהמאמץ הגדול של עיבוד מחדש (refactoring) כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטר של פיקסלים (I97a5a)
תוקנה בעיה שבה האירוע onClick לא הופעל עבור DropdonMenuItems. (I3998b, b/157673259)
MutuallyExclusiveSetItem הוצא משימוש. במקום זאת, צריך להשתמש ב-Modifier.selectable. (I02b47, b/157642842)
הוצאנו משימוש את TestTag. במקום זאת, צריך להשתמש ב-Modifier.testTag. (If5110, b/157173105)
לסמן של TextField יש אנימציה מהבהבת (Id10a7)
החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגי נתונים פרימיטיביים לפרמטר של פיקסלים (I19d02)
VerticalScroller מספק עכשיו את האפשרות 'עמודה' מתוך האריזה. הרכיב HorizontalScroller מספק עכשיו את Row כברירת מחדל. (Ieca5d, b/157020670)
החלפת השימוש בכיתה Px בכיתות שונות של compose, כחלק מהמאמץ הגדול של שינוי מבנה הקוד, כדי להסתמך רק על Dp ועל סוגים פרימיטיביים לפרמטר של פיקסלים (Iede0b)
הוסרה ההודעה על ההוצאה משימוש של Modifier.semantics כדי לאפשר שימוש ברכיבים ברמה גבוהה. (I4cfdc)
ה-API של המודיפיקרים של DrawLayer השתנה: השם של outlineShape שונה ל-shape, והוא כולל את ערך ברירת המחדל RectangleShape, והוא לא יכול להיות null עכשיו. השם של clipToOutline שונה ל-clip. השם של clipToBounds הוסר כי הוא זהה ל-clip == true עם RectangleShape (I7ef11, b/155075735)
עדכנו את ממשקי ה-API ברמה גבוהה יותר שמציגים את Canvas, כך שהם מציגים במקום זאת את CanvasScope. כך הצרכנים לא צריכים לתחזק אובייקטים משלהם ב-Paint. לצרכנים שעדיין זקוקים לגישה ל-Canvas, אפשר להשתמש בשיטת התוסף drawCanvas, שמספקת קריאה חוזרת (callback) להנפקת פקודות ציור ב-Canvas הבסיסי. (I80afd)
ה-composable AlignmentLineOffset הוצא משימוש. במקום זאת, צריך להשתמש במטא-פרמטר relativePaddingFrom(). הרכיב CenterAlignmentLine הוסרה. (I60107)
ה-API של lambda עם הערך trailing של WithConstraints השתנה. עכשיו, במקום שני פרמטרים, יש לו היקף מקלט, שבנוסף למגבלות ול-layoutDirection מספק את המאפיינים minWidth, maxWidth, minHeight ו-maxHeight ב-Dp (I91b9a, b/149979702)
נוספה פונקציית עיצוב defaultMinSizeConstraints שמגדירה אילוצים של גודל לעיצוב המגובל רק כשהאילוצים התואמים הנכנסים לא צוינו (0 לאילוצים מינימלייים ואין סוף לאילוצים מקסימליים). (I311ea, b/150460257)
FocusManagerAmbient הוסר. משתמשים ב-FocusModifier.requestFocus כדי לקבל את המיקוד. (Ic4826)
יצירה של CanvasScope API שמקיף אובייקט Canvas כדי לחשוף ממשק API לציור בלי מצב (declarative) ועם סטטוס. הטרנספורמציות נכללות בהיקף של המקלט שלהן, ומידע על הגודל נכלל גם בהיקף של גבולות ההוספה המתאימים. הוא לא מחייב את הצרכן לנהל אובייקט מצב משלו של Paint כדי להגדיר פעולות ציור.
נוספה הדוגמה 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 הוא עכשיו הפרמטר הראשון והערך shape הוא הפרמטר השני עם ברירת מחדל של RectangleShape. (I20150, b/152417501)
RectangleShape הועבר מ-androidx.ui.foundation.shape.* אל androidx.ui.graphics.* (Ia74d5, b/154507984)
עדכון API של TextField – מיזוג של פונקציות ה-onFocus ו-onBlur לפונקציית onFocusChange(Boolean) יחידה עם פרמטר (I66cd3)
נוספו הפרמטרים verticalGravity ו-horizontalGravity ל-Row ול-Column, בהתאמה. (I7dc5a)
עודכנו wrapContentWidth ו-wrapContentHeight כך שיצפו ליישור אנכי או אופקי במקום לכל יישור. המשתנה של כוח המשיכה עודכן כך שיאפשר שימוש באישור אנכי או אופקי. התכונות Row (שורה), Column (עמודה) ו-Stack (ערימה) עודכנו כדי לתמוך בהתאמות אישיות רצפות. (Ib0728)
יצירה של PixelMap API כדי לתמוך בשאילתות לגבי מידע על פיקסלים מ-ImageAsset. (I69ad6)
הוסרה של ProvideContentColor. במקום זאת, צריך להשתמש ב-ContentColorAmbient ישירות עם
Providers
(Iee942)שם המודול ui-text-compose השתנה ל-ui-text. המודול ui-text מכיל עכשיו רכיבים של CoreText ו-CoreTextField (Ib7d47)
שם המודול ui-text השתנה ל-ui-text-core (I57dec)
הרכיבים הניתנים לקישור של 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)
החלפת האופרטור 'פלוס' של המשתנה המשנה בפונקציות הרחבה של היצרן (I225e4)
האפשרות 'ניתן לגרירה' הועברה למאפיין שינוי (Id9b16, b/151959544)
הרכיב הניתן לקישור של ParentData הוצא משימוש. אם אתם צריכים רק לתייג צאצאים של פריסה כדי לזהות אותם בתוך בלוק המדידה, עליכם ליצור משתנה שמטמיע את הממשק ParentDataModifier או להשתמש במשתנה LayoutTag. (I51368, b/150953183)
רכיב 'מרכז' שהוצא משימוש. צריך להחליף אותו במשתנה LayoutSize.Fill + LayoutAlign.Center או באחד מהרכיבים הקומפוזיציוניים Box או Stack עם משתנים מתאימים (Idf5e0)
הוספנו את VectorPainter API כדי להחליף את ממשק ה-API הקיים של רכיבי משנה לגרפיקה וקטורית. התוצאה של הרכבת המשנה היא אובייקט VectorPainter במקום DrawModifier. הוצאנו משימוש את הרכיבים הקודמים של DrawVector לטובת VectorPainter.
שינינו את השם של Image(Painter) API ל-PaintBox(Painter) נוצר רכיב מורכב מסוג Vector שהתנהגות שלו דומה לרכיב מורכב מסוג Image, אלא שהוא כולל 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(). עכשיו הצללים נוצרים כחלק מ-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)רכיב מורכב של תמונה שנוצר כדי לטפל בגודל או בפריסה, בנוסף לציור של נכס תמונה נתון במסך. הרכיב הניתן ליצירה מחדש תומך גם באיור של כל מופע שרירותי של Painter בהתאם לגודל המובנה שלו, וגם בגודל קבוע או גודל מינימלי נתון (Ibcc8f)
רכיב Wrap שהוצא משימוש. אפשר להחליף אותו במשתנה LayoutAlign או ב-composable של Stack (Ib237f)
ל-WithConstraints הוענק הפרמטר LayoutDirection (I6d6f7)
שינינו את כיוון הפריסה כך שיופץ מצומת הפריסה של ההורה לצאצאים. הוספנו שינוי לכיוון הפריסה. (I3d955)
רכיב הערימה תומך בכיוון מימין לשמאל (Ic9e00)
הרכיב הניתן לקישור DrawShape הוסר. במקום זאת, צריך להשתמש במשתנה DrawBackground. (I7ceb2)
תמיכה בכיוון מימין לשמאל במשתנה LayoutPadding (I9e8da)
נוספה AdapterList, רכיב של רשימה עם גלילה שמרכיב ומציג רק את הפריטים הגלויים. בין הבעיות הידועות כרגע: האפשרות הזו זמינה רק לקטגוריות ספציפיות, והיא לא מטפלת באופן מלא בכל המקרים של שינויים בקטגוריות הילדים. (Ib351b)
עדכנו את הדגל
ComposeFlags.COMPOSER_PARAM
ל-true
, שיגרום לשינוי בשיטת יצירת הקוד של הפלאגין compose. ברמה גבוהה, הפעולה הזו גורמת ליצירת פונקציות @Composable עם פרמטר סינתטי נוסף, שמוענק לקריאות הבאות של @Composable כדי שסביבת זמן הריצה תוכל לנהל את הביצועים בצורה תקינה. זהו שינוי בינארי משמעותי שעלול לשבור את התאימות, אבל הוא אמור לשמור על תאימות ברמת המקור בכל שימוש מורשה ב-compose. (I7971c)הוסף רכיב Canvas. הרכיב הניתן לקיבוץ הזה תופס מקום מסוים (המשתמשים מציינים את הגודל) ומאפשר לצייר באמצעות CanvasScope (I0d622)
Density ו-DensityScope מוזגו לממשק אחד. במקום ambientDensity() אפשר להשתמש עכשיו ב-DensityAmbient.current. במקום withDensity(density), פשוט with(density) (I11cb1)
שינינו את LayoutCoordinates כך ש-providedAlignmentLines תהיה קבוצה במקום מפה, והוספנו ל-LayoutCoordinates את האופרטור get() כדי לאחזר ערך. כך קל יותר למשתני המשנה לשנות ערך אחד או יותר בקבוצה בלי ליצור אוסף חדש לכל משתנה. (I0245a)
גלילות מוצגות עכשיו עם התנהגות תנועה מקורית של Android. (I922af, b/147493715)
שיפורים בממשק ה-API של Constraints (I0fd15)