Android 回收器视图中的项目重叠
当用户滚动时,“我的回收器”视图中的项目重叠。请注意底部的重叠文本: 以下是生成此视图的代码:Android 回收器视图中的项目重叠,android,android-recyclerview,Android,Android Recyclerview,当用户滚动时,“我的回收器”视图中的项目重叠。请注意底部的重叠文本: 以下是生成此视图的代码: ArrayList<Bitmap> drawables = mBitmaps; RecyclerView recyclerView = new RecyclerView(ctx); LinearLayoutManager llm = new LinearLayoutManager(ctx); recyclerView.set
ArrayList<Bitmap> drawables = mBitmaps;
RecyclerView recyclerView = new RecyclerView(ctx);
LinearLayoutManager llm = new LinearLayoutManager(ctx);
recyclerView.setLayoutManager(llm);
RecyclerView.Adapter adapter = new MyRecyclerAdapter(contentList, uriList, drawables);
recyclerView.setAdapter(adapter);
((ViewGroup) rootView).addView(recyclerView);
这是我的ViewHolder
课程:
public class MyViewHolder extends RecyclerView.ViewHolder {
ViewGroup viewGroup;
MyViewHolder(View view){
super(view);
viewGroup = (ViewGroup)itemView;
}
}
要重申此问题,如何防止图像中出现重叠?问题已解决:
public void onBindViewHolder(MyViewHolder holder, int position) {
Context ctx = holder.itemView.getContext();
View view = getViewForCard(ctx, position); // getView for the card
holder.viewGroup.removeAllViews(); // **The problem solved here**
holder.viewGroup.addView(view);
}
我删除了
MyRecyclerAdapter
类中onBindViewHolder()
方法中holder.viewGroup
的所有视图。没有更多重叠:)。请将图像包含在问题正文中,并明确指出问题所在。@kdbanman,我提供了链接,请访问。我不能发布图片,因为我是新来堆叠的,因此没有足够的声誉(抱歉-我没有意识到这被声誉所阻止。我自己进行了编辑。如果编辑通过同行评审,那么你很快就会看到它。很好@kdbanman,非常感谢您的编辑。:)你可以重用你的ImageView,而不是每次绑定到它时都重新创建它。这肯定会降低性能。我同意@Submersed,因为它被称为recycleriveview
,但你的做法与回收视图相反。谢谢,它帮了我很多。我正在动态创建视图,removeAllViews修复了我的问题!
public void onBindViewHolder(MyViewHolder holder, int position) {
Context ctx = holder.itemView.getContext();
View view = getViewForCard(ctx, position); // getView for the card
holder.viewGroup.removeAllViews(); // **The problem solved here**
holder.viewGroup.addView(view);
}