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

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