View¶
Самый фундаментальный компонент для создания пользовательского интерфейса, View — это контейнер, который поддерживает компоновку с помощью элементов управления flexbox, style, some touch handling и accessibility. View отображает непосредственно эквивалент нативного представления на любой платформе, на которой работает React Native, будь то UIView, div, android.view и т. д.
Представление View предназначено для вложения в другие представления и может иметь от 0 до многих дочерних элементов любого типа.
Этот пример создает View, который оборачивает два поля с цветом и текстовый компонент в строку с подложкой.
View разработаны для использования с StyleSheet для ясности и производительности, хотя встроенные стили также поддерживаются.
Синтетические сенсорные события¶
Для пропсов ответчика View (например, onResponderMove), передаваемые им синтетические события касания имеют форму PressEvent.
Свойства¶
accessibilityActions¶
Действия доступности позволяют ассистивной технологии программно вызывать действия компонента. Свойство accessibilityActions должно содержать список объектов действий. Каждый объект действия должен содержать имя поля и метку.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
array |
accessibilityElementsHidden ¶
Значение, указывающее, являются ли элементы доступности, содержащиеся в этом элементе доступности, скрытыми. По умолчанию false.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
bool |
accessibilityHint¶
Подсказка доступности помогает пользователям понять, что произойдет, когда они выполнят действие над элементом доступности, если результат не ясен из метки доступности.
| Тип |
|---|
string |
accessibilityLanguage ¶
Значение, указывающее, какой язык должен использоваться программой чтения с экрана при взаимодействии пользователя с элементом. Оно должно соответствовать спецификации BCP 47.
Дополнительную информацию см. в iOS accessibilityLanguage doc.
| Тип |
|---|
string |
accessibilityIgnoresInvertColors ¶
Значение, указывающее, должно или не должно это представление быть инвертированным, если включена инверсия цвета. Значение true указывает, что представление не должно быть инвертировано, даже если инверсия цвета включена.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
bool |
accessibilityLabel¶
Переопределяет текст, который считывается программой чтения с экрана, когда пользователь взаимодействует с элементом. По умолчанию метка строится путем обхода всех дочерних элементов и накопления всех узлов Text, разделенных пробелом.
| Тип |
|---|
string |
accessibilityLiveRegion ¶
Указывает службам доступности, следует ли уведомлять пользователя об изменении данного представления. Работает только для Android API >= 19. Возможные значения:
none— Службы доступности не должны объявлять об изменениях в этом представлении.polite— Службы доступности должны объявлять об изменениях в этом представлении.assertive— Службы обеспечения доступности должны прерывать текущую речь, чтобы немедленно объявить об изменениях в этом представлении.
Для справки смотрите Android View docs.
| Тип |
|---|
enum('none', 'polite', 'assertive') |
accessibilityRole¶
accessibilityRole передает назначение компонента пользователю вспомогательной технологии.
accessibilityRole может быть одним из следующих:
none— Используется, когда элемент не имеет роли.button— Используется, когда элемент должен рассматриваться как кнопка.link— Используется, когда элемент должен рассматриваться как ссылка.search— Используется, когда элемент текстового поля должен также рассматриваться как поле поиска.image— Используется, когда элемент должен рассматриваться как изображение. Может сочетаться, например, с кнопкой или ссылкой.keyboardkey— Используется, когда элемент действует как клавиша клавиатуры.text— Используется, когда элемент должен рассматриваться как статичный текст, который не может изменяться.adjustable— Используется, когда элемент может быть "отрегулирован" (например, ползунок).imagebutton— Используется, когда элемент должен рассматриваться как кнопка, а также является изображением.header— Используется, когда элемент действует как заголовок для раздела содержимого (например, заголовок навигационной панели).summary— Используется, когда элемент может быть использован для предоставления краткой информации о текущих условиях в приложении при первом запуске.alert— Используется, когда элемент содержит важный текст, который должен быть представлен пользователю.checkbox— Используется, когда элемент представляет флажок, который может быть отмечен, снят или иметь смешанное состояние.combobox— Используется, когда элемент представляет собой комбинированное окно, которое позволяет пользователю выбирать из нескольких вариантов.menu— Используется, когда компонент представляет собой меню выбора.menubar— Используется, когда компонент представляет собой контейнер нескольких меню.menuitem— Используется для представления пункта в меню.progressbar— Используется для представления компонента, который показывает прогресс выполнения задачи.radio— Используется для представления радиокнопки.radiogroup— Используется для представления группы радиокнопок.scrollbar— Используется для представления полосы прокрутки.spinbutton— Используется для представления кнопки, открывающей список вариантов.switch— Используется для представления переключателя, который можно включать и выключать.tab— Используется для представления вкладки.tablist— Используется для представления списка вкладок.timer— Используется для представления таймера.toolbar— Используется для представления панели инструментов (контейнер кнопок действий или компонентов).grid— Используется сScrollView,VirtualizedList,FlatListилиSectionListдля представления сетки. Добавляет объявления о входе/выходе из сетки в androidGridView.
| Тип |
|---|
string |
accessibilityState¶
Описывает текущее состояние компонента для пользователя вспомогательной технологии.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
| object: |
accessibilityValue¶
Представляет текущее значение компонента. Это может быть текстовое описание значения компонента, а для компонентов, основанных на диапазоне, таких как ползунки и индикаторы выполнения, оно содержит информацию о диапазоне (минимальное, текущее и максимальное).
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
object: {min: number, max: number, now: number, text: string} |
accessibilityViewIsModal ¶
Значение, указывающее, должен ли VoiceOver игнорировать элементы в представлениях, которые являются родными братьями и сестрами приемника. По умолчанию false.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
bool |
accessible¶
Когда true, указывает, что представление является элементом доступности. По умолчанию все осязаемые элементы являются доступными.
aria-busy¶
Указывает на то, что элемент изменяется и что вспомогательные технологии могут захотеть подождать, пока изменения не будут завершены, прежде чем информировать пользователя об обновлении.
| Тип | По-умолчанию |
|---|---|
boolean | false |
aria-checked¶
Указывает состояние элемента с флажком. Это поле может принимать либо булево значение, либо строку "mixed" для представления смешанных флажков.
| Тип | По-умолчанию |
|---|---|
boolean, 'mixed' | false |
aria-disabled¶
Указывает, что элемент воспринимается, но отключен, поэтому его нельзя редактировать или использовать иным образом.
| Тип | По-умолчанию |
|---|---|
boolean | false |
aria-expanded¶
Указывает, является ли расширяемый элемент в данный момент развернутым или свернутым.
| Тип | По-умолчанию |
|---|---|
boolean | false |
aria-hidden¶
Указывает, являются ли элементы доступности, содержащиеся в этом элементе доступности, скрытыми.
Например, в окне, содержащем родственные представления A и B, установка aria-hidden в true для представления B заставляет VoiceOver игнорировать элементы в представлении B.
| Тип | По-умолчанию |
|---|---|
boolean | false |
aria-label¶
Определяет строковое значение, которое маркирует интерактивный элемент.
| Тип |
|---|
string |
aria-labelledby ¶
Определяет элемент, который маркирует элемент, к которому он применяется. Значение aria-labelledby должно соответствовать nativeID связанного элемента:
1 2 3 4 5 6 7 | |
| Тип |
|---|
string |
aria-live ¶
Указывает, что элемент будет обновляться, и описывает типы обновлений, которые агенты пользователя, вспомогательные технологии и пользователь могут ожидать от живого региона.
- off Службы доступности не должны объявлять об изменениях в этом представлении.
- polite Службы обеспечения доступности должны объявлять об изменениях в этом представлении.
- assertive Службы доступа должны прерывать текущую речь, чтобы немедленно объявить об изменениях в этом представлении.
| Тип | По-умолчанию |
|---|---|
enum('assertive', 'off', 'polite') | 'off' |
aria-modal ¶
Булево значение, указывающее, должен ли VoiceOver игнорировать элементы в представлениях, которые являются родными братьями и сестрами приемника. Имеет приоритет перед параметром accessibilityViewIsModal.
| Тип | По-умолчанию |
|---|---|
boolean | false |
aria-selected¶
Указывает, выбран ли выбираемый элемент в данный момент или нет.
| Тип |
|---|
boolean |
aria-valuemax¶
Представляет максимальное значение для компонентов, основанных на диапазоне, таких как ползунки и прогресс-бары. Имеет приоритет над значением max в пропсе accessibilityValue.
| Тип |
|---|
number |
aria-valuemin¶
Представляет минимальное значение для компонентов, основанных на диапазоне, таких как ползунки и прогресс-бары. Имеет приоритет над значением min в пропсе accessibilityValue.
| Тип |
|---|
number |
aria-valuenow¶
Представляет текущее значение для компонентов, основанных на диапазоне, таких как ползунки и прогресс-бары. Имеет приоритет над значением now в пропсе accessibilityValue.
| Тип |
|---|
number |
aria-valuetuetext¶
Представляет собой текстовое описание компонента. Имеет приоритет над значением text в пропсе accessibilityValue.
| Тип |
|---|
string |
collapsable ¶
Представления, которые используются только для компоновки своих дочерних элементов или иным образом ничего не рисуют, могут быть автоматически удалены из родной иерархии в качестве оптимизации. Установите это свойство в false, чтобы отключить эту оптимизацию и обеспечить существование этого View в иерархии нативных представлений.
| Тип |
|---|
bool |
focusable ¶
Должен ли этот View быть фокусируемым с помощью несенсорного устройства ввода, например, получать фокус с аппаратной клавиатуры.
| Тип |
|---|
boolean |
hitSlop¶
Определяет, на каком расстоянии от экрана может начинаться событие касания. Типичные рекомендации по интерфейсу рекомендуют использовать сенсорные цели размером не менее 30-40 точек/пикселей, не зависящих от плотности.
Например, если высота touchable view равна 20, то высоту touchable можно увеличить до 40 с помощью hitSlop={{top: 10, bottom: 10, left: 0, right: 0}}.
Область касания никогда не выходит за границы родительского представления, а Z-индекс родственных представлений всегда имеет приоритет, если касание попадает на два перекрывающихся представления.
| Тип |
|---|
object: {top: number, left: number, bottom: number, right: number} |
id¶
Используется для определения местоположения данного представления из нативных классов. Имеет приоритет над пропсом nativeID.
Это отключает оптимизацию "удаления вида только для макета" для этого вида!
| Тип |
|---|
string |
importantForAccessibility ¶
Управляет тем, насколько представление важно для доступности, а именно: вызывает ли оно события доступности и сообщается ли о нем службам доступности, которые запрашивают экран. Работает только для Android.
Возможные значения:
auto— Система определяет, важно ли представление для доступности — по умолчанию (рекомендуется).yes— Представление важно для доступности.no— Представление не важно для доступности.no-hide-descendants— Представление не является важным для доступности, как и все его потомки.
Для справки смотрите Android importantForAccessibility docs.
| Тип |
|---|
enum('auto', 'yes', 'no', 'no-hide-descendants') |
nativeID¶
Используется для определения местоположения этого представления из собственных классов.
Это отключает оптимизацию "удаления вида только для макета" для этого вида!
| Тип |
|---|
string |
needsOffscreenAlphaCompositing¶
Нужно ли выводить этот View за пределы экрана и компоновать его с альфа-значением, чтобы сохранить 100% правильные цвета и поведение смешивания. По умолчанию (false) компонент и его дочерние элементы отрисовываются с альфой, применяемой к краске, используемой для отрисовки каждого элемента, вместо того, чтобы выводить весь компонент за пределы экрана и компоновать его обратно с альфой. Это значение по умолчанию может быть заметным и нежелательным в случае, когда View, для которого вы устанавливаете непрозрачность, имеет несколько перекрывающихся элементов (например, несколько перекрывающихся View, или текст и фон).
Рендеринг за пределами экрана для сохранения корректного поведения альфа-канала является чрезвычайно дорогим и трудно отлаживаемым для неродных разработчиков, поэтому он не включен по умолчанию. Если вам необходимо включить это свойство для анимации, подумайте о том, чтобы объединить его с renderToHardwareTextureAndroid, если содержимое представления статично (т.е. его не нужно перерисовывать каждый кадр). Если это свойство включено, представление будет отрисовано за пределами экрана один раз, сохранено в аппаратной текстуре, а затем композитировано на экран с альфой каждый кадр без необходимости переключения целей рендеринга на GPU.
| Тип |
|---|
bool |
nextFocusDown ¶
Назначает следующее представление, которое будет получать фокус, когда пользователь перемещается вниз. См. документацию по Android.
| Тип |
|---|
number |
nextFocusForward ¶
Назначает следующее представление, которое будет получать фокус, когда пользователь перемещается вперед. См. документацию по Android.
| Тип |
|---|
number |
nextFocusLeft ¶
Назначает следующее представление, которое будет получать фокус при навигации пользователя влево. См. документацию по Android.
| Тип |
|---|
number |
nextFocusRight ¶
Назначает следующее представление для получения фокуса, когда пользователь перемещается вправо. См. документацию по Android.
| Тип |
|---|
number |
nextFocusUp ¶
Назначает следующее представление, которое будет получать фокус при навигации пользователя вверх. См. документацию по Android.
| Тип |
|---|
number |
onAccessibilityAction¶
Вызывается, когда пользователь выполняет действия по обеспечению доступности. Единственным аргументом этой функции является событие, содержащее имя выполняемого действия.
Дополнительную информацию см. в Руководстве по доступности.
| Тип |
|---|
function |
onAccessibilityEscape ¶
Если accessible имеет значение true, система будет вызывать эту функцию, когда пользователь выполнит жест выхода.
| Тип |
|---|
function |
onAccessibilityTap¶
Если accessible имеет значение true, система попытается вызвать эту функцию, когда пользователь выполнит жест касания доступности.
| Тип |
|---|
function |
onLayout¶
Вызывается при монтировании и при смене раскладки.
Это событие срабатывает сразу после расчета макета, но новый макет может быть еще не отражен на экране в момент получения события, особенно если идет анимация макета.
| Тип |
|---|
| ({nativeEvent: LayoutEvent}) => void |
onMagicTap ¶
Если accessible имеет значение true, система будет вызывать эту функцию, когда пользователь выполнит жест magic tap.
| Тип |
|---|
function |
onMoveShouldSetResponder¶
Хочет ли это представление "претендовать" на отзывчивость на прикосновение? Это вызывается для каждого движения прикосновения к View, когда он не является ответчиком.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => boolean |
onMoveShouldSetResponderCapture¶
Если родительский View хочет запретить дочернему View стать ответчиком при перемещении, он должен иметь этот обработчик, который возвращает true.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => boolean |
onResponderGrant¶
Представление теперь реагирует на события прикосновения. Сейчас самое время выделить и показать пользователю, что происходит.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onResponderMove¶
Пользователь перемещает свой палец.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onResponderReject¶
Другой ответчик уже активен и не выпустит его для того View, который просит быть ответчиком.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onResponderRelease¶
Уволен в конце касания.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onResponderTerminate¶
Ответчик был забран из View. Может быть взят другими представлениями после вызова onResponderTerminationRequest, или может быть взят ОС без запроса (например, происходит с центром управления/центром уведомлений на iOS).
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onResponderTerminationRequest¶
Какой-то другой View хочет стать отвечающим и просит этот View освободить своего отвечающего. Возврат true позволяет освободить его.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => void |
onStartShouldSetResponder¶
Хочет ли это представление стать ответчиком в начале касания?
| Тип |
|---|
| ({nativeEvent: PressEvent}) => boolean |
onStartShouldSetResponderCapture¶
Если родительский View хочет предотвратить превращение дочернего View в ответчика при запуске касания, он должен иметь этот обработчик, который возвращает true.
| Тип |
|---|
| ({nativeEvent: PressEvent}) => boolean |
Управляет тем, может ли View быть целью событий касания.
auto: Вид может быть целью событий касания.none: Вид никогда не является целью событий касания.box-none: Представление никогда не является целью событий касания, но его вложенные представления могут быть. Это ведет себя так же, как если бы вид имел следующие классы в CSS:
1 2 3 4 5 6 | |
1 2 3 4 5 6 | |
| Тип |
|---|
enum('box-none', 'none', 'box-only', 'auto') |
removeClippedSubviews¶
Это зарезервированное свойство производительности, открытое RCTView, полезно для прокрутки содержимого при наличии большого количества вложенных представлений, большинство из которых находится за пределами экрана. Чтобы это свойство было эффективным, оно должно быть применено к представлению, которое содержит много вложенных представлений, выходящих за его границы. Подвиды также должны иметь overflow: hidden, как и содержащее их представление (или одно из его супервидов).
| Тип |
|---|
bool |
renderToHardwareTextureAndroid ¶
Должен ли этот View рендерить себя (и все свои дочерние элементы) в единую аппаратную текстуру на GPU.
На Android это полезно для анимаций и взаимодействий, которые изменяют только непрозрачность, поворот, перевод и/или масштаб: в этих случаях не нужно перерисовывать представление и повторно выполнять списки отображения. Текстуру можно использовать повторно и повторно компоновать с разными параметрами. Недостатком является то, что это может использовать ограниченную видеопамять, поэтому этот параметр следует вернуть в false в конце взаимодействия/анимации.
| Тип |
|---|
bool |
role¶
роль передает назначение компонента пользователю вспомогательной технологии. Имеет приоритет над пропсом accessibilityRole.
| Тип |
|---|
| Role |
shouldRasterizeIOS ¶
Должен ли этот View быть отображен как растровое изображение перед композитингом.
На iOS это полезно для анимаций и взаимодействий, которые не изменяют размеры этого компонента и его дочерних элементов; например, при трансляции положения статического представления растеризация позволяет рендереру повторно использовать кэшированную битовую карту статического представления и быстро компоновать ее во время каждого кадра.
| Тип |
|---|
bool |
style¶
| Тип |
|---|
| View Style |
tabIndex ¶
Должен ли этот View быть фокусируемым с помощью несенсорного устройства ввода, например, получать фокус с аппаратной клавиатуры.
Поддерживает следующие значения:
0— Вид находится в фокусе-1— Вид не фокусируется
| Тип |
|---|
enum(0, -1) |
testID¶
Используется для размещения этого представления в сквозных тестах.
Это отключает оптимизацию "удаления вида только для макета" для этого вида!
| Тип |
|---|
string |