ঘূর্ণমান ইনপুট বলতে ঘড়ির টুকরো থেকে আসা ইনপুট বোঝায় যা ঘড়িটি ঘুরতে বা ঘোরাতে সাহায্য করে। গড়ে, ব্যবহারকারীরা তাদের ঘড়ির সাথে ইন্টারঅ্যাক্ট করতে মাত্র কয়েক সেকেন্ড সময় ব্যয় করে। রোটারি ইনপুট ব্যবহার করে আপনি আপনার ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারেন যাতে আপনার ব্যবহারকারী দ্রুত বিভিন্ন কাজ সম্পন্ন করতে পারেন।
বেশিরভাগ ঘড়িতে ঘূর্ণায়মান ইনপুটের তিনটি প্রধান উৎসের মধ্যে রয়েছে ঘূর্ণায়মান পার্শ্ব বোতাম (RSB), এবং হয় একটি শারীরিক বেজেল অথবা একটি স্পর্শ বেজেল, যা স্ক্রিনের চারপাশে একটি বৃত্তাকার স্পর্শ অঞ্চল। যদিও প্রত্যাশিত আচরণ ইনপুটের ধরণের উপর নির্ভর করে পরিবর্তিত হতে পারে, তবে সমস্ত প্রয়োজনীয় মিথস্ক্রিয়ার জন্য ঘূর্ণায়মান ইনপুট সমর্থন করতে ভুলবেন না।
স্ক্রোল সূচক
বেশিরভাগ ব্যবহারকারী আশা করেন যে অ্যাপগুলি স্ক্রোল জেসচার সমর্থন করবে। স্ক্রিনে কন্টেন্ট স্ক্রোল করার সাথে সাথে, ঘূর্ণায়মান ইন্টারঅ্যাকশনের প্রতিক্রিয়ায় ব্যবহারকারীদের ভিজ্যুয়াল প্রতিক্রিয়া দিন। ভিজ্যুয়াল প্রতিক্রিয়ায় উল্লম্ব স্ক্রোল বা পৃষ্ঠা সূচকের জন্য স্ক্রোলিং সূচক অন্তর্ভুক্ত থাকতে পারে।
ScalingLazyColumn , TransformingLazyColumn এবং Picker ডিফল্টরূপে স্ক্রোল জেসচার সমর্থন করে, যদি আপনি এই উপাদানগুলিকে AppScaffold এবং ScreenScaffold ভিতরে রাখেন এবং ScreenScaffold এবং উপাদানের মধ্যে তালিকার অবস্থা পাস করেন, যেমন একটি TransformingLazyColumn ।
AppScaffold এবং ScreenScaffold Wear OS অ্যাপগুলির জন্য মৌলিক লেআউট কাঠামো প্রদান করে এবং ইতিমধ্যেই একটি ডিফল্ট বাস্তবায়ন সহ একটি স্ক্রোল সূচকের জন্য একটি স্লট রয়েছে। স্ক্রলিং অগ্রগতি কাস্টমাইজ করতে, তালিকার অবস্থা বস্তুর উপর ভিত্তি করে একটি স্ক্রোল সূচক তৈরি করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:
val listState = rememberTransformingLazyColumnState() ScreenScaffold( scrollState = listState, scrollIndicator = { ScrollIndicator(state = listState) } ) { // ... }
আপনি ScalingLazyColumnDefaults.snapFlingBehavior ব্যবহার করে ScalingLazyColumn এর জন্য একটি স্ন্যাপ আচরণ কনফিগার করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:
val listState = rememberScalingLazyListState() ScreenScaffold( scrollState = listState, scrollIndicator = { ScrollIndicator(state = listState) } ) { val state = rememberScalingLazyListState() ScalingLazyColumn( modifier = Modifier.fillMaxWidth(), state = state, flingBehavior = ScalingLazyColumnDefaults.snapFlingBehavior(state = state) ) { // Content goes here // ... } }
কাস্টম অ্যাকশন
আপনি আপনার অ্যাপে রোটারি ইনপুটের প্রতিক্রিয়া জানাতে কাস্টম অ্যাকশনও তৈরি করতে পারেন। উদাহরণস্বরূপ, জুম ইন এবং আউট করতে অথবা মিডিয়া অ্যাপে ভলিউম নিয়ন্ত্রণ করতে রোটারি ইনপুট ব্যবহার করুন।
যদি আপনার কম্পোনেন্টটি ভলিউম নিয়ন্ত্রণের মতো স্ক্রোলিং ইভেন্টগুলিকে স্থানীয়ভাবে সমর্থন না করে, তাহলে আপনি নিজেই স্ক্রোল ইভেন্টগুলি পরিচালনা করতে পারেন।
প্রথম ধাপ হল একটি কাস্টম স্টেট ম্যানেজড ইন ভিউ মডেল তৈরি করা এবং একটি কাস্টম কলব্যাক তৈরি করা যা রোটারি স্ক্রোল ইভেন্টগুলি প্রক্রিয়া করতে ব্যবহৃত হয়।
class VolumeRange( val max: Int = 10, val min: Int = 0 ) private object VolumeViewModel { class MyViewModel : ViewModel() { private val _volumeState = mutableIntStateOf(0) val volumeState: State<Int> get() = _volumeState // ... fun onVolumeChangeByScroll(pixels: Float) { _volumeState.value = when { pixels > 0 -> minOf(volumeState.value + 1, VolumeRange().max) pixels < 0 -> maxOf(volumeState.value - 1, VolumeRange().min) else -> volumeState.value } } } }
তারপর, ইভেন্টগুলি পাওয়ার পর কলব্যাক ব্যবহার করুন, যেমনটি নিম্নলিখিত স্নিপেটে দেখানো হয়েছে।
val focusRequester: FocusRequester = remember { FocusRequester() } val volumeViewModel: VolumeViewModel.MyViewModel = viewModel() val volumeState by volumeViewModel.volumeState TransformingLazyColumn( modifier = Modifier .fillMaxSize() .onRotaryScrollEvent { volumeViewModel.onVolumeChangeByScroll(it.verticalScrollPixels) true } .focusRequester(focusRequester) .focusable(), ) { // You can use volumeState here, for example: item { Text("Volume: $volumeState") } }
মনে রাখবেন যে সরলতার জন্য, পূর্ববর্তী উদাহরণে পিক্সেল মান ব্যবহার করা হয়েছে, যা বাস্তবে ব্যবহার করা হলে অতিরিক্ত সংবেদনশীল হওয়ার সম্ভাবনা বেশি।
{% অক্ষরে অক্ষরে %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়।
- ফোকাস আচরণ পরিবর্তন করুন
- জেটপ্যাক কম্পোজের সাহায্যে কীবোর্ড, মাউস, ট্র্যাকপ্যাড এবং স্টাইলাস সাপোর্ট যোগ করুন
- Wear OS Codelab-এর জন্য রচনা করুন