टेक्स्ट फ़ील्ड में फ़ोकस करना

जब उपयोगकर्ता, हार्डवेयर कीबोर्ड, डी-पैड या रोटरी कंट्रोलर की मदद से Compose यूज़र इंटरफ़ेस (यूआई) पर नेविगेट करते हैं, तो टेक्स्ट फ़ील्ड, फ़ोकस नेविगेशन में हिस्सा लेते हैं. ऐसा अन्य फ़ोकस टारगेट के साथ होता है.

डिफ़ॉल्ट रूप से, फ़ोकस टेक्स्ट फ़ील्ड में नहीं होता है. उपयोगकर्ताओं को टेक्स्ट फ़ील्ड छोड़ने की अनुमति देने के लिए, आपको कस्टम की इवेंट हैंडलर (onKeyEvent या onPreviewKeyEvent) जोड़ने की ज़रूरत नहीं है. उपयोगकर्ता, Shift+Tab का इस्तेमाल करके या दिशा बताने वाले बटन की मदद से टेक्स्ट की सीमाओं से बाहर जाकर, हमेशा इस सुविधा से बाहर निकल सकते हैं.

KeyboardOptions का इस्तेमाल, सॉफ़्टवेयर कीबोर्ड की ऐसी कार्रवाई के लिए किया जा सकता है जो हार्डवेयर कीबोर्ड से नेविगेट करने की सुविधा के साथ काम करती है. ImeAction.Next से, फ़ोकस अगले फ़ोकस टारगेट पर चला जाता है. उदाहरण के लिए.

एक डाइमेंशन में फ़ोकस ट्रैवर्सल

एक डाइमेंशन वाले फ़ोकस ट्रैवर्सल में, Tab बटन का व्यवहार, टेक्स्ट फ़ील्ड पर कॉन्फ़िगर किए गए lineLimits पर निर्भर करता है:

  • एक लाइन वाले टेक्स्ट फ़ील्ड (TextFieldLineLimits.SingleLine) Tab बटन दबाने से, फ़ोकस यूज़र इंटरफ़ेस (यूआई) में मौजूद अगले फ़ोकस टारगेट पर चला जाता है.
  • एक से ज़्यादा लाइन वाले टेक्स्ट फ़ील्ड (TextFieldLineLimits.MultiLine() या डिफ़ॉल्ट): Tab कुंजी दबाने पर, फ़ोकस को दूसरी जगह ले जाने के बजाय, टेक्स्ट बफ़र में टैब वर्ण (\t) डाला जाता है.
  • उल्टी दिशा में नेविगेट करना (Shift+Tab): Shift+Tab दबाने पर, फ़ोकस पीछे की ओर चला जाता है. इससे फ़ोकस, एक लाइन और कई लाइनों वाले टेक्स्ट फ़ील्ड, दोनों में पिछले फ़ोकस टारगेट पर चला जाता है.

// Single-line text field: Tab advances focus to the next focus target
BasicTextField(
    state = singleLineState,
    lineLimits = TextFieldLineLimits.SingleLine,
    modifier = Modifier.fillMaxWidth()
)

// Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target
BasicTextField(
    state = multiLineState,
    lineLimits = TextFieldLineLimits.MultiLine(),
    modifier = Modifier.fillMaxWidth()
)

दो डाइमेंशन में फ़ोकस ट्रैवर्सल

ऐरो बटन (या डी-पैड) का इस्तेमाल करते समय, दिशा बताने वाले बटन सबसे पहले टेक्स्ट फ़ील्ड में टेक्स्ट कर्सर (कैरेट) को मूव करते हैं:

  • वर्टिकल नेविगेशन (ऊपर / नीचे): Down बटन दबाने पर, कर्सर एक-एक लाइन नीचे की ओर जाता है. जब कैरेट आखिरी लाइन पर पहुंच जाता है, तो Down कुंजी को फिर से दबाने पर, फ़ोकस टेक्स्ट फ़ील्ड के नीचे मौजूद आस-पास के फ़ोकस टारगेट पर चला जाता है. पहली लाइन पर ऊपर ऐरो कुंजी दबाने से, फ़ोकस पिछले फ़ोकस टारगेट पर चला जाता है.
  • हॉरिज़ॉन्टल नेविगेशन (बाएं / दाएं / शुरू / खत्म): हॉरिज़ॉन्टल ऐरो वाले बटन दबाने से, कैरेट वर्णों के बीच में घूमता है. जब कैरेट, टेक्स्ट बफ़र की शुरुआत या आखिर में पहुंच जाता है, तो दिशा बताने वाली कुंजी को फिर से दबाने पर, फ़ोकस उस दिशा में मौजूद आस-पास के फ़ोकस टारगेट पर चला जाता है.

Android TV पर टेक्स्ट फ़ील्ड

Android TV पर, फ़िज़िकल कीबोर्ड के बिना डी-पैड कंट्रोलर का इस्तेमाल करके:

  1. किसी टेक्स्ट फ़ील्ड पर फ़ोकस करने पर, ऑन-स्क्रीन सॉफ़्टवेयर कीबोर्ड अपने-आप दिखता है.
  2. उपयोगकर्ता, डी-पैड का इस्तेमाल करके सॉफ़्टवेयर कीबोर्ड के बटन पर जाता है.
  3. वापस जाएं बटन दबाने पर, सॉफ़्टवेयर कीबोर्ड बंद हो जाता है. हालांकि, टेक्स्ट फ़ील्ड पर फ़ोकस बना रहता है.
  4. सॉफ़्टवेयर कीबोर्ड बंद होने के बाद, डी-पैड के दिशा वाले बटन दबाने पर, फ़ोकस स्क्रीन पर मौजूद आस-पास के फ़ोकस टारगेट पर चला जाता है.
  5. वापस जाएं बटन को दूसरी बार दबाने पर, सिस्टम की स्टैंडर्ड पीछे जाने की प्रोसेस चालू हो जाती है.