בקטע סדר ברירת המחדל של מעבר המיקוד מתואר אופן הכתיבה
מוסיף באופן אוטומטי לאלמנטים שלך התנהגות של מעבר מיקוד,
ניווט חד-ממדי (מקש tab
) וניווט דו-ממדי (מקשי חיצים). בחלק מהמקרים
במקרים מסוימים, ייתכן שיהיה צורך לעקוף את התנהגות ברירת המחדל ולהציג
על סדר המעבר הנדרש.
שינוי סדר מעבר חד-ממדי
כדי לשנות את סדר ברירת המחדל של מעבר המיקוד עבור ניווט חד-ממדי, צריך יוצרים סט של קובצי עזר, אחד לכל תוכן קומפוזבילי שניתן להתמקד בו:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
לאחר מכן, משתמשים בתכונת הצירוף focusRequester
כדי לשייך כל אחת מהן
קומפוזבילי:
Column { Row { TextButton({}, Modifier.focusRequester(first)) { Text("First field") } TextButton({}, Modifier.focusRequester(third)) { Text("Third field") } } Row { TextButton({}, Modifier.focusRequester(second)) { Text("Second field") } TextButton({}, Modifier.focusRequester(fourth)) { Text("Fourth field") } } }
עכשיו אפשר להשתמש בתכונת הצירוף focusProperties
כדי לציין סדר מעבר מותאם אישית:
Column { Row { TextButton( {}, Modifier .focusRequester(first) .focusProperties { next = second } ) { Text("First field") } TextButton( {}, Modifier .focusRequester(third) .focusProperties { next = fourth } ) { Text("Third field") } } Row { TextButton( {}, Modifier .focusRequester(second) .focusProperties { next = third } ) { Text("Second field") } TextButton( {}, Modifier .focusRequester(fourth) .focusProperties { next = first } ) { Text("Fourth field") } } }
שינוי סדר מעבר דו-ממדי
ניתן גם להוסיף שליטה פרטנית בסדר מעבר הפוקוס
לניווט דו-ממדי באמצעות מקשי החיצים. לגבי כל רכיב, אפשר לבצע את הפעולות הבאות:
לשנות את יעד הניווט המוגדר כברירת מחדל לכל מסלול על ידי הוספת
מקש הצירוף focusProperties
ולציין את הפריט שיעלה,
למטה, או בכל כיוון אחר:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
הטכניקה הזו משתמשת ביעילות בחיצים במקלדת, אלא גם יכולה לעבוד עם משטחים חשמליים ומדבקים לבקרים קוויים ואלחוטיים.
מומלץ עבורך
- הערה: טקסט הקישור מוצג כאשר JavaScript מושבת
- איך משנים את התנהגות המיקוד
- התמקדות בכתיבה