הרכבת חומרים

אפשר ליצור ממשקי משתמש של Jetpack Compose באמצעות רכיבי Material Design מוכנים לשימוש. זוהי נקודת הכניסה ברמה הגבוהה ביותר של Compose, והיא נועדה לספק רכיבים שתואמים לאלה שמתוארים בכתובת www.material.io.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫9 בספטמבר 2026 1.12.1 - - ‎1.13.0-alpha03

מבנה

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

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

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

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

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

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

משוב

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

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

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.13

גרסה ‎1.13.0-alpha03

‫9 בספטמבר 2026

androidx.compose.material:material-*:1.13.0-alpha03 מופץ. גרסה ‎1.13.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הוצאו משימוש עומסי יתר של שדות טקסט ב-Material 2 שמקבלים פרמטרים של value, onValueChange. צריך לבצע מיגרציה ל-overload שמשתמש ב-TextFieldState כדי להעביר את המצב שלו. (I6b841, ‏ b/556234973)

תיקוני באגים

  • compileSdk for Compose libraries updated to 37.1. כדי לעשות את זה, צריך לעדכן את compileSdk באופן טרנזיטיבי בכל האפליקציות והספריות שמשתמשות ב-Compose. (I05b0f)
  • הרכיבים SecureTextField ו-OutlinedSecureTextField (וגם העומסים העודפים של BasicSecureTextField שהוצאו משימוש) עודכנו כך שישתמשו ב-TextObfuscationMode.System כברירת המחדל של מצב ההסתרה במקום ב-TextObfuscationMode.RevealLastTyped. (I76c7e)

גרסה ‎1.13.0-alpha02

‫26 באוגוסט 2026

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

גרסה ‎1.13.0-alpha01

‫12 באוגוסט 2026

androidx.compose.material:material-*:1.13.0-alpha01 מופץ. גרסה ‎1.13.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • מעכשיו יש ל-androidx.benchmark מינוי ל-minSdk עם מכסת אחסון של 24GB. (Ic2a85)

תיקוני באגים

  • אופטימיזציה של אתחול ברמת הקובץ של material מאפיינים של מחלקת ערכים ברמה העליונה באמצעות פונקציות גט דינמיות. (Iae591)
  • אופטימיזציה של אתחול אובייקט משני של מחלקות ערכים material (FabPosition ו-Strings) באמצעות פונקציות getter דינמיות. (I0c7c0)
  • הסרת הדרישה לcompileSdk 37 (If78b4)

גרסה 1.12

גרסה 1.12.1

‫9 בספטמבר 2026

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

גרסה 1.12.0

‫12 באוגוסט 2026

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

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

גרסה ‎1.12.0-rc01

‫29 ביולי 2026

androidx.compose.material:material-*:1.12.0-rc01 מופץ. גרסה ‎1.12.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.12.0-beta02

‫1 ביולי 2026

androidx.compose.material:material-*:1.12.0-beta02 מופץ. גרסה ‎1.12.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.12.0-beta01

‫17 ביוני 2026

androidx.compose.material:material-*:1.12.0-beta01 מופץ. גרסה ‎1.12.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.12.0-alpha03

‫19 במאי 2026

androidx.compose.material:material-*:1.12.0-alpha03 מופץ. גרסה ‎1.12.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.12.0-alpha02

‫6 במאי 2026

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

גרסה ‎1.12.0-alpha01

‫22 באפריל 2026

androidx.compose.material:material-*:1.12.0-alpha01 מופץ. גרסה ‎1.12.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • השתנה VelocityTracker לשימוש בהטמעה שסופקה על ידי Android Framework (ניתן להגדרה באמצעות AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled). (Ibc7e2, ‏ b/359962905)

תיקוני באגים

  • עדכון של Compose compileSdk ל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. ‫(Id45cd, ‏ b/413674743)

גרסה 1.11

גרסה 1.11.4

‫1 ביולי 2026

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

גרסה 1.11.3

‫17 ביוני 2026

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

גרסה 1.11.2

‫19 במאי 2026

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

גרסה 1.11.1

‫6 במאי 2026

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

גרסה 1.11.0

‫22 באפריל 2026

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

גרסה ‎1.11.0-rc01

‫8 באפריל 2026

androidx.compose.material:material-*:1.11.0-rc01 מופץ. גרסה ‎1.11.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.11.0-beta02

‫25 במרץ 2026

androidx.compose.material:material-*:1.11.0-beta02 מופץ. גרסה ‎1.11.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.11.0-beta01

‫11 במרץ 2026

androidx.compose.material:material-*:1.11.0-beta01 מופץ. גרסה ‎1.11.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.11.0-alpha06

‫25 בפברואר 2026

androidx.compose.material:material-*:1.11.0-alpha06 מופץ. גרסה ‎1.11.0-alpha06 מכילה את השמירות האלה.

גרסה ‎1.11.0-alpha05

‫11 בפברואר 2026

androidx.compose.material:material-*:1.11.0-alpha05 מופץ. גרסה ‎1.11.0-alpha05 מכילה את השמירות האלה.

גרסה ‎1.11.0-alpha04

‫28 בינואר 2026

androidx.compose.material:material-*:1.11.0-alpha04 מופץ. גרסה ‎1.11.0-alpha04 מכילה את השמירות האלה.

גרסה ‎1.11.0-alpha03

‫14 בינואר 2026

androidx.compose.material:material-*:1.11.0-alpha03 מופץ. גרסה ‎1.11.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.11.0-alpha02

‫17 בדצמבר 2025

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

גרסה ‎1.11.0-alpha01

‫3 בדצמבר 2025

