私はRecyclerViewを実装しています。Android - RecyclerViewとListView
私はBindViewHolderをチェックするとすべてのコンポーネントがロードされており、ビューに表示されるまでに時間がかかります。
私はListViewを実装し、getViewもチェックした後、項目をはるかに高速に読み込みます。
私の質問は:RecyclerViewはすべてのビューのデフォルトを読み込むのですか、それとも間違ってコード化しましたか?
私は、それは目に見えるアイテムのような唯一の8項目の印刷だListViewのBaseAdapter
のために、通常のアダプタに
を使用しています。
ListView listView = (ListView) insertPoint.findViewById(R.id.filePicker);
listView.setAdapter(new FilePickerAdapter(mContext,listView));
はその後
public class FilePickerAdapter extends BaseAdapter{
ListView listView;
Context mContext;
public FilePickerAdapter(Context mContext,ListView listView) {
this.listView = listView;
}
@Override
public int getCount() {
return 100;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View grid;
if (convertView == null) {
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
grid = inflater.inflate(R.layout.filepicker_cell, parent, false);
} else {
grid = convertView;
}
System.out.println("Position : " + position);
return grid;
}
}
RecyclerView RecyclerView.Adapter<FilePickerAdapter.FilePickerViewHolder>
のためには、100の項目のすべてのアイテムのようなプリントです。
RecyclerView recycleView = (RecyclerView) insertPoint.findViewById(R.id.filePicker);
recycleView.setLayoutManager(new LinearLayoutManager(editorView,LinearLayoutManager.VERTICAL,false));
recycleView.setAdapter(new FilePickerRecycleAdapter(mContext,recycleView));
は、常にビューが表示されているときにトリガ "onBindViewHolder"
public class FilePickerRecycleAdapter extends RecyclerView.Adapter<FilePickerRecycleAdapter.FilePickerViewHolder> {
private Context mContext;
RecyclerView recyclerView;
public FilePickerRecycleAdapter(Context mContext,RecyclerView recyclerView) {
this.recyclerView = recyclerView;
this.mContext = mContext;
}
@Override
public FilePickerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.filepicker_cell, null);
return new FilePickerViewHolder(view);
}
@Override
public void onBindViewHolder(FilePickerViewHolder holder, int position) {
System.out.println("Position :" +position);
}
@Override
public int getItemCount() {
return 100;
}
public class FilePickerViewHolder extends RecyclerView.ViewHolder {
public TextView tvName;
public View view;
public ImageView imageView;
public FilePickerViewHolder(View itemView) {
super(itemView);
view = itemView;
tvName = (TextView) itemView.findViewById(R.id.name);
imageView = (ImageView) itemView.findViewById(R.id.folder_icon);
}
}
}
それだけで私たちがチェックすることができた後ので、コードを追加します。 – Piyush
あなたのコードに問題があります。あなたは 'RecuclerView'を悪用しています –
私に説明してください。 –