J'ai un EditText
je veux l'agrandir et faire défiler avec setScaleX
/setScaleY
et il fonctionne très bien - le texte est en cours d'édition dans la bonne position.
Mais quand j'essaie de sélectionner du texte - il attire les poignées de sélection pour des postes comme lorsque le texte n'est pas à l'échelle. Il est connu de bug.
On s'attend à ce résultat, parce que les poignées sont établis sur la fenêtre pop-up liées à la taille d'affichage.
Toutes les actions sur android.widget.Editor
sont destinés à son champ private TextView mTextView;
. Et si nous allons définir propres de l'éditeur par la réflexion, je ne sais pas quoi faire avec les méthodes privées, qui ne sont pas substituables.
Également des poignées de sélection sont établis sur la fenêtre Popup android.widget.Editor.HandleView#HandleView
coordonnées calculées dans la Mise en page et j'ai besoin seulement d' DynamicLayout
, mais il ont pas de différence pour nos fins.
Méthode android.text.Layout#getPrimaryHorizontal(int, boolean)
est public et sa valeur peut être multipliée à l'échelle, mais pour cela nous avons besoin de les étendre et de les remplacer méthode privée android.widget.TextView#makeSingleLayout
, mais c'est un problème.
Nous avons également pu mettre en œuvre notre propre Mise en page avec tout le nécessaire remplacé méthodes, mais toutes les méthodes que l'on peut remplacer sont marqués avec @hide
d'annotation et il n'y a pas de champs qui peuvent être accessibles avec un de réflexion.
Capture d'écran suivante s'affiche pour les mises à l'échelle sur 2x
PS: le contexte de la tâche est un Éditeur de zoom par pincement modifier le texte. Nouvelle disposition de texte avec calcul de la taille n'est pas une solution. Parce que j'ai besoin de Document Portable sur chaque taille d'écran.