در حالتهای تعاملی تخصصی (مانند بوم نقاشی تعبیهشده، سطح کنترلکننده بازی یا پنجره ورودی مودال)، ممکن است برنامه شما نیاز داشته باشد که موقتاً فوکوس را روی یک جزء قفل کند و از حرکت 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") }
برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- اهداف تمرکز
- اهداف تمرکز گروهی
- درخواست تمرکز به صورت برنامهنویسیشده