У меня есть SVG, который должен быть поверх экрана. От дизайнера пришли такие размеры:
Код: Выделить всё
...
Код: Выделить всё
Dimensions.get("window").width
Мне кажется, что свойство preserveAspectRatio в SVG (react-native-svg) каким-то образом конфликтует с aspectRatio стиль. И я совершенно запутался с preserveAspectRatio, я не нашел способа масштабировать его без обрезки.
У кого-нибудь есть идея, как этого добиться?
Это мой окончательный код, который возвращает компонент HeatMap, показывающий SVG, но, хотя он имеет правильную высоту, часть SVG отсутствует экрана справа (выглядит обрезанным, потому что он слишком широкий):
Код: Выделить всё
const windowWidth = Dimensions.get("window").width;
const getSVGRootProps = ({ width, height }) => ({
width: "100%",
height: "100%",
viewBox: `0 0 ${width} ${height}`,
preserveAspectRatio: "xMinYMin meet",
});
const FieldShape = () => {
const width = 354; // Original width
const height = 190; // Original height
const aspectRatio = width / height;
// adjusted height = * original height / original width
const calculatedHeight = (windowWidth * height) / width;
const fieldStyles = {
width: windowWidth,
height: calculatedHeight,
aspectRatio,
};
return (
...
);
};
const HeatMap = () => {
return ;
};

Подробнее здесь: https://stackoverflow.com/questions/616 ... native-svg