সমস্ত Jetpack Compose Glimmer কম্পোনেন্ট ফোনের মতো সাধারণ ইনপুট পদ্ধতির সাথে কাজ করার জন্য ডিজাইন করা হয়েছে, যেমন AI গ্লাসের টাচপ্যাডে ট্যাপ বা সোয়াইপ করা। একই সাথে, এগুলি AI গ্লাস হার্ডওয়্যারের জন্য নির্দিষ্ট ইনপুট কমান্ড, যেমন ক্যামেরা এবং ডিসপ্লে বাটন , গ্রহণ করতেও সক্ষম। Jetpack Compose Glimmer কম্পোনেন্টগুলি স্বয়ংক্রিয়ভাবে প্রয়োজনীয় ইনপুট ইভেন্টগুলি পরিচালনা করে। কাস্টম কম্পোনেন্টের জন্য, আপনি নির্দিষ্ট ইন্টারঅ্যাকশন আচরণ বাস্তবায়নের জন্য Modifier.draggable বা Modifier.scrollable মতো বিদ্যমান Compose API ব্যবহার করতে পারেন।
ডিসপ্লেযুক্ত এআই চশমায়, পয়েন্টার ইনপুট ফোকাসকে প্রভাবিত করতে পারে:
- ট্যাপ : এলিমেন্ট সক্রিয় করার জন্য সরাসরি ইন্টারঅ্যাকশন। ব্যবহারকারী যখন কোনো এলিমেন্টের সাথে ইন্টারঅ্যাক্ট করেন, তখন ফোকাস সেখানে চলে যায়।
- সোয়াইপ : নেভিগেশন এবং স্ক্রোলিংয়ের জন্য ব্যবহৃত হয়। অনিয়ন্ত্রিত সোয়াইপ অঙ্গভঙ্গি স্বয়ংক্রিয়ভাবে ফোকাস মুভমেন্টে রূপান্তরিত হয়, যার ফলে সরাসরি পয়েন্টার ইনপুট ছাড়াই নির্বিঘ্ন UI নেভিগেশন সম্ভব হয়।
Jetpack Compose-এর একটি ফিচার ব্যবহার করে, স্ক্রিন লোড হওয়ার সময় সিস্টেম স্বয়ংক্রিয়ভাবে প্রথম ফোকাসযোগ্য এলিমেন্টে প্রাথমিক ফোকাস সেট করতে পারে, যা প্রায়শই স্ক্রিনের উপরের-বাম দিকের আইটেমটি হয়ে থাকে। এই ফিচারটি এখনও ডেভলপমেন্টের অধীনে রয়েছে এবং ডিফল্টরূপে সক্রিয় করা থাকে না। এই ফিচারটি সক্রিয় করতে, আপনার অ্যাক্টিভিটির onCreate() মেথডে isInitialFocusOnFocusableAvailable ফ্ল্যাগটিকে true তে সেট করুন।
class GlassesActivityExample : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@OptIn(ExperimentalComposeUiApi::class)
ComposeUiFlags.isInitialFocusOnFocusableAvailable = true
super.onCreate(savedInstanceState)
}
}
নেভিগেশন আচরণ এবং ক্রম
ব্যবহারকারী আপনার অ্যাপে নেভিগেট করার সাথে সাথে ফোকাসের চলাচল এবং ক্রম পরিবর্তিত হয়।
ফোকাস মুভমেন্ট
স্ক্রোলযোগ্য কোনো কন্টেইনারের ক্ষেত্রে, টাচপ্যাডে সোয়াইপ করলে ফোকাস ক্রমাগত স্থানান্তরিত হয়। বোতামের সারির মতো স্বতন্ত্র উপাদানগুলোর ক্ষেত্রে, প্রতিটি সোয়াইপে ফোকাস একবারে একটি করে উপাদানে সরে যায়।
ফোকাস ক্রম
Jetpack Compose-এর মতোই, Jetpack Compose Glimmer এক-মাত্রিক ফোকাস সার্চ ব্যবহার করে। ফোকাস ট্র্যাভার্সালের ক্রম সম্পর্কে আরও জানতে, “Change focus traversal order” দেখুন।
প্রাথমিকভাবে ফোকাস করা আইটেমটি পরিবর্তন করতে, আপনি একটি টপ-লেভেল Modifier.focusGroup() যোগ করতে পারেন এবং একটি কাস্টম onEnter focusProperty নির্দিষ্ট করতে পারেন:
Modifier.focusProperties {
onEnter = {
initialFocus.requestFocus()
cancelFocusChange()
}
}
.focusGroup()
স্ক্রোলিং কন্টেইনার
সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতার জন্য, তালিকার মতো স্ক্রোলিং কন্টেইনারগুলোই স্ক্রিনের একমাত্র প্রধান উপাদান হওয়া উচিত। নেভিগেশন বিভ্রান্তি এড়াতে এবং মসৃণ ও অনুমানযোগ্য ফোকাস মুভমেন্ট নিশ্চিত করতে, স্ক্রোলযোগ্য তালিকা সরাসরি বাটনের মতো অন্যান্য ইন্টারেক্টিভ উপাদানের উপরে বা নীচে রাখা থেকে বিরত থাকুন।
ডিফল্ট ফোকাস অবস্থা
Jetpack Compose Glimmer তার সারফেস, কার্ড এবং লিস্ট আইটেম সহ সকল ইন্টারঅ্যাক্টেবল কম্পোনেন্টে ডিফল্ট ফোকাস স্টেট প্রয়োগ করে, যা ব্যবহারকারীর ইন্টারঅ্যাকশনের সময় সামঞ্জস্যপূর্ণ এবং স্পষ্ট ভিজ্যুয়াল ফিডব্যাক প্রদান করে।

ডিফল্ট : বাটনের ব্যাকগ্রাউন্ড কালার
GlimmerTheme.colors.surfaceথেকে নেওয়া হয়, এর মূল কন্টেন্ট সেই সারফেসের কন্টেন্ট কালার অনুযায়ী নির্ধারিত হয় এবং আইকনগুলোGlimmerTheme.colors.primaryঅনুযায়ী হয়ে থাকে।ফোকাসড : ফোকাস বোঝানোর জন্য বর্ডারের প্রস্থ বাড়ানো হয়।
ফোকাসড + প্রেসড : এর নির্বাচিত অবস্থা বোঝানোর জন্য ব্যাকগ্রাউন্ডটি
GlimmerTheme.colors.surfaceএর সম্পূর্ণ অপাসিটিতে সেট করা হয়েছে।