основной контент экрана был ровно по центру по высоте, но на экране есть еще кнопка, которая прижата к низу экрана. Т.е. нужно, чтобы эта кнопка никак не влияла на центровку основного контента. Я пытался обернуть кнопку во <View> и так же сверху делал пустой <View>, которым давал flex: 1. Но проблема в том, что нижний из-за того, что в нем есть содержимое, все же больше верхнего. Есть какие-то приемы, чтобы добиться желаемого поведения? У меня в голове только вариант, с onLayout на нижнем <View> и применение его высоты для верхнего <View>.
Спозиционировать нижнюю секцию с кнопкой через absolute. Либо заранее заложить константой высоту нижнего содержимого с кнопкой и дать paddingTop: HEIGHT для верхнего содержимого
А если контента станет много (или экран маленький), то будут проблемы)
Ну я же не гадалка. Часто такие скрины делают где-то на экране авторизации где контента много не будет. И он вообще не динамичный. Если экран маленький - тут адаптировать, да. Если контента станет много — просчитать это условиями и не давать paddingTop. Но всегда проще договориться, чтобы содержимое в верхней секции было посередине относительно своего контейнера.
А вариант с onLayout - бред?) Как считаете?
Лучше избегать такого там, где это возможно. Скорее всего будет моргать при просчёте и выставлении этого значения.
А можешь пример скинуть визуальный? Скрин, или что-то подобное, так может быстрее поймут что конкретно надо
Кнопку абсолютом сделай, а контейнер через пробы flex по центру и все гуд будет на первый взгляд
Я с вэба не привык к ограничениям) Не могу себя заставить так сделать. Потому что если повернуть телефон, контент уже не будет убираться на экран и будет проблема
Не так я себе визуализировал то, что ты описал. Такое без проблем верстается, flex: 1 и justifyContent: ‘center’ для содержимого с текстом оно и подвинет блок с кнопкой. Доступность горизонтального положения тут лучше выключить.
Для такого нужно кнопку абсолютно спозиционировать
Верстай, зашлёшь что произойдет при абсолютном позиционировании с открытой клавой )
Обсуждают сегодня