فوکوس را ضبط و رها کنید

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

فوکوس را ثبت کنید

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

val focusRequester = remember { FocusRequester() }

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

در حالی که فوکوس ثبت می‌شود، کلیدهای ناوبری استاندارد فوکوس (مانند Tab ) فوکوس را به اجزای مجاور منتقل نمی‌کنند.

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

برای خروج از حالت ثبت‌شده و بازیابی ناوبری فوکوس عادی در رابط کاربری، تابع freeFocus() را فراخوانی کنید:

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

{% کلمه به کلمه %} {% فعل کمکی %} {% کلمه به کلمه %} {% فعل کمکی %}