Android RecyclerView-设置它';s高度和显示元素

Android RecyclerView-设置它';s高度和显示元素,android,height,android-recyclerview,android-inflate,Android,Height,Android Recyclerview,Android Inflate,我有这样的XML文件(问题在于RecyclerView-滚动到文件末尾): )我建议您创建一个自定义的回收视图: public class CustomRecyclerView extends RecyclerView { final int ITEM_HEIGHT = 72; public CustomRecyclerView(Context context) { super(context); } public CustomRecycl

我有这样的XML文件(问题在于RecyclerView-滚动到文件末尾):



)

我建议您创建一个自定义的回收视图:

public class CustomRecyclerView extends RecyclerView {

    final int ITEM_HEIGHT = 72;

    public CustomRecyclerView(Context context) {
        super(context);
    }

    public CustomRecyclerView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthSpec, int heightSpec) {
        int itemCount = getAdapter().getItemCount();
        if (itemCount <= 3) {
            super.onMeasure(widthSpec, ITEM_HEIGHT * itemCount);
        } else if (itemCount < 5) {
            super.onMeasure(widthSpec, ITEM_HEIGHT * 3);
        } else {
            super.onMeasure(widthSpec, ITEM_HEIGHT * 5);
        }
    }
}
公共类CustomRecyclerView扩展了RecyclerView{
最终int项目_高度=72;
公共CustomRecyclerView(上下文){
超级(上下文);
}
公共CustomRecyclerView(上下文上下文,@Nullable AttributeSet attrs){
超级(上下文,attrs);
}
@凌驾
测量时受保护的空隙(内部宽度规格、内部高度规格){
int itemCount=getAdapter().getItemCount();

如果(itemCount I get and error:
android.view.InflateException:二进制XML文件行#505:error inflating class
。在一个包中创建自定义RecyclerView并像这样使用:
我也在我的活动中更改了它。哦,抱歉,看起来应该还有一个构造函数:。我修复了代码,现在应该可以了。
public class CustomRecyclerView extends RecyclerView {

    final int ITEM_HEIGHT = 72;

    public CustomRecyclerView(Context context) {
        super(context);
    }

    public CustomRecyclerView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthSpec, int heightSpec) {
        int itemCount = getAdapter().getItemCount();
        if (itemCount <= 3) {
            super.onMeasure(widthSpec, ITEM_HEIGHT * itemCount);
        } else if (itemCount < 5) {
            super.onMeasure(widthSpec, ITEM_HEIGHT * 3);
        } else {
            super.onMeasure(widthSpec, ITEM_HEIGHT * 5);
        }
    }
}