web-dev-qa-db-fra.com

Espacement des lettres sur React Native - Android

J'utilise React Native 0.29 avec un émulateur Android (API de niveau 23). J'essaie d'obtenir letterSpacing sur Text composante. Mais cela ne semble pas fonctionner sur Android. La documentation officielle dit que cela ne fonctionne que sur iOS. Y at-il une solution de contournement de ce problème?

11
Provash Shoumma

Le manque d'espacement des lettres sur Android peut être "résolu" en ajoutant un ou plusieurs espaces entre chaque caractère. J'ai trouvé que le code unicode HAIR_SPACE U+200A donnait les meilleurs résultats, mais vous devrez peut-être expérimenter pour trouver celui qui convient le mieux à votre police. Par exemple, 2 espaces pour les cheveux ou un U+2009 THIN SPACE.

function applyLetterSpacing(string, count = 1) { return string.split('').join('\u200A'.repeat(count));}

Cela fonctionne probablement mieux pour les en-têtes et les étiquettes de menu.

Espaces Unicode: https://www.cs.tut.fi/~jkorpela/chars/spaces.html

24
Hanse

On dirait qu'à partir de React Native 0.30 letterSpacing est uniquement sur iOS. Vous pouvez toujours ajouter ceci et émettre une demande de tirage :)

Une autre option pourrait être de pirater une fonction qui prend une chaîne et ajoute un espacement autour de chaque lettre. (ce serait un bidouillage cependant!)

4
John Veldboom

Mettez à jour React Native avec au moins la version 0.55 pour que l'espacement des lettres sous Android fonctionne.

0
Christopher Regner