RecyclerView 显示指定的item
时间: 2023-11-16 19:22:44 浏览: 114
recyclerView实现item视频播放
要在 RecyclerView 中显示指定的 item,可以使用 RecyclerView 的 scrollToPosition() 方法来滚动到指定位置。具体实现步骤如下:
1. 在 RecyclerView 的 Adapter 中添加一个方法,用来获取指定位置的数据。
2. 在 Activity 或 Fragment 中获取 RecyclerView 的实例,并调用 Adapter 的获取指定位置数据的方法,获取需要显示的数据。
3. 在获取到需要显示的数据后,计算出该数据在 RecyclerView 中的位置,然后调用 RecyclerView 的 scrollToPosition() 方法滚动到该位置。
下面是一个简单的示例代码:
```
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
private List<MyData> mDataList;
public MyData getItemAt(int position) {
return mDataList.get(position);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
MyData data = mDataList.get(position);
holder.bind(data);
}
}
public class MyActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mRecyclerView = findViewById(R.id.recycler_view);
mAdapter = new MyAdapter();
mRecyclerView.setAdapter(mAdapter);
// 获取需要显示的数据
MyData data = mAdapter.getItemAt(10);
// 计算出该数据在 RecyclerView 中的位置
int position = mAdapter.getItemCount() > 0 ? mAdapter.getItemCount() - 1 : 0;
for (int i = 0; i < mAdapter.getItemCount(); i++) {
if (mAdapter.getItemAt(i) == data) {
position = i;
break;
}
}
// 滚动到该位置
mRecyclerView.scrollToPosition(position);
}
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private TextView mTextView;
public MyViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
}
public void bind(MyData data) {
mTextView.setText(data.getText());
}
}
```
阅读全文