2016-02-04 68 views
3

我一直试图在recyclerview中重叠两个相邻的位置,但未能这样做。我希望第一个位置的一部分重叠/平铺在第二个位置。recyclerview中的重叠位置/视图

我一直在玩弄一个自定义的RecyclerView.ItemDecoration和它的getItemOffsets,但是,似乎只能添加一个位置上的填充/边距,而不是将其翻译到它的视图外的新位置。

任何人都有如何用recyclerview实现这一目标的指针?

回答

6

那么,您还可以在RecyclerView.ItemDecoration中添加负边距


例子:

ItemDecorator.java

public class ItemDecorator extends RecyclerView.ItemDecoration { 
    private final int mSpace; 

    public ItemDecorator(int space) { 
     this.mSpace = space; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
     outRect.left = mSpace; 
     outRect.right = mSpace; 
     outRect.bottom = mSpace; 
     outRect.top = mSpace; 
    } 
} 

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ArrayList<String> arrayList = new ArrayList<>(); 
     arrayList.add("Hi"); 
     arrayList.add("World"); 
     arrayList.add("What"); 

     RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rec1); 
     //Negative margin! 
     ItemDecorator itemDecorator = new ItemDecorator(-30);  
     recyclerView.setAdapter(new CustomAdapter(arrayList)); 
     recyclerView.addItemDecoration(itemDecorator); 
     recyclerView.setLayoutManager(new LinearLayoutManager(this)); 

    } 
} 
+0

谢谢,不敢相信我错过了:) –