Всем привет! а если у меня есть TopAppBar в котором

есть пункты меню по которым происходит нажатие то обработка нажатий а точней их логика где должна происходить?
ну типа вот есть
conButton(onClick = {/* Handle action icon click */ }) {

сюда добавлять еще viewModel?

15 ответов

43 просмотра

Ну типа ровно так же, как кнопке назад в АПП барe передается действие назад

Vadim-Morozov Автор вопроса
Koor Desart
Ну типа ровно так же, как кнопке назад в АПП барe ...

ну там я использую navController.popBackStack() а мне к примеру надо добавлять пост в избранное и это по хорошему какой то метод viewModel который содержит логику но viewModel на уровне навигации у меня же нет

Vadim Morozov
ну там я использую navController.popBackStack() а ...

Не совсем понял, что значит вм на уровне навигации

Vadim-Morozov Автор вопроса
Koor Desart
Не совсем понял, что значит вм на уровне навигации

https://gist.github.com/mnewlive/176600b31ea5e7d7e7ace2549005cf18 тут самая большая проблема где обрабатывать логику кликов на LeftAlignedTopAppBar

Vadim Morozov
https://gist.github.com/mnewlive/176600b31ea5e7d7e...

По моему стоит передавать просто композабл через actions подобно тому, как это делает гугл. И потом что-то вроде AppBar(... actions = { IconButton(onClick = { viewModel.someAction() }) {...}}). То есть в самом АПП баре ничего не обрабатывать из логики, а просто выделить место и обработать дизайн.

Vadim-Morozov Автор вопроса
Koor Desart
По моему стоит передавать просто композабл через a...

так откуда AppBar знает про viewModel? нету же референса

Vadim Morozov
так откуда AppBar знает про viewModel? нету же реф...

val viewModel: SomeViewModel = viewModel() Scaffold(topBar = { AppBar(/*тута вью модель юзаем*/) }) {...}

Koor Desart
val viewModel: SomeViewModel = viewModel() Scaffo...

Ну либо в качестве параметра передавать

Vadim-Morozov Автор вопроса
Koor Desart
val viewModel: SomeViewModel = viewModel() Scaffo...

ну так а на сколько ок вызывать AppBar в своем экране таким образом? каждый раз порисовывать ручками? ну то есть у меня в зависимости от topLevelNavigation прорисовывается тот или иной AppBar а сейчас получается что нужно его дополнительно добавлять в каждый экран как будто бы так себе

Vadim Morozov
ну так а на сколько ок вызывать AppBar в своем экр...

Можно сделать один комбинированный композабл, в котором АПП бары заменяются через when и его вызвать в скаффолде уже, передав нужные параметры

Добавить лямбду которая принимает id нажатого экшена, так апп бар будет реюзабельным

Vadim-Morozov Автор вопроса
Vadim Morozov
примера под боком нет? щас поищу тоже

TopAppBar( onItemSelected: (itemId: Int) -> Unit, ) { ... }

Vadim-Morozov Автор вопроса
Dzmitry
TopAppBar( onItemSelected: (itemId: Int) -> Uni...

ну так а метод в скрине как я могу реализовать если у меня аппбар не в скрине находится

Vadim Morozov
ну так а метод в скрине как я могу реализовать есл...

Ну так же как с onClick'ами, например прокидывать от родителя

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
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
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта