প্রযোজ্য XR ডিভাইস
এই নির্দেশিকা আপনাকে এই ধরনের XR ডিভাইসের জন্য অভিজ্ঞতা তৈরি করতে সাহায্য করে।
onIndirectPointerGesture মডিফায়ার কম্পোনেন্টকে হাই-লেভেল ইনডাইরেক্ট পয়েন্টার ইভেন্ট
রিসিভ করতে ও তার উত্তর দিতে দেয়, যেমন ডিভাইসের টাচপ্যাড থেকে
উৎপন্ন হওয়া ইভেন্ট। টাচপ্যাড বা একই ধরনের সোর্স থেকে আসা জেসচার ক্যাপচার ও প্রসেস করতে এই মডিফায়ার ব্যবহার করুন।
API সারফেস
আপনার অ্যাপ হ্যান্ডলিং নিয়ন্ত্রণ করার জন্য চারটি কলব্যাক ব্যবহার করতে পারে:
onClick: উল্লেখযোগ্য অনুভূমিক মুভমেন্ট ছাড়াই সফলভাবে ট্যাপ বা ক্লিক করার মাধ্যমে ট্রিগার করা হয়েছে।onSwipeForward: অনুভূমিক সোয়াইপ সামনের দিকে দূরত্ব এবং গতিসীমা অতিক্রম করলে ট্রিগার হয়।onSwipeBackward: অনুভূমিক সোয়াইপ, দূরত্ব এবং বেগের থ্রেশহোল্ডের থেকে বেশি হলে এবং পিছনের দিকে হলে ট্রিগার করা হয়।Enabled:false-এ সেট করা হলে, মডিফায়ার উপেক্ষা করা হয় এবং কোনও কলব্যাক ইনভোক করা হয় না।
সোয়াইপ ও স্ক্রল করার জন্য সিস্টেমের আচরণ
ক্লিক ও সোয়াইপের মধ্যে পার্থক্য করতে সিস্টেম টাচ স্লোপ থ্রেশহোল্ড ব্যবহার করে।
- ডাউন স্টেটে থাকাকালীন পয়েন্টার উল্লেখযোগ্যভাবে সরলে,
onClickবাতিল হয়ে যায়। - মুভমেন্টের সময় পয়েন্টার উল্লেখযোগ্যভাবে ব্যাকট্র্যাক করলে, সোয়াইপ জেসচার বাতিল হয়ে যায়।
উদাহরণ: কোনও কম্পোনেন্টে সোয়াইপ ও ক্লিক করার জন্য হ্যান্ডলিং সেট-আপ করা
নিম্নলিখিত কোডটি ফোকাস করা যায় এমন Box-এ সোয়াইপ ও ক্লিক ম্যানেজ করার জন্য সেট-আপ করে:
@Composable fun OnIndirectPointerGestureSample() { var lastGesture by remember { mutableStateOf("None") } Box( modifier = Modifier.fillMaxSize() .onIndirectPointerGesture( enabled = true, onSwipeForward = { lastGesture = "Forward" }, onSwipeBackward = { lastGesture = "Backward" }, onClick = { lastGesture = "Click" }, ) .focusTarget(), contentAlignment = Alignment.Center, ) { Text("Last Gesture: $lastGesture") } }
কোড সম্পর্কে গুরুত্বপূর্ণ পয়েন্ট
onIndirectPointerGesture-এর জন্য ফোকাস প্রয়োজন, তাইBox-কে ফোকাসেবল করতেfocusTarget-ও প্রয়োগ করা হয়েছে। আপনিfocusTargetবা অন্য কোনও ফোকাস-এনাবল করার মডিফায়ার ব্যবহার করতে পারেন, যেমনsurface। ফোকাস না থাকলে, মডিফায়ার ইনডাইরেক্ট পয়েন্টার ইভেন্টে কাজ করতে পারে না।- এই উদাহরণ
onSwipeForwardএবংonClickকলব্যাক, উভয়ই প্রয়োগ করে, তাই শনাক্ত করা সোয়াইপ ও ক্লিক জেসচার ইন্টারসেপ্ট ও ব্যবহার করা হয়, এবং পেরেন্ট কন্টেনারের বাইরে পৌঁছায় না। তবে, আপনি একটি নির্দিষ্ট কলব্যাক নালও ছেড়ে যেতে পারেন যাতে একটি অঙ্গভঙ্গির মাধ্যমে পেরেন্ট কন্টেনারে একটিonIndirectPointerGestureমডিফায়ারে পাস করা যায়।