طلب التركيز آليًا

في بعض مسارات المستخدم، يحتاج تطبيقك إلى نقل التركيز بشكل صريح إلى مكوّن معيّن. على سبيل المثال، عندما ينقر المستخدم على زر "بحث"، قد ترغب في وضع التركيز تلقائيًا في حقل إدخال البحث.

استخدام FocusRequester

لطلب التركيز بشكل صريح:

  1. أنشِئ مثيل FocusRequester وتذكَّره: val focusRequester = remember { FocusRequester() }.
  2. أرفِق FocusRequester بالدالة المركّبة المستهدَفة باستخدام المُعدِّل focusRequester.
  3. يمكنك استدعاء requestFocus() داخل دالة رد اتصال لحدث (مثل onClick) أو نطاق دالة كوروتين.

val focusRequester = remember { FocusRequester() }
var text by remember { mutableStateOf("") }

TextField(
    value = text,
    onValueChange = { text = it },
    modifier = Modifier.focusRequester(focusRequester)
)

val focusRequester = remember { FocusRequester() }
var text by remember { mutableStateOf("") }

TextField(
    value = text,
    onValueChange = { text = it },
    modifier = Modifier.focusRequester(focusRequester)
)

Button(onClick = { focusRequester.requestFocus() }) {
    Text("Request focus on TextField")
}

ضبط التركيز الأولي على الشاشة

لتركيز الانتباه على مكوّن معيّن عند ظهور الشاشة لأول مرة، يمكنك تفعيل requestFocus() داخل LaunchedEffect(Unit):

LaunchedEffect(Unit) {
    focusRequester.requestFocus()
}

عند التنقّل بين الحاويات أو العودة من شاشة أخرى، يمكنك أيضًا إرفاق focusRestorer() بالحاويات الرئيسية لإعادة التركيز تلقائيًا إلى آخر عنصر فرعي تم التركيز عليه. لمزيد من المعلومات، يُرجى الاطّلاع على دليل استعادة التركيز.