تتيح القوائم للمستخدمين اختيار عنصر من مجموعة خيارات على أجهزة Wear OS.
تستخدم العديد من أجهزة Wear OS شاشات دائرية، ما يجعل من الصعب رؤية
عناصر القائمة التي تظهر بالقرب من أعلى الشاشة وأسفلها. لهذا السبب، يتضمّن تطبيق
Compose for Wear OS إصدارًا من فئة LazyColumn
يُسمى
TransformingLazyColumn
، والذي يتيح تغيير حجم الرسوم المتحركة وتحويلها.
عندما تنتقل العناصر إلى الحواف، تصبح أصغر حجمًا وتتلاشى.
لإضافة تأثير تكبير/تصغير وتأثير تمرير، استخدِم Modifier.transformedHeight
للسماح لميزة "الإنشاء" بحساب تغيير الارتفاع أثناء تمرير العنصر على
الشاشة وtransformation = SurfaceTransformation(transformationSpec)
لتطبيق
التأثيرات المرئية، بما في ذلك تصغير العنصر بصريًا ليتناسب مع العنصر السابق.
توضِّح الصورة المتحركة التالية كيفية تغيُّر حجم العنصر وشفافيته أثناء تنقله على الشاشة:
يوضّح المقتطف التالي من الرمز البرمجي كيفية إنشاء قائمة باستخدام تنسيقTransformingLazyColumn
لإنشاء محتوى
يبدو رائعًا على مجموعة متنوعة من أحجام شاشات Wear OS. على سبيل المثال، في المثال التالي على الرمز البرمجي، ستتم إضافة الحشو اللازم إلى العنصرين الأول والثاني
في القائمة اللذَين تم ضبطهما في contentPadding
من
TransformingLazyColumn
. لكي يظهر مؤشر التمرير،
عليك مشاركة الرمز columnState
بين ScreenScaffold
وTransformingLazyColumn
:
val columnState = rememberTransformingLazyColumnState() val contentPadding = rememberResponsiveColumnPadding( first = ColumnItemType.ListHeader, last = ColumnItemType.Button, ) val transformationSpec = rememberTransformationSpec() ScreenScaffold( scrollState = columnState, contentPadding = contentPadding ) { contentPadding -> TransformingLazyColumn( state = columnState, contentPadding = contentPadding ) { item { ListHeader( modifier = Modifier.fillMaxWidth().transformedHeight(this, transformationSpec), transformation = SurfaceTransformation(transformationSpec) ) { Text(text = "Header") } } // ... other items item { Button( modifier = Modifier.fillMaxWidth().transformedHeight(this, transformationSpec), transformation = SurfaceTransformation(transformationSpec), onClick = { /* ... */ }, icon = { Icon( imageVector = Icons.Default.Build, contentDescription = "build", ) }, ) { Text( text = "Build", maxLines = 1, overflow = TextOverflow.Ellipsis, ) } } } }
إضافة تأثير "التصغير السريع"
إذا كنت بحاجة إلى إضافة سلوك "الالتقاط والرمي"، نقترح استخدامScalingLazyColumn
. يساعد هذا التأثير المستخدمين في التنقّل بدقة أكبر
في العناصر ضمن قائمة معيّنة، كما يساعدهم في التنقّل بسرعة أكبر في
قائمة طويلة.
لإضافة هذا التأثير إلى إصدار Horologist من ScalingLazyColumn
،
اضبط المَعلمة rotaryMode
في columnState
على
RotaryWithSnap
، كما هو موضّح في المقتطف التالي من الرمز البرمجي:
val columnState = rememberResponsiveColumnState( // ... // ... rotaryMode = ScalingLazyColumnState.RotaryMode.Snap ) ScreenScaffold(scrollState = columnState) { ScalingLazyColumn( columnState = columnState ) { // ... // ... } }
أفلام مُقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون لغة JavaScript غير مفعّلة.
- الدرس التطبيقي حول تطبيق Compose لنظام التشغيل Wear OS
- القوائم والشبكات
- استخدام "طرق العرض" في ميزة "الإنشاء"