در Jetpack Compose Glimmer، VerticalStack چیدمانی تنبل و پیمایشپذیر عمودی است که عناصر را در یک توالی سهبعدی با همپوشانی دیداری مرتب میکند. مورد اصلی بهصورت برجسته در پیشزمینه نمایش داده میشود، درحالیکه موارد بعدی در پشت آن قرار میگیرند.
عملکردهای پیمایش و جایگاهسازی
ازآنجاییکه پشتهها موارد را در چیدمانی فشرده و همپوشان مرتب میکنند، برخیاز رفتارهای آنها با انواع دیگر عناصر ترتیبی، مانند فهرستها، متفاوت است:
- وقتی کاربر بهصورت عمودی پیمایش میکند، مورد پیشزمینهای فعال از دید خارج میشود و به مورد بلافاصله زیر آن اجازه میدهد به موقعیت پیشزمینه برجسته بلغزد.
- پساز پایان اشاره کاربر، عناصر همیشه بااستفاده از پویانمایی فنری تخصصی بهصورت جهشی به موقعیت پیشزمینه پویانمایی میشوند.
- موارد در امتداد محور z قرار میگیرند و موارد دورتر در فهرست در پشت مورد اصلی قرار میگیرند.
مدیریت تمرکز
VerticalStack از سیستم کانونی تخصصی استفاده میکند تا مطمئن شود عنصر پیشزمینهای فعلی همیشه هدف اصلی تعامل کاربر است:
- تمرکز اولیه و ورود مجدد: تمرکز اولیه و ورود مجدد تمرکز به مورد بالای پشته فعلی میرود.
- اعلان فوکوس خودکار: با انتقال موارد، دسته برای مورد برتر درخواست فوکوس میکند.
- ردیابی فوکوس: هر مورد از
onFocusChangedبرای اطلاع دادن بهStackStateدرباره وضعیت فوکوس خود استفاده میکند.
مثال: ایجاد پشته عمودی
کد زیر پشتهای عمودی با چند عنصر کارت ایجاد میکند:
@Composable fun VerticalStackSample() { VerticalStack { item { Card { Text("Top Card") } } item { Card { Text("Second Card") } } item { Card { Text("Third Card") } } } }