我有一个对象列表,我有这样的文件: complete,complete,continue。我想在这三个部分对我的列表进行排序。首先,如果这个字段为true,我想添加header: INCOMPLETE和所有元素。在那之后,我想添加标题完成和再次元素,但与字段完成是真的,等等。这是可能的回收器视图?我该怎么做呢?
发布于 2016-02-28 15:24:27
我相信android没有这样的控制能力。您刚刚描述了ios表视图控件。也许你必须搜索一个自定义的分段回收器视图控件。例如,查看以下组件https://android-arsenal.com/details/1/2921
发布于 2016-02-28 15:31:46
我想最简单的方法就是在你的布局中设置3个回收站视图!
然后,只需根据这三个部分向每个视图添加项目。
现在,要添加标题,您只需拥有具有项目状态的文本视图,即完成等
我希望这能帮到你!
发布于 2016-04-04 18:27:41
您可以使用库SectionedRecyclerViewAdapter来实现这一点。您可以将项目分组为多个部分,并为每个部分添加标题:
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 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 sorted list of data
MySection incompleteSection = new MySection("", incompleteList);
MySection completeSection = new MySection("", completeList);
// add your sections to the adapter
sectionAdapter.addSection(incompleteSection);
sectionAdapter.addSection(completeSection);
// Set up your RecyclerView with the SectionedRecyclerViewAdapter
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(sectionAdapter);
https://stackoverflow.com/questions/35684217
复制