FocusManager به شما امکان میدهد تمرکز را بهصورت جهتدار حرکت دهید یا آن را بهطور کامل پاک کنید.
از FocusRequester برای هدفیابی مستقیم عنصر استفاده کنید (درخواست تمرکز برنامهریزیشده را ببینید).
حرکت تمرکز جهتی با FocusManager
برای انتقال تمرکز بهصورت برنامهریزیشده در جهتی نسبی:
- نمونه
FocusManagerرا بااستفاده ازLocalFocusManager.currentدریافت کنید. - با مقدار
FocusDirection(Next،Previous،Up،Down،Left،Right،Enter، یاExit) باmoveFocus()تماس بگیرید.
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
پاک کردن تمرکز
برای برداشتن تمرکز از هر عنصری که درحالحاضر تمرکز روی آن است
(برای مثال، وقتی کاربر کلید گریز را فشار میدهد)،
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: تمرکز را بدون قیدوشرط پاک میکند، حتی اگر یک مؤلفه تمرکز را ضبط کرده باشد.
توصیهشده برای شما
- توجه: نوشتار پیوند وقتی جاوا اسکریپت خاموش است نمایش داده میشود
- هدفهای تمرکز
- ترتیب پیمایش تمرکز
- درخواست تمرکز برنامهریزیشده