Android 回收器视图在棒棒糖上无法平滑滚动

Android 回收器视图在棒棒糖上无法平滑滚动,android,Android,我有一个RecyclerView,它显示一个图像、几个文本视图和两个图像按钮。 该程序在安卓4.4.4及以下版本中运行完全正常,但在棒棒糖上滚动不顺畅 在棒棒糖中滚动时会有某种滞后/急促的感觉。 我试图通过覆盖fling方法来降低滚动速度,但似乎没有这样的方法来解决我的问题 public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.CustomViewHolder> { @

我有一个RecyclerView,它显示一个图像、几个文本视图和两个图像按钮。 该程序在安卓4.4.4及以下版本中运行完全正常,但在棒棒糖上滚动不顺畅

在棒棒糖中滚动时会有某种滞后/急促的感觉。 我试图通过覆盖fling方法来降低滚动速度,但似乎没有这样的方法来解决我的问题

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.CustomViewHolder> {



@Override
public RecyclerViewAdapter.CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    if (viewType == TYPE_ITEM) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view, parent, false);
        return new CustomViewHolder(view, viewType);
    } else if (viewType == TYPE_HEADER) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.header, parent, false);
        return new CustomViewHolder(view, viewType);
    }
    return null;
}

@Override
public void onBindViewHolder(final RecyclerViewAdapter.CustomViewHolder holder, int position) {

    if (holder.Holderid == 1) {
        final MenuDescription menu = listOrder.get(position - 1);


        Glide.with(context).load(menu.getFlag_path()).placeholder(R.drawable.ic_order_now).fitCenter().into(holder.image);

    } 
}

@Override
public int getItemCount() {
    return (null != listOrder ? listOrder.size() + 1 : 0);
}


}
公共类RecycleServiceAdapter扩展了RecyclerView.Adapter{
@凌驾
public RecycleServiceAdapter.CustomViewHolder onCreateViewHolder(视图组父级,int-viewType){
if(viewType==类型\项){
View View=LayoutInflater.from(parent.getContext()).flate(R.layout.recycler\u视图,parent,false);
返回新的CustomViewHolder(视图,viewType);
}else if(viewType==类型\标题){
View=LayoutInflater.from(parent.getContext()).flate(R.layout.header,parent,false);
返回新的CustomViewHolder(视图,viewType);
}
返回null;
}
@凌驾
BindViewHolder上的公共无效(最终RecycleServiceAdapter.CustomViewHolder,int位置){
if(holder.Holderid==1){
final MenuDescription menu=listOrder.get(位置-1);
Glide.with(context).load(menu.getFlag_path()).placeholder(R.drawable.ic_order_now).fitCenter()插入(holder.image);
} 
}
@凌驾
public int getItemCount(){
返回值(null!=listOrder?listOrder.size()+1:0);
}
}
}问题已解决。 我在adapter类中为非常textview设置字体,这似乎消耗了太多的RAM。我没有使用setTypeface方法设置字体,而是创建了一个自定义textview,并从XML设置字体


正在加载的图像的大致大小是多少。当我尝试在每个recyclerview项目中加载沉重的图像时,我遇到了同样的问题。目前我没有下载图像。我只是使用占位符图像。但是它的尺寸大约是320 X 180。哦,我是说图像文件大小。如果可能,尝试绘制空的ImageView,或者使用一些文件大小非常小的图像,看看这是否是问题所在。只是一个建议。我目前没有下载任何图片。相反,我使用的占位符图像大小为1.20KB,尺寸为120x120。问题仍然存在。我发现我做错了什么。正在为适配器内的recycler视图项中的每个textview设置字体,这会消耗太多的RAM。我已经阅读了这篇文章,还没有找到为什么它会优化RAM。我通常使用TextView并创建一个将字体加载到内存中的单例类。之后,将此字体应用于任何文本视图,没有内存泄漏或其他问题。