何时实施RecyclerView绝对必要?

时间:2015-03-28 04:30:07

标签: android performance android-activity

我正在创建一个包含100个列表项的应用程序,并且想知道我是否可以通过不实现RecyclerView而逃脱,因为我发现很难实现它。

2 个答案:

答案 0 :(得分:1)

坦率地说,这取决于你,Listview让你很容易承担很多责任,这使你在必须展示大量数据时变得缓慢{{1}通过照顾或最小化的结构来做最好的事情。

RecyclerView非常容易实现,因此您将有机会学习Android的某些触控框架。

RecyclerView上执行动画非常简单,也比RecyclerView更好

使用Listview

制作自定义列表视图是小菜一碟

这是RecyclerView

的示例
RecyclerView
XML中的

 private RecyclerView recyclerView;
recyclerView = (RecyclerView)findViewById(R.id.recycler);
    MyViewComplainAdapter adapter = new MyViewComplainAdapter(getApplicationContext(), createComplainList());
    recyclerView.setAdapter(adapter);
    recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

你的适配器(无论你想叫什么......哈哈)

 <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scrollbars="vertical" />

是的,你必须使用这个方法创建一个 private class MyViewComplainAdapter extends RecyclerView.Adapter<MyViewComplainAdapter.MyViewComplainViewHolder>{ private Context _Context; private ArrayList<ViewMyComplainData> _List; private LayoutInflater _Inflater; public MyViewComplainAdapter(Context context, ArrayList<ViewMyComplainData> list){ _Context = context; _List = list; _Inflater = LayoutInflater.from(_Context); } @Override public MyViewComplainViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View layout = _Inflater.inflate(R.layout.single_item_view_my_complain,parent,false); MyViewComplainViewHolder holder = new MyViewComplainViewHolder(layout); return holder; } @Override public void onBindViewHolder(MyViewComplainViewHolder holder, int position) { ViewMyComplainData data = _List.get(position); holder.complaint_number.setText(data.getComplaint_Number()+""); holder.complaint_type.setText(data.getComplaint_Type()+""); holder.status.setText(data.getStatus()+""); } @Override public int getItemCount() { return _List.size(); } public class MyViewComplainViewHolder extends RecyclerView.ViewHolder{ TextView complaint_number; TextView complaint_type; TextView status; public MyViewComplainViewHolder(View itemView) { super(itemView); complaint_number = (TextView)itemView.findViewById(R.id.textView_complaint_number_single_item_view_my_complain); complaint_type = (TextView)itemView.findViewById(R.id.textView_complaint_type_single_item_view_my_complain); status= (TextView)itemView.findViewById(R.id.textView_status_single_item_view_my_complain); } } } createComplainList(),你应该弄清楚

答案 1 :(得分:0)

从技术上讲,RecyclerView并不需要像#34; notifyDataSetChanged()&#34;当您从列表中添加或删除某个项目时,这在性能上是一个巨大的进步。