在fragment里面使用recyclerview
时间: 2024-05-12 15:19:45 浏览: 12
要在fragment中使用RecyclerView,需要执行以下步骤:
1.在fragment的布局文件中添加RecyclerView:
```
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2.在fragment中声明RecyclerView:
```
private RecyclerView mRecyclerView;
```
3.在onViewCreated()方法中初始化RecyclerView:
```
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mRecyclerView = view.findViewById(R.id.recyclerView);
// 设置RecyclerView的布局管理器
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
// 设置RecyclerView的适配器
mRecyclerView.setAdapter(new MyAdapter());
}
```
4.创建RecyclerView的适配器:
```
private class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData = new ArrayList<>();
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.textView.setText(mData.get(position));
}
@Override
public int getItemCount() {
return mData.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private TextView textView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.text);
}
}
}
```
5.在适配器中填充数据:
```
private void initData() {
for (int i = 0; i < 20; i++) {
mData.add("Item " + i);
}
}
```
6.在fragment的onCreate()方法中调用initData()方法,完成数据填充。
```
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initData();
}
```
注意:在使用RecyclerView时,需要注意数据填充的顺序。在适配器中填充数据时,需要先在fragment的onCreate()方法中调用initData()方法,完成数据填充,然后再在onViewCreated()方法中设置RecyclerView的适配器。这样才能保证RecyclerView中显示的是正确的数据。