问题描述:
RecyclerView 的外层套了一个NestedScrollView,导致RecyclerView 每条数据加载的时候都会调用onCreateViewHolder()和onBindViewHolder(),在数据量小的时候问题不明显;等数据量达到一定程度的时候就会导致创建的View过多,程序运行过程中产生了大量的垃圾数据,导致进程不断的发生GC影响UI主线程。
mRecyclerView.getLayoutManager().setAutoMeasureEnabled(false);
设置上面属性可以避免以上问题,但失去了本身设计用来提供支持WRAP_CONTENT的功能
api要点:
1、This method is usually called by the LayoutManager with value true if it wants to support WRAP_CONTENT.
通常调用这个方法设置值为true的时候 就是用来支持WRAP_CONTENT功能
2、 True if the Layout should be measured by the RecyclerView, false if the LayoutManager wants to measure itself.
true 代表把布局交由recycleview测量 ;
false 代表LayoutManager 自己;
网友评论