בעזרת רשתות 'לא עצלניות' אפשר לנהל מערכי נתונים גדולים ותוכן דינמי, וכך לשפר את ביצועי האפליקציה. בעזרת רכיבים מורכבים של רשת עצלה, אפשר להציג פריטים במארז שניתן לגלילה, שמשתרע על פני כמה עמודות או שורות.
תאימות גרסאות
כדי להטמיע את הקוד הזה, צריך להגדיר את minSDK של הפרויקט לרמת API 21 ואילך.
יחסי תלות
בחירת כיוון הרשת
הרכיבים הניתנים לקישור LazyHorizontalGrid ו-LazyVerticalGrid מספקים תמיכה בהצגת פריטים בתצוגת רשת. בתצוגת רשת אנכית עם טעינה איטית, הפריטים מוצגים במאגר שניתן לגלילה אנכית, לאורך כמה עמודות. בתצוגת רשת אופקית עם טעינה איטית, ההתנהגות זהה בציר האופקי.
יצירת רשת שניתן לגלול בה
הקוד הבא יוצר רשת גלילה אופקית עם שלוש עמודות:
@Composable fun ScrollingGrid() { val itemsList = (0..15).toList() val itemModifier = Modifier .border(1.dp, Color.Blue) .width(80.dp) .wrapContentSize() LazyHorizontalGrid( rows = GridCells.Fixed(3), horizontalArrangement = Arrangement.spacedBy(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp) ) { items(itemsList) { Text("Item is $it", itemModifier) } item { Text("Single item", itemModifier) } } }
נקודות עיקריות לגבי הקוד
- הרכיב ה-composable
LazyHorizontalGridקובע את הכיוון האופקי של הרשת.- כדי ליצור רשת אנכית, משתמשים ב-
LazyVerticalGridבמקום זאת.
- כדי ליצור רשת אנכית, משתמשים ב-
- המאפיין
rowsמציין איך לסדר את התוכן של התצוגה.- כדי להציג רשת אנכית, צריך להשתמש במאפיין
columnsכדי לציין את הסדר.
- כדי להציג רשת אנכית, צריך להשתמש במאפיין
items(itemsList)מוסיף אתitemsListל-LazyHorizontalGrid. פונקציית הלמהדה יוצרת רכיבTextלכל פריט ומגדירה את הטקסט כתיאור הפריט.item()מוסיף פריט אחד ל-LazyHorizontalGrid, בעוד שהפונקציה lambda מפעילה רכיבTextאחד שאפשר לשלב בדרכים דומות ל-items().GridCells.Fixedמגדיר את מספר השורות או העמודות.כדי ליצור רשת עם כמה שיותר שורות, מגדירים את מספר השורות באמצעות
GridCells.Adaptive.בקוד הבא, הערך
20.dpמציין שכל עמודה צריכה להיות לפחות 20.dp, ושכל העמודות צריכות להיות באותו רוחב. אם המסך רחב ב-88.dp, יש 4 עמודות בגודל 22.dp כל אחת.
תוצאות
LazyHorizontalGrid.אוספים שמכילים את המדריך הזה
המדריך הזה הוא חלק מהאוספים הבאים של מדריכים מהירים, שמכסים יעדים רחבים יותר לפיתוח Android:
הצגת רשימה או רשת
הצגת רכיבים אינטראקטיביים