Ребят, скажите пожалуйста, а как получить инсеты навигации как, по

факту, именно размер? Если получать через WindowInsets.navigationBars.getBottom то при рекомпозии размер инсетов меняется. К примеру, если спрятать навигацию, то размер будет 0. Можно конечно через remember запомнить его, но может есть какие-нибудь другие варианты

24 ответов

22 просмотра

Это всё связано с требованием, чтобы кнопки были зафиксированы вне зависимости от свободного пространства снизу? Довольно странное, если честно, с чем оно связано?

Anton-Golyanov Автор вопроса
Artem Sidorov
Это всё связано с требованием, чтобы кнопки были з...

ну вот так, нужно чтобы интерфейс не смещался а был в фиксированном положении

Anton Golyanov
ну вот так, нужно чтобы интерфейс не смещался а бы...

При этом в приложении может исчезать системный нижний бар?

Anton-Golyanov Автор вопроса
Artem Sidorov
Это всё связано с требованием, чтобы кнопки были з...

насколько я понял LocalConfiguration.current.screenHeightDp даёт размер не включая инсеты. Я его пихал как размер контейнера кнопок и прибавлял к нему размер боттом нава. Но теперь внизу есть полоса черная из суммы системных инсетов. Если задать их через WindowInset, то они будут рекомпозироваться и менять размер и интерфейс опять будет двигаться

Anton-Golyanov Автор вопроса
Artem Sidorov
При этом в приложении может исчезать системный ниж...

да, при старте сессии скрываются системные бары и нав бар

Anton Golyanov
да, при старте сессии скрываются системные бары и ...

Сомневаюсь, что размеры отсутствующих системных баров можно как-то получить Может хранить полученные значения где-то в локальном хранилище? Но звучит дико всё это

Anton-Golyanov Автор вопроса
Artem Sidorov
При этом в приложении может исчезать системный ниж...

сейчас только есть идея собрать размер контейнера как: screenHeightDp - bottomNavBarHeight + systemInsets. Но здесь теперь systemInsets меняется в зависимости от своего состояния. Надо бы как-то узнать просто изначальный размер инсетов и использовать его

Anton-Golyanov Автор вопроса
Artem Sidorov
Сомневаюсь, что размеры отсутствующих системных ба...

я тоже так подумал. когда начинаю всё это делать выглядит оно всё очень неприятно

Anton Golyanov
я тоже так подумал. когда начинаю всё это делать в...

Покажи, пожалуйста, как выглядит экран с этими кнопками?

Anton Golyanov
screenshot Сейчас вот так (схематично)

Получается, весь этот контент никак не опирается на нижние бары вообще? Может быть тогда, если приложение изначально fullscreen, просто сделать Column с двумя элементами в центре, и сам Column сделать от верхнего края экрана до нижнего, плевав на инсеты и бар навигации?

Anton-Golyanov Автор вопроса
Artem Sidorov
Получается, весь этот контент никак не опирается н...

а как его сделать до нижнего края, игнорируя боттом бар в активити?) если контент лежит внутри самой активити

Anton Golyanov
а как его сделать до нижнего края, игнорируя ботто...

Если у тебя нижний бар определён в Scaffold, то в лямбду передаются PaddingValues, которые в себя нижний бар включают. Если их к контенту не применить, то нижний бар учитываться не будет

Anton-Golyanov Автор вопроса
Artem Sidorov
Если у тебя нижний бар определён в Scaffold, то в ...

о, вот похоже PaddingValues убрать - то что нужно. сейчас попробую, спасибо

Anton-Golyanov Автор вопроса
Artem Sidorov
Если у тебя нижний бар определён в Scaffold, то в ...

спасибо. оставлю данное решение пока что

Anton-Golyanov Автор вопроса
Artem Sidorov
Если у тебя нижний бар определён в Scaffold, то в ...

а, блин. тогда другие экраны тоже не будут уважать боттом бар

Anton Golyanov
а, блин. тогда другие экраны тоже не будут уважать...

Можно запровайдить эти паддинги через CompositionLocal на те экраны, на которые нужно, но это всё ерунда какая-то

Anton Golyanov
а, блин. тогда другие экраны тоже не будут уважать...

Судя по герриту компоуза, могу предположить что следующий релиз тебе сильно поможет в решении проблемы. Ибо туда прикрутили модификатор withConsumedWindowInsets() И добавили интерфейс MutableWindowInsets для изменения инсетов без рекомпозиции

Anton-Golyanov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
Всем привет. Хотел бы написать для себя свою ос. Причины: 1) нужен опыт в чем-то 2) будет меньше весить 3) свое, но там будут свои задумки Я понимаю что нужно писать для всег...
Shadow Akira
18
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Инструкция вроде от 1 до 5 тиков ввполняется? Давайте все в ассемблер чат тему перенесём. Там будет больше людей которые связаны с этой темой. Прошу пожалуйста.
Shadow Akira
3
сколько это сотен тысяч инструкций?
Boris Vinogradov
4
Карта сайта