GlobalKeys могут быть очень полезны для получения текущего State виджета. С их помощью можно запустить обновление RefreshIndicator по нажатию на кнопку или показать анимацию добавления / удаления элемента списка при использовании AnimatedList.
При переопределении метода public boolean animateChange(...) у ItemAnimator обязательно вызывать dispatchAnimationFinished(newHolder);
И еще крайне желательно сохранять созданные Animator's, чтобы суметь их остановить в переопределённых методах endAnimation(ViewHolder) и endAnimations.
Может ли интерактор иметь состояние? Например, кол-во уже загруженных элементов списка для пагинации. Но, если он может иметь состояние, то один интерактор может использоваться только с одним презентером...
Вся ли бизнес-логика должна содержаться в интеракторе? К примеру, на экране авторизации кнопка "Войти" должна быть enabled, только если в loginEditText введено больше 4 символов. Нужен ли в этом случае метод boolean canLogin(String login) в интеракторе?
Возможно, вы правы и пользователю не очень удобно будет перетаскивать панель контекстных действий. Но цель FloatingActionMode — не загораживать Toolbar, предоставляя действия над элементами списка. Перетаскивать его потребуется только в том случае, если он загородил нужный элемент. Хотя, можно и просто немного проскролить список, чтобы нужный элемент стал виден. Контекстные действия не всегда видны пользователю, поэтому я считаю, что появление/исчезновение и возможность перетащить панель таких действий имеют право на существование. И, как верно заметил MaxBykov, разработка таких вещей приносит пользу (и опыт).
Действительно, таких очень немного. Одно я делал для себя для домашнего использования, поэтому и появилась идея для этой библиотеки. При этом сам инструмент Annotation Processing может быть полезен во многих других областях.
По поводу 2 проблемы — исправить несложно. Сегодня вечером будет лучше. 3 проблему тоже можно исправить.
Реактивность была и правда добавлена для возможности выполнять запросы в фоне и применять rx-операторы к результатам.
В версии 2.1.0-alpha05 можно передать параметры в
startDestination
с помощьюNavHostFragment.create(R.navigation.nav_graph, bundleOf("id" to 42))
https://developer.android.com/guide/navigation/navigation-programmatic
На эту тему есть отличная книга "Простая одержимость" (Джон Дербишир)
Аналогично есть хорошая статья про анимирование списка.
Это, конечно, не нативный RecyclerView (move анимации не поддерживаются), но вполне себе удобно.
https://medium.com/flutter-community/the-magic-of-animatedlist-18afb2ba564c
GlobalKeys
могут быть очень полезны для получения текущегоState
виджета. С их помощью можно запустить обновлениеRefreshIndicator
по нажатию на кнопку или показать анимацию добавления / удаления элемента списка при использованииAnimatedList
.При переопределении метода
public boolean animateChange(...)
уItemAnimator
обязательно вызыватьdispatchAnimationFinished(newHolder);
И еще крайне желательно сохранять созданные
Animator
's, чтобы суметь их остановить в переопределённых методахendAnimation(ViewHolder)
иendAnimations
.Спасибо за отзыв! При желании длительность анимации можно уменьшить до 250-300 мс, чтобы не напрягать юзеров.
Доброе утро! У меня возникла пара вопросов:
enabled
, только если вloginEditText
введено больше 4 символов. Нужен ли в этом случае методboolean canLogin(String login)
в интеракторе?https://github.com/square/dagger-intellij-plugin
Реактивность была и правда добавлена для возможности выполнять запросы в фоне и применять rx-операторы к результатам.