المزلاج
زجاج مكتفٍ بذاته، والنداء الذي ينبغي أن تحفظ عنده.
LiquidGlassSlider مسارٌ بمقبض زجاجي يكسره. وهو مكتفٍ بذاته: يوفّر خلفيته ويكسر مساره الخاص، فلا يحتاج LiquidGlassView ولا يلتقط صفحتك. ضعه في أي مكان، على أي من المحركين.
Dart
LiquidGlassSlider(
value: volume,
onChanged: (v) => setState(() => volume = v),
onChangeEnd: (v) => savePreference(v),
activeColor: Colors.white,
width: 280,
)| المعامل | الافتراضي | ما يفعله |
|---|---|---|
value | — | الموضع، بين minimumValue وmaximumValue. |
onChanged | — | يُطلَق مع كل بكسل من السحب. |
onChangeStart / onChangeEnd | null | يُطلَقان مرة واحدة، عند الإمساك وعند الإفلات. |
minimumValue / maximumValue | 0 / 1 | المدى. |
isContinuous | true | الإبلاغ عن كل تغيّر أثناء السحب، أو مرة واحدة في النهاية. |
activeColor | أزرق النظام | الجزء الممتلئ من المسار. |
inactiveColor | 0x14000000 | بقية المسار. |
thumbColor | white | المقبض المنكمش في حالة السكون. |
width / height | null | اختصاران للحقلين نفسيهما في layout، ويغلبانهما. واترك height وشأنه إلا إن احتجت تثبيت الأثر — فهو مشتق من مقاسات المقبض. |
layout | LiquidGlassSliderLayout() | كل الهندسة: المسار، ومقاسا المقبض، وأيقونتا الطرفين. |
minimumIcon / maximumIcon | null | أيقونتان عند الطرفين. ويقصر المسار ليفسح لهما. |
style | null | يتجاوز زجاج المقبض. |
motion | LiquidGlassLensMotionSpec() | مقدار انضغاط المقبض المرفوع وتمدّده أثناء حمله — انظر الحركة. |
الهندسة#
كل ما يخصّ الحجم يعيش في واصف واحد. والمقبض زوجٌ من المقاسات لا مقاس واحد: الحبة الصلبة في السكون، والحبة الزجاجية التي يتحول إليها ما دام إصبعٌ على العنصر. وهما مضبوطان لبعضهما وينبغي أن يتحركا معاً.
Dart
const LiquidGlassSliderLayout(
width: 280,
trackHeight: 6,
thumbWidth: 37, // at rest: the solid pill
thumbHeight: 24,
liftedThumbWidth: 58, // held: the glass pill it becomes
liftedThumbHeight: 38.333,
iconSize: 20,
iconGap: 8,
)
التعليقات
التعليقات هي مناقشات GitHub — يمكنك الرد من أيٍّ من المكانين.