تمام اجزای Jetpack Compose Glimmer به گونهای طراحی شدهاند که با روشهای ورودی استاندارد، مانند ضربه زدن یا کشیدن انگشت روی صفحه لمسی عینک، کار کنند و در عین حال پذیرای دستورات ورودی سطح پایینتری باشند که مختص سختافزار روی عینکهای نمایشی هستند. اجزای Jetpack Compose Glimmer به طور خودکار رویدادهای ورودی لازم را مدیریت میکنند.
برای اقدامات استاندارد مانند اسکرول و کشیدن، از کامپوننتهای Jetpack Compose Glimmer برای ایجاد یک تجربه سازگار استفاده کنید. با این حال، برای کامپوننتهای سفارشی یا رفتارهای تعاملی سفارشی، میتوانید از APIهای Compose موجود مانند Modifier.draggable یا Modifier.scrollable استفاده کنید.
ورودی اشارهگر و فوکوس
در عینکهای نمایشگر، ورودی اشارهگر میتواند بر فوکوس تأثیر بگذارد:
- ضربه بزنید : تعامل مستقیم برای فعال کردن عنصر. وقتی کاربر با یک عنصر تعامل میکند، فوکوس به آن عنصر منتقل میشود.
- کشیدن انگشت : برای پیمایش و اسکرول استفاده میشود. حرکات کشیدن انگشت که مدیریت نشدهاند، بهطور خودکار به حرکات فوکوس تبدیل میشوند و پیمایش یکپارچه رابط کاربری را بدون نیاز به ورودی مستقیم اشارهگر امکانپذیر میکنند.
با استفاده از یکی از ویژگیهای Jetpack Compose، سیستم میتواند هنگام بارگذاری صفحه، فوکوس اولیه را به طور خودکار روی اولین عنصر قابل فوکوس قرار دهد، که اغلب مورد سمت چپ بالای صفحه است.
این ویژگی هنوز در دست توسعه است و به طور پیشفرض فعال نیست. برای فعال کردن این ویژگی، پرچم isInitialFocusOnFocusableAvailable را در متد onCreate() اکتیویتی خود روی true تنظیم کنید.
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.ComposeUiFlags
class GlassesActivityExample : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@OptIn(ExperimentalComposeUiApi::class)
ComposeUiFlags.isInitialFocusOnFocusableAvailable = true
super.onCreate(savedInstanceState)
}
}
رفتار و ترتیب ناوبری
تمرکز بر حرکت و ترتیب تغییرات هنگام پیمایش کاربر در اپلیکیشن شما.
حرکت تمرکزی
در یک کانتینر قابل اسکرول، فوکوس با کشیدن انگشت روی صفحه لمسی به طور مداوم حرکت میکند. برای عناصر مجزا مانند یک ردیف دکمه، با هر کشیدن انگشت، فوکوس روی یک عنصر در یک زمان حرکت میکند.
ترتیب فوکوس
درست مانند Jetpack Compose، Jetpack Compose Glimmer از جستجوی فوکوس یک بعدی استفاده میکند. برای کسب اطلاعات بیشتر در مورد ترتیب پیمایش فوکوس، به تغییر ترتیب پیمایش فوکوس مراجعه کنید.
برای تغییر آیتمی که در ابتدا مورد تمرکز قرار گرفته است، میتوانید یک Modifier.focusGroup() سطح بالا اضافه کنید و یک onEnter focusProperty سفارشی مشخص کنید:
Modifier.focusProperties {
onEnter = {
initialFocus.requestFocus()
// Prevent focus from exiting the group
cancelFocusChange()
}
}
.focusGroup()
ظروف پیمایشی
برای یک تجربه کاربری بهینه، بخشهای قابل اسکرول مانند لیستها باید تنها اجزای اصلی صفحه باشند. از قرار دادن یک لیست قابل اسکرول مستقیماً در بالا یا پایین سایر عناصر تعاملی، مانند دکمهها، خودداری کنید تا از سردرگمی در ناوبری جلوگیری شود و حرکت فوکوس روان و قابل پیشبینی ایجاد شود.
حالتهای پیشفرض فوکوس
Jetpack Compose Glimmer حالتهای فوکوس پیشفرض را در اجزای قابل تعامل خود، از جمله سطوح، کارتها و موارد لیست، پیادهسازی میکند و بازخورد بصری ثابت و واضحی را در طول تعامل کاربر ایجاد میکند.

پیشفرض : رنگ پسزمینه دکمه از
GlimmerTheme.colors.surfaceگرفته شده است، محتوای اصلی آن، رنگ محتوای آن سطح را محاسبه میکند.متمرکز : عرض حاشیه برای ایجاد تمرکز افزایش مییابد.
متمرکز + فشرده : پسزمینه با افزایش شفافیت روی
GlimmerTheme.colors.surfaceتنظیم میشود تا حالت انتخابشدهاش را نشان دهد.