Android中的RecyclerView

山有木xi發表於2020-03-09

ListView有著強大的功能,但是也有著缺點,那就是在使用時會getView每次都會重新載入一遍佈局,重新findViewByid一次,當ListView快速滾動時,就會成為效能瓶頸,當然我們可以使用技巧來提高執行速率,但是那也是有限的提升,而且ListView不能實現橫向滾動,這時候就需要一個新的控制元件,RecycleView

首先定義一個類Abc

public class Abc{
private String name;
private  int imageid;
public Abc(String name,int iamgeid){
this.name=name;
this.imageid=imageid;
}
public String getname(){
return name;
}
public int getimageid(){
return imageid;
}
}

然後準備介面卡

public class AbcAdapter extands RecyclerView.Adapter<AbcAdapter.ViewHolder>{
private List<Abc> m;
public class ViewHolder extands RecyclerView.ViewHolder{
ImageView abcimage;
TextView abctext;
public class ViewHolder(View view){
super(view);
abcimage=(ImageView) findViewByid(R.id.XXX);
abctext=(TextView) findVieByid(R.id.XX);
}
}
public AbcAdapter (List<Abc>abc){
m=abc;
}
public ViewHolder onCreateViewHolder(ViewGroup parent,int Viewtype){
View view=LayoutInflate.from(parent.getContext()).inflate(R.layout.abc_item,parent,false);
ViewHolder holder= new ViewHolder(view);
return holder;
}
public ViewHolder onBindViewHolder(ViewHolder holder int position){
Abc abc=m.get(position);
holder.iamge.setImageResource(abc.getimage);
holder.name=setText(abc.gettext);
}
public int getItemCount(){
return m.size();
}
}

最後在MainActivity

XXX//載入資料,自定義函式在函式中載入需要顯示的資料
RecyclerView recycler= (RecyclerView)findViewByid(R.id.XXX);
LinearLayoutManager LayoutManager= new LinearLayoutManager(thsi);
recycler.setLayoutmanager(layoutmanager);
AbcAdapter dapter= new AbcAdapter(m);//m是集合,上面應該定義一個集合
recyclerView.setAdapter(adapter);


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2679099/,如需轉載,請註明出處,否則將追究法律責任。

相關文章