androidx.compose.material:material-*:1.11.0-alpha01 מופץ. גרסה ‎1.11.0-alpha01 מכילה את השמירות האלה.

גרסה 1.10

גרסה 1.10.6

‫25 במרץ 2026

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

גרסה 1.10.5

‫11 במרץ 2026

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

גרסה 1.10.4

‫25 בפברואר 2026

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

גרסה 1.10.3

‫11 בפברואר 2026

androidx.compose.material:material-*:1.10.3 מופץ. גרסה ‎1.10.3 מכילה את השמירות האלה.

גרסה 1.10.2

‫28 בינואר 2026

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

גרסה 1.10.1

‫14 בינואר 2026

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

גרסה 1.10.0

‫3 בדצמבר 2025

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

גרסה ‎1.10.0-rc01

‫19 בנובמבר 2025

androidx.compose.material:material-*:1.10.0-rc01 מופץ. גרסה ‎1.10.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.10.0-beta02

‫5 בנובמבר 2025

androidx.compose.material:material-*:1.10.0-beta02 מופץ. גרסה ‎1.10.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.10.0-beta01

‫22 באוקטובר 2025

androidx.compose.material:material-*:1.10.0-beta01 מופץ. גרסה ‎1.10.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.10.0-alpha05

‫8 באוקטובר 2025

androidx.compose.material:material-*:1.10.0-alpha05 מופץ. גרסה ‎1.10.0-alpha05 מכילה את השמירות האלה.

גרסה ‎1.10.0-alpha04

‫24 בספטמבר 2025

androidx.compose.material:material-*:1.10.0-alpha04 מופץ. גרסה ‎1.10.0-alpha04 מכילה את השמירות האלה.

גרסה ‎1.10.0-alpha03

‫10 בספטמבר 2025

androidx.compose.material:material-*:1.10.0-alpha03 מופץ. גרסה ‎1.10.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.10.0-alpha02

‫27 באוגוסט 2025

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

גרסה ‎1.10.0-alpha01

‫13 באוגוסט 2025

androidx.compose.material:material-*:1.10.0-alpha01 מופץ. גרסה ‎1.10.0-alpha01 מכילה את השמירות האלה.

תיקוני באגים

גרסה 1.9

גרסה 1.9.5

‫19 בנובמבר 2025

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

גרסה 1.9.4

‫22 באוקטובר 2025

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

גרסה 1.9.3

‫8 באוקטובר 2025

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

גרסה 1.9.2

‫24 בספטמבר 2025

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

גרסה 1.9.1

‫10 בספטמבר 2025

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

גרסה 1.9.0

‫13 באוגוסט 2025

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

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

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

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

שינויים ב-API

  • כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (Idb6b5)
  • ממשקי ה-API של תיבת העיטור של שדה הטקסט כבר לא ניסיוניים. (I7480f)

תיקוני באגים

  • ExposedDropdownMenu תואם בינארית לגרסאות קודמות. (I133f7)

גרסה ‎1.9.0-rc01

‫30 ביולי 2025

androidx.compose.material:material-*:1.9.0-rc01 מופץ. גרסה ‎1.9.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.9.0-beta03

‫16 ביולי 2025

androidx.compose.material:material-*:1.9.0-beta03 מופץ. גרסה ‎1.9.0-beta03 מכילה את השמירות האלה.

גרסה ‎1.9.0-beta02

‫2 ביולי 2025

androidx.compose.material:material-*:1.9.0-beta02 מופץ. גרסה ‎1.9.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.9.0-beta01

‫18 ביוני 2025

androidx.compose.material:material-*:1.9.0-beta01 מופץ. גרסה ‎1.9.0-beta01 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.9.0-alpha04

‫4 ביוני 2025

androidx.compose.material:material-*:1.9.0-alpha04 מופץ. גרסה ‎1.9.0-alpha04 מכילה את השמירות האלה.

גרסה ‎1.9.0-alpha03

‫20 במאי 2025

androidx.compose.material:material-*:1.9.0-alpha03 מופץ. גרסה ‎1.9.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.9.0-alpha02

‫7 במאי 2025

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

גרסה ‎1.9.0-alpha01

‫23 באפריל 2025

androidx.compose.material:material-*:1.9.0-alpha01 מופץ. גרסה ‎1.9.0-alpha01 מכילה את השמירות האלה.

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

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

שינויים ב-API

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

תיקוני באגים

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

גרסה 1.8

גרסה 1.8.3

‫18 ביוני 2025

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

גרסה 1.8.2

‫20 במאי 2025

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

גרסה 1.8.1

‫7 במאי 2025

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

גרסה 1.8.0

‫23 באפריל 2025

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

גרסה ‎1.8.0-rc03

‫9 באפריל 2025

androidx.compose.material:material-*:1.8.0-rc03 מופץ. גרסה ‎1.8.0-rc03 מכילה את השמירות האלה.

גרסה ‎1.8.0-rc02

‫26 במרץ 2025

androidx.compose.material:material-*:1.8.0-rc02 מופץ. גרסה ‎1.8.0-rc02 מכילה את השמירות האלה.

גרסה ‎1.8.0-rc01

‫12 במרץ 2025

androidx.compose.material:material-*:1.8.0-rc01 מופץ. גרסה ‎1.8.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.8.0-beta03

‫26 בפברואר 2025

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

גרסה ‎1.8.0-beta02

‫12 בפברואר 2025

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

גרסה ‎1.8.0-beta01

‫29 בינואר 2025

androidx.compose.material:material-*:1.8.0-beta01 מופץ. גרסה ‎1.8.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.8.0-alpha08

