Я испытываю странное поведение в моем приложении, у меня есть BottomSheetBehavior
, и когда пользователь перетаскивает Нижний лист (или, как он программно установлен на Expand
), View
внутри меняются, постепенно, пропорционально на сумму BottomSheetBehavior
slide
.
Итак, некоторые View
сокращаются, другие расширяются, другие постепенно исчезают, а другие постепенно исчезают (альфа-изменение пропорционально slide
).
У меня есть Button
, который запускает расширение нижнего листа, и при первом нажатии кнопки наблюдается визуальная задержка анимации View
внутри нижнего листа. Но после повторного сворачивания Нижнего листа, в любой другой раз, когда я запускаю exapand, визуальная задержка отсутствует. Это происходит только при первом раскрытии Нижнего листа.
Несмотря на то, что я говорю об «анимации», это используется только как термин, я не использую никаких каркасов анимации, View
s и ViewGroup
s width
, height
и alpha
меняются при каждом обновлении значения slide
, таким образом, пользователь воспринимает анимацию.
Я попытался профилировать расширение Bottom Sheet, и вот что я получил:
![GPU Profile 1](https://i.stack.imgur.com/Csezx.png)
Первый большой всплеск - это первое расширение Bottom Sheet. Другие намного меньше и являются последующими расширениями.
Вот еще один пример:
![GPU Profile 2](https://i.stack.imgur.com/3r6Ti.png)
Нет кода, запускаемого при первом запуске, который не запускается впоследствии, в первом запуске нет ничего особенного, а RecyclerView
внутри нижнего листа содержит только 5 элементов, которые загружаются до запуска расширения.
Я действительно не могу объяснить это поведение, оптимизирует ли Android Framework View
s после первой манипуляции с ними? Как сделать их более совместимыми с рендерингом с помощью графического процессора?