Sat*_*esh 16 android listview android-5.0-lollipop android-recyclerview
我正在使用Support Library v7将ListView转换为RecyclerView.
我有2个不同的布局加载到RecyclerView.在ListView,我获得了getView()方法中项目的位置,并能够为该行加载适当的布局.但RecyclerView在onCreateViewHolder没有位置参数.
有没有其他方法来实现这一目标?
PS:来自Google的收件箱应用程序在RecyclerView(可能是)中显示不同的布局.我不认为他们可能ListView因为性能改进而使用了RecyclerView
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v=null;
MyVO vo = voList.get(???POSITION???);
switch(vo.getType()){
case TYPE_1:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout1, viewGroup, false);
break;
case TYPE_2:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout2, viewGroup, false);
break;
}
return new ViewHolder(v);
}
Run Code Online (Sandbox Code Playgroud)
rom*_*4ek 40
首先,覆盖getItemViewType方法:
@Override
public int getItemViewType(int position) {
//Implement your logic here
MyVO vo = voList.get(position);
return vo.getType();
}
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地使用第二个参数onCreateViewHolder:
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View v=null;
switch(viewType){
case TYPE_1:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout1, viewGroup, false);
break;
case TYPE_2:
v = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.layout2, viewGroup, false);
break;
}
return new ViewHolder(v);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12890 次 |
| 最近记录: |