saf*_*ari 13 android android-cardview recycler-adapter android-recyclerview
我想做什么
此刻,我正在RecyclerView和我一起玩CardView.现在我写了一个RecyclerView.Adapter,我可以用不同的内容多次显示相同的CardView - 类似于ListViewa BaseAdapter.
现在我想写一个RecyclerView不同CardView-Layout的(以Google Now的风格).我已经搜索了教程,但没有发现有关该主题的任何有用信息.有人知道,这需要如何实施?要意识到这一点需要做些什么?
Gen*_*eti 18
要实现你想要的东西,你需要覆盖getItemViewType(position)你的RecyclerView.Adapter,你将返回一个int告诉你将使用什么样的视图来代表这个位置的地方.
接下来,您将创建不同的ViewHolders内容createViewHolder (parent,viewType),以保留对您的案例中每个不同的CardLayout的引用.
然后,bindViewHolder(holder, position)您可以创建一个switch语句,或者if else case来查看可能的视图列表并用数据填充它们.
示例代码如下:
public GeneralViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
GeneralViewHolder holder;
View v;
Context context = viewGroup.getContext();
if (viewType == FIRST_TYPE) {
v = LayoutInflater.from(context)
.inflate(R.layout.first_card, viewGroup, false);
holder = new FirstTypeViewHolder(v); //Of type GeneralViewHolder
} else {
v = LayoutInflater.from(context)
.inflate(R.layout.second_card, viewGroup, false);
holder = new SecondTypeViewHolder(v);
}
return holder;
}
public void onBindViewHolder(GeneralViewHolder viewHolder, int i) {
if(getItemViewType(i)==FIRST_TYPE) {
FirstTypeViewHolder holder1 = (FirstTypeViewHolder)viewHolder;
} else {
SecondTypeViewHolder holder1 = (SecondTypeViewHolder)viewHolder;
}
}
public int getItemViewType (int position) {
//Some logic to know which type will come next;
return Math.random()<0.5 ? FIRST_TYPE : SECOND_TYPE;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9018 次 |
| 最近记录: |