2016-09-01 22 views
0

私は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); 
     } 
    } 
} 
+0

それだけで私たちがチェックすることができた後ので、コードを追加します。 – Piyush

+1

あなたのコードに問題があります。あなたは 'RecuclerView'を悪用しています –

+0

私に説明してください。 –

答えて

関連する問題