Spec-Zone.ru › React Native

StyleSheet

StyleSheet — это абстракция, аналогичная CSS StyleSheets

Рекомендации по качеству кода:

  • Перемещая стили за пределы функции отрисовки, вы делаете код более понятным.
  • Именование стилей — хороший способ добавить смысл низкоуровневым компонентам в функции отрисовки.

Справочник

Методы

compose()

static compose(style1: object, style2: object): object | array<object>

Объединяет два стиля таким образом, что style2 переопределяет любые стили в style1. Если любой из стилей ложный, другой возвращается без выделения массива, что экономит выделение памяти и сохраняет равенство ссылок для проверок PureComponent.

create()

static create(obj: object): object

Создаёт ссылку на стиль StyleSheet из заданного объекта.

flatten()

static flatten(style: array<object>): object

Сглаживает массив объектов стиля в один агрегированный объект стиля. В качестве альтернативы, этот метод может использоваться для поиска идентификаторов, возвращаемых StyleSheet.register.

ПРИМЕЧАНИЕ: Будьте осторожны, так как злоупотребление этим может нанести ущерб оптимизациям. Идентификаторы позволяют оптимизировать работу через мост и память в целом. Прямое обращение к объектам стиля лишит вас этих оптимизаций.

Этот метод в своей работе использует StyleSheetRegistry.getStyleByID(style) для разрешения объектов стиля, представленных идентификаторами. Таким образом, массив объектов стиля (экземпляры StyleSheet.create()) индивидуально разрешается до соответствующих объектов, объединяется в один и затем возвращается. Это также объясняет альтернативное использование.

setStyleAttributePreprocessor()

ПРЕДУПРЕЖДЕНИЕ: ЭКСПЕРИМЕНТАЛЬНО. Вероятно, произойдет много изменений, и о них не будет надёжно сообщаться. Вся эта штука может быть удалена, кто знает? Используйте на свой страх и риск.

static setStyleAttributePreprocessor(property: string, process: (propValue: any) => any)

Устанавливает функцию для предварительной обработки значения свойства стиля. Это используется внутри для обработки значений цвета и преобразования. Вы не должны использовать это, если вы не понимаете, что делаете, и не испробовали другие варианты.

Свойства

absoluteFill

Очень распространённый шаблон — создание наложений с позиционированием absolute и нулевым позиционированием (position: 'absolute', left: 0, right: 0, top: 0, bottom: 0), поэтому absoluteFill может быть использован для удобства и сокращения дублирования этих повторяющихся стилей. Если нужно, absoluteFill может быть использован для создания настраиваемого элемента в StyleSheet, например:

absoluteFillObject

Иногда вам может понадобиться absoluteFill, но с несколькими изменениями — absoluteFillObject может быть использован для создания настраиваемого элемента в StyleSheet, например:

hairlineWidth

Это определяется как ширина тонкой линии на платформе. Она может быть использована в качестве толщины рамки или раздела между двумя элементами. Пример:

Эта константа всегда будет целым числом пикселей (чтобы линия, определённая ею, выглядела чёткой) и будет пытаться соответствовать стандартной ширине тонкой линии на базовой платформе. Однако не следует полагаться на то, что она будет постоянной, потому что на разных платформах и с разной плотностью экрана её значение может вычисляться по-разному.

Линия с шириной hairline может быть невидимой, если ваш симулятор масштабирован.

absoluteFill против absoluteFillObject

В настоящее время нет различий между использованием absoluteFill и absoluteFillObject.

© 2022 Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://reactnative.dev/docs/stylesheet

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API