‫15 בינואר 2025

androidx.compose.material:material-*:1.8.0-alpha08 מופץ. גרסה ‎1.8.0-alpha08 מכילה את השמירות האלה.

תיקוני באגים

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

External Contribution

  • חשיפת sheetGesturesEnabled ב-ModalBottomSheetLayout. (I3f032, ‏ b/329543529)

גרסה ‎1.8.0-alpha07

‫11 בדצמבר 2024

androidx.compose.material:material-*:1.8.0-alpha07 מופץ. גרסה ‎1.8.0-alpha07 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.8.0-alpha06

‫13 בנובמבר 2024

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

גרסה ‎1.8.0-alpha05

‫30 באוקטובר 2024

androidx.compose.material:material-*:1.8.0-alpha05 מופץ. גרסה ‎1.8.0-alpha05 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.8.0-alpha04

‫16 באוקטובר 2024

androidx.compose.material:material-*:1.8.0-alpha04 מופץ. גרסה ‎1.8.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.8.0-alpha02

‫18 בספטמבר 2024

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

גרסה ‎1.8.0-alpha01

‫4 בספטמבר 2024

androidx.compose.material:material-*:1.8.0-alpha01 מופץ. גרסה ‎1.8.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה 1.7

גרסה 1.7.8

‫12 בפברואר 2025

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

גרסה 1.7.7

‫29 בינואר 2025

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

גרסה 1.7.6

‫11 בדצמבר 2024

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

גרסה 1.7.5

‫30 באוקטובר 2024

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

גרסה 1.7.4

‫16 באוקטובר 2024

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

גרסה 1.7.2

‫18 בספטמבר 2024

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

גרסה 1.7.1

‫10 בספטמבר 2024

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

גרסה 1.7.0

‫4 בספטמבר 2024

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

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

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

גרסה ‎1.7.0-rc01

‫21 באוגוסט 2024

androidx.compose.material:material-*:1.7.0-rc01 מופץ. גרסה ‎1.7.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.7.0-beta07

‫7 באוגוסט 2024

androidx.compose.material:material-*:1.7.0-beta07 מופץ. גרסה ‎1.7.0-beta07 מכילה את השמירות האלה.

גרסה ‎1.7.0-beta06

‫24 ביולי 2024

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

גרסה ‎1.7.0-beta05

‫10 ביולי 2024

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

גרסה ‎1.7.0-beta04

‫26 ביוני 2024

androidx.compose.material:material-*:1.7.0-beta04 מופץ. גרסה ‎1.7.0-beta04 מכילה את השמירות האלה.

גרסה ‎1.7.0-beta03

‫12 ביוני 2024

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

גרסה ‎1.7.0-beta02

‫29 במאי 2024

androidx.compose.material:material-*:1.7.0-beta02 מופץ. גרסה ‎1.7.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.7.0-beta01

‫14 במאי 2024

androidx.compose.material:material-*:1.7.0-beta01 מופץ. גרסה ‎1.7.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.7.0-alpha08

‫1 במאי 2024

androidx.compose.material:material-*:1.7.0-alpha08 מופץ. גרסה ‎1.7.0-alpha08 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.7.0-alpha07

‫17 באפריל 2024

androidx.compose.material:material-*:1.7.0-alpha07 מופץ. גרסה ‎1.7.0-alpha07 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.7.0-alpha06

‫3 באפריל 2024

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

הודעה לכיתה

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

שינויים ב-API

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

גרסה ‎1.7.0-alpha05

‫20 במרץ 2024

androidx.compose.material:material-*:1.7.0-alpha05 מופץ. גרסה ‎1.7.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.7.0-alpha04

6 במרץ 2024

androidx.compose.material:material-*:1.7.0-alpha04 מופץ. גרסה ‎1.7.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

גרסה ‎1.7.0-alpha03

‫21 בפברואר 2024

androidx.compose.material:material-*:1.7.0-alpha03 מופץ. גרסה ‎1.7.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.7.0-alpha02

‫7 בפברואר 2024

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

גרסה ‎1.7.0-alpha01

‫24 בינואר 2024

androidx.compose.material:material-*:1.7.0-alpha01 מופץ. גרסה ‎1.7.0-alpha01 מכילה את השמירות האלה.

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

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

שינויים ב-API

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

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

גרסה 1.6

גרסה 1.6.8

‫12 ביוני 2024

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

גרסה 1.6.7

‫1 במאי 2024

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

גרסה 1.6.6

‫17 באפריל 2024

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

גרסה 1.6.5

‫3 באפריל 2024

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

גרסה 1.6.4

‫20 במרץ 2024

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

גרסה 1.6.3

6 במרץ 2024

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

תיקוני באגים

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

גרסה 1.6.2

‫21 בפברואר 2024

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

גרסה 1.6.1

‫7 בפברואר 2024

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

גרסה 1.6.0

‫24 בינואר 2024

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

גרסה ‎1.6.0-rc01

‫10 בינואר 2024

androidx.compose.material:material-*:1.6.0-rc01 מופץ. גרסה ‎1.6.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.6.0-beta03

‫13 בדצמבר 2023

androidx.compose.material:material-*:1.6.0-beta03 מופץ. גרסה ‎1.6.0-beta03 מכילה את השמירות האלה.

גרסה ‎1.6.0-beta02

‫29 בנובמבר 2023

androidx.compose.material:material-*:1.6.0-beta02 מופץ. גרסה ‎1.6.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.6.0-beta01

‫15 בנובמבר 2023

androidx.compose.material:material-*:1.6.0-beta01 מופץ. גרסה ‎1.6.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.6.0-alpha08

