אפליקציות ב-Wear OS משתמשות באותן טכניקות פריסה כמו במכשירי Android אחרים, אבל צריך לעצב אותן בהתאם לאילוצים ספציפיים לשעונים.
הערה: אל תייבאו את הפונקציונליות וממשק המשתמש בדיוק כמו שהם מאפליקציה לנייד אל Wear OS, ואז תצפו לחוויית משתמש טובה.
אם אתם מעצבים את האפליקציה למכשיר שניתן להחזיק ביד מלבני, יכול להיות שהתוכן שמוצג ליד פינות המסך ייחתך בשעונים עגולים. אם משתמשים ברשימה אנכית שאפשר לגלול בה, הבעיה פחות חמורה כי המשתמש יכול לגלול כדי למרכז את התוכן. עם זאת, במסכים בודדים, הוא עלול לפגוע בחוויית המשתמש.
אם משתמשים בהגדרות הבאות לפריסה, הטקסט מוצג בצורה שגויה במכשירים עם מסכים עגולים:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text" android:layout_width="0dp" android:layout_height="0dp" android:text="@string/very_long_hello_world" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
כדי לפתור את הבעיה, צריך להשתמש בפריסות ב Wear OS UI Library שתומכות במכשירים עגולים.
- אפשר להשתמש ב-
BoxInsetLayoutכדי למנוע חיתוך של תצוגות ליד הקצוות של מסכים עגולים. - אפשר להשתמש ב-
WearableRecyclerViewכדי ליצור פריסה מעוקלת כשרוצים להציג ולשנות רשימה אנכית של פריטים שמיועדת למסכים עגולים.
מידע נוסף על עיצוב אפליקציות זמין בהנחיות לעיצוב אפליקציות ל-Wear OS.
שימוש ב-BoxInsetLayout
איור 2. שוליים פנימיים של חלון במסך עגול.
המחלקות
BoxInsetLayout בספריית ממשק המשתמש של Wear OS מאפשרות לכם להגדיר פריסה שמתאימה למסכים עגולים. בשיעור הזה תלמדו איך ליישר בקלות את התצוגות במרכז המסך או קרוב לקצוות שלו.
הריבוע האפור באיור 2 מראה את האזור שבו הרכיב BoxInsetLayout
יכול למקם באופן אוטומטי את תצוגות הצאצא שלו במסכים עגולים אחרי החלת
השוליים הנדרשים של החלון. כדי להציג תצוגות צאצא באזור הזה, צריך לציין את המאפיין layout_boxedEdges עם הערכים הבאים:
- שילוב של
top,bottom,leftו-right. לדוגמה, ערך של"left|top"ממקם את הקצוות השמאלי והעליון של רכיב הבן בתוך הריבוע האפור באיור 2. - הערך
"all"ממקם את כל התוכן של הילד בתוך הריבוע האפור באיור 2. זו הגישה הנפוצה ביותר עםConstraintLayoutבפנים.
הפריסה שמוצגת באיור 2 משתמשת ברכיב <BoxInsetLayout>
ועובדת במסכים עגולים:
<androidx.wear.widget.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:padding="15dp"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" app:layout_boxedEdges="all"> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:text="@string/sometext" android:textAlignment="center" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageButton android:background="@android:color/transparent" android:layout_height="50dp" android:layout_width="50dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" android:src="@drawable/cancel" /> <ImageButton android:background="@android:color/transparent" android:layout_height="50dp" android:layout_width="50dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" android:src="@drawable/ok" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.wear.widget.BoxInsetLayout>
שימו לב לחלקים בפריסה שמודגשים:
-
android:padding="15dp"בשורה הזו מוקצה ריווח פנימי לרכיב
<BoxInsetLayout>. -
android:padding="5dp"השורה הזו מקצה ריווח לרכיב הפנימי
ConstraintLayout. -
app:layout_boxedEdges="all"השורה הזו מוודאת שרכיב
ConstraintLayoutורכיבי הצאצא שלו ימוקמו בתוך האזור שמוגדר על ידי שולי החלון במסכים עגולים.
שימוש בפריסה מעוקלת
המחלקות
WearableRecyclerView בספריית ממשק המשתמש של Wear OS
מאפשרות להפעיל פריסה מעוקלת שעברה אופטימיזציה למסכים עגולים.
כדי להפעיל פריסה מעוקלת לרשימות שאפשר לגלול בהן באפליקציה, אפשר לעיין במאמר
יצירת רשימות ב-Wear OS.