Android 未在RecyclerView的最后一个视图上绘制自定义项装饰
我正在android上构建一个应用程序,并且正在使用几个recyclerviews 在我使用recyclerview的第一个页面中,一切都完美无瑕,我的自定义ItemDecoration(分隔符)应用于所有视图 然后我开始了一个新页面,在这个页面中,我在一个类似的RecyclerView上使用了相同的分隔符,但在最后一个列表项上,底部的分隔符不存在 看到它在一个地方完美地工作,我不认为问题出在定制ItemDecoration类上,也不存在于xml上。我也试着使用同一个viewholder,但最后一个分隔符仍然没有绘制出来 以下是在问题回收视图中设置我的适配器的代码:Android 未在RecyclerView的最后一个视图上绘制自定义项装饰,android,android-recyclerview,Android,Android Recyclerview,我正在android上构建一个应用程序,并且正在使用几个recyclerviews 在我使用recyclerview的第一个页面中,一切都完美无瑕,我的自定义ItemDecoration(分隔符)应用于所有视图 然后我开始了一个新页面,在这个页面中,我在一个类似的RecyclerView上使用了相同的分隔符,但在最后一个列表项上,底部的分隔符不存在 看到它在一个地方完美地工作,我不认为问题出在定制ItemDecoration类上,也不存在于xml上。我也试着使用同一个viewholder,但最后
private void setUpPracticesList() {
lstPractices = (RecyclerView) getActivity().findViewById(R.id.lstPractices);
lstPractices.setLayoutManager(new LinearLayoutManager(getActivity()));
RecyclerView.Adapter<PracticeHolder> adapter = new RecyclerView.Adapter<PracticeHolder>() {
String[] titles = getResources().getStringArray(R.array.practices_names);
int[] imageIds = {R.drawable.consultation_meeting_icon,
R.drawable.monitoring_meeting_icon,
R.drawable.parent_lectures_icon,
R.drawable.parent_support_groups_icon,
R.drawable.staff_courses_icon};
@Override
public PracticeHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.kidsense_practices_list_item, parent, false);
return new PracticeHolder(v);
}
@Override
public void onBindViewHolder(PracticeHolder holder, int position) {
holder.setName(titles[position]);
holder.setImage(imageIds[position]);
}
@Override
public int getItemCount() {
return titles.length;
}
};
lstPractices.setAdapter(adapter);
lstPractices.setHasFixedSize(true);
lstPractices.addItemDecoration(new DividerItemDecoration(getActivity(), null));
}
private void setUpPracticesList(){
lstPractices=(RecyclerView)getActivity().findViewById(R.id.lstPractices);
setLayoutManager(新的LinearLayoutManager(getActivity());
RecyclerView.Adapter=新的RecyclerView.Adapter(){
String[]titles=getResources().getStringArray(R.array.practices\u name);
int[]imageIds={R.drawable.consultation\u meeting\u图标,
R.drawable.monitoring\u meeting\u图标,
R.drawable.parent\u图标,
R.drawable.parent\u支持\u组\u图标,
R.drawable.staff\u courses\u icon};
@凌驾
public PracticeHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.kidsense\u practices\u list\u项,parent,false);
返回新的执业持有人(v);
}
@凌驾
BindViewHolder上的公共无效(PracticeHolder,内部职位){
持有人名称(头衔[职位]);
holder.setImage(imageid[位置]);
}
@凌驾
public int getItemCount(){
返回标题。长度;
}
};
lst.setAdapter(适配器);
lstPractices.setHasFixedSize(true);
addItemDecoration(新的DividerItemDecoration(getActivity(),null));
}
有人有什么想法吗?我找到了解决方案: 我发现,如果recyclerview中没有更多空间,那么recyclerview将不会在最后一个视图的底部显示分隔符 在我的例子中,问题是我的recyclerview的布局高度为“wrap_content”,这意味着在recyclerview下没有多余的空间来显示分隔符。当我重新安排我的布局,使我的recyclerview下面有更多的空间,父布局高度为“match_parent”时,最终的分隔符显示出来