2016-05-19 37 views
0

我已經設置了包含兩種不同數據格式的列表的回收站。帶有滾動標題的Recyclerview(如facebook邀請列表)

我想要複製Facebook邀請列表格式,在recyclerview中的第一個視圖是一個標題(Facebook的情況下的朋友請求),第一組數據將滾動到此標題下,然後作爲第二個數據格式進入視圖(人們可能知道在Facebook的情況下)一個新的標題將滾動並取代這個初始標題,並再次第二組數據將滾動此第二個標題下。

我有recyclerview設置與數據集和切換視圖,但任何想法如何實現'動態頭部效果'像Facebook?

謝謝。

回答

1

你可以用這個library來實現它。見下圖:

enter image description here

首先創建一個科類:

class MySection extends StatelessSection { 

    String title; 
    List<String> list; 

    public MySection(String title, List<String> list) { 
     // call constructor with layout resources for this Section header, footer and items 
     super(R.layout.section_header, R.layout.section_item); 

     this.title = title; 
     this.list = list; 
    } 

    @Override 
    public int getContentItemsTotal() { 
     return list.size(); // number of items of this section 
    } 

    @Override 
    public RecyclerView.ViewHolder getItemViewHolder(View view) { 
     // return a custom instance of ViewHolder for the items of this section 
     return new MyItemViewHolder(view); 
    } 

    @Override 
    public void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) { 
     MyItemViewHolder itemHolder = (MyItemViewHolder) holder; 

     // bind your view here 
     itemHolder.tvItem.setText(list.get(position)); 
    } 

    @Override 
    public RecyclerView.ViewHolder getHeaderViewHolder(View view) { 
     return new SimpleHeaderViewHolder(view); 
    } 

    @Override 
    public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder) { 
     MyHeaderViewHolder headerHolder = (MyHeaderViewHolder) holder; 

     // bind your header view here 
     headerHolder.tvItem.setText(title); 
    } 
} 

然後您設置RecyclerView與節:

// Create an instance of SectionedRecyclerViewAdapter 
SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter(); 

// Create your sections with the list of data for each year 
MySection section1 = new MySection("Header 1", section1DataList); 
MySection section2 = new MySection("Header 2", section2DataList); 

// Add your Sections to the adapter 
sectionAdapter.addSection(section1); 
sectionAdapter.addSection(section2); 

// Set up your RecyclerView with the SectionedRecyclerViewAdapter 
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview); 
recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 
recyclerView.setAdapter(sectionAdapter); 
+0

優秀的,我給這個現在去吧。 – ScottishUser