1

私はRecyclerViewのアダプタとしてluizgrp/SectionedRecyclerViewAdapterからSectionedRecyclerViewAdapterを使用しています。Android SectionedRecyclerViewAdapterセクションヘッダー

私たちは以下のように、HeaderレイアウトでSectionedRecyclerViewAdapterSectionを追加することができます。section_1_loading.xmlで定義されているよう

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状態の間に、私はスピニングプログレスバーを示しています。しかし、私の問題は、セクションがまだloading stateであるときにすでに表示されているheaderです。状態を変更する前にヘッダーを非表示にしてloadedにするにはどうすればよいですか?

私は、loadedに状態を変更した後に、headerをセクションに追加すると考えました。しかし、セクションのヘッダーをセクションのコンストラクターに設定する唯一の方法はありません。

誰でも知っていますか?ありがとう!

+0

できるだけスナップショットを添付してください。 –

答えて

2

SectionedRecyclerViewAdapterクラスをオーバーライドしてみて、onBindViewHolderで、私はそれがアレクサンドルから上記のヒントで、今動作させるために、管理

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

+0

あなたのヒントをありがとう。私はそれを下の私のコードで動作させることができた、もう一度ありがとう! :D –

1

によって

if (section.hasHeader())

を交換してください。回避策は次のとおりです。

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

ありがとうございます!

関連する問題