ייתכן שהאפליקציה שלכם כוללת משימות עם מספר שלבים למשתמשים. לדוגמה, ייתכן שהאפליקציה צריכה על ידי רכישת תוכן נוסף, קביעת הגדרות תצורה מורכבות, או רק אימות של החלטה. לכל המשימות האלה צריך להפנות את המשתמשים להנחיה ממוינת של צעדים או החלטות.
ספריית androidx.leanback מספקת מחלקות להטמעת משימות משתמש מרובות שלבים. הדף הזה
עוסק באופן השימוש
כיתה אחת (GuidedStepSupportFragment
)
להוביל משתמש בסדרת החלטות לביצוע משימה. GuidedStepSupportFragment
משתמשת בשיטות מומלצות בממשק המשתמש של הטלוויזיה כדי שיהיה קל להבין ולנווט במשימות מרובות שלבים במכשירי הטלוויזיה.
מספקים פרטים על שלב
GuidedStepSupportFragment
מייצג שלב יחיד בסדרה
במספר שלבים. מבחינה חזותית, היא מספקת תצוגת הנחיה עם
רשימה של הפעולות או ההחלטות האפשריות עבור השלב.
![](https://developer.android.google.cn/static/images/training/tv/playback/guided-step-screen.png?authuser=9&hl=he)
איור 1. דוגמה לשלב מודרך.
לכל שלב במשימה מרובת השלבים, מרחיבים
GuidedStepSupportFragment
ולספק מידע לגבי ההקשר
השלב והפעולות שהמשתמש יכול לבצע. שינוי מברירת המחדל
onCreateGuidance()
ולהחזיר קוד חדש
GuidanceStylist.Guidance
עם הקשר
מידע, כמו כותרת השלב, התיאור והסמל שלו, כמו בדוגמה הבאה:
Kotlin
override fun onCreateGuidance(savedInstanceState: Bundle?): GuidanceStylist.Guidance { return GuidanceStylist.Guidance( getString(R.string.guidedstep_first_title), getString(R.string.guidedstep_first_description), getString(R.string.guidedstep_first_breadcrumb), activity.getDrawable(R.drawable.guidedstep_main_icon_1) ) }
Java
@Override public GuidanceStylist.Guidance onCreateGuidance(Bundle savedInstanceState) { String title = getString(R.string.guidedstep_first_title); String breadcrumb = getString(R.string.guidedstep_first_breadcrumb); String description = getString(R.string.guidedstep_first_description); Drawable icon = getActivity().getDrawable(R.drawable.guidedstep_main_icon_1); return new GuidanceStylist.Guidance(title, description, breadcrumb, icon); }
הוספת המחלקה המשנית בכיתה GuidedStepSupportFragment
פעילות באמצעות התקשרות
GuidedStepSupportFragment.add()
בשיטה onCreate()
של הפעילות שלך.
אם הפעילות מכילה רק GuidedStepSupportFragment
אובייקטים, צריך להשתמש ב-GuidedStepSupportFragment.addAsRoot()
במקום add()
כדי להוסיף את GuidedStepSupportFragment
הראשונים. באמצעות
addAsRoot()
עוזר לוודא שאם המשתמש לוחץ על לחצן 'הקודם' בשלט הרחוק של הטלוויזיה במהלך צפייה
את GuidedStepSupportFragment
הראשון, גם
הפעילות של GuidedStepSupportFragment
והפעילות של ההורה נסגרת.
הערה: יש להוסיף
GuidedStepSupportFragment
אובייקטים באופן פרוגרמטי,
לא בקובצי ה-XML של הפריסה.
יצירת פעולות של משתמשים וטיפול בהן
הוספת פעולות משתמש על ידי התעלמות
onCreateActions()
בשינוי מברירת המחדל, צריך להוסיף GuidedAction
חדש לכל אחד מהם
פעולה לביצוע ולספק את מחרוזת הפעולה, התיאור והמזהה. כדאי להשתמש
GuidedAction.Builder
כדי להוסיף פעולות חדשות.
Kotlin
override fun onCreateActions(actions: MutableList<GuidedAction>, savedInstanceState: Bundle?) { super.onCreateActions(actions, savedInstanceState) // Add "Continue" user action for this step actions.add(GuidedAction.Builder() .id(CONTINUE) .title(getString(R.string.guidedstep_continue)) .description(getString(R.string.guidedstep_letsdoit)) .hasNext(true) .build()) ...
Java
@Override public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { // Add "Continue" user action for this step actions.add(new GuidedAction.Builder() .id(CONTINUE) .title(getString(R.string.guidedstep_continue)) .description(getString(R.string.guidedstep_letsdoit)) .hasNext(true) .build()); ...
הפעולות לא מוגבלות לביצוע בחירה בשורה אחת. יש עוד סוגים של פעולות שאפשר ליצור:
-
הוספת פעולה של תווית מידע כדי לספק מידע נוסף על בחירות המשתמש באמצעות הגדרה
infoOnly(true)
אם הערך שלinfoOnly
הוא True, המשתמשים לא יכולים לבחור את הפעולה. -
הוספה של פעולת טקסט ניתנת לעריכה לפי הגדרה
editable(true)
אם הערך שלeditable
הוא True, המשתמש יכול להזין טקסט בפעולה שנבחרה באמצעות שלט רחוק או מקלדת מחוברת. שינוי מברירת המחדלonGuidedActionEditedAndProceed()
כדי לקבל את הטקסט שהשתנה שהמשתמש הזין. אפשר גם לשנות אתonGuidedActionEditCanceled()
כדי לדעת מתי המשתמש מבטל את הקלט. -
הוספה של קבוצת פעולות שפועלות כמו לחצני בחירה שניתנים לסימון, באמצעות
checkSetId()
עם ערך מזהה משותף כדי לקבץ פעולות בקבוצה. כל הפעולות באותה רשימה עם אותן פעולות מזהה ערכת ביקורת נחשב כמקושר. כשהמשתמש בוחר באחת מהפעולות בתוך הקבוצה, מסמנים את הפעולה וכל שאר הפעולות מתבטלות. -
הוספת פעולה של בוחר תאריכים באמצעות
GuidedDatePickerAction.Builder
במקוםGuidedAction.Builder
באפליקצייתonCreateActions()
. שינוי מברירת המחדלonGuidedActionEditedAndProceed()
כדי לקבל את ערך התאריך שהשתנה שהמשתמש הזין. - מוסיפים פעולה שמשתמשת בפעולות משנה כדי לאפשר למשתמש לבחור מתוך רשימה מורחבת של האפשרויות האלה. פעולות המשנה מתוארות בקטע הוספת פעולות משנה.
- מוסיפים פעולה של לחצן שמופיעה משמאל לרשימת הפעולות וניתן לבצע אותה בקלות נגיש. פעולות הלחצן מתוארות בקטע לחצן הוספה פעולות.
אפשר גם להוסיף אינדיקטור חזותי שמעיד על בחירת פעולה
מובילה לשלב חדש
hasNext(true)
כדי לראות את כל המאפיינים השונים שניתן להגדיר:
GuidedAction
כדי להגיב לפעולות, צריך לשנות את ברירת המחדל
onGuidedActionClicked()
ומעבדים את הבקשה שהועברה
GuidedAction
. זיהוי הפעולה שנבחרה לפי
בודק את GuidedAction.getId()
.
הוספת פעולות משנה
כדי לבצע פעולות מסוימות, יכול להיות שתצטרכו לספק למשתמש עוד אפשרויות. א'
GuidedAction
יכול לציין רשימה של
פעולות משנה שמוצגות כתפריט של פעולות צאצא.
![](https://developer.android.google.cn/static/images/training/tv/playback/guided-step-subaction.png?authuser=9&hl=he)
איור 2. פעולות משנה מודרכות.
רשימת פעולות המשנה יכולה להכיל פעולות רגילות או פעולות של לחצני בחירה, אבל ולא פעולות טקסט שניתנות לעריכה או לבוחר תאריכים. בנוסף, פעולת משנה לא יכולה להיות משלה קבוצת פעולות משנה, כי המערכת לא תומכת ביותר מרמה אחת של פעולות משנה.
כדי להוסיף פעולות משנה, קודם צריך ליצור רשימה של
GuidedAction
אובייקטים המשמשים כפעולות משנה, כפי שמוצג בדוגמה הבאה:
Kotlin
subActions.add(GuidedAction.Builder() .id(SUBACTION1) .title(getString(R.string.guidedstep_subaction1_title)) .description(getString(R.string.guidedstep_subaction1_desc)) .build()) ...
Java
List<GuidedAction> subActions = new ArrayList<GuidedAction>(); subActions.add(new GuidedAction.Builder() .id(SUBACTION1) .title(getString(R.string.guidedstep_subaction1_title)) .description(getString(R.string.guidedstep_subaction1_desc)) .build()); ...
ב-onCreateActions()
, יש ליצור
GuidedAction
שמציג את
רשימת פעולות משנה אחרי הבחירה:
Kotlin
... actions.add(GuidedAction.Builder() .id(SUBACTIONS) .title(getString(R.string.guidedstep_subactions_title)) .description(getString(R.string.guidedstep_subactions_desc)) .subActions(subActions) .build()) ...
Java
@Override public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) { ... actions.add(new GuidedAction.Builder() .id(SUBACTIONS) .title(getString(R.string.guidedstep_subactions_title)) .description(getString(R.string.guidedstep_subactions_desc)) .subActions(subActions) .build()); ... }
לסיום, כדי להגיב לבחירות משנה, מבטלים את השינוי
onSubGuidedActionClicked()
:
Kotlin
override fun onSubGuidedActionClicked(action: GuidedAction): Boolean { // Check for which action was clicked and handle as needed when(action.id) { SUBACTION1 -> { // Subaction 1 selected } } // Return true to collapse the subactions menu or // false to keep the menu expanded return true }
Java
@Override public boolean onSubGuidedActionClicked(GuidedAction action) { // Check for which action was clicked and handle as needed if (action.getId() == SUBACTION1) { // Subaction 1 selected } // Return true to collapse the subactions menu or // false to keep the menu expanded return true; }
הוספת פעולות ללחצן
אם השלב המודרך כולל רשימת פעולות גדולה, ייתכן שהמשתמשים יצטרכו לגלול ברשימה כדי לגשת לפעולות הנפוצות ביותר. שימוש בפעולות לחצנים כדי להפריד של הפעולות הנפוצות מרשימת הפעולות. פעולות של לחצנים יופיעו לצד את רשימת הפעולות ואפשר לנווט אליהן בקלות.
![](https://developer.android.google.cn/static/images/training/tv/playback/guided-step-buttonaction.png?authuser=9&hl=he)
איור 3. פעולות בלחיצה על לחצנים מודרכים.
פעולות של לחצנים נוצרות ומטופלות בדיוק כמו פעולות רגילות, אבל צריך ליצור
פעולות של לחצנים ב
onCreateButtonActions()
במקום onCreateActions()
. שליחת תגובה לפעולות של הלחצן ב
onGuidedActionClicked()
השתמשו בפעולות לחצנים כדי לבצע פעולות פשוטות, כמו פעולות ניווט בין שלבים. אין להשתמש בפעולה של בוחר התאריכים או בפעולות אחרות שניתנות לעריכה כפעולות של לחצנים. בנוסף, פעולות של לחצנים לא יכולות לכלול פעולות משנה.
קיבוץ שלבים מודרכים לרצף מודרך
GuidedStepSupportFragment
שמייצג שלב אחד. כדי ליצור רצף סדור של שלבים, יש לקבץ מספר
GuidedStepSupportFragment
אובייקטים יחד באמצעות
GuidedStepSupportFragment.add()
להוספה
את השלב הבא ברצף למקבץ המקטעים.
Kotlin
override fun onGuidedActionClicked(action: GuidedAction) { val fm = fragmentManager when(action.id) { CONTINUE -> GuidedStepSupportFragment.add(fm, SecondStepFragment()) } }
Java
@Override public void onGuidedActionClicked(GuidedAction action) { FragmentManager fm = getFragmentManager(); if (action.getId() == CONTINUE) { GuidedStepSupportFragment.add(fm, new SecondStepFragment()); } ...
אם המשתמש לוחץ על לחצן 'הקודם' בשלט הרחוק של הטלוויזיה, המכשיר יציג את
GuidedStepSupportFragment
במקבץ המקטעים. אם
ספק GuidedAction
משלך
חוזרים לשלב הקודם, אפשר ליישם את התנהגות החזרה באמצעות קריאה
getFragmentManager().popBackStack()
.
אם אתם צריכים להחזיר את המשתמש לשלב מוקדם יותר ברצף, אפשר להשתמש
popBackStackToGuidedStepSupportFragment()
כדי לחזור ל-GuidedStepSupportFragment
ספציפי במקבץ המקטעים.
כשהמשתמש מסיים את השלב האחרון ברצף, משתמשים
finishGuidedStepSupportFragments()
כדי להסיר את כולם
GuidedStepSupportFragment
מופעים
מהמקבץ הנוכחי ולחזור לפעילות ההורה המקורית. אם
GuidedStepSupportFragment
הראשון התווסף
באמצעות addAsRoot()
, התקשרות
finishGuidedStepSupportFragments()
גם סוגר את פעילות ההורה.
התאמה אישית של תצוגת השלבים
הכיתה GuidedStepSupportFragment
יכולה להשתמש בהתאמה אישית
נושאים ששולטים בהיבטים של המצגת, כמו עיצוב טקסט הכותרת או מעבר שלב
אנימציות. עיצובים מותאמים אישית חייבים לעבור בירושה מ-
Theme_Leanback_GuidedStep
ויכול לספק
העלאה של ערכים עבור מאפיינים שמוגדרים ב-
GuidanceStylist
והקבוצה
GuidedActionsStylist
.
כדי להחיל עיצוב מותאם אישית על GuidedStepSupportFragment
:
לבצע אחת מהפעולות הבאות:
-
כדי להחיל את העיצוב על פעילות ההורה, צריך להגדיר את המאפיין
android:theme
לערך רכיב פעילות במניפסט של Android. הגדרת המאפיין הזה תחיל את העיצוב על כל הצאצאים צפיות וזו הדרך הישירה ביותר להחיל עיצוב מותאם אישית אם הפעילות של ההורה מכילה רקGuidedStepSupportFragment
אובייקטים. -
אם בפעילות שלכם כבר נעשה שימוש בעיצוב מותאם אישית ואינכם רוצים להחיל אותה
GuidedStepSupportFragment
סגנונות לתצוגות אחרות בפעילות, הוספה שלLeanbackGuidedStepTheme_guidedStepTheme
לעיצוב של הפעילות המותאמת אישית הקיימת. המאפיין הזה מפנה לעיצוב המותאם אישית רקGuidedStepSupportFragment
האובייקטים פעילות. -
אם משתמשים ב-
GuidedStepSupportFragment
אובייקטים ב- פעילויות שהן חלק מאותה משימה כוללת מרובת שלבים ומעוניינות להשתמש עיצוב חזותי בכל השלבים, שינוי מברירת המחדלGuidedStepSupportFragment.onProvideTheme()
והחזרת העיצוב המותאם אישית.
למידע נוסף על הוספת סגנונות ועיצובים, ראו סגנונות ועיצובים.
בכיתה GuidedStepSupportFragment
משתמשים מיוחדים
כיתות סטייליסט כדי לגשת למאפייני עיצוב ולהחיל אותם.
הכיתה GuidanceStylist
משתמשת בפרטי העיצוב
כדי לשלוט בתצוגה של תצוגת ההנחיות שמשמאל,
הכיתה GuidedActionsStylist
משתמשת בפרטי העיצוב
כדי לשלוט בהצגה של תצוגת הפעולות הנכונה.
כדי להתאים אישית את הסגנון החזותי של השלבים מעבר למה שמקבלים בהתאמה אישית של העיצוב, אפשר לתת מחלקה משנית
GuidanceStylist
או
GuidedActionsStylist
והחזרת הכיתה במסגרת
GuidedStepSupportFragment.onCreateGuidanceStylist()
או
GuidedStepSupportFragment.onCreateActionsStylist()
כדי לדעת מה אפשר להתאים אישית במחלקות המשנה האלה, עיינו במשאבי העזרה בנושא
GuidanceStylist
והקבוצה
GuidedActionsStylist
.