‫18 באוקטובר 2023

androidx.compose.material:material-*:1.6.0-alpha08 מופץ. גרסה ‎1.6.0-alpha08 מכילה את השמירות האלה.

שינויים ב-API

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

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

גרסה ‎1.6.0-alpha07

‫4 באוקטובר 2023

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

  • עדכונים של פניות קשורות

גרסה ‎1.6.0-alpha06

‫20 בספטמבר 2023

androidx.compose.material:material-*:1.6.0-alpha06 מופץ. גרסה ‎1.6.0-alpha06 מכילה את השמירות האלה.

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

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

שינויים ב-API

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

גרסה ‎1.6.0-alpha05

‫6 בספטמבר 2023

androidx.compose.material:material-*:1.6.0-alpha05 מופץ. גרסה ‎1.6.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

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

שינויים ב-API

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

גרסה ‎1.6.0-alpha04

‫23 באוגוסט 2023

androidx.compose.material:material-*:1.6.0-alpha04 מופץ. גרסה ‎1.6.0-alpha04 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.6.0-alpha03

‫9 באוגוסט 2023

androidx.compose.material:material-*:1.6.0-alpha03 מופץ. גרסה ‎1.6.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.6.0-alpha02

26 ביולי 2023

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

שינויים ב-API

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

גרסה ‎1.6.0-alpha01

‫21 ביוני 2023

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

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

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

שינויים ב-API

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

תיקוני באגים

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

גירסה 1.5

גרסה 1.5.4

‫18 באוקטובר 2023

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

גרסה 1.5.3

‫4 באוקטובר 2023

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

גרסה 1.5.2

‫27 בספטמבר 2023

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

גירסה 1.5.1

‫6 בספטמבר 2023

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

גרסה 1.5.0

‫9 באוגוסט 2023

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

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.5.0-rc01

26 ביולי 2023

androidx.compose.material:material-*:1.5.0-rc01 מופץ. גרסה ‎1.5.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.5.0-beta03

‫28 ביוני 2023

androidx.compose.material:material-*:1.5.0-beta03 מופץ. גרסה ‎1.5.0-beta03 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.5.0-beta02

‫7 ביוני 2023

androidx.compose.material:material-*:1.5.0-beta02 מופץ. גרסה ‎1.5.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.5.0-beta01

‫24 במאי 2023

androidx.compose.material:material-*:1.5.0-beta01 מופץ. גרסה ‎1.5.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.5.0-alpha04

‫10 במאי 2023

androidx.compose.material:material-*:1.5.0-alpha04 מופץ. גרסה ‎1.5.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.5.0-alpha03

‫19 באפריל 2023

androidx.compose.material:material-*:1.5.0-alpha03 מופץ. גרסה ‎1.5.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.5.0-alpha02

‫5 באפריל 2023

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

תיקוני באגים

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

גרסה ‎1.5.0-alpha01

‫22 במרץ 2023

androidx.compose.material:material-*:1.5.0-alpha01 מופץ. גרסה ‎1.5.0-alpha01 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה 1.4

גרסה 1.4.3

‫3 במאי 2023

androidx.compose.material:material-*:1.4.3 יוצא ללא שינויים (רק שינוי במספר הגרסה).

גרסה 1.4.2

‫19 באפריל 2023

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

גרסה 1.4.1

‫5 באפריל 2023

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

גרסה 1.4.0

‫22 במרץ 2023

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

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

שינויים ב-API

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

גרסה ‎1.4.0-rc01

‫8 במרץ 2023

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

גרסה ‎1.4.0-beta02

‫22 בפברואר 2023

androidx.compose.material:material-*:1.4.0-beta02 מופץ. גרסה ‎1.4.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.4.0-beta01

‫8 בפברואר 2023

androidx.compose.material:material-*:1.4.0-beta01 מופץ. גרסה ‎1.4.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.4.0-alpha05

‫25 בינואר 2023

androidx.compose.material:material-*:1.4.0-alpha05 מופץ. גרסה ‎1.4.0-alpha05 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.4.0-alpha04

‫11 בינואר 2023

androidx.compose.material:material-*:1.4.0-alpha04 מופץ. גרסה ‎1.4.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

בעיה ידועה

  • כשמעדכנים מ-androidx.compose.foundation:1.4.0-alpha03 ל-androidx.compose.foundation:1.4.0-alpha04, יכול להיות שתיתקלו בשגיאה java.lang.NoSuchFieldError. כאן דווחה הבעיה במקור. תיקון נשלח, והוא יהיה זמין בעדכון הבא של כלי הכתיבה. כפתרון עקיף, אפשר לעדכן את הספריות 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. ה-method‏ animateTo של DrawerState הוחלפה ב-methods‏ open ו-close, ועכשיו אפשר להגדיר את ההיסטור כ-nullable. משתמשים ב-requireOffset כדי לדרוש את ההיסט. (I3de9e)
  • נוסף Modifier API לשליחת שאילתות לגבי פרטי גלילה של רכיבי צאצא. (I2ba9d, ‏ b/203141462)
  • המאפיין הזה משמש ב-Clickable כדי להשהות נכון אינטראקציות של לחיצה, במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.
  • תוקן באג שגרם לכך ש-Clickables לא עיכב את האדוות בצורה נכונה, כשנעשה בו שימוש בתוך Scrollable ViewGroup.
  • עדכנו את המגירות ואת הגיליונות כדי להשהות את הלחיצות בצורה נכונה במקרים שבהם תנועות יכולות להפוך לאירועי גלילה.

