Metin alanlarına odaklanma

Kullanıcılar donanım klavyesi, D-pad veya döner multimedya kontrol düğmesi ile Compose kullanıcı arayüzünde gezinirken metin alanları, diğer odak hedefleriyle birlikte odak gezinmesine katılır.

Varsayılan olarak odak, metin alanlarında takılı kalmaz. Kullanıcıların bir metin alanından çıkmasına izin vermek için özel tuş etkinliği işleyicileri (onKeyEvent veya onPreviewKeyEvent) eklemeniz gerekmez. Kullanıcılar, Üst Karakter+Sekme tuşlarını kullanarak veya yön tuşlarıyla metin sınırlarını geçerek her zaman çıkabilir.

KeyboardOptions, donanım klavyesiyle gezinmeyle uyumlu, sezgisel bir yazılım klavyesi işlemi sağlamak için kullanılabilir. Örneğin, ImeAction.Next odağı bir sonraki odak hedefine taşır.

Tek boyutlu odak geçişi

Tek boyutlu odak geçişinde Sekme tuşunun davranışı, metin alanında yapılandırılan lineLimits değerine bağlıdır:

  • Tek satırlı metin alanları (TextFieldLineLimits.SingleLine) Sekme tuşuna basıldığında odak, kullanıcı arayüzündeki bir sonraki odak hedefine taşınır.
  • Çok satırlı metin alanları (TextFieldLineLimits.MultiLine() veya varsayılan): Sekme tuşuna basıldığında odağı taşımak yerine metin arabelleğine bir sekme karakteri (\t) eklenir.
  • Ters gezinme (Üst Karakter+Sekme): Üst Karakter+Sekme tuşlarına basıldığında, hem tek satırlı hem de çok satırlı metin alanlarında odak, koşulsuz olarak önceki odak hedefine geri taşınır.

// Single-line text field: Tab advances focus to the next focus target
BasicTextField(
    state = singleLineState,
    lineLimits = TextFieldLineLimits.SingleLine,
    modifier = Modifier.fillMaxWidth()
)

// Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target
BasicTextField(
    state = multiLineState,
    lineLimits = TextFieldLineLimits.MultiLine(),
    modifier = Modifier.fillMaxWidth()
)

İki boyutlu odak geçişi

Ok tuşları (veya d-pad) kullanıldığında yön tuşları önce metin imlecini (giriş imleci) metin alanında hareket ettirir:

  • Dikey gezinme (yukarı / aşağı): Down tuşuna basıldığında imleç satır satır aşağı taşınır. İmleç son satıra ulaştığında Aşağı tuşuna tekrar basıldığında odak, metin alanının altındaki bitişik odak hedefine aktarılır. İlk satırda Yukarı tuşuna basıldığında odak, önceki odak hedefine taşınır.
  • Yatay gezinme (sol / sağ / başlangıç / bitiş): Yatay ok tuşlarına basıldığında imleç karakterler arasında hareket eder. İmleç, metin arabelleğinin başına veya sonuna ulaştığında yön tuşuna tekrar basıldığında odak, o yöndeki bitişik odak hedefine aktarılır.

Android TV'deki metin alanları

Android TV'de fiziksel klavye olmadan d-pad kumandaları kullanma:

  1. Odak bir metin alanına taşındığında dokunmatik yazılım klavyesi otomatik olarak gösterilir.
  2. Kullanıcı, d-pad'i kullanarak yazılım klavyesinin tuşları arasında gezinir.
  3. Geri düğmesine basıldığında, metin alanındaki odak korunurken yazılım klavyesi kapatılır.
  4. Yazılım klavyesi kapatıldıktan sonra, D-pad yön tuşlarına basıldığında odak, ekrandaki komşu odak hedeflerine taşınır.
  5. Geri düğmesine ikinci kez basıldığında standart sistem geri gezinme işlemi tetiklenir.