QNA > P > Perché Il Cursore A Volte Salta In Una Posizione Casuale Quando Si Digita Un Testo In Android?

Perché il cursore a volte salta in una posizione casuale quando si digita un testo in Android?

Questo è uno dei miei principali fastidi con Android. Ho passato un po' di tempo a fare il debug quando stavo lavorando all'editor di testo di Quora per Android.

Penso che il nocciolo del problema sia che l'API della tastiera/ponte di contenuto non è scritta molto bene. Le tastiere su Android sono spesso molto "intelligenti" e fanno sostituzioni di parole e suggerimenti per voi. Per supportare ciò, l'interfaccia permette alla tastiera di cambiare la selezione in posizioni arbitrarie per fare sostituzioni di parole e così via.

Un problema con il design che ho notato è che la comunicazione è una combinazione di posizioni assolute e posizioni relative al cursore (vedi InputConnection | Android Developers). A causa di questo, la tastiera ha bisogno della propria idea di come sia l'intero testo in modo da poter inviare posizioni assolute all'interfaccia. Questo è complicato da tenere in sincronia e porta a bug come 592162 - La modifica del contenuto contenteditable con JS durante un evento chiave causa problemi di stato di composizione su Android.

Rispetto a iOS, la digitazione su Android sembra spesso laggosa o lenta. Non sono sicuro di quale sia la causa, ma penso che questo peggiori il problema di cui sopra, poiché le condizioni di gara sono ancora più probabili.

L'implementazione iOS delle tastiere personalizzate (App Extension Programming Guide: Custom Keyboard) usa solo posizioni relative al cursore, che sembra un'idea molto migliore. iOS gestisce la posizione del cursore, assicurando che non ci si ritrovi mai in questo tipo di situazione.

Di Evoy

Qual è il miglior risparmiatore di batteria per un dispositivo radicato? :: Un iPhone 12 ha anche bisogno di una protezione per lo schermo se il vetro è così forte?
Link utili