תיקוני באגים

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

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

  • ממשק המשתמש של Compose ו-Compose Material מסתמכים עכשיו על Lifecycle 2.5.1. (I05ab0, b/258038814)

גרסה ‎1.4.0-alpha02

‫9 בנובמבר 2022

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

שינויים ב-API

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

גרסה ‎1.4.0-alpha01

24 באוקטובר 2022

androidx.compose.material:material-*:1.4.0-alpha01 מופץ. גרסה ‎1.4.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה 1.3

גרסה 1.3.1

‫9 בנובמבר 2022

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

גרסה 1.3.0

24 באוקטובר 2022

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

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

שינוי שמשפיע על ההתנהגות

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

שינויים ב-API

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

גרסה ‎1.3.0-rc01

‫5 באוקטובר 2022

androidx.compose.material:material-*:1.3.0-rc01 מופץ. גרסה ‎1.3.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.3.0-beta03

‫21 בספטמבר 2022

androidx.compose.material:material-*:1.3.0-beta03 מופץ. גרסה ‎1.3.0-beta03 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת רכיב Pull-To-Refresh ל-Compose (I29168)

גרסה ‎1.3.0-beta02

‫7 בספטמבר 2022

androidx.compose.material:material-*:1.3.0-beta02 מופץ. גרסה ‎1.3.0-beta02 מכילה את השמירות האלה.

אין שינויים מאז גרסה ‎1.3.0-beta01

גרסה ‎1.3.0-beta01

‫24 באוגוסט 2022

androidx.compose.material:material-*:1.3.0-beta01 מופץ. גרסה ‎1.3.0-beta01 מכילה את השמירות האלה.

שינוי שמשפיע על ההתנהגות

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

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

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

גרסה ‎1.3.0-alpha03

‫10 באוגוסט 2022

androidx.compose.material:material-*:1.3.0-alpha03 מופץ. גרסה ‎1.3.0-alpha03 מכילה את השמירות האלה.

גרסה ‎1.3.0-alpha02

‫27 ביולי 2022

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

External Contribution

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

גרסה ‎1.3.0-alpha01

29 ביוני 2022

androidx.compose.material:material-*:1.3.0-alpha01 מופץ. גרסה ‎1.3.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה 1.2

גרסה 1.2.1

‫10 באוגוסט 2022

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

גרסה 1.2.0

‫27 ביולי 2022

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

גרסה ‎1.2.0-rc03

29 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc03 מופץ. גרסה ‎1.2.0-rc03 מכילה את השמירות האלה.

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

גרסה ‎1.2.0-rc02

‫22 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc02 מופץ. גרסה ‎1.2.0-rc02 מכילה את השמירות האלה.

גרסה ‎1.2.0-rc01

‫15 ביוני 2022

androidx.compose.material:material-*:1.2.0-rc01 מופץ. גרסה ‎1.2.0-rc01 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.2.0-beta03

‫1 ביוני 2022

androidx.compose.material:material-*:1.2.0-beta03 מופץ. גרסה ‎1.2.0-beta03 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.2.0-beta02

‫18 במאי 2022

androidx.compose.material:material-*:1.2.0-beta02 מופץ. גרסה ‎1.2.0-beta02 מכילה את השמירות האלה.

גרסה ‎1.2.0-beta01

‫11 במאי 2022

androidx.compose.material:material-*:1.2.0-beta01 מופץ. גרסה ‎1.2.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

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

שינויים ב-API

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

גרסה ‎1.2.0-alpha08

‫20 באפריל 2022

androidx.compose.material:material-*:1.2.0-alpha08 מופץ. גרסה ‎1.2.0-alpha08 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.2.0-alpha07

‫6 באפריל 2022

androidx.compose.material:material-*:1.2.0-alpha07 מופץ. גרסה ‎1.2.0-alpha07 מכילה את השמירות האלה.

גרסה ‎1.2.0-alpha06

‫23 במרץ 2022

androidx.compose.material:material-*:1.2.0-alpha06 מופץ. גרסה ‎1.2.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.2.0-alpha05

9 במרץ 2022

androidx.compose.material:material-*:1.2.0-alpha05 מופץ. גרסה ‎1.2.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.2.0-alpha04

23 בפברואר 2022

androidx.compose.material:material-*:1.2.0-alpha04 מופץ. גרסה ‎1.2.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

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

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

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

גרסה ‎1.2.0-alpha03

‫9 בפברואר 2022

androidx.compose.material:material-*:1.2.0-alpha03 מופץ. גרסה ‎1.2.0-alpha03 מכילה את השמירות האלה.

תיקוני באגים

גרסה ‎1.2.0-alpha02

‫26 בינואר 2022

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

שינויים ב-API

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

גרסה ‎1.2.0-alpha01

‫12 בינואר 2022

androidx.compose.material:material-*:1.2.0-alpha01 מופץ. גרסה ‎1.2.0-alpha01 מכילה את השמירות האלה.

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

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

External Contribution

  • לערוץ ModalBottomSheetState יש עכשיו דגל isSkipHalfExpanded. אפשר להגדיר את המאפיין הזה באמצעות ה-constructor או לעדכן אותו בהמשך על ידי הגדרת המאפיין ModalBottomSheetState's isSkipHalfExpanded לערך 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
  • שיפורים בגודל של יעד מגע
  • שימו לב: ב-Compose 1.0, רכיבי Material ירחיבו את שטח הפריסה שלהם כדי לעמוד בהנחיות הנגישות של Material בנוגע לגודל יעד המגע. לדוגמה, יעד המגע של לחצן יתרחב לגודל מינימלי של 48x48dp, גם אם הגדרתם גודל קטן יותר ללחצן. ההתנהגות הזו של Compose Material זהה להתנהגות של רכיבי Material Design, כך שאם משלבים Views ו-Compose, ההתנהגות תהיה עקבית. השינוי הזה גם מבטיח שכשתשתמשו ברכיבי Compose Material כדי ליצור את ממשק המשתמש, תעמדו בדרישות המינימליות לנגישות של יעדי מגע.
  • תמיכה יציבה בפס ניווט
  • העברה של מספר ממשקי API שהיו ניסיוניים בעבר למצב יציב
  • תמיכה בגרסאות חדשות יותר של Kotlin

