Android SectionedRecyclerViewAdapter Заголовок раздела

Я использую SectionedRecyclerViewAdapter из https://github.com/luizgrp/SectionedRecyclerViewAdapter качестве адаптера для моего RecyclerView.

Мы можем добавить Section в SectionedRecyclerViewAdapter с Header макет, как показано ниже:

public class Section1 extends Section {
    public Section1 () {
        super(
                R.layout.section_1_header,
                R.layout.section_1_item,
                R.layout.section_1_loading,
                R.layout.section_1_failed
        );
    }

    .....
}


.....


Section1 section1 = new Section1();
section1.setState(Section.State.LOADING);

SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();
sectionAdapter.addSection(section1);

recyclerView.setAdapter(sectionAdapter);

В течение loading состояние, я показываю вращающийся индикатор выполнения, как определено в section_1_loading.xml, Но моя проблема заключается в header уже отображается, когда раздел еще в loading state, Как скрыть заголовок перед изменением состояния на loaded?

Я думал только добавить header Раздел после изменения состояния на loaded, Но, кажется, не может, так как единственный способ установить заголовок Раздела в конструкторе Раздела.

У кого-нибудь есть идеи? Спасибо!

2 ответа

Решение

Попробуйте переопределить класс SectionedRecyclerViewAdapter и в onBindViewHolder замещать

if (section.hasHeader())

от

if (section.hasHeader() && section.getState() != Section.State.LOADING)

Мне удалось заставить это работать теперь, с подсказками выше от Александра. Обходной путь:

// loading state - set no header so header section is hidden
section1.setHasHeader(false);
section1.setState(Section.State.LOADING);

....
....

// loaded state - set has header so header section is shown
section1.setHasHeader(true);
section1.setState(Section.State.LOADED);

Спасибо!

Другие вопросы по тегам