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

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

استخدام 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() بالحاويات الرئيسية لإعادة التركيز تلقائيًا إلى العنصر الثانوي الذي تم التركيز عليه آخر مرة. لمزيد من المعلومات، يُرجى الاطّلاع على دليل استعادة التركيز.