Техника, которую я использую для получения процентной ширины родительского элемента, заключается в добавлении дополнительного представления разделителя в сочетании с некоторым гибким боксом. Это не применимо ко всем сценариям, но может быть очень полезным.
Итак, начнем:
class PercentageWidth extends Component {
render() {
return (
<View style={styles.container}>
<View style={styles.percentageWidthView}>
{/* Some content */}
</View>
<View style={styles.spacer}
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row'
},
percentageWidthView: {
flex: 60
},
spacer: {
flex: 40
}
});
По сути, свойство flex - это ширина относительно «общей» гибкости всех элементов в гибком контейнере. Итак, если сумма всех пунктов равна 100, у вас есть процент. В этом примере я мог бы использовать значения гибкости 6 и 4 для того же результата, так что он еще более ГИБКИЙ.
Если вы хотите центрировать представление ширины в процентах: добавьте две прокладки половинной ширины. Итак, в примере это будет 2-6-2.
Конечно, добавление дополнительных представлений - не самая лучшая вещь в мире, но в реальном приложении я могу представить, что разделитель будет содержать другой контент.
react-nativeиспользуетсяflexдля размеров и положения элементов. Я не уверен, но может бытьflex-basisэто то, что вам нужно: проверьте это и это