场景:
项目中最外层使用ScrollView,里面嵌套了recycleview,recycleview中又嵌套了多个recycleview,导致部分recycleview显示不出来
app界面的结构图:
<xml>
<LinearLayout>
*******
<RecycleView>
</RecycleView>
*****
<ScroolView>
<RecycleView
id="@+id/recycle">
</RecycleView>
</ScroolView>
*******
</LinearLayout>
</xml>
其中在**id为recycle**中又有多个Recycleview。
此时,作为父RecycleView并不能把子RecycleView完全显示出来,所以我们需要自定义一个RecycleView用来把子RecycleView完全显示出来:
下面是自定义的RecycleView
/**
* 最大化的RecyclerView,嵌套于ScrollView之中使用
*/
public class MaxRecyclerView extends RecyclerView {
public MaxRecyclerView(android.content.Context context, android.util.AttributeSet attrs){
super(context, attrs);
}
public MaxRecyclerView(android.content.Context context){
super(context);
}
/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
这样就解决了部分手机不显示的情况,例如公司里面的努比亚手机。