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

פיתוח ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה יותר של Compose, שנועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
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 כוללת את ההוספות האלה.

תכונות חדשות

גרסה 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 של Foundation‏ AnchoredDraggable, שמותאמים לתרחישים לדוגמה פשוטים ומורכבים כאחד. (I732e0)

תיקוני באגים

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

גירסה 1.5

גרסה 1.5.4

18 באוקטובר 2023

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

גרסה 1.5.3

4 באוקטובר 2023

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

גרסה 1.5.2

27 בספטמבר 2023

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

גירסה 1.5.1

6 בספטמבר 2023

androidx.compose.material:material-*:1.5.1 משוחרר ללא שינויים. גרסה 1.5.1 מכילה את ההצהרות האלה על ביצוע שינויים (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 נוסף ל-BasicText ול-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 כוללת את ההוספות האלה.

תיקוני באגים

גרסה 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 כוללת את השמירות האלה.

תיקוני באגים

גרסה 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 כך שיהיה תלוי ב-Kotlin 1.5.30. (I74545)

שינויים ב-API

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

גרסה 1.1.0-alpha02

18 באוגוסט 2021

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

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

  • תיקון ההתנהגות של 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 ו-AGP 7.1. (b/194289155)

גרסה 1.0.0-rc02

14 ביולי 2021

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

תיקוני באגים

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

גרסה 1.0.0-rc01

1 ביולי 2021

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

שינויים ב-API

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

תיקוני באגים

  • כדי להתאים למפרטי Material Design, הפסיקו להשתמש בצבע שגיאה בתווית של OutlinedTextField עם קלט לא חוקי כשהתווית משמשת כ-placeholder. הערך השני נכון כשאין טקסט להזנה בשדה הטקסט ושדה הטקסט לא ממוקד. בעקבות השינוי הזה, גם המשמעות של הפרמטר error:Boolean בפונקציה TextFieldColors.labelColor() השתנתה: עכשיו הוא יחזיר את הערך false גם אם הקלט לא תקין, אם התווית משמשת כתוספית. (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, כי הכרטיס לא חותך את ההודעה על התנודות במקרים כאלה.
  • שינוי התנהגות: Surface צורך עכשיו קליקים, כך שקליקים שנוספו דרך Surface(Modifier.clickable) לא מבוצעים. יש להשתמש בעומס יתר ניסיוני חדש של Surface שמקבל onClick. (I73e6c, ‏ b/183775620)
    • נוספה עומס יתר חדש של Surface שמטפל בקליקים וגם בפונקציונליות אחרת שניתן ללחוץ עליה: indication, ‏ interactionSource, ‏ enabled/disabled. לא ניתן היה להשתמש ב-Surface רגיל שאין בו אפשרות ללחוץ עליו עם Modifier.clickable, כי ה-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)
  • משנים את השם של 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)
    1. הסרת הממשק OffsetBase שלא בשימוש
    2. התאמה של הכיתות Offset ו-IntOffset כדי ליצור ממשק API עקבי
    3. שינוי השם של IntOffset.Origin ל-IntOffset.Zero כדי להתאים ל-Offset API
    4. העברנו את השיטה nativeCanvas מממשק Canvas כדי לאפשר לצרכנים ליצור מכונות Canvas משלהם
    5. נוצרה קלאס טיוטה של EmptyCanvas כדי לשנות את ה-DrawScope למשתנה שאינו null במקום ל-lateinit, וכדי לוודא שהשדה לא יכול להיות null
    6. שינינו את השם של המשתנים המפורטים של ClipOp ל-Pascal Case
    7. שינוי השם של המאפיינים הקבועים של FilterQuality ל-Pascal Case
    8. שינינו את השם של המאפיינים המפורטים של StrokeJoin ל-Pascal Case
    9. שינוי השם של המאפיינים המפורטים של PointMode ל-Pascal Case
    10. שינוי השם של המאפיינים הקבועים מסוג PaintingStyle ל-Pascal Case
    11. שינוי השם של המאפיינים של PathFillType ל-Pascal Case
    12. שינוי השם של המאפיינים המפורטים של StrokeCap ל-Pascal Case
    13. עדכנו את ההטמעה של DrawCache כך שלא תשתמש יותר בפרמטרים של lateinit
    14. עדכנו את DrawScope כך שלא ישתמש יותר בהענקת גישה מושהה (lazy delegation) לפרממטרים הפנימיים של fillPaint ו-strokePaint
    15. עדכון של Image composable כדי להימנע משימוש ב-Box ולצמצם את התקורה
    16. עדכון של הכיתה Outline כך שתכלול את האנוטציות @Immutable
    17. עדכנו את PathNode כך שיכלול הערות מסוג @Immutable לכל הוראה בנתיב
    18. עדכון של רכיב המשנה של Vector כדי להסיר בדיקות מותנות מיותרות של שוויון, כי פונקציית ה-compose כבר מטפלת בהן
    19. שיטות ה-constructor של Rect שהוצאו משימוש לטובת פונקציות constructor
    20. עדכנו את הכיתות של המברשות ואת ה-constructors של הפונקציות באמצעות ממשקי API מסוג @Immutable ו-@Stable
    21. עדכנו את המאפיין המנוהל VertexMode ל-PascalCase
    22. שינוי השיטה selectPaint של DrawScope כדי לשנות באופן מותנה את הפרמטרים של הקו בצביעה אם הם השתנו
    23. עדכנו את Size כדי להוסיף API לניתוח מבנה, שיניתם את השם של UnspecifiedSize ל-Unspecified והסרתם שיטות שלא בשימוש
  • העברת תיבת דו-שיח לממשק המשתמש (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)