تمرکز را ضبط و آزاد کنید

در حالت‌های تعامل تخصصی (مثل بوم نقاشی جاسازی‌شده، سطح کنترل‌کننده بازی، یا چارگوش ورودی مُدال)، ممکن است برنامه شما نیاز داشته باشد تا تمرکز را به‌طور موقت روی یک عنصر قفل کند و از حرکت کردن با کلیدهای جدول یا جهت‌نما جلوگیری کند.

ضبط کردن تمرکز

برای گرفتن تمرکز، captureFocus() را در FocusRequester فراخوانی کنید:

val focusRequester = remember { FocusRequester() }

Box(
    modifier = Modifier
        .focusRequester(focusRequester)
        .focusable()
        .onFocusChanged { focusState ->
            if (focusState.isFocused) {
                focusRequester.captureFocus()
            }
        }
)

وقتی تمرکز ضبط می‌شود، کلیدهای پیمایش تمرکز استاندارد (مثل کلید جهش) تمرکز را به عناصر مجاور منتقل نمی‌کنند.

رها کردن تمرکز

برای خروج از حالت ضبط‌شده و بازیابی پیمایش تمرکز عادی در سراسر واسط کاربر، با freeFocus() تماس بگیرید:

IconButton(
    onClick = {
        focusRequester.freeFocus()
    }
) {
    Icon(Icons.Default.Close, contentDescription = "Exit focus lock")
}