ব্যবহারকারীরা Tab কী বা দিকনির্দেশক (তীরচিহ্ন / ডি-প্যাড) কী ব্যবহার করে UI এলিমেন্ট জুড়ে কীবোর্ড ফোকাস সরাতে পারেন:
- Tab / Shift+Tab: এক-মাত্রিক উপস্থিতির ক্রমে ফোকাস সামনে বা পিছনে সরান।
- দিকনির্দেশক কী: ফোকাসকে দ্বিমাত্রিকভাবে সরান (উপরে, নিচে, বাঁদিকে এবং ডানদিকে)।
এক-মাত্রিক ফোকাস ট্রাভার্সাল
এক-মাত্রিক ফোকাস ট্রাভার্সালে, Tab কী স্ক্রিনে ভিজ্যুয়াল উপস্থিতির ক্রম অনুযায়ী UI-এর মাধ্যমে ফোকাসকে এগিয়ে নিয়ে যায়।
যেমন, চারটি বোতাম সারিতে সাজানো থাকলে:
Column { Row { Button(onClick = { /* ... */ }) { Text("1st") } Button(onClick = { /* ... */ }) { Text("2nd") } } Row { Button(onClick = { /* ... */ }) { Text("3rd") } Button(onClick = { /* ... */ }) { Text("4th") } } }
ট্যাব কী প্রেস করলে, ফোকাস ক্রমানুসারে নিম্নলিখিত ক্রমে বোতামগুলির মধ্যে সরে যায়:
- ১ম বোতাম (উপরে-শুরু)
- ২য় বোতাম (উপরের দিকে)
- ৩য় বোতাম (নিচে-শুরু)
- ৪র্থ বোতাম (নিচের-শেষ)
শেষ এলিমেন্টে Tab প্রেস করলে, প্রথম ফোকাস টার্গেটে ফিরে যাওয়া যায়। Shift+Tab প্রেস করলে ফোকাস উল্টো ক্রমে সরে যায়।
দ্বিমাত্রিক ফোকাস ট্রাভার্সাল
কীবোর্ডের তীরচিহ্নযুক্ত কী প্রেস করলে অথবা ডি-প্যাড ব্যবহার করলে টু-ডাইমেনশনাল ফোকাস ট্রাভার্সাল ট্রিগার হয়।
দ্বিমাত্রিক ট্রাভার্সালে, সিস্টেমটি অনুরোধ করা দিকে সবচেয়ে কাছের টার্গেট নির্ধারণ করতে UI এলিমেন্টের জ্যামিতিক স্থানাঙ্ক এবং স্থানিক সীমানা পরীক্ষা করে।
দ্বিমাত্রিক ফোকাস ট্রাভার্সাল র্যাপ করা যায় না। ব্যবহারকারী সবচেয়ে নিচের এলিমেন্টে ফোকাস করার সময় নিচের দিকে কী প্রেস করলে, স্ক্রিনের সবচেয়ে উপরে জাম্প করার পরিবর্তে সেই এলিমেন্টেই ফোকাস থেকে যায়।
পয়েন্টার ক্লিকের মাধ্যমে ফোকাস ট্রাভার্সাল রিসেট করা
ডেস্কটপ বা বড় স্ক্রিনের ডিভাইসে ফিজিক্যাল কীবোর্ড এবং মাউস বা টাচপ্যাডের মধ্যে অদলবদল করার সময়:
- ট্যাপ বা ক্লিক করার মাধ্যমে ফোকাস সরিয়ে দেওয়া: মাউস বা টাচপ্যাড ব্যবহার করে ইন্টার্যাক্টিভ নয় এমন স্পেসে ক্লিক বা ট্যাপ করলে, অ্যাক্টিভ এলিমেন্ট থেকে ফোকাস সরে যায়।
- ট্রাভার্সাল রিস্টার্ট করা: ফোকাস সরিয়ে দেওয়ার পরে, পরের বার ট্যাব কী প্রেস করলে, আগে অ্যাক্টিভ থাকা এলিমেন্ট থেকে শুরু করার পরিবর্তে, ভিজ্যুয়াল অ্যাপিয়ারেন্সের ক্রম অনুযায়ী প্রথম ফোকাস টার্গেট থেকে ওয়ান-ডাইমেনশনাল ট্রাভার্সাল রিস্টার্ট হয়। এটি টু-ডাইমেনশনাল ফোকাস ট্রাভার্সালের মতোই। দিকনির্দেশক কী, কীবোর্ড ফোকাসকে অনুরোধ করা দিকে সবচেয়ে কাছের ফোকাস টার্গেটে সরিয়ে দেয়।
প্রোগ্রাম্যাটিক্যালি ফোকাস সরানোর ব্যাপারে আরও জানতে, ফোকাস সরানো ও মুছে দেওয়া দেখুন।
ফোকাস ট্র্যাভার্সাল অর্ডার কাস্টমাইজ করুন
আপনি focusProperties মডিফায়ারের সাহায্যে
ট্রাভার্সাল আচরণ কাস্টমাইজ করতে পারবেন।
এক-মাত্রিক ট্র্যাভার্সাল অর্ডার কাস্টমাইজ করুন
এক-মাত্রিক ট্রাভার্সাল ওভাররাইড করতে,
FocusRequester সহ
next বা previous প্রপার্টি
নির্দিষ্ট করুন:
remember { FocusRequester() }দিয়ে একটিFocusRequesterঅবজেক্ট তৈরি করুন।focusRequesterমডিফায়ার ব্যবহার করে টার্গেট কম্পোজেবলের সাথেFocusRequesterঅ্যাটাচ করুন।- সোর্স কম্পোজেবলে
focusPropertiesমডিফায়ার প্রয়োগ করুন এবংFocusRequester-কেnext(ট্যাব-এর জন্য) বাprevious(Shift+ট্যাব-এর জন্য) হিসেবে অ্যাসাইন করুন।
val (first, second, third) = remember { FocusRequester.createRefs() } Column { Button( onClick = { /* ... */ }, modifier = Modifier .focusRequester(first) .focusProperties { next = third } ) { Text("First (Tab jumps to Third)") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(second) ) { Text("Second") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(third) ) { Text("Third") } }
দ্বিমাত্রিক ট্র্যাভার্সাল অর্ডার কাস্টমাইজ করা
একইভাবে, আপনি focusProperties-এর মধ্যে
up, down, start, end, left অথবা right-এ
FocusRequester ইনস্ট্যান্স অ্যাসাইন করে
দ্বিমাত্রিক ফোকাস ট্রাভার্সাল ওভাররাইড করতে পারবেন:
val (topButton, bottomButton) = remember { FocusRequester.createRefs() } Button( onClick = { /* ... */ }, modifier = Modifier .focusRequester(topButton) .focusProperties { down = bottomButton right = bottomButton } ) { Text("Top button") } Button( onClick = { /* ... */ }, modifier = Modifier.focusRequester(bottomButton) ) { Text("Bottom button") }
নির্দিষ্ট কোনও দিকে ফোকাস নেভিগেশন ব্লক করতে
(যেমন, লেআউট বাউন্ডারিতে),
সেই প্রপার্টিতে FocusRequester.Cancel অ্যাসাইন করুন
(যেমন, down = FocusRequester.Cancel)।
কোনও নির্দিষ্ট দিকের জন্য সিস্টেমের ডিফল্ট ট্রাভার্সাল অ্যালগরিদম
স্পষ্টভাবে বজায় রাখতে, FocusRequester.Default অ্যাসাইন করুন।
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- ফোকাস টার্গেট
- টেক্সট ফিল্ডে ফোকাস করুন
- গ্রুপ ফোকাস টার্গেট
- ফোকাস সরানো ও মুছে ফেলা
- প্রোগ্রামাটিক্যালি ফোকাসের অনুরোধ করুন
- টেস্ট ফোকাস নেভিগেশন