גרסה ‎1.1.0-rc03

‫26 בינואר 2022

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

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

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

תיקוני באגים

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

גרסה ‎1.1.0-rc01

15 בדצמבר 2021

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

תיקוני באגים

גרסה ‎1.1.0-beta04

1 בדצמבר 2021

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

תכונות חדשות

  • העדכון בוצע כדי שתהיה תאימות ל-Kotlin 1.6.0

גרסה ‎1.1.0-beta03

17 בנובמבר 2021

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

גרסה ‎1.1.0-beta02

‫3 בנובמבר 2021

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

תיקוני באגים

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

גרסה ‎1.1.0-beta01

‫27 באוקטובר 2021

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

תכונות חדשות

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

גרסה ‎1.1.0-alpha06

‫13 באוקטובר 2021

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

שינויים ב-API

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

גרסה ‎1.1.0-alpha05

‫29 בספטמבר 2021

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

שינויים ב-API

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

גרסה ‎1.1.0-alpha04

‫15 בספטמבר 2021

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.1.0-alpha03

‫1 בספטמבר 2021

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

תכונות חדשות

  • ‫Compose 1.1.0-alpha03 עודכן כך שיסתמך על Kotlin 1.5.30. (I74545)

שינויים ב-API

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

גרסה ‎1.1.0-alpha02

‫18 באוגוסט 2021

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

External Contribution

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

גרסה ‎1.1.0-alpha01

‫4 באוגוסט 2021

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

שינויים ב-API

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

תיקוני באגים

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

גירסה 1.0

גרסה 1.0.5

‫3 בנובמבר 2021

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

תיקוני באגים

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

גרסה 1.0.4

‫13 באוקטובר 2021

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

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

  • העדכון בוצע כדי להסתמך על Kotlin 1.5.31

גרסה 1.0.3

‫29 בספטמבר 2021

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

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

  • העדכון בוצע כדי להסתמך על Kotlin 1.5.30

גרסה 1.0.2

‫1 בספטמבר 2021

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

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

גרסה 1.0.1

‫4 באוגוסט 2021

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

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

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

גרסה 1.0.0

28 ביולי 2021

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

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

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

בעיות מוכרות

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

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

    כדי לפתור את הבעיה, צריך להגדיל באופן זמני את minSdkVersion ל-24 ומעלה בקובץ build.gradle. הבעיה הזו תיפתר בגרסה הבאה של Android Studio Bumblebee וב-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 עם קלט לא תקין הפסיק להשתמש בצבע שגיאה לתווית כשהתווית משמשת כפלייסהולדר. האפשרות השנייה נכונה אם אין טקסט בשדה הטקסט והוא לא מוקד ההתעניינות. בעקבות השינוי הזה, גם המשמעות של הפרמטר error:Boolean בפונקציה TextFieldColors.labelColor() השתנתה: עכשיו הפונקציה תחזיר false גם אם הקלט לא תקין, אם התווית משמשת כplaceholder. (I45f78)

גרסה ‎1.0.0-beta09

‫16 ביוני 2021

androidx.compose.material:material-*:1.0.0-beta09 מופץ. גרסה ‎1.0.0-beta09 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

איך זה עובד?

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

גרסה ‎1.0.0-beta08

‫2 ביוני 2021

androidx.compose.material:material-*:1.0.0-beta08 מופץ. גרסה ‎1.0.0-beta08 מכילה את השמירות האלה.

תכונות חדשות

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

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-beta07

‫18 במאי 2021

androidx.compose.material:material-*:1.0.0-beta07 מופץ. גרסה ‎1.0.0-beta07 מכילה את השמירות האלה.

שינויים ב-API

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

גרסה ‎1.0.0-beta06

‫5 במאי 2021

androidx.compose.material:material-*:1.0.0-beta06 מופץ. גרסה ‎1.0.0-beta06 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-beta05

21 באפריל 2021

androidx.compose.material:material-*:1.0.0-beta05 מופץ. גרסה ‎1.0.0-beta05 מכילה את השמירות האלה.

תיקוני באגים

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

גרסה ‎1.0.0-beta04

‫7 באפריל 2021

androidx.compose.material:material-*:1.0.0-beta04 מופץ. גרסה ‎1.0.0-beta04 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-beta03

‫24 במרץ 2021

androidx.compose.material:material-*:1.0.0-beta03 מופץ. גרסה ‎1.0.0-beta03 מכילה את השמירות האלה.

שינויים ב-API

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

External Contribution

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

גרסה ‎1.0.0-beta02

10 במרץ 2021

androidx.compose.material:material-*:1.0.0-beta02 מופץ. גרסה ‎1.0.0-beta02 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-beta01

24 בפברואר 2021

androidx.compose.material:material-*:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

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

