RecyclerView
是 Android 平台上的一个用于展示大量数据集合的组件。它通过重用已经滑出屏幕的视图来提高性能,避免了像 ListView
那样每次滚动都创建新视图的开销。RecyclerView
的核心概念包括:
findViewById
的调用次数。Adapter
没有正确设置。LayoutManager
设置不正确,或者布局文件中的视图 ID 错误。ViewHolder
没有正确使用,或者数据绑定逻辑复杂。以下是一个简单的 RecyclerView
示例,展示了如何使用 LinearLayoutManager
和自定义 Adapter
:
// 数据模型
public class Item {
private String title;
public Item(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
}
// Adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<Item> items;
public MyAdapter(List<Item> items) {
this.items = items;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.textView.setText(items.get(position).getTitle());
}
@Override
public int getItemCount() {
return items.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public MyViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
}
// 在 Activity 中使用
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private MyAdapter adapter;
private List<Item> items = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
items.add(new Item("Item 1"));
items.add(new Item("Item 2"));
adapter = new MyAdapter(items);
recyclerView.setAdapter(adapter);
}
}
通过以上内容,你应该对 RecyclerView
的模型有了全面的了解,并且知道如何解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云