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

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

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

15 ответов

14 просмотров

Ну типа ровно так же, как кнопке назад в АПП бар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'ами, например прокидывать от родителя

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

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

Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
посыпаю голову пеплом =) https://docs.vapor.codes/advanced/files/?h=stream#files
Seryoga
10
люди а напомните, пожалуста, как называется алгоритм поиска текста который допускает ввод ошибок? Например есть несколько строк: Trigun Trigun: Stumpeede Мне нужно что бы ...
Куся 🌿⃤ __UKS
2
Карта сайта