שינויים ב-API

  • שם המאפיין 'מידות' שונה. השמות של המאפיינים Modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של המאפיינים Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)
  • הפונקציות imageResource ו-vectorResource הן עכשיו פונקציות הרחבה של ImageBitmap ו-ImageVector בהתאמה. הפונקציות load{Image,Vector,Font}Resource נמחקו. (I89130)
  • השימוש בשינויים לשינוי גודל לפי מאפיינים מובנים כבר לא נחשב לניסיוני. (I15744)
  • הוסרו הצהרות dp ‏ (I798d2)
  • הוסר קריאה חוזרת (callback) של SoftwareKeyboardController מכל שדות הטקסט, והיא תוחלף בקרוב על ידי API חדש. (Iae869, b/168778053)
  • הפונקציות של Switch, ‏ Checkbox ו-RadioButton הן עכשיו nullable. הדוגמאות של תיבת סימון בשורה שאפשר ללחוץ עליה עודכנו כדי להשתמש בתכונה הזו. (If601b, b/171819073)
  • הטקסט InteractionState הוחלף בטקסט [Mutable]InteractionSource
    • ממשקי המשתמש אחראים לפליטה ולאיסוף של אירועי אינטראקציה.
    • במקום להעביר את interactionState = remember { InteractionState() } לרכיבים כמו Button ו-Modifier.clickable(), צריך להשתמש ב-interactionSource = remember { MutableInteractionSource() }.
    • במקום: Interaction.Pressed in interactionState צריך להשתמש בפונקציות ההרחבה ב-InteractionSource, כמו InteractionSource.collectIsPressedAsState().
    • בתרחישי שימוש מורכבים, אפשר להשתמש ב-InteractionSource.interactions כדי לצפות בזרם האינטראקציות. מידע נוסף זמין במסמכי התיעוד ובדוגמאות בנושא InteractionSource.
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • הוספת הממשק AccessibilityMananger ו-LocalAccessibilityMananger ב-CompositionLocals (I53520)
  • הוסרו שיטות LayoutCoordinates שהוצאו משימוש. במקום המאפיין משתמשים בפונקציה למיקום בפריט האב ולגבולות בפריט האב (I580ed,‏ b/169874631,‏ b/175142755)
  • פס ההזזה תומך עכשיו במצב מופעל/מושבת (I6d56b, b/179793072)
  • נוצר TextInputSession חדש לסשנים של קלט מרכיבי טקסט ברמה נמוכה, כמו CoreTextField. (I8817f, b/177662148)
  • ההגדרה AnimationEndReason.Interrupted הוסרה. אם האנימציה תיקטע, תופעל חריגה מסוג CancellationException. (I2cbbc, b/179695417)
  • הוסר @ExperimentalRippleApi והוחלף RippleAlpha בכיתה עם מאפיינים במקום בממשק. (I6df7c)
  • נוסף הממשק TextFieldColors כדי לייצג צבעים שונים שמשמשים ב-TextField וב-OutlinedTextField במצבים שונים. למידע על הטמעה שמוגדרת כברירת מחדל, אפשר לעיין ב-TextFieldDefaults.textFieldColors וב-TextFieldDefaults.outlinedTextFieldColors.
    • שינוי השם של הפרמטר isErrorValue בתוך TextField ו-OutlinedTextField ל-isError. (I831f9, ‏ b/171305338, ‏ b/168004067)
  • הוספת משנה selectionGroup שמאפשר לסמן אוסף של כרטיסיות או לחצני בחירה למטרות נגישות (Ie5c29)
  • הוספת LazyListState.animateScrollToItem

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

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

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

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

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

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

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

  • שם המאפיין 'מידות' שונה. השמות של המאפיינים Modifier.width/height/size שונו ל-requiredWidth/requiredHeight/requiredSize. השמות של המאפיינים Modifier.preferredWidth/preferredHeight/preferredSize שונו ל-width/height/size. (I5b414)

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

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

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

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

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

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

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

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

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

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

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

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha12

‫10 בפברואר 2021

androidx.compose.material:material-*:1.0.0-alpha12 מופץ. גרסה ‎1.0.0-alpha12 מכילה את השמירות האלה.

שינויים ב-API

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

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

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

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

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

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

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

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

  • הוספנו את ColorMatrix API שמשמש לשינוי ערכי ה-RGB של תוכן המקור. שינינו את המבנה של ColorFilter API כך שיהיה ממשק, והתאמנו אותו להטמעה של PathEffect. (Ica1e8)

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

  • הוספת SemanticsProperties.PaneTitle API. (I20d5a)

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

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

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

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha11

‫28 בינואר 2021

androidx.compose.material:material-*:1.0.0-alpha11 מופץ. גרסה ‎1.0.0-alpha11 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

  • הפונקציות onCommit,‏ onDispose ו-onActive הוצאו משימוש לטובת ממשקי ה-API‏ SideEffect ו-DisposableEffect‏ (If760e)
  • המעבר שמבוסס על TransitionDefinition הוצא משימוש (I0ac57)
  • יש עכשיו תמיכה ב-Initial State ב-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)

  • אי אפשר יותר להתאים אישית את אפקט האדווה שמופיע בלחצן וב-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)

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

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

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

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

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

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

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

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

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

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

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

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

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

גרסה ‎1.0.0-alpha10

‫13 בינואר 2021

androidx.compose.material:material-*:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha09

‫16 בדצמבר 2020

androidx.compose.material:material-*:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

שינויים ב-API

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

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

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

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

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

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

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

תיקוני באגים

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

    הוצאנו משימוש ממשקי API של פונקציות ליצירת שיפועים, ועברנו לשימוש במתודות ליצירת אובייקטים (factory methods) באובייקט 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)

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

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

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

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

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

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

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

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

גרסה ‎1.0.0-alpha08

‫2 בדצמבר 2020

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha07

11 בנובמבר 2020

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

