The The
Какая версия appcompat? Я юзаю 1.1.0, помню когда то давно changelog'е читал что были изменения по темной теме
тоже 1.1.0. юзаю все актуальные либы. у меня есть подозрение что это мой самсунг капризничает. у него памяти много и он походу держит приложение в каком-то своем кэше, даже если полностью его закрыть
Sky Surfer
Ребятки, подскажите, как можно из ворд-файла сделать мобильное приложение - эл. книгу?
The The
Странно, у меня всё ловит.
вот прямо ты меняешь тему в андроиде и у тебя меняется тема в приложении? сколько смотрю примеров, все пишут проверку Configuration.uiMode
The The
или ты где-то в активити еще проверяешь?
Stunner // 🎄
или ты где-то в активити еще проверяешь?
В oncreate загрузочного экрана и в onresume основной активити
The The
я не хочу лезть в активити чтобы темы менять им. ну в общем я понял, вариант onConfigurationChanged в Application самый правильный
The The
В oncreate загрузочного экрана и в onresume основной активити
в активити чекать тему стоит если у тебя больше чем системных, там ты можешь свою тему с ресурсами подтянуть. так я это понимаю. если ты берешь системную - темную или светлую - в активити чекать тебе не нужно
Stunner // 🎄
Хули ты тут забыл?
Встречный вопрос.
Алексей
Встречный вопрос.
Та ну ты это и сам должен догадаться😂
Stunner // 🎄
Та ну ты это и сам должен догадаться😂
Ты же прошивки делаешь какой андроид девелоперс
Алексей
А это вообще никаким боком не относится к андроиду?
Алексей
Те же сайаны партс пилить
Stunner // 🎄
зочем
для смены темы вручную, не во всей системе.
The The
для смены темы вручную, не во всей системе.
для смены темы вручную ты можешь использовать все тот же setDefaultNightMode
Dmitry
Здравствуйте, есть такой AlertDialog с несколькими элементами. Как я могу добавлять элементы для отображения? arrayListOf не работает.
Nick
Сколько стоит аккаунт разработчика, столько же и будет это стоить.
Услуга, если мне кто-то её исполнит, аккаунт предоставлю
The The
Услуга, если мне кто-то её исполнит, аккаунт предоставлю
что исполнит? выложить твою апк в плей маркете? обфусцировать код ты можешь и сам, плей маркет этим не занимается
Nick
Окей
Dmitry
builder.setItems(items + «Tomato») { … }
а можно именно в массив добавлять элементы? допустим у меня в companion object объявляется массив и потом ходит по коду, собирает строки для отображения. А потом отображает это всё
Vitaly
Подскажите как вы систематизируете свои шрифты? Например: font_headline_1 font_headline_2 font_headline_3 font_subtitle_1 font_subtitle_2 font_body_1 font_body_2 или font_jumbo font_huge font_extra font_large font_medium_3 font_medium_2 font_medium_1 font_small или может другая систематизация? Хочу просто найти ту, которая встречается чаще и использовать ее
Dmitry
MutableList?
нет, тогда setItems ругается
George
нет, тогда setItems ругается
Ну чтобы добавлять туда данные, тоесть изменять массив, нужно наверное объявить как var а не val
Dmitry
Ну чтобы добавлять туда данные, тоесть изменять массив, нужно наверное объявить как var а не val
нет, у просто arrayOf нет метода .add. А на mutableListOf он в любом случае ругается
awawa
нет, тогда setItems ругается
setItems принимает либо ресурс типа R.array, либо CharSeuence[]. То есть массив. Нельзя ему давать ArrayList
awawa
можете подсказать решение проблемы?
Добавлять элементы в ArrayList, пусть будет a. А в setItems передавать a.toTypedArray(): setItems(a.toTypedArray())
Yerlan
можете подсказать решение проблемы?
вообще корень проблемы в том что вам нужно изучить что такое array, и что такое list )
Александр
подскажите, как на фрагменте сохранять позицию пролистывания и вообще все изменения на нем, чтобы он не пересоздавался при повторном его открытии.
Александр
он удаляется, это же фрагмент. Например, при переходе на другую вкладку и обратно, "лайки" удаляются, позиция пролистывания - возвращается на верх
George
он удаляется, это же фрагмент. Например, при переходе на другую вкладку и обратно, "лайки" удаляются, позиция пролистывания - возвращается на верх
Ну, ты инициализируешь все фрагменты, добавляешь их в контейнер, а потом при нажатии показываешь нужный и прячешь текущий
Александр
да, конечно в бд. Пока не реализовал ее. Но вот позицию, например, запоминать
Александр
через .replace меняешь?
да. FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.container, fragment);
Anonymous
Ребз, подскажите плиз, почему студия не может проанализировать код на лету в больших файлах?
Anonymous
элементарно если написать if (true) { } то линт опция "Constant conditions & exceptions" тупо не подсвечивает кондишн. Но если я напишу лишнюю скобку, то сразу быстренько весь файл краснеет Почему краснеет за секунду а желтеет.... не желтеет?!
Sergey
Привет! А правильно понимаю, что value animotor возможно ставить на паузу другим потоком, но возобновлять его надо только на main потоке?
Anonymous
может быть у тебя нет соответствующих правил для этого?
если я напишу этот же код в маленьком файле, то сразу все работает сейчас я работаю в коде вложенностью в 5 блоков кода где куча-куча-куча ифов свитчей методов классов и т.д на овер 10к строк
Kost
скорость проверки для каждого кейса может сильно отличаться, тем более для большой вложенности @podocodenick
Anonymous
скорость проверки для каждого кейса может сильно отличаться, тем более для большой вложенности @podocodenick
а можно ли сфокусировать студию вот чисто на один файл? потому что она задолбала, ресурсов полно, а она медленная как была так и осталась, задолбался ПК апгрейдить :/
Kost
@podocodenick я таким не занимался, вот попробуй что то поискать в андроид девелоперах https://developer.android.com/studio/write/lint
Anonymous
Привет всем! Изучаю андроид, есть несколько вопросов: 1) Допустим делаю приложение с авторизацией, как правильно построить навигацию? Юзер может сделать логаут в любом месте приложения, как при этом дропнуть все экраны не нужные и показать обратно экран логина? Может какие-то хорошие практики есть для решения таких задач? 2) Используют ли сейчас на практике Jetpack Compose? Если приложение с 0 - стоит ли писать на нём? Заранее спасибо за ответы!
Данил
1. Просто очищайте Backstack чтобы перейти на первоначальный экран. Либо используйте Navigation Library. 2. Нет, он еще сырой
Данил
1. Еще видел что есть подходы с Single Activity - это не оч?
Почему, я сейчас по этому подходу большинство приложений стараюсь строить
Anonymous
Почему, я сейчас по этому подходу большинство приложений стараюсь строить
А в чем суть? Как это работает? Если не сложно, обьясни плз
Данил
А в чем суть? Как это работает? Если не сложно, обьясни плз
Во всем приложении имеется только 1 Activity, которая управляет всеми фрагментами. Вот и все. Из-за использования фрагментов в качестве основы, а не Activity, позволяет строить более гибкие интерфейсы, анимации перехода и т.д
Anonymous
Во всем приложении имеется только 1 Activity, которая управляет всеми фрагментами. Вот и все. Из-за использования фрагментов в качестве основы, а не Activity, позволяет строить более гибкие интерфейсы, анимации перехода и т.д
то есть если у меня есть флоу Авторизации, и флоу Основной, у меня будет главная одна активити которая переключаеться между 2 фрагментами AuthFlowFragment и MainFlowFragment? Как то так? А навигация внутри конкретного флоу уже разруливается в другом месте где то?
Anonymous
Допустим у меня авторизация состоит из 10 экранов, куда пихать логику с переходами между экранами?
Данил
Я бы в каждый из фрагментов делал переход. Создал бы какую - нибудь Extension для Fragment и вызывал бы. Либо используйте Navigation Library, там вам нужно будет только у NavController вызвать соответствующий action, который отвечает за переход от конкретного фрагмента к конкретному фрагменту
Данил
+ Использования, это автоматическое название toolbar и стрелка в нем назад, на предыдущий фрагмент
Данил
Но также есть и Cicerone вроде, тоже служит для навигации
Oleg
1. Просто очищайте Backstack чтобы перейти на первоначальный экран. Либо используйте Navigation Library. 2. Нет, он еще сырой
По 1 пункту если экран логине не в бэкстеке (а будет странно если он в бэкстеке) - то лучше просто переходить на новый фрагмент с логином, очищая предыдущие данные
Данил
По 1 пункту если экран логине не в бэкстеке (а будет странно если он в бэкстеке) - то лучше просто переходить на новый фрагмент с логином, очищая предыдущие данные
Как он может быть не в Backstack, если он первичный экран (ну если только пользователь сам не добавил этот фрагмент в backstack)
Anonymous
Я бы в каждый из фрагментов делал переход. Создал бы какую - нибудь Extension для Fragment и вызывал бы. Либо используйте Navigation Library, там вам нужно будет только у NavController вызвать соответствующий action, который отвечает за переход от конкретного фрагмента к конкретному фрагменту
Понял про смену логин/не логин, что нужно просто фрагменты поменять, а вот про навигацию внутри не совсем понял Не нужно же будет всегда всё прогонять через активити и подставлять новый рут фрагмент?
Oleg
Ну это уже зависит от назначения приложения) Если ы залогинился - приложение должно запомнить тебя и при нажатии на кнопку назад должно просто закрыться приложение в большинстве случаев.
Oleg
Понял про смену логин/не логин, что нужно просто фрагменты поменять, а вот про навигацию внутри не совсем понял Не нужно же будет всегда всё прогонять через активити и подставлять новый рут фрагмент?
Если много переходов внутри самого логина - я бы предложил сделать 2 активити с логикой смены фрагментов внутри одной активити. Тем более, если экран логина не нужен при каждом входе. Вообще есть много либ для навигации, помимо вышеназванных еще conductor есть хорошая либа, она не на фрагменты завязана, а на вью, так что ей можно переходы внутрифрагмента логина и главного фрагмента организовать, если все же возьмешь сингл активити
Oleg
то же и с cicerone. Navigation Library вроде с фрагментами работает
Данил
Просто попробуйте на 1 activity и 3 тестовых фрагментах оба способа, и выберите понравившийся