Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收视图项目装饰_Android_Android Recyclerview - Fatal编程技术网

Android 回收视图项目装饰

Android 回收视图项目装饰,android,android-recyclerview,Android,Android Recyclerview,我有一个GridLayoutManager的回收视图 我设置了一个自定义项装饰: public class ListDetailsItemDecoration extends RecyclerView.ItemDecoration { private int space; public ListDetailsItemDecoration(int space) { this.space = space; } @Override

我有一个GridLayoutManager的回收视图

我设置了一个自定义项装饰:

public class ListDetailsItemDecoration extends RecyclerView.ItemDecoration { 
      private int space;

      public ListDetailsItemDecoration(int space) {
        this.space = space;
      } 

      @Override 
      public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

        int itemPosition = parent.getChildPosition(view);

        outRect.left = space;
        outRect.right = space;
        outRect.bottom = space;

        if(itemPosition == 0 || itemPosition == 1) {
            outRect.top = space;
        }

        if(itemPosition % 2 == 0) {
            outRect.right = space / 2;
        } else {
            outRect.left = space / 2;
        }


      } 

}
在我需要移除任何人之前,它都非常有效

notifyItemRemoved(position);
网格未调整大小


有什么想法吗?

您通知适配器了吗?notifyDataSetChanged()?我遇到了相同的问题调用notifyItemMoved()时遇到了相同的问题您确定这与项目装饰有关吗?看起来更像是适配器的问题。您是否更新了recyclerview的支持列表?