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

खास इंटरैक्शन मोड (जैसे, एम्बेड किया गया ड्रॉइंग कैनवस, गेम कंट्रोलर की सतह या मोडल इनपुट डायलॉग) में, आपके ऐप्लिकेशन को फ़ोकस को किसी एक कॉम्पोनेंट पर कुछ समय के लिए लॉक करने की ज़रूरत पड़ सकती है. साथ ही, 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")
}