FocusManager به شما امکان میدهد تمرکز را بهصورت جهتدار جابهجا کنید یا آن را کاملاً پاک کنید.
از FocusRequester برای هدفیابی مستقیم مؤلفه استفاده کنید (به درخواست تمرکز بهصورت برنامهنویسیشده مراجعه کنید).
حرکت تمرکز جهتی با FocusManager
برای انتقال تمرکز بهصورت برنامهنویسیشده در جهت نسبی:
- نمونه
FocusManagerرا بااستفاده ازLocalFocusManager.currentدریافت کنید. moveFocus()را با مقدارFocusDirection(Next،Previous،Up،Down،Left،Right،Enter، یاExit) فراخوانی کنید.
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
پاک کردن تمرکز
برای برداشتن تمرکز از هر عنصری که درحالحاضر آن را نگه میدارد
(برای مثال، وقتی کاربر کلید Esc را فشار میدهد)،
clearFocus() را فراخوانی کنید:
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
تابع clearFocus() پارامتر اختیاری force: Boolean = false را میپذیرد:
force = false(پیشفرض): به قفلهای تمرکز احترام میگذارد و اگر مؤلفه فعال تمرکز را ضبط کرده باشد، تمرکز را پاک نمیکند.force = true: تمرکز را بدون قیدوشرط پاک میکند، حتی اگر مؤلفهای تمرکز را گرفته باشد.
توصیهشده برای شما
- توجه: وقتی جاوا اسکریپت خاموش باشد، نوشتار پیوند نمایش داده میشود
- هدفهای تمرکز
- ترتیب پیمایش فوکوس
- درخواست تمرکز بهصورت برنامهنویسیشده