Я использую React Native 0.29 с эмулятором Android (уровень API 23). Я пытаюсь достичь letterSpacing
на Text
компоненте. Но вроде не работает на Android. Официальная документация говорит, что работает только в iOS. Есть ли способ решения этой проблемы?
Межбуквенный интервал в React Native - Android
Ответы (4)
Отсутствие межбуквенного интервала в Android можно «решить», добавив один или несколько пробелов между каждым символом. Я обнаружил, что юникод HAIR_SPACE U+200A
дает наилучшие результаты, но вам, возможно, придется поэкспериментировать, чтобы найти то, что лучше всего подходит для вашего шрифта. Например, 2 пробела или один U+2009 THIN SPACE
.
function applyLetterSpacing(string, count = 1) {
return string.split('').join('\u200A'.repeat(count));
}
Вероятно, это лучше всего подходит для заголовков и меток меню.
Пробелы Юникода: https://www.cs.tut.fi/~jkorpela/chars/spaces.html
Похоже, что в React Native 0.30 letterSpacing также есть только для iOS . Вы всегда можете добавить это и сделать запрос на перенос :)
Другой вариант - создать функцию, которая берет строку и добавляет интервал вокруг каждой буквы. (хотя это было бы взломом!)
вы можете указать пробел между буквами, используя свойства по умолчанию компонента Text.
<Text style={{ fontSize: 18, letterSpacing: 3, color: '#FFFFFF' }}>Stack Overflow</Text>
Обновите React Native как минимум до версии 0.55, чтобы межбуквенный интервал на Android работал.