إنتقل إلى المحتوى الرئيسي

Screen:swipe()

إجراء سحب بإصبع واحد على الشاشة. يُحدد مسار السحب بقائمة من قيم SwipePoint التي يتحرك الإصبع عبرها بالتسلسل.

التوقيع

Screen:swipe(swipePoints: List<SwipePoint>, params?: SwipeParams): void

القيمة المعادة

void

المعاملات

المعاملالنوعالوصف
swipePointsList<SwipePoint>قائمة من النقاط التي يتحرك الإصبع عبرها. الحد الأدنى نقطتان.
paramsSwipeParamsاختياري. يتحكم في سلوك السحب مثل الوضع المستمر والتأخير.

سلوك SwipePoint

كل نقطة في القائمة هي SwipePoint(x, y, holdDuration, swipeDuration). ويختلف المعنى حسب موضع النقطة:

النقطة الأولى (موضع البداية):

  • swipeDuration — التأخير الابتدائي بالمللي ثانية قبل أن يلمس الإصبع الشاشة
  • holdDuration — المدة التي يُمسك فيها عند موضع البداية قبل التحرك إلى النقطة التالية

النقاط اللاحقة (أهداف التحريك):

  • swipeDuration — المدة بالمللي ثانية للانتقال من النقطة السابقة إلى هذه النقطة
  • holdDuration — المدة التي يُمسك فيها عند هذه النقطة بعد الوصول (وقفة قبل التحرك التالي)

النقطة الأخيرة:

  • holdDuration — إمساك نهائي عند الموضع الأخير قبل أن يُرفع الإصبع

أمثلة

سحب بسيط

Screen:swipe({
SwipePoint(500, 1200, 50, 0),
SwipePoint(500, 400, 50, 1000),
})

يلمس الإصبع الشاشة عند (500, 1200) فورًا، ويمسك لمدة 50ms، ثم يسحب لأعلى إلى (500, 400) خلال ثانية واحدة.

سحب مع تأخير ابتدائي

Screen:swipe({
SwipePoint(300, 800, 50, 2000),
SwipePoint(700, 800, 50, 1500),
})

ينتظر ثانيتين، ثم يلمس الشاشة عند (300, 800)، ويمسك لمدة 50ms، ويسحب نحو اليمين إلى (700, 800) خلال 1.5 ثانية.

سحب متعدد النقاط مع إمساك

Screen:swipe({
SwipePoint(100, 500, 50, 0),
SwipePoint(400, 500, 3000, 1000),
SwipePoint(400, 900, 50, 1000),
})

الخط الزمني:

الوقتالإجراء
0msضغط عند (100, 500)
50msبدء التحرك إلى (400, 500)
1050msالوصول إلى (400, 500)، إمساك 3000ms
4050msبدء التحرك إلى (400, 900)
5050msالوصول إلى (400, 900)، إمساك 50ms
5100msرفع الإصبع

يسحب الإصبع نحو اليمين، ويتوقف لمدة 3 ثوانٍ، ثم يسحب نحو الأسفل.

سحب مستمر مع SwipeParams

Screen:swipe({
SwipePoint(200, 600, 50, 0),
SwipePoint(500, 300, 50, 2000),
}, SwipeParams():setContinue(true))

عند ضبط setContinue(true)، لا يُرفع الإصبع بين نقاط السحب. يتيح ذلك إيماءات مستمرة سلسة على Android 8.1+ مع خدمة إمكانية الوصول. أما على الخدمة الأصلية، فالسحب دائمًا مستمر بغض النظر عن هذا الإعداد.

سحب بطيء

Screen:swipe({
SwipePoint(540, 1800, 100, 0),
SwipePoint(540, 600, 50, 5000),
})

يلمس الشاشة عند (540, 1800)، ويمسك لمدة 100ms، ثم يسحب ببطء لأعلى إلى (540, 600) خلال 5 ثوانٍ.