Android Recyclerview无限滚动
我想用Adapters和RecyclerViews编写无休止的滚动代码,我正在从JSON获取我的项目。虽然我已经阅读了这些指南(Codepath和github),但我发现很难将其应用到我自己的场景中 我的json有以下格式: 以下是我正在使用的代码: 片段:Android Recyclerview无限滚动,android,android-recyclerview,android-volley,Android,Android Recyclerview,Android Volley,我想用Adapters和RecyclerViews编写无休止的滚动代码,我正在从JSON获取我的项目。虽然我已经阅读了这些指南(Codepath和github),但我发现很难将其应用到我自己的场景中 我的json有以下格式: 以下是我正在使用的代码: 片段: 更改适配器的此重写方法: @Override public int getItemCount() { return Integer.MAX_VALUE; } 并使用此方法使用位置获取模型对象: private Data getIt
更改适配器的此重写方法:
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}
并使用此方法使用位置获取模型对象:
private Data getItem(int position) {
return my_data.get(position % my_data.size());
}
由于您使用的是RecyclerView
因此不会创建新对象,并且列表中会重复填写您的项目。请考虑使用。谷歌建议做无休止的滚动。
public class Data2Adapter extends RecyclerView.Adapter<Data2Adapter.ViewHolder> {
private Context context;
private List<Data> my_data;
public Data2Adapter(Context context, List<Data> my_data) {
this.context = context;
this.my_data = my_data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.anim_grid,parent,false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.description.setText(my_data.get(position).getTitle());
Glide.with(context).load(my_data.get(position).getCapa()).into(holder.imageView);
}
@Override
public int getItemCount() {
return my_data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView description;
public ImageView imageView;
public ViewHolder(View itemView) {
super(itemView);
description = (TextView) itemView.findViewById(R.id.textview7);
imageView = (ImageView) itemView.findViewById(R.id.imageview1);
}
}
}
public class Data {
private int id;
private String title,capa;
public Data(int id, String title, String capa) {
this.id = id;
this.title = title;
this.capa = capa;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCapa() {
return capa;
}
public void setCapa(String capa) {
this.capa = capa;
}
}
@Override
public int getItemCount() {
return Integer.MAX_VALUE;
}
private Data getItem(int position) {
return my_data.get(position % my_data.size());
}