使用scrollview,Recyclerview无法顺利滚动。如果我删除scrollview比它顺利。我应该怎么做才能顺利滚动回收者视图?
dependencies{
...//<here>
}
答案 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"
及其子视图。
希望这有帮助。