RecyclerView不会滚动

时间:2016-10-02 20:42:23

标签: android android-recyclerview

使用scrollview,Recyclerview无法顺利滚动。如果我删除scrollview比它顺利。我应该怎么做才能顺利滚动回收者视图?

dependencies{
...//<here>
}

1 个答案:

答案 0 :(得分:2)

您不应将RecyclerView放在ScrollView中。如果您需要在RecyclerView的末尾显示页脚(即RecyclerView的最后一项之后的视图),那么这也应该是RecyclerView的一部分。为此,您只需在适配器中指定不同的项类型并返回相应的ViewHolder。

首先在你的适配器中添加它:

private class ViewType {
      public static final int NORMAL = 0;
      public static final int FOOTER = 1;
}

然后,覆盖适配器的getCount()并再添加一个项目:

@Override
public int getCount() {
    return yourListsSize + 1;
}

接下来,您需要指定当前项目的类型。要实现此目的,请覆盖适配器的getItemViewType():

@Override
public int getItemViewType(int position) {
    if(position == getCount() - 1)
        return ViewType.FOOTER;
    else
        return ViewType.NORMAL;
}

最后,在onCreateViewHolder()中检查当前项的类型并膨胀相应的视图:

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {

    View rowView;

    switch (viewType) {
        case ViewType.NORMAL:
            rowView=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.normal, viewGroup, false);
            break;
        case ViewType.FOOTER:
            rowView=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.footer, viewGroup, false);
            break;
        default:
            rowView=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.normal, viewGroup, false);
            break;
    }
    return new ViewHolder(rowView);
}

当然,您还需要在单独的xml文件中移动页脚布局,以便在此处对其进行充气。通过&#34;页脚布局&#34;,我指的是LinearLayout android:id="@+id/ll"及其子视图。

希望这有帮助。