الحركة
نموذج الزجاج المتحرك تحت المقبض والحبة، وحده.
يتشوّه LiquidGlassMotionPill من حركة مركزه، لا من موضعه. اقذفه عبر الشاشة فتستطيل الحبة باتجاه السفر وتنضغط عبره، ثم ترتد متجاوزة السكون وتستقر. وأمسكها ساكنة عند أي موضع فتعود بمقاسها المعلَن تماماً.
وهذا هو النموذج نفسه داخل مقبض المزلاج وحبة شريط التبويبات الزجاجية، وتأخذ الثلاثة قيمة الضبط نفسها — LiquidGlassLensMotionSpec.
شيئان يحدثان معاً#
التحوّل. أمسكها فتنمو الحبة بنابض من restSize إلى activeSize، ويتلاشى الغطاء الصلب cover بينما يصل الزجاج، ثم أفلتها فتنكمش بنابض أرقّ. فالزجاج تغيّر حالة، لا زينة كانت موجودة دائماً.
التشوّه. ما دامت مرفوعة، يُعايَن المركز في كل إطار ويحجّم التسارعُ المتوسط المحورين بشكل متعاكس. وهذا الجزء هو motion.
LiquidGlassMotionPill(
center: Offset(edge + travel * fraction, box.height / 2),
active: dragging, // lifted: expanded, and tracking itself
restSize: const Size(76, 44),
activeSize: const Size(112, 62),
motion: const LiquidGlassLensMotionSpec(),
cover: myRestPill, // fades out as the glass comes up
)| المعامل | الافتراضي | ما يفعله |
|---|---|---|
center | — | مركز الحبة بالإحداثيات المحلية. قُدْه بأي طريقة يتحرك بها المضيف — سحبٌ أو نابض انزلاق أو أي شيء. |
active | — | مرفوعة أم لا. اقلبها عند الإمساك وأطفئها حين ينبغي أن تنكمش. |
restSize / activeSize | — | المقاسان اللذان تتحول بينهما. |
cover | null | يُرسم فوق الزجاج في السكون ويتلاشى مع اتساع التحوّل — والمزلاج يمرّر حبته البيضاء الصلبة هنا. ويُقصّ على محيط الحبة، فمرّر تعبئة بسيطة. |
style | null | مظهر الزجاج، وnull يُبقي الافتراضي المضبوط. |
motion | LiquidGlassLensMotionSpec() | الضبط، أدناه. |
shadow | null | ظل التلامس. ويُترك فارغاً عادةً — فهو يسافر مع بقية المظهر في style.appearance.shadow. |
LiquidGlassLensMotionSpec#
الضبط المشترك. يأخذه المزلاج كـ motion:، ويأخذه كذلك pillStyle.motion في شريط التبويبات.
| الحقل | الافتراضي | ما يفعله |
|---|---|---|
sampleWindow | 0.3 | ثوانٍ من الحركة الأخيرة يُؤخذ متوسطها لقراءة القوة. الأكبر أهدأ، والأصغر أكثر ارتعاشاً. |
sensitivity | 0.00007 | الكسب من التسارع إلى انحراف التحجيم — كم تشوّه قوةٌ معطاة الجسمَ. |
maxDeformation | 0.3 | سقف ابتعاد التحجيمين عن 1. و0 يطفئ التشوّه ويترك التحوّل البسيط. |
responseTime | 0.18 | ثوانٍ للانسياب نحو جواب التسارع بدل القفز إليه. و0 هي الاستجابة المقيَّدة بالإطار. |
التعليقات
التعليقات هي مناقشات GitHub — يمكنك الرد من أيٍّ من المكانين.