У меня есть пользовательский listView, который содержит один закрепленный заголовок и х количество "отжимающих" представлений, которые могут быть выдвинуты и скрыты над списком.
Я приложил изображение, чтобы объяснить их. Извините за "черную цензуру", просто чтобы скрыть логотип клиентов и т.д.
Моя проблема в том, что если я добавлю добавление к прикрепленному представлению заголовка, я получу элементы списка, плавающие за ним.
Прикрепленное представление заголовка реализовано с той же техникой, что и вы, если вы будете искать PinnedHeaderListView, то есть статический вид и заголовок в списке.
У меня есть способ включить заполнение, и это путем применения того же дополнения, что и прикрепленный заголовок, к фактическому listView, но только тогда, когда отображается статический заголовок.
Однако вызов setPadding вызывает видимый Jank, который я бы хотел удалить. Кто-нибудь знает, как удалить этот jank?
У меня есть простое приложение с простыми представлениями и фиктивными данными, которое не показывает этот jank, поэтому, возможно, количество jank зависит от сложности компоновки ячеек.
private void updateIfShouldShowStaticHeaderView() {
//unfortunately setting the padding of the listView causes JANK.
//any ideas?
int bottomOfFloatingHeader = floatingHeader.getBottom();
if (bottomOfFloatingHeader < mHeaderViewHeight) {
staticHeaderViewIsVisible = true;
staticHeader.setVisibility(View.VISIBLE);
//need to set padding of listView to avoid having list-view items float behind my padded static header
setPadding(0, staticHeader.getPaddingTop(), 0, getPaddingBottom());
} else {
staticHeaderViewIsVisible = false;
staticHeader.setVisibility(View.INVISIBLE);
//need to set padding of listView to avoid having list-view items float behind my padded static header
setPadding(0, 0, 0, getPaddingBottom());
}
}
Прежде всего, это изображение, показывающее вытолкнутые заголовки
Вот изображение, показывающее, как вещи рисуются за проложенным статическим приподнятым представлением. Стоит отметить, что он работает как намеренный, если я настраиваю прописку listView, но я получу Jank (замедление), когда он включит/выключит статический заголовок.