هدف‌های کانونی

هدف تمرکز عنصر میانای کاربری است که تمرکز صفحه‌کلید می‌تواند به آن منتقل شود. کاربران می‌توانند تمرکز صفحه‌کلید را با کلید جهش یا کلیدهای جهت‌دار (پیکان) جابه‌جا کنند:

  • کلید جهش یا کلید تبدیل + جهش — تمرکز را در ترتیب ظاهری یک‌بعدی به جلو یا عقب می‌برد.
  • کلیدهای جهت‌دار — تمرکز را به‌صورت دوبعدی حرکت دهید (بالا، پایین، چپ، و راست).

عناصر تعاملی میانای کاربر به‌طور پیش‌فرض هدف‌های تمرکز هستند

عنصر تعاملی به‌طور پیش‌فرض هدف تمرکز است. به‌عبارت دیگر، عنصر واسط کاربر درصورتی هدف تمرکز است که کاربران بتوانند روی آن تک‌ضرب بزنند یا کلیک کنند.

برای مثال، سه عنصر کارت را درنظر بگیرید. اگر کارت‌های اول و سوم تعاملی باشند (یک onClick پاسخ‌به‌تماس تعریف کنند)، اما کارت دوم صرفاً اطلاعاتی باشد (هیچ مدیریت کلیکی نداشته باشد)، فشار دادن کلید جدول در کارت اول از کارت دوم رد می‌شود و مستقیماً به کارت سوم می‌رود.

Card(onClick = { /* First card action */ }) {
    Text("Card 1 (Interactive)")
}
Card {
    Text("Card 2 (Informational - not focusable)")
}
Card(onClick = { /* Third card action */ }) {
    Text("Card 3 (Interactive)")
}

با ارائه پارامتر onClick می‌توانید کارت دوم را به هدف کانونی تبدیل کنید:

Card(onClick = { /* Second card action */ }) {
    Text("Card 2 (Now interactive and focusable)")
}

اصلاح‌گر clickable همچنین عناصر واسط کاربر سفارشی یا استاندارد را به هدف‌های کانونی تبدیل می‌کند. برای جزئیات، به تک‌ضرب و فشار مراجعه کنید.

Box(
    modifier = Modifier
        .clickable { /* Handle click */ }
) {
    Text("Custom interactive element")
}

تبدیل عنصر ترکیبی به هدف تمرکز غیرقابل‌کلیک

اصلاح‌گر focusable بدون نیاز به معناشناسی کلیک، عنصر ترکیبی را به هدف کانونی تبدیل می‌کند. کاربران می‌توانند تمرکز صفحه‌کلید را به عنصر ترکیبی اصلاح‌شده منتقل کنند (برای مثال، برای بازرسی محتوا با ابزارهای دسترس‌پذیری یا پیمایش در نمای درگاه)، اما فشار دادن کلیدهای Enter یا Space کنش کلیک را راه‌اندازی نمی‌کند:

Box(
    modifier = Modifier
        .focusable()
) {
    Text("Non-clickable focus target")
}

جعل کردن عنصر ترکیبی غیرقابل‌تمرکز

در برخی‌از سناریوها، ممکن است بخواهید عنصر تعاملی را از پیمایش با صفحه‌کلید کنار بگذارید بدون اینکه رویدادهای اشاره‌گر یا کلیک را غیرفعال کنید. با تنظیم canFocus = false در داخل اصلاح‌گر focusProperties می‌توانید از دریافت تمرکز توسط عنصر جلوگیری کنید:

var checked by remember { mutableStateOf(false) }

Switch(
    checked = checked,
    onCheckedChange = { checked = it },
    // Prevent component from being focused
    modifier = Modifier
        .focusProperties { canFocus = false }
)