0
뷰 홀더 패턴에 대한 질문이 있습니다. 내가보기 홀더와 재활용 뷰를 가지고 있고, 구글에서 사람이 가장 좋은 방법은 다음과 같이 그것을 구현하는 것이라고 말했다RecyclerView, happyVewHolder 패턴
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<ListItem> listItems;
private Context context;
public MyAdapter(List<ListItem> listItems, Context context) {
this.listItems = listItems;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
final ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bindTo(listItems.get(position), context);
}
@Override
public int getItemCount() {
return listItems.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
private TextView txtHead;
private TextView txtDesc;
private ImageView imageView;
public ViewHolder(View itemView) {
super(itemView);
txtHead = (TextView) itemView.findViewById(R.id.txtHead);
txtDesc = (TextView) itemView.findViewById(R.id.txtDescription);
imageView = (ImageView) itemView.findViewById(R.id.imageView);
}
public void bindTo(ListItem item, Context context){
txtHead.setText(item.getHead());
txtDesc.setText(item.getDesc());
Picasso.with(context)
.load(item.getImageUrl())
.into(imageView);
}
}
}
당신이 onBind 방법을 보면, 그것은보기 홀더 클래스의 메소드를 호출 . 이는 Google의 RecyclerView 팀원이 작성한 지침에 따라 구현되었습니다. 제 질문은이 점이 더 나은 이유입니다.
기본적으로 현명한 성능 현명한이 무엇입니까? –
뷰 홀더 패턴은 성능 향상을 위해 매우 중요하지만 어댑터 또는 뷰 홀더에 바인딩 코드가 있으면 코드를 구성하기 만하면됩니다 – elmorabea