Странное отсечение при анимации видов

Я пытаюсь создать эффект переключения открытия/закрытия группы плавающих кнопок действий, и я получаю странный горизонтальный серый артефакт обрезки над кнопками, который я не могу понять. Похоже, над кнопками рисуется вид с непрозрачным фоном, но я не могу понять, почему. Я считаю, что все соответствующие фоны установлены как android:color/transparent.

Вы можете увидеть почти рабочий пример здесь: http://g.recordit.co/dunm1iKpFJ.gif

Я выкладываю эти виджеты с помощью LinearLayout (слишком ленив, чтобы вычислять позиции... это плохая идея?) и, прежде чем они будут выведены на экран, я захватываю развернутые позиции и устанавливаю их в "свернутом" состоянии. Отсюда я анимирую все элементы вместе, используя AnimatorSet, в расширенные позиции. Я также должен отметить, что я использую прослушиватель обновлений для обновления высоты (аналогично https://stackoverflow.com/a/16355027/413254).

Я не думаю, что это самое элегантное решение... вероятно, следует сделать это настраиваемым представлением (группой). Я не могу заставить себя оставить это, по крайней мере, не выяснив, что происходит.

Примечание. Я бы использовал https://github.com/futuresimple/android-floating-action-button, но не поддерживает метки с FAB.


person loeschg    schedule 11.11.2014    source источник
comment
Примечание. Вероятно, следует попробовать использовать github.com/guerwan/TransitionsBackport.   -  person loeschg    schedule 11.11.2014
comment
не удается открыть ваш, например: g.recordit.co/dunm1iKpFJ.gif Код: AccessDenied Message: Access Отказано.. я также столкнулся с проблемами с анимацией при использовании LinearLayout, вы пробовали RelativeLayout.   -  person Mohammed Ali    schedule 11.11.2014
comment
Обновил гифку. Не знаю, что там произошло.   -  person loeschg    schedule 11.11.2014


Ответы (1)


Казалось, что проблема заключается в одновременном перемещении представлений и изменении размера родительского контейнера. В итоге я обошел это, изменив размер высоты нижнего вида.

person loeschg    schedule 12.11.2014
comment
Другим решением может быть установка android:clipToChildren="false" в родительском контейнере. - person Alex Lockwood; 13.11.2014