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

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

24 ответов

24 просмотра

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

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 Автор вопроса

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

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

Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
Карта сайта