我正在创建一个包含100个列表项的应用程序,并且想知道我是否可以通过不实现RecyclerView而逃脱,因为我发现很难实现它。
答案 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;当您从列表中添加或删除某个项目时,这在性能上是一个巨大的进步。