שינויים ב-API

  • התכונה 'הדגשה' הוצאה משימוש והוחלפה בתכונה 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)
  • כשמחשבים את שכבות העל של הגובה, המשטח משתמש עכשיו בגובה האבסולוטי (הכולל). לכן, אם משטח מוטמע במשטח אחר, המערכת תשתמש בגובה המשולב כדי לצייר את שכבת העל. (I7bd2b, ‏ b/171031040)

תיקוני באגים

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

גרסה ‎1.0.0-alpha06

28 באוקטובר 2020

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha05

‫14 באוקטובר 2020

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

שינויים ב-API

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

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha04

‫1 באוקטובר 2020

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

שינויים ב-API

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

תיקוני באגים

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

גרסה ‎1.0.0-alpha03

16 בספטמבר 2020

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

שינויים ב-API

  • שינוי השם של הפרמטר BottomNavigationItem's onSelect ל-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)
  • התווית הפכה לפרמטר אופציונלי בתוך 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 מכילה את השמירות האלה.

בעיה ידועה

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

גרסה 0.1.0-dev

גרסה 0.1.0-dev17

‫19 באוגוסט 2020

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

שינויים ב-API

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

תיקוני באגים

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

גרסה 0.1.0-dev16

‫5 באוגוסט 2020

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

שינויים ב-API

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

תיקוני באגים

  • הפונקציה OnChildPositioned הוצאה משימוש. במקום זאת, צריך להשתמש ב-OnPositioned ברכיב הצאצא. (I87f95, ‏ b/162109766)
  • טיפלנו בתיקונים רחבים של API‏ (I077bc)
    1. הסרה של הממשק OffsetBase שלא נמצא בשימוש
    2. התאמה בין המחלקות Offset ו-IntOffset כדי ליצור ממשק API עקבי
    3. משנים את השם של IntOffset.Origin ל-IntOffset.Zero כדי לשמור על עקביות עם Offset API
    4. העברנו את השיטה nativeCanvas מחוץ לממשק Canvas כדי לתמוך בצרכנים ביצירת מופעי Canvas משלהם
    5. נוצרת מחלקת stub בשם EmptyCanvas כדי לבצע refactoring של DrawScope כך שיהיה פרמטר שאינו null במקום lateinit, וכדי להבטיח שהשדה לא יהיה null
    6. שם ה-enum של ClipOp שונה ל-Pascal Case
    7. השמות של סוגי ה-enum של FilterQuality שונו ל-Pascal Case
    8. השמות של הערכים ב-enum‏ StrokeJoin שונו ל-Pascal Case
    9. שמות הערכים של PointMode שונו ל-Pascal Case
    10. שונה השם של סוגי ה-enum‏ PaintingStyle ל-Pascal Case
    11. שינוי השם של סוגי ה-enum‏ PathFillType ל-Pascal Case
    12. השמות של הערכים של StrokeCap שונו ל-Pascal Case
    13. היישום של DrawCache עודכן כך שלא נעשה בו יותר שימוש בפרמטרים של lateinit
    14. העדכון של DrawScope לא כולל יותר שימוש בהעברה עצלה (lazy delegation) לפרמטרים הפנימיים fillPaint ו-strokePaint
    15. בוצע עדכון של Image composable כדי להימנע משימוש ב-Box לצורך תקורה נמוכה יותר
    16. עודכן הסיווג Outline כך שיכלול הערות מסוג @Immutable
    17. עדכנו את PathNode כך שיכלול הערות @Immutable לכל הוראת נתיב
    18. בוצע עדכון של Vector subcomposition כדי להסיר בדיקות מיותרות של שוויון מותנה, כי הפונקציה compose כבר מטפלת בהן
    19. הוצאנו משימוש את שיטות ה-constructor הנלוות של Rect לטובת פונקציות constructor
    20. עדכון של מחלקות Brush ושל פונקציות בונות עם ממשקי 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)
  • הוספה של isFocused() ו-isNotFocused() SemanticsMatcher. (I0b760)
  • הוסר BaseGestureScope.globalBounds, שאסור להשתמש בו בבדיקות. במקום זאת, משתמשים בקואורדינטות מקומיות לצומת שאיתו מתקשרים. (Ie9b08)
  • מיקום קבוע של חלונות קופצים במסכים עם מגרעת. (Idd7dd)
  • השם של Modifier.drawBackground שונה ל-Modifier.background (I13677)

גרסה 0.1.0-dev15

‫22 ביולי 2020

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

עדכון פניות קשורות

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

שינויים ב-API

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

    הצדקה

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

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

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

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

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

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

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

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

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

    חלופה 2: שימוש ב-mutableStateOf ובנציגי מאפיינים

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

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

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

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

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

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

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

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

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

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

  • נוסף Material Outlined Textfield (I1a518)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ילדים (Ia6d19)

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

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

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

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

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

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

  • הכיתוב Surface והכרטיס הועברו מ-androidx.ui.material.surface אל androidx.ui.material ‏ (I88a6d, ‏ b/150863888)

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

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

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

  • ממשקי ה-API של Tab אורגנו מחדש כדי לקבל lambdas של text ו-icon (Ia057e)

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

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

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

  • שינוי השם של Border modifier ל-DrawBorder (I8ffcc)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • שיפור DrawModifier API:

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

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

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

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

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

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

  • הוחלף Modifier plus operator בפונקציות של תוסף factory ‏ (I225e4)

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

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

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

  • הוספנו את VectorPainter API כדי להחליף את subcomposition API הקיים לגרפיקה וקטורית. התוצאה של subcomposition היא אובייקט 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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