我有100个项目的清单。我正在使用带有自定义适配器的recyclerview。
似乎所有项目都在导致OOM的相同时间加载,因为我正在加载大图像。
我对listview没有任何问题,因为listview不会一次加载所有内容。
我听说recyclerview会在棒棒糖上一次性加载所有内容,但我该如何解决?
def stringToIntList(string: String) : List[Int] = {
string.filter(o => o.isDigit || o.equals(',')).split(',').map(o => o.toInt).toList
}
没有开始滚动输出
I / System.out:加载项目!!!!!!!!!!!!!!!!!
X100次
更新:
这是我的布局代码
public class ProductAdapter extends RecyclerView.Adapter<ProductViewHolder> {
List<Produit> list;
private Context ac;
private int nbColumn;
public ProductAdapter(List<Produit> list, Context ac)
{
this.list = list;
this.ac = ac;
this.nbColumn = 2;
}
public ProductAdapter(List<Produit> list, Context ac, int nbColumn)
{
this.list = list;
this.ac = ac;
this.nbColumn = nbColumn;
}
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup viewGroup, int itemType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_product,viewGroup,false);
return new ProductViewHolder(view);
}
public void setNbColumn(int nb)
{
this.nbColumn = nb;
}
@Override
public void onBindViewHolder(final ProductViewHolder myViewHolder, int position) {
if (list != null) {
System.out.println("LOAD ITEM!!!!!!!!!!!!");
final Produit myObject = list.get(position);
myViewHolder.bind(myObject);
}
}
@Override
public int getItemCount() {
return list.size();
}
}
答案 0 :(得分:1)
将android:layout_height
的{{1}}设置为RecyclerView
或某个常量值。
修改强>
显然它没有帮助,因为你把它全部包裹在match_parent
中。
我建议删除NestedScrollView
并将NestedScrollView
中的所有观点合并到另一个用作RelativeLayout
答案 1 :(得分:1)
我部分地弄明白了我的问题。删除NestedScrollView后,我的Recyclerview的行为按预期工作。问题是如何将NestedScrollView和RecyclerView结合起来?
谢谢
答案 2 :(得分:0)
将if (list != null)
替换为if (myViewHolder != null)
,它将按预期工作