我正在尝试聚焦于recyclerview中的特定项。当使用recyclerview时,listview.setSelection(position)
的等效方法是什么?
我正在尝试聚焦于recyclerview中的特定项。当使用recyclerview时,listview.setSelection(position)
的等效方法是什么?
要请求RecyclerView的LayoutManager在下一次布局传递中滚动到给定位置(它是异步的),请调用RecyclerView.scrollToPosition(position)
。
如果要请求聚焦项目视图,则该视图必须是可聚焦的,并且您需要调用View.requestFocus()
。
如果在您想要对其进行聚焦时视图尚未布局,您可以在调用onViewAttachedToWindow()
之后立即调用View.requestFocus()
。
public class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView, int viewType) {
super(itemView);
}
public void setImage(String imagePath) {
ImageView imageView = (ImageView) itemView.findViewById(R.id.images);
if (null == imageView) return;
final File file = new File(imagePath);
if (file.exists()) {
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
imageView.setImageBitmap(bitmap);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(context, FullScreenImageActivity.class);
i.putExtra("image_path", file.getAbsolutePath());
context.startActivity(i);
}
});
}
}
}
Adapter.onViewAttachedToWindow()
中调用它。 您可以检查ViewHolder.getAdapterPosition()
。 - BladeCoder