টেক্সট ফিল্ডে ফোকাস করা

ব্যবহারকারীরা যখন হার্ডওয়্যার কীবোর্ড, ডি-প্যাড বা রোটারি কন্ট্রোলার সহ একটি কম্পোজ UI নেভিগেট করেন, তখন টেক্সট ফিল্ডগুলি অন্যান্য ফোকাস টার্গেটের পাশাপাশি ফোকাস নেভিগেশনে অংশগ্রহণ করে।

ডিফল্ট হিসেবে, টেক্সট ফিল্ডে ফোকাস ট্র্যাপ করা হয় না। ব্যবহারকারীদের টেক্সট ফিল্ড থেকে বেরিয়ে আসার অনুমতি দিতে আপনাকে কাস্টম কী ইভেন্ট হ্যান্ডলার (onKeyEvent বা onPreviewKeyEvent) যোগ করতে হবে না। ব্যবহারকারীরা সবসময় Shift+Tab ব্যবহার করে অথবা দিকনির্দেশক কী দিয়ে টেক্সটের সীমানা পেরিয়ে নেভিগেট করে বেরিয়ে আসতে পারবেন।

KeyboardOptions ব্যবহার করে একটি ইনট্যুইটিভ সফ্টওয়্যার কীবোর্ড অ্যাকশন প্রদান করা যেতে পারে যা হার্ডওয়্যার কীবোর্ড নেভিগেশনের সাথে সমন্বয় করে। যেমন, ImeAction.Next ফোকাসকে পরবর্তী ফোকাস টার্গেটে নিয়ে যায়।

এক-মাত্রিক ফোকাস ট্রাভার্সাল

এক-মাত্রিক ফোকাস ট্রাভার্সালে, Tab কী-এর আচরণ নির্ভর করে টেক্সট ফিল্ডে কনফিগার করা lineLimits-এর উপর:

  • সিঙ্গেল-লাইন টেক্সট ফিল্ড (TextFieldLineLimits.SingleLine) ট্যাব কী প্রেস করলে ফোকাস UI-এর পরবর্তী ফোকাস টার্গেটে চলে যায়।
  • মাল্টি-লাইন টেক্সট ফিল্ড (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 কী প্রেস করলে ক্যারেট এক এক লাইন করে নিচে নেমে যায়। ক্যারেট শেষ লাইনে পৌঁছালে, আবার নিচের কী প্রেস করলে ফোকাস টেক্সট ফিল্ডের নিচে সংলগ্ন ফোকাস টার্গেটে ট্রান্সফার হয়ে যায়। প্রথম লাইনে উপরের দিকে কী প্রেস করলে ফোকাস আগের ফোকাস টার্গেটে চলে যায়।
  • অনুভূমিক নেভিগেশন (বাঁদিকে / ডানদিকে / শুরু / শেষ): অনুভূমিক তীরচিহ্ন প্রেস করলে ক্যারেট অক্ষরের মধ্যে দিয়ে সরে যায়। ক্যারেট টেক্সট বাফারের শুরু বা শেষে পৌঁছালে, দিকনির্দেশক কী আবার প্রেস করলে ফোকাস সেই দিকে সংলগ্ন ফোকাস টার্গেটে ট্রান্সফার হয়।

Android TV-তে টেক্সট ফিল্ড

Android TV-তে, ফিজিক্যাল কীবোর্ড ছাড়া ডি-প্যাড কন্ট্রোলার ব্যবহার করা:

  1. টেক্সট ফিল্ডে ফোকাস সরালে অটোমেটিক স্ক্রিনের সফ্টওয়্যার কীবোর্ড দেখা যায়।
  2. ব্যবহারকারী ডি-প্যাড ব্যবহার করে সফ্টওয়্যার কীবোর্ডের কীগুলি নেভিগেট করেন।
  3. ফিরে যান বোতাম প্রেস করলে টেক্সট ফিল্ডে ফোকাস বজায় রেখে সফ্টওয়্যার কীবোর্ড বন্ধ হয়ে যায়।
  4. সফ্টওয়্যার কীবোর্ড বন্ধ হয়ে গেলে, ডি-প্যাড ডিরেকশনাল কী প্রেস করলে ফোকাস স্ক্রিনে আশেপাশের ফোকাস টার্গেটে সরে যায়।
  5. দ্বিতীয়বার ফিরে যান বোতাম প্রেস করলে স্ট্যান্ডার্ড সিস্টেম ব্যাক নেভিগেশন ট্রিগার হয়।