我使用以下适配器添加了RecyclerView,并且未使用任何图像设置器。它可以正确设置项目,但在滚动时会滞后。我在另一个活动中使用了几乎相同的适配器,但是它可以克服任何延迟
公共类TableAdapter扩展了RecyclerView.Adapter {
private List<ItemTableClass> items;
Context mContext;
public class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView teams, groups, wins, looses, draws, points, plays, differences;
public MyViewHolder(View itemView) {
super(itemView);
init();
}
private void init() {
imageView = itemView.findViewById(R.id.flagImg);
teams = itemView.findViewById(R.id.teamName);
groups = itemView.findViewById(R.id.groups);
wins = itemView.findViewById(R.id.wins);
looses = itemView.findViewById(R.id.looses);
draws = itemView.findViewById(R.id.draws);
points = itemView.findViewById(R.id.points);
plays = itemView.findViewById(R.id.plays);
differences = itemView.findViewById(R.id.difference);
}
}
public TableAdapter(List<ItemTableClass> items, Context mContext) {
this.items = items;
this.mContext = mContext;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.table_item, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int
ItemTableClass itemTableClass = items.get(position);
holder.differences.setText(itemTableClass.
holder.groups.setText(itemTableClass.
holder.teams.setText(itemTableClass.
holder.draws.setText(itemTableClass.
holder.looses.setText(itemTableClass.
holder.plays.setText(itemTableClass.getPlays());
holder.points.setText(itemTableClass.getPoints());
holder.wins.setText(itemTableClass.getWins());
}
@Override
public int getItemCount() {
return items.size();
}
}
答案 0 :(得分:0)
在适配器中添加这两种方法,然后尝试一下。
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
答案 1 :(得分:0)
无法发表评论,所以要在答案中发表。
Pl共享R.layout.table_item以查看其中是否存在任何复杂性。还要共享ItemTableClass,以便我们可以了解您的getter方法中是否正在进行大量计算。
这不是您问题的直接答案,但您可以在扩大版面时使用mContext
代替parent.getContext()
。
答案 2 :(得分:0)
无法发表评论,所以要在答案中发表。
Pl共享R.layout.table_item以查看它是否包含任何复杂性。还要共享ItemTableClass,以便我们可以了解您的getter方法中是否正在进行大量计算。
这不是您问题的直接答案,但是您在扩大版面时可以使用mContext
而不是parent.getContext()
。
答案 3 :(得分:0)
如果您有一个太多视图的复杂列表项试图摆脱大多数视图,并且当用户单击列表项时,打开一个新活动,其中包含该项目的更多详细信息,其中包含所有所需的视图,则可能会发生这种情况