Пользовательский ListView с закрепленным заголовком, вызывающий дерганье при настройке отступов

У меня есть собственный listView, который содержит один закрепленный заголовок и x количество представлений «push -up», которые можно подтолкнуть вверх и скрыть над представлением списка.

Я приложил изображение, чтобы объяснить их. Извините за «черную цензуру», просто чтобы скрыть логотип клиентов и т. д.

Моя проблема в том, что если я добавлю дополнение к закрепленному представлению заголовка, я получу элементы списка, плавающие за ним.

Представление закрепленного заголовка реализовано с помощью той же техники, что и при поиске 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());
    }
}

Во-первых, это изображение, показывающее сдвинутые заголовки -.showing the pushed-up headers

Вот изображение, показывающее, как объекты отрисовываются за дополненным статическим закрепленным представлением. Стоит отметить, что он работает так, как задумано, если я настрою заполнение listView, но я получу замедление Jank (), когда он включает/выключает статическое представление заголовка.

showing the error that is visible if I do not adjust padding

10
задан havchr 12 July 2012 в 12:56
поделиться