Sergey
Александр
Turalllb
Что-то никак не найду проблему. Вот локализовал ее. Если этот код запускается, по клику на изображение, то всё работает как положено, с анимацией. Если этот код запустить в onResume, то нет ни анимации ни конечного увеличенного изображения. Если запустить в onResume но без анимации, то увеличенное изображение есть https://pastebin.com/prZvzrar
Нашел подсказки по поводу моего вопроса. Если запустить анимацию где то в onCreate или OnResume, то на экране ничего не нарисовано, в таком случае аниматор может не показать конечный результат преобразований. Поэтому если кликнуть вручную, то анимация работает, а в onCreate нет. Действительно ли есть такие проблемы с аниматором, как реализуются анимации, которые работают сразу после отрисовки экрана , разве onResume не гарантия этого ?
Turalllb
Если я запускаю анимацию в onResume не работает ничего, а если обернуть в Runnable запуск и с задержкой на всего 1 миллисекунду , то всё работает.
Turalllb
Вообще не понимаю, почему из потока через handler можно притрагиваться к UI
Yap
Sergey
Sergey
Во-вторых как ты из ранэбле обращаешься к юи?
Michael
https://stackoverflow.com/a/7289908/6124719
Суть:
> If you want to play the animation immediately, without requiring interaction, then you might want to call it from the onWindowFocusChanged() method in your Activity, which will get called when Android brings your window into focus.
Sergey
Sergey
Проверь через вывод в лог.
Turalllb
Во-вторых как ты из ранэбле обращаешься к юи?
Я в hundler.postDelay запускаю этот код https://pastebin.com/prZvzrar , который находит на экране ImageView миниатюру, находит большую версию ImageView и осуществляет анимацию. Почему работает я не знаю
Sergey
Turalllb
И постДелей у тебя сработает на следующем цикле твоего юи потока.
ну понял. Просто я поставил такую маленькую задержку, чтобы понять зависит ли то что анимация в onResume не показывает результат, от того что на экране еще ничего не отрисовано. Но как я понимаю задержка в 1 миллисекунду не доказывает то что проблема не в этом. Проблема всё еще может быть в том что на экране ничего не нарисовано. Да?
Sergey
Turalllb
Да
хорошо, но я всегда думал, что onResume - значит всё уже нарисовано. Выходит onResume - всё передано на отрисовку ?
Turalllb
Konstantin
Нашел подсказки по поводу моего вопроса. Если запустить анимацию где то в onCreate или OnResume, то на экране ничего не нарисовано, в таком случае аниматор может не показать конечный результат преобразований. Поэтому если кликнуть вручную, то анимация работает, а в onCreate нет. Действительно ли есть такие проблемы с аниматором, как реализуются анимации, которые работают сразу после отрисовки экрана , разве onResume не гарантия этого ?
Хватит обычного post, без задержки.
Как вариант еще можно завязаться на onWindowFocusChanged, но придется отслеживать, что анимация уже запускалась.
Mr O
хочу сделать читалку под формат fb2, посоветуйте библиотеку пожалуйста
Tornike
Konstantin
Turalllb
Turalllb
onWindowFocusChanged вот этот калбек вроде то что нужно
Turalllb
Спасибо всем больше, вроде разобрался в этой какашке
Andrey
привет
я тут ломаю пальцы об MVVM.
интересует двухсторонний биндинг, вернее, чтобы из EditText значение попадало в ObservationField в модель. какая-то хрень, то пишут что достаточно в EditText добавить параметр text="@={model.etValue}", то добавить change листенер, параметра которого я у себя в принципе не нахожу.
есть у кого-то работающий пример? чтобы из макета сразу в модель, без watcher в активити(фрагменте)?
Андрей
Товарищи, может кто в личке подсказать по Room? Всю голову себе сломал с ForeignKey, если у кого есть минутка, задам вопрос в личку.
Ferrero
Андрей
Есть папка, в папке будут карточки. Нужно что бы у всех карточек(которые будут в последствии добавляться) в определенной папке был ID этой папки. Пытаюсь через ForeignKey связать ID папки с ID карточки. Прописываю в Data классе карточке дочерний ключ Card_id, который будет связан с Folder_id. Но тогда, что бы добавить новую карточку, обязательно требуется прописать ей Card_id, который должен по идее автоматом ставится с Folder_id. Не понимаю, как тут быть. Мне нужно, что бы я мог добавить новую карточку, введя только ее название. А Id сам добавлялся, исходя из папки, в которой будет карточка создана.
Mr O
Добрый день
Mr O
Есть ли библиотеки для чтение формата fb2 ?
Yusuf
Из-за чего NotificationManager.notify() может не обновлять уведомление? Запустил foreground service с уведомлением и notificationId, потом вызываю NotificationManager.notify() с тем же notificationId, но оно не заменяет предыдущее уведомление. Если еще раз запустить startForeground(notificationId, notificationBuilder().build()) обновляется, но через сам менеджер нет
Yusuf
Вроде бы если одинаковые айди должно меняться ведь
Nikolay
Nikolay
Есть папка, в папке будут карточки. Нужно что бы у всех карточек(которые будут в последствии добавляться) в определенной папке был ID этой папки. Пытаюсь через ForeignKey связать ID папки с ID карточки. Прописываю в Data классе карточке дочерний ключ Card_id, который будет связан с Folder_id. Но тогда, что бы добавить новую карточку, обязательно требуется прописать ей Card_id, который должен по идее автоматом ставится с Folder_id. Не понимаю, как тут быть. Мне нужно, что бы я мог добавить новую карточку, введя только ее название. А Id сам добавлялся, исходя из папки, в которой будет карточка создана.
может я чтото не понял, но как card_id может ставится автоматом с folder_id? то есть как такое вообще возможно? Нужно руками взять folder_id и при создании карточки - поставить его в нужное поле и сохранить в базу
Andrey
Yusuf
Можно ли привязать активити к работающему сервису? Как это делается?
Nikolay
One
Anonymous
Ребят, создавал приложение - всё запускалось. И вдруг при попытке запуска оно просто останавливается теперь всегда.. Ничего пока не кодил, просто элементы в xml размещал. Что не так? Ошибка только в логах видна: https://pastebin.com/DWY0tZfL
Вот xml — https://pastebin.com/7s0maFHP
Kota
table null хотя должен быть не null
Anonymous
Сергей
Dmytro
Здраствуйте.. Почему мы можем написать такое в дочернем классе AppCompatActivit?
val db = (this.application as BasicApp).database
где BasicApp
class BasicApp : Application() {
private var mAppExecutors: AppExecutors? = null
val database: AppDatabase get() = AppDatabase.getInstance(this, mAppExecutors!!)
val repository: DataRepository get() = DataRepository.getInstance(database)
override fun onCreate() {
super.onCreate()
mAppExecutors = AppExecutors()
}
}
Рефлексии
ж нету тут.. И BaseApp c AppCompatActivit ничем кроме предка не связаны
Алексей
Алексей
this.application - это получить текущий объект Application в вашем приложении. BasicApp - он и есть.
Алексей
Все Activity в приложении имеют доступ к текущему Application, потому что так устроен Андроид.
Dmytro
Алексей
да
Dmytro
да
Спасибо вам за то что обьяснили
Dmytro
Я иерархию знаю.. Не в том была проблема
Dmytro
И почему вообще можно было кастовать this.application as BasicApp
Ну и ответ в том что в Манифесте был прописан "custom application class" <application
android:name=".BasicApp"
Andrey
ответ в том, что BasicApp наследован от App
Andrey
и указав наследника App в манифесте, приложение использует не App, а его наследника, вернее App оно тоже использует, но BaseApp идет какое то расширение функциональности, переменные, синглотоны и т д
Andrey
ну и кастуя App к BasicApp ты получаешь доступ к переменным BasicApp
Andrey
ооп + знание поля в манифесте
Dmytro
Anonymous
Turalllb
Подскажите, а возможно сделать так чтобы в cordinatorLayout при скоролле вверх исчезал Toolbar, но с таким вот условием: если toolbar хоть немного уже скрылся , то сам скроется полностью, если пользователь недоскроллит ? без кастомных реализаций это возможно?
Mike
Ваня
Как реализовать слиптаймер для плеера?
Ваня
Ресивер, который кидает интент сервису?
padmitriy
Народ, а где лучше почитать как работает static и другие модификаторы под капотом? Может литература хорошая есть или статьи?
padmitriy
чтобы не просто тупо бояться статики, а знать ПОЧЕМУ, к примеру)
Spirit
Добрый вечер господа. Скажите пожалуйста, реально вытащить пароль от инстаграмма, имея доступ к телефону прямо, ну adb в том числе