嗨,大家好,我試圖用不同的集合填充RecyclverView
..例如我有2個列表讓我們說客戶名單和供應商名單。不同類型的回收站
我想實現的是:
- 顧客頭
客戶1
客戶2
- 供應商頭
供應商1
供應商2
這可能嗎?謝謝。
對不起,我的英語
嗨,大家好,我試圖用不同的集合填充RecyclverView
..例如我有2個列表讓我們說客戶名單和供應商名單。不同類型的回收站
我想實現的是:
客戶1
客戶2
供應商1
供應商2
這可能嗎?謝謝。
對不起,我的英語
有可能與RecyclerView
要做到這一點,你應該重寫getItemViewType()
方法。
像這樣:
private class CustomAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int TYPE_1 = 1;
private static final int TYPE_2 = 2;
private static final int TYPE_3 = 3;
// more types...
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case TYPE_1:
break;
case TYPE_2:
break;
case TYPE_3:
break;
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case TYPE_1:
break;
case TYPE_2:
break;
case TYPE_3:
break;
}
}
@Override
public int getItemViewType(int position) {
if(position == 1) {
return TYPE_1;
} else if(position == 2) {
return TYPE_2;
} else
return TYPE_3
}
@Override
public int getItemCount() {
return 10;
}
}
可以使科recyclerview像這樣
public class MainAdapter extends SectionedRecyclerViewAdapter<MainAdapter.MainVH> {
@Override
public int getSectionCount() {
return 20; // number of sections.
}
@Override
public int getItemCount(int section) {
return 8; // number of items in section (section index is parameter).
}
@Override
public void onBindHeaderViewHolder(MainVH holder, int section) {
// Setup header view.
}
@Override
public void onBindViewHolder(MainVH holder, int section, int relativePosition, int absolutePosition) {
// Setup non-header view.
// 'section' is section index.
// 'relativePosition' is index in this section.
// 'absolutePosition' is index out of all non-header items.
// See sample project for a visual of how these indices work.
}
@Override
public MainVH onCreateViewHolder(ViewGroup parent, int viewType) {
// Change inflated layout based on 'header'.
View v = LayoutInflater.from(parent.getContext())
.inflate(viewType == VIEW_TYPE_HEADER ? R.layout.header : R.layout.normal, parent, false);
return new MainVH(v);
}
public static class MainVH extends RecyclerView.ViewHolder {
public MainVH(View itemView) {
super(itemView);
// Setup view holder.
// You'd want some views to be optional, e.g. for header vs. normal.
}
}
}
https://github.com/afollestad/sectioned-recyclerview
Wah bhura .. !! ! – Piyush
您可以在適配器中重寫此方法[getItemViewType()](http://stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type); – Eric