प्रोग्राम के हिसाब से फ़ोकस करने का अनुरोध करना

कुछ यूज़र फ़्लो में, आपके ऐप्लिकेशन को किसी खास कॉम्पोनेंट पर फ़ोकस को साफ़ तौर पर ले जाना पड़ता है. उदाहरण के लिए, जब कोई उपयोगकर्ता "खोजें" बटन पर क्लिक करता है, तो हो सकता है कि आप खोज के इनपुट फ़ील्ड पर फ़ोकस को अपने-आप सेट करना चाहें.

FocusRequester का इस्तेमाल करना

साफ़ तौर पर फ़ोकस का अनुरोध करने के लिए:

  1. FocusRequester का इंस्टेंस बनाएं और उसे याद रखें: val focusRequester = remember { FocusRequester() }.
  2. focusRequester मॉडिफ़ायर का इस्तेमाल करके, FocusRequester को टारगेट कंपोज़ेबल से अटैच करें.
  3. किसी इवेंट कॉलबैक (जैसे, onClick) या कोरूटीन स्कोप में requestFocus() को कॉल करें.

val focusRequester = remember { FocusRequester() }
var text by remember { mutableStateOf("") }

TextField(
    value = text,
    onValueChange = { text = it },
    modifier = Modifier.focusRequester(focusRequester)
)

val focusRequester = remember { FocusRequester() }
var text by remember { mutableStateOf("") }

TextField(
    value = text,
    onValueChange = { text = it },
    modifier = Modifier.focusRequester(focusRequester)
)

Button(onClick = { focusRequester.requestFocus() }) {
    Text("Request focus on TextField")
}

शुरुआती स्क्रीन का फ़ोकस सेट करना

स्क्रीन के पहली बार दिखने पर, किसी खास कॉम्पोनेंट पर फ़ोकस करने के लिए, LaunchedEffect(Unit) के अंदर requestFocus() को ट्रिगर करें:

LaunchedEffect(Unit) {
    focusRequester.requestFocus()
}

कंटेनर के बीच नेविगेट करते समय या किसी दूसरी स्क्रीन से वापस आते समय, focusRestorer() को पैरंट कंटेनर से भी अटैच किया जा सकता है, ताकि फ़ोकस अपने-आप आखिरी बार फ़ोकस किए गए चाइल्ड पर वापस आ जाए. ज़्यादा जानकारी के लिए, फ़ोकस को पहले जैसा करना गाइड देखें.