Casa > P > Por Que O Cursor Às Vezes Pula Para Uma Posição Aleatória Ao Digitar Um Texto No Android?

Por que o cursor às vezes pula para uma posição aleatória ao digitar um texto no Android?

Este é um dos meus principais aborrecimentos com o Android. Eu passei algum tempo depurando isso quando estava trabalhando no editor de texto do Quora para Android.

Eu acho que o cerne do problema é que a API do teclado / ponte de conteúdo não está escrita muito bem. Teclados no Android são muitas vezes muito "inteligentes" e fazem substituições de palavras e sugestões para você. Para suportar isso, a interface permite ao teclado mudar a selecção para posições arbitrárias de modo a fazer substituições de palavras e tal.

Um problema com o design que notei é que a comunicação é uma combinação de posições absolutas e posições relativas ao cursor (ver InputConnection | Desenvolvedores Android). Por causa disso, o teclado precisa ter sua própria idéia de como é todo o texto para que possa enviar posições absolutas para a interface. Isto é complicado de manter em sincronia e leva a bugs como o 592162 - Alterar o conteúdo conteúdo conteúdo com o JS durante um evento chave causa problemas de composição no Android.

Comparado com o iOS, digitando no Android muitas vezes parece atrasado ou lento. Eu não tenho certeza qual é a causa disso, mas eu acho que isso piora o problema acima, já que as condições de corrida são ainda mais prováveis.

A implementação iOS de teclados personalizados (App Extension Programming Guide: Custom Keyboard) só usa as posições relativas do cursor, o que parece ser uma idéia muito melhor. iOS lida com a posição do cursor, garantindo que você nunca acabe neste tipo de situação.

De Fryd Bomstad

Como é que o protector de ecrã se cola ao telefone? :: Um iPhone 12 precisa mesmo de um protector de ecrã se o vidro for tão forte?