3

我正在使用来自luizgrp/SectionedRecyclerViewAdapter的 SectionedRecyclerViewAdapter作为我的 RecyclerView 的适配器。

我们可以添加Section到布局SectionedRecyclerViewAdapterHeader,如下所示:

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. 但似乎不能作为设置 Section 标题的唯一方法是在 Section 的构造函数中。

有人有什么想法吗?谢谢!

4

2 回答 2

3

尝试覆盖SectionedRecyclerViewAdapter类并onBindViewHolder替换

if (section.hasHeader())

经过

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

于 2017-05-19T08:15:21.820 回答
2

我现在设法让它工作,上面有亚历山大的提示。解决方法是:

// 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);

谢谢!

于 2017-05-20T04:10:33.253 回答