Какова единица стиля по умолчанию в React Native?
Я участвую в проекте с открытым исходным кодом, где я разрабатываю дизайн материалов для React Native. Я заблокирован на работе, я не могу сделать некоторые улучшения уровня пользовательского интерфейса w.r.t. отступы, выравнивание и т.д.,
Это официальная спецификация дизайна материалов для ящика -
![Согласно спецификации Material Design]()
В приведенном выше изображении измерение UNIT dp.
Но, в моем реагентном коде React, я вижу, что таких единиц не упоминается. Учитывая, что это "реагировать на родной", я смущен, является ли он px или dp.
Я даже просмотрел официальные документы компонент React Native для Style. Я нигде не вижу упоминания.
Мой код выглядит как
const styles = {
touchable: {
paddingHorizontal: 16,
marginVertical: 8,
height: 48
},
item: {
flex: 1,
flexDirection: 'row',
alignItems: 'center',
},
icon: {
position: 'relative',
},
value: {
flex: 1,
paddingLeft: 34,
top: 2
},
label: {
top: 2
}
},
Пожалуйста, скажите мне, если это пиксели или dp? А также, 1px = 1dp
?
Ответы
Ответ 1
Я немного разделяю ваше замешательство, не имея возможности активно осматривать консоль разработчика, как мы привыкли в браузере.
Я не знаком с модулем "dp", но из того, что я собираю width: 1
, по-разному отображает на каждом устройстве в зависимости от плотности пикселей экрана (см. ссылку). Информация, содержащаяся в реакционных документах, говорит, что 1
будет отображаться на экранах с высокой плотностью пикселей. Который тогда звучит логично, поскольку у вас больше точности на экранах с высокой плотностью, чем на экранах с низкой плотностью, а также на основе реагирования - на универсальность, поэтому он не будет принимать высокие значения dpi.
Я понимаю, что вы можете использовать связанный ниже PixelRatio API для расчета размеров элементов детали (думаю, границы, значки и т.д.), так что вы можете динамически настраивать размер рендеринга в соответствии с плотностью экрана устройства.
https://facebook.github.io/react-native/docs/pixelratio.html#content
Ответ 2
Из docs:
Все размеры в React Native являются безразмерными и представляют собой не зависящие от плотности пиксели. Установка размеров таким образом является общей для компонентов, которые всегда должны визуализироваться точно в том же размере, независимо от размеров экрана.
Итак, единицы в React Native находятся в dp
. Если вы хотите преобразовать их в пиксели, используйте PixelRatio.getPixelSizeForLayoutSize()
Ответ 3
Из того, что я знаю, стиль javascript, который мы используем в реакции js или реагируем на собственные, использует пиксели. Коэффициент пикселей необходим только для поддержки различных экранов мобильных устройств.
Ответ 4
Это соотношение пикселей, которое вы должны учитывать. пиксель представляет собой абсолютное значение. отношение пикселей является относительным значением. чтобы экран приложения и компоненты реагировали, вам нужно использовать соотношение пикселей.
Я уже использовал в нескольких приложениях. и я думаю, что именно так вы должны это делать. надеюсь, что это ответит на ваш вопрос.