好吧,这有点复杂,我有一个自定义的RecyclerView适配器,在OnBindViewHolder方法中,我想根据一些不同的变量从回收器视图中删除当前项目,但当我从ArrayList中删除项目并调用notifyDataSetChanged();时,我会得到:java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling。
如何从onBindViewHolder的RecyclerView中删除项目?,我不想在设置适配器之前执行此操作,因为
我想要显示一个项目列表,并使用"<“字符作为分隔符来分隔它们,以传达有关这些项目之间关系的信息。另外,我应该能够隐藏在列表中最后一项之后的分隔符。我刚接触Android dev,所以我主要使用RecyclerView,因为它被认为是Android中显示事物列表的原生/正确方式。生成的UI应该如下所示:
我对此进行了研究,发现RecyclerView有一个内置的ItemDecoration功能。然而,我只能找到如何画一条线:
recyclerView.addItemDecoration(
new DividerItemDecoration(this, Div
在一个正常的回收视图中,最新的项目都在顶部,如果你在回收视图中添加一个项目,它会把现有的项目推下,新的项目占据榜首。
在reverseLayout回收视图中,最新的项目都在底部,如果您在回收视图中添加一个项目,它将被添加到底部。这种布局对于像注释提要这样的东西是非常有用的,在这里,您希望最新的评论位于底部。
这方面的一个很好的例子是,当你评论一个朋友的状态时,比如Facebook评论提要。您可以看到,这些评论都有发布在底部的时间,时间从上到下从12小时减少到10小时:
reverseLayout非常容易设置,我使用以下代码完成了它:
mLayoutManager = new Line
这是我的片段,我将其称为回收器视图: public class sgpa_frag extends Fragment {
//View view;
RecyclerView recyclerview;
adapter_sgpa ac;
ArrayList<POJO> sgpaArrayList;
public sgpa_frag() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle sa