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

ব্যবহারকারীরা হার্ডওয়্যার কীবোর্ড, D-প্যাড বা রোটারি কন্ট্রোলারের সাহায্যে Compose UI নেভিগেট করলে, টেক্সট ফিল্ড অন্যান্য ফোকাস টার্গেটের সাথে ফোকাস নেভিগেশনে অংশগ্রহণ করে।

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

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

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

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

  • এক-লাইন টেক্সট ফিল্ড (TextFieldLineLimits.SingleLine) Tab কী প্রেস করলে ফোকাস 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()
)

দ্বিমাত্রিক ফোকাস ট্রাভার্সাল

তীরচিহ্নযুক্ত কী (বা D-প্যাড) ব্যবহার করার সময়, দিকনির্দেশক কী প্রথমে টেক্সট ফিল্ডের মধ্যে টেক্সট কার্সর (ক্যারেট) সরান:

  • উল্লম্ব নেভিগেশন (উপর / নিচ): Down কী প্রেস করলে ক্যারেটটি একটি একটি করে লাইন নিচে নামতে থাকে। কার্সর শেষ লাইনে পৌঁছে গেলে, নিচের দিকে কী আবার প্রেস করলে ফোকাস টেক্সট ফিল্ডের নিচে থাকা সংলগ্ন ফোকাস টার্গেটে ট্রান্সফার হয়ে যায়। প্রথম লাইনে উপরের দিকে তীরচিহ্ন টিপলে ফোকাস আগের ফোকাস টার্গেটে চলে যায়।
  • অনুভূমিক নেভিগেশন (বাঁদিক / ডানদিক / শুরু / শেষ): অনুভূমিক তীরচিহ্ন কী প্রেস করলে কারসর অক্ষরগুলির মধ্যে দিয়ে যায়। টেক্সট বাফারের শুরুতে বা শেষে ক্যারেট পৌঁছে গেলে, ডাইরেকশনাল কী আবার প্রেস করলে, সেই দিকেই পাশের ফোকাস টার্গেটে ফোকাস ট্রান্সফার হয়ে যায়।

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

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

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