ফোকাস ক্যাপচার ও রিলিজ করা

বিশেষ ইন্টার‍্যাকশন মোডে (যেমন, এম্বেড করা ড্রয়িং ক্যানভাস, গেম কন্ট্রোলার সারফেস বা মোডাল ইনপুট ডায়ালগ), আপনার অ্যাপকে সাময়িকভাবে কোনও একটি কম্পোনেন্টে ফোকাস লক করতে এবং Tab বা দিকনির্দেশক কী ব্যবহার করে নেভিগেট করা আটকাতে হতে পারে।

ক্যাপচার ফোকাস

ফোকাস ক্যাপচার করতে, FocusRequester-এ captureFocus() ইনভোক করুন:

val focusRequester = remember { FocusRequester() }

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

ফোকাস ক্যাপচার করা হলে, স্ট্যান্ডার্ড ফোকাস নেভিগেশন কী (যেমন, Tab) ফোকাসকে প্রতিবেশী কম্পোনেন্টে সরায় না।

রিলিজ ফোকাস

ক্যাপচার করা স্টেট থেকে বেরিয়ে আসতে এবং UI জুড়ে সাধারণ ফোকাস নেভিগেশন ফিরিয়ে আনতে, freeFocus() কল করুন:

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