У меня есть собственный списокView, который содержит один закрепленный заголовок и x количество «выталкивающих» представлений, которые можно подтолкнуть вверх и скрыть над представлением списка.
Я приложил изображение, чтобы объяснить их. Извините за "черную цензуру", просто чтобы скрыть логотип клиентов и т.д.
Моя проблема в том, что если я добавлю дополнение к закрепленному представлению заголовка, я получу элементы списка, плавающие за ним.
Представление закрепленного заголовка реализовано с помощью той же техники, что и при поиске PinnedHeaderListView , то есть статического представления и заголовка в представлении списка.
Я нашел способ включить заполнение, а именно применить то же заполнение, что и закрепленный заголовок, к фактическому listView, но только когда виден статический заголовок.
Однако вызов setPadding вызывает довольно заметный 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 (slowdown) в то время, когда он включает/выключает статическое представление заголовка.