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 gezinme işlemine katılır.

Varsayılan olarak odak, metin alanlarında tutulmaz. Kullanıcıların bir metin alanından ayrılmasına izin vermek için özel anahtar etkinlik 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ı aşarak her zaman çıkabilir.

KeyboardOptions, donanım klavyesiyle gezinmeyle koordineli, sezgisel bir yazılım klavyesi işlemi sağlamak için kullanılabilir. ImeAction.Next, odağı 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 öğesine bağlıdır:

  • Tek satırlık 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 odak taşınmak yerine metin arabelleğine bir sekme karakteri (\t) eklenir.
  • Tersine gezinme (Üst Karakter+Sekme): Üst Karakter+Sekme tuşlarına basıldığında odak koşulsuz olarak tek satırlı ve çok satırlı metin alanlarında ö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ını (veya D-pad) kullanırken yön tuşları önce metin alanındaki metin imlecini (şapka) hareket ettirir:

  • Dikey gezinme (yukarı / aşağı): Down tuşuna basıldığında imleç satır satır aşağı hareket eder. İ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ıç / son): 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 klavyesi olmayan D-pad kumandaları kullanırken:

  1. Odağı bir metin alanına taşıdığınızda 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 korunarak 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 gezinmesi tetiklenir.