फ़ोकस कैप्चर करें और छोड़ें

इंटरैक्शन के खास मोड (जैसे, एम्बेड किया गया ड्रॉइंग कैनवस, गेम कंट्रोलर की सतह या मॉडल इनपुट डायलॉग) में, आपके ऐप्लिकेशन को कुछ समय के लिए किसी एक कॉम्पोनेंट पर फ़ोकस लॉक करना पड़ सकता है. साथ ही, Tab या दिशा बताने वाली कुंजियों को नेविगेट करने से रोकना पड़ सकता है.

कैप्चर फ़ोकस

फ़ोकस कैप्चर करने के लिए, FocusRequester पर captureFocus() को कॉल करें:

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")
}