Как реализовать семейство шрифтов в React Native 0.60+ - PullRequest
0 голосов
/ 24 сентября 2019

Проблема

Я искал в Интернете руководство по использованию семейства нестандартных шрифтов в React Native (0.60+, нет Expo).В настоящее время все руководства и ответы кажутся устаревшими, неправильными или неполными.В частности, как реализовать весь диапазон веса и стилей шрифта в пользовательском шрифте (правильно используя свойства fontWeight и fontStyle)?

Фон

Я ожидаю, что естьрешение, которое правильно использует реквизиты в стиле fontWeight и fontStyle вместе с fontFamily.Однако решения, которые я нашел, этого не делают.Некоторые из них:

  1. Это решение показывает несколько типов шрифтов.Однако он изменяется между жирным шрифтом и обычным шрифтом в стиле fontFamily (изменяя семейство между "Montserrat-Regular" & "Montserrat-Bold")
  2. Это руководство и StackOverflow ответ обе схемы только ссылаются на базовое имя семейства шрифтов при его использовании (например, fontFamily: "Montserrat"), а затем выбирают желаемый вес и стиль с помощью fontWeight и fontStyle.Тестирование с использованием нескольких шрифтов от шрифтов Google (как .ttc и .ttf) не дает результатов (по крайней мере, в Android).Оба решения много лет назад используют rnpm, что заставляет меня думать, что они устарели.

До сих пор я не нашел современного решения, которое работает так, как ожидалось.Возможно, это невозможно, но это не имеет смысла, учитывая систему шрифтов, которая установлена.

То, что я ожидаю, произойдет

Учитывая стиль реквизита:

 {
    fontStyle: "italic",
    fontWeight: "400",
    fontFamily: "Montserrat"
  }

Я получил бы текст шрифтом Montserrat, выделенный курсивом, весом 400. Никаких попыток, которые я пробовал до сих пор, сделать это.Как я могу?

То, что я пробовал до сих пор:

  • Используя реактив-native.config.js как это:
      project: {
          ios: {},
          android: {},
      },
      assets: ['./assets/fonts']
    }
    
    и react-native link, я импортировалфайлы шрифтов как набор .ttf и объединенный .ttc, не повезло.С .ttf мне пришлось изменить имя fontFamily на имя файла, я не мог использовать вес и стиль..Ttc, похоже, не работает вообще.
  • (специфично для Android) Я пытался создать файл montserrat.xml в android/app/src/main/res/font согласно спецификации на веб-сайте разработчиков Android , кажется, ничего не производит.

Я зашел в тупик с этим.Я не совсем понимаю, почему возникают проблемы с реквизитами в стиле fontWeight и fontStyle, если они не могут быть использованы вне стандартных шрифтов.Любая помощь с этим приветствуется, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...