تمام کامپوننتهای Jetpack Compose Glimmer به گونهای طراحی شدهاند که با روشهای ورودی استاندارد، مانند ضربه زدن یا کشیدن انگشت روی صفحه لمسی عینک هوش مصنوعی، کار کنند و در عین حال پذیرای دستورات ورودی سطح پایینتری باشند که مخصوص سختافزار عینک هوش مصنوعی هستند. کامپوننتهای Jetpack Compose Glimmer به طور خودکار رویدادهای ورودی لازم را مدیریت میکنند. برای کامپوننتهای سفارشی، میتوانید از APIهای Compose موجود مانند Modifier.draggable یا Modifier.scrollable برای پیادهسازی رفتارهای تعاملی خاص استفاده کنید.
در عینکهای هوش مصنوعی با نمایشگر، ورودی اشارهگر میتواند بر فوکوس تأثیر بگذارد:
- ضربه بزنید : تعامل مستقیم برای فعال کردن عنصر. وقتی کاربر با یک عنصر تعامل میکند، فوکوس به آن عنصر منتقل میشود.
- کشیدن انگشت : برای پیمایش و اسکرول استفاده میشود. حرکات کشیدن انگشت که مدیریت نشدهاند، بهطور خودکار به حرکات فوکوس تبدیل میشوند و پیمایش یکپارچه رابط کاربری را بدون نیاز به ورودی مستقیم اشارهگر امکانپذیر میکنند.
با استفاده از یکی از ویژگیهای Jetpack Compose، سیستم میتواند هنگام بارگذاری صفحه، فوکوس اولیه را به طور خودکار روی اولین عنصر قابل فوکوس قرار دهد، که اغلب مورد سمت چپ بالای صفحه است. این ویژگی هنوز در حال توسعه است و به طور پیشفرض فعال نیست. برای فعال کردن این ویژگی، پرچم isInitialFocusOnFocusableAvailable را در متد onCreate() اکتیویتی خود روی true تنظیم کنید.
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()
cancelFocusChange()
}
}
.focusGroup()
ظروف پیمایشی
برای یک تجربه کاربری بهینه، بخشهای قابل اسکرول مانند لیستها باید تنها اجزای اصلی صفحه باشند. از قرار دادن یک لیست قابل اسکرول مستقیماً در بالا یا پایین سایر عناصر تعاملی، مانند دکمهها، خودداری کنید تا از سردرگمی در ناوبری جلوگیری شود و حرکت فوکوس روان و قابل پیشبینی ایجاد شود.
حالتهای پیشفرض فوکوس
Jetpack Compose Glimmer حالتهای فوکوس پیشفرض را در اجزای قابل تعامل خود، از جمله سطوح، کارتها و موارد لیست، پیادهسازی میکند و بازخورد بصری ثابت و واضحی را در طول تعامل کاربر ایجاد میکند.

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