Vit
обуздать дефолтное поведение встроенных в реакт-навигейшн контролов - дикая и бесполезная трата времени
Vit
хедер - час, таббар с иконками - час, и всё - полный контроль и красота)
Vit
и все навигационные экшены в отдельный модуль заизолировать)
A
да, а как быть с быстрым переключением ? типа человека кликает по кнопку назад
Aleksei
у меня одного без всяких паддингов хэдер? https://snack.expo.io/B1s7FoZ1z . что @alexandertorn мозг то компосирует)
A
я понимаю что ты админ
A
но в суть то мог вникнуть
A
убей statusbar
A
и увидишь баг
Aleksei
о, ты не поверишь, я вник, вот тебе исходники, тут ты и найдешь почему вставляется https://github.com/react-community/react-navigation/blob/master/src/views/SafeAreaView.js
Aleksei
если уж ты совсем ленив то вот сразу место https://github.com/react-community/react-navigation/blob/master/src/views/SafeAreaView.js#L54-L64
Aleksei
и оно показывает что при хэдере сверху ты не можешь переопределить поведение
Vit
я ослеп)
A
Aleksei
есть вероятность что на старых версиях react-navigation есть возможность переопределить этот паддинг, но тут для iphone x сделали SafeAreaView
A
мде, попадалово)
Aleksei
вывод то, если хочешь iphone x поддерживать, то не пренебрегай этим паддингом для статус бара
Aleksei
или если прям совсем ппц как хочется, то форкаешь и меняешь ту функу что я скинул
Aleksei
а еще я поддержу @mordaha, для сложных кейсов я просто свой хэдер пишу и не пользуюсь стандартным
Vit
// for iphoneX
const heightX = Dimensions.get('window').height === 812 ? 38 : 20;
Vit
я уже поддержал ифонХ ))
Aleksei
Vit
не у меня свое всё)
Vit
кстати
Vit
вчера боролся с андроидом и бордер-радиусами
A
у меня для WebView написан свой кастомный хедер, сложность я вижу в том, что надо хэндлить самостоятельно переходы, что даже визуально придаёт глючности прилаге
Aleksei
ну можно сказать что тебе повезло, что не вышел iphone x+ какой нибудь)
A
у меня проблема не в iPhone X, а на любом iOs
Vit
андроед не хочет круглить углы если width: 100% например а не точная, пришлось из ширины экрана вычислять ширину кнопки
это второе применение Dimensions в проекте пока)
A
короче, приняли решение вернуть StatusBar
A
и жить в мире с гайдлайнами
Aleksei
this.props.navigation.goBack() же
Aleksei
вот как это сделано в самой либе https://github.com/react-community/react-navigation/blob/master/src/views/Header/Header.js#L96-L98
A
спасибо за наводку
Ilya
Vit
какой айфон такое и решение)
Ilya
Не аргумент
Ilya
Потом сделают мультиоконность, например, и все сломается
Vit
преждевременная оптимизация - враг всего
Andrey
Ребят, а кто как выводит версию приложения, версию билда, например, для экрана "О приложении"? я пару либ попробовал, чёт ни одна не работает, на гитхабе куча issue по этому поводу. Кто чё посоветует?
Ilya
Ilya
Есть же сейфареа специально для этого
Vit
костыли - это сейфарея
Vit
и айфонХ в целом
Ilya
Костыли - это хардкодить высоту статусбара
Vit
она меняется?)
Vit
шта?)
Ilya
Эппл волен с ней делать что угодно
Ilya
+ на андроиде она другая
Vit
ясно-понятно)
Nazar
всем привет)
как можна сделать такую штуковину?
в React Native новенький
нужно только вёрстка
Nazar
http://take.ms/RQ7PH
A
ага
A
Aleksei
const { isIPhoneX_deprecated } = DeviceInfo;
A
поделитесь опытом, как для андроида вычисляете высоту статусбара?
Ilya
A
да, не прокатит
Vit
зуб дадите?)
Ilya
зуб дадите?)
На примере телеграма, где так захардкожено, это видно
Vit
Vit
Vit
Хардкод 20, РН
Ilya
Значит, сам рн добавляет 20
Ilya
То есть нарисовать что-то под этим статусбаром не выйдет
Vit
ну а я про че
Ilya
Еще неизвестно, что хуже
Aleksei
сомневаюсь что рн это делает, скорее система
Ilya
Ilya
Даааа, система
Kirill
Aleksei
из всего что RN делает при изменении размера статус бара нашел только это https://github.com/facebook/react-native/search?utf8=%E2%9C%93&q=UIApplicationWillChangeStatusBarFrameNotification&type= , кидает эвент и все, никакие размеры он сам не меняет
Kirill
на самом деле в RN есть StatusBarManager, но он не в публичном апи и использовать на свой страх и риск
Kirill
но у него есть и getHeight который на обоих платформах возвращает текущую высоту
Kirill
и событие statusBarFrameWillChange на иосе которое при смене высоты срабатывает
A
а подскажите как лучше отлаживать приложение? вот играюсь со стилями, например. На девайсе hot reload частенько подвисает, приходится делать reload и т.д.. короче долго.. как удобнее?
Vadim
делаешь reload приложеньки +))
Vadim
по классике console.log в нужном месте