У меня проблемы с просмотром, который не обновляется в MotionLayout
.
Похоже, что в какой-то момент механизм обновления / перерисовки MotionLayout
перестает работать, и подвиды (включая вложенные) имеют случайные проблемы с обновлением на экране. Что я испытал до сих пор:
RecyclerView
иногда не обновляется. Это происходит, когда доступны новые данные, я использую библиотеку Paging для заполнения данных. Я исправил это с помощью обходного пути прокрутки 1 пикселя, когда я получил там новые данные -recyclerView.smoothScrollBy(0,1)
. После этогоRecyclerView
начинает нормально перерисовываться.- When the keyboard is opened it randomly messes the nested subview redrawing. There is an issue in github here where a guy reproduces all this by adding an
EditText
to officialMotionLayout
examples. Some examples of the problems that I'm seeing:- I'm using
TextInputLayout
withapp:endIconMode="clear_text"
inMotionLayout -> ConstraintLayout -> TextInputLayout
and theX
button is sometimes not shown when I start typing (also after closing the keyboard). TextView
перерисован частично! Я показываю"No Results"
или"No Posts"
текст вTextView
, переключаясь между ними на основе некоторой логики, но вместо обновления всего текста в пользовательском интерфейсе отображается только"No"
. Я отладил его, Layout Inspector говорит, что все в порядке, значение текстового представления"No Results"
, но я не вижу его на экране.- Некоторые другие анимации не работают, например, неопределенная анимация выполнения вложенных
SwipeRefreshLayout
- I'm using
ВАЖНО: все проблемы с обновлением / перерисовкой устраняются, когда я выполняю переход! Когда я прихожу в какое-то запутанное состояние, когда 3 вложенных подпредставления заморожены / частично нарисованы, мне просто нужно нажать кнопку, которая запускает мой переход, и все они с радостью перерисовываются!
Пожалуйста, дайте мне знать, если это известная проблема и есть ли способ ее решения. Возможно, я мог бы сделать невидимый переход в 1 пиксель, но я даже не могу определить, когда обновление MotionLayout
прерывается, обработка клавиатуры и новых данных RecyclerView
, похоже, не покрывает все случаи. В противном случае мне придется вернуться к ConstraintLayout
и самому подумать о реализации удивительной OnSwipe
функциональности (если это вообще возможно в ConstraintLayout
).