徐代龙的技术专栏 Android and Python Coder

多个RecycleView 嵌套显示不全的情况

2017-12-14
SnakeSon

阅读:


场景:

项目中最外层使用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完全显示出来:

下面是自定义的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);
    }
}

这样就解决了部分手机不显示的情况,例如公司里面的努比亚手机。


Comments

Content